Skip to content

fastfetch: add new package - #27949

Open
betonmischer86 wants to merge 1 commit into
openwrt:masterfrom
betonmischer86:master-fastfetch
Open

betonmischer86 wants to merge 1 commit into
openwrt:masterfrom
betonmischer86:master-fastfetch

Conversation

@betonmischer86

@betonmischer86 betonmischer86 commented Nov 25, 2025 •

Copy link
Copy Markdown

📦 Package Details

Maintainer: @betonmischer86

Description:
Fastfetch is a Neofetch-like tool for fetching system information and displaying it in a visually-appealing way.


🧪 Run Testing Details

  • OpenWrt Version: OpenWrt SNAPSHOT r31813
  • OpenWrt Target/Subtarget: mediatek/filogic
  • OpenWrt Device: Banana Pi BPI-R4 (2x SFP+)

✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

If your PR contains a patch:

  • It can be applied using git am
  • It has been refreshed to avoid offsets, fuzzes, etc., using
    make package/<your-package>/refresh V=s
  • It is structured in a way that it is potentially upstreamable
    (e.g., subject line, commit description, etc.)
    We must try to upstream patches to reduce maintenance burden.

@GeorgeSapkin GeorgeSapkin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As with the other PRs, you need to set yourself as the maintainer and don't need to include the license file.

Comment thread utils/fastfetch/Makefile Outdated
@betonmischer86

Copy link
Copy Markdown
Author

As with the other PRs, you need to set yourself as the maintainer and don't need to include the license file.

Done.

@AlbrechtL

Copy link
Copy Markdown
Contributor

It seems that this PR is not merged for some time. Is there is any reason for it?

Because tools like fastfetch are really nice and missing in OpenWrt. I opened a new PR here #29564. But I can close it when this PR is merged.

@BKPepe

BKPepe commented May 26, 2026

Copy link
Copy Markdown
Member

Yes, it is described by this comment #29564 (comment)

@betonmischer86
betonmischer86 force-pushed the master-fastfetch branch 5 times, most recently from cf6086a to 3ff77a1 Compare June 5, 2026 12:04
@betonmischer86

Copy link
Copy Markdown
Author

@GeorgeSapkin I updated this PR following the recent discussion at #29564. The binary has been trimmed down to 773K, extra dependencies and shell completion files removed.

@NatoBoram

Copy link
Copy Markdown

In the meantime, it's possible to install it from Alpine:

#!/bin/ash

apk --allow-untrusted --arch armv7 --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/community fetch fastfetch
apk --allow-untrusted --arch armv7 --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/main fetch hwdata-pci

apk --allow-untrusted add hwdata-pci-*.apk
gzip -dc fastfetch-*.apk | tar -xf - -C /

rm fastfetch-*.apk hwdata-pci-*.apk
fastfetch
OS: OpenWrt 25.12.4 armv7l
Host: Linksys WRT3200ACM
Kernel: Linux 6.12.87
Uptime: 2 hours, 6 mins
Packages: 194 (apk)
Shell: ash 1.37.0
Terminal: dropbear
CPU: armada380 (2)
Memory: 258.85 MiB / 495.00 MiB (52%)
Swap: Disabled
Disk (/): 22.92 MiB / 54.65 MiB (42%) - overlay
Locale: C

@CarterLi

CarterLi commented Jun 6, 2026

Copy link
Copy Markdown

-DCMAKE_EXE_LINKER_FLAGS="-Wl,--strip-all" -DCMAKE_C_FLAGS="-fno-unwind-tables -fno-asynchronous-unwind-tables" may be added to reduce binary size slightly. In addition, /usr/share/fastfetch/presets may also be omitted.

@betonmischer86

betonmischer86 commented Jun 6, 2026 •

Copy link
Copy Markdown
Author

-DCMAKE_EXE_LINKER_FLAGS="-Wl,--strip-all" -DCMAKE_C_FLAGS="-fno-unwind-tables -fno-asynchronous-unwind-tables" may be added to reduce binary size slightly.

@CarterLi Thanks, that allowed to shave off an extra 170K. As for the supported package managers, I see no harm in keeping the default cmake options since that doesn't take any extra space.

@BKPepe
BKPepe force-pushed the master-fastfetch branch from 8901ac3 to f217682 Compare July 6, 2026 08:10

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 new commit (new package fastfetch). CI is green across all target architectures and the upstream tag 2.64.2 / PKG_HASH and source URL check out. One inline comment on the CMAKE_OPTIONS flag handling; the commit message matches the diff.


