[PATCH] discover/udev: Don't call udev_set_log_fn()

Samuel Mendoza-Jonas sam at mendozajonas.com
Wed Apr 13 16:21:37 AEST 2016


As of libudev 218 udev_set_log_fn() is deprecated, causing a
-Wdeprecated-declarations warning when building, and is otherwise a
noop.
Add a configure check for libudev, and only call udev_set_log_fn() if
using a version older than 218.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 configure.ac    | 5 +++++
 discover/udev.c | 4 ++++
 2 files changed, 9 insertions(+)

diff --git a/configure.ac b/configure.ac
index 1b9b980..00a6113 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,6 +57,11 @@ AC_CHECK_LIB([udev], [udev_new],
 	[AC_MSG_FAILURE([The libudev development library is required by petitboot.  Try installing the package libudev-dev or libudev-devel.])]
 )
 
+PKG_CHECK_EXISTS(libudev >= 218, [old_udev=no], [old_udev=yes])
+if test "$old_udev" = "yes" ; then
+      AC_DEFINE(UDEV_LOGGING, 1, [Support old udev logging interface])],
+fi
+
 AC_CHECK_LIB([devmapper], [dm_task_create],
 	[DEVMAPPER_LIBS=-ldevmapper],
 	[AC_MSG_FAILURE([The libdevmapper development library is required by petitboot.  Try installing the package libdevmapper-dev or libdevmapper-devel.])]
diff --git a/discover/udev.c b/discover/udev.c
index 23057bf..f4cefab 100644
--- a/discover/udev.c
+++ b/discover/udev.c
@@ -448,6 +448,7 @@ static int udev_process(void *arg)
 	return 0;
 }
 
+#ifdef UDEV_LOGGING
 static void udev_log_fn(struct udev __attribute__((unused)) *udev,
 	int __attribute__((unused)) priority, const char *file, int line,
 	const char *fn, const char *format, va_list args)
@@ -455,6 +456,7 @@ static void udev_log_fn(struct udev __attribute__((unused)) *udev,
       pb_log("libudev: %s %s:%d: ", fn, file, line);
       vfprintf(pb_log_get_stream(), format, args);
 }
+#endif
 
 struct pb_udev *udev_init(struct device_handler *handler,
 		struct waitset *waitset)
@@ -475,7 +477,9 @@ struct pb_udev *udev_init(struct device_handler *handler,
 
 	udev_set_userdata(udev->udev, udev);
 
+#ifdef UDEV_LOGGING
 	udev_set_log_fn(udev->udev, udev_log_fn);
+#endif
 
 	result = udev_setup_monitor(udev->udev, &udev->monitor);
 	if (result)
-- 
2.8.0



More information about the Petitboot mailing list