Add 1001-statx.patch

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1301
This commit is contained in:
Dr. Werner Fink 2022-08-15 11:44:59 +00:00 committed by Git OBS Bridge
parent c429363a11
commit bc5aa1d691
3 changed files with 162 additions and 0 deletions

151
1001-statx.patch Normal file
View File

@ -0,0 +1,151 @@
From 3657d3a01c7e25ff86d7a4642065b367c4ff7484 Mon Sep 17 00:00:00 2001
From: Rudi Heitbaum <rudi@heitbaum.com>
Date: Sat, 23 Jul 2022 10:38:49 +0000
Subject: [PATCH] glibc: Remove #include <linux/fs.h> to resolve
fsconfig_command/mount_attr conflict with glibc 2.36
---
meson.build | 13 ++++++++++++-
src/basic/fd-util.c | 2 ++
src/core/namespace.c | 2 ++
src/shared/mount-util.c | 2 ++
4 files changed, 18 insertions(+), 1 deletion(-)
diff --git meson.build meson.build
index 61073d4ead..4315914a2e 100644
--- a/meson.build
+++ b/meson.build
@@ -511,7 +511,6 @@ decl_headers = '''
#include <uchar.h>
#include <sys/mount.h>
#include <sys/stat.h>
-#include <linux/fs.h>
'''
foreach decl : ['char16_t',
@@ -523,6 +522,17 @@ foreach decl : ['char16_t',
# We get -1 if the size cannot be determined
have = cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0
+ if decl == 'struct mount_attr'
+ if have
+ want_linux_fs_h = false
+ else
+ have = cc.sizeof(decl,
+ prefix : decl_headers + '#include <linux/fs.h>',
+ args : '-D_GNU_SOURCE') > 0
+ want_linux_fs_h = have
+ endif
+ endif
+
if decl == 'struct statx'
if have
want_linux_stat_h = false
@@ -538,6 +548,7 @@ foreach decl : ['char16_t',
endforeach
conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h)
+conf.set10('WANT_LINUX_FS_H', want_linux_fs_h)
foreach ident : ['secure_getenv', '__secure_getenv']
conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident))
diff --git src/basic/fd-util.c src/basic/fd-util.c
index 6c1de92a26..00591d6c2d 100644
--- a/src/basic/fd-util.c
+++ b/src/basic/fd-util.c
@@ -3,7 +3,9 @@
#include <errno.h>
#include <fcntl.h>
#include <linux/btrfs.h>
+#if WANT_LINUX_FS_H
#include <linux/fs.h>
+#endif
#include <linux/magic.h>
#include <sys/ioctl.h>
#include <sys/resource.h>
diff --git src/core/namespace.c src/core/namespace.c
index 41457ea816..016afe4d9e 100644
--- a/src/core/namespace.c
+++ b/src/core/namespace.c
@@ -7,7 +7,9 @@
#include <sys/file.h>
#include <sys/mount.h>
#include <unistd.h>
+#if WANT_LINUX_FS_H
#include <linux/fs.h>
+#endif
#include "alloc-util.h"
#include "base-filesystem.h"
diff --git src/shared/mount-util.c src/shared/mount-util.c
index 8cf16affcb..a119a7c3c1 100644
--- a/src/shared/mount-util.c
+++ b/src/shared/mount-util.c
@@ -7,7 +7,9 @@
#include <sys/statvfs.h>
#include <unistd.h>
#include <linux/loop.h>
+#if WANT_LINUX_FS_H
#include <linux/fs.h>
+#endif
#include "alloc-util.h"
#include "chase-symlinks.h"
--
2.35.3
Hmmm ... commit 3657d3a01c7e25ff86d7a4642065b367c4ff7484 is not enough
--- systemd-v251.3+suse.27.g8cd784e925/src/basic/chattr-util.h
+++ systemd-v251.3+suse.27.g8cd784e925/src/basic/chattr-util.h 2022-08-15 10:36:27.022215514 +0000
@@ -1,7 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
+#define _LINUX_MOUNT_H
#include <linux/fs.h>
#include <stdbool.h>
#include <stddef.h>
--- systemd-v251.3+suse.27.g8cd784e925/src/home/homework.h
+++ systemd-v251.3+suse.27.g8cd784e925/src/home/homework.h 2022-08-15 10:46:08.835534459 +0000
@@ -1,7 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
+#define _LINUX_MOUNT_H
#include <linux/fs.h>
+#include <sys/mount.h>
#include <sys/vfs.h>
#include "sd-id128.h"
--- systemd-v251.3+suse.27.g8cd784e925/src/home/homework-mount.c
+++ systemd-v251.3+suse.27.g8cd784e925/src/home/homework-mount.c 2022-08-15 10:48:58.804414702 +0000
@@ -2,6 +2,7 @@
#include <sched.h>
#include <sys/mount.h>
+#define _LINUX_MOUNT_H
#include <linux/fs.h>
#include "alloc-util.h"
--- systemd-v251.3+suse.27.g8cd784e925/src/home/homework-fscrypt.c
+++ systemd-v251.3+suse.27.g8cd784e925/src/home/homework-fscrypt.c 2022-08-15 10:52:29.452548623 +0000
@@ -1,5 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <sys/mount.h>
+#define _LINUX_MOUNT_H
#include <linux/fs.h>
#include <openssl/evp.h>
#include <openssl/sha.h>
--- systemd-v251.3+suse.27.g8cd784e925/src/home/homed-manager.c
+++ systemd-v251.3+suse.27.g8cd784e925/src/home/homed-manager.c 2022-08-15 10:54:20.750506089 +0000
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <grp.h>
+#define _LINUX_MOUNT_H
#include <linux/fs.h>
#include <linux/magic.h>
#include <math.h>

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Mon Aug 15 10:25:34 UTC 2022 - Dr. Werner Fink <werner@suse.de>
- Add patch 1001-statx.patch based on commit 3657d3a0
* to resolve conflicts with glibc 2.36 with <linux/fs.h>
* add dirty hack to get in src/basic/chattr-util.h,
src/home/homework.h, src/home/homework-fscrypt.c,
src/home/homed-manager.c, and src/home/homework-mount.c as well
to avoid that <linux/fs.h> does include <linux/mount.h>
-------------------------------------------------------------------
Tue Jul 19 12:31:24 UTC 2022 - Franck Bui <fbui@suse.com>

View File

@ -206,6 +206,7 @@ Patch12: 0009-pid1-handle-console-specificities-weirdness-for-s390.patch
# Temporary workaround until bsc#1197178 is addressed.
Patch1000: 1000-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch
Patch1001: 1001-statx.patch
# Patches listed below are put in quarantine. Normally all changes
# must go to upstream first and then are cherry-picked in the SUSE git