Hello community,
here is the log from the commit of package duply for openSUSE:Factory checked in at 2016-09-30 15:33:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duply (Old)
and /work/SRC/openSUSE:Factory/.duply.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "duply"
Changes:
--------
--- /work/SRC/openSUSE:Factory/duply/duply.changes 2015-10-02 09:23:37.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.duply.new/duply.changes 2016-09-30 15:33:15.000000000 +0200
@@ -1,0 +2,31 @@
+Mon Sep 26 01:42:40 UTC 2016 - malcolmlewis@opensuse.org
+
+- Update to version 1.11.3:
+ + Fix wrong "WARNING: No running gpg-agent ..." when sign key was
+ not set.
+- Changes from version 1.11.2:
+ + Fix "gpg: unsafe" version print out.
+ + Bugfix 91: v1.11 [r47] broke asymmetric encryption when using
+ GPG_KEYS_ENC.
+ + Bugfix 90: S3: TARGET_USER/PASS have no effect, added
+ additional documentation about needed env vars to template
+ conf file.
+- Changes from version 1.11.1:
+ + Reverted duply's default PYTHON to 'python'.
+- Changes from version 1.11:
+ + Remove obsolete --ssh-askpass routine.
+ + Add PYTHON conf var to allow global override of used python
+ interpreter.
+ + Enforced usage of "python2" in PATH as default interpreter for
+ internal use _and_ to run duplicity (setup.py changed the
+ shebang to the fixed path /usr/bin/python until 0.7.05, which
+ we circumvent this way).
+ + Feature 36: Support gpg-connect-agent as a means to detect if
+ an agent is running, used gpg-agent for detection though.
+ + Quotewrapped run_cmd parameters to protect it from spaces eg.
+ in TMP path.
+ + Key export routine respects gpg-agent usage now.
+- Update copyright year.
+- Add ChangeLog to package.
+
+-------------------------------------------------------------------
Old:
----
duply_1.10.1.tgz
New:
----
duply_1.11.3.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ duply.spec ++++++
--- /var/tmp/diff_new_pack.Hpz7kC/_old 2016-09-30 15:33:17.000000000 +0200
+++ /var/tmp/diff_new_pack.Hpz7kC/_new 2016-09-30 15:33:17.000000000 +0200
@@ -1,8 +1,8 @@
#
# spec file for package duply
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# Copyright (c) 2011-2015 Malcolm J Lewis
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2011-2016 Malcolm J Lewis
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,13 +18,13 @@
Name: duply
-Version: 1.10.1
+Version: 1.11.3
Release: 0
Summary: A frontend for the mighty duplicity magic
License: GPL-2.0
Group: Productivity/Archiving/Compression
Url: http://duply.net/
-Source0: http://downloads.sourceforge.net/ftplicity/duply%20%28simple%20duplicity%29/1.10.x/%{name}_%{version}.tgz
+Source0: http://downloads.sourceforge.net/ftplicity/duply%20%28simple%20duplicity%29/1.11.x/%{name}_%{version}.tgz
# MANUAL BEGIN
Requires: duplicity
# MANUAL END
@@ -47,7 +47,7 @@
%files
%defattr(-,root,root,-)
-%doc gpl-2.0.txt
+%doc CHANGELOG.txt gpl-2.0.txt
%{_bindir}/%{name}
%changelog
++++++ duply_1.10.1.tgz -> duply_1.11.3.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duply_1.10.1/CHANGELOG.txt new/duply_1.11.3/CHANGELOG.txt
--- old/duply_1.10.1/CHANGELOG.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/duply_1.11.3/CHANGELOG.txt 2016-05-29 13:16:04.000000000 +0200
@@ -0,0 +1,394 @@
+###############################################################################
+TODO/IDEAS/KNOWN PROBLEMS:
+- possibility to restore time frames (incl. deleted files)
+ realizable by listing each backup and restore from
+ oldest to the newest, problem: not performant
+- search file in all backups function and show available
+ versions with backups date (list old avail since 0.6.06)
+- edit profile opens conf file in vi
+- implement log-fd interpretation
+- add a duplicity option check against the options pending
+ deprecation since 0.5.10 namely --time-separator
+ --short-filenames
+ --old-filenames
+- add 'exclude_<command>' list usage eg. exclude_verify
+- featreq 25: a download/install duplicity option
+- hint on install software if a piece is missing
+- import/export profile from/to .tgz function !!!
+
+CHANGELOG:
+1.11.3 (29.5.2016)
+- fix wrong "WARNING: No running gpg-agent ..." when sign key was not set
+
+1.11.2 (11.2.2016)
+- fix "gpg: unsafe" version print out
+- bugfix 91: v1.11 [r47] broke asymmetric encryption when using GPG_KEYS_ENC
+- bugfix 90: S3: TARGET_USER/PASS have no effect, added additional
+ documentation about needed env vars to template conf file
+
+1.11.1 (18.12.2015)
+- bugfix 89: "Duply has trouble with PYTHON-interpreter" on OSX homebrew
+- reverted duply's default PYTHON to 'python'
+
+1.11 (24.11.2015)
+- remove obsolete --ssh-askpass routine
+- add PYTHON conf var to allow global override of used python interpreter
+- enforced usage of "python2" in PATH as default interpreter for internal
+ use _and_ to run duplicity (setup.py changed the shebang to the fixed
+ path /usr/bin/python until 0.7.05, which we circumvent this way)
+- featreq 36: support gpg-connect-agent as a means to detect if an agent is
+ running (thx Thomas Harning Jr.), used gpg-agent for detection though
+- quotewrapped run_cmd parameters to protect it from spaces eg. in TMP path
+- key export routine respects gpg-agent usage now
+
+1.10.1 (19.8.2015)
+- bugfix 86: Duply+Swift outputs warning
+- bugfix 87: Swift fails without BACKEND_URL
+
+1.10 (31.7.2015)
+- featreq 37: busybox issues - fix awk, grep version detection,
+ fix grep failure because --color=never switch is unsupported
+ (thx Thomas Harning Jr. for reporting and helping to debug/fix it)
+- bugfix 81: --exclude-globbing-filelist is deprecated since 0.7.03
+ (thx Joachim Wiedorn, also for maintaining the debian package)
+- implemented base-/dirname as bash functions
+- featreq 31 " Support for duplicity Azure backend " - ignored a
+ contributed patch by Scott McKenzie and instead opted for removing almost
+ all code that deals with special env vars required by backends.
+ adding and modifying these results in too much overhead so i dropped this
+ feature. the future alternative for users is to consult the duplicity
+ manpage and add the needed export definitions to the conf file.
+ appended a commented example to the template conf below the auth section.
+
+1.9.2 (21.6.2015)
+- bugfix: exporting keys with gpg2.1 works now (thx Philip Jocks)
+- documented GPG_OPTS needed for gpg2.1 to conf template (thx Troy Engel)
+- bugfix 82: GREP_OPTIONS=--color=always disrupted time calculation
+- added GPG conf var (see conf template for details)
+- added grep version output as it is an integral needed binary
+- added PYTHONPATH printout in version output
+
+1.9.1 (13.10.2014)
+- export CMD_ERR now for scripts to detect if CMD_PREV failed/succeeded
+- bugfix: CMD_PREV contained command even if it was skipped
+
+1.9.0 (24.8.2014)
+- bugfix: env vars were not exported when external script was executable
+- rework GPG_KEY handling, allow virtually anything now (uid, keyid etc.)
+ see gpg manpage, section "How to specify a user ID"
+ let gpg complain when the delivered values are invalid for whatever reason
+- started to rework tmp space checking, exposed folder & writable check
+ TODO: reimplement enough file space available checking
+
+1.8.0 (13.7.2014)
+- add command verifyPath to expose 'verify --file-to-restore' action
+- add time parameter support to verify command
+- add section time formats to usage output
+
+1.7.4 (24.6.2014)
+- remove ubuntu one support, service is discontinued
+- featreq 31: add authenticated swift (contributed by Justus Seifert)
+
+1.7.3 (3.4.2014)
+- bugfix: test routines, gpg2 asked for passphrase although GPG_PW was set
+
+1.7.2 (1.4.2014 "April,April")
+- bugfix: debian Bug#743190 "duply no longer allows restoration without
+ gpg passphrase in conf file"
+ GPG_AGENT_INFO env var is now needed to trigger --use-agent
+- bugfix: gpg keyenc test routines didn't work if GPG_PW was not set
+
+1.7.1 (30.3.2014)
+- bugfix: purge-* commands renamed to purgeFull, purgeIncr due to
+ incompatibility with new minus batch separator
+
+1.7.0 (20.3.2014)
+- disabled gpg key id plausibility check, too many valid possibilities
+- featreq 7 "Halt if precondition fails":
+ added and(+), or(-) batch command(separator) support
+- featreq 26 "pre/post script with shebang line":
+ if a script is flagged executable it's executed in a subshell
+ now as opposed to sourced to bash, which is the default
+- bugfix: do not check if dpbx, swift credentials are set anymore
+- bugfix: properly escape profile name, archdir if used as arguments
+- add DUPL_PRECMD conf setting for use with e.g. trickle
+
+1.6.0 (1.1.2014)
+- support gs backend
+- support dropbox backend
+- add gpg-agent support to gpg test routines
+- autoenable --use-agent if passwords were not defined in config
+- GPG_OPTS are now honored everywhere, keyrings or complete gpg
+ homedir can thus be configured to be located anywhere
+- always import both secret and public key if avail from config profile
+- new explanatory comments in initial exclude file
+- bugfix 7: Duply only imports one key at a time
+
+1.5.11 (19.07.2013)
+- purge-incr command for remove-all-inc-of-but-n-full feature added
+ patch provided by Moritz Augsburger, thanks!
+- documented version command in man page
+
+1.5.10 (26.03.2013)
+- minor indent and documentation fixes
+- bugfix: exclude filter failed on ubuntu, mawk w/o posix char class support
+- bugfix: fix url_decoding generally and for python3
+- bugfix 3609075: wrong script results in status line (thx David Epping)
+
+1.5.9 (22.11.2012)
+- bugfix 3588926: filter --exclude* params for restore/fetch ate too much
+- restore/fetch now also ignores --include* or --exclude='foobar'
+
+1.5.8 (26.10.2012)
+- bugfix 3575487: implement proper cloud files support
+
+1.5.7 (10.06.2012)
+- bugfix 3531450: Cannot use space in target URL (file:///) anymore
+
+1.5.6 (24.5.2012)
+- commands purge, purge-full have no default value anymore for security
+ reasons; instead max value can be given via cmd line or must be set
+ in profile; else an error is shown.
+- minor man page modifications
+
+versioning scheme will be simplified to [major].[minor].[patch] version
+with the next version raise
+
+1.5.5.5 (4.2.2012)
+- bugfix 3479605: SEL context confused profile folder's permission check
+- colon ':' in url passphrase got ignored, added python driven url_decoding
+ for user & pass to better process special chars
+
+1.5.5.4 (16.10.2011)
+- bugfix 3421268: SFTP passwords from conf ignored and always prompted for
+- add support for separate sign passphrase (needs duplicity 0.6.14+)
+
+1.5.5.3 (1.10.2011)
+- bugfix 3416690: 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
+
+1.5.5 (2.5.2011)
+- bugfix: fetch problem with space char in path, escape all params
+ containing non word chars
+- list available profiles, if given profile cannot be found
+- added --use-agent configuration hint
+- bugfix 3174133: --exclude* params in conf DUPL_PARAMS broke
+ fetch/restore
+- version command now prints out 'using installed' info
+- featreq 3166169: autotrust imported keys, based on code submitted by
+ Martin Ellis - imported keys are now automagically trusted ultimately
+- new txt2man feature to create manpages for package maintainers
+
+1.5.4.2 (6.1.2011)
+- new command changelog
+- bugfix 3109884: freebsd awk segfaulted on printf '%*', use print again
+- bugfix: freebsd awk hangs on 'awk -W version'
+- bugfix 3150244: mawk does not know '--version'
+- minor help text improvements
+- new env vars CMD_PREV,CMD_NEXT replacing CMD env var for scripts
+
+1.5.4.1 (4.12.2010)
+- output awk, python, bash version now in prolog
+- shebang uses /usr/bin/env now for freebsd compatibility,
+ bash not in /bin/bash
+- new --disable-encryption parameter,
+ to override profile encr settings for one run
+- added exclude-if-present setting to conf template
+- bug 3126972: GPG_PW only needed for signing/symmetric encryption
+ (even though duplicity still needs it)
+
+1.5.4 (15.11.2010)
+- as of 1.5.3 already, new ARCH_DIR config option
+- multiple key support
+- ftplicity-Feature Requests-2994929: separate encryption and signing key
+- key signing of symmetric encryption possible (duplicity patch committed)
+- gpg tests disable switch
+- gpg tests now previewable and more intelligent
+
+1.5.3 (1.11.2010)
+- bugfix 3056628: improve busybox compatibility, grep did not have -m param
+- bugfix 2995408: allow empty password for PGP key
+- bugfix 2996459: Duply erroneously escapes '-' symbol in username
+- url_encode function is now pythonized
+- rsync uses FTP_PASSWORD now if duplicity 0.6.10+ , else issue warning
+- feature 3059262: Make pre and post aware of parameters,
+ internal parameters + CMD of pre or post
+
+1.5.2.3 (16.4.2010)
+- bugfix: date again, should now work virtually anywhere
+
+1.5.2.2 (3.4.2010)
+- minor bugfix: duplicity 0.6.8b version string now parsable
+- added INSTALL.txt
+
+1.5.2.1 (23.3.2010)
+- bugfix: date formatting is awked now and should work on all platforms
+
+1.5.2 (2.3.2010)
+- bugfix: errors print to STD_ERR now, failed tasks print an error message
+- added --name=duply_<profile> for duplicity 0.6.01+ to name cache folder
+- simplified & cleaned profileless commands, removed second instance
+- generalized separator time routines
+- added support for --no-encryption (GPG_KEY='disabled'), see conf examples
+- minor fixes
+
+1.5.1.5 (5.2.2010)
+- bugfix: added special handling of credentials for rsync, imap(s)
+
+1.5.1.4 (7.1.2010)
+- bugfix: nsecs defaults now to zeroes if date does not deliver [0-9]{9}
+- check if ncftp binary is available if url protocol is ftp
+- bugfix: duplicity output is now printed to screen directly to resolve
+ 'mem alloc problem' bug report
+- bugfix: passwords will not be in the url anymore to solve the 'duply shows
+ sensitive data in process listing' bug report
+
+1.5.1.3 (24.12.2009) 'merry xmas'
+- bugfix: gpg pass now apostrophed to allow space and friends
+- bugfix: credentials are now url encoded to allow special chars in them
+ a note about url encoding has been added to the conf template
+
+1.5.1.2 (1.11.2009)
+- bugfix: open parenthesis in password broke duplicity execution
+- bugfix: ssh/scp backend does not always need credentials e.g. key auth
+
+1.5.1.1 (21.09.2009)
+- bugfix: fixed s3[+http] TARGET_PASS not needed routine
+- bugfix: TYPO in duply 1.5.1 prohibited the use of /etc/duply
+ see https://sourceforge.net/tracker/index.php?func=detail&
+ aid=2864410&group_id=217745&atid=1041147
+
+1.5.1 (21.09.2009) - duply (fka. ftplicity)
+- first things first: ftplicity (being able to support all backends since
+ some time) will be called duply (fka. ftplicity) from now on. The addendum
+ is for the time being to circumvent confusion.
+- bugfix: exit code is 1 (error) not 0 (success), if at least on duplicity
+ command failed
+- s3[+http] now supported natively by translating user/pass to access_key/
+ secret_key environment variables needed by duplicity s3 boto backend
+- bugfix: additional output lines do not confuse version check anymore
+- list command supports now age parameter (patch by stefan on feature
+ request tracker)
+- bugfix: option/param pairs are now correctly passed on to duplicity
+- bugfix: s3[+http] needs no TARGET_PASS if command is read only
+
+1.5.0.2 (31.07.1009)
+- bugfix: insert password in target url didn't work with debian mawk
+ related to previous bug report
+
+1.5.0.1 (23.07.2009)
+- bugfix: gawk gensub dependency raised an error on debian's default mawk
+ replaced with match/substr command combination (bug report)
+ https://sf.net/tracker/?func=detail&atid=1041147&aid=2825388&
+ group_id=217745
+
+1.5.0 (01.07.2009)
+- removed ftp limitation, all duplicity backends should work now
+- bugfix: date for separator failed on openwrt busybox date, added a
+ detecting workaround, milliseconds are not available w/ busybox date
+
+1.4.2.1 (14.05.2009)
+- bugfix: free temp space detection failed with lvm, fixed awk parse routine
+
+1.4.2 (22.04.2009)
+- gpg keys are now exported as gpgkey.[id].asc , the suffix reflects the
+ armored ascii nature, the id helps if the key is switched for some reason
+ im/export routines are updated accordingly (import is backward compatible
+ to the old profile/gpgkey files)
+- profile argument is treated as path if it contains slashes
+ (for details see usage)
+- non-ftplicity options (all but --preview currently) are now passed
+ on to duplicity
+- removed need for stat in secure_conf, it is ls based now
+- added profile folder readable check
+- added gpg version & home info output
+- awk utility availability is now checked, because it was mandatory already
+- tmp space is now checked on writability and space requirement
+ test fails on less than 25MB or configured $VOLSIZE,
+ test warns if there is less than two times $VOLSIZE because
+ that's required for --asynchronous-upload option
+- gpg functionality is tested now before executing duplicity
+ test drive contains encryption, decryption, comparison, cleanup
+ this is meant to detect non trusted or other gpg errors early
+- added possibility of doing symmetric encryption with duplicity
+ set GPG_KEY="" or simply comment it out
+- added hints in config template on the depreciation of
+ --short-filenames, --time-separator duplicity options
+
+new versioning scheme 1.4.2b => 1.4.2,
+beta b's are replaced by a patch count number e.g. 1.4.2.1 will be assigned
+to the first bug fixing version and 1.4.2.2 to the second and so on
+also the releases will now have a release date formatted (Day.Month.Year)
+
+1.4.1b1 - bugfix: ftplicity changed filesystem permission of a folder
+ named exactly as the profile if existing in executing dir
+ - improved plausibility checking of config and profile folder
+ - secure_conf only acts if needed and prints a warning now
+
+1.4.1b - introduce status (duplicity collection-status) command
+ - pre/post script output printed always now, not only on errors
+ - new config parameter GPG_OPTS to pass gpg options
+ added examples & comments to profile template conf
+ - reworked separator times, added duration display
+ - added --preview switch, to preview generated command lines
+ - disabled MAX_AGE, MAX_FULL_BACKUPS, VERBOSITY in generated
+ profiles because they have reasonable defaults now if not set
+
+1.4.0b1 - bugfix: incr forces incremental backups on duplicity,
+ therefore backup translates to pre_bkp_post now
+ - bugfix: new command bkp, which represents duplicity's
+ default action (incr or full if full_if_older matches
+ or no earlier backup chain is found)
+
+new versioning scheme 1.4 => 1.4.0, added new minor revision number
+this is meant to slow down the rapid version growing but still keep
+versions cleanly separated.
+only additional features will raise the new minor revision number.
+all releases start as beta, each bugfix release will raise the beta
+count, usually new features arrive before a version 'ripes' to stable
+
+1.4.0b
+ 1.4b - added startup info on version, time, selected profile
+ - added time output to separation lines
+ - introduced: command purge-full implements duplicity's
+ remove-all-but-n-full functionality (patch by unknown),
+ uses config variable $MAX_FULL_BACKUPS (default = 1)
+ - purge config var $MAX_AGE defaults to 1M (month) now
+ - command full does not execute pre/post anymore
+ use batch command pre_full_post if needed
+ - introduced batch mode cmd1_cmd2_etc
+ (in turn removed the bvp command)
+ - unknown/undefined command issues a warning/error now
+ - bugfix: version check works with 0.4.2 and older now
+ 1.3b3 - introduced pre/post commands to execute/debug scripts
+ - introduced bvp (backup, verify, purge)
+ - bugfix: removed need for awk gensub, now mawk compatible
+ 1.3b2 - removed pre/post need executable bit set
+ - profiles now under ~/.ftplicity as folders
+ - root can keep profiles in /etc/ftplicity, folder must be
+ created by hand, existing profiles must be moved there
+ - removed ftplicity in path requirement
+ - bugfix: bash < v.3 did not know '=~'
+ - bugfix: purge works again
+ 1.3 - introduces multiple profiles support
+ - modified some script errors/docs
+ - reordered gpg key check import routine
+ - added 'gpg key id not set' check
+ - added error_gpg (adds how to setup gpg key howto)
+ - bugfix: duplicity 0.4.4RC4+ parameter syntax changed
+ - duplicity_version_check routine introduced
+ - added time separator, shortnames, volsize, full_if_older
+ duplicity options to config file (inspired by stevie
+ from http://weareroot.de)
+ 1.1.1 - bugfix: encryption reactivated
+ 1.1 - introduced config directory
+ 1.0 - first release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/duply_1.10.1/duply new/duply_1.11.3/duply
--- old/duply_1.10.1/duply 2015-08-19 16:57:44.000000000 +0200
+++ new/duply_1.11.3/duply 2016-05-29 13:16:04.000000000 +0200
@@ -1,20 +1,20 @@
#!/usr/bin/env bash
#
-###############################################################################
-# duply (grown out of ftplicity), is a shell front end to duplicity that #
-# simplifies the usage by managing settings for backup jobs in profiles. #
-# It supports executing multiple commands in a batch mode to enable single #
-# line cron entries and executes pre/post backup scripts. #
-# Since version 1.5.0 all duplicity backends are supported. Hence the name #
-# 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-2015 Edgar Soldin (changes since version 1.3) #
-###############################################################################
-# LICENSE: #
-# This program is licensed under GPLv2. #
-# Please read the accompanying license information in gpl.txt. #
-###############################################################################
+################################################################################
+# duply (grown out of ftplicity), is a shell front end to duplicity that #
+# simplifies the usage by managing settings for backup jobs in profiles. #
+# It supports executing multiple commands in a batch mode to enable single #
+# line cron entries and executes pre/post backup scripts. #
+# Since version 1.5.0 all duplicity backends are supported. Hence the name #
+# 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-2016 Edgar Soldin (changes since version 1.3) #
+################################################################################
+# LICENSE: #
+# This program is licensed under GPLv2. #
+# Please read the accompanying license information in gpl.txt. #
+################################################################################
# TODO/IDEAS/KNOWN PROBLEMS:
# - possibility to restore time frames (incl. deleted files)
# realizable by listing each backup and restore from
@@ -32,14 +32,37 @@
# - hint on install software if a piece is missing
# - import/export profile from/to .tgz function !!!
#
-#
# CHANGELOG:
+# 1.11.3 (29.5.2016)
+# - fix wrong "WARNING: No running gpg-agent ..." when sign key was not set
+#
+# 1.11.2 (11.2.2016)
+# - fix "gpg: unsafe" version print out
+# - bugfix 91: v1.11 [r47] broke asymmetric encryption when using GPG_KEYS_ENC
+# - bugfix 90: S3: TARGET_USER/PASS have no effect, added additional
+# documentation about needed env vars to template conf file
+#
+# 1.11.1 (18.12.2015)
+# - bugfix 89: "Duply has trouble with PYTHON-interpreter" on OSX homebrew
+# - reverted duply's default PYTHON to 'python'
+#
+# 1.11 (24.11.2015)
+# - remove obsolete --ssh-askpass routine
+# - add PYTHON conf var to allow global override of used python interpreter
+# - enforced usage of "python2" in PATH as default interpreter for internal
+# use _and_ to run duplicity (setup.py changed the shebang to the fixed
+# path /usr/bin/python until 0.7.05, which we circumvent this way)
+# - featreq 36: support gpg-connect-agent as a means to detect if an agent is
+# running (thx Thomas Harning Jr.), used gpg-agent for detection though
+# - quotewrapped run_cmd parameters to protect it from spaces eg. in TMP path
+# - key export routine respects gpg-agent usage now
+#
# 1.10.1 (19.8.2015)
# - bugfix 86: Duply+Swift outputs warning
# - bugfix 87: Swift fails without BACKEND_URL
#
# 1.10 (31.7.2015)
-# - featreq 36: busybox issues - fix awk, grep version detection,
+# - featreq 37: busybox issues - fix awk, grep version detection,
# fix grep failure because --color=never switch is unsupported
# (thx Thomas Harning Jr. for reporting and helping to debug/fix it)
# - bugfix 81: --exclude-globbing-filelist is deprecated since 0.7.03
@@ -385,7 +408,7 @@
# 1.1.1 - bugfix: encryption reactivated
# 1.1 - introduced config directory
# 1.0 - first release
-###############################################################################
+################################################################################
# utility functions overriding binaries
@@ -404,9 +427,16 @@
echo ${1%/*}
}
-# a lookup function for executables working with names or file paths
+# implement basic which in plain bash
+function which {
+ type -p "$@"
+}
+
+# check availability of executables via file name or file paths
function lookup {
local bin="$1"
+ # look for file names in path via bash hash OR
+ # look for executables at given relative/absolute location
( [ "${bin##*/}" == "$bin" ] && hash "$bin" 2>/dev/null ) || [ -x "$bin" ]
}
@@ -415,7 +445,7 @@
ME_LONG="$0"
ME="$(basename $0)"
ME_NAME="${ME%%.*}"
-ME_VERSION="1.10.1"
+ME_VERSION="1.11.3"
ME_WEBSITE="http://duply.net"
# default config values
@@ -426,6 +456,7 @@
DEFAULT_GPG='gpg'
DEFAULT_GPG_KEY='_KEY_ID_'
DEFAULT_GPG_PW='_GPG_PASSWORD_'
+DEFAULT_PYTHON='python'
# function definitions ##########################
@@ -486,14 +517,19 @@
END
}
+function python_binary {
+ echo "${PYTHON-$DEFAULT_PYTHON}"
+}
+
function using_info {
lookup duplicity && duplicity_version_get
local NOTFOUND="MISSING"
# freebsd awk (--version only), debian mawk (-W version only), deliver '' so awk does not wait for input
local AWK_VERSION=$( lookup awk && (awk --version 2>/dev/null || awk -W version 2>&1) | awk 'NR<=2&&tolower($0)~/(busybox|awk)/{success=1;print;exit} END{if(success<1) print "unknown"}' || echo "$NOTFOUND" )
local GREP_VERSION=$( lookup grep && grep --version 2>&1 | awk 'NR<=2&&tolower($0)~/(busybox|grep.*[0-9]+\.[0-9]+)/{success=1;print;exit} END{if(success<1) print "unknown"}' || echo "$NOTFOUND" )
- local PYTHON_VERSION=$(lookup python && python -V 2>&1| awk '{print tolower($0);exit}' || echo "python $NOTFOUND" )
- local GPG_INFO=$(gpg_avail && gpg --version 2>&1| awk 'NR==1{v=$1" "$3};/^Home:/{print v" ("$0")"}' || echo "gpg $NOTFOUND")
+ local PYTHON_RUNNER=$(python_binary)
+ local PYTHON_VERSION=$(lookup "$PYTHON_RUNNER" && "$PYTHON_RUNNER" -V 2>&1| awk '{print tolower($0);exit}' || echo "'$PYTHON_RUNNER' $NOTFOUND" )
+ local GPG_INFO=$(gpg_avail && gpg --version 2>&1| awk '/^gpg.*[0-9\.]+$/&&length(v)<1{v=$1" "$3}/^Home:/{h=" ("$0")"}END{print v""h}' || echo "gpg $NOTFOUND")
local BASH_VERSION=$(bash --version | awk 'NR==1{IGNORECASE=1;sub(/GNU bash, version[ ]+/,"",$0);print $0}')
echo -e "Using installed duplicity version ${DUPL_VERSION:-$NOTFOUND}\
${PYTHON_VERSION+, $PYTHON_VERSION${PYTHONPATH:+ 'PYTHONPATH=$PYTHONPATH'}}\
@@ -512,8 +548,9 @@
It simplifies running duplicity with cron or on command line by:
- keeping recurring settings in profiles per backup job
- - enabling batch operations eg. backup_verify_purge
- - executing pre/post scripts for every command
+ - enabling batch operations eg. backup_verify+purge
+ - executing pre/post scripts (different actions possible
+ depending on previous or next command or it's exit status)
- precondition checking for flawless duplicity operation
For each backup job one configuration profile must be created.
@@ -748,9 +785,9 @@
# sftp://bob:secret@backupserver.com//home/bob/dupbkp
# for details and available backends see duplicity manpage, section URL Format
# http://duplicity.nongnu.org/duplicity.1.html#sect7
-# NOTE:
-# some backends (eg. cloudfiles) need additional env vars to be set to
-# work properly, when in doubt consult the man page mentioned above.
+# BE AWARE:
+# some backends (cloudfiles, S3 etc.) need additional env vars to be set to
+# work properly, read after the TARGET definition for more details.
# ATTENTION:
# characters other than A-Za-z0-9.-_.~ in the URL have to be
# replaced by their url encoded pendants, see
@@ -760,15 +797,25 @@
TARGET='${DEFAULT_TARGET}'
# optionally the username/password can be defined as extra variables
# setting them here _and_ in TARGET results in an error
+# ATTENTION:
+# there are backends that do not support the user/pass auth scheme.
+# prominent examples are S3, Azure, Cloudfiles. when in doubt consult the
+# duplicity manpage. usually there is a NOTE section explaining if and which
+# env vars should be set.
#TARGET_USER='${DEFAULT_TARGET_USER}'
#TARGET_PASS='${DEFAULT_TARGET_PASS}'
-# alternatively you might export the auth env vars for your backend here
-# when in doubt consult (if existing) the NOTE section of your backend on
-# http://duplicity.nongnu.org/duplicity.1.html for details
# eg. for cloud files backend it might look like this (uncomment for use!)
#export CLOUDFILES_USERNAME='someuser'
#export CLOUDFILES_APIKEY='somekey'
#export CLOUDFILES_AUTHURL ='someurl'
+# the following is an incomplete list (<backend>: comma separated env vars list)
+# Azure: AZURE_ACCOUNT_NAME, AZURE_ACCOUNT_KEY
+# Cloudfiles: CLOUDFILES_USERNAME, CLOUDFILES_APIKEY, CLOUDFILES_AUTHURL
+# Google Cloud Storage: GS_ACCESS_KEY_ID, GS_SECRET_ACCESS_KEY
+# Pydrive: GOOGLE_DRIVE_ACCOUNT_KEY, GOOGLE_DRIVE_SETTINGS
+# S3: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
+# Swift: SWIFT_USERNAME, SWIFT_PASSWORD, SWIFT_AUTHURL,
+# SWIFT_TENANTNAME OR SWIFT_PREAUTHURL, SWIFT_PREAUTHTOKEN
# base directory to backup
SOURCE='${DEFAULT_SOURCE}'
@@ -778,6 +825,10 @@
# "trickle -s -u 640 -d 5120" # 5Mb up, 40Mb down"
#DUPL_PRECMD=""
+# override the used python interpreter, defaults to "python"
+# e.g. "python2" or "/usr/bin/python2.7"
+#PYTHON="python"
+
# exclude folders containing exclusion file (since duplicity 0.5.14)
# Uncomment the following two lines to enable this setting.
#FILENAME='.duplicity-ignore'
@@ -1049,12 +1100,13 @@
elif [ -n "$CMD_DISABLED" ]; then
CMD_MSG="$CMD_MSG (DISABLED) - $CMD_DISABLED"
else
+ echo -n -e "$CMD_MSG"
CMD_OUT=` eval "$@" 2>&1 `
CMD_ERR=$?
if [ "$CMD_ERR" = "0" ]; then
- CMD_MSG="$CMD_MSG (OK)"
+ CMD_MSG=" (OK)"
else
- CMD_MSG="$CMD_MSG (FAILED)"
+ CMD_MSG=" (FAILED)"
fi
fi
echo -e "$CMD_MSG"
@@ -1147,9 +1199,18 @@
# init global duplicity parameters same for all tasks
duplicity_params_global
- var_isset 'PREVIEW' && local RUN=echo || local RUN=eval
+ local RUN=eval BIN=duplicity DUPL_BIN
+ # run in cmd line preview mode if requested
+ var_isset 'PREVIEW' && RUN=echo
+ # try to resolve duplicity path for usage with python interpreter
+ DUPL_BIN=$(which "$BIN") || DUPL_BIN="$BIN"
+ # only run with a user specific python if configured (running by default
+ # breaks homebrew as they place a shell wrapper for duplicity in path)
+ [ -n "$PYTHON" ] && [ "$PYTHON" != "$DEFAULT_PYTHON" ] &&\
+ BIN="$(qw "$(python_binary)") $(qw "$DUPL_BIN")"
+
$RUN ${DUPL_VARS_GLOBAL} ${BACKEND_PARAMS} \
- ${DUPL_PRECMD} duplicity $DUPL_CMD $DUPL_PARAMS_GLOBAL $(duplicity_params_conf)\
+${DUPL_PRECMD} $BIN $DUPL_CMD $DUPL_PARAMS_GLOBAL $(duplicity_params_conf)\
$GPG_USEAGENT $(gpg_custom_binary) $DUPL_CMD_PARAMS ${PREVIEW:+}
local ERR=$?
@@ -1181,7 +1242,7 @@
echo $date && return
## some date commands do not support giving a time w/o setting it systemwide (irix,solaris,others?)
# python fallback
- date=$(python -c "import time;print time.strftime('${1:-$DEFAULTFORMAT}',time.localtime(${2}))" 2> /dev/null) && \
+ date=$("$(python_binary)" -c "import time;print time.strftime('${1:-$DEFAULTFORMAT}',time.localtime(${2}))" 2> /dev/null) && \
echo $date && return
# awk fallback
date=$(awk "BEGIN{print strftime(\"${1:-$DEFAULTFORMAT}\"${2:+,$2})}" 2> /dev/null) && \
@@ -1227,7 +1288,7 @@
function url_encode {
# utilize python, silently do nothing on error - because no python no duplicity
- OUT=$(python -c "
+ OUT=$("$(python_binary)" -c "
try: import urllib.request as urllib
except ImportError: import urllib
print(urllib.${2}quote('$1'));
@@ -1316,7 +1377,7 @@
FOUND=1
CMD_MSG="Import keyfile '$FILE' to keyring"
- run_cmd gpg $GPG_OPTS --batch --import "$FILE"
+ run_cmd gpg $GPG_OPTS --batch --import $(qw "$FILE")
if [ "$?" != "0" ]; then
warning "Import failed.${CMD_OUT:+\n$CMD_OUT}"
ERR=1
@@ -1343,7 +1404,7 @@
with the command \"trust\" to \"ultimate\" (5) now.
Exit the edit mode of gpg with \"quit\"."
CMD_MSG="Running gpg to manually edit key '$KEY_ID'"
- run_cmd sleep 5\; gpg $GPG_OPTS --edit-key "$KEY_ID"
+ run_cmd sleep 5\; gpg $GPG_OPTS --edit-key $(qw "$KEY_ID")
return $ERR
}
@@ -1364,15 +1425,15 @@
FILE="$(gpg_keyfile "$KEY_ID" $KEY_TYPE)"
if [ ! -f "$FILE" ] && eval gpg_$(tolower $KEY_TYPE)_avail \"$KEY_ID\"; then
# exporting
- CMD_MSG="Export $KEY_TYPE key '$KEY_ID'"
+ CMD_MSG="Backup $KEY_TYPE key '$KEY_ID' to profile."
# gpg2.1 insists on passphrase here, gpg2.0- happily exports w/o it
# we pipe an empty string when GPG_PW is not set to avoid gpg silently waiting for input
- run_cmd echo $(qw $GPG_PW) \| gpg $GPG_OPTS --passphrase-fd 0 --armor --export"$(test "SEC" = "$KEY_TYPE" && echo -secret-keys)"" $(qw $KEY_ID) >> \"$TMPFILE\""
+ run_cmd $(gpg_pass_pipein GPG_PW_SIGN GPG_PW) gpg $GPG_OPTS $GPG_USEAGENT $(gpg_param_passwd GPG_PW_SIGN GPG_PW) --armor --export"$(test "SEC" = "$KEY_TYPE" && echo -secret-keys)" $(qw "$KEY_ID") '>>' $(qw "$TMPFILE")
CMD_ERR=$?
if [ "$CMD_ERR" = "0" ]; then
CMD_MSG="Write file '"$(basename "$FILE")"'"
- run_cmd " mv \"$TMPFILE\" \"$FILE\""
+ run_cmd mv $(qw "$TMPFILE") $(qw "$FILE")
fi
if [ "$CMD_ERR" != "0" ]; then
@@ -1382,7 +1443,7 @@
fi
# cleanup
- rm "$TMPFILE" 1>/dev/null 2>&1
+ rm $(qw "$TMPFILE") 1>/dev/null 2>&1
fi
done
done
@@ -1432,13 +1493,8 @@
echo $1 | grep -q '^[0-9a-fA-F]\{8\}$'
}
-#function gpg_split_keyset {
-# return
-# awk "BEGIN{ keys=toupper(\"$@\"); gsub(/[^A-Z0-9]/,\" \",keys); print keys }"
-#}
-
# splits a comma separated line into lines, respects escaped commas
-function gpg_split_keyset2 {
+function gpg_split_keyset {
local LIST
LIST=$(echo "$@" | awk '{ gsub(/,/,"\n",$0); gsub(/\\\n/,",",$0); print $0 }')
echo -e "$LIST"
@@ -1503,13 +1559,18 @@
# 0 on success
# 1 if GPG_AGENT_INFO is not set
# 2 if GPG_AGENT_INFO is stale
+# 3 cannot connect to gpg-agent
function gpg_agent_avail {
local ERR=1
if var_isset GPG_AGENT_INFO; then
- ps -p $(echo $GPG_AGENT_INFO|awk -F: '{print $2}') > /dev/null 2>&1 &&\
- ERR=0 || ERR=2
+ ps -p $(echo $GPG_AGENT_INFO|awk -F: '{print $2}') > /dev/null 2>&1 && \
+ ERR=0 || ERR=2
+ else
+ # GPG_AGENT_INFO is deprecated in gpg2.1,
+ # so we try to connect to a possibly running agent here
+ gpg-agent > /dev/null 2>&1 && ERR=0 || ERR=3
fi
-
+
return $ERR
}
@@ -1525,12 +1586,12 @@
}
function gpg_avail {
- lookup $(gpg_binary)
+ lookup "$(gpg_binary)"
}
# enforce the use our selected gpg binary
function gpg {
- command $(gpg_binary) "$@"
+ command "$(gpg_binary)" "$@"
}
export -f gpg
@@ -1621,7 +1682,7 @@
duplicity_version_check
# check for certain important helper programs
-for f in awk grep; do
+for f in awk grep "$(python_binary)"; do
lookup "$f" || \
error_path "$f missing. installed und available in path?"
done
@@ -1784,10 +1845,13 @@
# GPG create key settings, config check2 (needs gpg) ##########################
if gpg_disabled; then
- : # the following tests are not necessary
+ : # the following tests are not necessary
else
-# key set?
+# we test this early as any invocation gpg2.1+ starts gpg-agent automatically
+GPG_AGENT_ERR=$(gpg_agent_avail ; echo $?)
+
+# enc key still default?
if [ "$GPG_KEY" == "${DEFAULT_GPG_KEY}" ]; then
error_gpg "Encryption Key GPG_KEY still default in conf file
'$CONF'."
@@ -1795,9 +1859,30 @@
# create array of gpg encr keys, for further processing
OIFS="$IFS" IFS=$'\n'
-GPG_KEYS_ENC_ARRAY=( $( gpg_split_keyset2 ${GPG_KEY},${GPG_KEYS_ENC} ) )
+GPG_KEYS_ENC_ARRAY=( $( gpg_split_keyset ${GPG_KEY},${GPG_KEYS_ENC} ) )
IFS="$OIFS"
+# pw set?
+# symmetric needs one, always
+if gpg_symmetric && ( [ -z "$GPG_PW" ] || [ "$GPG_PW" == "${DEFAULT_GPG_PW}" ] ) \
+ ; then
+ error_gpg "Encryption passphrase GPG_PW (needed for symmetric encryption)
+is empty/not set or still default value in conf file
+'$CONF'."
+fi
+# this is a technicality, we can only pump one pass via pipe into gpg
+# but symmetric already always needs one for encryption
+if gpg_symmetric && var_isset GPG_PW && var_isset GPG_PW_SIGN &&\
+ [ -n "$GPG_PW_SIGN" ] && [ "$GPG_PW" != "$GPG_PW_SIGN" ]; then
+ error_gpg "GPG_PW _and_ GPG_PW_SIGN are defined but not identical in config
+'$CONF'.
+This is unfortunately impossible. For details see duplicity manpage,
+section 'A Note On Symmetric Encryption And Signing'.
+
+Tip: Separate signing keys may have empty passwords e.g. GPG_PW_SIGN=''.
+Tip2: Use gpg-agent."
+fi
+
# check gpg encr public keys availability
for (( i = 0 ; i < ${#GPG_KEYS_ENC_ARRAY[@]} ; i++ )); do
KEY_ID="${GPG_KEYS_ENC_ARRAY[$i]}"
@@ -1850,26 +1935,7 @@
fi
fi
-# pw set?
-# symmetric needs one, always
-if gpg_symmetric && ( [ -z "$GPG_PW" ] || [ "$GPG_PW" == "${DEFAULT_GPG_PW}" ] ) \
- ; then
- error_gpg "Encryption passphrase GPG_PW (needed for symmetric encryption)
-is empty/not set or still default value in conf file
-'$CONF'."
-fi
-# this is a technicality, we can only pump one pass via pipe into gpg
-# but symmetric already always needs one for encryption
-if gpg_symmetric && var_isset GPG_PW && var_isset GPG_PW_SIGN &&\
- [ -n "$GPG_PW_SIGN" ] && [ "$GPG_PW" != "$GPG_PW_SIGN" ]; then
- error_gpg "GPG_PW _and_ GPG_PW_SIGN are defined but not identical in config
-'$CONF'.
-This is unfortunately impossible. For details see duplicity manpage,
-section 'A Note On Symmetric Encryption And Signing'.
-
-Tip: Separate signing keys may have empty passwords e.g. GPG_PW_SIGN=''.
-Tip2: Use gpg-agent."
-fi
+# using GPG_AGENT_ERR set early above, try to autoenable gpg-agent or issue some warnings
# key enc can deal without, but might profit from gpg-agent
# if GPG_PW is not set alltogether
# if signing key is different from first (main) enc key (we can only pipe one pass into gpg)
@@ -1877,13 +1943,14 @@
( ! var_isset GPG_PW || \
( gpg_signing && ! var_isset GPG_PW_SIGN && [ "$GPG_KEY_SIGN" != "${GPG_KEYS_ENC_ARRAY[0]}" ] ) ); then
- GPG_AGENT_ERR=$(gpg_agent_avail ; echo $?)
if [ "$GPG_AGENT_ERR" -eq 1 ]; then
- echo "Cannot use gpg-agent. GPG_AGENT_INFO not set."
+ warning "Cannot use gpg-agent. GPG_AGENT_INFO not set."
elif [ "$GPG_AGENT_ERR" -eq 2 ]; then
- echo "Cannot use gpg-agent! GPG_AGENT_INFO contains stale pid."
+ warning "Cannot use gpg-agent! GPG_AGENT_INFO contains stale pid."
+ elif [ "$GPG_AGENT_ERR" -eq 3 ]; then
+ warning "No running gpg-agent found although GPG_PW or GPG_PW_SIGN (enc != sign key) not set."
else
- echo "Autoenable use of gpg-agent. GPG_PW or GPG_PW_SIGN (enc != sign key) not set."
+ echo "Enable gpg-agent usage. Running gpg-agent instance found and GPG_PW or GPG_PW_SIGN (enc != sign key) not set."
GPG_USEAGENT="--use-agent"
fi
fi
@@ -1893,17 +1960,11 @@
# config plausibility check - SPACE ###########################################
-# is tmp is a folder
-CMD_MSG="Checking TEMP_DIR '${TEMP_DIR}' is a folder"
-run_cmd test -d "$TEMP_DIR"
-if [ "$?" != "0" ]; then
- error "Temporary file space '$TEMP_DIR' is not a directory."
-fi
-# is tmp writeable
-CMD_MSG="Checking TEMP_DIR '${TEMP_DIR}' is writable"
-run_cmd test -w "$TEMP_DIR"
+# is tmp is a folder and writable
+CMD_MSG="Checking TEMP_DIR '${TEMP_DIR}' is a folder and writable"
+run_cmd test -d $(qw "$TEMP_DIR") '&&' test -w $(qw "$TEMP_DIR")
if [ "$?" != "0" ]; then
- error "Temporary file space '$TEMP_DIR' not writable."
+ error "Temporary file space '$TEMP_DIR' is not a directory or writable."
fi
@@ -1928,7 +1989,7 @@
GPG_TEST="$TEMP_DIR/${ME_NAME}.$$.$(date_fix %s)"
function cleanup_gpgtest {
echo -en "Cleanup - Delete '${GPG_TEST}_*'"
- rm ${GPG_TEST}_* 2>/dev/null && echo "(OK)" || echo "(FAILED)"
+ rm "${GPG_TEST}"_* 2>/dev/null && echo "(OK)" || echo "(FAILED)"
}
# signing enabled?
@@ -1945,7 +2006,7 @@
done
# check encrypting
CMD_MSG="Test - Encrypt to '$(join "','" "${GPG_KEYS_ENC_ARRAY[@]}")'${CMD_MSG_SIGN:+ & $CMD_MSG_SIGN}"
- run_cmd $(gpg_pass_pipein GPG_PW_SIGN GPG_PW) gpg $CMD_PARAM_SIGN $(gpg_param_passwd GPG_PW_SIGN GPG_PW) $CMD_PARAMS $GPG_USEAGENT --status-fd 1 $GPG_OPTS -o "${GPG_TEST}_ENC" -e "$ME_LONG"
+ run_cmd $(gpg_pass_pipein GPG_PW_SIGN GPG_PW) gpg $CMD_PARAM_SIGN $(gpg_param_passwd GPG_PW_SIGN GPG_PW) $CMD_PARAMS $GPG_USEAGENT --status-fd 1 $GPG_OPTS -o $(qw "${GPG_TEST}_ENC") -e $(qw "$ME_LONG")
CMD_ERR=$?
if [ "$CMD_ERR" != "0" ]; then
@@ -1959,7 +2020,7 @@
# check decrypting
CMD_MSG="Test - Decrypt"
gpg_key_decryptable || CMD_DISABLED="No matching secret key available."
- run_cmd $(gpg_pass_pipein GPG_PW) gpg $(gpg_param_passwd GPG_PW) $GPG_OPTS -o "${GPG_TEST}_DEC" $GPG_USEAGENT -d "${GPG_TEST}_ENC"
+ run_cmd $(gpg_pass_pipein GPG_PW) gpg $(gpg_param_passwd GPG_PW) $GPG_OPTS -o $(qw "${GPG_TEST}_DEC") $GPG_USEAGENT -d $(qw "${GPG_TEST}_ENC")
CMD_ERR=$?
if [ "$CMD_ERR" != "0" ]; then
@@ -1970,7 +2031,7 @@
else
# check encrypting
CMD_MSG="Test - Encryption with passphrase${CMD_MSG_SIGN:+ & $CMD_MSG_SIGN}"
- run_cmd $(gpg_pass_pipein GPG_PW) gpg $GPG_OPTS $CMD_PARAM_SIGN --passphrase-fd 0 -o "${GPG_TEST}_ENC" --batch -c "$ME_LONG"
+ run_cmd $(gpg_pass_pipein GPG_PW) gpg $GPG_OPTS $CMD_PARAM_SIGN --passphrase-fd 0 -o $(qw "${GPG_TEST}_ENC") --batch -c $(qw "$ME_LONG")
CMD_ERR=$?
if [ "$CMD_ERR" != "0" ]; then
error_gpg_test "Encryption failed.${CMD_OUT:+\n$CMD_OUT}"
@@ -1978,7 +2039,7 @@
# check decrypting
CMD_MSG="Test - Decryption with passphrase"
- run_cmd $(gpg_pass_pipein GPG_PW) gpg $GPG_OPTS --passphrase-fd 0 -o "${GPG_TEST}_DEC" --batch -d "${GPG_TEST}_ENC"
+ run_cmd $(gpg_pass_pipein GPG_PW) gpg $GPG_OPTS --passphrase-fd 0 -o $(qw "${GPG_TEST}_DEC") --batch -d $(qw "${GPG_TEST}_ENC")
CMD_ERR=$?
if [ "$CMD_ERR" != "0" ]; then
error_gpg_test "Decryption failed.${CMD_OUT:+\n$CMD_OUT}"
@@ -2055,15 +2116,6 @@
var_isset 'TARGET_URL_PASS' && BACKEND_PARAMS="IMAP_PASSWORD=$(qw "${TARGET_URL_PASS}")"
;;
*)
- # add needed param for ssh backend
- case "$(tolower "${TARGET_URL_PROT%%:*}")" in
- 'ssh'|'sftp'|'scp')
- # ssh backend wants to be told that there is a pass to use
- var_isset 'TARGET_URL_PASS' && \
- DUPL_PARAMS="$DUPL_PARAMS --ssh-askpass" && \
- BACKEND_PARAMS="FTP_PASSWORD=$(qw "${TARGET_URL_PASS}")"
- ;;
- esac
# rest uses FTP_PASS var
var_isset 'TARGET_URL_PASS' && \
BACKEND_PARAMS="FTP_PASSWORD=$(qw "${TARGET_URL_PASS}")"