Hello community, here is the log from the commit of package bindfs for openSUSE:Factory checked in at 2013-12-02 07:19:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bindfs (Old) and /work/SRC/openSUSE:Factory/.bindfs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "bindfs" Changes: -------- --- /work/SRC/openSUSE:Factory/bindfs/bindfs.changes 2013-08-23 11:07:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.bindfs.new/bindfs.changes 2013-12-02 07:19:39.000000000 +0100 @@ -1,0 +2,6 @@ +Sun Nov 24 11:14:15 UTC 2013 - jengelh@inai.de + +- Update to new upstream release 1.12.3 +* Implement fuse_utimens instead of fuse_utime + +------------------------------------------------------------------- Old: ---- bindfs-1.12.2.tar.xz New: ---- bindfs-1.12.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bindfs.spec ++++++ --- /var/tmp/diff_new_pack.wEUzFp/_old 2013-12-02 07:19:40.000000000 +0100 +++ /var/tmp/diff_new_pack.wEUzFp/_new 2013-12-02 07:19:40.000000000 +0100 @@ -17,23 +17,23 @@ Name: bindfs -Version: 1.12.2 +Version: 1.12.3 Release: 0 Summary: Mount Directories to other Locations and alter Permission Bits License: GPL-2.0+ Group: System/Filesystems -Url: http://code.google.com/p/bindfs/ +Url: http://bindfs.org/ #Git-Clone: git://github.com/mpartel/bindfs -#DL-URL: http://bindfs.org/downloads/bindfs-1.12.2.tar.gz +#DL-URL: http://bindfs.org/downloads/bindfs-1.12.3.tar.gz Source: %name-%version.tar.xz BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: pkgconfig BuildRequires: xz %if 0%{?suse_version} >= 1140 || 0%{?fedora_version} -BuildRequires: pkgconfig(fuse) >= 2.5.3 +BuildRequires: pkgconfig(fuse) >= 2.6.0 %else -BuildRequires: fuse-devel >= 2.5.3 +BuildRequires: fuse-devel >= 2.6.0 %endif %description ++++++ bindfs-1.12.2.tar.xz -> bindfs-1.12.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/.gitignore new/bindfs-1.12.3/.gitignore --- old/bindfs-1.12.2/.gitignore 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/.gitignore 2013-09-23 22:59:23.000000000 +0200 @@ -34,6 +34,7 @@ src/bindfs tests/readdir_inode +tests/utimens_nofollow tests/*.log tests/internals/test_internals tests/internals/*.log diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/ChangeLog new/bindfs-1.12.3/ChangeLog --- old/bindfs-1.12.2/ChangeLog 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/ChangeLog 2013-09-23 22:59:23.000000000 +0200 @@ -1,7 +1,19 @@ +2013-09-23 Martin Pärtel <martin dot partel at gmail dot com> + + * Use `utimensat` to support settings mtime/atime on symlinks, + and with nanosecond precision. + * Any "utime" errors when untarring with a modern version of `tar` + should now be fixed. + * Time modifications seem to no longer get caught in FUSE's + attribute cache. + * Now using FUSE API version 26. + * Released 1.12.3 + 2013-07-22 Martin Pärtel <martin dot partel at gmail dot com> * Added --chmod-filter, contributed by Anton Ageev. Thanks! * Released 1.12.2 + * Project home page is now bindfs.org 2013-05-08 Martin Pärtel <martin dot partel at gmail dot com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/README new/bindfs-1.12.3/README --- old/bindfs-1.12.2/README 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/README 2013-09-23 22:59:23.000000000 +0200 @@ -1,5 +1,5 @@ -bindfs - http://code.google.com/p/bindfs/ +bindfs - http://bindfs.org/ -- Overview -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/configure new/bindfs-1.12.3/configure --- old/bindfs-1.12.2/configure 2013-07-22 10:17:22.000000000 +0200 +++ new/bindfs-1.12.3/configure 2013-09-23 22:59:27.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for bindfs 1.12.2. +# Generated by GNU Autoconf 2.68 for bindfs 1.12.3. # # Report bugs to <martin.partel@gmail.com>. # @@ -570,8 +570,8 @@ # Identity of this package. PACKAGE_NAME='bindfs' PACKAGE_TARNAME='bindfs' -PACKAGE_VERSION='1.12.2' -PACKAGE_STRING='bindfs 1.12.2' +PACKAGE_VERSION='1.12.3' +PACKAGE_STRING='bindfs 1.12.3' PACKAGE_BUGREPORT='martin.partel@gmail.com' PACKAGE_URL='' @@ -1302,7 +1302,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bindfs 1.12.2 to adapt to many kinds of systems. +\`configure' configures bindfs 1.12.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1372,7 +1372,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bindfs 1.12.2:";; + short | recursive ) echo "Configuration of bindfs 1.12.3:";; esac cat <<\_ACEOF @@ -1484,7 +1484,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bindfs configure 1.12.2 +bindfs configure 1.12.3 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1762,7 +1762,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bindfs $as_me 1.12.2, which was +It was created by bindfs $as_me 1.12.3, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2578,7 +2578,7 @@ # Define the identity of the package. PACKAGE='bindfs' - VERSION='1.12.2' + VERSION='1.12.3' cat >>confdefs.h <<_ACEOF @@ -11240,7 +11240,7 @@ LDFLAGS="${LDFLAGS} -framework CoreFoundation" fi -my_CPPFLAGS="-D_REENTRANT -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=25" +my_CPPFLAGS="-D_REENTRANT -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26" my_CFLAGS="$my_CFLAGS -Wall" my_LDFLAGS="-pthread" @@ -11403,12 +11403,12 @@ pkg_cv_fuse_CFLAGS="$fuse_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fuse >= 2.5.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "fuse >= 2.5.3") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fuse >= 2.6.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "fuse >= 2.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_fuse_CFLAGS=`$PKG_CONFIG --cflags "fuse >= 2.5.3" 2>/dev/null` + pkg_cv_fuse_CFLAGS=`$PKG_CONFIG --cflags "fuse >= 2.6.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -11420,12 +11420,12 @@ pkg_cv_fuse_LIBS="$fuse_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fuse >= 2.5.3\""; } >&5 - ($PKG_CONFIG --exists --print-errors "fuse >= 2.5.3") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fuse >= 2.6.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "fuse >= 2.6.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_fuse_LIBS=`$PKG_CONFIG --libs "fuse >= 2.5.3" 2>/dev/null` + pkg_cv_fuse_LIBS=`$PKG_CONFIG --libs "fuse >= 2.6.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -11446,14 +11446,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - fuse_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "fuse >= 2.5.3" 2>&1` + fuse_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "fuse >= 2.6.0" 2>&1` else - fuse_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "fuse >= 2.5.3" 2>&1` + fuse_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "fuse >= 2.6.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$fuse_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (fuse >= 2.5.3) were not met: + as_fn_error $? "Package requirements (fuse >= 2.6.0) were not met: $fuse_PKG_ERRORS @@ -12022,7 +12022,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bindfs $as_me 1.12.2, which was +This file was extended by bindfs $as_me 1.12.3, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12088,7 +12088,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -bindfs config.status 1.12.2 +bindfs config.status 1.12.3 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/configure.ac new/bindfs-1.12.3/configure.ac --- old/bindfs-1.12.2/configure.ac 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/configure.ac 2013-09-23 22:59:23.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([bindfs],[1.12.2],[martin.partel@gmail.com]) +AC_INIT([bindfs],[1.12.3],[martin.partel@gmail.com]) AM_INIT_AUTOMAKE([foreign]) AM_CONFIG_HEADER(config.h) @@ -31,7 +31,7 @@ LDFLAGS="${LDFLAGS} -framework CoreFoundation" fi -my_CPPFLAGS="-D_REENTRANT -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=25" +my_CPPFLAGS="-D_REENTRANT -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26" my_CFLAGS="$my_CFLAGS -Wall" my_LDFLAGS="-pthread" AC_SUBST([my_CPPFLAGS]) @@ -43,7 +43,7 @@ AC_CHECK_FUNCS([lsetxattr lgetxattr llistxattr lremovexattr]) # Check for fuse -PKG_CHECK_MODULES([fuse], [fuse >= 2.5.3]) +PKG_CHECK_MODULES([fuse], [fuse >= 2.6.0]) AC_CONFIG_FILES([Makefile \ src/Makefile \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/releasescript/.gitignore new/bindfs-1.12.3/releasescript/.gitignore --- old/bindfs-1.12.2/releasescript/.gitignore 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/releasescript/.gitignore 2013-09-23 22:59:23.000000000 +0200 @@ -1,5 +1,2 @@ /bindfs-*.tar.gz -/bindfs.1 -/bindfs.1.html -/bindfs-ChangeLog.txt -/bindfs-help.txt +/docs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/releasescript/makerelease.sh new/bindfs-1.12.3/releasescript/makerelease.sh --- old/bindfs-1.12.2/releasescript/makerelease.sh 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/releasescript/makerelease.sh 2013-09-23 22:59:23.000000000 +0200 @@ -36,11 +36,12 @@ tar cvzf "bindfs-${VERSION}.tar.gz" "bindfs-$VERSION" # Get the change log and man-page -cp "bindfs-$VERSION/ChangeLog" ./bindfs-ChangeLog.txt -cp "bindfs-$VERSION/src/bindfs.1" ./bindfs.1 +mkdir -p ./docs +cp "bindfs-$VERSION/ChangeLog" ./docs/ChangeLog.utf8.txt +cp "bindfs-$VERSION/src/bindfs.1" ./docs/bindfs.1 # Create the HTML man page -rman -f HTML -r "" bindfs.1 > bindfs.1.html +rman -f HTML -r "" docs/bindfs.1 > docs/bindfs.1.html # Compile the source pushd "bindfs-$VERSION" @@ -49,14 +50,11 @@ popd # Get the bindfs --help text -"bindfs-$VERSION/src/bindfs" --help > bindfs-help.txt +"bindfs-$VERSION/src/bindfs" --help > docs/bindfs-help.txt # Copy products to original dir cp -r "bindfs-$VERSION.tar.gz" \ - bindfs-ChangeLog.txt \ - bindfs.1 \ - bindfs.1.html \ - bindfs-help.txt \ + docs \ "$OUTPUTDIR/" # Clean up and we're done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/src/bindfs.1 new/bindfs-1.12.3/src/bindfs.1 --- old/bindfs-1.12.2/src/bindfs.1 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/src/bindfs.1 2013-09-23 22:59:23.000000000 +0200 @@ -370,10 +370,8 @@ permissions on new files. For this reason, as of version 1.11 bindfs runs in single-threaded mode by default. -Please report bugs to the issue tracker on the project home page at -\fBhttp://code.google.com/p/bindfs/\fP -Send patches as pull requests to \fBhttps://github.com/mpartel/bindfs\fP or -by e-mail to \fBmartin dot partel at gmail dot com\fP. +Please report bugs and/or send pull requests to +\fBhttps://github.com/mpartel/bindfs/issues\fP. .SH DEPRECATIONS @@ -392,5 +390,5 @@ .SH SEE ALSO -\fBchmod\fP(1), \fBfusermount\fP(1) +\fBchmod\fP(1), \fBfusermount\fP(1), \fBhttp://bindfs.org/\fP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/src/bindfs.c new/bindfs-1.12.3/src/bindfs.c --- old/bindfs-1.12.2/src/bindfs.c 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/src/bindfs.c 2013-09-23 22:59:23.000000000 +0200 @@ -31,8 +31,8 @@ #include <config.h> -/* For pread/pwrite and readdir_r */ -#define _XOPEN_SOURCE 500 +/* For >= 500 for pread/pwrite and readdir_r; >= 700 for utimensat */ +#define _XOPEN_SOURCE 700 #include <stdlib.h> #include <stddef.h> @@ -177,7 +177,7 @@ static int bindfs_truncate(const char *path, off_t size); static int bindfs_ftruncate(const char *path, off_t size, struct fuse_file_info *fi); -static int bindfs_utime(const char *path, struct utimbuf *buf); +static int bindfs_utimens(const char *path, const struct timespec tv[2]); static int bindfs_create(const char *path, mode_t mode, struct fuse_file_info *fi); static int bindfs_open(const char *path, struct fuse_file_info *fi); static int bindfs_read(const char *path, char *buf, size_t size, off_t offset, @@ -690,13 +690,13 @@ return 0; } -static int bindfs_utime(const char *path, struct utimbuf *buf) +static int bindfs_utimens(const char *path, const struct timespec tv[2]) { int res; path = process_path(path); - res = utime(path, buf); + res = utimensat(settings.mntsrc_fd, path, tv, AT_SYMLINK_NOFOLLOW); if (res == -1) return -errno; @@ -906,7 +906,7 @@ .chown = bindfs_chown, .truncate = bindfs_truncate, .ftruncate = bindfs_ftruncate, - .utime = bindfs_utime, + .utimens = bindfs_utimens, .create = bindfs_create, .open = bindfs_open, .read = bindfs_read, @@ -1597,7 +1597,7 @@ /* fuse_main will daemonize by fork()'ing. The signal handler will persist. */ setup_signal_handling(); - fuse_main_return = fuse_main(args.argc, args.argv, &bindfs_oper); + fuse_main_return = fuse_main(args.argc, args.argv, &bindfs_oper, NULL); fuse_opt_free_args(&args); close(settings.mntsrc_fd); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/tests/Makefile.am new/bindfs-1.12.3/tests/Makefile.am --- old/bindfs-1.12.2/tests/Makefile.am 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/tests/Makefile.am 2013-09-23 22:59:23.000000000 +0200 @@ -1,6 +1,7 @@ -noinst_PROGRAMS = readdir_inode +noinst_PROGRAMS = readdir_inode utimens_nofollow readdir_inode_SOURCES = readdir_inode.c +utimens_nofollow_SOURCES = utimens_nofollow.c TESTS = test_bindfs.rb SUBDIRS = internals diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/tests/Makefile.in new/bindfs-1.12.3/tests/Makefile.in --- old/bindfs-1.12.2/tests/Makefile.in 2013-07-22 10:17:23.000000000 +0200 +++ new/bindfs-1.12.3/tests/Makefile.in 2013-09-23 22:59:28.000000000 +0200 @@ -34,7 +34,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = readdir_inode$(EXEEXT) +noinst_PROGRAMS = readdir_inode$(EXEEXT) utimens_nofollow$(EXEEXT) subdir = tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -49,6 +49,9 @@ am_readdir_inode_OBJECTS = readdir_inode.$(OBJEXT) readdir_inode_OBJECTS = $(am_readdir_inode_OBJECTS) readdir_inode_LDADD = $(LDADD) +am_utimens_nofollow_OBJECTS = utimens_nofollow.$(OBJEXT) +utimens_nofollow_OBJECTS = $(am_utimens_nofollow_OBJECTS) +utimens_nofollow_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -62,8 +65,8 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ -SOURCES = $(readdir_inode_SOURCES) -DIST_SOURCES = $(readdir_inode_SOURCES) +SOURCES = $(readdir_inode_SOURCES) $(utimens_nofollow_SOURCES) +DIST_SOURCES = $(readdir_inode_SOURCES) $(utimens_nofollow_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ @@ -229,6 +232,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ readdir_inode_SOURCES = readdir_inode.c +utimens_nofollow_SOURCES = utimens_nofollow.c TESTS = test_bindfs.rb SUBDIRS = internals all: all-recursive @@ -277,6 +281,9 @@ readdir_inode$(EXEEXT): $(readdir_inode_OBJECTS) $(readdir_inode_DEPENDENCIES) $(EXTRA_readdir_inode_DEPENDENCIES) @rm -f readdir_inode$(EXEEXT) $(LINK) $(readdir_inode_OBJECTS) $(readdir_inode_LDADD) $(LIBS) +utimens_nofollow$(EXEEXT): $(utimens_nofollow_OBJECTS) $(utimens_nofollow_DEPENDENCIES) $(EXTRA_utimens_nofollow_DEPENDENCIES) + @rm -f utimens_nofollow$(EXEEXT) + $(LINK) $(utimens_nofollow_OBJECTS) $(utimens_nofollow_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -285,6 +292,7 @@ -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readdir_inode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utimens_nofollow.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/tests/test_bindfs.rb new/bindfs-1.12.3/tests/test_bindfs.rb --- old/bindfs-1.12.2/tests/test_bindfs.rb 2013-07-22 10:17:18.000000000 +0200 +++ new/bindfs-1.12.3/tests/test_bindfs.rb 2013-09-23 22:59:23.000000000 +0200 @@ -371,6 +371,21 @@ assert { File.stat('mnt/dir/file').gid == $nogroup_gid } end +root_testenv("", :title => "utimens on symlinks") do + touch('mnt/file') + Dir.chdir "mnt" do + system('ln -sf file link') + end + + system("#{$tests_dir}/utimens_nofollow mnt/link 12 34 56 78") + raise "Failed to run utimens_nofollow: #{$?.inspect}" unless $?.success? + + assert { File.lstat('mnt/link').atime.to_i < 100 } + assert { File.lstat('mnt/link').mtime.to_i < 100 } + assert { File.lstat('mnt/file').atime.to_i > 100 } + assert { File.lstat('mnt/file').mtime.to_i > 100 } +end + # FIXME: this stuff around testenv is a hax, and testenv may also exit(), which defeats the 'ensure' below. # the test setup ought to be refactored. It might well use MiniTest or something. if Process.uid == 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bindfs-1.12.2/tests/utimens_nofollow.c new/bindfs-1.12.3/tests/utimens_nofollow.c --- old/bindfs-1.12.2/tests/utimens_nofollow.c 1970-01-01 01:00:00.000000000 +0100 +++ new/bindfs-1.12.3/tests/utimens_nofollow.c 2013-09-23 22:59:23.000000000 +0200 @@ -0,0 +1,32 @@ + +#define _BSD_SOURCE /* For atoll */ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <errno.h> + +int main(int argc, char* argv[]) +{ + struct timespec times[2]; + + if (argc != 6) { + fprintf(stderr, "Usage: utimens_nofollow path atime atime_nsec mtime mtime_nsec\n"); + return 1; + } + + times[0].tv_sec = (time_t)atoll(argv[2]); + times[0].tv_nsec = atoll(argv[3]); + times[1].tv_sec = (time_t)atoll(argv[4]); + times[1].tv_nsec = atoll(argv[5]); + + if (utimensat(AT_FDCWD, argv[1], times, AT_SYMLINK_NOFOLLOW) == -1) { + perror("failed to utimensat the given path"); + return 2; + } + + return 0; +} -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de