Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libostree for openSUSE:Factory 
checked in at 2022-08-14 15:55:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libostree (Old)
 and      /work/SRC/openSUSE:Factory/.libostree.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libostree"

Sun Aug 14 15:55:25 2022 rev:25 rq:994789 version:2022.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/libostree/libostree.changes      2022-08-05 
19:50:37.873398365 +0200
+++ /work/SRC/openSUSE:Factory/.libostree.new.1521/libostree.changes    
2022-08-14 15:55:31.959754918 +0200
@@ -1,0 +2,5 @@
+Wed Aug 10 14:07:28 UTC 2022 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- fix build with glibc 2.36 (boo#1202300) ostree-glibc_2.36.patch
+
+-------------------------------------------------------------------

New:
----
  ostree-glibc_2.36.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libostree.spec ++++++
--- /var/tmp/diff_new_pack.oT7cxz/_old  2022-08-14 15:55:32.379755810 +0200
+++ /var/tmp/diff_new_pack.oT7cxz/_new  2022-08-14 15:55:32.383755819 +0200
@@ -28,6 +28,7 @@
 Source:         
https://github.com/ostreedev/ostree/releases/download/v%{version}/%{name}-%{version}.tar.xz
 # PATCH-FIX-OPENSUSE ostree-grub2-location.patch boo#974714 
dims...@opensuse.org -- Fix path to grub-mkconfig_lib
 Patch0:         ostree-grub2-location.patch
+Patch1:         ostree-glibc_2.36.patch
 BuildRequires:  bison
 BuildRequires:  gjs
 BuildRequires:  gnome-common

++++++ ostree-glibc_2.36.patch ++++++
>From edba4b33be10c05253bfa94895dfbc8477e44d76 Mon Sep 17 00:00:00 2001
From: Colin Walters <walt...@verbum.org>
Date: Wed, 3 Aug 2022 10:37:40 -0400
Subject: [PATCH 1/2] Remove unused `linux/fs.h` includes

Prep for fixing conflicts introduced by newer glibc.
cc https://github.com/ostreedev/ostree/issues/2685
---
 src/libostree/ostree-repo-commit.c | 1 -
 src/ostree/ot-main.c               | 1 -
 2 files changed, 2 deletions(-)

diff --git a/src/libostree/ostree-repo-commit.c 
b/src/libostree/ostree-repo-commit.c
index afab3fdf85..35b16c713b 100644
--- a/src/libostree/ostree-repo-commit.c
+++ b/src/libostree/ostree-repo-commit.c
@@ -30,7 +30,6 @@
 #include <sys/xattr.h>
 #include <glib/gprintf.h>
 #include <sys/ioctl.h>
-#include <linux/fs.h>
 #include <ext2fs/ext2_fs.h>
 
 #include "otutil.h"
diff --git a/src/ostree/ot-main.c b/src/ostree/ot-main.c
index b7b50d67e3..7a4405a50d 100644
--- a/src/ostree/ot-main.c
+++ b/src/ostree/ot-main.c
@@ -28,7 +28,6 @@
 #include <string.h>
 #include <sys/statvfs.h>
 #include <sys/mount.h>
-#include <linux/fs.h>
 
 #include "ot-main.h"
 #include "ostree.h"

>From 0a908a180fcce98c2565b9fb34470e5953918260 Mon Sep 17 00:00:00 2001
From: Colin Walters <walt...@verbum.org>
Date: Wed, 3 Aug 2022 10:43:43 -0400
Subject: [PATCH 2/2] Move FIFREEZE/FITHAW ioctl invocations into linuxfsutil.c

Should help avoid conflicts between glibc and linux headers.

Closes: https://github.com/ostreedev/ostree/issues/2685
---
 src/libostree/ostree-linuxfsutil.c    | 24 ++++++++++++++++++++++--
 src/libostree/ostree-linuxfsutil.h    |  3 +++
 src/libostree/ostree-sysroot-deploy.c |  7 +++----
 3 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/src/libostree/ostree-linuxfsutil.c 
b/src/libostree/ostree-linuxfsutil.c
index 97f936048a..aa389aaa80 100644
--- a/src/libostree/ostree-linuxfsutil.c
+++ b/src/libostree/ostree-linuxfsutil.c
@@ -24,10 +24,12 @@
 
 #include <fcntl.h>
 #include <sys/ioctl.h>
+// This should be the only file including linux/fs.h; see
+// 
https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+// https://github.com/ostreedev/ostree/issues/2685
+#include <linux/fs.h>
 #include <ext2fs/ext2_fs.h>
 
-#include "otutil.h"
-
 /**
  * _ostree_linuxfs_fd_alter_immutable_flag:
  * @fd: A file descriptor
@@ -88,3 +90,21 @@ _ostree_linuxfs_fd_alter_immutable_flag (int            fd,
 
   return TRUE;
 }
+
+/* Wrapper for FIFREEZE ioctl.
+ * This is split into a separate wrapped API for
+ * reasons around conflicts between glibc and linux/fs.h
+ * includes; see above.
+ */
+int
+_ostree_linuxfs_filesystem_freeze (int fd)
+{
+  return TEMP_FAILURE_RETRY (ioctl (fd, FIFREEZE, 0));
+}
+
+/* Wrapper for FITHAW ioctl.  See above. */
+int
+_ostree_linuxfs_filesystem_thaw (int fd)
+{
+  return TEMP_FAILURE_RETRY (ioctl (fd, FITHAW, 0));
+}
diff --git a/src/libostree/ostree-linuxfsutil.h 
b/src/libostree/ostree-linuxfsutil.h
index 0654b6fc7c..9011c9d869 100644
--- a/src/libostree/ostree-linuxfsutil.h
+++ b/src/libostree/ostree-linuxfsutil.h
@@ -29,4 +29,7 @@ _ostree_linuxfs_fd_alter_immutable_flag (int            fd,
                                          GCancellable  *cancellable,
                                          GError       **error);
 
+int _ostree_linuxfs_filesystem_freeze (int fd);
+int _ostree_linuxfs_filesystem_thaw (int fd);
+
 G_END_DECLS
diff --git a/src/libostree/ostree-sysroot-deploy.c 
b/src/libostree/ostree-sysroot-deploy.c
index 2dc9f58b16..d86de7dc7b 100644
--- a/src/libostree/ostree-sysroot-deploy.c
+++ b/src/libostree/ostree-sysroot-deploy.c
@@ -29,7 +29,6 @@
 #include <sys/ioctl.h>
 #include <stdbool.h>
 #include <sys/poll.h>
-#include <linux/fs.h>
 #include <err.h>
 
 #ifdef HAVE_LIBMOUNT
@@ -1476,7 +1475,7 @@ fsfreeze_thaw_cycle (OstreeSysroot *self,
            * EOPNOTSUPP: If the filesystem doesn't support it
            */
           int saved_errno = errno;
-          (void) TEMP_FAILURE_RETRY (ioctl (rootfs_dfd, FITHAW, 0));
+          _ostree_linuxfs_filesystem_thaw (rootfs_dfd);
           errno = saved_errno;
           /* But if we got an error from poll, let's log it */
           if (r < 0)
@@ -1517,7 +1516,7 @@ fsfreeze_thaw_cycle (OstreeSysroot *self,
           return glnx_throw (error, "aborting due to test-fifreeze");
         }
       /* Do a freeze/thaw cycle; TODO add a FIFREEZETHAW ioctl */
-      if (ioctl (rootfs_dfd, FIFREEZE, 0) != 0)
+      if (_ostree_linuxfs_filesystem_freeze (rootfs_dfd) != 0)
         {
           /* Not supported, we're running in the unit tests (as non-root), or
            * the filesystem is already frozen (EBUSY).
@@ -1539,7 +1538,7 @@ fsfreeze_thaw_cycle (OstreeSysroot *self,
             return glnx_throw_errno_prefix (error, "ioctl(FIFREEZE)");
         }
       /* And finally thaw, then signal our completion to the watchdog */
-      if (TEMP_FAILURE_RETRY (ioctl (rootfs_dfd, FITHAW, 0)) != 0)
+      if (_ostree_linuxfs_filesystem_thaw (rootfs_dfd) != 0)
         {
           /* Warn but don't error if the filesystem was already thawed */
           if (errno == EINVAL)

Reply via email to