Conversation
…blity with `libfastfetch`
…to the start of process Fixes #2383
…e is not executable (no permission)
* Packages (Linux): Improve emerge detection speed * Fix code styling
* feat: add install-release package count support * Apply suggestion from @codacy-production[bot] Co-authored-by: codacy-production[bot] <61871480+codacy-production[bot]@users.noreply.github.com> * Fix formatting of ffParsePropFileValues call --------- Co-authored-by: Carter Li <CarterLi@users.noreply.github.com> Co-authored-by: codacy-production[bot] <61871480+codacy-production[bot]@users.noreply.github.com>
* Create zerene.txt * Update z.inc * Fixed z.inc Changed the problematic line mismatch * Update z.inc * Update z.inc more fixes to z.inc * Remove duplicate name entry for Zerene logo --------- Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
Contributor
Not up to standards ⛔🔴 Issues
|
| Category | Results |
|---|---|
| ErrorProne | 27 medium 2 high |
| Security | 12 critical |
🟢 Metrics 134 complexity · 0 duplication
Metric Results Complexity 134 Duplication 0
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR prepares the Fastfetch v2.65.0 release by updating multiple subsystems (GPU/CPU/display detection, package counting, config parsing UX, build system, and CI) and adding new features documented in the changelog.
Changes:
- Expand detection/formatting capabilities (GPU PCIe link speed, x86 CPU code-name/technology, Wayland HDR via wp-color-management-v1, kmscon version/font, new package managers).
- Improve robustness/UX (more precise JSON config error locations, better default CPU core-type behavior, assorted cleanup/refactors).
- Update build/CI/release artifacts (CMake feature checks, workflow dependencies, changelog/schema updates, new logo).
Reviewed changes
Copilot reviewed 103 out of 106 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/options/logo.h | Gate Chafa logo options behind FF_HAVE_CHAFA; extend JSON parse signature for error reporting. |
| src/options/logo.c | Guard Chafa init/destroy/parse/generate; improve JSON parsing context (pkey). |
| src/options/general.h | Extend JSON parse signature for error reporting (pkey). |
| src/options/general.c | Track last JSON key parsed via pkey for better error messages. |
| src/options/display.h | Extend JSON parse signature for error reporting (pkey). |
| src/options/display.c | Track last JSON key parsed via pkey for better error messages. |
| src/modules/packages/packages.c | Add porg + install-release; reorder format args to move aggregates to end. |
| src/modules/packages/option.h | Add new package-manager flag bits for porg and install-release. |
| src/modules/monitor/monitor.c | Switch serial format arg to use FFDisplayResult.serial directly. |
| src/modules/gpu/option.h | Add GPU detection method egl-ext. |
| src/modules/gpu/gpu.c | Add PCIe max/current speed formatting args; improve “no GPU” error messaging. |
| src/modules/display/display.c | Print/display serial as string buffer; JSON result serial emitted as string/null. |
| src/modules/cpu/cpu.c | Add {code-name}/{technology} format args on x86; default showPeCoreCount to true. |
| src/modules/bluetoothradio/bluetoothradio.c | Return false on “no devices” error path. |
| src/modules/bluetooth/bluetooth.c | Return false on “no devices” error path. |
| src/logo/image/image.c | Normalize FF_HAVE_CHAFA usage; refactor cache read path. |
| src/logo/ascii/z/zerene.txt | Add new “Zerene” ASCII logo asset. |
| src/logo/ascii/z.inc | Register Zerene logo (including explicit colorKeys for 1-color logo). |
| src/fastfetch.c | Mark help/version helpers as cold; improve JSON config error messages with module/key context. |
| src/detection/wifi/wifi_bsd.c | Improve FreeBSD WPA auth-mode reporting (WPA/WPA2/WPA1+2). |
| src/detection/vulkan/vulkan.c | Initialize GPU PCIe speed fields for Vulkan results. |
| src/detection/version/version.c | Centralize FF_STR macros via common/strutil.h. |
| src/detection/terminalshell/terminalshell.c | Add kmscon terminal version detection. |
| src/detection/terminalfont/terminalfont_linux.c | Add kmscon font detection via config parsing. |
| src/detection/packages/packages.h | Add counts for installrelease and porg. |
| src/detection/packages/packages_linux.c | Improve emerge counting perf; add porg/install-release detection; use auto-close DIR helpers. |
| src/detection/os/os_linux.c | Centralize FF_STR macros via common/strutil.h. |
| src/detection/os/os_apple.m | Add macOS codename mapping for version 27; improve external display serial extraction. |
| src/detection/opengl/opengl_shared.c | Refactor EGL detection to load symbols differently and suppress IO during probing. |
| src/detection/opencl/opencl.c | Initialize GPU PCIe speed fields for OpenCL results. |
| src/detection/libc/libc_linux.c | Centralize FF_STR macros via common/strutil.h. |
| src/detection/libc/libc_android.c | Centralize FF_STR macros via common/strutil.h. |
| src/detection/gpu/nvml.h | Expand/annotate NVML declarations; add PCIe + temperature struct version helpers. |
| src/detection/gpu/intel_drm.h | Make drm header include path more portable (<drm.h> vs <drm/drm.h>). |
| src/detection/gpu/igcl.h | Add missing <stdbool.h>; update struct layout; add PCIe property/state structs. |
| src/detection/gpu/gpu.h | Add PCIe speed fields to GPU result; broaden DRM availability checks; declare ffGPUFillVendorByDeviceName. |
| src/detection/gpu/gpu.c | Add EGL_EXT device enumeration backend; normalize vendor names; add type-fallback helper. |
| src/detection/gpu/gpu_windows.c | Improve PCI info lookup/cache and collect PCIe link info via devnode properties. |
| src/detection/gpu/gpu_sunos.c | Initialize GPU PCIe speed fields. |
| src/detection/gpu/gpu_pci.c | Centralize FF_STR macros via common/strutil.h. |
| src/detection/gpu/gpu_obsd.c | Prefer DRM path on OpenBSD AUTO when available; otherwise PCI path. |
| src/detection/gpu/gpu_nvidia.c | Switch to nvmlDeviceGetTemperatureV; add PCIe gen/lanes queries. |
| src/detection/gpu/gpu_nbsd.c | Initialize GPU PCIe speed fields. |
| src/detection/gpu/gpu_linux.c | Refactor includes; add PCIe speed parsing from sysfs; reuse type fallback helper. |
| src/detection/gpu/gpu_intel.c | Add IGCL PCIe max/current speed detection hooks. |
| src/detection/gpu/gpu_haiku.c | Initialize GPU PCIe speed fields. |
| src/detection/gpu/gpu_gnu.c | Initialize GPU PCIe speed fields. |
| src/detection/gpu/gpu_drm.c | Make DRM header include path robust; remove libdrm_amdgpu dependency; add PCIe + VRAM type extensions. |
| src/detection/gpu/gpu_driver_specific.h | Extend driver-specific result struct with PCIe speed outputs (and shared mem/mem type pointers). |
| src/detection/gpu/gpu_bsddrm.c | New BSD DRM-based GPU enumeration helper. |
| src/detection/gpu/gpu_bsd.c | Switch BSD AUTO path to new DRM helper; remove old drmGetDevices implementation. |
| src/detection/gpu/gpu_apple.c | Initialize GPU PCIe speed fields. |
| src/detection/gpu/gpu_amd.c | Add ADL chipset info retrieval to infer PCIe speed. |
| src/detection/gpu/d3dkmthk.h | Add missing KMT PnP key query types. |
| src/detection/gpu/asahi_drm.h | Make drm header include path more portable (<drm.h> vs <drm/drm.h>). |
| src/detection/gpu/adl.h | Declare ADL2_Adapter_ChipSetInfo_Get. |
| src/detection/displayserver/linux/xlib.c | Split EDID manufacture date vs serial parsing calls. |
| src/detection/displayserver/linux/xcb.c | Split EDID manufacture date vs serial parsing calls. |
| src/detection/displayserver/linux/wayland/zwlr-output.c | Remove zwlr output backend implementation. |
| src/detection/displayserver/linux/wayland/xdg-output-unstable-v1-protocol.c | Fix protocol type table entry for wl_output_interface. |
| src/detection/displayserver/linux/wayland/wp-color-management-v1-protocol.c | Add generated wp-color-management-v1 protocol bindings. |
| src/detection/displayserver/linux/wayland/wlr-output-management-unstable-v1-protocol.c | Remove generated wlr output-management protocol bindings. |
| src/detection/displayserver/linux/wayland/wayland.h | Rename protocol enum values; serial becomes FFstrbuf; add wp-color manager handle. |
| src/detection/displayserver/linux/wayland/wayland.c | Rework protocol selection; add wp-color-management-v1 hookup; improve EDID validation/serial parsing. |
| src/detection/displayserver/linux/wayland/kde-output.c | Add KDE output registry path; set primary via priority; serial becomes FFstrbuf. |
| src/detection/displayserver/linux/wayland/kde-output-order-v1-protocol.c | Remove generated KDE output-order protocol binding. |
| src/detection/displayserver/linux/wayland/kde-output-order-v1-client-protocol.h | Remove generated KDE output-order client header. |
| src/detection/displayserver/linux/wayland/global-output.c | Rename API markers; add wp-color HDR-enabled detection; serial becomes FFstrbuf. |
| src/detection/displayserver/displayserver.h | Change display serial type from uint32_t to FFstrbuf. |
| src/detection/displayserver/displayserver.c | Initialize display serial FFstrbuf. |
| src/detection/displayserver/displayserver_windows.c | Split EDID manufacture date vs serial parsing calls. |
| src/detection/displayserver/displayserver_apple.c | Improve serial resolution on macOS (EDID/IOKit fallback); mark builtin once; validate EDID. |
| src/detection/cpu/cpu.h | Add x86-only codeName and technology fields + helper prototype. |
| src/detection/cpu/cpu.c | Invoke x86-specific detection hook on x86 builds. |
| src/detection/cpu/cpu_windows.c | Improve core-type grouping using EfficiencyClass; adjust core counting signature. |
| src/detection/cpu/cpu_linux.c | Refactor cpufreq reading via openat; fix core topology counting and FD cleanup paths. |
| src/detection/codec/codec_windows.cpp | Make MFT enum lazy for Win 8.1; adjust encoder detection + platformApi labeling. |
| src/detection/codec/codec_linux.c | Remove hard libdrm dependency for VA-API; iterate /dev/dri/renderD*; fix VDPAU showType logic. |
| src/detection/brightness/brightness_linux.c | Use FF_AUTO_CLOSE_DIR for backlight scanning. |
| src/common/strutil.h | Centralize FF_STR macros; add always-inline attributes to helpers. |
| src/common/mallocHelper.h | Add attributes header; mark free wrapper always-inline/non-null. |
| src/common/io.h | Convert cleanup wrappers to void and always-inline; standardize FD/DIR/FILE auto-close helpers. |
| src/common/impl/processing_linux.c | Only treat candidate exe path as exe if it is executable. |
| src/common/impl/networking_linux.c | Adjust non-threading fast path sendto flags/logging (PublicIP reliability changes). |
| src/common/impl/netif_gnu.c | Centralize FF_STR macros via common/strutil.h. |
| src/common/impl/init.c | Move Windows console CP setup earlier; emit linux-headers version in feature list. |
| src/common/impl/FFPlatform_unix.c | Treat 0-length readlink as invalid. |
| src/common/impl/edidHelper.c | Split manufacture date and serial parsing; introduce alphanumeric serial extraction. |
| src/common/impl/debug_windows.c | Add ConfigRet->Win32 error mapping helper. |
| src/common/edidHelper.h | Update EDID helper API (manufacture date + serial as FFstrbuf). |
| src/common/debug.h | Declare ffDebugConfigRet. |
| src/common/attributes.h | Add FF_A_COLD attribute macro. |
| doc/json_schema.json | Document new CPU/GPU placeholders and new GPU detection method; reorder packages placeholders docs. |
| debian/changelog.tpl | Add Ubuntu template entry for 2.64.2. |
| CMakeLists.txt | Require linux headers on Linux; derive PACKAGE_MANAGERS from option.h; add cpu_x86.c; adjust feature defines to PUBLIC; update wayland protocol sources. |
| CHANGELOG.md | Add v2.65.0 release notes. |
| .gitignore | Anchor and broaden build directory ignore patterns. |
| .github/workflows/ci.yml | Add job dependency chaining (needs) starting with spellcheck/no-features-test. |
| .github/workflows/build-spellcheck.yml | Install codespell via pip instead of apt. |
| .github/workflows/build-openbsd-amd64.yml | Bump OpenBSD version and package versions. |
| .codespellrc | Expand skip list for generated/protocol/build files; add additional ignored words. |
The code quality is to be improved...
Comment on lines
+66
to
+71
| if(LINUX) | ||
| CHECK_INCLUDE_FILE("linux/version.h" HAVE_LINUX_VERSION_H) | ||
| if(NOT HAVE_LINUX_VERSION_H) | ||
| message(FATAL_ERROR "Linux headers (linux/version.h) not found! Please install linux-headers package.") | ||
| endif() | ||
| endif() |
Comment on lines
+1
to
+5
| fastfetch (2.64.2~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium | ||
|
|
||
| * Update to 2.64.2 | ||
|
|
||
| -- Carter Li <zhangsongcui@live.cn> Mon, 08 Jun 2026 15:45:11 +0800 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist