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"