Hello community, here is the log from the commit of package fuse-overlayfs for openSUSE:Factory checked in at 2020-02-06 13:19:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fuse-overlayfs (Old) and /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fuse-overlayfs" Thu Feb 6 13:19:14 2020 rev:7 rq:769897 version:0.7.6 Changes: -------- --- /work/SRC/openSUSE:Factory/fuse-overlayfs/fuse-overlayfs.changes 2020-01-23 16:10:04.091605765 +0100 +++ /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.26092/fuse-overlayfs.changes 2020-02-06 13:19:19.584675216 +0100 @@ -1,0 +2,9 @@ +Tue Feb 4 08:12:04 UTC 2020 - Sascha Grunert <[email protected]> + +- Update to v0.7.6 + - do not look in lower layers for the ino if there is no origin + xattr set + - attempt to use the file path if the operation on the fd fails + with ENXIO + +------------------------------------------------------------------- Old: ---- fuse-overlayfs-0.7.5.tar.xz New: ---- fuse-overlayfs-0.7.6.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fuse-overlayfs.spec ++++++ --- /var/tmp/diff_new_pack.joN77G/_old 2020-02-06 13:19:20.104675471 +0100 +++ /var/tmp/diff_new_pack.joN77G/_new 2020-02-06 13:19:20.108675473 +0100 @@ -17,7 +17,7 @@ Name: fuse-overlayfs -Version: 0.7.5 +Version: 0.7.6 Release: 0 Summary: FUSE implementation for overlayfs License: GPL-3.0-only ++++++ _service ++++++ --- /var/tmp/diff_new_pack.joN77G/_old 2020-02-06 13:19:20.124675480 +0100 +++ /var/tmp/diff_new_pack.joN77G/_new 2020-02-06 13:19:20.124675480 +0100 @@ -3,8 +3,8 @@ <param name="url">https://github.com/containers/fuse-overlayfs.git</param> <param name="scm">git</param> <param name="filename">fuse-overlayfs</param> - <param name="versionformat">0.7.5</param> - <param name="revision">v0.7.5</param> + <param name="versionformat">0.7.6</param> + <param name="revision">v0.7.6</param> </service> <service name="set_version" mode="disabled"> <param name="basename">fuse-overlayfs</param> ++++++ fuse-overlayfs-0.7.5.tar.xz -> fuse-overlayfs-0.7.6.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-overlayfs-0.7.5/.travis.yml new/fuse-overlayfs-0.7.6/.travis.yml --- old/fuse-overlayfs-0.7.5/.travis.yml 2020-01-17 22:02:54.000000000 +0100 +++ new/fuse-overlayfs-0.7.6/.travis.yml 2020-02-03 15:23:46.000000000 +0100 @@ -1,7 +1,7 @@ services: - docker env: - - GOPATH=$HOME/go GOROOT=/usr/local/go GO=/usr/local/go/bin/go + - GOPATH=$HOME/go GOROOT=/usr/local/go GO=/usr/local/go/bin/go PATH=/usr/local/go/bin:$PATH language: c sudo: required dist: xenial @@ -26,13 +26,13 @@ before_install: - docker pull fedora & - docker build -t alpine-build -f Dockerfile.alpine . - - (wget https://dl.google.com/go/go1.10.8.linux-amd64.tar.gz && tar xf go1.10.8.linux-amd64.tar.gz && sudo mv go /usr/local) + - (wget https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz && tar xf go1.13.7.linux-amd64.tar.gz && sudo mv go /usr/local) - sudo mkdir -p /lower /upper /mnt - (cd /; sudo git clone https://github.com/amir73il/unionmount-testsuite.git) - (git clone --depth 1 git://github.com/ninja-build/ninja.git && cd ninja && python3.5 ./bootstrap.py && sudo cp ninja /usr/bin) - (git clone --depth 1 -b 0.51.1 https://github.com/mesonbuild/meson.git; cd meson; sudo python3.5 ./setup.py install) - (git clone --depth 1 https://github.com/sstephenson/bats.git; cd bats; sudo ./install.sh /usr/local) - - (go get github.com/containers/storage; cd $GOPATH/src/github.com/containers/storage; sed -i -e 's|^AUTOTAGS.*$|AUTOTAGS := exclude_graphdriver_devicemapper exclude_graphdriver_btrfs|' Makefile; make GO=$GO containers-storage) + - ($GO get github.com/containers/storage; cd $GOPATH/src/github.com/containers/storage; sed -i -e 's|^AUTOTAGS.*$|AUTOTAGS := exclude_graphdriver_devicemapper exclude_graphdriver_btrfs|' Makefile; make GO=$GO containers-storage) - (wget https://github.com/libfuse/libfuse/releases/download/fuse-3.6.2/fuse-3.6.2.tar.xz; tar xf fuse-3.6.2.tar.xz; cd fuse-3.6.2; mkdir build; cd build; meson .. --prefix /usr && ninja && sudo ninja install) script: - ./autogen.sh || travis_terminate 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-overlayfs-0.7.5/NEWS new/fuse-overlayfs-0.7.6/NEWS --- old/fuse-overlayfs-0.7.5/NEWS 2020-01-17 22:02:54.000000000 +0100 +++ new/fuse-overlayfs-0.7.6/NEWS 2020-02-03 15:23:46.000000000 +0100 @@ -1,3 +1,8 @@ +* fuse-overlayfs-0.7.6 + +- do not look in lower layers for the ino if there is no origin xattr set. +- attempt to use the file path if the operation on the fd fails with ENXIO. + * fuse-overlayfs-0.7.5 - do not expose internal xattrs through listxattr and getxattr. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-overlayfs-0.7.5/configure.ac new/fuse-overlayfs-0.7.6/configure.ac --- old/fuse-overlayfs-0.7.5/configure.ac 2020-01-17 22:02:54.000000000 +0100 +++ new/fuse-overlayfs-0.7.6/configure.ac 2020-02-03 15:23:46.000000000 +0100 @@ -1,5 +1,5 @@ AC_PREREQ([2.69]) -AC_INIT([fuse-overlayfs], [0.7.5], [[email protected]]) +AC_INIT([fuse-overlayfs], [0.7.6], [[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-0.7.5/main.c new/fuse-overlayfs-0.7.6/main.c --- old/fuse-overlayfs-0.7.5/main.c 2020-01-17 22:02:54.000000000 +0100 +++ new/fuse-overlayfs-0.7.6/main.c 2020-02-03 15:23:46.000000000 +0100 @@ -1,7 +1,7 @@ /* fuse-overlayfs: Overlay Filesystem in Userspace Copyright (C) 2018 Giuseppe Scrivano <[email protected]> - Copyright (C) 2018-2019 Red Hat Inc. + Copyright (C) 2018-2020 Red Hat Inc. Copyright (C) 2001-2007 Miklos Szeredi <[email protected]> This program is free software: you can redistribute it and/or modify @@ -464,6 +464,22 @@ } static int +set_fd_origin (int fd, const char *origin) +{ + cleanup_close int opq_whiteout_fd = -1; + size_t len = strlen (origin) + 1; + int ret; + + ret = fsetxattr (fd, ORIGIN_XATTR, origin, len, 0); + if (ret < 0) + { + if (errno == ENOTSUP) + return 0; + } + return ret; +} + +static int set_fd_opaque (int fd) { cleanup_close int opq_whiteout_fd = -1; @@ -1153,6 +1169,7 @@ mode_t mode = 0; char *new_name; struct ovl_node *ret_xchg; + bool has_origin = true; cleanup_node_init struct ovl_node *ret = NULL; ret = calloc (1, sizeof (*ret)); @@ -1233,10 +1250,13 @@ { if (it->ds->statat (it, npath, &st, AT_SYMLINK_NOFOLLOW, STATX_TYPE|STATX_MODE|STATX_INO) == 0) { - ret->tmp_ino = st.st_ino; - ret->tmp_dev = st.st_dev; - if (mode == 0) - mode = st.st_mode; + if (has_origin) + { + ret->tmp_ino = st.st_ino; + ret->tmp_dev = st.st_dev; + if (mode == 0) + mode = st.st_mode; + } ret->last_layer = it; } goto no_fd; @@ -1245,10 +1265,13 @@ /* It is an open FD, stat the file and read the origin xattrs. */ if (it->ds->fstat (it, fd, npath, STATX_TYPE|STATX_MODE|STATX_INO, &st) == 0) { - ret->tmp_ino = st.st_ino; - ret->tmp_dev = st.st_dev; - if (mode == 0) - mode = st.st_mode; + if (has_origin) + { + ret->tmp_ino = st.st_ino; + ret->tmp_dev = st.st_dev; + if (mode == 0) + mode = st.st_mode; + } ret->last_layer = it; } @@ -1292,7 +1315,9 @@ /* If an origin is specified, use it for the next layer lookup. */ s = safe_read_xattr (&origin, fd, ORIGIN_XATTR, PATH_MAX); - if (s > 0) + if (s <= 0) + has_origin = false; + else { free (npath); npath = origin; @@ -2692,6 +2717,9 @@ if (ret < 0) goto exit; + if (set_fd_origin (dfd, node->path) < 0) + goto exit; + /* Finally, move the file to its destination. */ ret = renameat (lo->workdir_fd, wd_tmp_file_name, get_upper_layer (lo)->fd, node->path); if (ret < 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-overlayfs-0.7.5/utils.c new/fuse-overlayfs-0.7.6/utils.c --- old/fuse-overlayfs-0.7.5/utils.c 2020-01-17 22:02:54.000000000 +0100 +++ new/fuse-overlayfs-0.7.6/utils.c 2020-02-03 15:23:46.000000000 +0100 @@ -146,7 +146,7 @@ out[0] = '\0'; *fd = l->ds->openat (l, path, O_NONBLOCK|O_NOFOLLOW|flags, 0755); - if (*fd < 0 && (errno == ELOOP || errno == EISDIR)) + if (*fd < 0 && (errno == ELOOP || errno == EISDIR || errno == ENXIO)) { strconcat3 (out, PATH_MAX, l->path, "/", path); return 0;
