all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#48984] [PATCH] gnu: ddcutil: Patch kernel modules paths.
@ 2021-06-12 21:24 Brice Waegeneire
  2021-06-13 10:35 ` Tobias Geerinckx-Rice via Guix-patches via
  2022-01-21 23:21 ` bug#48984: " Brice Waegeneire
  0 siblings, 2 replies; 4+ messages in thread
From: Brice Waegeneire @ 2021-06-12 21:24 UTC (permalink / raw)
  To: 48984

Without it "ddcutil detect" complain: “Module i2c-dev is not loaded and
ddcutil can't determine if it is built into the kernel”.

* gnu/packages/patches/ddcutil-modules-location.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/hardware.scm (ddcutil)[source]: Apply it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/hardware.scm                     |  6 ++--
 .../patches/ddcutil-modules-location.patch    | 32 +++++++++++++++++++
 3 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100644 gnu/packages/patches/ddcutil-modules-location.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 26b3e86e22..aa06cac37f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -941,6 +941,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-CVE-2020-12049.patch		\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
+  %D%/packages/patches/ddcutil-modules-location.patch		\
   %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index ecbcca79b1..0612e4a068 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Evgeny Pisemsky <evgeny@pisemsky.com>
 ;;; Copyright © 2021 Léo Le Bouter <lle-bout@zaclys.net>
 ;;;
