Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
3ad5d5c
Sound (FreeBSD): report OSS ABI version
CarterLi Jan 26, 2025
1c4953a
Sound (NetBSD): use OSS instead of pulseaudio
CarterLi Jan 26, 2025
4e9fecc
Sound (NetBSD): don't assume readlink reports file name only
CarterLi Jan 26, 2025
1279bbc
CPU (Linux): rework cpuinfo parsing
CarterLi Jan 27, 2025
b76e626
Sound (OpenBSD): Use sndio instead of pulseaudio
CarterLi Jan 26, 2025
4d842ac
CPU (Linux): fix build on PPC
CarterLi Jan 27, 2025
3d8050f
Sound (NetBSD): use kernel APIs instead of the OSS wrapper
CarterLi Jan 27, 2025
abadcb9
CMake (OpenBSD): remove pulseaudio detection
CarterLi Jan 27, 2025
fe7c4f7
Disk (BSD): silence compiler warnings
CarterLi Jan 27, 2025
33c905a
Logo (Builtin): change arch_old logo colours to be more accurate to t…
sirenuf Jan 31, 2025
01f400c
Haiku: minimal implementation (#1538)
mmuman Feb 5, 2025
d1ba690
Chore: fix typo
CarterLi Feb 5, 2025
dd67010
CMake (Haiku): fix an invalid file name
CarterLi Feb 5, 2025
fc8ddce
Chore: use `ffStrEquals` instead of `strcmp`
CarterLi Feb 5, 2025
dc5ff01
Logo (Builtin): add Nexa Linux logo (#1539)
komaru-meow Feb 5, 2025
71a2e55
Logo (Builtin): add filotimo logo (#1535)
fesdonomist Feb 5, 2025
9221e2b
Logo (Builtin): remove left padding of filotimo
CarterLi Feb 5, 2025
70820e4
Packaging: update debian stuff [ci skip]
CarterLi Feb 5, 2025
76710c8
Temps (macOS): support M4x
CarterLi Feb 5, 2025
994a8b4
GPU (Nvidia): fall back to `nvmlDeviceGetMemoryInfo` if `nvmlDeviceGe…
CarterLi Feb 5, 2025
c302325
GPU (macOS): use `recommendedMaxWorkingSetSize` as total GPU mem size
CarterLi Feb 5, 2025
63cc8e5
Camera (macOS): make fastfetch compiled on newer macOS versions runs …
CarterLi Feb 5, 2025
7f21202
Processing (Unix): better `pipe2(2)` existance check
CarterLi Feb 5, 2025
edcd799
CMake (Haiku): fix build
CarterLi Feb 5, 2025
5a04a2e
Doc: update license
CarterLi Feb 5, 2025
3565012
CPU (Linux): detect for `model name` on unknown platform
CarterLi Feb 5, 2025
8774fb3
Shell (OpenBSD): trim `-` for login shells
CarterLi Feb 5, 2025
8f27e43
Logo (Builtin): fix color of Haiku in light mode
CarterLi Feb 6, 2025
49bb957
Logo (Builtin): simplify RebornOS
CarterLi Feb 6, 2025
b306249
Logo (Builtin): update some distro names
CarterLi Feb 6, 2025
1d21d02
CPU (Linux): support physical core count and package count detection …
CarterLi Feb 7, 2025
f2755a8
Logo (Builtin): split `ID_LIKE` before using
CarterLi Feb 7, 2025
292fa06
Display: capitalize `{type}`'s output (#1543)
zhon12345 Feb 7, 2025
263d290
CPU (Linux): add cpu name detection for s390x
CarterLi Feb 8, 2025
99e8d1f
CPU (Linux): loosely detect cpu name of unknown platform
CarterLi Feb 8, 2025
a016397
OS (Linux): combine all armbian variants (#1547)
JohnTheCoolingFan Feb 8, 2025
e021cfe
Doc: update changelog [ci skip]
CarterLi Feb 8, 2025
486ade0
Logo (Builtin): KDE -> KDE Neon
CarterLi Feb 8, 2025
016b1e6
Format: support syntax of `{$ENV_VAR}` in custom format
CarterLi Feb 8, 2025
5957831
OpenGL (Haiku): enable support
CarterLi Feb 9, 2025
339e08f
Release: v2.36.0
CarterLi Feb 9, 2025
85ed4b1
Terminal (Linux): improve performance of Tilix version detection
CarterLi Feb 10, 2025
1eef6f8
CPU: remove useless `w/ Radeon 780M Graphics`
CarterLi Feb 10, 2025
3bc6be9
CI: add linux-s390x
CarterLi Feb 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 51 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
run: ldd fastfetch

- name: run tests
run: ctest
run: ctest --output-on-failure

linux-amd64:
name: Linux-amd64
Expand Down Expand Up @@ -111,7 +111,7 @@ jobs:
run: ldd fastfetch

- name: run tests
run: ctest
run: ctest --output-on-failure

- name: get fastfetch version
id: ffversion
Expand Down Expand Up @@ -150,7 +150,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -189,7 +189,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -225,7 +225,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -260,7 +260,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -295,14 +295,49 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
with:
name: fastfetch-linux-ppc64le
path: ./fastfetch-*.*

linux-s390x:
name: Linux-s390x
runs-on: ubuntu-22.04
permissions:
security-events: write
contents: read
steps:
- name: checkout repository
uses: actions/checkout@v4

- name: run VM
uses: uraimo/run-on-arch-action@v2
id: runcmd
with:
arch: s390x
distro: ubuntu20.04
githubToken: ${{ github.token }}
run: |
uname -a
apt-get update && apt-get install -y cmake make g++ libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libxfconf-0-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev libosmesa6-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libchafa-dev libelf-dev directx-headers-dev rpm
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr .
cmake --build . --target package --verbose -j4
./fastfetch --list-features
time ./fastfetch -c presets/ci.jsonc --stat false
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
with:
name: fastfetch-linux-s390x
path: ./fastfetch-*.*

musl-amd64:
name: Musl-amd64
runs-on: ubuntu-latest
Expand Down Expand Up @@ -334,7 +369,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure
shell: alpine.sh {0}

- name: upload artifacts
Expand Down Expand Up @@ -390,7 +425,7 @@ jobs:
run: otool -L fastfetch

- name: run tests
run: ctest
run: ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -422,7 +457,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure
cpack

- name: upload artifacts
Expand Down Expand Up @@ -460,7 +495,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -495,7 +530,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -531,7 +566,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -567,7 +602,7 @@ jobs:
time ./fastfetch -c presets/ci.jsonc --format json
time ./flashfetch
ldd fastfetch
ctest
ctest --output-on-failure

- name: upload artifacts
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -626,7 +661,7 @@ jobs:
run: ldd fastfetch

- name: run tests
run: ctest
run: ctest --output-on-failure

- name: create zip archive
run: 7z a -tzip -mx9 -bd -y fastfetch-windows-amd64.zip LICENSE *.dll fastfetch.exe flashfetch.exe presets
Expand All @@ -651,6 +686,7 @@ jobs:
- linux-armv6
- linux-riscv64
- linux-ppc64le
- linux-s390x
- musl-amd64
- macos-universal
- freebsd-amd64
Expand Down
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
# 2.36.0

Bugfixes:
* Trim leading slash for login shells (Shell, OpenBSD)
* Prefer SOC name if available over CPU name (CPU, Linux)

Features:
* Use kernel API to detect sound devices (Sound, NetBSD)
* Use sndio for sound server detection on OpenBSD (Sound, OpenBSD)
* Add minimal implementation for Haiku (#1538, Haiku)
* Support CPU & GPU temperature detection for M4x (CPU / GPU, macOS)
* Support VMEM size detection for old Nvidia cards (GPU, Linux)
* Use [recommendedMaxWorkingSetSize](https://developer.apple.com/documentation/metal/mtldevice/recommendedmaxworkingsetsize) as total GPU mem size (GPU, macOS)
* Support Physical core count and CPU package count detection for loongarch (CPU, Linux)
* Split ID_LIKE when used for distro matching (#1540, Logo)
* Capitalize `{type}`'s first letter in custom format (#1543, Display)
* Support model name detection for s390x (CPU, Linux)
* Support more Armbian variants detection (#1547, OS, Linux)
* Support the syntax of `{$ENV_VAR}` in custom format, which will be replaced by the value of the environment variable `ENV_VAR` (#1541)
* This is another way to pass 3rd-party data to fastfetch besides `Custom` module.
* Improve performance of Tilix version detection (Terminal, Linux)

Logo:
* Update arch_old
* Add Nexa Linux
* Add filotimo
* Update some distro names

# 2.35.0

Bugfixes:
Expand Down
98 changes: 91 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url

project(fastfetch
VERSION 2.35.0
VERSION 2.36.0
LANGUAGES C
DESCRIPTION "Fast neofetch-like system information tool"
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"
Expand Down Expand Up @@ -30,6 +30,8 @@ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")
set(DragonFly TRUE CACHE BOOL "..." FORCE)
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")
set(SunOS TRUE CACHE BOOL "..." FORCE)
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Haiku")
set(Haiku TRUE CACHE BOOL "..." FORCE)
elseif(NOT APPLE AND NOT WIN32)
message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif()
Expand Down Expand Up @@ -70,12 +72,12 @@ cmake_dependent_option(ENABLE_IMAGEMAGICK7 "Enable imagemagick 7" ON "LINUX OR F
cmake_dependent_option(ENABLE_IMAGEMAGICK6 "Enable imagemagick 6" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR APPLE OR SunOS" OFF)
cmake_dependent_option(ENABLE_CHAFA "Enable chafa" ON "ENABLE_IMAGEMAGICK6 OR ENABLE_IMAGEMAGICK7" OFF)
cmake_dependent_option(ENABLE_ZLIB "Enable zlib" ON "ENABLE_IMAGEMAGICK6 OR ENABLE_IMAGEMAGICK7" OFF)
cmake_dependent_option(ENABLE_EGL "Enable egl" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR ANDROID OR WIN32 OR SunOS" OFF)
cmake_dependent_option(ENABLE_GLX "Enable glx" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR ANDROID OR SunOS" OFF)
cmake_dependent_option(ENABLE_EGL "Enable egl" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR ANDROID OR WIN32 OR SunOS OR Haiku" OFF)
cmake_dependent_option(ENABLE_GLX "Enable glx" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR ANDROID OR SunOS OR Haiku" OFF)
cmake_dependent_option(ENABLE_OSMESA "Enable osmesa" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR SunOS" OFF)
cmake_dependent_option(ENABLE_OPENCL "Enable opencl" ON "LINUX OR FreeBSD OR OpenBSD OR NetBSD OR WIN32 OR ANDROID OR SunOS" OFF)
cmake_dependent_option(ENABLE_FREETYPE "Enable freetype" ON "ANDROID" OFF)
cmake_dependent_option(ENABLE_PULSE "Enable pulse" ON "LINUX OR OpenBSD OR NetBSD OR SunOS" OFF)
cmake_dependent_option(ENABLE_PULSE "Enable pulse" ON "LINUX OR SunOS" OFF)
cmake_dependent_option(ENABLE_DDCUTIL "Enable ddcutil" ON "LINUX" OFF)
cmake_dependent_option(ENABLE_DIRECTX_HEADERS "Enable DirectX headers for WSL" ON "LINUX" OFF)
cmake_dependent_option(ENABLE_ELF "Enable libelf" ON "LINUX OR ANDROID OR DragonFly" OFF)
Expand Down Expand Up @@ -139,7 +141,7 @@ set(WARNING_FLAGS "-Wall -Wextra -Wconversion -Werror=uninitialized -Werror=retu
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=incompatible-pointer-types -Werror=implicit-function-declaration -Werror=int-conversion")

if(WIN32 OR ENABLE_DIRECTX_HEADERS)
if(WIN32 OR HAIKU OR ENABLE_DIRECTX_HEADERS)
enable_language(CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}")
Expand Down Expand Up @@ -761,7 +763,7 @@ elseif(NetBSD)
src/detection/poweradapter/poweradapter_nosupport.c
src/detection/processes/processes_nbsd.c
src/detection/gtk_qt/qt.c
src/detection/sound/sound_linux.c
src/detection/sound/sound_nbsd.c
src/detection/swap/swap_obsd.c
src/detection/terminalfont/terminalfont_linux.c
src/detection/terminalshell/terminalshell_linux.c
Expand Down Expand Up @@ -843,7 +845,7 @@ elseif(OpenBSD)
src/detection/poweradapter/poweradapter_nosupport.c
src/detection/processes/processes_obsd.c
src/detection/gtk_qt/qt.c
src/detection/sound/sound_linux.c
src/detection/sound/sound_obsd.c
src/detection/swap/swap_obsd.c
src/detection/terminalfont/terminalfont_linux.c
src/detection/terminalshell/terminalshell_linux.c
Expand Down Expand Up @@ -1088,6 +1090,74 @@ elseif(SunOS)
src/util/platform/FFPlatform_unix.c
src/util/binary_linux.c
)
elseif(Haiku)
list(APPEND LIBFASTFETCH_SRC
src/common/io/io_unix.c
src/common/netif/netif_haiku.c
src/common/networking_linux.c
src/common/processing_linux.c
src/detection/battery/battery_nosupport.c
src/detection/bios/bios_nosupport.c
src/detection/board/board_nosupport.c
src/detection/bootmgr/bootmgr_nosupport.c
src/detection/brightness/brightness_nosupport.c
src/detection/btrfs/btrfs_nosupport.c
src/detection/chassis/chassis_nosupport.c
src/detection/cpu/cpu_nosupport.c
src/detection/cpucache/cpucache_nosupport.c
src/detection/cpuusage/cpuusage_nosupport.c
src/detection/cursor/cursor_nosupport.c
src/detection/bluetooth/bluetooth_nosupport.c
src/detection/bluetoothradio/bluetoothradio_nosupport.c
src/detection/disk/disk_nosupport.c
src/detection/dns/dns_linux.c
src/detection/physicaldisk/physicaldisk_nosupport.c
src/detection/physicalmemory/physicalmemory_nosupport.c
src/detection/diskio/diskio_nosupport.c
src/detection/displayserver/displayserver_haiku.cpp
src/detection/font/font_haiku.cpp
src/detection/gpu/gpu_nosupport.c
src/detection/gpu/gpu_pci.c
src/detection/gtk_qt/gtk.c
src/detection/host/host_nosupport.c
src/detection/icons/icons_nosupport.c
src/detection/initsystem/initsystem_nosupport.c
src/detection/keyboard/keyboard_nosupport.c
src/detection/libc/libc_nosupport.c
src/detection/lm/lm_nosupport.c
src/detection/loadavg/loadavg_nosupport.c
src/detection/locale/locale_linux.c
src/detection/localip/localip_linux.c
src/detection/gamepad/gamepad_nosupport.c
src/detection/media/media_nosupport.c
src/detection/memory/memory_haiku.c
src/detection/mouse/mouse_nosupport.c
src/detection/netio/netio_nosupport.c
src/detection/opengl/opengl_linux.c
src/detection/os/os_haiku.c
src/detection/packages/packages_haiku.c
src/detection/poweradapter/poweradapter_nosupport.c
src/detection/processes/processes_haiku.c
src/detection/gtk_qt/qt.c
src/detection/sound/sound_nosupport.c
src/detection/swap/swap_haiku.c
src/detection/terminalfont/terminalfont_linux.c
src/detection/terminalshell/terminalshell_linux.c
src/detection/terminalsize/terminalsize_linux.c
src/detection/theme/theme_nosupport.c
src/detection/tpm/tpm_nosupport.c
src/detection/uptime/uptime_haiku.c
src/detection/users/users_linux.c
src/detection/wallpaper/wallpaper_nosupport.c
src/detection/wifi/wifi_nosupport.c
src/detection/wm/wm_nosupport.c
src/detection/de/de_nosupport.c
src/detection/wmtheme/wmtheme_nosupport.c
src/detection/camera/camera_nosupport.c
src/detection/zpool/zpool_nosupport.c
src/util/platform/FFPlatform_unix.c
src/util/binary_linux.c
)
endif()

if(ENABLE_DIRECTX_HEADERS)
Expand All @@ -1112,6 +1182,9 @@ endif()
if(LINUX)
check_function_exists(statx HAVE_STATX)
endif()
if(NOT WIN32)
check_function_exists(pipe2 HAVE_PIPE2)
endif()

if(ENABLE_SYSTEM_YYJSON)
find_package(yyjson)
Expand Down Expand Up @@ -1226,6 +1299,10 @@ if(HAVE_WCWIDTH)
target_compile_definitions(libfastfetch PUBLIC FF_HAVE_WCWIDTH)
endif()

if(HAVE_PIPE2)
target_compile_definitions(libfastfetch PUBLIC FF_HAVE_PIPE2)
endif()

if(NOT "${CUSTOM_PCI_IDS_PATH}" STREQUAL "")
message(STATUS "Custom file path of pci.ids: ${CUSTOM_PCI_IDS_PATH}")
target_compile_definitions(libfastfetch PRIVATE FF_CUSTOM_PCI_IDS_PATH=${CUSTOM_PCI_IDS_PATH})
Expand Down Expand Up @@ -1504,6 +1581,7 @@ elseif(OpenBSD)
target_link_libraries(libfastfetch
PRIVATE "m"
PRIVATE "kvm"
PRIVATE "sndio"
)
elseif(NetBSD)
target_link_libraries(libfastfetch
Expand Down Expand Up @@ -1533,6 +1611,12 @@ elseif(ANDROID)
)
endif()
endif()
elseif(Haiku)
target_link_libraries(libfastfetch
PRIVATE "network"
PRIVATE "be"
PRIVATE "gnu"
)
endif()

target_include_directories(libfastfetch
Expand Down
Loading
Loading