From 38a7fb71ae32589a94158c3158f6d0e7793e10d3 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 23 Aug 2012 03:27:58 +0200 Subject: [PATCH] New upstream release --- ...vely-mark-root-as-private-before-piv.patch | 31 --------- 0001-switch-root-remount-to-MS_PRIVATE.patch | 68 ------------------- sources | 2 +- systemd.spec | 27 ++++---- 4 files changed, 15 insertions(+), 113 deletions(-) delete mode 100644 0001-shutdown-recursively-mark-root-as-private-before-piv.patch delete mode 100644 0001-switch-root-remount-to-MS_PRIVATE.patch diff --git a/0001-shutdown-recursively-mark-root-as-private-before-piv.patch b/0001-shutdown-recursively-mark-root-as-private-before-piv.patch deleted file mode 100644 index 702004f..0000000 --- a/0001-shutdown-recursively-mark-root-as-private-before-piv.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 4bfa638d43c05e8db052cd55818765bb3575a405 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Fri, 10 Aug 2012 11:02:03 -0400 -Subject: [PATCH] shutdown: recursively mark root as private before pivot - -Because root is now recursively marked as shared on bootup, we need to -recursively mark root as private. This prevents a pivot_root failure on -shutdown: - - Cannot finalize remaining file systems and devices, giving up. - pivot failed: Invalid argument ---- - src/core/shutdown.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 105a604..0b7cbd8 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -109,7 +109,7 @@ static int pivot_to_new_root(void) { - It works for pivot_root, but the ref count for the root device - is not decreasing :-/ - */ -- if (mount(NULL, "/", NULL, MS_PRIVATE, NULL) < 0) { -+ if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) { - log_error("Failed to make \"/\" private mount %m"); - return -errno; - } --- -1.7.11.2 - diff --git a/0001-switch-root-remount-to-MS_PRIVATE.patch b/0001-switch-root-remount-to-MS_PRIVATE.patch deleted file mode 100644 index cc48f2a..0000000 --- a/0001-switch-root-remount-to-MS_PRIVATE.patch +++ /dev/null @@ -1,68 +0,0 @@ -From f47fc35555565c4b161c2e44b357b4dbaf3a997d Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Sun, 12 Aug 2012 01:29:41 +0200 -Subject: [PATCH] switch-root: remount to MS_PRIVATE - -The kernel does not allow switching roots if things are mounted -MS_SHARED. As a work-around, remount things MS_PRIVATE before switching -roots. - -This should be fixed in the kernel for good. - -https://bugzilla.redhat.com/show_bug.cgi?id=847418 ---- - src/core/shutdown.c | 17 ++++++++--------- - src/core/switch-root.c | 9 +++++++++ - 2 files changed, 17 insertions(+), 9 deletions(-) - -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 0b7cbd8..c3a4c39 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -104,15 +104,14 @@ static int pivot_to_new_root(void) { - return -errno; - } - -- /* -- In case some evil process made "/" MS_SHARED -- It works for pivot_root, but the ref count for the root device -- is not decreasing :-/ -- */ -- if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) { -- log_error("Failed to make \"/\" private mount %m"); -- return -errno; -- } -+ /* Work-around for a kernel bug: for some reason the kernel -+ * refuses switching root if any file systems are mounted -+ * MS_SHARED. Hence remount them MS_PRIVATE here as a -+ * work-around. -+ * -+ * https://bugzilla.redhat.com/show_bug.cgi?id=847418 */ -+ if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) -+ log_warning("Failed to make \"/\" private mount: %m"); - - if (pivot_root(".", "oldroot") < 0) { - log_error("pivot failed: %m"); -diff --git a/src/core/switch-root.c b/src/core/switch-root.c -index 9832a52..efc7d34 100644 ---- a/src/core/switch-root.c -+++ b/src/core/switch-root.c -@@ -56,6 +56,15 @@ int switch_root(const char *new_root) { - goto fail; - } - -+ /* Work-around for a kernel bug: for some reason the kernel -+ * refuses switching root if any file systems are mounted -+ * MS_SHARED. Hence remount them MS_PRIVATE here as a -+ * work-around. -+ * -+ * https://bugzilla.redhat.com/show_bug.cgi?id=847418 */ -+ if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) -+ log_warning("Failed to make \"/\" private mount: %m"); -+ - NULSTR_FOREACH(i, move_mounts) { - char new_mount[PATH_MAX]; - struct stat sb; --- -1.7.11.2 - diff --git a/sources b/sources index ddd0fdf..b91e82c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d89b42699695554949d072ef46c0dfc9 systemd-188.tar.xz +ac2eb313f5dce79622f60aac56bca66d systemd-189.tar.xz diff --git a/systemd.spec b/systemd.spec index 91ea03f..c1de7e3 100644 --- a/systemd.spec +++ b/systemd.spec @@ -4,8 +4,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 188 -Release: 3%{?gitcommit:.git%{gitcommit}}%{?dist} +Version: 189 +Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist} # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: A System and Service Manager @@ -16,20 +16,22 @@ BuildRequires: libselinux-devel BuildRequires: audit-libs-devel BuildRequires: cryptsetup-luks-devel BuildRequires: dbus-devel -BuildRequires: libxslt -BuildRequires: docbook-style-xsl -BuildRequires: pkgconfig BuildRequires: libacl-devel BuildRequires: pciutils-devel BuildRequires: glib2-devel -BuildRequires: hwdata BuildRequires: gobject-introspection-devel >= 0.6.2 -BuildRequires: usbutils >= 0.82 BuildRequires: libblkid-devel >= 2.20 -BuildRequires: intltool >= 0.40.0 -BuildRequires: gperf BuildRequires: xz-devel BuildRequires: kmod-devel >= 5 +BuildRequires: libgcrypt-devel +BuildRequires: qrencode-devel +BuildRequires: hwdata +BuildRequires: libxslt +BuildRequires: docbook-style-xsl +BuildRequires: pkgconfig +BuildRequires: usbutils >= 0.82 +BuildRequires: intltool >= 0.40.0 +BuildRequires: gperf BuildRequires: gtk-doc %if %{defined gitcommit} BuildRequires: automake @@ -59,8 +61,6 @@ 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-shutdown-recursively-mark-root-as-private-before-piv.patch -Patch1: 0001-switch-root-remount-to-MS_PRIVATE.patch Obsoletes: SysVinit < 2.86-24, sysvinit < 2.86-24 Provides: SysVinit = 2.86-24, sysvinit = 2.86-24 @@ -160,8 +160,6 @@ glib-based applications using libudev functionality. %prep %setup -q %{?gitcommit:-n %{name}-git%{gitcommit}} -%patch0 -p1 -%patch1 -p1 %build %{?gitcommit: ./autogen.sh } @@ -533,6 +531,9 @@ fi %{_libdir}/pkgconfig/gudev-1.0* %changelog +* Thu Aug 23 2012 Lennart Poettering - 189-1:.git%{gitcommit}}%{?dist} +- New upstream release + * Sat Aug 11 2012 Lennart Poettering - 188-3 - Remount file systems MS_PRIVATE before switching roots - https://bugzilla.redhat.com/show_bug.cgi?id=847418