Skip to content

Commit 510a1f5

Browse files
authored
Merge pull request #801 from fastfetch-cli/dev
Release: v2.10.0
2 parents 6769410 + a1c9b24 commit 510a1f5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+3643
-658
lines changed

.github/workflows/ci.yml

Lines changed: 80 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -19,58 +19,6 @@ jobs:
1919
- name: Run Spellchecker
2020
run: codespell
2121

22-
linux-buildtest:
23-
name: Linux build test
24-
permissions:
25-
contents: read
26-
strategy:
27-
fail-fast: false
28-
matrix:
29-
compiler: [
30-
{ cc: gcc, cxx: "g++" },
31-
{ cc: clang, cxx: "clang++" },
32-
{ cc: "musl-gcc", cxx: "musl-g++" }
33-
]
34-
enableFeatures: [ON, OFF]
35-
exclude:
36-
# The feature libraries are all build against glibc, so they can't be used with musl
37-
- compiler: { cc: "musl-gcc", cxx: "musl-g++" }
38-
enableFeatures: ON
39-
runs-on: ubuntu-22.04
40-
steps:
41-
- name: checkout repository
42-
uses: actions/checkout@v4
43-
44-
- name: uname -a
45-
run: uname -a
46-
47-
- name: install required packages
48-
run: sudo apt-get update && sudo apt-get install -y musl-dev musl-tools linux-headers-generic 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 libnm-dev libpulse-dev libddcutil-dev libchafa-dev libdrm-dev directx-headers-dev
49-
50-
- name: configure project
51-
env:
52-
CC: ${{ matrix.compiler.cc }}
53-
CXX: ${{ matrix.compiler.cxx }}
54-
run: cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_VULKAN=${{ matrix.enableFeatures }} -DENABLE_WAYLAND=${{ matrix.enableFeatures }} -DENABLE_XCB_RANDR=${{ matrix.enableFeatures }} -DENABLE_XCB=${{ matrix.enableFeatures }} -DENABLE_XRANDR=${{ matrix.enableFeatures }} -DENABLE_X11=${{ matrix.enableFeatures }} -DENABLE_GIO=${{ matrix.enableFeatures }} -DENABLE_DCONF=${{ matrix.enableFeatures }} -DENABLE_DBUS=${{ matrix.enableFeatures }} -DENABLE_XFCONF=${{ matrix.enableFeatures }} -DENABLE_SQLITE3=${{ matrix.enableFeatures }} -DENABLE_RPM=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK7=${{ matrix.enableFeatures }} -DENABLE_IMAGEMAGICK6=${{ matrix.enableFeatures }} -DENABLE_CHAFA=${{ matrix.enableFeatures }} -DENABLE_ZLIB=${{ matrix.enableFeatures }} -DENABLE_EGL=${{ matrix.enableFeatures }} -DENABLE_GLX=${{ matrix.enableFeatures }} -DENABLE_OSMESA=${{ matrix.enableFeatures }} -DENABLE_OPENCL=${{ matrix.enableFeatures }} -DENABLE_LIBNM=${{ matrix.enableFeatures }} -DENABLE_PULSE=${{ matrix.enableFeatures }} -DENABLE_DIRECTX_HEADERS=${{ matrix.enableFeatures }} -DENABLE_DRM=${{ matrix.enableFeatures }} -DENABLE_DDCUTIL=${{ matrix.enableFeatures }} -DENABLE_CHAFA=${{ matrix.enableFeatures }} .
55-
56-
- name: build project
57-
run: cmake --build . --verbose -j4
58-
59-
- name: run tests
60-
run: ctest
61-
62-
- name: run fastfetch --list-features
63-
run: ./fastfetch --list-features
64-
65-
- name: run fastfetch
66-
run: time ./fastfetch -c presets/ci.jsonc
67-
68-
- name: run fastfetch --format json
69-
run: time ./fastfetch -c presets/ci.jsonc --format json
70-
71-
- name: run flashfetch
72-
run: time ./flashfetch
73-
7422
Linux-old-amd64:
7523
name: Linux-old-amd64
7624
runs-on: ubuntu-20.04
@@ -230,6 +178,84 @@ jobs:
230178
name: fastfetch-linux-aarch64
231179
path: ./fastfetch-*.*
232180

