Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
7fdd1d8
LocalIP / NetIO / DNS (Windows): improves performance
CarterLi Sep 26, 2026
36dc82e
Bootmgr: cleans code
CarterLi Sep 26, 2026
fb52d32
Packages (Linux): uses getdirent64(2) directly
CarterLi Sep 26, 2026
9801d89
Brightness (Linux): fixes random built-in flag and stdout leak in DDC…
ihsandeniz Sep 26, 2026
676dbcf
Vulkan: fixes driver name concatenation on multi-GPU systems (#2620)
ihsandeniz Sep 27, 2026
f00a021
Completion (Bash): fixes `--config`/`-c` path completion splitting on…
MegaManSec Sep 27, 2026
5246f14
Doc: updates info about image logo on Windows
CarterLi Sep 27, 2026
8063292
Doc: uses the temp domain of repology [ci skip]
CarterLi Sep 27, 2026
cdbe8f5
TerminalFont (Linux): uses ffFontInitXft to parse foot terminal font
CarterLi Sep 28, 2026
4fb57bb
Global (Windows): eliminates `SHGetKnownFolderPath`
CarterLi Sep 28, 2026
a3f46d9
CPU (Linux): make Snapdragon X1/X2 detection more correct (#2625)
JamiKettunen Sep 29, 2026
ffbf4ec
Logo (Builtin): rename postmarketos to nura (#2626)
fossdd Sep 29, 2026
6ff7925
Packages (macOS): prefers `getdirentries64`
CarterLi Sep 29, 2026
f0d8c99
Sound (Linux): uses raw pulseaudio protocol
CarterLi Sep 29, 2026
2838dcc
Sound (Android): adds support via /dev/binder
CarterLi Sep 29, 2026
c88ec3b
Android: improves performance of dex parsing
CarterLi Sep 29, 2026
47fbfcb
Media (Android): fixes the descriptors a media session reply delivere…
CarterLi Sep 29, 2026
ef853fe
Brightness (Linux): adds a native impl
CarterLi Sep 30, 2026
4d8d6a5
Brightness (Linux): removes ddcutil dep
CarterLi Sep 30, 2026
ab20063
Battery (Android): adds temperature and remaining time detection
CarterLi Oct 1, 2026
a9bf53b
Logo: add filled Artix logo to match filled Arch logo (#2631)
KashieLuna Oct 2, 2026
782b7b8
Display (macOS): don't read CGDisplayModeRef's private layout
CarterLi Oct 2, 2026
109644e
Disk (Haiku): fixes `/boot` being removed by `hideFolders`
CarterLi Oct 2, 2026
cee2735
Battery (Android): removes `dumpsys` path
CarterLi Oct 2, 2026
ae4cbcb
Global: removes quickjs-ng completely
CarterLi Oct 2, 2026
7099964
Release: v2.70.0
CarterLi Oct 2, 2026
39d667d
CI: Bump the github-actions group with 5 updates (#2623)
dependabot[bot] Oct 2, 2026
54dcb1b
Wifi (SunOS): eliminates a `maybe-uninitialized` warning
CarterLi Oct 2, 2026
a57ebe9
Battery (Windows): eliminates a compiler warning [ci skip]
CarterLi Oct 2, 2026
68c5dd3
Global: marks `ffGenerate*JsonConfig` as `[[gnu::cold]]`
CarterLi Oct 2, 2026
3d0747b
Common (Windows): optimises ico generation
CarterLi Oct 2, 2026
5f65515
CMake: reduces binary size
CarterLi Oct 2, 2026
7f458b0
CMake: moves `no-pie` config to CI configs
CarterLi Oct 3, 2026
b201fd2
Common: improves reliability of FF_DEBUG
CarterLi Oct 3, 2026
ae1288d
Global (Windows): adds more FF_DEBUG
CarterLi Oct 3, 2026
1b3594f
Global: adds more FF_DEBUG
CarterLi Oct 3, 2026
95bcc4d
Common: adds more FF_DEBUG
CarterLi Oct 3, 2026
537ffac
Chore: forces `eol=lf`
CarterLi Oct 3, 2026
8102478
Global: prefers `gnu::cleanup`
CarterLi Oct 3, 2026
995d172
Global: Added Finnish support (#2633)
KalleTuhkala Oct 3, 2026
0f712b4
CMake (macOS): fixes a linker warning
CarterLi Oct 3, 2026
e02e44f
Global: fixes compiling
CarterLi Oct 3, 2026
9ac3822
CI: removes codespell
CarterLi Oct 3, 2026
460a715
Logo (Image): fixes a possible building failure
CarterLi Oct 4, 2026
6e2a257
Networking: removes compression support
CarterLi Oct 4, 2026
1989c6f
Codec (Linux): eliminates a compiler warning [ci skip]
CarterLi Oct 5, 2026
845d598
CI: Bump the github-actions group with 6 updates (#2636)
dependabot[bot] Oct 5, 2026
d5e50ee
CI: Bump the github-actions group across 1 directory with 5 updates (…
dependabot[bot] Oct 5, 2026
3a069b2
Packages (macOS): adds pkgsrc detection on macOS (#2627)
Tyagiquamar Oct 5, 2026
2bcd49c
Networking: removes unused decls
CarterLi Oct 5, 2026
fb89af3
Common: adds `zlib` helpers
CarterLi Oct 5, 2026
4909ac0
OpenBSD: eliminates some compiler warnings
CarterLi Oct 6, 2026
04a5c2d
Camera (Android): tidy
CarterLi Oct 6, 2026
10ca4f1
Global (Android): fixes building on old API level
CarterLi Oct 6, 2026
66709cc
CI: adds android
CarterLi Oct 6, 2026
9859b24
Platform: prefers the passwd shell over $SHELL
CarterLi Oct 7, 2026
35a35f0
Android: fixes binaries built via NDK running on Termux
CarterLi Oct 7, 2026
1e0ec10
Doc: fixes repology URLs (#2643) [ci skip]
AMDmi3 Oct 7, 2026
30d6fb5
LocalIP (macOS): fixes MAC address reporting 20:00:00:00:00:00 on mac…
CarterLi Oct 9, 2026
262a8ca
Processing: adds more debug info
CarterLi Oct 9, 2026
a7e1930
Processing (Windows): handles `ERROR_PATH_NOT_FOUND`
CarterLi Oct 10, 2026
0806145
Command (Windows): detects `command not found` error (WIP)
CarterLi Oct 10, 2026
07a7211
Command: extends `useStdErr` to `useOutput`
CarterLi Oct 10, 2026
132e69b
Percent: clamps bar width to 0% ~ 100%
CarterLi Oct 10, 2026
be51ba9
command not found
CarterLi Oct 10, 2026
de414b7
Common (Zlib): don't #define Z_LARGE64
CarterLi Oct 10, 2026
10379d6
Packages (Linux): hardens `getdents64` usage
CarterLi Oct 10, 2026
62617a3
Common (Debug): fixes possible errno lost
CarterLi Oct 10, 2026
10d6b3a
Display: fixes missing a lang option
CarterLi Oct 10, 2026
068d86e
Sound (Linux): updates comments
CarterLi Oct 10, 2026
124f474
Media (macOS): don't spawn child process
CarterLi Oct 10, 2026
e0361fd
Doc: updates changelog
CarterLi Oct 10, 2026
cc435d2
Platform (OpenBSD): uses getexecpath(3) if available
CarterLi Oct 10, 2026
7f9faeb
Display (Android): detects via binder
CarterLi Oct 10, 2026
d7b66c8
Common (Android): unifies dex parsers
CarterLi Oct 10, 2026
1f32e0b
Display (Android): removes old detection methods
CarterLi Oct 10, 2026
3ccaf2d
L10n (TR): proofreads Turkish module names (#2648)
ihsandeniz Oct 10, 2026
ab6ec4c
Media (Android): adds app uid support
CarterLi Oct 11, 2026
ad1d12e
Terminal (Android): reports real app display name instead of hard cod…
CarterLi Oct 11, 2026
3453de6
CI (Android): tries to fix building
CarterLi Oct 11, 2026
1e8b4eb
Gamepad (Windows): tidy
CarterLi Oct 11, 2026
29567e1
Chore: eliminates compiler warnings
CarterLi Oct 11, 2026
3b042d2
Sound (Linux): adds ALSA backend as a fallback
CarterLi Oct 11, 2026
1bab113
Display (Android): be compatible with Android 17
CarterLi Oct 12, 2026
b7bc8ca
Display (Android): adds `cmd display get-displays` back
CarterLi Oct 12, 2026
73ebe95
GPU (Pci): hardens the parser; adds tests
CarterLi Oct 12, 2026
f93ffed
Disk: fix Windows quota affecting free space and unify disk size calc…
CarterLi Oct 13, 2026
a9ee641
Display (Android): fixes Android display detection reporting nothing …
CarterLi Oct 13, 2026
2aa053a
Sound (Android): adds new bluetooth device type
CarterLi Oct 13, 2026
8a0c1d2
Wifi (Android): fixes Android 17 support
CarterLi Oct 13, 2026
cb73fdc
CI (macOS): installs the latest MacPorts release
CarterLi Oct 13, 2026
4f6a329
Gamepad (Windows): ensures cancelled read completion is fully awaited
CarterLi Oct 14, 2026
6eb3a81
Packages (macOS): falls back to pkgsrc's standard package database path
CarterLi Oct 14, 2026
fdd4a60
Packages (macOS): tidy [ci skip]
CarterLi Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 0 additions & 5 deletions .codespellrc

This file was deleted.

13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
# Normalise text files to LF in the repository and check them out with LF, so a CRLF
# never enters an object and never shows up as a whole-file diff on Windows.
* text=auto eol=lf

# The vendored AMD Display Library SDK ships with CRLF endings of its own. Leaving it
# alone keeps `Dep (3rdparty): upgrades display-library` from carrying a 7000-line
# whitespace diff, and a re-vendor will not fight the rule above.
src/3rdparty/display-library/** -text

# The logo fixtures store the exact bytes fastfetch prints, ANSI escapes included.
# They are demo data rather than text, and are not read by any test.
*.fflogo -text

*.h linguist-language=c
*.c linguist-language=c
163 changes: 163 additions & 0 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
name: Reusable Android

on:
workflow_call:
inputs:
abi:
required: true
type: string

permissions:
contents: read

env:
CMAKE_BUILD_TYPE: ${{ vars.CMAKE_BUILD_TYPE || 'RelWithDebInfo' }}

jobs:
build:
runs-on: ubuntu-24.04
steps:
- name: checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: uname -a
run: uname -a

# The NDK comes with the runner image, so nothing is downloaded here. The image is pinned to
# ubuntu-24.04 rather than ubuntu-latest because which NDK a build used is part of what it is.
#
# The image's *latest* NDK, not its default one: the default is r27d (clang 18), while fastfetch
# is built and shipped on Termux with clang 21. Testing three majors behind the compiler the
# supported path uses buys nothing and rejects code clang 21 accepts.
- name: print NDK version
run: |
echo "default: ${ANDROID_NDK_HOME}"
echo "latest: ${ANDROID_NDK_LATEST_HOME}"
test -f "${ANDROID_NDK_LATEST_HOME}/build/cmake/android.toolchain.cmake"
cat "${ANDROID_NDK_LATEST_HOME}/source.properties"
"${ANDROID_NDK_LATEST_HOME}"/toolchains/llvm/prebuilt/*/bin/clang --version

# freetype is the one library this build wants that the NDK does not ship: its headers are not
# in the sysroot and the runner image has no libfreetype-dev, so without this step
# ff_lib_enable(FREETYPE ...) prints "Library: missing: FREETYPE" and
# src/detection/terminalfont/terminalfont_android.c compiles only its #else branch. That is the
# branch the shipped Termux build never takes, so the freetype code would rot untested here.
#
# Handing it the host's copy is sound, for two reasons. fastfetch never links freetype --
# BINARY_LINK_TYPE is dlopen, so ff_lib_enable skips its target_link_libraries and only the
# include path and FF_HAVE_FREETYPE are needed. And freetype's public headers carry no host
# assumptions: FT_SIZEOF_LONG and FT_SIZEOF_INT in freetype/config/integer-types.h are derived
# from FT_ULONG_MAX/FT_UINT_MAX, which come from the *target's* <limits.h>, so the same copy
# describes FT_FaceRec -- and the offset of the family_name that terminalfont_android.c reads --
# correctly for aarch64, armv7 and x86_64 alike.
#
# pkg-config is the only route that can find it: the NDK toolchain leaves PKG_CONFIG_PATH,
# PKG_CONFIG_LIBDIR and PKG_CONFIG_SYSROOT_DIR untouched, so the ordinary host search path is
# what gets used.
#
# The .pc is written here rather than taken from libfreetype-dev, whose own copy carries
# `Requires.private: zlib, bzip2, libpng, harfbuzz, libbrotlidec`. pkgconf -- which is what
# `pkg-config` has been on Ubuntu since 22.10 -- fails outright on a private requirement it
# cannot resolve, even for --exists, and libfreetype-dev only pulls in libpng-dev and
# zlib1g-dev. Nothing is linked, so the include directory is the whole contract. A Version
# field is mandatory (pkgconf treats a .pc without one as not found), hence the sed.
- name: install freetype headers
run: |
sudo apt-get update && sudo apt-get install -y --no-install-recommends libfreetype-dev
test -f /usr/include/freetype2/ft2build.h
VERSION=$(awk '/^#define FREETYPE_(MAJOR|MINOR|PATCH)/ {printf "%s%s", sep, $3; sep="."}' /usr/include/freetype2/freetype/freetype.h)
test -n "${VERSION}"
mkdir -p freetype-pc
cat > freetype-pc/freetype2.pc <<'EOF'
prefix=/usr
includedir=${prefix}/include

Name: FreeType 2
Description: A free, high-quality, and portable font engine.
Version: 0
Cflags: -I${includedir}/freetype2
EOF
sed -i "s/^Version: .*/Version: ${VERSION}/" freetype-pc/freetype2.pc
PKG_CONFIG_PATH="$PWD/freetype-pc" pkg-config --cflags freetype2

# android-24 (Android 7.0) is Termux's own floor, and it is the floor for a second, independent
# reason: libcamera2ndk.so only exists from API 24, fastfetch links it unconditionally, and the
# NDK has no such thing as a weak *library* reference -- a build aimed lower would fail to load
# on exactly the devices it was aimed at. The level is also what makes this job check anything:
# at 24 the NDK marks AImageDecoder_* / AndroidBitmap_compress (30) and AMediaCodec_getName /
# AMediaCodec_releaseName (28) unavailable, which is what CMakeLists.txt's
# -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__ -Werror=unguarded-availability pair is built on.
# Building against a newer platform would quietly stop enforcing it.
#
# BUILD_TESTS stays off. The test binaries are host programs, there is no device here to run
# them on, and `ctest` therefore cannot follow -- unlike every other job in this workflow set.
# The platform branch of the build is what this job covers.
- name: configure project
env:
# Picks up the freetype2.pc written by the step above. The rest of the search path is left
# alone, so zlib and every other host .pc file is still found exactly as before.
PKG_CONFIG_PATH: ${{ github.workspace }}/freetype-pc
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=Off -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_LATEST_HOME}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=${{ inputs.abi }} -DANDROID_PLATFORM=android-24 -DCMAKE_INSTALL_PREFIX=/data/data/com.termux/files/usr .

# A silent regression back to "Library: missing: FREETYPE" would look exactly like a passing
# build -- the module would simply stop being compiled, and the only trace would be a line in
# the configure log nobody diffs. Assert that the define actually reached the compile line.
- name: check freetype was detected
run: |
grep -q -- '-DFF_HAVE_FREETYPE=1' CMakeFiles/libfastfetch.dir/flags.make || {
echo "::error::freetype was not detected, so terminalfont_android.c compiled its #else branch only"
grep -o -- '-DFF_HAVE_[A-Z0-9_]*' CMakeFiles/libfastfetch.dir/flags.make | sort -u
exit 1
}

- name: build project
run: cmake --build . --target package --verbose -j4

- name: print ELF header
run: readelf --wide -h fastfetch

- name: print dynamic dependencies
run: readelf --wide -d fastfetch

# libjnigraphics.so, libmediandk.so and libcamera2ndk.so are what provide the entry points
# CMakeLists.txt weakens. A weak reference resolves to null instead of failing the load, and
# FF_ANDROID_API_AT_LEAST() reads the platform level rather than the symbol -- so a library
# dropped from the link line still passes the guard on a device new enough, and the call goes
# through a null pointer. DT_NEEDED is the only place that mistake is visible.
- name: check linked libraries
run: |
for lib in libjnigraphics.so libmediandk.so libcamera2ndk.so; do
readelf --wide -d fastfetch | grep -q "NEEDED.*\[${lib}\]" || { echo "::error::${lib} is not in DT_NEEDED"; exit 1; }
done

# Every reference to an entry point the NDK marks unavailable at API 24 has to be weak: a strong
# one turns a device below API 28/30 into a load failure instead of a graceful downgrade, which
# is the entire reason those three files are compiled with -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__.
# `nm -D` prints a weak undefined symbol as `w` and a strong undefined one as `U`.
#
# The families are whole prefixes on purpose: every AImageDecoder* entry point is API 30 or 31,
# but the frame-info and header-info ones spell the prefix AImageDecoderFrameInfo / HeaderInfo
# without an underscore, and matching only `AImageDecoder_` would leave them unchecked. The
# AMediaCodec ones are named one by one because the rest of that API -- createDecoderByType,
# createEncoderByType, delete -- is API 21 and is correctly a strong reference.
- name: check weak references
run: |
nm -D fastfetch | grep -E ' (AImageDecoder|AndroidBitmap_compress|AMediaCodec_getName$|AMediaCodec_releaseName$)' > weak.txt
cat weak.txt
test -s weak.txt || { echo "::error::none of these entry points is referenced any more -- if the last use is gone on purpose, this check and the -Werror=unguarded-availability pair it guards should go with it"; exit 1; }
if grep -qv '^ *w ' weak.txt; then
echo "::error::expected every one of these to be a weak reference:"
grep -v '^ *w ' weak.txt
exit 1
fi

- name: print size
run: |
file fastfetch
ls -l fastfetch

- name: upload artifacts
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: fastfetch-android-${{ inputs.abi }}
path: ./fastfetch-*.*
2 changes: 1 addition & 1 deletion .github/workflows/build-benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
run: cp .github/benchmark-index.html "$RUNNER_TEMP/benchmark-index.html"

- name: store benchmark result
uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1
uses: benchmark-action/github-action-benchmark@4322e5726e6334590d251fc4f92bec0efafc45dc # v1.22.2
with:
name: Fastfetch
tool: customSmallerIsBetter
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-dragonfly-amd64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
sudo pkg install -y llvm cmake git pkgconf binutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm glib dconf dbus sqlite3-tcl egl opencl ocl-icd v4l_compat chafa libelf lua54 libva libvdpau

- name: CMake configuration
run: env CC=clang cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_BUILD_TYPE=${{ vars.CMAKE_BUILD_TYPE || 'RelWithDebInfo' }} .
run: env CC=clang cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_BUILD_TYPE=${{ vars.CMAKE_BUILD_TYPE || 'RelWithDebInfo' }} -DCMAKE_C_FLAGS="-fno-pie" -DCMAKE_EXE_LINKER_FLAGS="-no-pie" .

- name: CMake build
run: cmake --build . --target package --verbose -j4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-freebsd-amd64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
sudo pkg install -y cmake git pkgconf binutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm glib dconf dbus sqlite3 egl opencl ocl-icd v4l_compat chafa lua54 libva libvdpau

- name: CMake configuration
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_BUILD_TYPE=${{ vars.CMAKE_BUILD_TYPE || 'RelWithDebInfo' }} .
run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_BUILD_TYPE=${{ vars.CMAKE_BUILD_TYPE || 'RelWithDebInfo' }} -DCMAKE_C_FLAGS="-fno-pie" -DCMAKE_EXE_LINKER_FLAGS="-no-pie" .

- name: CMake build
run: cmake --build . --target package --verbose -j4
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build-linux-armv7l.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: run VM
uses: uraimo/run-on-arch-action@460cb8e6d9f726a588fc9b5e681c8a6cab09ae41 # v3.2.0
uses: uraimo/run-on-arch-action@fa1f3e7de95534497266c7265950b5188355fbfb # v3.2.1
id: runcmd
with:
arch: armv7
Expand All @@ -30,8 +30,8 @@ jobs:
curl -L https://apt.kitware.com/keys/kitware-archive-latest.asc | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
echo -e 'Acquire::https::Verify-Peer "false";\nAcquire::https::Verify-Host "false";' >> /etc/apt/apt.conf.d/99ignore-certificates
apt-get update && apt-get install -y cmake make gcc-13 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 libelf-dev libefl-all-dev liblua5.4-dev libvdpau-dev libva-dev rpm
CC=gcc-13 cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
apt-get update && apt-get install -y cmake make gcc-13 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 libdrm-dev libelf-dev libefl-all-dev liblua5.4-dev libvdpau-dev libva-dev rpm
CC=gcc-13 cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS="-fno-pie" -DCMAKE_EXE_LINKER_FLAGS="-no-pie" .
cmake --build . --target package --verbose -j4
./fastfetch --list-features
time ./fastfetch -c presets/ci.jsonc --stat false
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build-linux-hosts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test

- name: install required packages
run: sudo apt-get update && sudo apt-get install -y gcc-13 jq 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 libelf-dev libddcutil-dev libefl-all-dev libunwind-dev liblua5.4-dev libvdpau-dev libva-dev rpm ninja-build
run: sudo apt-get update && sudo apt-get install -y gcc-13 jq 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 libdrm-dev libelf-dev libefl-all-dev libunwind-dev liblua5.4-dev libvdpau-dev libva-dev rpm ninja-build

- name: install linuxbrew packages
run: |
Expand All @@ -52,19 +52,19 @@ jobs:

- name: Initialize CodeQL
if: inputs.arch == 'amd64'
uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
languages: c

- name: configure project
run: CC=gcc-13 CMAKE_PREFIX_PATH=/home/linuxbrew/.linuxbrew PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -GNinja -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr .
run: CC=gcc-13 CMAKE_PREFIX_PATH=/home/linuxbrew/.linuxbrew PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -GNinja -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS="-fno-pie" -DCMAKE_EXE_LINKER_FLAGS="-no-pie" .

- name: build project
run: cmake --build . --target package --verbose -j4

- name: perform CodeQL analysis
if: inputs.arch == 'amd64'
uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2

- name: list features
run: ./fastfetch --list-features
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-linux-i686.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test

- name: install required packages
run: sudo apt-get update && sudo apt-get install -y gcc-13 gcc-13-multilib 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 libelf-dev libddcutil-dev libefl-all-dev libunwind-dev liblua5.4-dev libvdpau-dev libva-dev rpm ninja-build
run: sudo apt-get update && sudo apt-get install -y gcc-13 gcc-13-multilib 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 libdrm-dev libelf-dev libefl-all-dev libunwind-dev liblua5.4-dev libvdpau-dev libva-dev rpm ninja-build

- name: install linuxbrew packages
run: |
Expand All @@ -40,7 +40,7 @@ jobs:
run: cmake --version

- name: configure project
run: CC=gcc-13 CMAKE_PREFIX_PATH=/home/linuxbrew/.linuxbrew PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DCMAKE_C_FLAGS="-m32 -march=i686 -mtune=i686" -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_VERSION=5.10.0 -DCMAKE_SYSTEM_PROCESSOR=i686 -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=i386 -GNinja -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr .
run: CC=gcc-13 CMAKE_PREFIX_PATH=/home/linuxbrew/.linuxbrew PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DCMAKE_C_FLAGS="-m32 -march=i686 -mtune=i686 -fno-pie" -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_VERSION=5.10.0 -DCMAKE_SYSTEM_PROCESSOR=i686 -DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=i386 -GNinja -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_EXE_LINKER_FLAGS="-no-pie" .

- name: build project
run: cmake --build . --target package --verbose -j4
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build-linux-loong64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: set up QEMU for loong64
uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4.4.0

- name: build in loong64 container
run: |
Expand All @@ -37,13 +37,13 @@ jobs:
libdconf-dev libdbus-1-dev libmagickcore-dev \
libsqlite3-dev librpm-dev \
libegl-dev libglx-dev ocl-icd-opencl-dev \
libpulse-dev libdrm-dev \
libdrm-dev \
libelf-dev libefl-all-dev \
liblua5.4-dev \
libvdpau-dev libva-dev \
rpm

cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS="-fno-pie" -DCMAKE_EXE_LINKER_FLAGS="-no-pie" .
cmake --build . --target package --verbose -j$(nproc)
./fastfetch --list-features
time ./fastfetch -c presets/ci.jsonc --stat false
Expand Down
Loading