diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 397 |
1 files changed, 239 insertions, 158 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 36cef84b14..ba90175513 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -34,7 +34,7 @@ ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com> -;;; Copyright © 2019-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019-2025 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com> ;;; Copyright © 2019-2022 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net> @@ -83,6 +83,8 @@ ;;; Copyright © 2024 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se> ;;; Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com> +;;; Copyright © 2025 Mathieu Laparie <mlaparie@disr.it> +;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -242,6 +244,7 @@ (linux linux-libre) source defconfig + modconfig (configs "") extra-version) "Make a customized Linux package NAME derived from the LINUX package. @@ -255,6 +258,10 @@ A DEFCONFIG file to be used can be given as an origin, as a file-like object available in the Linux sources. If DEFCONFIG is not given, then a defconfig file will be saved from the LINUX package configuration. +MODCONFIG is an origin or file-like object used for make localmodconfig to +disable unlisted modules. For instance, this can come from using modprobed-db +periodically on a running machine to find all loaded modules. + Additional CONFIGS will be used to modify the given or saved defconfig, which will finally be used to build Linux. @@ -323,7 +330,12 @@ of 'uname -r' behind the Linux version numbers." (chmod guix_defconfig #o644) (modify-defconfig guix_defconfig '#$configs) (invoke "make" "guix_defconfig") - (verify-config ".config" guix_defconfig)))))))))) + (verify-config ".config" guix_defconfig) + ;; Minimize module building if provided e.g. a modprobed-db + ;; database. + (if #$modconfig + (invoke "make" (string-append "LSMOD=" #$modconfig) + "localmodconfig"))))))))))) (define (make-defconfig uri sha256-as-base32) (origin (method url-fetch) @@ -514,7 +526,22 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-6.15-version "6.15.10") +(define-public linux-libre-6.16-version "6.16.4") +(define-public linux-libre-6.16-gnu-revision "gnu") +(define deblob-scripts-6.16 + (linux-libre-deblob-scripts + linux-libre-6.16-version + linux-libre-6.16-gnu-revision + (base32 "1s44yaxib45834mjmvqkl70s2lazbzvpxhp4z7qwxkrkpw94mdxx") + (base32 "1i4kba2wpkc7jmj7b2qjkrgqsl0g0s1h7j9pfvc7zqyyn9v3kkqr"))) +(define-public linux-libre-6.16-pristine-source + (let ((version linux-libre-6.16-version) + (hash (base32 "08mnd8qir2vxjmgblhnqfrfbv2zlig68f4r5askk7d8h3b3y79fn"))) + (make-linux-libre-source version + (%upstream-linux-source version hash) + deblob-scripts-6.16))) + +(define-public linux-libre-6.15-version "6.15.11") (define-public linux-libre-6.15-gnu-revision "gnu") (define deblob-scripts-6.15 (linux-libre-deblob-scripts @@ -524,7 +551,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0301x3n5qbg8xm48pxq1dhrq0vkr61bqdcyaz0mbckrg20kw6m67"))) (define-public linux-libre-6.15-pristine-source (let ((version linux-libre-6.15-version) - (hash (base32 "01pxk3cnil1wbysp4s6ybh5djskxzf9llmk1qy7zfr2l4mwnbkd4"))) + (hash (base32 "14sxwrvw9p4ybizb8ky1rgahc62q0aw5qkmzqp3cpnavqfgldaw9"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.15))) @@ -533,7 +560,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-6.12-version "6.12.42") +(define-public linux-libre-6.12-version "6.12.44") (define-public linux-libre-6.12-gnu-revision "gnu") (define deblob-scripts-6.12 (linux-libre-deblob-scripts @@ -543,12 +570,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1yl447396g454116j8v17wsqg5i0gyb2rrxvaygw6xdkbwrrj28j"))) (define-public linux-libre-6.12-pristine-source (let ((version linux-libre-6.12-version) - (hash (base32 "1yy17c06sn6l0skz8n1kxqhzldgwxxd0xhs11fd3086d56554128"))) + (hash (base32 "1bmx2vpxy6nkxnmm2a3zmv9smaajfhvslj6id54j4yq2sc722l5n"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.12))) -(define-public linux-libre-6.6-version "6.6.102") +(define-public linux-libre-6.6-version "6.6.103") (define-public linux-libre-6.6-gnu-revision "gnu") (define deblob-scripts-6.6 (linux-libre-deblob-scripts @@ -558,12 +585,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "11i7pvm5n31rvp05msbm3ciclr84cz9c94f5r5aa6mmzhslwpbxk"))) (define-public linux-libre-6.6-pristine-source (let ((version linux-libre-6.6-version) - (hash (base32 "0p6yjifwyrqlppn40isgxb0b5vqmljggmnp7w75vlc2c6fvzxll0"))) + (hash (base32 "13mi8blsw0gps586qbvh7ga5r9pv9jld4fkbp9vaaaz6qcwdv26j"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.6))) -(define-public linux-libre-6.1-version "6.1.148") +(define-public linux-libre-6.1-version "6.1.149") (define-public linux-libre-6.1-gnu-revision "gnu") (define deblob-scripts-6.1 (linux-libre-deblob-scripts @@ -573,12 +600,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0f3jgbfd2j7sz7h1hb30s1r9147g1cbb3ia09k9834fvbiz1ihaa"))) (define-public linux-libre-6.1-pristine-source (let ((version linux-libre-6.1-version) - (hash (base32 "18c024bqqc3srzv2gva55p95yghjc6x3p3f54v3hziki4wx3v86r"))) + (hash (base32 "0fdyfxw80zhkwh29m5v7xfmbyks5wi6isdq6bv96cn4ssfw0dsf4"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.1))) -(define-public linux-libre-5.15-version "5.15.189") +(define-public linux-libre-5.15-version "5.15.190") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -588,12 +615,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0rg65s6kd9gxxa3wl6180pr39rb6zbcicwjik4kygs2ns0247y56"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "1hshd26ahn6dbw6jnqi0v5afpk672w7p09mk7iri93i7hxdh5l73"))) + (hash (base32 "0146lslj0my0mhcx7wfp984f270zr8iiyq9899v6f7cflkqi9f32"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.240") +(define-public linux-libre-5.10-version "5.10.241") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -603,12 +630,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0r1whrfhhhjyvppiidhihcvyzcab6dva6g9a4div8jkxm62s2cq3"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "04sdcf4aqsqchii38anzmk9f9x65wv8q1x3m9dandmi6fabw724d"))) + (hash (base32 "1mnqjvb1hmr7p035c66k3z0idirhsj9j5zwgb92gi0ac0s1fkh88"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.296") +(define-public linux-libre-5.4-version "5.4.297") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -618,7 +645,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0l7pwhgw9laxfypcpqlz411x3hybcw2269abh3lpcw96bgv5m1k2"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0fm73yqzbzclh2achcj8arpg428d412k2wgmlfmyy6xzb1762qrx"))) + (hash (base32 "0hd8x32xgvj4qnc6cls0q21zfgvxxfz7xhbwgl48hxfggbmgq37i"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) @@ -651,6 +678,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (patches (append (origin-patches source) patches)))) +(define-public linux-libre-6.16-source + (source-with-patches linux-libre-6.16-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-patch))) + (define-public linux-libre-6.15-source (source-with-patches linux-libre-6.15-pristine-source (list %boot-logo-patch @@ -777,6 +809,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (description "Headers of the Linux-Libre kernel.") (license license:gpl2))) +(define-public linux-libre-headers-6.16 + (make-linux-libre-headers* linux-libre-6.16-version + linux-libre-6.16-gnu-revision + linux-libre-6.16-source)) + (define-public linux-libre-headers-6.15 (make-linux-libre-headers* linux-libre-6.15-version linux-libre-6.15-gnu-revision @@ -822,7 +859,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; linux-libre-headers-latest points to the latest headers package ;; and should be used as a dependency for packages that depend on ;; the headers. -(define-public linux-libre-headers-latest linux-libre-headers-6.15) +(define-public linux-libre-headers-latest linux-libre-headers-6.16) ;;; @@ -1149,6 +1186,14 @@ Linux kernel. It has been modified to remove all non-free binary blobs.") ;;; Generic kernel packages. ;;; +(define-public linux-libre-6.16 + (make-linux-libre* linux-libre-6.16-version + linux-libre-6.16-gnu-revision + linux-libre-6.16-source + '("x86_64-linux" "i686-linux" "aarch64-linux" + "powerpc64le-linux" "riscv64-linux") + #:configuration-file kernel-config)) + (define-public linux-libre-6.15 (make-linux-libre* linux-libre-6.15-version linux-libre-6.15-gnu-revision @@ -2348,7 +2393,7 @@ and the notification, WiFi, and Bluetooth LED.") (define-public tuxedo-keyboard (package (name "tuxedo-keyboard") - (version "4.14.2") + (version "4.15.4") (source (origin (method git-fetch) @@ -2357,21 +2402,23 @@ and the notification, WiFi, and Bluetooth LED.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0b7qivyd8r58cq84q11b2z919px5p9k5zbinm6ahj07w0lsq2j7b")))) + (base32 "0mimgcbp57gp3smd439g8040sl80qqnfzmh2vhs2qv1kwyxs75sq")))) (build-system linux-module-build-system) (arguments (list #:tests? #f)) ; no test suite + ;; This package fails to build on aarch64, and the manufacturer only sells + ;; machines based on Intel-compatible processors. For more information, see + ;; <https://codeberg.org/guix/guix/pulls/1795>. + (supported-systems '("i686-linux" "x86_64-linux")) (home-page "https://gitlab.com/tuxedocomputers/development/packages/tuxedo-drivers") (synopsis "Linux kernel modules to control keyboard on most Tuxedo computers") (description "This package provides the @code{tuxedo_keyboard}, @code{tuxedo_io}, @code{clevo_wmi} @acronym{WMI, Windows Management Engine} and the @code{clevo_acpi} @acronym{ACPI, Advanced Configuration and Power Interface} -kernel modules to control the keyboard on most Tuxedo computers. Only white -backlight only models are currently not supported. The @code{tuxedo_io} -module is also needed for the @code{tuxedo-control-center} (short tcc) -package.") - (license license:gpl3+))) +kernel modules to control the keyboard on most Tuxedo computers. The @code{tuxedo_io} +module is also needed for the @code{tuxedo-control-center} (short tcc) package.") + (license license:gpl2+))) (define-public evdi (package @@ -3063,7 +3110,7 @@ deviation, and minimum and maximum values. It can show a nice histogram too.") ;; FIXME: For now we cannot reliably run tests on GNU/Hurd: ;; <https://bugs.gnu.org/47791>. #:tests? (and (not (%current-target-system)) - (not (string-suffix? "-gnu" (%current-system)))) + (not (system-hurd?))) #:phases #~(modify-phases %standard-phases @@ -3378,24 +3425,20 @@ slabtop, tload, top, vmstat, w, watch and sysctl.") (define-public usbutils (package (name "usbutils") - (version "017") + (version "018") (source (origin - (method url-fetch) - (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/" - "usbutils-" version ".tar.xz")) - (sha256 - (base32 "0nz008kshcajc9asxr4j5dh4wgq72z52lws4ga6y60wirzymz8m6")))) - (build-system gnu-build-system) + (method url-fetch) + (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/" + "usbutils-" version ".tar.xz")) + (sha256 + (base32 "14xd7j9fl3pm0z4dhqj3mf9paqk431kq4vi602f5hiw5nmcqpxl3")))) + (build-system meson-build-system) (outputs (list "out" "python")) (arguments (list #:phases #~(modify-phases %standard-phases - (add-before 'bootstrap 'patch-bootstrap-scripts - (lambda _ - (substitute* "usbhid-dump/bootstrap" - (("/bin/sh") (which "sh"))))) (add-after 'install 'separate-python-output ;; Separating one Python script shaves more than 106 MiB from :out. (lambda _ @@ -3404,17 +3447,21 @@ slabtop, tload, top, vmstat, w, watch and sysctl.") (new (string-append #$output:python "/" file))) (mkdir-p (dirname new)) (rename-file old new))) - (list "bin/lsusb.py"))))))) - (inputs - (list eudev libusb python)) - (native-inputs - (list autoconf automake libtool pkg-config)) + (list "bin/lsusb.py")))) + (add-after 'install 'install-usbreset + (lambda _ + (install-file "usbreset" + (string-append #$output "/bin"))))))) + (native-inputs (list pkg-config)) + (inputs (list eudev libusb python)) (home-page "http://www.linux-usb.org/") (synopsis "Tools for working with USB devices") (description - "Collection of tools to query what type of USB devices are connected to the -system, including @command{lsusb}.") + "Collection of tools to query what type of USB devices are connected to +the system, including @command{lsusb}. The experimental @command{usbreset} +command included in the package, but be aware that it may not work for all +devices.") (license license:gpl2+))) (define-public usbip-utils @@ -8103,124 +8150,128 @@ not as a replacement for it.") license:gpl3+)))) ; everything else (define-public hotspot - (package - (name "hotspot") - (version "1.5.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/KDAB/hotspot") - (commit (string-append "v" version)) - ;; Include the bundled perfparser and PrefixTickLabels - ;; libraries, which are to be used in source form. - (recursive? #t))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04k2rvf2lgi8hp7dzqzn65fcd2lsiylwr04d44q75j0wvgbjjv1v")))) - (build-system qt-build-system) - (arguments - (list - ;; As mentioned in the option help text, the KAuth helper cannot be - ;; installed to a custom prefix and the build fails with "file cannot - ;; create directory: /polkit-1/actions. Maybe need administrative" - ;; (see: https://bugs.kde.org/show_bug.cgi?id=363678). - #:configure-flags #~(list "-DINSTALL_KAUTH_HELPER=OFF" - "-DQT6_BUILD=ON") - #:qtbase qtbase - ;; The 'tst_models' and 'tst_callgraphgenerator' fail, with - ;; the later seemingly requiring sudo or access to the kernel - ;; trace points. - #:test-exclude - (string-append - "(" - (string-join - ;; The 'tst_models' expected output doesn't exactly - ;; match. - '("tst_models" - ;; The 'tst_callgraphgenerator' perf invocation - ;; fails when run in the build container. - "tst_callgraphgenerator" - ;; The 'tst_perfparser' test requires sudo/access - ;; to the kernel scheduler trace points. - "tst_perfparser") - "|") - ")") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-perfparser - ;; XXX: This phase is copied from qt-creator: keep them in sync! - (lambda* (#:key inputs #:allow-other-keys) - ;; perfparser attempts to dynamically load the demangle - ;; libraries; use their absolute file name to avoid having to - ;; set LD_LIBRARY_PATH. - (let ((librustc_demangle.so - (with-exception-handler (lambda (ex) - (if (search-error? ex) - #f - (raise-exception ex))) - (lambda () - (search-input-file inputs "lib/librustc_demangle.so")) - #:unwind? #t))) - (substitute* "3rdparty/perfparser/app/demangler.cpp" - (("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")" - all) - (if librustc_demangle.so - (format #f "loadDemangleLib(QStringLiteral(~s)" - librustc_demangle.so) - all)) ;no rustc_demangle; leave unchanged - (("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")") - (format #f "loadDemangleLib(QStringLiteral(~s)" - (search-input-file inputs - "lib/libd_demangle.so"))))))) - (add-after 'unpack 'path-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "src/perfoutputwidgetkonsole.cpp" - (("\"tail\"") - (format #f "~s" (search-input-file inputs "bin/tail")))) - (substitute* "src/perfrecord.cpp" - (("\"perf( )?\"" _ space) - (string-append "\"" (search-input-file inputs "bin/perf") - (or space "") "\"")))))))) - (native-inputs - (list extra-cmake-modules - vulkan-headers)) - (inputs - (append - (list coreutils-minimal - d-demangler - elfutils - karchive - kconfig - kcoreaddons - kddockwidgets - kgraphviewer - ki18n - kio - kiconthemes - kitemmodels - kitemviews - knotifications - kparts - ksyntaxhighlighting - kwindowsystem - libxkbcommon - perf - qtdeclarative - qtsvg - solid - threadweaver - `(,zstd "lib")) - (if (supported-package? rust-rustc-demangle-capi-0.1) - (list rust-rustc-demangle-capi-0.1) - '()))) - (home-page "https://github.com/KDAB/hotspot") - (synopsis "Performance analysis GUI for Linux perf") - (description "Hotspot is a standalone GUI for performance data analysis. + ;; Use the latest git commit as it includes unreleased fixes for the test + ;; suite. + (let ((commit "5cec69301a3f34ada86ce9fe01a9538b04b3cf7c") + (revision "0")) + (package + (name "hotspot") + (version (git-version "1.5.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KDAB/hotspot") + (commit commit) + ;; Include the bundled perfparser and PrefixTickLabels + ;; libraries, which are to be used in source form. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "115gskjdcb1q3mgrnv1qcdrhxabjzl1hhkpk1klk67ayicsk1ym6")))) + (build-system qt-build-system) + (arguments + (list + ;; As mentioned in the option help text, the KAuth helper cannot be + ;; installed to a custom prefix and the build fails with "file cannot + ;; create directory: /polkit-1/actions. Maybe need administrative" + ;; (see: https://bugs.kde.org/show_bug.cgi?id=363678). + #:configure-flags #~(list "-DINSTALL_KAUTH_HELPER=OFF" + "-DQT6_BUILD=ON") + #:qtbase qtbase + ;; The 'tst_models' and 'tst_callgraphgenerator' fail, with + ;; the later seemingly requiring sudo or access to the kernel + ;; trace points. + #:test-exclude + (string-append + "(" + (string-join + ;; The 'tst_models' expected output doesn't exactly + ;; match. + '("tst_models" + ;; The 'tst_callgraphgenerator' perf invocation + ;; fails when run in the build container. + "tst_callgraphgenerator" + ;; The 'tst_perfparser' test requires sudo/access + ;; to the kernel scheduler trace points. + "tst_perfparser") + "|") + ")") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-perfparser + ;; XXX: This phase is copied from qt-creator: keep them in sync! + (lambda* (#:key inputs #:allow-other-keys) + ;; perfparser attempts to dynamically load the demangle + ;; libraries; use their absolute file name to avoid having to + ;; set LD_LIBRARY_PATH. + (let ((librustc_demangle.so + (with-exception-handler (lambda (ex) + (if (search-error? ex) + #f + (raise-exception ex))) + (lambda () + (search-input-file inputs "lib/librustc_demangle.so")) + #:unwind? #t))) + (substitute* "3rdparty/perfparser/app/demangler.cpp" + (("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")" + all) + (if librustc_demangle.so + (format #f "loadDemangleLib(QStringLiteral(~s)" + librustc_demangle.so) + all)) ;no rustc_demangle; leave unchanged + (("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")") + (format #f "loadDemangleLib(QStringLiteral(~s)" + (search-input-file inputs + "lib/libd_demangle.so"))))))) + (add-after 'unpack 'path-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/perfoutputwidgetkonsole.cpp" + (("\"tail\"") + (format #f "~s" (search-input-file inputs "bin/tail")))) + (substitute* "src/perfrecord.cpp" + (("\"perf( )?\"" _ space) + (string-append "\"" (search-input-file inputs "bin/perf") + (or space "") "\"")))))))) + (native-inputs + (list extra-cmake-modules + vulkan-headers)) + (inputs + (append + (list coreutils-minimal + d-demangler + elfutils + karchive + kconfig + kcoreaddons + kddockwidgets + kgraphviewer + ki18n + kio + kiconthemes + kitemmodels + kitemviews + knotifications + kparts + ksyntaxhighlighting + kwindowsystem + libxkbcommon + perf + qtdeclarative + qtsvg + solid + threadweaver + `(,zstd "lib")) + (if (supported-package? rust-rustc-demangle-capi-0.1) + (list rust-rustc-demangle-capi-0.1) + '()))) + (home-page "https://github.com/KDAB/hotspot") + (synopsis "Performance analysis GUI for Linux perf") + (description "Hotspot is a standalone GUI for performance data analysis. It aims to be similar to KCachegrind, but for data collected with @command{perf}, a profiler for use with the kernel Linux. Its main feature is graphically visualizing a @file{perf.data} file.") - (license (list license:gpl2+ license:gpl3+)))) ;dual licensed + (license (list license:gpl2+ license:gpl3+))))) ;dual licensed (define-public ecryptfs-utils (package @@ -12190,6 +12241,36 @@ virtual server table in the Linux kernel. The Linux Virtual Server can be used to build scalable network services based on a cluster of two or more nodes.") (license license:gpl2+))) +(define-public ryzenadj + (package + (name "ryzenadj") + (version "0.17.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/flygoat/ryzenadj/archive/refs/tags/" + "v" version ".tar.gz")) + (sha256 + (base32 "0i2x6kbn2ix52vjz1mmh0c0g3w0k4sn0lq68wbsk0pgndzcck2l4")) + (modules '((guix build utils))) + (snippet + '(begin (delete-file-recursively "win32") + #t)))) + (build-system cmake-build-system) + (inputs (list pciutils)) + (arguments + (list #:tests? #f ; No test suite + #:phases #~(modify-phases %standard-phases + (add-before 'install 'build + (lambda _ + (invoke "cmake" "-DCMAKE_BUILD_TYPE=Release" ".")))))) + (home-page "https://github.com/flygoat/ryzenadj") + (synopsis "Power management tool for AMD Ryzen APUs") + (description + "@command{ryzenadj} is an utility to adjust power management settings for +AMD Ryzen mobile processors. You will need to ensure it can access /dev/mem, +for instance by using the \"iomem=relaxed\" kernel argument.") + (license license:lgpl3))) + (define-public ryzen-smu (package (name "ryzen-smu") |