sys-apps/systemd: fix build with util-linux-2.32
authorMike Gilbert <floppym@gentoo.org>
Mon, 26 Mar 2018 21:17:04 +0000 (17:17 -0400)
committerMike Gilbert <floppym@gentoo.org>
Mon, 26 Mar 2018 21:17:23 +0000 (17:17 -0400)
Closes: https://bugs.gentoo.org/651304
Package-Manager: Portage-2.3.24, Repoman-2.3.6_p81

sys-apps/systemd/files/238-libmount-include.patch [new file with mode: 0644]
sys-apps/systemd/systemd-236-r5.ebuild
sys-apps/systemd/systemd-237-r3.ebuild
sys-apps/systemd/systemd-238-r1.ebuild

diff --git a/sys-apps/systemd/files/238-libmount-include.patch b/sys-apps/systemd/files/238-libmount-include.patch
new file mode 100644 (file)
index 0000000..6a02dff
--- /dev/null
@@ -0,0 +1,72 @@
+From 227b8a762fea1458547be2cdf0e6e4aac0079730 Mon Sep 17 00:00:00 2001
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 26 Mar 2018 17:34:53 +0200
+Subject: [PATCH] core: don't include libmount.h in a header file (#8580)
+
+linux/fs.h sys/mount.h, libmount.h and missing.h all include MS_*
+definitions.
+
+To avoid problems, only one of linux/fs.h, sys/mount.h and libmount.h
+should be included. And missing.h must be included last.
+
+Without this, building systemd may fail with:
+
+In file included from [...]/libmount/libmount.h:31:0,
+                 from ../systemd-238/src/core/manager.h:23,
+                 from ../systemd-238/src/core/emergency-action.h:37,
+                 from ../systemd-238/src/core/unit.h:34,
+                 from ../systemd-238/src/core/dbus-timer.h:25,
+                 from ../systemd-238/src/core/timer.c:26:
+[...]/sys/mount.h:57:2: error: expected identifier before numeric constant
+---
+ src/core/dbus-execute.c | 1 +
+ src/core/manager.h      | 3 ++-
+ src/core/mount.c        | 2 ++
+ 3 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
+index 7344623ebf6..c342093bca4 100644
+--- a/src/core/dbus-execute.c
++++ b/src/core/dbus-execute.c
+@@ -18,6 +18,7 @@
+   along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ ***/
+ 
++#include <sys/mount.h>
+ #include <sys/prctl.h>
+ #include <stdio_ext.h>
+ 
+diff --git a/src/core/manager.h b/src/core/manager.h
+index 28c5da225b1..e09e0cdf5e9 100644
+--- a/src/core/manager.h
++++ b/src/core/manager.h
+@@ -20,7 +20,6 @@
+   along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ ***/
+ 
+-#include <libmount.h>
+ #include <stdbool.h>
+ #include <stdio.h>
+ 
+@@ -34,6 +33,8 @@
+ #include "list.h"
+ #include "ratelimit.h"
+ 
++struct libmnt_monitor;
++
+ /* Enforce upper limit how many names we allow */
+ #define MANAGER_MAX_NAMES 131072 /* 128K */
+ 
+diff --git a/src/core/mount.c b/src/core/mount.c
+index 0e755da5c02..0154ebda5d6 100644
+--- a/src/core/mount.c
++++ b/src/core/mount.c
+@@ -23,6 +23,8 @@
+ #include <stdio.h>
+ #include <sys/epoll.h>
+ 
++#include <libmount.h>
++
+ #include "sd-messages.h"
+ 
+ #include "alloc-util.h"
index ed62d0a6f44e49f55fb1475a8fe02dc6ea5051b5..aed2113e91aa41058a88febd2b4822e459d8b00d 100644 (file)
@@ -148,6 +148,7 @@ src_unpack() {
 
 src_prepare() {
        local PATCHES=(
+               "${FILESDIR}/238-libmount-include.patch"
        )
 
        [[ -d "${WORKDIR}"/patches ]] && PATCHES+=( "${WORKDIR}"/patches )
index 466126ca683abe36b17bcfeddb34c82538ccdc90..d0254ee71dbe6fb8b1277c3cf1ef3586e72ee21f 100644 (file)
@@ -150,6 +150,7 @@ src_unpack() {
 src_prepare() {
        local PATCHES=(
                "${FILESDIR}/237-0001-networkctl-display-type.patch"
+               "${FILESDIR}/238-libmount-include.patch"
        )
 
        [[ -d "${WORKDIR}"/patches ]] && PATCHES+=( "${WORKDIR}"/patches )
index 2898aa322ed888829bfa71954d369ca5ceeae276..2903bb82e515a675e8e00ca5bfc10a577434122c 100644 (file)
@@ -150,6 +150,7 @@ src_prepare() {
        local PATCHES=(
                "${FILESDIR}/238-0001-sd-bus-do-not-try-to-close-already-closed-fd-8392.patch"
                "${FILESDIR}/238-0002-core-do-not-free-heap-allocated-strings-8391.patch"
+               "${FILESDIR}/238-libmount-include.patch"
        )
 
        [[ -d "${WORKDIR}"/patches ]] && PATCHES+=( "${WORKDIR}"/patches )