From 61dba1ea05a9b028626b138840bfc1937497ffbe Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 13 May 2026 16:03:34 +0800 Subject: [PATCH 1/5] Packaging: update debian stuff [ci skip] --- debian/changelog.tpl | 12 ++++++++++++ debian/control | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/debian/changelog.tpl b/debian/changelog.tpl index eabc41b251..19e47cdb87 100644 --- a/debian/changelog.tpl +++ b/debian/changelog.tpl @@ -1,3 +1,15 @@ +fastfetch (2.63.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium + + * Update to 2.63.0 + + -- Carter Li Wed, 13 May 2026 16:02:28 +0800 + +fastfetch (2.62.1~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium + + * Update to 2.62.1 + + -- Carter Li Fri, 24 Apr 2026 15:45:15 +0800 + fastfetch (2.62.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium * Update to 2.62.0 diff --git a/debian/control b/debian/control index 9cc8c32eb8..7494ef59cc 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: fastfetch Section: universe/utils Priority: optional Maintainer: Carter Li -Build-Depends: libelf-dev, libvulkan-dev, libwayland-dev, libxrandr-dev, libxcb-randr0-dev, libdconf-dev, libdbus-1-dev, libmagickcore-dev, libsqlite3-dev, librpm-dev, libegl-dev, libglx-dev, ocl-icd-opencl-dev, libpulse-dev, libdrm-dev, libddcutil-dev, libchafa-dev, pkgconf, cmake (>= 3.12), debhelper (>= 11.2), dh-cmake, dh-cmake-compat (= 1), dh-sequence-cmake, dh-sequence-ctest, ninja-build, python3-setuptools +Build-Depends: libelf-dev, libvulkan-dev, libwayland-dev, libxrandr-dev, libxcb-randr0-dev, libdconf-dev, libdbus-1-dev, libmagickcore-dev, libsqlite3-dev, librpm-dev, libegl-dev, libglx-dev, ocl-icd-opencl-dev, libpulse-dev, libdrm-dev, libddcutil-dev, libchafa-dev, libefl-all-dev, pkgconf, cmake (>= 3.12), debhelper (>= 11.2), dh-cmake, dh-cmake-compat (= 1), dh-sequence-cmake, dh-sequence-ctest, ninja-build, python3-setuptools Standards-Version: 4.0.0 Homepage: https://github.com/fastfetch-cli/fastfetch From 8067e4363160e6322d238fe004802168570a9043 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 13 May 2026 19:07:14 +0800 Subject: [PATCH 2/5] Media (Linux): be compatible with signed media length Fixes Chrome support --- src/detection/media/media_linux.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/detection/media/media_linux.c b/src/detection/media/media_linux.c index 64d69b6bf5..d12f1ac033 100644 --- a/src/detection/media/media_linux.c +++ b/src/detection/media/media_linux.c @@ -95,8 +95,8 @@ static bool parseMprisMetadata(FFDBusData* data, DBusMessageIter* rootIterator, } } } else if (ffStrEquals(mpris, "length")) { - uint64_t length = 0; // microseconds - if (ffDBusGetUint(data, &dictIterator, &length)) { + int64_t length = 0; // microseconds + if (ffDBusGetInt(data, &dictIterator, &length) && length > 0) { result->length = (uint32_t) (length / 1000); } } From 7f9b6187a62612d51e6a2d92744e1634582525b2 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 13 May 2026 19:28:36 +0800 Subject: [PATCH 3/5] CommandOption: fixes segfault with unknown module --- src/common/impl/commandoption.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/impl/commandoption.c b/src/common/impl/commandoption.c index d32c0fe086..e855b0ae77 100644 --- a/src/common/impl/commandoption.c +++ b/src/common/impl/commandoption.c @@ -178,7 +178,7 @@ static bool parseStructureCommand( } } - if (fn == genJsonResult) { + if (data->resultDoc) { yyjson_mut_doc* doc = data->resultDoc; yyjson_mut_val* module = yyjson_mut_arr_add_obj(doc, doc->root); yyjson_mut_obj_add_str(doc, module, "type", line); From bbc5b4de98e7f2b761167f99ffeae33774abebf3 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 13 May 2026 19:29:33 +0800 Subject: [PATCH 4/5] Wifi (Linux): disables usage of Netlink on big-endian platforms Until some can confirm it works --- src/detection/wifi/wifi_linux.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/detection/wifi/wifi_linux.c b/src/detection/wifi/wifi_linux.c index 419f343758..fc5d0767c8 100644 --- a/src/detection/wifi/wifi_linux.c +++ b/src/detection/wifi/wifi_linux.c @@ -8,13 +8,15 @@ #include #include #include -#include -#include #include #include -// Silence warning of `NLA_HDRLEN` and `NLA_ALIGN` -#pragma GCC diagnostic ignored "-Wsign-conversion" +#if !__BIG_ENDIAN__ + #include + #include + + // Silence warning of `NLA_HDRLEN` and `NLA_ALIGN` + #pragma GCC diagnostic ignored "-Wsign-conversion" typedef struct FFWifiNlContext { int sockFd; @@ -23,10 +25,6 @@ typedef struct FFWifiNlContext { uint32_t seq; } FFWifiNlContext; -typedef struct FFWifiIcContext { - int sockFd; -} FFWifiIcContext; - typedef struct FFWifiSecurityFlags { bool privacy : 1; bool wep : 1; @@ -199,7 +197,7 @@ static bool ffWifiNlInit(FFWifiNlContext* ctx) { ctx->sockFd, SOL_SOCKET, SO_RCVTIMEO, - &(struct timeval) { .tv_sec = 0, .tv_usec = 250000 }, + &(struct timeval){ .tv_sec = 0, .tv_usec = 250000 }, sizeof(struct timeval)) < 0) { FF_DEBUG("Failed to set netlink receive timeout: %s", strerror(errno)); return false; @@ -694,6 +692,11 @@ static const char* detectWithNetlink(FFWifiNlContext* ctx, FFWifiResult* item, u FF_DEBUG("Netlink wifi detection completed"); return NULL; } +#endif + +typedef struct FFWifiIcContext { + int sockFd; +} FFWifiIcContext; static const char* detectWithIoctl(FFWifiIcContext* ctx, FFWifiResult* item, char ifName[static IFNAMSIZ]) { int sock = -1; @@ -893,7 +896,9 @@ const char* ffDetectWifi(FFlist* result) { return "if_nameindex() failed"; } +#if !__BIG_ENDIAN__ FFWifiNlContext nl = { .sockFd = -1 }; +#endif FFWifiIcContext ic = { .sockFd = -1 }; FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate(); @@ -930,7 +935,10 @@ const char* ffDetectWifi(FFlist* result) { if (operstate == 'u') { ffStrbufSetStatic(&item->inf.status, "up"); + +#if !__BIG_ENDIAN__ detectWithNetlink(&nl, item, i->if_index); +#endif detectWithIoctl(&ic, item, i->if_name); } else { ffStrbufSetStatic(&item->conn.status, "disconnected"); @@ -954,9 +962,11 @@ const char* ffDetectWifi(FFlist* result) { } if_freenameindex(infs); +#if !__BIG_ENDIAN__ if (nl.sockFd >= 0) { close(nl.sockFd); } +#endif if (ic.sockFd >= 0) { close(ic.sockFd); } From 90d3b3d49f08bedf0beeb04035ecf6aa17ff8603 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Wed, 13 May 2026 19:36:28 +0800 Subject: [PATCH 5/5] Release: v2.63.1 --- CHANGELOG.md | 10 +++++++++- CMakeLists.txt | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9f5ab64db..f533997248 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,14 @@ +# 2.63.1 + +Bugfixes: +* Fixes media length detection for Chrome on Linux (Media, Linux) +* Fixes segmentation fault when specifying unsupported modules on command line +* Disables usage of Netlink for Wi-Fi detection on s390x architectures (Wifi, Linux) + # 2.63.0 Changes: -* Introduces a new optional dependency, `libefl`, for querying the Enlightenment window manager configuration: +* Introduces a new **build-only** dependency, `libefl`, for querying the Enlightenment window manager configuration: * `libefl-all-dev` on Debian/Ubuntu * `libefl-devel` on Fedora * `efl` on Arch Linux @@ -14,6 +21,7 @@ Features: * Adds Ubuntu Kylin and Ubuntu Unity flavor detection (OS, Linux) * Adds NebiDE support (WMTheme, Linux) * Adds package counting for `cards` on NuTyX (#2287, Packages, Linux) +* Adds `{am-pm}` to custom format for 12-hour time with am/pm (DateTime) * Adds support for the Enlightenment desktop environment (#2165, WM, Linux) * Adds support for playback progress detection (Media) * The module now prints the current playback position and total media duration when supported by the player. If you prefer the previous behavior, you can set `media.percent.type: ["hide-others"]` to hide the new fields. diff --git a/CMakeLists.txt b/CMakeLists.txt index 09f09e4fc6..ee9f5826e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url project(fastfetch - VERSION 2.63.0 + VERSION 2.63.1 LANGUAGES C DESCRIPTION "Fast neofetch-like system information tool" HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"