From 330eb9fa21f0c372154fe7e6e1690096bd99afae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sun, 11 Feb 2024 23:01:14 +0800 Subject: [PATCH 1/9] GPU: show sub-device if available Try fixing #713 --- CMakeLists.txt | 2 + src/detection/gpu/gpu.c | 72 ------------------------------- src/detection/gpu/gpu.h | 4 +- src/detection/gpu/gpu_bsd.c | 2 +- src/detection/gpu/gpu_linux.c | 6 +-- src/detection/gpu/gpu_pci.c | 81 +++++++++++++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 78 deletions(-) create mode 100644 src/detection/gpu/gpu_pci.c diff --git a/CMakeLists.txt b/CMakeLists.txt index dcb829ad4..3cb9a60eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -401,6 +401,7 @@ if(LINUX) src/detection/displayserver/linux/xlib.c src/detection/font/font_linux.c src/detection/gpu/gpu_linux.c + src/detection/gpu/gpu_pci.c src/detection/gtk_qt/gtk.c src/detection/host/host_linux.c src/detection/icons/icons_linux.c @@ -518,6 +519,7 @@ elseif(BSD) src/detection/displayserver/linux/xlib.c src/detection/font/font_linux.c src/detection/gpu/gpu_bsd.c + src/detection/gpu/gpu_pci.c src/detection/gtk_qt/gtk.c src/detection/host/host_bsd.c src/detection/lm/lm_linux.c diff --git a/src/detection/gpu/gpu.c b/src/detection/gpu/gpu.c index 7368d3039..3f65e1791 100644 --- a/src/detection/gpu/gpu.c +++ b/src/detection/gpu/gpu.c @@ -118,75 +118,3 @@ const char* ffDetectGPU(const FFGPUOptions* options, FFlist* result) return "GPU detection failed"; } - -#ifndef _WIN32 -void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu) -{ - if (content->length) - { - char buffer[32]; - uint32_t len = (uint32_t) snprintf(buffer, sizeof(buffer), "\n%04x ", vendor); - char* start = (char*) memmem(content->chars, content->length, buffer, len); - char* end = content->chars + content->length; - if (start) - { - start += len; - end = memchr(start, '\n', (uint32_t) (end - start)); - if (!end) - end = content->chars + content->length; - if (!gpu->vendor.length) - ffStrbufSetNS(&gpu->vendor, (uint32_t) (end - start), start); - - start = end; // point to '\n' of vendor - end = start + 1; // point to start of devices - // find the start of next vendor - while (end[0] == '\t' || end[0] == '#') - { - end = strchr(end, '\n'); - if (!end) - { - end = content->chars + content->length; - break; - } - else - end++; - } - - len = (uint32_t) snprintf(buffer, sizeof(buffer), "\n\t%04x ", device); - start = memmem(start, (size_t) (end - start), buffer, len); - if (start) - { - start += len; - end = memchr(start, '\n', (uint32_t) (end - start)); - if (!end) - end = content->chars + content->length; - - char* openingBracket = memchr(start, '[', (uint32_t) (end - start)); - if (openingBracket) - { - openingBracket++; - char* closingBracket = memchr(openingBracket, ']', (uint32_t) (end - openingBracket)); - if (closingBracket) - ffStrbufSetNS(&gpu->name, (uint32_t) (closingBracket - openingBracket), openingBracket); - } - if (!gpu->name.length) - ffStrbufSetNS(&gpu->name, (uint32_t) (end - start), start); - } - } - } - - if (!gpu->name.length) - { - const char* subclassStr; - switch (subclass) - { - case 0 /*PCI_CLASS_DISPLAY_VGA*/: subclassStr = " (VGA compatible)"; break; - case 1 /*PCI_CLASS_DISPLAY_XGA*/: subclassStr = " (XGA compatible)"; break; - case 2 /*PCI_CLASS_DISPLAY_3D*/: subclassStr = " (3D)"; break; - default: subclassStr = ""; break; - } - - ffStrbufSetF(&gpu->name, "%s Device %04X%s", gpu->vendor.length ? gpu->vendor.chars : "Unknown", device, subclassStr); - } -} -#endif diff --git a/src/detection/gpu/gpu.h b/src/detection/gpu/gpu.h index b3d6b035f..8f404f243 100644 --- a/src/detection/gpu/gpu.h +++ b/src/detection/gpu/gpu.h @@ -43,6 +43,6 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus); const char* ffGetGPUVendorString(unsigned vendorId); -#ifndef _WIN32 -void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu); +#if defined(__linux__) || defined(__FreeBSD__) +void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, uint16_t subVendor, uint16_t subDevice, FFGPUResult* gpu); #endif diff --git a/src/detection/gpu/gpu_bsd.c b/src/detection/gpu/gpu_bsd.c index c51ef7ffb..cb9f39c54 100644 --- a/src/detection/gpu/gpu_bsd.c +++ b/src/detection/gpu/gpu_bsd.c @@ -64,7 +64,7 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus) gpu->deviceId = ((uint64_t) pc->pc_sel.pc_domain << 6) | ((uint64_t) pc->pc_sel.pc_bus << 4) | ((uint64_t) pc->pc_sel.pc_dev << 2) | pc->pc_sel.pc_func; gpu->frequency = FF_GPU_FREQUENCY_UNSET; - ffGPUParsePciIds(&pciids, pc->pc_subclass, pc->pc_vendor, pc->pc_device, gpu); + ffGPUParsePciIds(&pciids, pc->pc_subclass, pc->pc_vendor, pc->pc_device, pc->pc_subvendor, pc->pc_subdevice, gpu); #ifdef FF_USE_PROPRIETARY_GPU_DRIVER_API if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_NVIDIA && (options->temp || options->driverSpecific)) diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index 979e25d7c..789f9b6dd 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -98,9 +98,9 @@ static const char* pciDetectGPUs(const FFGPUOptions* options, FFlist* gpus) continue; ffStrbufSubstrBefore(&pciDir, pciDevDirLength); - uint32_t vendorId, deviceId; + uint32_t vendorId, deviceId, subVendorId, subDeviceId; uint8_t classId, subclassId; - if (sscanf(buffer.chars, "pci:v%8" SCNx32 "d%8" SCNx32 "sv%*8ssd%*8sbc%2" SCNx8 "sc%2" SCNx8, &vendorId, &deviceId, &classId, &subclassId) != 4) + if (sscanf(buffer.chars, "pci:v%8" SCNx32 "d%8" SCNx32 "sv%8" SCNx32 "sd%8" SCNx32 "bc%2" SCNx8 "sc%2" SCNx8, &vendorId, &deviceId, &subVendorId, &subDeviceId, &classId, &subclassId) != 6) continue; if (classId != 0x03 /*PCI_BASE_CLASS_DISPLAY*/) @@ -122,7 +122,7 @@ static const char* pciDetectGPUs(const FFGPUOptions* options, FFlist* gpus) gpu->deviceId = ((uint64_t) pciDomain << 6) | ((uint64_t) pciBus << 4) | (deviceId << 2) | pciFunc; gpu->frequency = FF_GPU_FREQUENCY_UNSET; - ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, gpu); + ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, (uint16_t) subVendorId, (uint16_t) subDeviceId, gpu); pciDetectDriver(gpu, &pciDir, &buffer); ffStrbufSubstrBefore(&pciDir, pciDevDirLength); diff --git a/src/detection/gpu/gpu_pci.c b/src/detection/gpu/gpu_pci.c new file mode 100644 index 000000000..e8d454aec --- /dev/null +++ b/src/detection/gpu/gpu_pci.c @@ -0,0 +1,81 @@ +#include "gpu.h" + +void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, uint16_t subVendor, uint16_t subDevice, FFGPUResult* gpu) +{ + if (content->length) + { + char buffer[32]; + + // Search for vendor + uint32_t len = (uint32_t) snprintf(buffer, sizeof(buffer), "\n%04x ", vendor); + char* start = (char*) memmem(content->chars, content->length, buffer, len); + char* end = content->chars + content->length; + if (start) + { + start += len; + end = memchr(start, '\n', (uint32_t) (end - start)); + if (!end) + end = content->chars + content->length; + if (!gpu->vendor.length) + ffStrbufSetNS(&gpu->vendor, (uint32_t) (end - start), start); + + start = end; // point to '\n' of vendor + end = start + 1; // point to start of devices + // find the start of next vendor + while (end[0] == '\t' || end[0] == '#') + { + end = strchr(end, '\n'); + if (!end) + { + end = content->chars + content->length; + break; + } + else + end++; + } + + // Search for device + len = (uint32_t) snprintf(buffer, sizeof(buffer), "\n\t%04x ", device); + start = memmem(start, (size_t) (end - start), buffer, len); + if (start) + { + start += len; + + // Search for subvendor and subdevice + len = (uint32_t) snprintf(buffer, sizeof(buffer), "\n\t\t%04x %04x ", subVendor, subDevice); + char* subStart = memmem(start, (size_t) (end - start), buffer, len); + if (subStart) + start = subStart + len; + + end = memchr(start, '\n', (uint32_t) (end - start)); + if (!end) + end = content->chars + content->length; + + char* openingBracket = memchr(start, '[', (uint32_t) (end - start)); + if (openingBracket) + { + openingBracket++; + char* closingBracket = memchr(openingBracket, ']', (uint32_t) (end - openingBracket)); + if (closingBracket) + ffStrbufSetNS(&gpu->name, (uint32_t) (closingBracket - openingBracket), openingBracket); + } + if (!gpu->name.length) + ffStrbufSetNS(&gpu->name, (uint32_t) (end - start), start); + } + } + } + + if (!gpu->name.length) + { + const char* subclassStr; + switch (subclass) + { + case 0 /*PCI_CLASS_DISPLAY_VGA*/: subclassStr = " (VGA compatible)"; break; + case 1 /*PCI_CLASS_DISPLAY_XGA*/: subclassStr = " (XGA compatible)"; break; + case 2 /*PCI_CLASS_DISPLAY_3D*/: subclassStr = " (3D)"; break; + default: subclassStr = ""; break; + } + + ffStrbufSetF(&gpu->name, "%s Device %04X%s", gpu->vendor.length ? gpu->vendor.chars : "Unknown", device, subclassStr); + } +} From f4cb3bb33fd729b800a03d75e36b5b5d7be63ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Feb 2024 00:43:06 +0800 Subject: [PATCH 2/9] GPU (Linux): use amdgpu.ids --- src/detection/gpu/gpu_linux.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index 789f9b6dd..cec11dbe0 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -2,6 +2,7 @@ #include "detection/vulkan/vulkan.h" #include "detection/temps/temps_linux.h" #include "common/io/io.h" +#include "common/properties.h" #include "util/stringUtils.h" #ifdef FF_USE_PROPRIETARY_GPU_DRIVER_API @@ -122,7 +123,25 @@ static const char* pciDetectGPUs(const FFGPUOptions* options, FFlist* gpus) gpu->deviceId = ((uint64_t) pciDomain << 6) | ((uint64_t) pciBus << 4) | (deviceId << 2) | pciFunc; gpu->frequency = FF_GPU_FREQUENCY_UNSET; - ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, (uint16_t) subVendorId, (uint16_t) subDeviceId, gpu); + if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_AMD) + { + ffStrbufAppendS(&pciDir, "/revision"); + if (ffReadFileBuffer(pciDir.chars, &buffer)) + { + char* pend; + uint64_t revision = strtoul(buffer.chars, &pend, 16); + if (pend != buffer.chars) + { + char query[32]; + snprintf(query, sizeof(query), "%X,\t%X,", (unsigned) deviceId, (unsigned) revision); + ffParsePropFileData("libdrm/amdgpu.ids", query, &gpu->name); + } + } + ffStrbufSubstrBefore(&pciDir, pciDevDirLength); + } + + if (gpu->name.length == 0) + ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, (uint16_t) subVendorId, (uint16_t) subDeviceId, gpu); pciDetectDriver(gpu, &pciDir, &buffer); ffStrbufSubstrBefore(&pciDir, pciDevDirLength); From 7ea8882843d4e42a09b61b08f07a256bd22d746f Mon Sep 17 00:00:00 2001 From: Carter Date: Mon, 12 Feb 2024 18:09:11 +0800 Subject: [PATCH 3/9] GPU (FreeBSD): detect correct AMD card names --- src/detection/gpu/gpu_bsd.c | 17 ++++++++++++++--- src/util/platform/FFPlatform_unix.c | 4 ++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/detection/gpu/gpu_bsd.c b/src/detection/gpu/gpu_bsd.c index cb9f39c54..ed0f7337d 100644 --- a/src/detection/gpu/gpu_bsd.c +++ b/src/detection/gpu/gpu_bsd.c @@ -1,9 +1,9 @@ #include "gpu_driver_specific.h" #include "common/io/io.h" +#include "common/properties.h" #include "3rdparty/nvml/nvml.h" #include "util/mallocHelper.h" -#include "common/io/io.h" #include #include @@ -46,7 +46,6 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus) return "ioctl(fd, PCIOCGETCONF, &pc) returned error"; FF_STRBUF_AUTO_DESTROY pciids = ffStrbufCreate(); - loadPciIds(&pciids); for (uint32_t i = 0; i < pcio.num_matches; ++i) { @@ -64,7 +63,19 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus) gpu->deviceId = ((uint64_t) pc->pc_sel.pc_domain << 6) | ((uint64_t) pc->pc_sel.pc_bus << 4) | ((uint64_t) pc->pc_sel.pc_dev << 2) | pc->pc_sel.pc_func; gpu->frequency = FF_GPU_FREQUENCY_UNSET; - ffGPUParsePciIds(&pciids, pc->pc_subclass, pc->pc_vendor, pc->pc_device, pc->pc_subvendor, pc->pc_subdevice, gpu); + if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_AMD) + { + char query[32]; + snprintf(query, sizeof(query), "%X,\t%X,", (unsigned) pc->pc_device, (unsigned) pc->pc_revid); + ffParsePropFileData("libdrm/amdgpu.ids", query, &gpu->name); + } + + if (gpu->name.length == 0) + { + if (pciids.length == 0) + loadPciIds(&pciids); + ffGPUParsePciIds(&pciids, pc->pc_subclass, pc->pc_vendor, pc->pc_device, pc->pc_subvendor, pc->pc_subdevice, gpu); + } #ifdef FF_USE_PROPRIETARY_GPU_DRIVER_API if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_NVIDIA && (options->temp || options->driverSpecific)) diff --git a/src/util/platform/FFPlatform_unix.c b/src/util/platform/FFPlatform_unix.c index 255211a34..b57bb499d 100644 --- a/src/util/platform/FFPlatform_unix.c +++ b/src/util/platform/FFPlatform_unix.c @@ -7,6 +7,7 @@ #include #include #include +#include #ifdef __APPLE__ #include @@ -135,6 +136,9 @@ static void getDataDirs(FFPlatform* platform) ffPlatformPathAddHome(&platform->dataDirs, platform, ""); platformPathAddEnv(&platform->dataDirs, "XDG_DATA_DIRS"); +#ifdef _PATH_LOCALBASE + ffPlatformPathAddAbsolute(&platform->dataDirs, _PATH_LOCALBASE "/share/"); +#endif ffPlatformPathAddAbsolute(&platform->dataDirs, FASTFETCH_TARGET_DIR_USR "/local/share/"); ffPlatformPathAddAbsolute(&platform->dataDirs, FASTFETCH_TARGET_DIR_USR "/share/"); } From 467ed54a3b0fe35bde0c9aa364b35802423fed0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Feb 2024 10:12:22 +0800 Subject: [PATCH 4/9] GPU (Linux): lazy load pci.ids --- src/detection/gpu/gpu_linux.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index cec11dbe0..c97660b9d 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -81,7 +81,6 @@ static const char* pciDetectGPUs(const FFGPUOptions* options, FFlist* gpus) FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate(); FF_STRBUF_AUTO_DESTROY pciids = ffStrbufCreate(); - loadPciIds(&pciids); struct dirent* entry; while((entry = readdir(dirp)) != NULL) @@ -141,7 +140,11 @@ static const char* pciDetectGPUs(const FFGPUOptions* options, FFlist* gpus) } if (gpu->name.length == 0) + { + if (!pciids.length) + loadPciIds(&pciids); ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, (uint16_t) subVendorId, (uint16_t) subDeviceId, gpu); + } pciDetectDriver(gpu, &pciDir, &buffer); ffStrbufSubstrBefore(&pciDir, pciDevDirLength); From c5d0d8400153e3c9020ffe259babee8231ee0597 Mon Sep 17 00:00:00 2001 From: AlbydS <119180144+AlbydST@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:20:10 +0100 Subject: [PATCH 5/9] Add installation instructions for even more Linux distributions (#715) Added Alpine (now with the right command), ALT Linux and Arch AUR to the installation instructions. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 41e5cddbf..9a915f53f 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,13 @@ There are [screenshots on different platforms](https://github.com/fastfetch-cli/ ### Linux * Debian / Ubuntu: Download `fastfetch--Linux.deb` from [Github release page](https://github.com/fastfetch-cli/fastfetch/releases/latest) and `dpkg -i fastfetch--Linux.deb` -* Arch Linux: `sudo pacman -S fastfetch` +* Arch Linux: `sudo pacman -S fastfetch`. You can also find fastfetch [on the AUR](https://aur.archlinux.org/packages/fastfetch-git). * Fedora: `sudo dnf install fastfetch` * Gentoo: `sudo emerge --ask app-misc/fastfetch` +* Alpine: `apk add --upgrade fastfetch` * NixOS: `sudo nix-shell -p fastfetch` * openSUSE: `sudo zypper install fastfetch` +* ALT Linux: `sudo apt-get install fastfetch` Replace sudo with doas depending on what you use. From a3576b31540a327108248e07453ca4e704de9b1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Feb 2024 10:27:43 +0800 Subject: [PATCH 6/9] CI: release file name without version Fix #714 --- .github/workflows/ci.yml | 9 +++++---- CMakeLists.txt | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ace39fb41..ba207dc51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -371,10 +371,10 @@ jobs: run: ctest - name: create zip archive - run: 7z a -tzip -mx9 -bd -y fastfetch-$(./fastfetch --version-raw)-windows-amd64.zip *.dll fastfetch.exe flashfetch.exe presets + run: 7z a -tzip -mx9 -bd -y fastfetch-windows-amd64.zip *.dll fastfetch.exe flashfetch.exe presets - name: create 7z archive - run: 7z a -t7z -mx9 -bd -y fastfetch-$(./fastfetch --version-raw)-windows-amd64.7z *.dll fastfetch.exe flashfetch.exe presets + run: 7z a -t7z -mx9 -bd -y fastfetch-windows-amd64.7z *.dll fastfetch.exe flashfetch.exe presets - name: upload artifacts uses: actions/upload-artifact@v4 @@ -438,10 +438,10 @@ jobs: run: ctest - name: create zip archive - run: 7z a -tzip -mx9 -bd -y fastfetch-$(./fastfetch --version-raw)-windows-i686.zip *.dll fastfetch.exe flashfetch.exe presets + run: 7z a -tzip -mx9 -bd -y fastfetch-windows-i686.zip *.dll fastfetch.exe flashfetch.exe presets - name: create 7z archive - run: 7z a -t7z -mx9 -bd -y fastfetch-$(./fastfetch --version-raw)-windows-i686.7z *.dll fastfetch.exe flashfetch.exe presets + run: 7z a -t7z -mx9 -bd -y fastfetch-windows-i686.7z *.dll fastfetch.exe flashfetch.exe presets - name: upload artifacts uses: actions/upload-artifact@v4 @@ -474,6 +474,7 @@ jobs: uses: actions/download-artifact@v4 - name: rm old artifacts + if: needs.linux-amd64.outputs.ffversion != steps.get_version_release.outputs.release run: | rm -rf fastfetch-*-old-* diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cb9a60eb..138916229 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1110,9 +1110,9 @@ install( set(CPACK_GENERATOR "TGZ;ZIP") if(APPLE) - string(TOLOWER "${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION}-macos-universal" CPACK_PACKAGE_FILE_NAME) + string(TOLOWER "${CMAKE_PROJECT_NAME}-macos-universal" CPACK_PACKAGE_FILE_NAME) else() # We don't use this in Windows - string(TOLOWER "${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" CPACK_PACKAGE_FILE_NAME) + string(TOLOWER "${CMAKE_PROJECT_NAME}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" CPACK_PACKAGE_FILE_NAME) endif() if(LINUX) From 7fe39353df86a310d8c4d3f304db1af844c7348d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Feb 2024 10:21:25 +0800 Subject: [PATCH 7/9] Release: v2.8.3 --- CHANGELOG.md | 5 +++++ CMakeLists.txt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fce1fe7a4..cadf827f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 2.8.3 + +Bugfixes: +* Fix GPU name detection for AMD graphic cards (GPU, Linux / FreeBSD) + # 2.8.2 Changes: diff --git a/CMakeLists.txt b/CMakeLists.txt index 138916229..b0c499b91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url project(fastfetch - VERSION 2.8.2 + VERSION 2.8.3 LANGUAGES C DESCRIPTION "Fast neofetch-like system information tool" HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch" From a5a28e30a020057c4c741fac15992eb9da342a21 Mon Sep 17 00:00:00 2001 From: Herby Gillot Date: Sun, 11 Feb 2024 21:43:23 -0500 Subject: [PATCH 8/9] README: add MacPorts install info (#716) Add info on installing `fastfetch` on macOS via MacPorts: https://ports.macports.org/port/fastfetch/ --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 9a915f53f..38f8a7db5 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,14 @@ Replace sudo with doas depending on what you use. ### macOS +...via [HomeBrew](https://brew.sh): + `brew install fastfetch` +...via [MacPorts](https://www.macports.org): + +`sudo port install fastfetch` + ### Windows `scoop install fastfetch` From 99fce80d0db8263fd37e99e357f0bd63198968fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Feb 2024 10:46:27 +0800 Subject: [PATCH 9/9] CI: fix windows artifacts generation --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba207dc51..e052c2f3e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -380,7 +380,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: fastfetch-windows-amd64 - path: ./fastfetch-*-windows-amd64.* + path: ./fastfetch-windows-amd64.* windows-i686: name: Windows-i686 @@ -447,7 +447,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: fastfetch-windows-i686 - path: ./fastfetch-*-windows-i686.* + path: ./fastfetch-windows-i686.* release: if: github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'fastfetch-cli/fastfetch'