[systemd] udev selinux labeling fix

Kay Sievers kay at fedoraproject.org
Tue Jun 5 16:38:49 UTC 2012


commit 6979d27f084c89cefaf8f8c233f43db4ff57df57
Author: Kay Sievers <kay at vrfy.org>
Date:   Tue Jun 5 18:33:49 2012 +0200

    udev selinux labeling fix

 ...-remaining-selinux-labeling-for-file-in-r.patch |   48 ++++++++++++++++++++
 systemd.spec                                       |   13 ++++-
 2 files changed, 58 insertions(+), 3 deletions(-)
---
diff --git a/0001-udev-remove-remaining-selinux-labeling-for-file-in-r.patch b/0001-udev-remove-remaining-selinux-labeling-for-file-in-r.patch
new file mode 100644
index 0000000..479ab89
--- /dev/null
+++ b/0001-udev-remove-remaining-selinux-labeling-for-file-in-r.patch
@@ -0,0 +1,48 @@
+From 3cbd5f6be191a4e71fc85d8b893e96d6d65bf792 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay at vrfy.org>
+Date: Tue, 5 Jun 2012 17:31:32 +0200
+Subject: [PATCH] udev: remove remaining selinux labeling for file in /run
+
+---
+ src/libudev/libudev-device-private.c |    4 ++--
+ src/udev/udev-node.c                 |    2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/libudev/libudev-device-private.c b/src/libudev/libudev-device-private.c
+index bdb0e70..2347736 100644
+--- a/src/libudev/libudev-device-private.c
++++ b/src/libudev/libudev-device-private.c
+@@ -35,7 +35,7 @@ static void udev_device_tag(struct udev_device *dev, const char *tag, bool add)
+         if (add) {
+                 int fd;
+ 
+-                mkdir_parents_label(filename, 0755);
++                mkdir_parents(filename, 0755);
+                 fd = open(filename, O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444);
+                 if (fd >= 0)
+                         close(fd);
+@@ -119,7 +119,7 @@ int udev_device_update_db(struct udev_device *udev_device)
+ 
+         /* write a database file */
+         util_strscpyl(filename_tmp, sizeof(filename_tmp), filename, ".tmp", NULL);
+-        mkdir_parents_label(filename_tmp, 0755);
++        mkdir_parents(filename_tmp, 0755);
+         f = fopen(filename_tmp, "we");
+         if (f == NULL) {
+                 udev_err(udev, "unable to create temporary db file '%s': %m\n", filename_tmp);
+diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c
+index 2ef6341..aee84a9 100644
+--- a/src/udev/udev-node.c
++++ b/src/udev/udev-node.c
+@@ -226,7 +226,7 @@ static void link_update(struct udev_device *dev, const char *slink, bool add)
+                 do {
+                         int fd;
+ 
+-                        err = mkdir_parents_label(filename, 0755);
++                        err = mkdir_parents(filename, 0755);
+                         if (err != 0 && err != -ENOENT)
+                                 break;
+                         fd = open(filename, O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444);
+-- 
+1.7.10.2
+
diff --git a/systemd.spec b/systemd.spec
index 91b2258..e7ac9cc 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -3,7 +3,7 @@
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
 Version:        185
-Release:        1%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release:        2%{?gitcommit:.git%{gitcommit}}%{?dist}
 # For a breakdown of the licensing, see README
 License:        LGPLv2+ and MIT and GPLv2+
 Group:          System Environment/Base
@@ -56,6 +56,7 @@ Source2:        systemd-sysv-convert
 Source3:        udlfb.conf
 # Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away
 Source4:        listen.conf
+Patch0:         0001-udev-remove-remaining-selinux-labeling-for-file-in-r.patch
 
 Obsoletes:      SysVinit < 2.86-24, sysvinit < 2.86-24
 Provides:       SysVinit = 2.86-24, sysvinit = 2.86-24
@@ -71,8 +72,9 @@ Provides:       /bin/systemctl
 Provides:       /sbin/shutdown
 Obsoletes:      systemd-units < 38-5
 Provides:       systemd-units = %{version}-%{release}
-Provides:       udev = 183
+Provides:       udev = %{version}
 Obsoletes:      udev < 183
+Conflicts:      dracut < 019
 
 %description
 systemd is a system and service manager for Linux, compatible with
@@ -88,7 +90,7 @@ work as a drop-in replacement for sysvinit.
 Group:          System Environment/Base
 Summary:        Development headers for systemd
 Requires:       %{name} = %{version}-%{release}
-Provides:       libudev-devel = 183
+Provides:       libudev-devel = %{version}
 Obsoletes:      libudev-devel < 183
 
 %description devel
@@ -139,6 +141,7 @@ glib-based applications using libudev functionality.
 
 %prep
 %setup -q %{?gitcommit:-n %{name}-git%{gitcommit}}
+%patch0 -p1
 
 %build
 %{?gitcommit: ./autogen.sh }
@@ -468,6 +471,10 @@ mv /etc/systemd/system/default.target.save /etc/systemd/system/default.target >/
 %attr(0644,root,root) %{_libdir}/pkgconfig/gudev-1.0*
 
 %changelog
+* Tue Jun 05 2012 Kay Sievers - 185-2
+- selinux udev labeling fix
+- conflict with older dracut versions for new udev file names
+
 * Mon Jun 04 2012 Kay Sievers - 185-1
 - New upstream release
   - udev selinux labeling fixes


More information about the scm-commits mailing list