@@ -21,6 +21,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages hardware)
+  #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bash)
@@ -68,7 +69,8 @@
        (uri (string-append "https://www.ddcutil.com/tarballs/"
                            "ddcutil-" version ".tar.gz"))
        (sha256
-        (base32 "19kkwb9ijzn6ya3mvjanggh1c96fcc0lkbk7xnyi2qp6wsr4nhxp"))))
+        (base32 "19kkwb9ijzn6ya3mvjanggh1c96fcc0lkbk7xnyi2qp6wsr4nhxp"))
+       (patches (search-patches "ddcutil-modules-location.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/patches/ddcutil-modules-location.patch b/gnu/packages/patches/ddcutil-modules-location.patch
new file mode 100644
index 0000000000..c36fe5f2d7
--- /dev/null
+++ b/gnu/packages/patches/ddcutil-modules-location.patch
@@ -0,0 +1,32 @@
+From https://github.com/NixOS/nixpkgs/blob/nixos-21.05/pkgs/tools/misc/ddcutil/nixos-paths.diff
+
+--- a/src/util/linux_util.c
++++ b/src/util/linux_util.c
+@@ -125,6 +125,7 @@
+                   "lib64",
+                   "lib32",
+                   "usr/lib",  // needed for arch?
++                  "run/booted-system/kernel/lib",  // Guix System
+                   NULL};
+    int result = -1;
+    int ndx = 0;
+@@ -204,14 +205,15 @@
+    if (debug)
+       printf("(%s) machine: %s", __func__, utsbuf.machine);
+
+-   char * libdirs[3];
++   char * libdirs[4];
+    libdirs[0] = "lib";
++   libdirs[1] = "run/booted-system/kernel/lib";
+    if (streq(utsbuf.machine, "amd_64")){
+-      libdirs[1] = "lib64";
+-      libdirs[2] = NULL;
++      libdirs[2] = "lib64";
++      libdirs[3] = NULL;
+    }
+    else
+-      libdirs[1] = NULL;
++      libdirs[2] = NULL;
+
+    int libsndx = 0;
+    bool found = false;
-- 
2.31.1





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#48984] [PATCH] gnu: ddcutil: Patch kernel modules paths.
  2021-06-12 21:24 [bug#48984] [PATCH] gnu: ddcutil: Patch kernel modules paths Brice Waegeneire
@ 2021-06-13 10:35 ` Tobias Geerinckx-Rice via Guix-patches via
  2021-06-13 13:07   ` Brice Waegeneire
  2022-01-21 23:21 ` bug#48984: " Brice Waegeneire
  1 sibling, 1 reply; 4+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2021-06-13 10:35 UTC (permalink / raw)
  To: Brice Waegeneire; +Cc: 48984

[-- Attachment #1: Type: text/plain, Size: 1021 bytes --]

Brice,

Thanks for the patch!  Does it affect more than ‘ddcutil 
detect/environment’?  Anything ‘real’?

Working around one of many bugs in a broken diagnostic subtool 
isn't worth maintaining a 32-line patch.

Brice Waegeneire 写道:
> Without it "ddcutil detect" complain: “Module i2c-dev is not 
> loaded and
> ddcutil can't determine if it is built into the kernel”.

With it, it still complains:

  ~ λ ddcutil detect
  Module i2c-dev is not loaded and not built into the kernel.
  ddcutil requires module i2c-dev

It doesn't address the built-in case either, AFAICS.

The very idea of ddcutil's linux_util.c is flawed and can't be 
fixed: you don't look in /etc for the running kernel version; you 
don't use that ill-gotten string to start scanning random system 
directories for .ko files; you don't check for built-in modules by 
looking for possibly installed build leftovers.  None of that 
makes sense.  You ask kmod.  You ask the kernel!

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#48984] [PATCH] gnu: ddcutil: Patch kernel modules paths.
  2021-06-13 10:35 ` Tobias Geerinckx-Rice via Guix-patches via
@ 2021-06-13 13:07   ` Brice Waegeneire
  0 siblings, 0 replies; 4+ messages in thread
From: Brice Waegeneire @ 2021-06-13 13:07 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 48984

Tobias,

Thank you for the review!

Tobias Geerinckx-Rice <me@tobias.gr> writes:
> Thanks for the patch!  Does it affect more than ‘ddcutil
> detect/environment’?  Anything ‘real’?

AFAIK no, this patch only get rid off that error message.

> Working around one of many bugs in a broken diagnostic subtool isn't worth
> maintaining a 32-line patch.

Fair enough, it's just a stop gap until 1.1.1 is released tho.

> Brice Waegeneire 写道:
>> Without it "ddcutil detect" complain: “Module i2c-dev is not loaded and
>> ddcutil can't determine if it is built into the kernel”.
>
> With it, it still complains:
>
>  ~ λ ddcutil detect
>  Module i2c-dev is not loaded and not built into the kernel.
>  ddcutil requires module i2c-dev

It's not the same error.

> It doesn't address the built-in case either, AFAICS.

I wasn't clear enough in the git message.  Here is the output wihtout
that patch and with it:

--8<---------------cut here---------------start------------->8---
$ modinfo i2c-dev | grep '^filename:'
filename:       (builtin)

$ guix environment --ad-hoc ddcutil -- ddcutil detect
Unable to read modules.builtin
Module i2c-dev is not loaded and ddcutil can't determine if it is built into the kernel
Display 1
[...]
$ ./pre-inst-env guix environment --ad-hoc ddcutil -- ddcutil detect
Display 1
[...]
--8<---------------cut here---------------end--------------->8--

With a built-in i2c-dev module, this patch remove that pesky error
message.

> The very idea of ddcutil's linux_util.c is flawed and can't be fixed: you
> don't look in /etc for the running kernel version; you don't use that
> ill-gotten string to start scanning random system directories for .ko
> files; you don't check for built-in modules by looking for possibly
> installed build leftovers.  None of that makes sense.  You ask kmod.  You
> ask the kernel!

I agreed it is flawed, but it was fixed by upstream in the 1.1.1-dev
branch¹ by using libkmod as you are suggesting.  I proposed that solution
to upstream some days ago in inssue #178²; he implementeded right away.

Since it's a development branch I tought it wasn't wise to update the
package to the latest commit.  Maybe you would you prefer such patch
instead?

¹ https://github.com/rockowitz/ddcutil/tree/1.1.1-dev
² https://github.com/rockowitz/ddcutil/issues/178#issuecomment-856297112

Cheers,
- Brice




^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#48984: [PATCH] gnu: ddcutil: Patch kernel modules paths.
  2021-06-12 21:24 [bug#48984] [PATCH] gnu: ddcutil: Patch kernel modules paths Brice Waegeneire
  2021-06-13 10:35 ` Tobias Geerinckx-Rice via Guix-patches via
@ 2022-01-21 23:21 ` Brice Waegeneire
  1 sibling, 0 replies; 4+ messages in thread
From: Brice Waegeneire @ 2022-01-21 23:21 UTC (permalink / raw)
  To: 48984-close

Brice Waegeneire <brice@waegenei.re> writes:

> * gnu/packages/patches/ddcutil-modules-location.patch: New patch.
> * gnu/local.mk (dist_patch_DATA): Register it.
> * gnu/packages/hardware.scm (ddcutil)[source]: Apply it.

Upstream released a new version. This patch is superseded by <https://bugs.gnu.org/48984>.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-01-21 23:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-12 21:24 [bug#48984] [PATCH] gnu: ddcutil: Patch kernel modules paths Brice Waegeneire
2021-06-13 10:35 ` Tobias Geerinckx-Rice via Guix-patches via
2021-06-13 13:07   ` Brice Waegeneire
2022-01-21 23:21 ` bug#48984: " Brice Waegeneire

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.