Package: guix-patches;
Reported by: Vivien Kraus <vivien <at> planete-kraus.eu>
Date: Tue, 19 Sep 2023 11:40:01 UTC
Severity: normal
Tags: patch
Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Vivien Kraus <vivien <at> planete-kraus.eu> To: 66099 <at> debbugs.gnu.org Cc: liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, rg <at> raghavgururajan.name Subject: [bug#66099] [PATCH gnome-team 1/3] gnu: eudev: Update libudev version to 251. Date: Tue, 19 Sep 2023 13:23:22 +0200
Support for version 251 is only provided as a merge request for now: https://github.com/eudev-project/eudev/pull/253 This merge request bumps the eudev version to 3.2.14, but it has not been released yet. The udevadm command to generate the hwdb.bin file now looks at file under /lib/udev/hwdb.d, and generates /lib/udev/hwdb.bin. The intention is not to touch /etc so that users can supply their own files. The steps to generate the file are: 1. Copy /etc/udev/hwdb.d to /lib/udev/hwdb.d to accept all files from eudev; 2. Generate /lib/udev/hwdb.bin from /lib/udev/hwdb.d (by passing --usr to the udevadm command-line) − if not cross-compiling; 3. Copy /lib/udev/hwdb.bin to /etc/udev − if not cross-compiling. Point 1. is dealt with in a new phase, and points 2. and 3. are dealt with in the 'build-hwdb phase. * gnu/packages/linux.scm (eudev): Update to v3.2.12, but bump version to 3.2.14.beta. [#:phases] <allow-eudev-hwdb>: New phase. <build-hwdb>: Update accordingly. * gnu/packages/patches/eudev-bump-to-251.patch: New file. * gnu/packages/linux.scm (eudev): Use it here. * gnu/local.mk (dist_patch_DATA): Register it here. --- gnu/local.mk | 1 + gnu/packages/linux.scm | 22 ++- gnu/packages/patches/eudev-bump-to-251.patch | 134 +++++++++++++++++++ 3 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 gnu/packages/patches/eudev-bump-to-251.patch diff --git a/gnu/local.mk b/gnu/local.mk index db21feb507..8b9365055d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1122,6 +1122,7 @@ dist_patch_DATA = \ %D%/packages/patches/esmini-use-pkgconfig.patch \ %D%/packages/patches/esmtp-add-lesmtp.patch \ %D%/packages/patches/eudev-rules-directory.patch \ + %D%/packages/patches/eudev-bump-to-251.patch \ %D%/packages/patches/evdi-fix-build-with-linux-6.2.patch \ %D%/packages/patches/exercism-disable-self-update.patch \ %D%/packages/patches/extempore-unbundle-external-dependencies.patch \ diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 91109c41d9..2cad9cbbe9 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4225,16 +4225,17 @@ (define-public eudev ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.11") + (version "3.2.14.beta") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gentoo/eudev") - (commit (string-append "v" version)))) + (commit "v3.2.12"))) (file-name (git-file-name name version)) (sha256 (base32 - "0dzaqwjnl55f69ird57wb6skahc6l7zs1slsrzqqfhww33icp6av")) - (patches (search-patches "eudev-rules-directory.patch")))) + "0wpckjxzsb4wkj3pwnw14zmp3z8ivf03hjbgs838q5gfridpxnf7")) + (patches (search-patches "eudev-rules-directory.patch" + "eudev-bump-to-251.patch")))) (build-system gnu-build-system) (arguments (list @@ -4257,7 +4258,14 @@ (define-public eudev (substitute* (string-append #$output "/lib/libudev.la") (("old_library=.*") "old_library=''\n"))))) - (add-after 'install 'build-hwdb + (add-after 'install 'allow-eudev-hwdb + (lambda _ + ;; eudev distributes the hwdb, but each file has to be enabled + ;; by being copied under /lib/udev/hwdb.d. We accept all of + ;; them. + (symlink (string-append #$output "/etc/udev/hwdb.d") + (string-append #$output "/lib/udev/hwdb.d")))) + (add-after 'allow-eudev-hwdb 'build-hwdb (lambda _ ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and ;; similar tools to display product names. @@ -4267,7 +4275,9 @@ (define-public eudev #$@(if (%current-target-system) #~(#t) #~((invoke (string-append #$output "/bin/udevadm") - "hwdb" "--update")))))) + "hwdb" "--update" "--usr") + (symlink (string-append #$output "/lib/udev/hwdb.bin") + (string-append #$output "/etc/udev/hwdb.bin"))))))) #:configure-flags #~(list "--enable-manpages"))) (native-inputs (list autoconf diff --git a/gnu/packages/patches/eudev-bump-to-251.patch b/gnu/packages/patches/eudev-bump-to-251.patch new file mode 100644 index 0000000000..96a73f4ede --- /dev/null +++ b/gnu/packages/patches/eudev-bump-to-251.patch @@ -0,0 +1,134 @@ +From 4d29151078c351569767dfef490a29e379afd430 Mon Sep 17 00:00:00 2001 +Message-ID: <4d29151078c351569767dfef490a29e379afd430.1695104483.git.vivien <at> planete-kraus.eu> +In-Reply-To: <cover.1695104483.git.vivien <at> planete-kraus.eu> +References: <cover.1695104483.git.vivien <at> planete-kraus.eu> +From: Boian Bonev <bbonev <at> ipacct.com> +Date: Tue, 30 May 2023 16:16:33 +0000 +Subject: [PATCH 1/1] Update as per IRC discussion + +Bump udev version to 251 + +Export dummies for + + - udev_device_has_current_tag + - udev_device_get_current_tags_list_entry + +since the current eudev device database does not support the concept of +current tags + +bump version to 3.2.14 +--- + README.md | 18 ++++++++++++------ + configure.ac | 4 ++-- + src/libudev/libudev-device.c | 11 +++++++++++ + src/libudev/libudev.h | 2 ++ + src/libudev/libudev.sym | 6 ++++++ + 5 files changed, 33 insertions(+), 8 deletions(-) + +diff --git a/README.md b/README.md +index 848ef3348..6016380ba 100644 +--- a/README.md ++++ b/README.md +@@ -1,11 +1,17 @@ +-This git repo is a fork of git://anongit.freedesktop.org/systemd/systemd +-with the aim of isolating udev from any particular flavor of system +-initialization. In this case, the isolation is from systemd. ++**eudev** is a standalone dynamic and persistent device naming support (aka ++userspace devfs) daemon that runs independently from the init system. ++**eudev** strives to remain init system and linux distribution neutral. It is ++currently used as the devfs manager for more than a dozen different linux ++distributions. ++ ++This git repo is a fork of git://anongit.freedesktop.org/systemd/systemd with ++the aim of isolating udev from any particular flavor of system initialization. ++In this case, the isolation is from systemd. + + This is a project started by Gentoo developers and testing was initially being +-done mostly on OpenRC. We welcome contribution from others using a variety of +-system initializations to ensure eudev remains system initialization and +-distribution neutral. On 2021-08-20 Gentoo decided to abandon eudev and a new ++done mostly on OpenRC. We welcome contribution from others using a variety of ++system initializations to ensure **eudev** remains system initialization and ++distribution neutral. On 2021-08-20 Gentoo decided to abandon eudev and a new + project was established on 2021-09-14 by Alpine, Devuan and Gentoo + contributors (alphabetical order). + +diff --git a/configure.ac b/configure.ac +index 3e31b0ebc..0d9a135bc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,6 +1,6 @@ + AC_PREREQ([2.68]) +-AC_INIT([eudev],[3.2.12],[https://github.com/gentoo/eudev/issues]) +-AC_SUBST(UDEV_VERSION, 243) ++AC_INIT([eudev],[3.2.14],[https://github.com/gentoo/eudev/issues]) ++AC_SUBST(UDEV_VERSION, 251) + AC_CONFIG_SRCDIR([src/udev/udevd.c]) + + AC_USE_SYSTEM_EXTENSIONS +diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c +index ac67ce846..7d7a6622e 100644 +--- a/src/libudev/libudev-device.c ++++ b/src/libudev/libudev-device.c +@@ -1819,6 +1819,12 @@ _public_ struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_dev + return udev_list_get_entry(&udev_device->tags_list); + } + ++_public_ struct udev_list_entry *udev_device_get_current_tags_list_entry(struct udev_device *udev_device) ++{ ++ // TODO: eudev database does not support current tags ++ return udev_device_get_tags_list_entry(udev_device); ++} ++ + /** + * udev_device_has_tag: + * @udev_device: udev device +@@ -1842,6 +1848,11 @@ _public_ int udev_device_has_tag(struct udev_device *udev_device, const char *ta + return false; + } + ++_public_ int udev_device_has_current_tag(struct udev_device *udev_device, const char *tag) { ++ // TODO: eudev database does not support current tags ++ return udev_device_has_tag(udev_device, tag); ++} ++ + #define ENVP_SIZE 128 + #define MONITOR_BUF_SIZE 4096 + static int update_envp_monitor_buf(struct udev_device *udev_device) +diff --git a/src/libudev/libudev.h b/src/libudev/libudev.h +index 8491d2b81..0202964d6 100644 +--- a/src/libudev/libudev.h ++++ b/src/libudev/libudev.h +@@ -100,6 +100,7 @@ int udev_device_get_is_initialized(struct udev_device *udev_device); + struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device); + struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device); + struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device); ++struct udev_list_entry *udev_device_get_current_tags_list_entry(struct udev_device *udev_device); + struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device); + const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key); + const char *udev_device_get_driver(struct udev_device *udev_device); +@@ -110,6 +111,7 @@ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device + const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr); + int udev_device_set_sysattr_value(struct udev_device *udev_device, const char *sysattr, char *value); + int udev_device_has_tag(struct udev_device *udev_device, const char *tag); ++int udev_device_has_current_tag(struct udev_device *udev_device, const char *tag); + + /* + * udev_monitor +diff --git a/src/libudev/libudev.sym b/src/libudev/libudev.sym +index 76726fca7..d56c2aeab 100644 +--- a/src/libudev/libudev.sym ++++ b/src/libudev/libudev.sym +@@ -118,3 +118,9 @@ global: + udev_queue_flush; + udev_queue_get_fd; + } LIBUDEV_199; ++ ++LIBUDEV_247 { ++global: ++ udev_device_has_current_tag; ++ udev_device_get_current_tags_list_entry; ++} LIBUDEV_215; +-- +2.41.0 + -- 2.41.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.