Hello community, here is the log from the commit of package archivemount for openSUSE:Factory checked in at 2015-03-25 10:00:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/archivemount (Old) and /work/SRC/openSUSE:Factory/.archivemount.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "archivemount" Changes: -------- --- /work/SRC/openSUSE:Factory/archivemount/archivemount.changes 2014-12-21 12:04:24.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.archivemount.new/archivemount.changes 2015-03-25 10:00:28.000000000 +0100 @@ -1,0 +2,13 @@ +Sun Mar 22 18:16:43 UTC 2015 - [email protected] + +- Update to 0.8.4 + * added option -o formatraw for readonly support of the + FormatRaw archive files supported by libarchive (kudos to Lee + Leahu) + * bugfix: do not do the fuse mount when the archive cannot be read + (also kudos to Lee Leahu) +- Cleanup spec file with spec-cleaner +- Adapt patch to upstream changes + * archivemount-0.8.3.dif to archivemount-0.8.4.dif + +------------------------------------------------------------------- Old: ---- archivemount-0.8.3.dif archivemount-0.8.3.tar.gz New: ---- archivemount-0.8.4.dif archivemount-0.8.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ archivemount.spec ++++++ --- /var/tmp/diff_new_pack.86YUgF/_old 2015-03-25 10:00:29.000000000 +0100 +++ /var/tmp/diff_new_pack.86YUgF/_new 2015-03-25 10:00:29.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package archivemount # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,20 +15,21 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: archivemount -Version: 0.8.3 +Version: 0.8.4 Release: 0 -Summary: Archivemount - mounts an archive for access as a file system -Group: Productivity/Archiving/Compression +Summary: Mounts an archive for access as a file system License: LGPL-2.1+ and BSD-2-Clause +Group: Productivity/Archiving/Compression Url: http://www.cybernoia.de/software/archivemount/ +Source: http://www.cybernoia.de/software/archivemount/%{name}-%{version}.tar.gz +Patch0: archivemount-%{version}.dif BuildRequires: autoconf BuildRequires: automake BuildRequires: fuse-devel BuildRequires: libarchive-devel BuildRequires: pkg-config -Source: http://www.cybernoia.de/software/archivemount/%{name}-%{version}.tar.gz -Patch: archivemount-%{version}.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -38,7 +39,7 @@ %prep %setup -q -%patch +%patch0 %build cflags () @@ -96,7 +97,7 @@ make %{?_smp_mflags} %install -%makeinstall +make DESTDIR=%{buildroot} install %{?_smp_mflags} %files %defattr(-,root,root,0755) ++++++ archivemount-0.8.3.dif -> archivemount-0.8.4.dif ++++++ --- /work/SRC/openSUSE:Factory/archivemount/archivemount-0.8.3.dif 2014-12-21 12:04:24.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.archivemount.new/archivemount-0.8.4.dif 2015-03-25 10:00:28.000000000 +0100 @@ -1,6 +1,8 @@ ---- archivemount.c -+++ archivemount.c 2012-10-22 10:06:32.970796667 +0000 -@@ -2488,7 +2488,8 @@ +Index: archivemount.c +=================================================================== +--- archivemount.c.orig ++++ archivemount.c +@@ -2539,7 +2539,8 @@ main( int argc, char **argv ) #endif /* go back to saved dir */ @@ -10,17 +12,19 @@ /* save changes if modified */ if( archiveWriteable && !options.readonly && archiveModified && !options.nosave ) { ---- configure.ac -+++ configure.ac 2012-10-22 09:31:04.098425692 +0000 +Index: configure.ac +=================================================================== +--- configure.ac.orig ++++ configure.ac @@ -3,6 +3,7 @@ - AC_INIT([archivemount],[0.8.3], [[email protected]]) + AC_INIT([archivemount],[0.8.4], [[email protected]]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_PROG_CC +AM_PROG_CC_C_O AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile archivemount.1]) -@@ -11,8 +12,6 @@ +@@ -11,8 +12,6 @@ AC_CONFIG_FILES([Makefile archivemount.1 RELEASE_DATE="15 August 2013" AC_SUBST(RELEASE_DATE) @@ -29,4 +33,3 @@ # Check for libfuse PKG_CHECK_EXISTS(fuse) PKG_CHECK_MODULES([FUSE], [fuse >= 2.6],, - \ No newline at end of file ++++++ archivemount-0.8.3.tar.gz -> archivemount-0.8.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/CHANGELOG new/archivemount-0.8.4/CHANGELOG --- old/archivemount-0.8.3/CHANGELOG 2013-10-24 06:56:59.000000000 +0200 +++ new/archivemount-0.8.4/CHANGELOG 2015-02-27 11:13:29.000000000 +0100 @@ -1,7 +1,12 @@ +* 0.8.4 - added option -o formatraw for readonly support of the FormatRaw + archive files supported by libarchive (kudos to Lee Leahu) + - bugfix: do not do the fuse mount when the archive cannot be read + (also kudos to Lee Leahu) * 0.8.3 - do not call fuse_main anymore - force fuse into single-threaded mode due to libarchive not being thread-safe - Both patches contributed by Timothy Hobbs <[email protected]> + Both patches contributed by Timothy Hobbs <[email protected]>, + who found them in the Fedora RPM. * 0.8.2 - added nosave option, contributed by Timothy Hobbs <[email protected]> * 0.8.1 - added missing header file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/Makefile.in new/archivemount-0.8.4/Makefile.in --- old/archivemount-0.8.3/Makefile.in 2013-10-24 06:54:19.000000000 +0200 +++ new/archivemount-0.8.4/Makefile.in 2015-02-27 11:07:24.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -658,9 +658,10 @@ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/aclocal.m4 new/archivemount-0.8.4/aclocal.m4 --- old/archivemount-0.8.3/aclocal.m4 2013-10-24 06:54:17.000000000 +0200 +++ new/archivemount-0.8.4/aclocal.m4 2015-02-27 11:07:21.000000000 +0100 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -195,7 +195,7 @@ [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14], [], +m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -211,7 +211,7 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14])dnl +[AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/archivemount.1 new/archivemount-0.8.4/archivemount.1 --- old/archivemount-0.8.3/archivemount.1 2013-10-24 06:57:34.000000000 +0200 +++ new/archivemount-0.8.4/archivemount.1 2015-02-27 11:19:19.000000000 +0100 @@ -1,7 +1,7 @@ \" Process this file with .\" groff -man -Tascii archivemount.1 .\" -.TH ARCHIVEMOUNT "1" "15 August 2013" "ARCHIVEMOUNT version 0.8.3" "User Commands" +.TH ARCHIVEMOUNT "1" "15 August 2013" "ARCHIVEMOUNT version 0.8.4" "User Commands" .SH NAME archivemount \- mounts an archive for access as a file system .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/archivemount.c new/archivemount-0.8.4/archivemount.c --- old/archivemount-0.8.3/archivemount.c 2013-10-24 06:52:59.000000000 +0200 +++ new/archivemount-0.8.4/archivemount.c 2015-02-27 11:16:23.000000000 +0100 @@ -87,6 +87,7 @@ int nobackup; int nosave; char *subtree_filter; + int formatraw; }; enum @@ -103,6 +104,7 @@ AR_OPT("nobackup", nobackup, 1), AR_OPT("nosave" , nosave , 1), AR_OPT("subtree=%s", subtree_filter, 1), + AR_OPT("formatraw", formatraw, 1), FUSE_OPT_KEY("-V", KEY_VERSION), FUSE_OPT_KEY("--version", KEY_VERSION), @@ -164,6 +166,9 @@ "\n" " -o subtree=<regexp> use only subtree matching ^\\.\\?<regexp> from archive\n" " it implies readonly\n" + "\n" + " -o formatraw treat input as a single element archive\n" + " it implies readonly\n" "\n",progname); } @@ -395,9 +400,17 @@ fprintf( stderr, "%s\n", archive_error_string( archive ) ); return archive_errno( archive ); } - if( archive_read_support_format_all( archive ) != ARCHIVE_OK ) { - fprintf( stderr, "%s\n", archive_error_string( archive ) ); - return archive_errno( archive ); + if ( options.formatraw ) { + if( archive_read_support_format_raw( archive ) != ARCHIVE_OK ) { + fprintf( stderr, "%s\n", archive_error_string( archive ) ); + return archive_errno( archive ); + } + options.readonly = 1; + } else { + if( archive_read_support_format_all( archive ) != ARCHIVE_OK ) { + fprintf( stderr, "%s\n", archive_error_string( archive ) ); + return archive_errno( archive ); + } } if( archive_read_open_fd( archive, archiveFd, 10240 ) != ARCHIVE_OK ) { fprintf( stderr, "%s\n", archive_error_string( archive ) ); @@ -1095,11 +1108,21 @@ archive_error_string( archive ), archive_ret ); return -EIO; } - archive_ret = archive_read_support_format_all( archive ); - if( archive_ret != ARCHIVE_OK ) { - log( "archive_read_support_format_all(): %s (%d)\n", - archive_error_string( archive ), archive_ret ); - return -EIO; + if ( options.formatraw ) { + archive_ret = archive_read_support_format_raw( archive ); + if( archive_ret != ARCHIVE_OK ) { + log( "archive_read_support_format_all(): %s (%d)\n", + archive_error_string( archive ), archive_ret ); + return -EIO; + } + options.readonly = 1; + } else { + archive_ret = archive_read_support_format_all( archive ); + if( archive_ret != ARCHIVE_OK ) { + log( "archive_read_support_format_all(): %s (%d)\n", + archive_error_string( archive ), archive_ret ); + return -EIO; + } } archive_ret = archive_read_open_fd( archive, archiveFd, 10240 ); if( archive_ret != ARCHIVE_OK ) { @@ -1178,10 +1201,26 @@ } static int +_ar_getsizeraw(const char *path) +{ + size_t bufsize = 1024 * 1024; + char *buf = malloc(bufsize+1); + off_t offset = 0, ret; + for (;;) { + ret = _ar_read( path, buf, bufsize, offset, NULL ); + if (ret <= 0) + break; + offset += ret; + } + return offset; +} + +static int _ar_getattr( const char *path, struct stat *stbuf ) { NODE *node; int ret; + int size; //log( "getattr called, path: '%s'", path ); node = get_node_for_path( root, path ); @@ -1194,8 +1233,18 @@ node->entry ), stbuf ); return ret; } - memcpy( stbuf, archive_entry_stat( node->entry ), - sizeof( struct stat ) ); + if ( options.formatraw && ! node->child ) { + fstat( archiveFd, stbuf ); + size = _ar_getsizeraw(path); + if (size < 0) + return -1; + stbuf->st_size = size; + } else { + memcpy( stbuf, archive_entry_stat( node->entry ), + sizeof( struct stat ) ); + if ( options.formatraw && node->child ) + stbuf->st_size = 4096; + } stbuf->st_blocks = (stbuf->st_size + 511) / 512; stbuf->st_blksize = 4096; @@ -2413,7 +2462,9 @@ perror( "opening archive failed" ); return EXIT_FAILURE; } - build_tree( mtpt ); + if ( build_tree( mtpt ) != 0 ) { + exit( EXIT_FAILURE ); + } /* save directory this was started from */ oldpwd = open( ".", 0 ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/configure new/archivemount-0.8.4/configure --- old/archivemount-0.8.3/configure 2013-10-24 06:54:18.000000000 +0200 +++ new/archivemount-0.8.4/configure 2015-02-27 11:07:22.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for archivemount 0.8.3. +# Generated by GNU Autoconf 2.69 for archivemount 0.8.4. # # Report bugs to <[email protected]>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='archivemount' PACKAGE_TARNAME='archivemount' -PACKAGE_VERSION='0.8.3' -PACKAGE_STRING='archivemount 0.8.3' +PACKAGE_VERSION='0.8.4' +PACKAGE_STRING='archivemount 0.8.4' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1280,7 +1280,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 archivemount 0.8.3 to adapt to many kinds of systems. +\`configure' configures archivemount 0.8.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1346,7 +1346,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of archivemount 0.8.3:";; + short | recursive ) echo "Configuration of archivemount 0.8.4:";; esac cat <<\_ACEOF @@ -1445,7 +1445,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -archivemount configure 0.8.3 +archivemount configure 0.8.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1747,7 +1747,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by archivemount $as_me 0.8.3, which was +It was created by archivemount $as_me 0.8.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2610,7 +2610,7 @@ # Define the identity of the package. PACKAGE='archivemount' - VERSION='0.8.3' + VERSION='0.8.4' cat >>confdefs.h <<_ACEOF @@ -5008,7 +5008,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by archivemount $as_me 0.8.3, which was +This file was extended by archivemount $as_me 0.8.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5074,7 +5074,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -archivemount config.status 0.8.3 +archivemount config.status 0.8.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/archivemount-0.8.3/configure.ac new/archivemount-0.8.4/configure.ac --- old/archivemount-0.8.3/configure.ac 2013-10-24 06:54:08.000000000 +0200 +++ new/archivemount-0.8.4/configure.ac 2015-02-27 11:06:55.000000000 +0100 @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script -AC_INIT([archivemount],[0.8.3], [[email protected]]) +AC_INIT([archivemount],[0.8.4], [[email protected]]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_PROG_CC -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
