Hello community,

here is the log from the commit of package fsvs for openSUSE:Factory checked in 
at 2020-08-18 15:12:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fsvs (Old)
 and      /work/SRC/openSUSE:Factory/.fsvs.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fsvs"

Tue Aug 18 15:12:35 2020 rev:13 rq:827572 version:1.2.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/fsvs/fsvs.changes        2017-06-15 
11:25:48.930883432 +0200
+++ /work/SRC/openSUSE:Factory/.fsvs.new.3399/fsvs.changes      2020-08-18 
15:12:50.236085044 +0200
@@ -1,0 +2,8 @@
+Mon Aug 17 12:44:42 UTC 2020 - Dirk Mueller <[email protected]>
+
+- update to 1.2.9:
+  - Various small fixes that got visible with new compiler versions and/or 
LLVM.
+  - Fixed URI canonicalization (UTF8)
+- refreshed patches fsvs-1.2.5-linking.patch, fsvs-destdir.patch
+
+-------------------------------------------------------------------

Old:
----
  fsvs-1.2.7.tar.bz2

New:
----
  fsvs-1.2.9.tar.bz2

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

Other differences:
------------------
++++++ fsvs.spec ++++++
--- /var/tmp/diff_new_pack.xAQbU0/_old  2020-08-18 15:12:51.396085524 +0200
+++ /var/tmp/diff_new_pack.xAQbU0/_new  2020-08-18 15:12:51.400085525 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package fsvs
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,17 +12,17 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           fsvs
-Version:        1.2.7
+Version:        1.2.9
 Release:        0
-Url:            http://fsvs.tigris.org/
 Summary:        Backup/Restore/Versioning of large Data Sets with Meta-Data
-License:        GPL-3.0+
+License:        GPL-3.0-or-later
 Group:          Productivity/Archiving/Backup
+URL:            http://fsvs.tigris.org/
 Source:         https://download.fsvs-software.org/fsvs-%{version}.tar.bz2
 Patch1:         fsvs-destdir.patch
 Patch2:         fsvs-1.2.5-linking.patch
@@ -47,7 +47,6 @@
 BuildRequires:  pkgconfig
 BuildRequires:  subversion-devel
 BuildRequires:  zlib-devel
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
 FSVS is the abbreviation for “Fast System VerSioning”, and is pronounced
@@ -58,13 +57,6 @@
 
 You may think of it as some kind of tar or rsync with versioned storage. 
 
-
-
-
-Author:
--------
-    Philipp Marek <[email protected]>
-
 %prep
 %setup -q
 %patch1
@@ -75,24 +67,24 @@
 export CFLAGS="%{optflags} $(pkg-config --includes apr-1)"
 export CFLAGS="$CFLAGS -fno-strict-aliasing -fgnu89-inline"
 %configure --disable-silent-rules
-%__make %{?jobs:-j%{jobs}}
+%make_build
 
 %install
-%makeinstall
+%make_install
 
-%__rm -rf doc/develop
+rm -rf doc/develop
 echo -n >manfiles.lst
 for p in doc/*.{1,5}; do
     f="${p##*/}"
     m="${f##*.}"
-    %__install -D -m0644 "$p" "%{buildroot}%{_mandir}/man${m}/${f}"
-    %__rm "$p"
+    install -D -m0644 "$p" "%{buildroot}%{_mandir}/man${m}/${f}"
+    rm "$p"
     echo "%doc %{_mandir}/man${m}/${f}"'*' >>manfiles.lst
 done
 
 %files -f manfiles.lst
-%defattr(-,root,root)
-%doc doc CHANGES LICENSE README
+%license LICENSE
+%doc doc CHANGES README
 %{_bindir}/fsvs
 
 %changelog

++++++ fsvs-1.2.5-linking.patch ++++++
--- /var/tmp/diff_new_pack.xAQbU0/_old  2020-08-18 15:12:51.420085534 +0200
+++ /var/tmp/diff_new_pack.xAQbU0/_new  2020-08-18 15:12:51.424085535 +0200
@@ -16,16 +16,16 @@
 ===================================================================
 --- src/Makefile.in.orig
 +++ src/Makefile.in
