Hello community, here is the log from the commit of package disorderfs for openSUSE:Factory checked in at 2018-10-26 11:09:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/disorderfs (Old) and /work/SRC/openSUSE:Factory/.disorderfs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "disorderfs" Fri Oct 26 11:09:48 2018 rev:4 rq:644519 version:0.5.5 Changes: -------- --- /work/SRC/openSUSE:Factory/disorderfs/disorderfs.changes 2018-09-17 14:27:07.391747265 +0200 +++ /work/SRC/openSUSE:Factory/.disorderfs.new/disorderfs.changes 2018-10-26 11:09:55.497747174 +0200 @@ -1,0 +2,8 @@ +Thu Oct 25 07:57:26 UTC 2018 - [email protected] + +- Update to 0.5.5 + * Allow tar and touch -m to update mtime of files + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911281 + * Drop upstream xattr.patch + +------------------------------------------------------------------- @@ -5,0 +14 @@ + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898287 Old: ---- disorderfs-0.5.3.tar.bz2 disorderfs-0.5.3.tar.bz2.asc xattr.patch New: ---- disorderfs-0.5.5.tar.bz2 disorderfs-0.5.5.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ disorderfs.spec ++++++ --- /var/tmp/diff_new_pack.b7MkX4/_old 2018-10-26 11:09:55.977746524 +0200 +++ /var/tmp/diff_new_pack.b7MkX4/_new 2018-10-26 11:09:55.977746524 +0200 @@ -17,7 +17,7 @@ Name: disorderfs -Version: 0.5.3 +Version: 0.5.5 Release: 0 Summary: FUSE filesystem that introduces non-determinism License: GPL-3.0+ @@ -26,7 +26,6 @@ Source0: https://reproducible-builds.org/_lfs/releases/%{name}/%{name}-%{version}.tar.bz2 Source1: https://reproducible-builds.org/_lfs/releases/%{name}/%{name}-%{version}.tar.bz2.asc Source2: %{name}.keyring -Patch0: xattr.patch BuildRequires: asciidoc BuildRequires: gcc-c++ BuildRequires: pkgconfig @@ -42,7 +41,6 @@ %prep %setup -q -%patch0 -p1 %build make %{?_smp_mflags} ++++++ disorderfs-0.5.3.tar.bz2 -> disorderfs-0.5.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/disorderfs-0.5.3/README new/disorderfs-0.5.5/README --- old/disorderfs-0.5.3/README 2018-05-12 18:51:47.000000000 +0200 +++ new/disorderfs-0.5.5/README 2018-10-24 22:24:45.000000000 +0200 @@ -10,9 +10,7 @@ After releasing, please also release a signed tarball: $ VERSION=FIXME - $ git archive --format=tar --prefix=disorderfs-${VERSION}/ ${VERSION} | bzip2 -9 > disorderfs-${VERSION}.tar.bz2 - $ gpg --detach-sig --armor --output=disorderfs-${VERSION}.tar.bz2.asc < disorderfs-${VERSION}.tar.bz2 - $ scp disorderfs-${VERSION}* alioth.debian.org:/home/groups/reproducible/htdocs/releases/disorderfs +And commit them to our LFS repository at https://salsa.debian.org/reproducible-builds/reproducible-lfs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/disorderfs-0.5.3/disorderfs.cpp new/disorderfs-0.5.5/disorderfs.cpp --- old/disorderfs-0.5.3/disorderfs.cpp 2018-05-12 18:51:47.000000000 +0200 +++ new/disorderfs-0.5.5/disorderfs.cpp 2018-10-24 22:24:45.000000000 +0200 @@ -37,13 +37,13 @@ #include <vector> #include <random> #include <algorithm> -#include <attr/xattr.h> +#include <sys/xattr.h> #include <sys/types.h> #include <sys/syscall.h> #include <sys/file.h> #include <stddef.h> -#define DISORDERFS_VERSION "0.5.3" +#define DISORDERFS_VERSION "0.5.5" namespace { std::vector<std::string> bare_arguments; @@ -293,6 +293,12 @@ * Initialize disorderfs_fuse_operations */ + /* + * Indicate that we should accept UTIME_OMIT (and UTIME_NOW) in the + * utimens operations for "touch -m" and "touch -a" + */ + disorderfs_fuse_operations.flag_utime_omit_ok = 1; + disorderfs_fuse_operations.getattr = [] (const char* path, struct stat* st) -> int { Guard g; if (lstat((root + path).c_str(), st) == -1) { @@ -425,12 +431,14 @@ if (!d) { return -errno; } - struct dirent dirent_storage; struct dirent* dirent_p; - int res; - while ((res = readdir_r(d, &dirent_storage, &dirent_p)) == 0 && dirent_p) { + errno = 0; + while ((dirent_p = readdir(d)) != NULL) { dirents->emplace_back(std::make_pair(dirent_p->d_name, dirent_p->d_ino)); } + if (errno != 0) { + return -errno; + } if (config.sort_dirents) { std::sort(dirents->begin(), dirents->end()); } @@ -438,8 +446,8 @@ std::reverse(dirents->begin(), dirents->end()); } closedir(d); - if (res != 0) { - return -res; + if (errno != 0) { + return -errno; } set_fuse_data<Dirents*>(info, dirents.release()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/disorderfs-0.5.3/tests/touch new/disorderfs-0.5.5/tests/touch --- old/disorderfs-0.5.3/tests/touch 1970-01-01 01:00:00.000000000 +0100 +++ new/disorderfs-0.5.5/tests/touch 2018-10-24 22:24:45.000000000 +0200 @@ -0,0 +1,36 @@ +#!/bin/sh +# Test for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911281 + +. ./common + +Mount + +EXPECTED="12345678" +FILENAME="target/a" + +touch ${FILENAME} +touch -d @${EXPECTED} ${FILENAME} +RESULT="$(stat --format=%X-%Y ${FILENAME})" +if [ "${RESULT}" != "${EXPECTED}-${EXPECTED}" ] +then + Fail "test1: Got=${RESULT} Expected=${EXPECTED}" +fi + +# This is what tar xf does for extracted files via futimens(2) +touch ${FILENAME} +touch -m -d @${EXPECTED} ${FILENAME} +RESULT="$(stat --format=%Y ${FILENAME})" +if [ "${RESULT}" != "${EXPECTED}" ] +then + Fail "test2: Got=${RESULT} Expected=${EXPECTED}" +fi + +touch ${FILENAME} +touch -a -d @${EXPECTED} ${FILENAME} +RESULT="$(stat --format=%X ${FILENAME})" +if [ "${RESULT}" != "${EXPECTED}" ] +then + Fail "test3: Got=${RESULT} Expected=${EXPECTED}" +fi + +Unmount