181+
musl-amd64:
182+
name: Musl-amd64
183+
runs-on: ubuntu-latest
184+
steps:
185+
- uses: actions/checkout@v4
186+
187+
- name: setup alpine linux
188+
uses: jirutka/setup-alpine@master
189+
190+
- name: install dependencies
191+
run: |
192+
cat /etc/alpine-release
193+
uname -a
194+
apk add cmake samurai vulkan-loader-dev libxcb-dev wayland-dev libdrm-dev dconf-dev imagemagick-dev chafa-dev zlib-dev dbus-dev mesa-dev opencl-dev xfconf-dev sqlite-dev networkmanager-dev pulseaudio-dev ddcutil-dev gcc g++
195+
shell: alpine.sh --root {0}
196+
197+
- name: build
198+
run: |
199+
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr -DIS_MUSL=ON -GNinja .
200+
cmake --build . --target package --verbose -j4
201+
shell: alpine.sh {0}
202+
203+
- name: run
204+
run: |
205+
./fastfetch --list-features
206+
time ./fastfetch -c presets/ci.jsonc
207+
time ./fastfetch -c presets/ci.jsonc --format json
208+
time ./flashfetch
209+
ldd fastfetch
210+
ctest
211+
shell: alpine.sh {0}
212+
213+
- name: upload artifacts
214+
uses: actions/upload-artifact@v4
215+
with:
216+
name: fastfetch-musl-amd64
217+
path: ./fastfetch-*.*
218+
219+
musl-aarch64:
220+
name: Musl-aarch64
221+
runs-on: ubuntu-latest
222+
steps:
223+
- uses: actions/checkout@v4
224+
225+
- name: setup alpine linux
226+
uses: jirutka/setup-alpine@master
227+
with:
228+
arch: aarch64
229+
230+
- name: install dependencies
231+
run: |
232+
cat /etc/alpine-release
233+
uname -a
234+
apk add cmake samurai vulkan-loader-dev libxcb-dev wayland-dev libdrm-dev dconf-dev imagemagick-dev chafa-dev zlib-dev dbus-dev mesa-dev opencl-dev xfconf-dev sqlite-dev networkmanager-dev pulseaudio-dev ddcutil-dev gcc g++
235+
shell: alpine.sh --root {0}
236+
237+
- name: build
238+
run: |
239+
cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DCMAKE_INSTALL_PREFIX=/usr -DIS_MUSL=ON -GNinja .
240+
cmake --build . --target package --verbose -j4
241+
shell: alpine.sh {0}
242+
243+
- name: run
244+
run: |
245+
./fastfetch --list-features
246+
time ./fastfetch -c presets/ci.jsonc
247+
time ./fastfetch -c presets/ci.jsonc --format json
248+
time ./flashfetch
249+
ldd fastfetch
250+
ctest
251+
shell: alpine.sh {0}
252+
253+
- name: upload artifacts
254+
uses: actions/upload-artifact@v4
255+
with:
256+
name: fastfetch-musl-aarch64
257+
path: ./fastfetch-*.*
258+
233259
macos-universal:
234260
name: macOS-universal
235261
runs-on: macos-latest
@@ -495,6 +521,8 @@ jobs:
495521
needs:
496522
- linux-amd64
497523
- linux-aarch64
524+
- musl-amd64
525+
- musl-aarch64
498526
- macos-universal
499527
- freebsd-amd64
500528
- freebsd-aarch64

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
# 2.10.0
2+
3+
Changes:
4+
* We now always detect max frequency of GPUs for consistent, instead of current frequency
5+
6+
Features:
7+
* Improve display detection for wlroots based WMs. Fastfetch now correctly reports fractional scale factors in hyprland (Display, Linux)
8+
* Improve GPU detection on Linux (GPU, Linux)
9+
* Support GPU memory usage detection for AMD GPUs
10+
* Support GPU frequency detection for Intel GPUs
11+
* Improve performance of Gnome version detection (DE, Linux)
12+
* Improve performance of kitty version detection (Terminal, Linux)
13+
* Detect refresh rate when using `--ds-force-drm sysfs-only` (Display, Linux)
14+
* Add option `--ts-version` to disable terminal and shell version detection. Mainly for benchmarking purposes
15+
* Improve performance of detecting WSL version (Host, Linux)
16+
17+
Bugfixes:
18+
* Correctly detect `/bin/sh` as current shell if it's used as default shell (#798, Shell, Linux)
19+
* Work around an issue which CPU module reports incorrect CPU frequency that is too high (#800, CPU, Linux)
20+
* Don't print ANSI escape codes in `--pipe` mode
21+
122
# 2.9.2
223

324
Changes:

CMakeLists.txt

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url
22

33
project(fastfetch
4-
VERSION 2.9.2
4+
VERSION 2.10.0
55
LANGUAGES C
66
DESCRIPTION "Fast neofetch-like system information tool"
77
HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch"
@@ -75,6 +75,7 @@ option(ENABLE_ASAN "Build fastfetch with ASAN (address sanitizer)" OFF)
7575
option(ENABLE_PROPRIETARY_GPU_DRIVER_API "Enable proprietary GPU driver API (NVML, IGCL and AGS)" ON)
7676
option(BUILD_TESTS "Build tests" OFF) # Also create test executables
7777
option(SET_TWEAK "Add tweak to project version" ON) # This is set to off by github actions for release builds
78+
option(IS_MUSL "Build with musl libc" OFF) # Used by Github Actions
7879

7980
if (LINUX)
8081
set(CUSTOM_PCI_IDS_PATH "" CACHE STRING "Custom path to file pci.ids, defaults to `/usr/share/hwdata/pci.ids`")
@@ -399,7 +400,10 @@ if(LINUX)
399400
src/detection/diskio/diskio_linux.c
400401
src/detection/displayserver/linux/displayserver_linux.c
401402
src/detection/displayserver/linux/drm.c
402-
src/detection/displayserver/linux/wayland.c
403+
src/detection/displayserver/linux/wayland/wayland.c
404+
src/detection/displayserver/linux/wayland/global-output.c
405+
src/detection/displayserver/linux/wayland/zwlr-output.c
406+
src/detection/displayserver/linux/wayland/wlr-output-management-unstable-v1-protocol.c
403407
src/detection/displayserver/linux/wmde.c
404408
src/detection/displayserver/linux/xcb.c
405409
src/detection/displayserver/linux/xlib.c
@@ -517,7 +521,10 @@ elseif(BSD)
517521
src/detection/diskio/diskio_bsd.c
518522
src/detection/displayserver/linux/displayserver_linux.c
519523
src/detection/displayserver/linux/drm.c
520-
src/detection/displayserver/linux/wayland.c
524+
src/detection/displayserver/linux/wayland/wayland.c
525+
src/detection/displayserver/linux/wayland/global-output.c
526+
src/detection/displayserver/linux/wayland/zwlr-output.c
527+
src/detection/displayserver/linux/wayland/wlr-output-management-unstable-v1-protocol.c
521528
src/detection/displayserver/linux/wmde.c
522529
src/detection/displayserver/linux/xcb.c
523530
src/detection/displayserver/linux/xlib.c
@@ -1131,11 +1138,19 @@ else() # We don't use this in Windows
11311138
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
11321139
set(CMAKE_SYSTEM_PROCESSOR "amd64")
11331140
endif()
1134-
string(TOLOWER "${CMAKE_PROJECT_NAME}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" CPACK_PACKAGE_FILE_NAME)
1141+
if(IS_MUSL)
1142+
string(TOLOWER "${CMAKE_PROJECT_NAME}-musl-${CMAKE_SYSTEM_PROCESSOR}" CPACK_PACKAGE_FILE_NAME)
1143+
else()
1144+
string(TOLOWER "${CMAKE_PROJECT_NAME}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" CPACK_PACKAGE_FILE_NAME)
1145+
endif()
11351146
endif()
11361147

11371148
if(LINUX)
1138-
set(CPACK_GENERATOR "${CPACK_GENERATOR};DEB;RPM")
1149+
find_program(HAVE_DPKG "dpkg")
1150+
find_program(HAVE_RPMBUILD "rpmbuild")
1151+
if(HAVE_DPKG AND HAVE_RPMBUILD)
1152+
set(CPACK_GENERATOR "${CPACK_GENERATOR};DEB;RPM")
1153+
endif()
11391154

11401155
set(CPACK_DEBIAN_PACKAGE_SECTION, "utils")
11411156
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ There are [screenshots on different platforms](https://github.com/fastfetch-cli/
2727

2828
### Linux
2929

30-
Some distros packaged a outdated fastfetch version. Older version is not supported, please always ensure that the latest version is used.
30+
Some distros packaged an outdated fastfetch version. Older version is not supported, please always ensure that the latest version is used.
3131

3232
* Ubuntu: [`ppa:zhangsongcui3371/fastfetch`](https://launchpad.net/~zhangsongcui3371/+archive/ubuntu/fastfetch) (for Ubuntu 22.04 or above)
3333
* Debian / Ubuntu: Download `fastfetch-<version>-Linux.deb` from [Github release page](https://github.com/fastfetch-cli/fastfetch/releases/latest) and `dpkg -i fastfetch-<version>-Linux.deb` (for Ubuntu 22.04 or above and Debian 12 or above).
34-
* Arch Linux: `sudo pacman -S fastfetch`. You can also find fastfetch [on the AUR](https://aur.archlinux.org/packages/fastfetch-git).
34+
* Arch Linux: `sudo pacman -S fastfetch`
3535
* Fedora: `sudo dnf install fastfetch`
3636
* Gentoo: `sudo emerge --ask app-misc/fastfetch`
3737
* Alpine: `apk add --upgrade fastfetch`
@@ -41,7 +41,9 @@ Some distros packaged a outdated fastfetch version. Older version is not support
4141

4242
Replace sudo with doas depending on what you use.
4343

44-
[See also if fastfetch has been packaged for your favorite Linux distro](#Packaging)
44+
[See also if fastfetch has been packaged for your favorite Linux distro](#Packaging).
45+
46+
If fastfetch is not packaged for your distro or an outdated version is packaged, [linuxbrew](https://brew.sh/) is a good alternate: `brew install fastfetch`
4547

4648
### macOS
4749

debian/changelog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
fastfetch (2.9.2) jammy; urgency=medium
2+
3+
* Update to 2.9.2
4+
5+
-- Carter Li <[email protected]> Tue, 16 Apr 2024 16:32:40 +0800
6+
7+
fastfetch (2.9.1) jammy; urgency=medium
8+
9+
* Update to 2.9.1
10+
11+
-- Carter Li <[email protected]> Mon, 08 Apr 2024 09:34:30 +0800
12+
113
fastfetch (2.8.10) jammy; urgency=medium
214

315
* Update to 2.8.10

debian/files

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
fastfetch_2.8.10_source.buildinfo universe/utils optional
1+
fastfetch_2.9.2_source.buildinfo universe/utils optional

doc/json_schema.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,11 @@
549549
"type": "boolean",
550550
"description": "Whether to disable the stdout application buffer",
551551
"default": false
552+
},
553+
"tsVersion": {
554+
"type": "boolean",
555+
"description": "Whether to detect and display the version of terminal and shell. Mainly for benchmarking",
556+
"default": true
552557
}
553558
}
554559
},

0 commit comments

Comments
 (0)