Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package duply for openSUSE:Factory checked 
in at 2023-12-03 20:48:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duply (Old)
 and      /work/SRC/openSUSE:Factory/.duply.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "duply"

Sun Dec  3 20:48:56 2023 rev:26 rq:1130490 version:2.5.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/duply/duply.changes      2023-01-21 
19:13:37.538007880 +0100
+++ /work/SRC/openSUSE:Factory/.duply.new.25432/duply.changes   2023-12-03 
20:49:16.834805918 +0100
@@ -1,0 +2,23 @@
+Sat Dec  2 16:20:23 UTC 2023 - Andrea Manzini <andrea.manz...@suse.com>
+
+- update to 2.5.2 
+  * fix bug #139: "ampersand (&) in gpg passphrase breaks gpg tests"
+
+- update to 2.5.1 
+  * quotewrap only strings with quotes ('") or spaces from now on
+  * add --verbosity only if set in profile conf
+  * bugfix #138: fix quoting when filtering params, thx Eric
+  * bugfix #137: relax version parsing regex
+
+- update to 2.5.0
+  * bugfix #136: "not compatible with duplicity 2.x", thx tengel, lds, Rhomeo
+    check for duplicity 2.1+ (2.0 broke implied commands),
+    command line ui changed incompatibly
+  * filter in/excludes more strictly for more duplicity actions now
+  * replace '--file-to-restore' with '--path-to-restore'
+  * filter backup only params now
+
+- update to 2.4.3
+  * bugfix #134: workaround bash 4.2 and earlier read bug (thx Tavio Wong)
+
+-------------------------------------------------------------------

Old:
----
  duply_2.4.2.tgz

New:
----
  duply_2.5.2.tgz

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

Other differences:
------------------
++++++ duply.spec ++++++
--- /var/tmp/diff_new_pack.EmZz08/_old  2023-12-03 20:49:17.562832662 +0100
+++ /var/tmp/diff_new_pack.EmZz08/_new  2023-12-03 20:49:17.562832662 +0100
@@ -18,12 +18,12 @@
 
 
 Name:           duply
-Version:        2.4.2
+Version:        2.5.2
 Release:        0
 Summary:        A frontend for the "duplicity" backup program
 License:        GPL-2.0-only
 URL:            https://duply.net/
-Source0:        
https://sourceforge.net/projects/ftplicity/files/duply%{20}%{28}simple%{20}duplicity%{29}/2.4.x/%{name}_%{version}.tgz
+Source0:        
https://sourceforge.net/projects/ftplicity/files/duply%{20}%{28}simple%{20}duplicity%{29}/2.5.x/%{name}_%{version}.tgz
 BuildArch:      noarch
 # MANUAL BEGIN
 Requires:       duplicity

++++++ duply_2.4.2.tgz -> duply_2.5.2.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duply_2.4.2/CHANGELOG.txt 
new/duply_2.5.2/CHANGELOG.txt
--- old/duply_2.4.2/CHANGELOG.txt       2023-01-19 14:21:57.000000000 +0100
+++ new/duply_2.5.2/CHANGELOG.txt       2023-11-30 15:40:29.000000000 +0100
@@ -17,16 +17,36 @@
 - remove url_encode, test for invalid chars n throw error instead
 
 CHANGELOG:
+2.5.2 (30.11.2023)
+- bug #139: "ampersand (&) in gpg passphrase breaks gpg tests"
+
+2.5.1 (4.10.2023)
+- quotewrap only strings with quotes ('") or spaces from now on
+- add --verbosity only if set in profile conf
+- bugfix #138: fix quoting when filtering params, thx Eric
+- bugfix #137: relax version parsing regex
+
+2.5.0 (25.09.2023)
+- bugfix #136: "not compatible with duplicity 2.x", thx tengel, lds, Rhomeo
+  check for duplicity 2.1+ (2.0 broke implied commands), 
+  command line ui changed incompatibly
+- filter in/excludes more strictly for more duplicity actions now
+- replace '--file-to-restore' with '--path-to-restore'
+- filter backup only params now
+
+2.4.3 (05.05.2023)
+- bugfix #134: workaround bash 4.2 and earlier read bug (thx Tavio Wong)
+
 2.4.2 (19.01.2023)
 - featreq #55: change to purgeAuto in systemd unit files (thx B.Foresman)
 - featreq #56: systemd files should go in /etc, not /lib (thx B.Foresman)
 - bugfix #133: read -N not available on macOS (thx Peter Torelli)
 
-2.4.1 (9.9.2022)
+2.4.1 (09.09.2022)
 - fixup duplicity links, moved to http://duplicity.us
 - bugfix: duply hangs on awk version detection on OpenBSD (thx phthomas137)
 
-2.4 (6.4.2022)
+2.4 (06.04.2022)
 - bugfix #127: date_from_nsecs ignores format string
 - bugfix #116: separators print date now too
 - featreq #48: add purgeAuto command (see man page)
@@ -37,7 +57,7 @@
 - version output, always print PYTHONPATH, if interpreter was determined
 - update python references to python3
 
-2.3.1 (11.2.2021)
+2.3.1 (11.02.2021)
 - bugfix 123: symmetric encryption errs out, asks for '' private key
 
 2.3 (30.12.2020)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/duply_2.4.2/duply new/duply_2.5.2/duply
--- old/duply_2.4.2/duply       2023-01-19 14:21:56.000000000 +0100
+++ new/duply_2.5.2/duply       2023-11-30 15:40:29.000000000 +0100
@@ -9,7 +9,7 @@
 #  changed from ftplicity to duply.                                            
#
 #  See http://duply.net or http://ftplicity.sourceforge.net/ for more info.    
#
 #  (c) 2006 Christiane Ruetten, Heise Zeitschriften Verlag, Germany            
#
-#  (c) 2008-2022 Edgar Soldin (changes since version 1.3)                      
#
+#  (c) 2008-2023 Edgar Soldin (changes since version 1.3)                      
#
 
################################################################################
 #  LICENSE:                                                                    
#
 #  This program is licensed under GPLv2.                                       
#
@@ -33,16 +33,36 @@
 #  - remove url_encode, test for invalid chars n throw error instead
 #
 #  CHANGELOG:
+#  2.5.2 (30.11.2023)
+#  - bug #139: "ampersand (&) in gpg passphrase breaks gpg tests"
+#
+#  2.5.1 (4.10.2023)
+#  - quotewrap only strings with quotes ('") or spaces from now on
+#  - add --verbosity only if set in profile conf
+#  - bugfix #138: fix quoting when filtering params, thx Eric
+#  - bugfix #137: relax version parsing regex
+#
+#  2.5.0 (25.09.2023)
+#  - bugfix #136: "not compatible with duplicity 2.x", thx tengel, lds, Rhomeo
+#    check for duplicity 2.1+ (2.0 broke implied commands), 
+#    command line ui changed incompatibly
+#  - filter in/excludes more strictly for more duplicity actions now
+#  - replace '--file-to-restore' with '--path-to-restore'
+#  - filter backup only params now
+#
+#  2.4.3 (05.05.2023)
+#  - bugfix #134: workaround bash 4.2 and earlier read bug (thx Tavio Wong)
+#
 #  2.4.2 (19.01.2023)
 #  - featreq #55: change to purgeAuto in systemd unit files (thx B.Foresman)
 #  - featreq #56: systemd files should go in /etc, not /lib (thx B.Foresman)
 #  - bugfix #133: read -N not available on macOS (thx Peter Torelli)
 #
-#  2.4.1 (9.9.2022)
+#  2.4.1 (09.09.2022)
 #  - fixup duplicity links, moved to http://duplicity.us
 #  - bugfix: duply hangs on awk version detection on OpenBSD (thx phthomas137)
 #
-#  2.4 (6.4.2022)
+#  2.4 (06.04.2022)
 #  - bugfix #127: date_from_nsecs ignores format string
 #  - bugfix #116: separators print date now too
 #  - featreq #48: add purgeAuto command (see man page)
@@ -53,7 +73,7 @@
 #  - version output, always print PYTHONPATH, if interpreter was determined
 #  - update python references to python3
 #
-#  2.3.1 (11.2.2021)
+#  2.3.1 (11.02.2021)
 #  - bugfix 123: symmetric encryption errs out, asks for '' private key
 #
 #  2.3 (30.12.2020)
@@ -536,7 +556,7 @@
 ME_LONG="$0"
 ME="$(basename $0)"
 ME_NAME="${ME%%.*}"
-ME_VERSION="2.4.2"
+ME_VERSION="2.5.2"
 ME_WEBSITE="https://duply.net";
 
 # default config values
@@ -1173,8 +1193,8 @@
     CMD="$PYTHON $(qw "$(which duplicity)")"
 
   DUPL_VERSION_OUT=$($CMD --version)
-  DUPL_VERSION=`echo $DUPL_VERSION_OUT | awk '/^duplicity /{print $2; exit;}'`
-  #DUPL_VERSION='0.7.03' #'0.6.08b' #,0.4.4.RC4,0.6.08b
+  DUPL_VERSION=$(echo $DUPL_VERSION_OUT | awk '/^duplicity/{print $2; exit;}')
+  #DUPL_VERSION='1.2.3' #'0.7.03' #'0.6.08b' #,0.4.4.RC4,0.6.08b
   DUPL_VERSION_VALUE=0
   DUPL_VERSION_AWK=$(awk -v v="$DUPL_VERSION" 'BEGIN{
   if (match(v,/[^\.0-9]+[0-9]*$/)){
@@ -1199,8 +1219,12 @@
 "
   elif [ $DUPL_VERSION_VALUE -le 404 ] && [ ${DUPL_VERSION_RC:-4} -lt 4 ]; then
     error "The installed version $DUPL_VERSION is incompatible with $ME_NAME 
v$ME_VERSION.
-You should upgrade your version of duplicity to at least v0.4.4RC4 or
+You should upgrade your version of $ME_NAME to at least v0.4.4RC4 or
 use the older ftplicity version 1.1.1 from $ME_WEBSITE."
+  elif [ $DUPL_VERSION_VALUE -le 20100 ] ; then
+    error "The installed version $DUPL_VERSION is incompatible with $ME_NAME 
v$ME_VERSION.
+You should upgrade your version of duplicity to at least v2.1.0 or
+use the older $ME_NAME version 2.4.3 from $ME_WEBSITE."
   fi
 }
 
@@ -1293,12 +1317,12 @@
   return $CMD_ERR
 }
 
-function qw { quotewrap "$@"; }
+function qw { quotewrap $@; }
 
 function quotewrap {
   local param="$@"
   # quote strings having non word chars (e.g. spaces)
-  if echo "$param"  | awk '/[^A-Za-z0-9_\.\-\/]/{exit 0}{exit 1}'; then
+  if echo "$param" | awk '/[^a-zA-Z0-9,\._\+\-@%\/]/{exit 0}{exit 1}'; then
     echo "$param" | awk '{\
       gsub(/[\047]/,"\047\\\047\047",$0);\
       gsub(/[\042]/,"\047\\\042\047",$0);\
@@ -1342,45 +1366,83 @@
     fi
   fi
 
-DUPL_PARAMS_GLOBAL="${DUPL_ARCHDIR} ${DUPL_PARAM_ENC} \
-${DUPL_PARAM_SIGN} --verbosity '${VERBOSITY:-4}' \
+DUPL_PARAMS_GLOBAL="${DUPL_ARCHDIR} ${DUPL_PARAM_ENC}\
+ ${DUPL_PARAM_SIGN} ${VERBOSITY:+--verbosity $VERBOSITY}\
  ${GPG_OPTS}"
 
-DUPL_VARS_GLOBAL="TMPDIR='$TEMP_DIR' \
+DUPL_VARS_GLOBAL="TMPDIR='$TEMP_DIR'\
  ${DUPL_ARG_ENC}"
 }
 
 # function to filter the DUPL_PARAMS var from user conf
 function duplicity_params_conf {
+  local OUT="$DUPL_PARAMS"
   # reuse cmd var from main loop
-  ## in/exclude parameters are currently not supported on restores
-  if [ "$cmd" = "fetch" ] || [ "$cmd" = "restore" ] || [ "$cmd" = "status" ]; 
then
-    # filter exclude params from fetch/restore/status
-    eval "stripXcludes $DUPL_PARAMS"
-    return
-  fi
+  ## in/exclude parameters are currently not supported on 
+  ## cleanup, status (collection_status), list (list_current_files), purge* 
(remove_*), fetch/restore
+  case $cmd in
+    cleanup | status | list | purge* | restore | fetch )
+      # filter exclude params from fetch/restore/status
+      OUT=$(eval stripXcludes $OUT)
+    ;;
+  esac
+
+  case $cmd in
+    bkp | incr | full )
+      # nothing to strip, we're backing up'
+    ;;
+    *)
+      OUT=$(eval stripBkpOnlyParams $OUT)
+    ;;
+  esac
 
