Hello community, here is the log from the commit of package duply for openSUSE:Factory checked in at Sat Oct 8 11:42:02 CEST 2011. -------- --- openSUSE:Factory/duply/duply.changes 2011-09-23 01:55:53.000000000 +0200 +++ duply/duply.changes 2011-10-07 23:26:09.000000000 +0200 @@ -1,0 +2,21 @@ +Fri Oct 7 21:22:09 UTC 2011 - malcolmlewis@opensuse.org + +- Update version to 1.5.5.3: + + Bugfix 3416690: repaired preview threw echo1 error. + + Fix unknown cmds error usage & friends if more than 2 params + were given. +- Updates from 1.5.5.2: + + Bugfix 3409643: ssh key auth did ask for passphrase + (--ssh-askpass ?). + + Bugfix: mawk does not support \W and did not split multikey + definitions. + + All parameters should survive single (') and double (") + quotes now. + +------------------------------------------------------------------- +Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de + +- Remove redundant tags/sections from specfile + (cf. packaging guidelines) + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- duply_1.5.5.1.tgz New: ---- duply_1.5.5.3.tgz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ duply.spec ++++++ --- /var/tmp/diff_new_pack.H1vNmj/_old 2011-10-08 11:41:42.000000000 +0200 +++ /var/tmp/diff_new_pack.H1vNmj/_new 2011-10-08 11:41:42.000000000 +0200 @@ -19,13 +19,13 @@ Name: duply -Version: 1.5.5.1 +Version: 1.5.5.3 Release: 1 License: GPL-2.0 Summary: A frontend for the mighty duplicity magic Url: http://duply.net/ Group: Productivity/Archiving/Compression -Source0: http://cdnetworks-us-2.dl.sourceforge.net/project/ftplicity/duply%20%28simpl... +Source0: http://cdnetworks-us-2.dl.sourceforge.net/project/ftplicity/duply%20%28simpl... Requires: duplicity BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -44,9 +44,6 @@ %install install -D -m0755 %{name} %{buildroot}%{_bindir}/%{name} -%clean -rm -rf '%{buildroot}' - %files %defattr(-,root,root,-) %doc gpl-2.0.txt ++++++ duply_1.5.5.1.tgz -> duply_1.5.5.3.tgz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duply_1.5.5.1/duply new/duply_1.5.5.3/duply --- old/duply_1.5.5.1/duply 2011-06-07 11:29:40.000000000 +0200 +++ new/duply_1.5.5.3/duply 2011-10-01 12:45:02.000000000 +0200 @@ -38,6 +38,15 @@ # - import/export profile from/to .tgz function !!! # # CHANGELOG: +# 1.5.5.3 (1.10.2011) +# - bugfix 3416690: repaired preview threw echo1 error +# - fix unknown cmds error usage & friends if more than 2 params were given +# +# 1.5.5.2 (23.9.2011) +# - bugfix 3409643: ssh key auth did ask for passphrase (--ssh-askpass ?) +# - bugfix: mawk does not support \W and did not split multikey definitions +# - all parameters should survive single (') and double (") quotes now +# # 1.5.5.1 (7.6.2011) # - featreq 3311881: add ftps as supported by duplicity 0.6.13 (thx mape2k) # - bugfix 3312208: signing detection broke symmetric gpg test routine @@ -263,7 +272,7 @@ ME_LONG="$0" ME="$(basename $0)" ME_NAME="${ME%%.*}" -ME_VERSION="1.5.5.1" +ME_VERSION="1.5.5.3" ME_WEBSITE="http://duply.net" # default config values @@ -532,7 +541,7 @@ # syntax is # scheme://[user:password@]host[:port]/[/]path # probably one out of -# file:///some_dir +# file://[/absolute_]path # ftp[s]://user[:password]@other.host[:port]/some_dir # hsi://user[:password]@other.host/some_dir # cf+http://container_name @@ -544,7 +553,7 @@ # # for the s3 user/password are AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY # s3://[user:password]@host/bucket_name[/prefix] # s3+http://[user:password]@bucket_name[/prefix] -# scp://user[:password]@other.host[:port]/some_dir +# # scp and sftp are aliases for the ssh backend # ssh://user[:password]@other.host[:port]/some_dir # tahoe://alias/directory # webdav[s]://user[:password]@other.host/some_dir @@ -562,6 +571,11 @@ # base directory to backup SOURCE='${DEFAULT_SOURCE}' +# exclude folders containing exclusion file (since duplicity 0.5.14) +# Uncomment the following two lines to enable this setting. +#FILENAME='.duplicity-ignore' +#DUPL_PARAMS="\$DUPL_PARAMS --exclude-if-present '\$FILENAME'" + # Time frame for old backups to keep, Used for the "purge" command. # see duplicity man page, chapter TIME_FORMATS) # defaults to 1M, if not set @@ -572,6 +586,19 @@ # defaults to 1, if not set #MAX_FULL_BACKUPS=1 +# activates duplicity --full-if-older-than option (since duplicity v0.4.4.RC3) +# forces a full backup if last full backup reaches a specified age, for the +# format of MAX_FULLBKP_AGE see duplicity man page, chapter TIME_FORMATS +# Uncomment the following two lines to enable this setting. +#MAX_FULLBKP_AGE=1M +#DUPL_PARAMS="\$DUPL_PARAMS --full-if-older-than \$MAX_FULLBKP_AGE " + +# sets duplicity --volsize option (available since v0.4.3.RC7) +# set the size of backup chunks to VOLSIZE MB instead of the default 25MB. +# VOLSIZE must be number of MB's to set the volume size to. +# Uncomment the following two lines to enable this setting. +#VOLSIZE=50 +#DUPL_PARAMS="\$DUPL_PARAMS --volsize \$VOLSIZE " # verbosity of output (error 0, warning 1-2, notice 3-4, info 5-8, debug 9) # default is 4, if not set @@ -591,25 +618,6 @@ # if set '\${ARCH_DIR}/<profile>' #ARCH_DIR=/some/space/safe/.duply-cache -# activates duplicity --full-if-older-than option (since duplicity v0.4.4.RC3) -# forces a full backup if last full backup reaches a specified age, for the -# format of MAX_FULLBKP_AGE see duplicity man page, chapter TIME_FORMATS -# Uncomment the following two lines to enable this setting. -#MAX_FULLBKP_AGE=1M -#DUPL_PARAMS="\$DUPL_PARAMS --full-if-older-than \$MAX_FULLBKP_AGE " - -# sets duplicity --volsize option (available since v0.4.3.RC7) -# set the size of backup chunks to VOLSIZE MB instead of the default 25MB. -# VOLSIZE must be number of MB's to set the volume size to. -# Uncomment the following two lines to enable this setting. -#VOLSIZE=50 -#DUPL_PARAMS="\$DUPL_PARAMS --volsize \$VOLSIZE " - -# exclude folders containing exclusion file (since duplicity 0.5.14) -# Uncomment the following two lines to enable this setting. -#FILENAME='.duplicity-ignore' -#DUPL_PARAMS="\$DUPL_PARAMS --exclude-if-present '\$FILENAME'" - # DEPRECATED setting # sets duplicity --time-separator option (since v0.4.4.RC2) to allow users # to change the time separator from ':' to another character that will work @@ -825,6 +833,21 @@ return $CMD_ERR } +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 + echo "$param" | awk '{\ + gsub(/[\047]/,"\047\\\047\047",$0);\ + gsub(/[\042]/,"\047\\\042\047",$0);\ + print "\047"$0"\047"}' + return + fi + echo $param +} + function duplicity_params_global { # already done? return var_isset 'DUPL_PARAMS_GLOBAL' && return @@ -837,11 +860,11 @@ gpg_signing && local DUPL_PARAM_SIGN=$(gpg_prefix_keyset ' --sign-key ' 'GPG_KEY_SIGN') # interpret password setting if var_isset 'GPG_PW'; then - local DUPL_ARG_ENC="PASSPHRASE='$GPG_PW'" + local DUPL_ARG_ENC="PASSPHRASE=$(qw "${GPG_PW}")" fi fi - local GPG_OPTS=${GPG_OPTS:+"--gpg-options '${GPG_OPTS}'"} + local GPG_OPTS=${GPG_OPTS:+"--gpg-options $(qw "${GPG_OPTS}")"} # set name for dupl archive folder, since 0.6.0 if duplicity_version_ge 601; then @@ -882,10 +905,6 @@ if [ "$param" == "--" ] ; then PARAMSNOW=1 else - # quote strings having non word chars (e.g. spaces) - if echo "$param" | awk '/[^A-Za-z0-9_\.\-]/{exit 0}{exit 1}'; then - param="'$param'" - fi [ ! $PARAMSNOW ] && \ DUPL_CMD="$DUPL_CMD $param" \ || \ @@ -896,9 +915,10 @@ # init global duplicity parameters same for all tasks duplicity_params_global - eval ${PREVIEW:+echo \"} ${DUPL_VARS_GLOBAL} ${BACKEND_PARAMS} \ + var_isset 'PREVIEW' && local RUN=echo || local RUN=eval +$RUN ${DUPL_VARS_GLOBAL} ${BACKEND_PARAMS} \ duplicity $DUPL_CMD $DUPL_PARAMS_GLOBAL $(duplicity_params_conf)\ - $DUPL_CMD_PARAMS ${PREVIEW:+\"} + $DUPL_CMD_PARAMS ${PREVIEW:+} local ERR=$? return $ERR @@ -1118,7 +1138,7 @@ } function gpg_split_keyset { - awk "BEGIN{ keys=toupper(\"$@\"); gsub(/\W/,\" \",keys); print keys }" + awk "BEGIN{ keys=toupper(\"$@\"); gsub(/[^A-Z0-9]/,\" \",keys); print keys }" } function gpg_join_keyset { @@ -1179,13 +1199,13 @@ # OR requested usage info # OR create a profile # OR fall through -if [ ${#@} -le 2 ]; then +##if [ ${#@} -le 2 ]; then case "$cmd" in - version|--version|-v|-V) + version|-version|--version|-v|-V) version_info_using exit 0 ;; - usage|--help|-h|-H) + usage|-help|--help|-h|-H) set_config usage_info exit 0 @@ -1218,13 +1238,14 @@ # if we reach here, user either forgot profile or chose wrong profileless command if [ ${#@} -le 1 ]; then error "\ - Missing or wrong parameters. Only the commands usage, version and create - can be called without selecting an existing profile first. '$cmd' + Missing or wrong parameters. + Only the commands usage, version and create can be called without selecting + an existing profile first. Your command was '$cmd'. Hint: Run '$ME usage' to get help." fi esac -fi +##fi # Hello world @@ -1274,22 +1295,32 @@ # secure config dir, if needed w/ warning secureconf -# split TARGET in handy variables, remove invalid chars ('") to protect script -TARGET_SPLIT_URL=$(awk -v target="$TARGET" 'BEGIN { \ - gsub(/[\047\042]/,"",target); match(target,/^([^\/:]+):\/\//); \ +# split TARGET in handy variables +TARGET_SPLIT_URL=$(echo $TARGET | awk '{ \ + target=$0; match(target,/^([^\/:]+):\/\//); \ prot=substr(target,RSTART,RLENGTH);rest=substr(target,RSTART+RLENGTH); \ if (credsavail=match(rest,/^[^@]*@/)){\ creds=substr(rest,RSTART,RLENGTH-1);\ credcount=split(creds,cred,":");\ rest=substr(rest,RLENGTH+1);\ - }print "TARGET_URL_PROT=\047"prot"\047\n"\ + };\ + # filter quotes or escape them\ + gsub(/[\047\042]/,"",prot);\ + gsub(/[\047\042]/,"",rest);\ + gsub(/[\047]/,"\047\\\047\047",creds);\ + print "TARGET_URL_PROT=\047"prot"\047\n"\ "TARGET_URL_HOSTPATH=\047"rest"\047\n"\ "TARGET_URL_CREDS=\047"creds"\047\n";\ - if(credsavail){print "TARGET_URL_USER=\047"cred[1]"\047\n"}\ - if(credcount>1){print "TARGET_URL_PASS=\047"cred[2]"\047\n"}\ + if(credsavail){\ + gsub(/[\047]/,"\047\\\047\047",cred[1]);\ + print "TARGET_URL_USER=\047"cred[1]"\047\n"}\ + if(credcount>1){\ + gsub(/[\047]/,"\047\\\047\047",cred[2]);\ + print "TARGET_URL_PASS=\047"cred[2]"\047\n"}\ }') eval ${TARGET_SPLIT_URL} + # check if backend specific software is in path [ -n "$(echo ${TARGET_URL_PROT} | grep -i -e '^ftp://$')" ] && \ [ -z "$(which ncftp 2>/dev/null)" ] && error_path "Protocol 'ftp' needs ncftp. Installed und available in path?" @@ -1476,7 +1507,7 @@ if var_isset 'GPG_KEY_SIGN'; then # warning - echo "Autoset first GPG_KEY entry '${KEY_ID}' as signing key." + echo "Autoset found secret key of first GPG_KEY entry '${KEY_ID}' as signing key." else echo "Signing disabled. First GPG_KEY entry's '${KEY_ID}' private key is missing." GPG_KEY_SIGN='disabled' @@ -1651,7 +1682,7 @@ update to a version greater than '0.6.10' of duplicity." var_isset 'TARGET_URL_PASS' && BACKEND_CREDS="${BACKEND_CREDS}:$(url_encode ${TARGET_URL_PASS})" else - var_isset 'TARGET_URL_PASS' && BACKEND_PARAMS="FTP_PASSWORD='${TARGET_URL_PASS}'" + var_isset 'TARGET_URL_PASS' && BACKEND_PARAMS="FTP_PASSWORD=$(qw "${TARGET_URL_PASS}")" fi var_isset 'BACKEND_CREDS' && BACKEND_CREDS="${BACKEND_CREDS}@" BACKEND_URL="${TARGET_URL_PROT}${BACKEND_CREDS}${TARGET_URL_HOSTPATH}" @@ -1664,13 +1695,17 @@ # sortout backends way to handle password case "${TARGET_URL_PROT%%:*}" in 'imap'|'imaps') - var_isset 'TARGET_URL_PASS' && BACKEND_PARAMS="IMAP_PASSWORD='${TARGET_URL_PASS}'" + var_isset 'TARGET_URL_PASS' && BACKEND_PARAMS="IMAP_PASSWORD=$(qw "${TARGET_URL_PASS}")" ;; - *) - # ssh backend wants to be told - [ -n "$(echo ${TARGET_URL_PROT} | grep -e '^\(ssh\|scp\)://$')" ] && \ + 'ssh'|'sftp'|'scp') + # ssh backend wants to be told that theres a pass to use + var_isset 'TARGET_URL_PASS' && \ DUPL_PARAMS="$DUPL_PARAMS --ssh-askpass" - var_isset 'TARGET_URL_PASS' && BACKEND_PARAMS="FTP_PASSWORD='${TARGET_URL_PASS}'" + ;; + *) + # rest uses FTP_PASS var + var_isset 'TARGET_URL_PASS' && \ + BACKEND_PARAMS="FTP_PASSWORD=$(qw "${TARGET_URL_PASS}")" ;; esac BACKEND_URL="${TARGET_URL_PROT}${BACKEND_CREDS}${TARGET_URL_HOSTPATH}" continue with "q"... Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org