~ruther/guix-local

1710c0941db517453ac2b88c0e854e8348172603 — Artyom V. Poptsov 1 year, 3 months ago 3222cc3
gnu: btop: Update to 1.4.1.

* gnu/packages/admin.scm (btop): Update to 1.4.1.
(source)[patches]: Remove "btop-fix-segfault-on-intel-gpus.patch".
* gnu/packages/patches/btop-fix-segfault-on-intel-gpus.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Deregister
"btop-fix-segfault-on-intel-gpus.patch".

Change-Id: Ia8b465b54525246ce939cdd767bcb37bd5a492f0
3 files changed, 2 insertions(+), 54 deletions(-)

M gnu/local.mk
M gnu/packages/admin.scm
D gnu/packages/patches/btop-fix-segfault-on-intel-gpus.patch
M gnu/local.mk => gnu/local.mk +0 -1
@@ 1053,7 1053,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/bsd-games-number.c-and-test.patch	\
  %D%/packages/patches/bsd-games-prevent-name-collisions.patch	\
  %D%/packages/patches/bsd-games-stdio.h.patch			\
  %D%/packages/patches/btop-fix-segfault-on-intel-gpus.patch	\
  %D%/packages/patches/beancount-disable-googleapis-fonts.patch	\
  %D%/packages/patches/beignet-correct-file-names.patch		\
  %D%/packages/patches/bidiv-update-fribidi.patch		\

M gnu/packages/admin.scm => gnu/packages/admin.scm +2 -4
@@ 935,7 935,7 @@ console.")
(define-public btop
  (package
    (name "btop")
    (version "1.4.0")
    (version "1.4.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference


@@ 944,9 944,7 @@ console.")
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0vgw6hwqh6zbzrvrn3i0xwi9ykm1qdvhqcyz3mjakd7w303lx603"))
              (patches
               (search-patches "btop-fix-segfault-on-intel-gpus.patch"))))
                "08g4gbqc12is23nhrhqc5fhqicxs7dvy3alhyl66h6v35x7209vc"))))
    (build-system gnu-build-system)
    (native-inputs (list lowdown))
    (arguments

D gnu/packages/patches/btop-fix-segfault-on-intel-gpus.patch => gnu/packages/patches/btop-fix-segfault-on-intel-gpus.patch +0 -49
@@ 1,49 0,0 @@
From 0ed4e9e907b3a3f1c2ae209b1dab384b1fa7a490 Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
Date: Sun, 3 Nov 2024 09:02:45 +0300
Subject: [PATCH] intel_name_lookup_shim.c (get_intel_device_name): Fix
 SEGFAULT

btop would always fail with "Segmentation fault" when used on machines where the
GPU does not have a codename (e.g. on embedded Intel graphics on Intel(R)
Atom(TM) CPU D2500.)  The reason for this behavior is that when a GPU does not
have codename (it is NULL) the call to "strcpy" segfaults as the procedure
effectively tries to access a NULL pointer.

See <https://github.com/aristocratos/btop/pull/958>.

* src/linux/intel_gpu_top/intel_name_lookup_shim.c (get_intel_device_name): Add
a check if "info->codename" is null; if it is, set the device name to
"(unknown)" to prevent the SEGFAULT error.
---
 src/linux/intel_gpu_top/intel_name_lookup_shim.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/linux/intel_gpu_top/intel_name_lookup_shim.c b/src/linux/intel_gpu_top/intel_name_lookup_shim.c
index e714f80..38f87fa 100644
--- a/src/linux/intel_gpu_top/intel_name_lookup_shim.c
+++ b/src/linux/intel_gpu_top/intel_name_lookup_shim.c
@@ -84,10 +84,14 @@ char *get_intel_device_name(const char *device_id) {
     char full_name[256];
     const struct intel_device_info *info = intel_get_device_info(devid);
     if (info) {
-        strcpy(dev_name, info->codename);
-        dev_name[0] = toupper(dev_name[0]);
+        if (info->codename == NULL) {
+            strcpy(dev_name, "(unknown)");
+        } else {
+            strcpy(dev_name, info->codename);
+            dev_name[0] = toupper(dev_name[0]);
+        }
         snprintf(full_name, sizeof(full_name), "Intel %s (Gen%u)", dev_name, info->graphics_ver);
         return strdup(full_name);
     }
     return NULL;
-}
\ No newline at end of file
+}

base-commit: 2e7208d59c54515080027a5ecbb89d2054047985
-- 
2.46.0