-  # nothing done, print unchanged
-  echo "$DUPL_PARAMS"
+  # print result
+  echo "$OUT"
 }
 
 # strip in/exclude parameters from param string
 function stripXcludes {
   local STRIPNEXT OUT;
   for p in "$@"; do
+    #echo "calc =$p="
     if [ -n "$STRIPNEXT" ]; then
       unset STRIPNEXT
       # strip the value of previous parameter
       continue
-    elif echo "$p" | awk '/^\-\-(in|ex)clude(\-[a-zA-Z]+)?$/{exit 0;}{exit 
1;}'; then
+    elif echo "$p" | awk '/^\-\-(in|ex)clude(\-[a-zA-Z\-]+)?$/{exit 0;}{exit 
1;}'; then
       # strips e.g. --include /foo/bar
       STRIPNEXT="yes"
       continue
-    elif echo "$p" | awk '/^\-\-(in|ex)clude(\-[a-zA-Z]+)?=/{exit 0;}{exit 
1;}'; then
+    elif echo "$p" | awk '/^\-\-(in|ex)clude(\-[a-zA-Z\-]+)?=/{exit 0;}{exit 
1;}'; then
       # strips e.g. --include=/foo/bar
       continue
     fi
-    
+
+    OUT="$OUT $(qw "$p")"
+  done
+  echo "$OUT"
+}
+
+# strip backup only parameters from param string
+function stripBkpOnlyParams {
+  local STRIPNEXT OUT;
+
+  for p in "$@"; do
+    if [ -n "$STRIPNEXT" ]; then
+      unset STRIPNEXT
+      # strip the value of previous parameter
+      continue
+    elif echo "$p" | awk 
'/^\-\-(allow-source-mismatch|asynchronous-upload|dry-run)$/{exit 0;}{exit 
1;}'; then
+      continue
+    elif echo "$p" | awk '/^\-\-(volsize)$/{exit 0;}{exit 1;}'; then
+      # strips e.g. --volsize 100
+      STRIPNEXT="yes"
+      continue
+    elif echo "$p" | awk '/^\-\-volsize=/{exit 0;}{exit 1;}'; then
+      # strips e.g. --volsize=100
+      continue
+    fi
+
     OUT="$OUT $(qw "$p")"
   done
   echo "$OUT"
