- eudev-3.2.12 has udev version 243 and this causes the build of libgudev to fail as it requires a newer version of udev. - Just changing the version in eudev from 243 to 251 is insufficient as libgudev also expects to see current tags which have been introduced in a more recent version of systemd udev. - Two patches applied from the eudev github issue #249 covering this problem. - With the two patches applied libgudev built without any problems. - Update to rootfile not required.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- lfs/udev | 3 +- ...udev-3.2.12_Bump_udev_version_to_251.patch | 11 +++ ...2.12_Export_dummies_for_current_tags.patch | 81 +++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/patches/eudev-3.2.12_Bump_udev_version_to_251.patch create mode 100644 src/patches/eudev-3.2.12_Export_dummies_for_current_tags.patch
diff --git a/lfs/udev b/lfs/udev index eb01ae848..300c77f7d 100644 --- a/lfs/udev +++ b/lfs/udev @@ -74,7 +74,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && tar axf $(DIR_DL)/udev-lfs-$(RULES_VER).tar.bz2 - + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/eudev-3.2.12_Bump_udev_version_to_251.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/eudev-3.2.12_Export_dummies_for_current_tags.patch cd $(DIR_APP) && ./configure \ --prefix=/usr \ --bindir=/bin \ diff --git a/src/patches/eudev-3.2.12_Bump_udev_version_to_251.patch b/src/patches/eudev-3.2.12_Bump_udev_version_to_251.patch new file mode 100644 index 000000000..459d1b6df --- /dev/null +++ b/src/patches/eudev-3.2.12_Bump_udev_version_to_251.patch @@ -0,0 +1,11 @@ +--- eudev-3.2.12/configure.orig 2023-05-16 16:20:07.000000000 +0200 ++++ eudev-3.2.12/configure 2023-09-05 14:50:58.167510924 +0200 +@@ -3408,7 +3408,7 @@ + ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +-UDEV_VERSION=243 ++UDEV_VERSION=251 + + + diff --git a/src/patches/eudev-3.2.12_Export_dummies_for_current_tags.patch b/src/patches/eudev-3.2.12_Export_dummies_for_current_tags.patch new file mode 100644 index 000000000..e0563ab17 --- /dev/null +++ b/src/patches/eudev-3.2.12_Export_dummies_for_current_tags.patch @@ -0,0 +1,81 @@ +From dacff83d872c1dcb563439f98c9b974e244fcd46 Mon Sep 17 00:00:00 2001 +From: Boian Bonev bbonev@ipacct.com +Date: Fri, 11 Aug 2023 23:14:02 +0000 +Subject: [PATCH] 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 +--- + src/libudev/libudev-device.c | 11 +++++++++++ + src/libudev/libudev.h | 2 ++ + src/libudev/libudev.sym | 6 ++++++ + 3 files changed, 19 insertions(+) + +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; + +
- Update from version 237 to 238 - Update of rootfile not required. - With patches applied to eudev tarball, libgudev built without any problems. Testing will need to focus on use of QMI to ensure that it executes with no problems with this fix. - Changelog 238: * Fix newline stripping * Add g_udev_device_get_current_tags() * Add a number of tests, and devel docs * Fix devhelp not being able to find the docs * Skip locale test with locale isn't available
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- lfs/libgudev | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/lfs/libgudev b/lfs/libgudev index bf0fec9b8..7e7d0fca5 100644 --- a/lfs/libgudev +++ b/lfs/libgudev @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2021 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 237 +VER = 238
THISAPP = libgudev-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 5d39d4d26d8c8b3fa877319c294036294dbda96b340d2d04d7a35449d91b58de876b96b5e3d9423cdf3e1d3e2a94f5a861b1ac1e74a610637e0fc66248c68309 +$(DL_FILE)_BLAKE2 = 386491e78c82081e89dad897d16ea6733430a67db3f75f2d9fdee5474b074ad6fede9f08e429f4eb6feaa9bbbb982d9d039db738aac5b5ce0ffac2d3a19430d4
install : $(TARGET)
@@ -71,9 +71,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && meson --prefix=/usr \ - --sysconfdir=/etc \ - --buildtype=release \ - builddir/ + --sysconfdir=/etc \ + --buildtype=release \ + builddir/ cd $(DIR_APP) && ninja -C builddir/ $(MAKETUNING) cd $(DIR_APP) && ninja -C builddir/ install @rm -rf $(DIR_APP)