-@@ -16,7 +16,7 @@ HEADREV      := "$Revision: 2478 $"
+@@ -16,7 +16,7 @@ HEADREV      := "$Revision: 2506 $"
  VERSION       = $(shell  perl -e '($$r) = (q( $(HEADREV) ) =~ m:(\d+):); $$t= 
q( $(HEADURL) ) =~ m:/tags/([^/]+): ? $$1 : "trunk"; print "$$t:$$r\n";' )
  
  CFLAGS        := @CFLAGS@
--CFLAGS        += -Wall -funsigned-char -Os -DFSVS_VERSION='"$(VERSION)"'
-+CFLAGS        += -Wall -funsigned-char -DFSVS_VERSION='"$(VERSION)"'
+-CFLAGS        += -Wall -funsigned-char -Os -DFSVS_VERSION='"$(VERSION)"'  
-Wno-deprecated-declarations
++CFLAGS        += -Wall -funsigned-char -DFSVS_VERSION='"$(VERSION)"'  
-Wno-deprecated-declarations
  LDFLAGS       := @LDFLAGS@
  FSVS_LDFLAGS = $(LDFLAGS) -lsvn_subr-1 -lsvn_delta-1 -lsvn_ra-1 -lpcre -lgdbm 
-ldl
  EXTRALIBS     := @EXTRALIBS@
-@@ -146,13 +146,13 @@ docs: $(MANDEST)/fsvs-howto-backup.5 $(M
+@@ -148,13 +148,13 @@ docs: $(MANDEST)/fsvs-howto-backup.5 $(M
  ################################ Rules ######################################
  %.o:  %.c
        @echo "     CC $<"
@@ -41,7 +41,7 @@
  ifeq (@ENABLE_RELEASE@, 1)
        -strip $@
  endif
-@@ -169,7 +169,7 @@ endif
+@@ -171,7 +171,7 @@ endif
  deps: $(D_FILES)
  .%.d: %.c
        @echo "     deps for $<"

++++++ fsvs-1.2.7.tar.bz2 -> fsvs-1.2.9.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/CHANGES new/fsvs-1.2.9/CHANGES
--- old/fsvs-1.2.7/CHANGES      2015-12-30 12:28:55.000000000 +0100
+++ new/fsvs-1.2.9/CHANGES      2018-06-06 15:49:01.000000000 +0200
@@ -1,3 +1,9 @@
+Changes in 1.2.9
+- Various small fixes that got visible with new compiler versions and/or LLVM.
+
+Changes in 1.2.8
+- Fixed URI canonicalization (UTF8)
+
 Changes in 1.2.7
 - Updates for Clang
 - Fixed some compiler warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/Makefile new/fsvs-1.2.9/Makefile
--- old/fsvs-1.2.7/Makefile     2008-05-20 12:33:22.000000000 +0200
+++ new/fsvs-1.2.9/Makefile     2018-06-05 16:20:43.000000000 +0200
@@ -21,3 +21,6 @@
        rm -f config.cache config.log config.status 2> /dev/null || true
        rm -f src/Makefile src/tags tests/Makefile 2> /dev/null || true
        rm -f src/config.h src/*.[os] src/.*.d src/fsvs 2> /dev/null || true
+
+test-shell: src/fsvs
+       @$(MAKE) BINARY=$(CURDIR)/$< --no-print-directory -C tests shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/autom4te.cache/output.0 
new/fsvs-1.2.9/autom4te.cache/output.0
--- old/fsvs-1.2.7/autom4te.cache/output.0      2015-12-30 12:30:17.000000000 
+0100
+++ new/fsvs-1.2.9/autom4te.cache/output.0      2018-06-07 10:35:33.000000000 
+0200
@@ -6334,6 +6334,8 @@
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
+  free (data);
+  free (data3);
   return 0;
 }
 _ACEOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/autom4te.cache/requests 
new/fsvs-1.2.9/autom4te.cache/requests
--- old/fsvs-1.2.7/autom4te.cache/requests      2015-12-30 12:30:17.000000000 
+0100
+++ new/fsvs-1.2.9/autom4te.cache/requests      2018-06-07 10:35:33.000000000 
+0200
@@ -1,4 +1,4 @@
-# This file was generated by Autom4te Sat Aug 22 17:39:33 UTC 2015.
+# This file was generated by Autom4te Sun Aug 20 18:29:13 UTC 2017.
 # It contains the lists of macros which have been traced.
 # It can be safely removed.
 
@@ -14,63 +14,63 @@
                         'configure.in'
                       ],
                       {
-                        'AM_PROG_CXX_C_O' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        'AM_PROG_FC_C_O' => 1,
-                        'AC_INIT' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AH_OUTPUT' => 1,
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AM_XGETTEXT_OPTION' => 1,
-                        'm4_sinclude' => 1,
-                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AM_PATH_GUILE' => 1,
-                        'AC_FC_SRCEXT' => 1,
-                        'AC_SUBST' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'AM_PROG_MOC' => 1,
-                        'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        '_m4_warn' => 1,
-                        '_AM_COND_IF' => 1,
                         'AM_POT_TOOLS' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'sinclude' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AC_CONFIG_LIBOBJ_DIR' => 1,
                         '_AM_COND_ELSE' => 1,
-                        'AC_FC_FREEFORM' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
                         'AM_ENABLE_MULTILIB' => 1,
-                        'AC_CONFIG_AUX_DIR' => 1,
-                        'm4_include' => 1,
+                        'AH_OUTPUT' => 1,
+                        '_AM_COND_IF' => 1,
+                        'AM_PROG_MOC' => 1,
+                        'LT_INIT' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'AM_XGETTEXT_OPTION' => 1,
                         'AC_CANONICAL_TARGET' => 1,
-                        'AM_PROG_LIBTOOL' => 1,
-                        'AC_SUBST_TRACE' => 1,
+                        'AC_CONFIG_AUX_DIR' => 1,
+                        'include' => 1,
+                        'AC_FC_PP_DEFINE' => 1,
+                        'sinclude' => 1,
                         'AC_CANONICAL_SYSTEM' => 1,
+                        'AM_AUTOMAKE_VERSION' => 1,
+                        'AC_SUBST_TRACE' => 1,
+                        'AC_CANONICAL_HOST' => 1,
+                        'AC_FC_SRCEXT' => 1,
+                        '_AM_MAKEFILE_INCLUDE' => 1,
+                        'm4_sinclude' => 1,
                         'AM_GNU_GETTEXT' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AM_PATH_GUILE' => 1,
+                        'AC_FC_FREEFORM' => 1,
+                        'AC_CANONICAL_BUILD' => 1,
+                        '_m4_warn' => 1,
+                        'LT_SUPPORTED_TAG' => 1,
+                        'AM_PROG_FC_C_O' => 1,
                         'm4_pattern_allow' => 1,
-                        'AC_FC_PP_DEFINE' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'AM_MAKEFILE_INCLUDE' => 1,
-                        'AC_CONFIG_HEADERS' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
+                        'AC_PROG_LIBTOOL' => 1,
+                        'AC_SUBST' => 1,
+                        'AM_INIT_AUTOMAKE' => 1,
+                        'm4_include' => 1,
                         'AC_REQUIRE_AUX_FILE' => 1,
+                        'AC_CONFIG_HEADERS' => 1,
+                        'AM_PROG_CXX_C_O' => 1,
+                        'AC_CONFIG_LINKS' => 1,
+                        'AC_CONFIG_SUBDIRS' => 1,
+                        'AM_MAKEFILE_INCLUDE' => 1,
+                        'AC_INIT' => 1,
                         '_AM_COND_ENDIF' => 1,
-                        'AM_NLS' => 1,
-                        'LT_INIT' => 1,
+                        'AM_SILENT_RULES' => 1,
                         'AM_PROG_F77_C_O' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'include' => 1,
-                        'AC_CANONICAL_BUILD' => 1,
+                        '_AM_SUBST_NOTMAKE' => 1,
+                        'AM_NLS' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+                        'AC_CONFIG_FILES' => 1,
                         'AM_PROG_AR' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
+                        'LT_CONFIG_LTDL_DIR' => 1,
+                        '_LT_AC_TAGCONFIG' => 1,
                         'AC_FC_PP_SRCEXT' => 1,
+                        'AM_MAINTAINER_MODE' => 1,
                         'AM_PROG_CC_C_O' => 1
                       }
                     ], 'Autom4te::Request' )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/configure new/fsvs-1.2.9/configure
--- old/fsvs-1.2.7/configure    2015-12-30 12:30:17.000000000 +0100
+++ new/fsvs-1.2.9/configure    2018-06-07 10:35:33.000000000 +0200
@@ -6334,6 +6334,8 @@
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
+  free (data);
+  free (data3);
   return 0;
 }
 _ACEOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/Makefile.in 
new/fsvs-1.2.9/src/Makefile.in
--- old/fsvs-1.2.7/src/Makefile.in      2015-12-28 12:46:54.000000000 +0100
+++ new/fsvs-1.2.9/src/Makefile.in      2018-06-06 15:48:52.000000000 +0200
@@ -11,12 +11,12 @@
 ################################ Definitions ################################
 DIR    := /usr/share/doc
 
-HEADURL        := "$URL: 
http://fsvs.tigris.org/svn/fsvs/tags/fsvs-1.2.7/fsvs/src/Makefile.in $"
-HEADREV        := "$Revision: 2478 $"
+HEADURL        := "$URL: 
http://fsvs.tigris.org/svn/fsvs/tags/fsvs-1.2.9/fsvs/src/Makefile.in $"
+HEADREV        := "$Revision: 2506 $"
 VERSION        = $(shell  perl -e '($$r) = (q( $(HEADREV) ) =~ m:(\d+):); $$t= 
q( $(HEADURL) ) =~ m:/tags/([^/]+): ? $$1 : "trunk"; print "$$t:$$r\n";' )
 
 CFLAGS := @CFLAGS@
-CFLAGS += -Wall -funsigned-char -Os -DFSVS_VERSION='"$(VERSION)"'
+CFLAGS += -Wall -funsigned-char -Os -DFSVS_VERSION='"$(VERSION)"'  
-Wno-deprecated-declarations
 LDFLAGS        := @LDFLAGS@
 FSVS_LDFLAGS = $(LDFLAGS) -lsvn_subr-1 -lsvn_delta-1 -lsvn_ra-1 -lpcre -lgdbm 
-ldl
 EXTRALIBS      := @EXTRALIBS@
@@ -27,6 +27,8 @@
 endif
 
 ifeq (@ENABLE_DEBUG@, 1)
+       # The component tests need all local variables, ie. no optimization.
+       CFLAGS += -O0
        CFLAGS += -DDEBUG -g
        LDFLAGS += -g
 ifeq (@ENABLE_GCOV@, 1)
@@ -217,7 +219,7 @@
 
 ################################ Testing ####################################
 run-tests: $(DEST)
-       WAA_CHARS=$(WAA_CHARS) $(MAKE) -C ../tests BINARY=$(shell pwd)/$(DEST) 
$(TESTS)
+       WAA_CHARS=$(WAA_CHARS) $(MAKE) -C ../tests BINARY=$(shell pwd)/$(DEST) 
VERBOSE=$(VERBOSE) $(TESTS)
 ifeq (@ENABLE_GCOV@, 1)
 # I don't know why, but gcov wants to open the .gcda and .gcno
 # files Read-Write. I filed a bug report for this.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/cache.c new/fsvs-1.2.9/src/cache.c
--- old/fsvs-1.2.7/src/cache.c  2015-02-12 12:04:13.000000000 +0100
+++ new/fsvs-1.2.9/src/cache.c  2018-06-04 19:55:58.000000000 +0200
@@ -8,6 +8,7 @@
 
 #include <stdlib.h>
 #include <unistd.h>
+#include <errno.h>
 
 
 #include "global.h"
@@ -96,7 +97,7 @@
 
 /** -.
  * Can return \c ENOENT if not found. */
-inline int cch__find(struct cache_t *cache, cache_value_t id, 
+int cch__find(struct cache_t *cache, cache_value_t id,
                int *index, char **data, int *len)
 {
        int i;
@@ -209,7 +210,7 @@
  * Copies the significant bits ' ' .. 'Z' (or, really, \\x20 ..  \\x60) of 
  * at most 6 bytes of \a stg into a packed bitfield, so that 30bits are 
  * used.  */
-inline cache_value_t cch___string_to_cv(const char *stg)
+cache_value_t cch___string_to_cv(const char *stg)
 {
   union {
          cache_value_t cv;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/checksum.c 
new/fsvs-1.2.9/src/checksum.c
--- old/fsvs-1.2.7/src/checksum.c       2010-02-08 20:29:52.000000000 +0100
+++ new/fsvs-1.2.9/src/checksum.c       2018-06-04 19:55:58.000000000 +0200
@@ -116,7 +116,7 @@
 /** Hex-character to ascii. 
  * Faster than sscanf().
  * Returns -1 on error. */
-inline static int cs__hex2val(char ch)
+static int cs__hex2val(char ch)
 {
        /* I thought a bit whether I should store the values+1, ie. keep most 
of 
         * the array as 0 - but that doesn't save any memory, it only takes 
more 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/cp_mv.c new/fsvs-1.2.9/src/cp_mv.c
--- old/fsvs-1.2.7/src/cp_mv.c  2012-10-29 17:53:10.000000000 +0100
+++ new/fsvs-1.2.9/src/cp_mv.c  2018-06-04 19:55:58.000000000 +0200
@@ -646,10 +646,14 @@
 char* cm___output_pct(struct cm___match_t *match, 
                struct cm___candidate_t *cand)
 {
-       static char buffer[8];
+       static char buffer[16];
 
        BUG_ON(cand->match_count > 1000 || cand->match_count < 0);
 
+       /* GCC notes
+        *   ‘sprintf’ output between 6 and 16 bytes into a destination of size 
8
+        * which isn't correct (see the BUG_ON above),
+        * but it can be 1+4+1+1+1 == 8 characters. */
        sprintf(buffer, "=%d.%1d%%",
                        cand->match_count/10, cand->match_count % 10);
 
@@ -1085,7 +1089,7 @@
  * If that isn't possible (because \a path is not below \c wc_path),
  * \c EINVAL is returned.
  * The case \c path==wc_path is not allowed, either. */
-inline int cm___not_below_wcpath(char *path, char **out)
+int cm___not_below_wcpath(char *path, char **out)
 {
        if (strncmp(path, wc_path, wc_path_len) != 0 ||
                        path[wc_path_len] != PATH_SEPARATOR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/diff.c new/fsvs-1.2.9/src/diff.c
--- old/fsvs-1.2.7/src/diff.c   2015-12-28 12:48:09.000000000 +0100
+++ new/fsvs-1.2.9/src/diff.c   2018-06-06 10:02:30.000000000 +0200
@@ -12,6 +12,7 @@
 #include <alloca.h>
 #include <time.h>
 #include <fcntl.h>
+#include <apr_hash.h>
 
 
 #include "global.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/direnum.c new/fsvs-1.2.9/src/direnum.c
--- old/fsvs-1.2.7/src/direnum.c        2009-02-17 11:53:23.000000000 +0100
+++ new/fsvs-1.2.9/src/direnum.c        2018-06-04 19:55:58.000000000 +0200
@@ -80,7 +80,7 @@
 /** Starts enumeration of the given \a path. The directory handle is returned
  * in \a *dirp.
  * \return 0 for success, or an error code. */
-inline int dir__start_enum(dir__handle *dh, char *path)
+int dir__start_enum(dir__handle *dh, char *path)
 {      
        int status;
 
@@ -100,7 +100,7 @@
  * \param count The maximum number of bytes in \a dirp.
  *
  * \return The number of bytes used in \a dirp. */
-inline int dir__enum(dir__handle dh, fsvs_dirent *dirp, unsigned int count)
+int dir__enum(dir__handle dh, fsvs_dirent *dirp, unsigned int count)
 {
        return syscall(__NR_getdents64, dh, dirp, count);
 }
@@ -108,7 +108,7 @@
 
 /** Simply closes the handle \a dh.
  * */
-inline int dir__close(dir__handle dh)
+int dir__close(dir__handle dh)
 {
        int status;
 
@@ -123,7 +123,7 @@
 
 /** How to get the length of a directory (in bytes), from a handle \a dh,
  * into \a st->size. */
-inline int dir__get_dir_size(dir__handle dh, struct sstat_t *st)
+int dir__get_dir_size(dir__handle dh, struct sstat_t *st)
 {
        int status;
 
@@ -151,7 +151,7 @@
 typedef DIR* dir__handle;
 
 
-inline int dir__start_enum(dir__handle *dh, char *path)
+int dir__start_enum(dir__handle *dh, char *path)
 {
        int status;
 
@@ -164,7 +164,7 @@
 
 
 /* Impedance matching .. don't like it. */
-inline int dir__enum(dir__handle dh, fsvs_dirent *dirp, unsigned int count)
+int dir__enum(dir__handle dh, fsvs_dirent *dirp, unsigned int count)
 {
        struct dirent *de;
 
@@ -181,7 +181,7 @@
 }
 
 
-inline int dir__close(dir__handle dh)
+int dir__close(dir__handle dh)
 {
        int status;
 
@@ -193,7 +193,7 @@
 }
 
 
-inline int dir__get_dir_size(dir__handle dh, struct sstat_t *st)
+int dir__get_dir_size(dir__handle dh, struct sstat_t *st)
 {
        int status;
 
@@ -259,7 +259,7 @@
  * Used for type checking cleanliness. 
  * 'C' as for 'Const'.
  * \return +2, +1, 0, -1, -2, suitable for \a qsort(). */
-inline int dir___f_sort_by_nameCC(const void *a, const void *b)
+int dir___f_sort_by_nameCC(const void *a, const void *b)
 {
        return strcoll(a,b);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/est_ops.c new/fsvs-1.2.9/src/est_ops.c
--- old/fsvs-1.2.7/src/est_ops.c        2015-12-28 12:48:09.000000000 +0100
+++ new/fsvs-1.2.9/src/est_ops.c        2018-06-06 13:08:05.000000000 +0200
@@ -501,6 +501,7 @@
        };
        int is_dir, is_dev, status;
        int intnum;
+       svn_revnum_t revision;
 
 
 #if 0
@@ -524,10 +525,12 @@
                STOPIF( ops__apply_group(sts, NULL, NULL), NULL);
 
 
-       if (sts->url)
+       revision = sts->repos_rev;
+       if (sts->url) {
                intnum=sts->url->internal_number;
-       else
-       {
+               if (revision == SET_REVNUM)
+                       revision = sts->url->current_rev;
+       } else {
                /* A non-root entry has no url. May happen with _build_list, 
when
                 * there are no urls. */
                if (sts->parent)
@@ -543,7 +546,7 @@
                        ( is_dev ? ops__dev_to_waa_string(sts) : "nd" ),
                        ( is_dir ? "x" : cs__md5tohex_buffered(sts->md5) ),
                        (t_ull)sts->st.size,
-                       sts->repos_rev == SET_REVNUM ? sts->url->current_rev : 
sts->repos_rev,
+                       revision,
                        intnum,
                        (t_ul)sts->st.dev,
                        (t_ull)sts->st.ino,
@@ -1346,7 +1349,7 @@
        if (sts->parent)
                if (sts->parent->entry_status & FS_REMOVED)
                {
-                       goto removed;
+                       goto removed_memset;
                }
 
        /* Check for current status */
@@ -1362,9 +1365,9 @@
                if (abs(status) != ENOENT) 
                        STOPIF(status, "cannot lstat(%s)", fullpath);
 
-removed:
                /* Re-set the values, if needed */
                if (st.mode)
+removed_memset:
                        memset(&st, 0, sizeof(st));
 
                sts->entry_status=FS_REMOVED;
@@ -1422,7 +1425,7 @@
 /** Set the estat::do_* bits, depending on the parent.
  * Should not be called for the root.
  * */
-inline void ops___set_todo_bits(struct estat *sts)
+void ops___set_todo_bits(struct estat *sts)
 {
        /* For recursive operation: If we should do the parent completely, we 
do 
         * the sub-entries, too. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/global.h new/fsvs-1.2.9/src/global.h
--- old/fsvs-1.2.7/src/global.h 2015-12-28 12:48:09.000000000 +0100
+++ new/fsvs-1.2.9/src/global.h 2018-06-06 13:08:05.000000000 +0200
@@ -805,7 +805,7 @@
 /** Makes the program abort.
  * If the configure had --enable-debug and \c gdb is in the path, try
  * to use \c gdb to debug this problem (only if STDIN and STDOUT are ttys). */
-#define BUG(...) do { fflush(NULL); debuglevel=1; DEBUGP(__VA_ARGS__); 
*(int*)42=__LINE__; } while (0)
+#define BUG(...) do { fflush(NULL); debuglevel=1; DEBUGP(__VA_ARGS__); 
*(int*)42=__LINE__; while(1) sleep(1); } while (0)
 /** The same as BUG(), but conditionalized. 
  * \code
  *   BUG_ON(a == b, "HELP")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/hash_ops.c 
new/fsvs-1.2.9/src/hash_ops.c
--- old/fsvs-1.2.7/src/hash_ops.c       2008-11-12 11:11:41.000000000 +0100
+++ new/fsvs-1.2.9/src/hash_ops.c       2018-06-05 16:21:37.000000000 +0200
@@ -7,6 +7,7 @@
  ************************************************************************/
 
 #include <fcntl.h>
+#include <string.h>
 
 #include "global.h"
 #include "waa.h"
@@ -195,6 +196,8 @@
 
        if (gdbm_mode == HASH_TEMPORARY)
        {
+               /* Replace our own constant with a public available value. */
+               gdbm_mode = GDBM_NEWDB;
                cp=waa_tmp_path;
                /* Use this bit, so that the open filehandle says what it was. 
*/
                eos=waa_tmp_fn;
@@ -205,7 +208,7 @@
                                        | waa__get_gwd_flag(name)), NULL);
        strcpy(eos, name);
 
-       if (gdbm_mode == GDBM_NEWDB || gdbm_mode == HASH_TEMPORARY)
+       if (gdbm_mode == GDBM_NEWDB)
        {
                /* libgdbm3=1.8.3-3 has a bug - with GDBM_NEWDB an existing 
database is 
                 * not truncated. Only the O_CREAT, not the O_TRUNC flag is 
used.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/helper.c new/fsvs-1.2.9/src/helper.c
--- old/fsvs-1.2.7/src/helper.c 2015-12-28 12:48:09.000000000 +0100
+++ new/fsvs-1.2.9/src/helper.c 2018-06-07 10:35:01.000000000 +0200
@@ -1426,8 +1426,9 @@
                        }
                        /* We allow to specify only "m" for "libm.so". */
                }
-               STOPIF_CODE_ERR( hdl == NULL, errno, 
-                               "Cannot load library %s", libs);
+               /* errno is typically 0. */
+               STOPIF_CODE_ERR( hdl == NULL, EINVAL, 
+                               "Cannot load library %s: dlerror says %s", 
libs, dlerror());
 
                libs=strtok(NULL, delim);
        }
@@ -1476,7 +1477,7 @@
  * If \a value_len is not \c NULL, it get set to the length of the path in 
  * the environment variable.
  * */
-inline int hlp___is_valid_env(char *env, 
+int hlp___is_valid_env(char *env, 
                char *path2cmp, int p2c_len,
                char **value, int *value_len)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/ignore.c new/fsvs-1.2.9/src/ignore.c
--- old/fsvs-1.2.7/src/ignore.c 2012-10-29 17:53:10.000000000 +0100
+++ new/fsvs-1.2.9/src/ignore.c 2018-06-06 13:08:05.000000000 +0200
@@ -1394,7 +1394,7 @@
  * \a ign.
  * Does the less-than, greater-than and/or equal comparision.
  * */
-inline int ign___compare_dev(struct sstat_t *st, struct ignore_t *ign)
+int ign___compare_dev(struct sstat_t *st, struct ignore_t *ign)
 {
 #ifdef DEVICE_NODES_DISABLED
        DEVICE_NODES_DISABLED();
@@ -2015,6 +2015,7 @@
        int i;
        struct ignore_t *ign;
 
+       status = 0;
        STOPIF_CODE_EPIPE( fprintf(output, "\nGrouping statistics ("
                                "tested, matched, groupname, pattern):\n\n"), 
NULL);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/options.c new/fsvs-1.2.9/src/options.c
--- old/fsvs-1.2.7/src/options.c        2011-04-29 14:20:18.000000000 +0200
+++ new/fsvs-1.2.9/src/options.c        2018-06-04 19:55:58.000000000 +0200
@@ -381,7 +381,7 @@
 
 
 /** Find an integer value by comparing with predefined strings. */
-inline int opt___find_string(const struct opt___val_str_t *list, 
+int opt___find_string(const struct opt___val_str_t *list, 
                const char *string, 
                int *result)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/racallback.c 
new/fsvs-1.2.9/src/racallback.c
--- old/fsvs-1.2.7/src/racallback.c     2015-12-29 11:42:04.000000000 +0100
+++ new/fsvs-1.2.9/src/racallback.c     2018-06-06 09:09:48.000000000 +0200
@@ -830,7 +830,7 @@
 int cb__remove_from_url(struct estat *root, struct url_t *to_remove, 
                int *was_changed)
 {
-       struct url_t *nevermind;
+       struct url_t *nevermind = NULL;
        int status;
 
        *was_changed=0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/revert.c new/fsvs-1.2.9/src/revert.c
--- old/fsvs-1.2.7/src/revert.c 2015-12-28 12:48:09.000000000 +0100
+++ new/fsvs-1.2.9/src/revert.c 2018-06-06 13:08:05.000000000 +0200
@@ -430,6 +430,8 @@
 
 
        BUG_ON(!pool);
+       filename_tmp = NULL;
+       url = NULL;
        STOPIF( ops__build_path(&filename, sts), NULL);
 
 
@@ -567,7 +569,7 @@
 ex:
        /* On error remove the temporary file. */
        /* Return the original error. */
-       if (status)
+       if (status && filename_tmp)
                unlink(filename_tmp);
 
        return status;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/status.c new/fsvs-1.2.9/src/status.c
--- old/fsvs-1.2.7/src/status.c 2015-12-29 11:43:57.000000000 +0100
+++ new/fsvs-1.2.9/src/status.c 2018-06-04 19:55:58.000000000 +0200
@@ -654,7 +654,7 @@
 }
 
 
-inline volatile char* st__flags_string_fromint(int mask)
+volatile char* st__flags_string_fromint(int mask)
 {
        const struct st___bit_info flags[]={
                BIT_INFO( RF_ADD,                               "add"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/update.c new/fsvs-1.2.9/src/update.c
--- old/fsvs-1.2.7/src/update.c 2015-12-29 11:43:29.000000000 +0100
+++ new/fsvs-1.2.9/src/update.c 2018-06-06 13:29:58.000000000 +0200
@@ -188,14 +188,18 @@
 
        /* if an invalid utf8_value is detected, we'd better ignore it.
         * who knows which Pandora's box we'd open ... */
-       if (0 == strcmp(utf8_name, propname_special) &&
-                       0 == strcmp(utf8_value->data, propval_special))
+       if (0 == strcmp(utf8_name, propname_special))
        {
                if (!utf8_value) {
                        sts->st.mode = (sts->st.mode & ~S_IFMT) | S_IFREG;
                        DEBUGP("no longer special");
+                       goto ex;
                }
-               else if (TEST_PACKED(S_ISANYSPECIAL, sts->new_rev_mode_packed))
+
+               if (strcmp(utf8_value->data, propval_special))
+                       goto ex;
+
+               if (TEST_PACKED(S_ISANYSPECIAL, sts->new_rev_mode_packed))
                {
                        DEBUGP("already marked as special");
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/src/url.c new/fsvs-1.2.9/src/url.c
--- old/fsvs-1.2.7/src/url.c    2015-12-29 11:42:21.000000000 +0100
+++ new/fsvs-1.2.9/src/url.c    2018-06-04 20:01:01.000000000 +0200
@@ -11,6 +11,7 @@
 #include <unistd.h>
 #include <ctype.h>
 #include <sys/select.h>
+#include <subversion-1/svn_dirent_uri.h>
 
 
 #include "url.h"
@@ -1093,13 +1094,16 @@
        if (current_url->session) goto ex;
 
 
-       /* We wouldn't need to allocate this memory if the URL was ok; but we 
-        * don't know that here, and it doesn't hurt that much. */
-       STOPIF( hlp__strnalloc(current_url->urllen, 
-                               &buffer, current_url->url), NULL);
-       cp=buffer+current_url->urllen;
+       /* We wouldn't need to allocate this memory if the URL was ok; but we
+        * don't know that here, and it doesn't hurt that much.
+        * Furthermore, only SVN knows what characters should be escaped - so
+        * lets get it done there. */
+       buffer = (char*)svn_uri_canonicalize(current_url->url, global_pool);
+       BUG_ON(!buffer);
+       cp=buffer+strlen(buffer);
        BUG_ON(*cp);
 
+
        STOPIF_SVNERR_TEXT( svn_ra_open,
                                (& current_url->session, buffer,
                                 &cb__cb_table, NULL,  /* cbtable, cbbaton, */
@@ -1133,7 +1137,7 @@
                while (cp > buffer+4 && *cp != '/') cp--;
 
                /* If we're before the hostname, signified by a "//", we abort. 
*/
-               STOPIF_CODE_EPIPE(cp[-1] == '/', EINVAL,
+               STOPIF_CODE_ERR( cp[-1] == '/', EINVAL,
                                "!Unsuccessfull svn_ra_stat() on every try for 
URL \"%s\".",
                                current_url->url);
 
@@ -1152,7 +1156,6 @@
                if (buffer + current_url->urllen == cp)
                {
                        *missing_dirs=NULL;
-                       IF_FREE(buffer);
                }
                else
                {
@@ -1169,7 +1172,6 @@
                        *missing_dirs=buffer;
                }
        }
-       else IF_FREE(buffer);
 
 
        if (session) 
@@ -1432,7 +1434,7 @@
  * Writes the given URLs into the WAA. */
 int url__work(struct estat *root UNUSED, int argc, char *argv[])
 {
-       int status, fh, l, i, had_it;
+       int status, l, i, had_it;
        char *dir;
        char *cp;
        int have_space;
@@ -1443,7 +1445,6 @@
 
 
        dir=NULL;
-       fh=-1;
 
        STOPIF( waa__given_or_current_wd(NULL, &dir), NULL );
        /* The current directory is the WC root. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/tests/063_chroot 
new/fsvs-1.2.9/tests/063_chroot
--- old/fsvs-1.2.7/tests/063_chroot     2008-11-20 08:18:03.000000000 +0100
+++ new/fsvs-1.2.9/tests/063_chroot     2018-06-06 15:48:22.000000000 +0200
@@ -12,7 +12,7 @@
 then
        export FSVS_CHROOT_CWD=17
        export FSVS_CHROOT_ROOT=84
-       export FSVS_CHROOT_LIBS=m
+       export FSVS_CHROOT_LIBS=libm.so.6
 
        mkdir dir
        echo gurgle > empty-file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/tests/067_readonly_repo 
new/fsvs-1.2.9/tests/067_readonly_repo
--- old/fsvs-1.2.7/tests/067_readonly_repo      2013-06-28 12:43:41.000000000 
+0200
+++ new/fsvs-1.2.9/tests/067_readonly_repo      2018-06-06 15:47:15.000000000 
+0200
@@ -5,6 +5,13 @@
 $INCLUDE_FUNCS
 cd $WC
 
+if [[ $UID -eq 0 &&
+       "$REPURL" == "file://"* ]]
+then
+       echo "The root user may always access local files."
+       exit 0
+fi
+
 TMP=$LOGDIR/067.msg
 
 date > blabla
@@ -21,7 +28,7 @@
        else
                echo "Got an error:"
                cat $TMP
-               if grep -F "$msg" $TMP
+               if egrep "$msg" $TMP
                then
                        $SUCCESS "correct message."
                else
@@ -34,11 +41,12 @@
 $INFO "ci to inaccessible dir"
 # chmod goes top-down, which doesn't work with removing rights.
 find $REP -depth | xargs chmod 000
-ER "Couldn't open a repository (180001)" $BINq ci -m "RO"
+ER "Couldn't open a repository \(180001\)|Can't create session \(170013\)" 
$BINq ci -m "RO"
+
 
 $INFO "ci to readonly dir"
 chmod -R 555 $REP
-ER "Permission denied (13)" $BINq ci -m "RO"
+ER "Permission denied \(13\)" $BINq ci -m "RO"
 
 chmod -R 777 $REP
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fsvs-1.2.7/tests/Makefile.in 
new/fsvs-1.2.9/tests/Makefile.in
--- old/fsvs-1.2.7/tests/Makefile.in    2009-09-24 07:40:08.000000000 +0200
+++ new/fsvs-1.2.9/tests/Makefile.in    2018-06-05 16:22:47.000000000 +0200
@@ -169,7 +169,7 @@
 
 prepare_empty:
        @echo Preparing clean repository ...
-       test -d $(REP) && rm -rf $(REP) || true
+       test -d $(REP) && (chmod u+rwx $(REP) && rm -rf $(REP)) || true
        rm -rf $(FSVS_CONF) $(FSVS_WAA) || true
        $(MAKE) $(FSVS_CONF) $(FSVS_WAA) || true
        test -d $(LOGDIR) || mkdir $(LOGDIR)
@@ -212,3 +212,6 @@
        @echo '' > $(FSVS_CONF)/config
        @$(TEST_PROG_DIR)/run-tests
 
+shell:
+       @echo Opening shell.
+       @cd $(TESTBASE) && env PATH=$(dir $(BIN_FULLPATH)):$(PATH) bash -i

++++++ fsvs-destdir.patch ++++++
--- /var/tmp/diff_new_pack.xAQbU0/_old  2020-08-18 15:12:51.832085704 +0200
+++ /var/tmp/diff_new_pack.xAQbU0/_new  2020-08-18 15:12:51.836085706 +0200
@@ -1,6 +1,8 @@
---- src/Makefile.in.orig       2010-03-13 02:58:08.000000000 +0100
-+++ src/Makefile.in    2010-03-13 02:58:42.000000000 +0100
-@@ -88,7 +88,7 @@
+Index: src/Makefile.in
+===================================================================
+--- src/Makefile.in.orig
++++ src/Makefile.in
+@@ -90,7 +90,7 @@ exec_prefix= @exec_prefix@
  prefix        = @prefix@
  mandir        = @mandir@
  install:


Reply via email to