Generated by Claude Code

Comment thread utils/fastfetch/Makefile Outdated

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 new commit. The only change since my last review is the 2.64.2 → 2.67.0 bump; tag 2.67.0 exists upstream and the rest of the Makefile is unchanged, and the commit message still matches the diff.

Checked against the 2.67.0 tree: the find src/logo/ascii/[a-z]/ prune in Build/Prepare still matches upstream's layout (logo entries are #ifdef-guarded and CMake globs [a-z_]/*.txt), every MODULE_DISABLE_* name still resolves to a directory under src/modules, and elfutils is still needed for ENABLE_ELF. Two of the -DENABLE_* flags went stale with the bump — inline comment. Worth noting that 2.67.0 raises the minimum compiler to GCC 13 / Clang 16 for C23; OpenWrt master ships 13.4 and 15.3, so that is covered, but it rules out older stable toolchains. My earlier comment on -DCMAKE_C_FLAGS / -DCMAKE_EXE_LINKER_FLAGS inside CMAKE_OPTIONS still applies.


Generated by Claude Code

Comment thread utils/fastfetch/Makefile Outdated
Fastfetch is a Neofetch-like tool for fetching system information and
displaying it in a visually-appealing way.

Signed-off-by: Valeriy Kosikhin <vkosikhin@gmail.com>

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 new commit — the head was amended since my last review: 2.67.0 → 2.67.1 plus fixes for both earlier findings.

Both are addressed correctly. -fno-unwind-tables -fno-asynchronous-unwind-tables and -Wl,--strip-all now go through TARGET_CFLAGS / TARGET_LDFLAGS, which include/cmake.mk appends to (CFLAGS= env at cmake.mk#L92, -DCMAKE_EXE_LINKER_FLAGS at #L109) instead of replacing, so the target flags survive now. And ENABLE_VA / ENABLE_DRM_AMDGPU are gone in favour of ENABLE_VADRM / ENABLE_VAX11, both of which exist in 2.67.1 and default to ON on Linux — checked against the tag, where the two old names no longer appear at all.

Tag 2.67.1 exists upstream (released 2026-08-14; the delta over 2.67.0 is bugfixes plus a CMake-time C23 compiler check). PKG_RELEASE:=1 is right for a not-yet-merged new package, and the commit message still matches the diff, so no commit-check findings. I was not able to fetch the tarball in this environment, so PKG_HASH is unverified from my side.

Two optional-dependency questions inline; neither blocks a merge.


Generated by Claude Code

Comment thread utils/fastfetch/Makefile
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:fastfetch-cli:fastfetch

PKG_BUILD_DEPENDS:=elfutils

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ENABLE_ELF is left at its upstream default ON — cmake_dependent_option(ENABLE_ELF "Enable libelf" ON "LINUX OR ANDROID OR DragonFly OR Haiku OR GNU" OFF) in fastfetch 2.67.1 CMakeLists.txt — which is why elfutils is needed here. But the package declares no DEPENDS, so libelf is not on the device after install.

If libelf were linked directly, packaging would fail: CheckDependencies in include/package-pack.mk:271-290 rejects any NEEDED library not covered by a declared dependency, and the build is clean. So fastfetch is dlopen-ing libelf at runtime, meaning the ELF code path is compiled in but can never activate on a stock install.

Given how aggressively the rest of this Makefile trims features for size, is keeping it intentional? Either -DENABLE_ELF=OFF (and then PKG_BUILD_DEPENDS:=elfutils can go too) or DEPENDS:=+libelf would make the two ends agree.


Generated by Claude Code

Comment thread utils/fastfetch/Makefile
-DENABLE_ZLIB=OFF \
-DENABLE_QUICKJS=OFF \
-DENABLE_LIBZFS=OFF \
-DENABLE_WCWIDTH=OFF \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: ENABLE_LUA is the one optional-library switch left at its upstream default — option(ENABLE_LUA "Enable lua scripting for format strings" ON) in fastfetch 2.67.1 CMakeLists.txt — while every other optional library in this block is explicitly turned off.

That leaves the result dependent on what happens to be in staging: OpenWrt core's lua package installs lua.pc into the staging pkgconfig dir, so a buildroot that has already built lua produces a different (larger) fastfetch than one that hasn't. Deliberate, or should it get -DENABLE_LUA=OFF alongside the rest?


Generated by Claude Code

@m00qek

m00qek commented Oct 1, 2026

Copy link
Copy Markdown

Not sure if this would fulfill your need, but I created an alternative in Openwrt's ucode called owrtfetch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants