[1/2] udev: Apply patches to update to version 251 and add dummies for current tags

Message ID 20230906134159.3430191-1-adolf.belka@ipfire.org
State Staged
Commit 99446eac45d9bb6d2fd0dadbabc1f1d19b4172f7
Headers
Series [1/2] udev: Apply patches to update to version 251 and add dummies for current tags |

Commit Message

Adolf Belka Sept. 6, 2023, 1:41 p.m. UTC
  - 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
  

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;
+
+