@@ -1416,8 +1478,8 @@
     CMD="$PYTHON $(qw "$(which duplicity)")"
 
 $RUN "${DUPL_VARS_GLOBAL} ${BACKEND_PARAMS}\
-  ${DUPL_PRECMD} $CMD $DUPL_CMD $DUPL_PARAMS_GLOBAL $(duplicity_params_conf)\
-  $GPG_USEAGENT $(gpg_custom_binary) $DUPL_CMD_PARAMS"
+ ${DUPL_PRECMD} $CMD $DUPL_CMD $DUPL_PARAMS_GLOBAL $(duplicity_params_conf)\
+ $GPG_USEAGENT $(gpg_custom_binary) $DUPL_CMD_PARAMS"
 
   local ERR=$?
   return $ERR
@@ -2261,9 +2323,9 @@
 
 
 # get volsize, default duplicity volume size is 25MB since v0.5.07
-VOLSIZE=${VOLSIZE:-25}
+#VOLSIZE=${VOLSIZE:-25}
 # double if asynch is on
-echo $@ $DUPL_PARAMS | grep -q -e '--asynchronous-upload' && FACTOR=2 || 
FACTOR=1
+#echo $@ $DUPL_PARAMS | grep -q -e '--asynchronous-upload' && FACTOR=2 || 
FACTOR=1
 
 # TODO: check for enough (async= upload space and WARN only
 #       use function tmp_space 
