* [bug#75159] [PATCH v0 0/4] Add corectrl and corectrl-helper-service-type @ 2024-12-28 10:18 Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty ` (2 more replies) 0 siblings, 3 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 10:18 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty This patch series adds the package corectrl. It also includes the helper service and it's documentation. Ashvith Shetty (3): gnu: Add trompeloeil. gnu: Add corectrl. services: Add corectrl-helper-service-type. Rutherther (1): guix: qt: add inputs and outputs build variables in qt-build doc/guix.texi | 15 ++++ gnu/local.mk | 1 + gnu/packages/check.scm | 23 +++++ .../patches/corectrl-polkit-install-dir.patch | 21 +++++ gnu/packages/pciutils.scm | 83 ++++++++++++++++++- gnu/services/pciutils.scm | 43 ++++++++++ guix/build-system/qt.scm | 54 ++++++------ 7 files changed, 213 insertions(+), 27 deletions(-) create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch create mode 100644 gnu/services/pciutils.scm -- 2.46.0 ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build 2024-12-28 10:18 [bug#75159] [PATCH v0 0/4] Add corectrl and corectrl-helper-service-type Ashvith Shetty @ 2024-12-28 10:44 ` Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 2/4] gnu: Add trompeloeil Ashvith Shetty ` (3 more replies) 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2 siblings, 4 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 10:44 UTC (permalink / raw) To: 75159; +Cc: Rutherther From: Rutherther <rutherther@ditigal.xyz> Qt build doesn't provide build-variables of inputs and outputs, so it's not possible to refer to %outputs in arguments of a package that uses qt-build-system. This patch unifies qt-build-system's behavior with other build systems like cmake-build-system or gnu-build-system. * guix/build-system/qt.scm (qt-build): Wrap with with-build-variables to provide variables to arguments Change-Id: I65853a5831ce7b5dc7ebe10807c6e61bb89cab36 --- guix/build-system/qt.scm | 54 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index d1f721c54e..5f9a5019ae 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -152,32 +152,34 @@ (define builder (with-imported-modules imported-modules #~(begin (use-modules #$@(sexp->gexp modules)) - (qt-build #:source #+source - #:system #$system - #:outputs #$(outputs->gexp outputs) - #:inputs #$(input-tuples->gexp inputs) - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:phases #$(if (pair? phases) - (sexp->gexp phases) - phases) - #:qtbase #+qtbase - #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs - #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs - #:configure-flags #$configure-flags - #:make-flags #$make-flags - #:out-of-source? #$out-of-source? - #:build-type #$build-type - #:tests? #$tests? - #:test-target #$test-target - #:parallel-build? #$parallel-build? - #:parallel-tests? #$parallel-tests? - #:validate-runpath? #$validate-runpath? - #:patch-shebangs? #$patch-shebangs? - #:strip-binaries? #$strip-binaries? - #:strip-flags #$strip-flags - #:strip-directories #$strip-directories)))) + + #$(with-build-variables inputs outputs + #~(qt-build #:source #+source + #:system #$system + #:outputs %outputs + #:inputs %build-inputs + #:search-paths '#$(sexp->gexp + (map search-path-specification->sexp + search-paths)) + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:qtbase #+qtbase + #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs + #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs + #:configure-flags #$configure-flags + #:make-flags #$make-flags + #:out-of-source? #$out-of-source? + #:build-type #$build-type + #:tests? #$tests? + #:test-target #$test-target + #:parallel-build? #$parallel-build? + #:parallel-tests? #$parallel-tests? + #:validate-runpath? #$validate-runpath? + #:patch-shebangs? #$patch-shebangs? + #:strip-binaries? #$strip-binaries? + #:strip-flags #$strip-flags + #:strip-directories #$strip-directories))))) (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) system #:graft? #f))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v0 2/4] gnu: Add trompeloeil. 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty @ 2024-12-28 10:44 ` Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 3/4] gnu: Add corectrl Ashvith Shetty ` (2 subsequent siblings) 3 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 10:44 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * gnu/packages/check.scm (trompeloeil): New variable. Change-Id: I44d83ff4230a1c836bedc124acb1a40742f17021 --- gnu/packages/check.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index dd32800870..6afd7fefb5 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -3805,6 +3805,29 @@ (define-public toml-test tests. The output format is JSON.") (license license:expat))) +(define-public trompeloeil + (package + (name "trompeloeil") + (version "49") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rollbear/trompeloeil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4bfzcj033qfk3sihbikrhk9krsdbsqk79nsambnsnqqcgc2903")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f)) + (home-page "https://github.com/rollbear/trompeloeil") + (synopsis "Header only C++14 mocking framework") + (description + "A thread-safe header-only mocking framework for C++11/14 using the Boost Software License 1.0") + (license license:boost1.0))) + (define-public unittest-cpp (package (name "unittest-cpp") -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v0 3/4] gnu: Add corectrl. 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 2/4] gnu: Add trompeloeil Ashvith Shetty @ 2024-12-28 10:44 ` Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 4/4] services: Add corectrl-helper-service-type Ashvith Shetty 2024-12-28 12:49 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Zheng Junjie 3 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 10:44 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * gnu/packages/pciutils.scm (corectrl): New variable. * gnu/packages/patches/corectrl-polkit-install-dir.patch: New file. Change-Id: I726c6cbfb6530abd8284f36e10a1e1f7a0fc4661 --- .../patches/corectrl-polkit-install-dir.patch | 21 +++++ gnu/packages/pciutils.scm | 83 ++++++++++++++++++- 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch diff --git a/gnu/packages/patches/corectrl-polkit-install-dir.patch b/gnu/packages/patches/corectrl-polkit-install-dir.patch new file mode 100644 index 0000000000..586e096cf4 --- /dev/null +++ b/gnu/packages/patches/corectrl-polkit-install-dir.patch @@ -0,0 +1,21 @@ +diff --git a/src/helper/CMakeLists.txt b/src/helper/CMakeLists.txt +index c262086..523ea97 100644 +--- a/src/helper/CMakeLists.txt ++++ b/src/helper/CMakeLists.txt +@@ -26,15 +26,7 @@ message("D-Bus files will be installed into ${DBUS_DATADIR_PREFIX_DIR}/dbus-1") + + # Find polkit + pkg_check_modules(POLKIT REQUIRED polkit-gobject-1) +-execute_process( +- COMMAND pkg-config --variable=policydir polkit-gobject-1 +- RESULT_VARIABLE POLKIT_POLICY_INSTALL_DIR_RESULT +- OUTPUT_VARIABLE POLKIT_POLICY_INSTALL_DIR +- OUTPUT_STRIP_TRAILING_WHITESPACE +-) +-if(NOT POLKIT_POLICY_INSTALL_DIR_RESULT EQUAL "0") +- message(FATAL_ERROR "Failed to retrieve Polkit `policydir` variable using pkg-config") +-endif() ++option(POLKIT_POLICY_INSTALL_DIR "Polkit policy directory") + + list(APPEND HELPER_COMPILE_DEFINITIONS + SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 08f1634113..1ae568a8eb 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2022 Marius Bakke <marius@gnu.org> +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,11 +31,23 @@ (define-module (gnu packages pciutils) #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system qt) #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gl) + #:use-module (gnu packages logging) + #:use-module (gnu packages maths) + #:use-module (gnu packages polkit) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages glib) #:use-module (gnu packages linux) - #:use-module (gnu packages base)) + #:use-module (gnu packages qt) + #:use-module (gnu packages vulkan) + #:use-module (gnu packages xml)) (define-public hwdata (package @@ -173,3 +186,71 @@ (define-public pciutils of operating systems. This includes the @command{lspci} and @command{setpci} commands.") (license license:gpl2+))) + +;; corectrl also requires the helper service. +;; See corectrl-helper-service-type. +;; +;; Please read the setup instructions from: +;; https://gitlab.com/corectrl/corectrl/-/wikis/Installation +;; and +;; https://gitlab.com/corectrl/corectrl/-/wikis/Setup +;; +;; corectrl also requires CONFIG_NETLINK_DIAG to be set to +;; either 'y' or 'm' - 'm' is the default in Guix. In that case, +;; the kernel module has to be loaded. +;; +;; To allow rootless corectrl, add user to the "corectrl" group. + +(define-public corectrl + (package + (name "corectrl") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/corectrl/corectrl") + (commit (string-append "v" version)))) + (sha256 + (base32 "0qpc04xxzv4jbqqlraqriipix4ph7bm1hfiry807jjp668i9n25d")) + (file-name (git-file-name name version)) + (patches (search-patches "corectrl-polkit-install-dir.patch")))) + (build-system qt-build-system) + (arguments + (list + #:qtbase qtbase-5 + #:tests? #t + #:configure-flags #~(list "-DINSTALL_DBUS_FILES_IN_PREFIX=true" + (string-append "-DPOLKIT_POLICY_INSTALL_DIR=" + #$output + "/share/polkit-1/actions") + (string-append "-DWITH_PCI_IDS_PATH=" + (search-input-file + %build-inputs + "/share/hwdata/pci.ids"))))) + (native-inputs (list pkg-config gcc-13)) + (propagated-inputs (list mesa-utils vulkan-tools util-linux)) + (inputs (list dbus + botan + catch2-3 + hwdata + polkit + procps + pugixml + qtcharts-5 + qtdeclarative-5 + qtquickcontrols2-5 + qtsvg-5 + qttools-5 + quazip + spdlog + trompeloeil + units + zlib)) + (home-page "https://gitlab.com/corectrl/corectrl") + (synopsis "Profile based system control utility") + (description + "CoreCtrl is a Free and Open Source GNU/Linux application that allows +you to control with ease your computer hardware using application profiles. +It aims to be flexible, comfortable and accessible to regular users.") + (license (list license:gpl3)))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v0 4/4] services: Add corectrl-helper-service-type. 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 2/4] gnu: Add trompeloeil Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 3/4] gnu: Add corectrl Ashvith Shetty @ 2024-12-28 10:44 ` Ashvith Shetty 2024-12-28 12:49 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Zheng Junjie 3 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 10:44 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * gnu/services/pciutils.scm: New file. (corectrl-helper-service-type): new variable. * gnu/local.mk: Add them. * doc/guix.texi (Miscellaneous Services): Document it. Change-Id: I1dbeb927100a9a488909ff1950ec7e50d3797c29 --- doc/guix.texi | 15 ++++++++++++++ gnu/local.mk | 1 + gnu/services/pciutils.scm | 43 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 gnu/services/pciutils.scm diff --git a/doc/guix.texi b/doc/guix.texi index da4d2f5ebc..a36d3cc0f1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -42550,6 +42550,21 @@ empty list means that no type is specified. @end deftp +@cindex corectrl-helper +@subsubheading CoreCtrl Helper Service + +The @code{(gnu services pciutils)} module provides a DBus service for +interacting with system hardware resources, such as CPU and GPU, +enabling advanced control and management through the CoreCtrl application. + +@defvar corectrl-helper-service-type +The service type for @command{corectrl}, which provides a helper service. + +@lisp +(service corectrl-helper-service-type) +@end lisp +@end defvar + @c %end of fragment @node Privileged Programs diff --git a/gnu/local.mk b/gnu/local.mk index 84160f407a..5ebdb72624 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -751,6 +751,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/nix.scm \ %D%/services/nfs.scm \ %D%/services/pam-mount.scm \ + %D%/services/pciutils.scm \ %D%/services/science.scm \ %D%/services/security.scm \ %D%/services/security-token.scm \ diff --git a/gnu/services/pciutils.scm b/gnu/services/pciutils.scm new file mode 100644 index 0000000000..cfd310b584 --- /dev/null +++ b/gnu/services/pciutils.scm @@ -0,0 +1,43 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services pciutils) + #:use-module (gnu packages pciutils) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services dbus) + #:use-module (guix gexp) + #:export (corectrl-helper-configuration + corectrl-helper-configuration? + corectrl-helper-service-type)) + +(define-configuration corectrl-helper-configuration + (corectrl (file-like corectrl) "The corectrl package")) + +(define (corectrl-helper-dbus-service config) + (list (corectrl-helper-configuration-corectrl config))) + +(define corectrl-helper-service-type + (service-type (name 'corectrl-helper) + (extensions (list (service-extension dbus-root-service-type + corectrl-helper-dbus-service) + (service-extension polkit-service-type + corectrl-helper-dbus-service))) + (default-value (corectrl-helper-configuration)) + ;; TODO: Improve the description. + (description "Run corectrl-helper, an essential service for the corectrl application."))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty ` (2 preceding siblings ...) 2024-12-28 10:44 ` [bug#75159] [PATCH v0 4/4] services: Add corectrl-helper-service-type Ashvith Shetty @ 2024-12-28 12:49 ` Zheng Junjie 3 siblings, 0 replies; 21+ messages in thread From: Zheng Junjie @ 2024-12-28 12:49 UTC (permalink / raw) To: Ashvith Shetty; +Cc: Rutherther, 75159 [-- Attachment #1: Type: text/plain, Size: 4512 bytes --] Ashvith Shetty <ashvithshetty10@gmail.com> writes: > From: Rutherther <rutherther@ditigal.xyz> > > Qt build doesn't provide build-variables of inputs and outputs, > so it's not possible to refer to %outputs in arguments of > a package that uses qt-build-system. This patch unifies > qt-build-system's behavior with other build systems like > cmake-build-system or gnu-build-system. see https://mail.gnu.org/archive/html/guix-devel/2024-12/msg00124.html Things like %outputs are outdated, please use gexp related > > * guix/build-system/qt.scm (qt-build): Wrap with with-build-variables to > provide variables to arguments > > Change-Id: I65853a5831ce7b5dc7ebe10807c6e61bb89cab36 > --- > guix/build-system/qt.scm | 54 +++++++++++++++++++++------------------- > 1 file changed, 28 insertions(+), 26 deletions(-) > > diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm > index d1f721c54e..5f9a5019ae 100644 > --- a/guix/build-system/qt.scm > +++ b/guix/build-system/qt.scm > @@ -152,32 +152,34 @@ (define builder > (with-imported-modules imported-modules > #~(begin > (use-modules #$@(sexp->gexp modules)) > - (qt-build #:source #+source > - #:system #$system > - #:outputs #$(outputs->gexp outputs) > - #:inputs #$(input-tuples->gexp inputs) > - #:search-paths '#$(sexp->gexp > - (map search-path-specification->sexp > - search-paths)) > - #:phases #$(if (pair? phases) > - (sexp->gexp phases) > - phases) > - #:qtbase #+qtbase > - #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs > - #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs > - #:configure-flags #$configure-flags > - #:make-flags #$make-flags > - #:out-of-source? #$out-of-source? > - #:build-type #$build-type > - #:tests? #$tests? > - #:test-target #$test-target > - #:parallel-build? #$parallel-build? > - #:parallel-tests? #$parallel-tests? > - #:validate-runpath? #$validate-runpath? > - #:patch-shebangs? #$patch-shebangs? > - #:strip-binaries? #$strip-binaries? > - #:strip-flags #$strip-flags > - #:strip-directories #$strip-directories)))) > + > + #$(with-build-variables inputs outputs > + #~(qt-build #:source #+source > + #:system #$system > + #:outputs %outputs > + #:inputs %build-inputs > + #:search-paths '#$(sexp->gexp > + (map search-path-specification->sexp > + search-paths)) > + #:phases #$(if (pair? phases) > + (sexp->gexp phases) > + phases) > + #:qtbase #+qtbase > + #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs > + #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs > + #:configure-flags #$configure-flags > + #:make-flags #$make-flags > + #:out-of-source? #$out-of-source? > + #:build-type #$build-type > + #:tests? #$tests? > + #:test-target #$test-target > + #:parallel-build? #$parallel-build? > + #:parallel-tests? #$parallel-tests? > + #:validate-runpath? #$validate-runpath? > + #:patch-shebangs? #$patch-shebangs? > + #:strip-binaries? #$strip-binaries? > + #:strip-flags #$strip-flags > + #:strip-directories #$strip-directories))))) > > (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) > system #:graft? #f))) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type 2024-12-28 10:18 [bug#75159] [PATCH v0 0/4] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty @ 2024-12-28 15:30 ` Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty ` (4 more replies) 2024-12-31 18:09 ` [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2 siblings, 5 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 15:30 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty Updated patch series replaces %outputs with #$(outputs->gexp outputs) and %build-inputs with #$(input-tuples->gexp inputs). Ashvith Shetty (4): gnu: Add trompeloeil. gnu: Add corectrl. services: Add corectrl-helper-service-type. guix: qt: Revert to gexp-based inputs and outputs Rutherther (1): guix: qt: add inputs and outputs build variables in qt-build doc/guix.texi | 15 ++++ gnu/local.mk | 1 + gnu/packages/check.scm | 23 +++++ .../patches/corectrl-polkit-install-dir.patch | 21 +++++ gnu/packages/pciutils.scm | 83 ++++++++++++++++++- gnu/services/pciutils.scm | 43 ++++++++++ guix/build-system/qt.scm | 54 ++++++------ 7 files changed, 213 insertions(+), 27 deletions(-) create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch create mode 100644 gnu/services/pciutils.scm -- 2.46.0 ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty @ 2024-12-28 15:30 ` Ashvith Shetty 2024-12-30 7:03 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 2/5] gnu: Add trompeloeil Ashvith Shetty ` (3 subsequent siblings) 4 siblings, 1 reply; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 15:30 UTC (permalink / raw) To: 75159; +Cc: Rutherther From: Rutherther <rutherther@ditigal.xyz> Qt build doesn't provide build-variables of inputs and outputs, so it's not possible to refer to %outputs in arguments of a package that uses qt-build-system. This patch unifies qt-build-system's behavior with other build systems like cmake-build-system or gnu-build-system. * guix/build-system/qt.scm (qt-build): Wrap with with-build-variables to provide variables to arguments Change-Id: I65853a5831ce7b5dc7ebe10807c6e61bb89cab36 --- guix/build-system/qt.scm | 54 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index d1f721c54e..5f9a5019ae 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -152,32 +152,34 @@ (define builder (with-imported-modules imported-modules #~(begin (use-modules #$@(sexp->gexp modules)) - (qt-build #:source #+source - #:system #$system - #:outputs #$(outputs->gexp outputs) - #:inputs #$(input-tuples->gexp inputs) - #:search-paths '#$(sexp->gexp - (map search-path-specification->sexp - search-paths)) - #:phases #$(if (pair? phases) - (sexp->gexp phases) - phases) - #:qtbase #+qtbase - #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs - #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs - #:configure-flags #$configure-flags - #:make-flags #$make-flags - #:out-of-source? #$out-of-source? - #:build-type #$build-type - #:tests? #$tests? - #:test-target #$test-target - #:parallel-build? #$parallel-build? - #:parallel-tests? #$parallel-tests? - #:validate-runpath? #$validate-runpath? - #:patch-shebangs? #$patch-shebangs? - #:strip-binaries? #$strip-binaries? - #:strip-flags #$strip-flags - #:strip-directories #$strip-directories)))) + + #$(with-build-variables inputs outputs + #~(qt-build #:source #+source + #:system #$system + #:outputs %outputs + #:inputs %build-inputs + #:search-paths '#$(sexp->gexp + (map search-path-specification->sexp + search-paths)) + #:phases #$(if (pair? phases) + (sexp->gexp phases) + phases) + #:qtbase #+qtbase + #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs + #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs + #:configure-flags #$configure-flags + #:make-flags #$make-flags + #:out-of-source? #$out-of-source? + #:build-type #$build-type + #:tests? #$tests? + #:test-target #$test-target + #:parallel-build? #$parallel-build? + #:parallel-tests? #$parallel-tests? + #:validate-runpath? #$validate-runpath? + #:patch-shebangs? #$patch-shebangs? + #:strip-binaries? #$strip-binaries? + #:strip-flags #$strip-flags + #:strip-directories #$strip-directories))))) (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) system #:graft? #f))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build 2024-12-28 15:30 ` [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty @ 2024-12-30 7:03 ` Zheng Junjie 0 siblings, 0 replies; 21+ messages in thread From: Zheng Junjie @ 2024-12-30 7:03 UTC (permalink / raw) To: Ashvith Shetty; +Cc: Rutherther, 75159 [-- Attachment #1: Type: text/plain, Size: 4564 bytes --] Ashvith Shetty <ashvithshetty10@gmail.com> writes: > From: Rutherther <rutherther@ditigal.xyz> > > Qt build doesn't provide build-variables of inputs and outputs, > so it's not possible to refer to %outputs in arguments of > a package that uses qt-build-system. This patch unifies > qt-build-system's behavior with other build systems like > cmake-build-system or gnu-build-system. > This patch will cause all qt packages to be rebuilt, and the future should be to remove cmake-build-system, gnu-build-system's %outputs, use gexp. so this patch will not be merged. > * guix/build-system/qt.scm (qt-build): Wrap with with-build-variables to > provide variables to arguments > > Change-Id: I65853a5831ce7b5dc7ebe10807c6e61bb89cab36 > --- > guix/build-system/qt.scm | 54 +++++++++++++++++++++------------------- > 1 file changed, 28 insertions(+), 26 deletions(-) > > diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm > index d1f721c54e..5f9a5019ae 100644 > --- a/guix/build-system/qt.scm > +++ b/guix/build-system/qt.scm > @@ -152,32 +152,34 @@ (define builder > (with-imported-modules imported-modules > #~(begin > (use-modules #$@(sexp->gexp modules)) > - (qt-build #:source #+source > - #:system #$system > - #:outputs #$(outputs->gexp outputs) > - #:inputs #$(input-tuples->gexp inputs) > - #:search-paths '#$(sexp->gexp > - (map search-path-specification->sexp > - search-paths)) > - #:phases #$(if (pair? phases) > - (sexp->gexp phases) > - phases) > - #:qtbase #+qtbase > - #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs > - #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs > - #:configure-flags #$configure-flags > - #:make-flags #$make-flags > - #:out-of-source? #$out-of-source? > - #:build-type #$build-type > - #:tests? #$tests? > - #:test-target #$test-target > - #:parallel-build? #$parallel-build? > - #:parallel-tests? #$parallel-tests? > - #:validate-runpath? #$validate-runpath? > - #:patch-shebangs? #$patch-shebangs? > - #:strip-binaries? #$strip-binaries? > - #:strip-flags #$strip-flags > - #:strip-directories #$strip-directories)))) > + > + #$(with-build-variables inputs outputs > + #~(qt-build #:source #+source > + #:system #$system > + #:outputs %outputs > + #:inputs %build-inputs > + #:search-paths '#$(sexp->gexp > + (map search-path-specification->sexp > + search-paths)) > + #:phases #$(if (pair? phases) > + (sexp->gexp phases) > + phases) > + #:qtbase #+qtbase > + #:qt-wrap-excluded-outputs #$qt-wrap-excluded-outputs > + #:qt-wrap-excluded-inputs #$qt-wrap-excluded-inputs > + #:configure-flags #$configure-flags > + #:make-flags #$make-flags > + #:out-of-source? #$out-of-source? > + #:build-type #$build-type > + #:tests? #$tests? > + #:test-target #$test-target > + #:parallel-build? #$parallel-build? > + #:parallel-tests? #$parallel-tests? > + #:validate-runpath? #$validate-runpath? > + #:patch-shebangs? #$patch-shebangs? > + #:strip-binaries? #$strip-binaries? > + #:strip-flags #$strip-flags > + #:strip-directories #$strip-directories))))) > > (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) > system #:graft? #f))) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 2/5] gnu: Add trompeloeil. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty @ 2024-12-28 15:30 ` Ashvith Shetty 2024-12-30 6:38 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 3/5] gnu: Add corectrl Ashvith Shetty ` (2 subsequent siblings) 4 siblings, 1 reply; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 15:30 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * gnu/packages/check.scm (trompeloeil): New variable. Change-Id: I44d83ff4230a1c836bedc124acb1a40742f17021 --- gnu/packages/check.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index dd32800870..6afd7fefb5 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -3805,6 +3805,29 @@ (define-public toml-test tests. The output format is JSON.") (license license:expat))) +(define-public trompeloeil + (package + (name "trompeloeil") + (version "49") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rollbear/trompeloeil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4bfzcj033qfk3sihbikrhk9krsdbsqk79nsambnsnqqcgc2903")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f)) + (home-page "https://github.com/rollbear/trompeloeil") + (synopsis "Header only C++14 mocking framework") + (description + "A thread-safe header-only mocking framework for C++11/14 using the Boost Software License 1.0") + (license license:boost1.0))) + (define-public unittest-cpp (package (name "unittest-cpp") -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 2/5] gnu: Add trompeloeil. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 2/5] gnu: Add trompeloeil Ashvith Shetty @ 2024-12-30 6:38 ` Zheng Junjie 0 siblings, 0 replies; 21+ messages in thread From: Zheng Junjie @ 2024-12-30 6:38 UTC (permalink / raw) To: Ashvith Shetty; +Cc: 75159 [-- Attachment #1: Type: text/plain, Size: 1659 bytes --] Ashvith Shetty <ashvithshetty10@gmail.com> writes: > * gnu/packages/check.scm (trompeloeil): New variable. > > Change-Id: I44d83ff4230a1c836bedc124acb1a40742f17021 > --- > gnu/packages/check.scm | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm > index dd32800870..6afd7fefb5 100644 > --- a/gnu/packages/check.scm > +++ b/gnu/packages/check.scm > @@ -3805,6 +3805,29 @@ (define-public toml-test > tests. The output format is JSON.") > (license license:expat))) > > +(define-public trompeloeil > + (package > + (name "trompeloeil") > + (version "49") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/rollbear/trompeloeil") > + (commit (string-append "v" version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "0m4bfzcj033qfk3sihbikrhk9krsdbsqk79nsambnsnqqcgc2903")))) > + (build-system cmake-build-system) > + (arguments > + (list > + #:tests? #f)) why disable test? Please fix it or add a comment to explain this. > + (home-page "https://github.com/rollbear/trompeloeil") > + (synopsis "Header only C++14 mocking framework") > + (description > + "A thread-safe header-only mocking framework for C++11/14 using the Boost Software License 1.0") maybe "Trompeloeil is a thread-safe header-only mocking framework for C++11/14." > + (license license:boost1.0))) > + > (define-public unittest-cpp > (package > (name "unittest-cpp") [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 3/5] gnu: Add corectrl. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 2/5] gnu: Add trompeloeil Ashvith Shetty @ 2024-12-28 15:30 ` Ashvith Shetty 2024-12-30 6:50 ` Zheng Junjie 2024-12-30 7:48 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 4/5] services: Add corectrl-helper-service-type Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 5/5] guix: qt: Revert to gexp-based inputs and outputs Ashvith Shetty 4 siblings, 2 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 15:30 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * gnu/packages/pciutils.scm (corectrl): New variable. * gnu/packages/patches/corectrl-polkit-install-dir.patch: New file. Change-Id: I726c6cbfb6530abd8284f36e10a1e1f7a0fc4661 --- .../patches/corectrl-polkit-install-dir.patch | 21 +++++ gnu/packages/pciutils.scm | 83 ++++++++++++++++++- 2 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch diff --git a/gnu/packages/patches/corectrl-polkit-install-dir.patch b/gnu/packages/patches/corectrl-polkit-install-dir.patch new file mode 100644 index 0000000000..586e096cf4 --- /dev/null +++ b/gnu/packages/patches/corectrl-polkit-install-dir.patch @@ -0,0 +1,21 @@ +diff --git a/src/helper/CMakeLists.txt b/src/helper/CMakeLists.txt +index c262086..523ea97 100644 +--- a/src/helper/CMakeLists.txt ++++ b/src/helper/CMakeLists.txt +@@ -26,15 +26,7 @@ message("D-Bus files will be installed into ${DBUS_DATADIR_PREFIX_DIR}/dbus-1") + + # Find polkit + pkg_check_modules(POLKIT REQUIRED polkit-gobject-1) +-execute_process( +- COMMAND pkg-config --variable=policydir polkit-gobject-1 +- RESULT_VARIABLE POLKIT_POLICY_INSTALL_DIR_RESULT +- OUTPUT_VARIABLE POLKIT_POLICY_INSTALL_DIR +- OUTPUT_STRIP_TRAILING_WHITESPACE +-) +-if(NOT POLKIT_POLICY_INSTALL_DIR_RESULT EQUAL "0") +- message(FATAL_ERROR "Failed to retrieve Polkit `policydir` variable using pkg-config") +-endif() ++option(POLKIT_POLICY_INSTALL_DIR "Polkit policy directory") + + list(APPEND HELPER_COMPILE_DEFINITIONS + SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 08f1634113..1ae568a8eb 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2022 Marius Bakke <marius@gnu.org> +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,11 +31,23 @@ (define-module (gnu packages pciutils) #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system qt) #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gl) + #:use-module (gnu packages logging) + #:use-module (gnu packages maths) + #:use-module (gnu packages polkit) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages glib) #:use-module (gnu packages linux) - #:use-module (gnu packages base)) + #:use-module (gnu packages qt) + #:use-module (gnu packages vulkan) + #:use-module (gnu packages xml)) (define-public hwdata (package @@ -173,3 +186,71 @@ (define-public pciutils of operating systems. This includes the @command{lspci} and @command{setpci} commands.") (license license:gpl2+))) + +;; corectrl also requires the helper service. +;; See corectrl-helper-service-type. +;; +;; Please read the setup instructions from: +;; https://gitlab.com/corectrl/corectrl/-/wikis/Installation +;; and +;; https://gitlab.com/corectrl/corectrl/-/wikis/Setup +;; +;; corectrl also requires CONFIG_NETLINK_DIAG to be set to +;; either 'y' or 'm' - 'm' is the default in Guix. In that case, +;; the kernel module has to be loaded. +;; +;; To allow rootless corectrl, add user to the "corectrl" group. + +(define-public corectrl + (package + (name "corectrl") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/corectrl/corectrl") + (commit (string-append "v" version)))) + (sha256 + (base32 "0qpc04xxzv4jbqqlraqriipix4ph7bm1hfiry807jjp668i9n25d")) + (file-name (git-file-name name version)) + (patches (search-patches "corectrl-polkit-install-dir.patch")))) + (build-system qt-build-system) + (arguments + (list + #:qtbase qtbase-5 + #:tests? #t + #:configure-flags #~(list "-DINSTALL_DBUS_FILES_IN_PREFIX=true" + (string-append "-DPOLKIT_POLICY_INSTALL_DIR=" + #$output + "/share/polkit-1/actions") + (string-append "-DWITH_PCI_IDS_PATH=" + (search-input-file + %build-inputs + "/share/hwdata/pci.ids"))))) + (native-inputs (list pkg-config gcc-13)) + (propagated-inputs (list mesa-utils vulkan-tools util-linux)) + (inputs (list dbus + botan + catch2-3 + hwdata + polkit + procps + pugixml + qtcharts-5 + qtdeclarative-5 + qtquickcontrols2-5 + qtsvg-5 + qttools-5 + quazip + spdlog + trompeloeil + units + zlib)) + (home-page "https://gitlab.com/corectrl/corectrl") + (synopsis "Profile based system control utility") + (description + "CoreCtrl is a Free and Open Source GNU/Linux application that allows +you to control with ease your computer hardware using application profiles. +It aims to be flexible, comfortable and accessible to regular users.") + (license (list license:gpl3)))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 3/5] gnu: Add corectrl. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 3/5] gnu: Add corectrl Ashvith Shetty @ 2024-12-30 6:50 ` Zheng Junjie 2024-12-30 7:48 ` Zheng Junjie 1 sibling, 0 replies; 21+ messages in thread From: Zheng Junjie @ 2024-12-30 6:50 UTC (permalink / raw) To: Ashvith Shetty; +Cc: 75159 [-- Attachment #1: Type: text/plain, Size: 6928 bytes --] Ashvith Shetty <ashvithshetty10@gmail.com> writes: > * gnu/packages/pciutils.scm (corectrl): New variable. > * gnu/packages/patches/corectrl-polkit-install-dir.patch: > New file. > > Change-Id: I726c6cbfb6530abd8284f36e10a1e1f7a0fc4661 > --- > .../patches/corectrl-polkit-install-dir.patch | 21 +++++ > gnu/packages/pciutils.scm | 83 ++++++++++++++++++- > 2 files changed, 103 insertions(+), 1 deletion(-) > create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch > > diff --git a/gnu/packages/patches/corectrl-polkit-install-dir.patch b/gnu/packages/patches/corectrl-polkit-install-dir.patch you forget add this patch to gnu/local.mk(dist_patch_DATA). You can also mention a pr upstream that allows custom POLKIT_POLICY_INSTALL_DIR. > new file mode 100644 > index 0000000000..586e096cf4 > --- /dev/null > +++ b/gnu/packages/patches/corectrl-polkit-install-dir.patch > @@ -0,0 +1,21 @@ > +diff --git a/src/helper/CMakeLists.txt b/src/helper/CMakeLists.txt > +index c262086..523ea97 100644 > +--- a/src/helper/CMakeLists.txt > ++++ b/src/helper/CMakeLists.txt > +@@ -26,15 +26,7 @@ message("D-Bus files will be installed into ${DBUS_DATADIR_PREFIX_DIR}/dbus-1") > + > + # Find polkit > + pkg_check_modules(POLKIT REQUIRED polkit-gobject-1) > +-execute_process( > +- COMMAND pkg-config --variable=policydir polkit-gobject-1 > +- RESULT_VARIABLE POLKIT_POLICY_INSTALL_DIR_RESULT > +- OUTPUT_VARIABLE POLKIT_POLICY_INSTALL_DIR > +- OUTPUT_STRIP_TRAILING_WHITESPACE > +-) > +-if(NOT POLKIT_POLICY_INSTALL_DIR_RESULT EQUAL "0") > +- message(FATAL_ERROR "Failed to retrieve Polkit `policydir` variable using pkg-config") > +-endif() > ++option(POLKIT_POLICY_INSTALL_DIR "Polkit policy directory") > + > + list(APPEND HELPER_COMPILE_DEFINITIONS > + SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE > diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm > index 08f1634113..1ae568a8eb 100644 > --- a/gnu/packages/pciutils.scm > +++ b/gnu/packages/pciutils.scm > @@ -6,6 +6,7 @@ > ;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org> > ;;; Copyright © 2022 Brendan Tildesley <mail@brendan.scot> > ;;; Copyright © 2022 Marius Bakke <marius@gnu.org> > +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -30,11 +31,23 @@ (define-module (gnu packages pciutils) > #:use-module (guix utils) > #:use-module (guix git-download) > #:use-module (guix build-system gnu) > + #:use-module (guix build-system qt) > #:use-module (gnu packages) > + #:use-module (gnu packages base) > + #:use-module (gnu packages check) > #:use-module (gnu packages compression) > + #:use-module (gnu packages crypto) > + #:use-module (gnu packages gcc) > + #:use-module (gnu packages gl) > + #:use-module (gnu packages logging) > + #:use-module (gnu packages maths) > + #:use-module (gnu packages polkit) > #:use-module (gnu packages pkg-config) > + #:use-module (gnu packages glib) > #:use-module (gnu packages linux) > - #:use-module (gnu packages base)) > + #:use-module (gnu packages qt) > + #:use-module (gnu packages vulkan) > + #:use-module (gnu packages xml)) > > (define-public hwdata > (package > @@ -173,3 +186,71 @@ (define-public pciutils > of operating systems. This includes the @command{lspci} and @command{setpci} > commands.") > (license license:gpl2+))) > + > +;; corectrl also requires the helper service. > +;; See corectrl-helper-service-type. > +;; > +;; Please read the setup instructions from: > +;; https://gitlab.com/corectrl/corectrl/-/wikis/Installation > +;; and > +;; https://gitlab.com/corectrl/corectrl/-/wikis/Setup > +;; > +;; corectrl also requires CONFIG_NETLINK_DIAG to be set to > +;; either 'y' or 'm' - 'm' is the default in Guix. In that case, > +;; the kernel module has to be loaded. > +;; > +;; To allow rootless corectrl, add user to the "corectrl" group. > + > +(define-public corectrl i think this package should go to gnu/packages/admin.scm, because this package is "control with ease your computer hardware using application profiles". > + (package > + (name "corectrl") > + (version "1.4.3") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://gitlab.com/corectrl/corectrl") > + (commit (string-append "v" version)))) > + (sha256 > + (base32 "0qpc04xxzv4jbqqlraqriipix4ph7bm1hfiry807jjp668i9n25d")) > + (file-name (git-file-name name version)) > + (patches (search-patches "corectrl-polkit-install-dir.patch")))) > + (build-system qt-build-system) > + (arguments > + (list > + #:qtbase qtbase-5 > + #:tests? #t please remove it, tests should not be forced. > + #:configure-flags #~(list "-DINSTALL_DBUS_FILES_IN_PREFIX=true" > + (string-append "-DPOLKIT_POLICY_INSTALL_DIR=" > + #$output > + "/share/polkit-1/actions") > + (string-append "-DWITH_PCI_IDS_PATH=" > + (search-input-file > + %build-inputs > + "/share/hwdata/pci.ids"))))) please not use %build-inputs. It's an outdated thing. use (string-append "-DWITH_PCI_IDS_PATH=" #$(this-package-input "hwdata") "/share/hwdata/pci.ids") > + (native-inputs (list pkg-config gcc-13)) please add comments for why need gcc-13. > + (propagated-inputs (list mesa-utils vulkan-tools util-linux)) why propagated them? It's easy to conflict in profiles, maybe should use wrap-program. > + (inputs (list dbus > + botan > + catch2-3 > + hwdata > + polkit > + procps > + pugixml > + qtcharts-5 > + qtdeclarative-5 > + qtquickcontrols2-5 > + qtsvg-5 > + qttools-5 qttools-5 should go to native-inputs. > + quazip > + spdlog > + trompeloeil > + units > + zlib)) > + (home-page "https://gitlab.com/corectrl/corectrl") > + (synopsis "Profile based system control utility") > + (description > + "CoreCtrl is a Free and Open Source GNU/Linux application that allows > +you to control with ease your computer hardware using application profiles. > +It aims to be flexible, comfortable and accessible to regular users.") > + (license (list license:gpl3)))) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 3/5] gnu: Add corectrl. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 3/5] gnu: Add corectrl Ashvith Shetty 2024-12-30 6:50 ` Zheng Junjie @ 2024-12-30 7:48 ` Zheng Junjie 1 sibling, 0 replies; 21+ messages in thread From: Zheng Junjie @ 2024-12-30 7:48 UTC (permalink / raw) To: Ashvith Shetty; +Cc: 75159 [-- Attachment #1: Type: text/plain, Size: 473 bytes --] Ashvith Shetty <ashvithshetty10@gmail.com> writes: > * gnu/packages/pciutils.scm (corectrl): New variable. [...] > +(define-public corectrl > + (package > + (name "corectrl") > + (version "1.4.3") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://gitlab.com/corectrl/corectrl") > + (commit (string-append "v" version)))) and you forget Add (file-name (git-file-name name version)) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 4/5] services: Add corectrl-helper-service-type. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty ` (2 preceding siblings ...) 2024-12-28 15:30 ` [bug#75159] [PATCH v1 3/5] gnu: Add corectrl Ashvith Shetty @ 2024-12-28 15:30 ` Ashvith Shetty 2024-12-30 7:00 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 5/5] guix: qt: Revert to gexp-based inputs and outputs Ashvith Shetty 4 siblings, 1 reply; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 15:30 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * gnu/services/pciutils.scm: New file. (corectrl-helper-service-type): new variable. * gnu/local.mk: Add them. * doc/guix.texi (Miscellaneous Services): Document it. Change-Id: I1dbeb927100a9a488909ff1950ec7e50d3797c29 --- doc/guix.texi | 15 ++++++++++++++ gnu/local.mk | 1 + gnu/services/pciutils.scm | 43 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 gnu/services/pciutils.scm diff --git a/doc/guix.texi b/doc/guix.texi index da4d2f5ebc..a36d3cc0f1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -42550,6 +42550,21 @@ empty list means that no type is specified. @end deftp +@cindex corectrl-helper +@subsubheading CoreCtrl Helper Service + +The @code{(gnu services pciutils)} module provides a DBus service for +interacting with system hardware resources, such as CPU and GPU, +enabling advanced control and management through the CoreCtrl application. + +@defvar corectrl-helper-service-type +The service type for @command{corectrl}, which provides a helper service. + +@lisp +(service corectrl-helper-service-type) +@end lisp +@end defvar + @c %end of fragment @node Privileged Programs diff --git a/gnu/local.mk b/gnu/local.mk index 84160f407a..5ebdb72624 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -751,6 +751,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/nix.scm \ %D%/services/nfs.scm \ %D%/services/pam-mount.scm \ + %D%/services/pciutils.scm \ %D%/services/science.scm \ %D%/services/security.scm \ %D%/services/security-token.scm \ diff --git a/gnu/services/pciutils.scm b/gnu/services/pciutils.scm new file mode 100644 index 0000000000..cfd310b584 --- /dev/null +++ b/gnu/services/pciutils.scm @@ -0,0 +1,43 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu services pciutils) + #:use-module (gnu packages pciutils) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu services dbus) + #:use-module (guix gexp) + #:export (corectrl-helper-configuration + corectrl-helper-configuration? + corectrl-helper-service-type)) + +(define-configuration corectrl-helper-configuration + (corectrl (file-like corectrl) "The corectrl package")) + +(define (corectrl-helper-dbus-service config) + (list (corectrl-helper-configuration-corectrl config))) + +(define corectrl-helper-service-type + (service-type (name 'corectrl-helper) + (extensions (list (service-extension dbus-root-service-type + corectrl-helper-dbus-service) + (service-extension polkit-service-type + corectrl-helper-dbus-service))) + (default-value (corectrl-helper-configuration)) + ;; TODO: Improve the description. + (description "Run corectrl-helper, an essential service for the corectrl application."))) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 4/5] services: Add corectrl-helper-service-type. 2024-12-28 15:30 ` [bug#75159] [PATCH v1 4/5] services: Add corectrl-helper-service-type Ashvith Shetty @ 2024-12-30 7:00 ` Zheng Junjie 0 siblings, 0 replies; 21+ messages in thread From: Zheng Junjie @ 2024-12-30 7:00 UTC (permalink / raw) To: Ashvith Shetty; +Cc: 75159 [-- Attachment #1: Type: text/plain, Size: 4531 bytes --] Ashvith Shetty <ashvithshetty10@gmail.com> writes: > * gnu/services/pciutils.scm: New file. This service doesn't seem to have anything to do with pciutils. Put it in another module or a separate corectrl module. > (corectrl-helper-service-type): new variable. i think should corectrl-service-type. corectr-helper doesn't mean anything. And use profile-service-type to add corectrl to profile. This allows only one service to use corectrl, rather than requiring the user to add the package. > * gnu/local.mk: Add them. > * doc/guix.texi (Miscellaneous Services): Document it. > > Change-Id: I1dbeb927100a9a488909ff1950ec7e50d3797c29 > --- > doc/guix.texi | 15 ++++++++++++++ > gnu/local.mk | 1 + > gnu/services/pciutils.scm | 43 +++++++++++++++++++++++++++++++++++++++ > 3 files changed, 59 insertions(+) > create mode 100644 gnu/services/pciutils.scm > > diff --git a/doc/guix.texi b/doc/guix.texi > index da4d2f5ebc..a36d3cc0f1 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -42550,6 +42550,21 @@ empty list means that no type is specified. > > @end deftp > > +@cindex corectrl-helper > +@subsubheading CoreCtrl Helper Service > + > +The @code{(gnu services pciutils)} module provides a DBus service for > +interacting with system hardware resources, such as CPU and GPU, > +enabling advanced control and management through the CoreCtrl application. > + > +@defvar corectrl-helper-service-type > +The service type for @command{corectrl}, which provides a helper service. > + > +@lisp > +(service corectrl-helper-service-type) > +@end lisp > +@end defvar > + > @c %end of fragment > > @node Privileged Programs > diff --git a/gnu/local.mk b/gnu/local.mk > index 84160f407a..5ebdb72624 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -751,6 +751,7 @@ GNU_SYSTEM_MODULES = \ > %D%/services/nix.scm \ > %D%/services/nfs.scm \ > %D%/services/pam-mount.scm \ > + %D%/services/pciutils.scm \ > %D%/services/science.scm \ > %D%/services/security.scm \ > %D%/services/security-token.scm \ > diff --git a/gnu/services/pciutils.scm b/gnu/services/pciutils.scm > new file mode 100644 > index 0000000000..cfd310b584 > --- /dev/null > +++ b/gnu/services/pciutils.scm > @@ -0,0 +1,43 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. > + > +(define-module (gnu services pciutils) > + #:use-module (gnu packages pciutils) > + #:use-module (gnu services) > + #:use-module (gnu services configuration) > + #:use-module (gnu services dbus) > + #:use-module (guix gexp) > + #:export (corectrl-helper-configuration > + corectrl-helper-configuration? > + corectrl-helper-service-type)) > + > +(define-configuration corectrl-helper-configuration > + (corectrl (file-like corectrl) "The corectrl package")) > + > +(define (corectrl-helper-dbus-service config) > + (list (corectrl-helper-configuration-corectrl config))) > + > +(define corectrl-helper-service-type > + (service-type (name 'corectrl-helper) > + (extensions (list (service-extension dbus-root-service-type > + corectrl-helper-dbus-service) > + (service-extension polkit-service-type > + corectrl-helper-dbus-service))) also add profile-service-type. > + (default-value (corectrl-helper-configuration)) > + ;; TODO: Improve the description. > + (description "Run corectrl-helper, an essential service for the corectrl application."))) [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v1 5/5] guix: qt: Revert to gexp-based inputs and outputs 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty ` (3 preceding siblings ...) 2024-12-28 15:30 ` [bug#75159] [PATCH v1 4/5] services: Add corectrl-helper-service-type Ashvith Shetty @ 2024-12-28 15:30 ` Ashvith Shetty 4 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-28 15:30 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty * guix/build-system/qt.scm (qt-build): Replace %outputs with #$(outputs->gexp outputs) Replace %build-inputs #$(input-tuples->gexp inputs) Change-Id: I272f117cb9d1679869c15ade0f7da06abc9badc9 --- guix/build-system/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index 5f9a5019ae..b3c1c2c6e9 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -156,8 +156,8 @@ (define builder #$(with-build-variables inputs outputs #~(qt-build #:source #+source #:system #$system - #:outputs %outputs - #:inputs %build-inputs + #:outputs #$(outputs->gexp outputs) + #:inputs #$(input-tuples->gexp inputs) #:search-paths '#$(sexp->gexp (map search-path-specification->sexp search-paths)) -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type 2024-12-28 10:18 [bug#75159] [PATCH v0 0/4] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty @ 2024-12-31 18:09 ` Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 1/3] gnu: Add trompeloeil Ashvith Shetty ` (2 more replies) 2 siblings, 3 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-31 18:09 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty Made improvements on the previous commits as per the review. Ashvith Shetty (3): gnu: Add trompeloeil. gnu: Add corectrl. services: Add corectrl-helper-service-type. doc/guix.texi | 32 ++++++++ gnu/local.mk | 2 + gnu/packages/admin.scm | 73 +++++++++++++++++++ gnu/packages/check.scm | 31 ++++++++ .../patches/corectrl-polkit-install-dir.patch | 21 ++++++ gnu/services/admin.scm | 27 ++++++- 6 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch -- 2.46.0 ^ permalink raw reply [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v2 1/3] gnu: Add trompeloeil. 2024-12-31 18:09 ` [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type Ashvith Shetty @ 2024-12-31 18:09 ` Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 2/3] gnu: Add corectrl Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 3/3] services: Add corectrl-helper-service-type Ashvith Shetty 2 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-31 18:09 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty From: Ashvith Shetty <ashvith@noreply.codeberg.org> * gnu/packages/check.scm (trompeloeil): New variable. Change-Id: I442cd0b5e84e8f9956b16b7d9235f67d9f5f693e --- gnu/packages/check.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 5fef10485b..151c6fb5c4 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -52,6 +52,7 @@ ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024 Navid Afkhami <navid.afkhami@mdc-berlin.de> ;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3806,6 +3807,36 @@ (define-public toml-test tests. The output format is JSON.") (license license:expat))) +(define-public trompeloeil + (package + (name "trompeloeil") + (version "49") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rollbear/trompeloeil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4bfzcj033qfk3sihbikrhk9krsdbsqk79nsambnsnqqcgc2903")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags #~(list "-D TROMPELOEIL_BUILD_TESTS=yes") + #:test-target "test/self_test" + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? test-target #:allow-other-keys) + (when tests? + (invoke test-target))))))) + (native-inputs (list catch2-3)) + (home-page "https://github.com/rollbear/trompeloeil") + (synopsis "Header only C++14 mocking framework") + (description + "Trompeloeil is a thread-safe header-only mocking framework for C++11/14.") + (license license:boost1.0))) + (define-public unittest-cpp (package (name "unittest-cpp") -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v2 2/3] gnu: Add corectrl. 2024-12-31 18:09 ` [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 1/3] gnu: Add trompeloeil Ashvith Shetty @ 2024-12-31 18:09 ` Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 3/3] services: Add corectrl-helper-service-type Ashvith Shetty 2 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-31 18:09 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty From: Ashvith Shetty <ashvith@noreply.codeberg.org> * gnu/packages/admin.scm (corectrl): New variable. * gnu/packages/patches/corectrl-polkit-install-dir.patch: New file. * gnu/local.mk (dist_patch_DATA): Add reference to it. Change-Id: I7b0f85c917eb58d7518d7ee7c5b22ef2debde7d9 --- gnu/local.mk | 2 + gnu/packages/admin.scm | 73 +++++++++++++++++++ .../patches/corectrl-polkit-install-dir.patch | 21 ++++++ 3 files changed, 96 insertions(+) create mode 100644 gnu/packages/patches/corectrl-polkit-install-dir.patch diff --git a/gnu/local.mk b/gnu/local.mk index 02a6fa616e..799a1ce591 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -69,6 +69,7 @@ # Copyright © 2024 Fabio Natali <me@fabionatali.com> # Copyright © 2024 Noé Lopez <noelopez@free.fr> # Copyright © 2024 Runciter <runciter@whispers-vpn.org> +# Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> # # This file is part of GNU Guix. # @@ -1121,6 +1122,7 @@ dist_patch_DATA = \ %D%/packages/patches/converseen-hide-non-free-pointers.patch \ %D%/packages/patches/cool-retro-term-wctype.patch \ %D%/packages/patches/coq-autosubst-1.8-remove-deprecated-files.patch \ + %D%/packages/patches/corectrl-polkit-install-dir.patch \ %D%/packages/patches/corefx-mono-5.4.0-patches.patch \ %D%/packages/patches/corefx-mono-pre-5.8.0-patches.patch \ %D%/packages/patches/coreutils-gnulib-tests.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index dce93e4f3a..3759b53d52 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -70,6 +70,7 @@ ;;; Copyright © 2024 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2024 nathan <nathan_mail@nborghese.com> ;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me> +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -137,6 +138,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) + #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -157,10 +159,12 @@ (define-module (gnu packages admin) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) + #:use-module (gnu packages logging) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages mail) #:use-module (gnu packages man) + #:use-module (gnu packages maths) #:use-module (gnu packages markup) #:use-module (gnu packages mcrypt) #:use-module (gnu packages mpi) @@ -195,6 +199,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages vulkan) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) @@ -6484,3 +6489,71 @@ (define-public sshguard services. It aggregates system logs and blocks repeat offenders using one of several firewall backends.") (license license:isc))) + +(define-public corectrl + (package + (name "corectrl") + (version "1.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/corectrl/corectrl") + (commit (string-append "v" version)))) + (sha256 + (base32 "0qpc04xxzv4jbqqlraqriipix4ph7bm1hfiry807jjp668i9n25d")) + (file-name (git-file-name name version)) + (patches (search-patches "corectrl-polkit-install-dir.patch")))) + (build-system qt-build-system) + (arguments + (list + #:qtbase qtbase-5 + #:configure-flags #~(list "-DINSTALL_DBUS_FILES_IN_PREFIX=true" + (string-append "-DPOLKIT_POLICY_INSTALL_DIR=" + #$output + "/share/polkit-1/actions") + (string-append "-DWITH_PCI_IDS_PATH=" + #$(this-package-input "hwdata") + "/share/hwdata/pci.ids")) + #:phases #~(modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs #:allow-other-keys) + (wrap-program (string-append #$output "/bin/corectrl") + (list "PATH" + 'prefix + (map (lambda (binary) + (dirname (search-input-file inputs + (string-append + "bin/" + binary)))) + '("glxinfo" "lscpu" "vulkaninfo"))))))))) + ;; Text formatting only supported since C++20, which is available in gcc-13. + ;; https://en.cppreference.com/w/cpp/compiler_support#cpp_lib_format_201907L + (native-inputs (list pkg-config gcc-13)) + (inputs (list dbus + botan + catch2-3 + hwdata + mesa-utils + polkit + procps + pugixml + qtcharts-5 + qtdeclarative-5 + qtquickcontrols2-5 + qtsvg-5 + qttools-5 + quazip + spdlog + trompeloeil + units + util-linux + vulkan-tools + zlib)) + (home-page "https://gitlab.com/corectrl/corectrl") + (synopsis "Profile based system control utility") + (description + "CoreCtrl is a Free and Open Source GNU/Linux application that allows +you to control with ease your computer hardware using application profiles. +It aims to be flexible, comfortable and accessible to regular users.") + (license (list license:gpl3)))) diff --git a/gnu/packages/patches/corectrl-polkit-install-dir.patch b/gnu/packages/patches/corectrl-polkit-install-dir.patch new file mode 100644 index 0000000000..586e096cf4 --- /dev/null +++ b/gnu/packages/patches/corectrl-polkit-install-dir.patch @@ -0,0 +1,21 @@ +diff --git a/src/helper/CMakeLists.txt b/src/helper/CMakeLists.txt +index c262086..523ea97 100644 +--- a/src/helper/CMakeLists.txt ++++ b/src/helper/CMakeLists.txt +@@ -26,15 +26,7 @@ message("D-Bus files will be installed into ${DBUS_DATADIR_PREFIX_DIR}/dbus-1") + + # Find polkit + pkg_check_modules(POLKIT REQUIRED polkit-gobject-1) +-execute_process( +- COMMAND pkg-config --variable=policydir polkit-gobject-1 +- RESULT_VARIABLE POLKIT_POLICY_INSTALL_DIR_RESULT +- OUTPUT_VARIABLE POLKIT_POLICY_INSTALL_DIR +- OUTPUT_STRIP_TRAILING_WHITESPACE +-) +-if(NOT POLKIT_POLICY_INSTALL_DIR_RESULT EQUAL "0") +- message(FATAL_ERROR "Failed to retrieve Polkit `policydir` variable using pkg-config") +-endif() ++option(POLKIT_POLICY_INSTALL_DIR "Polkit policy directory") + + list(APPEND HELPER_COMPILE_DEFINITIONS + SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [bug#75159] [PATCH v2 3/3] services: Add corectrl-helper-service-type. 2024-12-31 18:09 ` [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 1/3] gnu: Add trompeloeil Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 2/3] gnu: Add corectrl Ashvith Shetty @ 2024-12-31 18:09 ` Ashvith Shetty 2 siblings, 0 replies; 21+ messages in thread From: Ashvith Shetty @ 2024-12-31 18:09 UTC (permalink / raw) To: 75159; +Cc: Ashvith Shetty From: Ashvith Shetty <ashvith@noreply.codeberg.org> * gnu/services/admin.scm: New file. (corectrl-helper-service-type): new variable. * gnu/local.mk: Add them. * doc/guix.texi (Miscellaneous Services): Document it. --- doc/guix.texi | 32 ++++++++++++++++++++++++++++++++ gnu/services/admin.scm | 27 ++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 924f13f0f6..9330525c61 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -135,6 +135,7 @@ Copyright @copyright{} 2024 Nigko Yerden@* Copyright @copyright{} 2024 Troy Figiel@* Copyright @copyright{} 2024 Sharlatan Hellseher@* Copyright @copyright{} 2024 45mg@* +Copyright @copyright{} 2024 Ashvith Shetty@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -42590,6 +42591,37 @@ empty list means that no type is specified. @end deftp +@cindex corectrl-helper +@subsubheading CoreCtrl Helper Service + +The @code{(gnu services admin)} module provides a DBus service for +interacting with system hardware resources, such as CPU and GPU, +enabling advanced control and management through the CoreCtrl application. + +@defvar corectrl-helper-service-type +The service type for @command{corectrl}, which provides a helper service. + +@lisp +(service corectrl-helper-service-type) +@end lisp +@end defvar + + +@deftp {Data Type} corectrl-helper-configuration +This is the data type representing the configuration of corectrl-helper. + +@table @asis +@item @code{corectrl} (default: @code{corectrl}) (type: package) + +The @command{corectrl} executable to use. +@end table +@end deftp + +For more details, please read the +@uref{https://gitlab.com/corectrl/corectrl/-/wikis/Installation, Installation} +and +@uref{https://gitlab.com/corectrl/corectrl/-/wikis/Setup, Setup} wiki pages. + @c %end of fragment @node Privileged Programs diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 571af6a04e..42cefdf256 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2024 Gabriel Wicki <gabriel@erlikon.ch> ;;; Copyright © 2024 Richard Sent <richard@freakingpenguin.com> +;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ (define-module (gnu services admin) #:use-module (gnu packages linux) #:use-module (gnu services) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services mcron) #:use-module (gnu services shepherd) #:use-module (gnu system accounts) @@ -108,7 +110,11 @@ (define-module (gnu services admin) resize-file-system-configuration-cloud-utils resize-file-system-configuration-e2fsprogs resize-file-system-configuration-btrfs-progs - resize-file-system-configuration-bcachefs-tools)) + resize-file-system-configuration-bcachefs-tools + + corectrl-helper-service-type + corectrl-helper-configuration + corectrl-helper-configuration?)) ;;; Commentary: ;;; @@ -679,4 +685,23 @@ (define resize-file-system-service-type (service-extension shepherd-root-service-type (compose list resize-file-system-shepherd-service)))))) +;;; +;;; CoreCtrl helper service. +;;; + +(define-configuration corectrl-helper-configuration + (corectrl (file-like corectrl) "The corectrl package")) + +(define (corectrl-helper-dbus-service config) + (list (corectrl-helper-configuration-corectrl config))) + +(define corectrl-helper-service-type + (service-type (name 'corectrl-helper) + (extensions (list (service-extension dbus-root-service-type + corectrl-helper-dbus-service) + (service-extension polkit-service-type + corectrl-helper-dbus-service))) + (default-value (corectrl-helper-configuration)) + (description "Run corectrl-helper, an essential service for the corectrl application."))) + ;;; admin.scm ends here -- 2.46.0 ^ permalink raw reply related [flat|nested] 21+ messages in thread
end of thread, other threads:[~2024-12-31 18:13 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-28 10:18 [bug#75159] [PATCH v0 0/4] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 2/4] gnu: Add trompeloeil Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 3/4] gnu: Add corectrl Ashvith Shetty 2024-12-28 10:44 ` [bug#75159] [PATCH v0 4/4] services: Add corectrl-helper-service-type Ashvith Shetty 2024-12-28 12:49 ` [bug#75159] [PATCH v0 1/4] guix: qt: add inputs and outputs build variables in qt-build Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 0/5] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-28 15:30 ` [bug#75159] [PATCH v1 1/5] guix: qt: add inputs and outputs build variables in qt-build Ashvith Shetty 2024-12-30 7:03 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 2/5] gnu: Add trompeloeil Ashvith Shetty 2024-12-30 6:38 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 3/5] gnu: Add corectrl Ashvith Shetty 2024-12-30 6:50 ` Zheng Junjie 2024-12-30 7:48 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 4/5] services: Add corectrl-helper-service-type Ashvith Shetty 2024-12-30 7:00 ` Zheng Junjie 2024-12-28 15:30 ` [bug#75159] [PATCH v1 5/5] guix: qt: Revert to gexp-based inputs and outputs Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 0/3] Add corectrl and corectrl-helper-service-type Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 1/3] gnu: Add trompeloeil Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 2/3] gnu: Add corectrl Ashvith Shetty 2024-12-31 18:09 ` [bug#75159] [PATCH v2 3/3] services: Add corectrl-helper-service-type Ashvith Shetty
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.