Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fuse-overlayfs for openSUSE:Factory 
checked in at 2026-01-01 14:59:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fuse-overlayfs (Old)
 and      /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fuse-overlayfs"

Thu Jan  1 14:59:16 2026 rev:22 rq:1324854 version:1.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/fuse-overlayfs/fuse-overlayfs.changes    
2025-06-04 20:27:35.634597839 +0200
+++ /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.1928/fuse-overlayfs.changes  
2026-01-01 14:59:18.694702800 +0100
@@ -1,0 +2,6 @@
+Wed Dec 24 10:51:23 UTC 2025 - Andreas Stieger <[email protected]>
+
+- update to 0.16:
+  * fix incorrect directory entries due to unstable iteration order
+
+-------------------------------------------------------------------

Old:
----
  v1.15.tar.gz

New:
----
  v1.16.tar.gz

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

Other differences:
------------------
++++++ fuse-overlayfs.spec ++++++
--- /var/tmp/diff_new_pack.bNfgSd/_old  2026-01-01 14:59:20.626782038 +0100
+++ /var/tmp/diff_new_pack.bNfgSd/_new  2026-01-01 14:59:20.638782530 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           fuse-overlayfs
-Version:        1.15
+Version:        1.16
 Release:        0
 Summary:        FUSE implementation for overlayfs
 License:        GPL-2.0-or-later

++++++ v1.15.tar.gz -> v1.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-1.15/.github/workflows/release.yaml 
new/fuse-overlayfs-1.16/.github/workflows/release.yaml
--- old/fuse-overlayfs-1.15/.github/workflows/release.yaml      2025-05-08 
08:36:11.000000000 +0200
+++ new/fuse-overlayfs-1.16/.github/workflows/release.yaml      2025-11-05 
11:28:52.000000000 +0100
@@ -15,25 +15,33 @@
     - run: echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
     - uses: docker/setup-buildx-action@v2
     - name: Cache var-cache-apt
-      uses: actions/cache@v3
+      uses: actions/[email protected]
       with:
         path: var-cache-apt
         key: var-cache-apt-${{ hashFiles('Containerfile.cross') }}
     - name: Cache var-lib-apt
-      uses: actions/cache@v3
+      uses: actions/[email protected]
       with:
         path: var-lib-apt
         key: var-lib-apt-${{ hashFiles('Containerfile.cross') }}
     - name: inject var-cache-apt into docker
-      uses: reproducible-containers/[email protected]
+      uses: reproducible-containers/[email protected]
       with:
         cache-source: var-cache-apt
-        cache-target: /var/cache/apt
+        cache-map: |
+          {
+            "var-cache-apt": "/var/cache/apt",
+            "var-lib-apt": "/var/lib/apt"
+          }
     - name: inject var-lib-apt into docker
-      uses: reproducible-containers/[email protected]
+      uses: reproducible-containers/[email protected]
       with:
         cache-source: var-lib-apt
-        cache-target: /var/lib/apt
+        cache-map: |
+          {
+            "var-cache-apt": "/var/cache/apt",
+            "var-lib-apt": "/var/lib/apt"
+          }
     - name: "Build binaries from Containerfile.cross"
       run: docker buildx build -o /tmp/fuse-overlayfs-builds --build-arg 
SOURCE_DATE_EPOCH --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 -f 
Containerfile.cross .
     - name: "Create /tmp/artifact"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-1.15/Containerfile.cross 
new/fuse-overlayfs-1.16/Containerfile.cross
--- old/fuse-overlayfs-1.15/Containerfile.cross 2025-05-08 08:36:11.000000000 
+0200
+++ new/fuse-overlayfs-1.16/Containerfile.cross 2025-11-05 11:28:52.000000000 
+0100
@@ -4,10 +4,10 @@
 #   --build-arg SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) \
 #   --platform=amd64,arm64,arm,s390x,ppc64le,riscv64 \
 #   -f Containerfile.cross .
-FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.2.1 AS xx
-FROM --platform=$BUILDPLATFORM ubuntu:jammy-20230804 AS fuse-overlayfs
+FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.8.0 AS xx
+FROM --platform=$BUILDPLATFORM ubuntu:questing AS fuse-overlayfs
 ADD --chmod=0755 \
-  
https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.0/repro-sources-list.sh
 \
+  
https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh
 \
   /usr/local/bin/repro-sources-list.sh
 RUN \
   --mount=type=cache,target=/var/cache/apt,sharing=locked \
@@ -34,7 +34,7 @@
   if xx-info is-cross; then gcc="gcc-$(xx-info triple)"; fi; \
   apt-get install -y "${gcc}" "libfuse3-dev:${darch}"
 RUN ./autogen.sh && \
-  LIBS="-ldl" LDFLAGS="-static" ./configure --host=$(xx-info) && \
+  PKG_CONFIG_PATH="/usr/lib/$(xx-info)/pkgconfig" LIBS="-ldl" 
LDFLAGS="-static" ./configure --host=$(xx-info) && \
   make && mkdir /out && cp fuse-overlayfs /out && \
   file /out/fuse-overlayfs | grep "statically linked"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-1.15/NEWS new/fuse-overlayfs-1.16/NEWS
--- old/fuse-overlayfs-1.15/NEWS        2025-05-08 08:36:11.000000000 +0200
+++ new/fuse-overlayfs-1.16/NEWS        2025-11-05 11:28:52.000000000 +0100
@@ -1,3 +1,8 @@
+* fuse-overlayfs-1.16
+
+- main: fix incorrect directory entries due to unstable iteration
+  order.
+
 * fuse-overlayfs-1.15
 
 - main: lookup upperdir only for created directories.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-1.15/configure.ac 
new/fuse-overlayfs-1.16/configure.ac
--- old/fuse-overlayfs-1.15/configure.ac        2025-05-08 08:36:11.000000000 
+0200
+++ new/fuse-overlayfs-1.16/configure.ac        2025-11-05 11:28:52.000000000 
+0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT([fuse-overlayfs], [1.15], [[email protected]])
+AC_INIT([fuse-overlayfs], [1.16], [[email protected]])
 AC_CONFIG_SRCDIR([main.c])
 AC_CONFIG_HEADERS([config.h])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-1.15/main.c 
new/fuse-overlayfs-1.16/main.c
--- old/fuse-overlayfs-1.15/main.c      2025-05-08 08:36:11.000000000 +0200
+++ new/fuse-overlayfs-1.16/main.c      2025-11-05 11:28:52.000000000 +0100
@@ -2308,6 +2308,17 @@
   return (struct ovl_dirp *) (uintptr_t) fi->fh;
 }
 
+/* Comparison function for qsort to ensure stable directory entry order.
+   Entries are sorted by name to guarantee consistent offsets across
+   multiple opendir sessions. */
+static int
+compare_nodes_by_name (const void *a, const void *b)
+{
+  struct ovl_node *node_a = *(struct ovl_node **) a;
+  struct ovl_node *node_b = *(struct ovl_node **) b;
+  return strcmp (node_a->name, node_b->name);
+}
+
 static int
 reload_tbl (struct ovl_data *lo, struct ovl_dirp *d, struct ovl_node *node)
 {
@@ -2341,6 +2352,16 @@
       d->tbl[counter++] = it;
     }
 
+  /* Sort the directory entries by name to ensure stable offsets.
+
+    The kernel FUSE layer caches directory listings using offsets as
+    identifiers. If entries change positions between opendir sessions
+    (which can happen when nodes are freed and recreated between loads),
+    the kernel may incorrectly skip or duplicate entries.
+
+    Sorting ensures the same filename always appears at the same offset. */
+  qsort (&d->tbl[2], counter - 2, sizeof (struct ovl_node *), 
compare_nodes_by_name);
+
   return 0;
 }
 

Reply via email to