@@ -2440,7 +2502,7 @@
   print cmds}")
 
 # split commands by '_', preserve spaces even if not allowed :)
-IFS='_' read -ra CMDS_IN <<< "$(tolower $cmds)"
+IFS='_' read -ra CMDS_IN <<< "$(tolower "$cmds")"
 
 # convert cmds to array, 
 # post process, translate batch commands
@@ -2602,11 +2664,11 @@
     ( run_script "$script" )
     ;;
   'bkp')
-    duplify -- "${dupl_opts[@]}" $EXCLUDE_PARAM "$EXCLUDE" \
+    duplify backup -- "${dupl_opts[@]}" $EXCLUDE_PARAM "$EXCLUDE" \
           "$SOURCE" "$BACKEND_URL"
     ;;
   'incr')
-    duplify incr -- "${dupl_opts[@]}" $EXCLUDE_PARAM "$EXCLUDE" \
+    duplify incremental -- "${dupl_opts[@]}" $EXCLUDE_PARAM "$EXCLUDE" \
           "$SOURCE" "$BACKEND_URL"
     ;;
   'full')
@@ -2627,7 +2689,7 @@
     Syntax is -> $ME <profile> verifyPath <rel_bkp_path> <local_path> [<age>]"
 
     duplify verify -- $TIME "${dupl_opts[@]}" $EXCLUDE_PARAM "$EXCLUDE" \
