diff --git a/packages/fastfetch/build.sh b/packages/fastfetch/build.sh index 0798899839f848..58c2c44870fe9d 100644 --- a/packages/fastfetch/build.sh +++ b/packages/fastfetch/build.sh @@ -3,9 +3,11 @@ TERMUX_PKG_DESCRIPTION="A maintained, feature-rich and performance oriented, neo TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION="2.47.0" +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/fastfetch-cli/fastfetch/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=c1482b8075718a2b2db95f823419b04b81384237fdba8af56092f184e89797d3 TERMUX_PKG_BUILD_DEPENDS="freetype, libandroid-wordexp-static, mesa-dev, ocl-icd, opencl-headers, vulkan-headers, vulkan-loader-generic" +TERMUX_PKG_SUGGESTS="xfconf" TERMUX_PKG_AUTO_UPDATE=true TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DTARGET_DIR_HOME=${TERMUX_ANDROID_HOME} diff --git a/packages/fastfetch/de-detection.patch b/packages/fastfetch/de-detection.patch new file mode 100644 index 00000000000000..78551152f30bda --- /dev/null +++ b/packages/fastfetch/de-detection.patch @@ -0,0 +1,197 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 967d5329..2bd5e188 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,6 +12,7 @@ set(PROJECT_LICENSE "MIT license") + ################### + # Target Platform # + ################### ++ + if(ANDROID) + set(LINUX FALSE) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") +@@ -58,14 +59,14 @@ include(CMakeDependentOption) + + cmake_dependent_option(ENABLE_VULKAN "Enable vulkan" ON "LINUX OR APPLE OR FreeBSD OR OpenBSD OR NetBSD OR WIN32 OR ANDROID OR SunOS OR Haiku" OFF) + cmake_dependent_option(ENABLE_WAYLAND "Enable wayland-client" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD" OFF) +-cmake_dependent_option(ENABLE_XCB_RANDR "Enable xcb-randr" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF) +-cmake_dependent_option(ENABLE_XRANDR "Enable xrandr" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF) ++cmake_dependent_option(ENABLE_XCB_RANDR "Enable xcb-randr" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS OR ANDROID" OFF) ++cmake_dependent_option(ENABLE_XRANDR "Enable xrandr" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS OR ANDROID" OFF) + cmake_dependent_option(ENABLE_DRM "Enable libdrm" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF) + cmake_dependent_option(ENABLE_DRM_AMDGPU "Enable libdrm_amdgpu" ON "LINUX OR FreeBSD" OFF) + cmake_dependent_option(ENABLE_GIO "Enable gio-2.0" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF) + cmake_dependent_option(ENABLE_DCONF "Enable dconf" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF) + cmake_dependent_option(ENABLE_DBUS "Enable dbus-1" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS OR Haiku" OFF) +-cmake_dependent_option(ENABLE_XFCONF "Enable libxfconf-0" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF) ++cmake_dependent_option(ENABLE_XFCONF "Enable libxfconf-0" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS OR ANDROID" OFF) + cmake_dependent_option(ENABLE_SQLITE3 "Enable sqlite3" ON "LINUX OR FreeBSD OR APPLE OR OpenBSD OR NetBSD OR SunOS" OFF) + cmake_dependent_option(ENABLE_RPM "Enable rpm" ON "LINUX" OFF) + cmake_dependent_option(ENABLE_IMAGEMAGICK7 "Enable imagemagick 7" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR APPLE OR WIN32 OR SunOS OR Haiku" OFF) +@@ -592,8 +593,22 @@ elseif(ANDROID) + src/detection/physicalmemory/physicalmemory_nosupport.c + src/detection/diskio/diskio_linux.c + src/detection/displayserver/displayserver_android.c ++ src/detection/displayserver/linux/displayserver_linux.c ++ src/detection/displayserver/linux/drm.c ++ src/detection/displayserver/linux/xcb.c ++ src/detection/displayserver/linux/wmde.c ++ src/detection/displayserver/linux/xlib.c ++ src/detection/displayserver/linux/wayland/wayland.c ++ src/detection/displayserver/linux/wayland/global-output.c ++ src/detection/displayserver/linux/wayland/zwlr-output.c ++ src/detection/displayserver/linux/wayland/kde-output.c ++ src/detection/displayserver/linux/wayland/wlr-output-management-unstable-v1-protocol.c ++ src/detection/displayserver/linux/wayland/kde-output-device-v2-protocol.c ++ src/detection/displayserver/linux/wayland/kde-output-order-v1-protocol.c ++ src/detection/displayserver/linux/wayland/xdg-output-unstable-v1-protocol.c + src/detection/font/font_nosupport.c + src/detection/gpu/gpu_nosupport.c ++ src/detection/gtk_qt/gtk.c + src/detection/host/host_android.c + src/detection/icons/icons_nosupport.c + src/detection/initsystem/initsystem_linux.c +@@ -613,6 +628,7 @@ elseif(ANDROID) + src/detection/packages/packages_linux.c + src/detection/poweradapter/poweradapter_nosupport.c + src/detection/processes/processes_linux.c ++ src/detection/gtk_qt/qt.c + src/detection/sound/sound_nosupport.c + src/detection/swap/swap_linux.c + src/detection/terminalfont/terminalfont_android.c +@@ -624,9 +640,9 @@ elseif(ANDROID) + src/detection/users/users_linux.c + src/detection/wallpaper/wallpaper_nosupport.c + src/detection/wifi/wifi_android.c +- src/detection/wm/wm_nosupport.c +- src/detection/de/de_nosupport.c +- src/detection/wmtheme/wmtheme_nosupport.c ++ src/detection/wm/wm_linux.c ++ src/detection/de/de_linux.c ++ src/detection/wmtheme/wmtheme_linux.c + src/detection/camera/camera_android.c + src/detection/zpool/zpool_nosupport.c + src/util/platform/FFPlatform_unix.c +@@ -1979,4 +1995,4 @@ fastfetch is a neofetch-like tool for fetching system information and displaying + It is written mostly in C to achieve much better performance.\ + ") + +-include(CPack) ++include(CPack) +\ No newline at end of file +diff --git a/src/detection/displayserver/displayserver.h b/src/detection/displayserver/displayserver.h +index 7949f61e..2b964af5 100644 +--- a/src/detection/displayserver/displayserver.h ++++ b/src/detection/displayserver/displayserver.h +@@ -43,6 +43,7 @@ + #define FF_WM_PROTOCOL_TTY "TTY" + #define FF_WM_PROTOCOL_X11 "X11" + #define FF_WM_PROTOCOL_WAYLAND "Wayland" ++#define FF_WM_PROTOCOL_ANDROID "Android" + + typedef enum __attribute__((__packed__)) FFDisplayType { + FF_DISPLAY_TYPE_UNKNOWN, +diff --git a/src/detection/displayserver/displayserver_android.c b/src/detection/displayserver/displayserver_android.c +index 0c7a3c1c..66ce97d6 100644 +--- a/src/detection/displayserver/displayserver_android.c ++++ b/src/detection/displayserver/displayserver_android.c +@@ -31,7 +31,7 @@ static bool checkHdrStatus(FFDisplayResult* display) + return false; + } + +-static void detectWithDumpsys(FFDisplayServerResult* ds) ++void detectWithDumpsys(FFDisplayServerResult* ds) + { + FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate(); + if (ffProcessAppendStdOut(&buf, (char* []) { +@@ -106,7 +106,7 @@ static void detectWithDumpsys(FFDisplayServerResult* ds) + } + } + +-static bool detectWithGetprop(FFDisplayServerResult* ds) ++bool detectWithGetprop(FFDisplayServerResult* ds) + { + // Only for MiUI + FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate(); +@@ -145,11 +145,11 @@ static bool detectWithGetprop(FFDisplayServerResult* ds) + return false; + } + +-void ffConnectDisplayServerImpl(FFDisplayServerResult* ds) +-{ +- ffStrbufSetStatic(&ds->wmProcessName, "WindowManager"); +- ffStrbufSetStatic(&ds->wmPrettyName, "Window Manager"); +- +- if (!detectWithGetprop(ds)) +- detectWithDumpsys(ds); +-} ++// void ffConnectDisplayServerImpl(FFDisplayServerResult* ds) ++// { ++// ffStrbufSetStatic(&ds->wmProcessName, "WindowManager"); ++// ffStrbufSetStatic(&ds->wmPrettyName, "Window Manager"); ++// ++// if (!detectWithGetprop(ds)) ++// detectWithDumpsys(ds); ++// } +diff --git a/src/detection/displayserver/displayserver_android.h b/src/detection/displayserver/displayserver_android.h +new file mode 100644 +index 00000000..44ff8a99 +--- /dev/null ++++ b/src/detection/displayserver/displayserver_android.h +@@ -0,0 +1,2 @@ ++void detectWithDumpsys(FFDisplayServerResult* ds); ++bool detectWithGetprop(FFDisplayServerResult* ds); +diff --git a/src/detection/displayserver/linux/displayserver_linux.c b/src/detection/displayserver/linux/displayserver_linux.c +index 63b2c831..40f8da7b 100644 +--- a/src/detection/displayserver/linux/displayserver_linux.c ++++ b/src/detection/displayserver/linux/displayserver_linux.c +@@ -2,6 +2,10 @@ + #include "common/io/io.h" + #include "util/stringUtils.h" + ++#ifdef __ANDROID__ ++ #include "detection/displayserver/displayserver_android.h" ++#endif ++ + #ifdef __FreeBSD__ + #include "common/settings.h" + #endif +@@ -41,6 +45,14 @@ static void getWMProtocolNameFromEnv(FFDisplayServerResult* result) + ffStrbufSetStatic(&result->wmProtocolName, FF_WM_PROTOCOL_TTY); + return; + } ++ ++ #ifdef __ANDROID__ ++ if(ffStrSet(env) && ffStrEqualsIgnCase(env, "xterm-256color")) ++ { ++ ffStrbufSetStatic(&result->wmProtocolName, FF_WM_PROTOCOL_ANDROID); ++ return; ++ } ++ #endif + } + + void ffConnectDisplayServerImpl(FFDisplayServerResult* ds) +@@ -89,11 +101,22 @@ void ffConnectDisplayServerImpl(FFDisplayServerResult* ds) + if (ds->wmProtocolName.length == 0) + getWMProtocolNameFromEnv(ds); + +- if(!ffStrbufEqualS(&ds->wmProtocolName, FF_WM_PROTOCOL_TTY)) ++ if(!ffStrbufEqualS(&ds->wmProtocolName, FF_WM_PROTOCOL_TTY) && !ffStrbufEqualS(&ds->wmProtocolName, FF_WM_PROTOCOL_ANDROID)) + { + //This fills in missing information about WM / DE by using env vars and iterating processes + ffdsDetectWMDE(ds); + } ++ ++ #ifdef __ANDROID__ ++ if(ffStrbufEqualS(&ds->wmProtocolName, FF_WM_PROTOCOL_ANDROID)) ++ { ++ ffStrbufSetStatic(&ds->wmProcessName, "WindowManager"); ++ ffStrbufSetStatic(&ds->wmPrettyName, "Window Manager"); ++ ++ if (!detectWithGetprop(ds)) ++ detectWithDumpsys(ds); ++ } ++ #endif + } + + FFDisplayType ffdsGetDisplayType(const char* name)