udev: Apply patches to update to version 251 and add dummies for current tags

- 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>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Adolf Belka
2023-09-06 15:41:58 +02:00
committed by Michael Tremer
parent 849ed299c1
commit 99446eac45
3 changed files with 94 additions and 1 deletions

View File

@@ -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 \

View File

@@ -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

View File

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