-          --file-to-restore "$IN_PATH" "$BACKEND_URL" "$OUT_PATH"
+          --path-to-restore "$IN_PATH" "$BACKEND_URL" "$OUT_PATH"
     ;;
   'list')
     # time param exists since 0.5.10+
@@ -2664,20 +2726,19 @@
   
   Hint: 
     Syntax is -> $ME <profile> restore <target_path> [<age>]"
-    
-    duplify  -- -t "$TIME" "${dupl_opts[@]}" "$BACKEND_URL" "$OUT_PATH"
+
+    duplify restore -- -t "$TIME" "${dupl_opts[@]}" "$BACKEND_URL" "$OUT_PATH"
     ;;
   'fetch')
     IN_PATH="${ftpl_pars[0]}"; OUT_PATH="${ftpl_pars[1]}"; 
     TIME="${ftpl_pars[2]:-now}";
     ( [ -z "$IN_PATH" ] || [ -z "$OUT_PATH" ] ) && error "  Missing parameter 
<src_path> or <target_path> for fetch.
-  
+
   Hint: 
     Syntax is -> $ME <profile> fetch <src_path> <target_path> [<age>]"
-    
-    # duplicity 0.4.7 doesnt like cmd restore in combination with 
--file-to-restore
-    duplify -- --restore-time "$TIME" "${dupl_opts[@]}" \
-              --file-to-restore "$IN_PATH" "$BACKEND_URL" "$OUT_PATH"
+
+    duplify restore -- --restore-time "$TIME" "${dupl_opts[@]}" \
+              --path-to-restore "$IN_PATH" "$BACKEND_URL" "$OUT_PATH"
     ;;
   'status')
     duplify collection-status -- "${dupl_opts[@]}" "$BACKEND_URL"

Reply via email to