On 06/28/15 17:25, viq wrote: > Process in large part inspired by > https://gist.github.com/molobrakos/ff1620ce6031c99f120b and all ports > are present at https://github.com/jasperla/openbsd-wip/ > I tested only duplicity upgrade and I cannot do incremental backups anymore.
To reproduce: Install duplicity-0.6.26 $ duplicity --full-if-older-than 1W /tmp scp://$server/bk --ssh-askpass Upgrade to duplicity-0.7.02 $ duplicity --full-if-older-than 1W /tmp scp://$server/bk --ssh-askpass Password for 'giovanni@$server': Local and Remote metadata are synchronized, no sync needed. Last full backup date: Tue Jul 7 13:08:51 2015 GnuPG passphrase: Retype passphrase to confirm: Attempt 1 failed. BackendException: scp get duplicity-full.20150707T110851Z.manifest.gpg failed: incorrect response 'C0600 291 duplicity-full.20150707T110851Z.manifest.gpg' Cheers Giovanni
Index: Makefile =================================================================== RCS file: /var/cvs/ports/sysutils/duplicity/Makefile,v retrieving revision 1.33 diff -u -p -r1.33 Makefile --- Makefile 4 Jun 2015 04:19:12 -0000 1.33 +++ Makefile 6 Jul 2015 21:17:28 -0000 @@ -1,8 +1,8 @@ -# $OpenBSD: Makefile,v 1.33 2015/06/04 04:19:12 ajacoutot Exp $ +# $OpenBSD: Makefile,v 1.32 2015/01/02 20:11:18 jca Exp $ COMMENT = encrypted backup using rsync algorithm -MODPY_EGG_VERSION = 0.6.26 +MODPY_EGG_VERSION = 0.7.02 DISTNAME = duplicity-${MODPY_EGG_VERSION} CATEGORIES = sysutils @@ -21,7 +21,8 @@ WANTLIB += pthread rsync ${MODPY_WANTLIB LIB_DEPENDS += net/librsync \ ${MODPY_LIB_DEPENDS} -RUN_DEPENDS += net/py-boto \ +RUN_DEPENDS += devel/py-pexpect \ + net/py-boto \ net/ncftp \ sysutils/py-lockfile @@ -30,10 +31,5 @@ MAKE_ENV += LIBRSYNC_DIR=${LOCALBASE} # Some regression tests are hanging # TEST_DEPENDS = devel/py-mock NO_TEST = Yes - -# XXX 600 mode prevents from reading the man page; -# check if still required at next update -post-extract: - chmod 644 ${WRKSRC}/bin/*.1 .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /var/cvs/ports/sysutils/duplicity/distinfo,v retrieving revision 1.18 diff -u -p -r1.18 distinfo --- distinfo 4 Jun 2015 04:19:12 -0000 1.18 +++ distinfo 6 Jul 2015 21:18:25 -0000 @@ -1,2 +1,2 @@ -SHA256 (duplicity-0.6.26.tar.gz) = i++KXYBbea4XflTUIVIji84bKq+a0y4DosOiDL1OB0o= -SIZE (duplicity-0.6.26.tar.gz) = 1270436 +SHA256 (duplicity-0.7.02.tar.gz) = YJRiukMnU0CuT8AI7mYgJlzcLGiYjKriiZcd1gntAzo= +SIZE (duplicity-0.7.02.tar.gz) = 1384495 Index: patches/patch-bin_duplicity =================================================================== RCS file: /var/cvs/ports/sysutils/duplicity/patches/patch-bin_duplicity,v retrieving revision 1.6 diff -u -p -r1.6 patch-bin_duplicity --- patches/patch-bin_duplicity 14 Nov 2014 07:49:33 -0000 1.6 +++ patches/patch-bin_duplicity 6 Jul 2015 21:17:48 -0000 @@ -1,13 +1,14 @@ $OpenBSD: patch-bin_duplicity,v 1.6 2014/11/14 07:49:33 brad Exp $ ---- bin/duplicity.orig Fri May 9 09:27:41 2014 -+++ bin/duplicity Sat Aug 9 00:18:15 2014 -@@ -1223,9 +1223,12 @@ def check_resources(action): +--- bin/duplicity.orig Wed Mar 11 12:33:38 2015 ++++ bin/duplicity Fri Apr 10 18:02:47 2015 +@@ -1248,10 +1248,12 @@ def check_resources(action): log.ErrorCode.get_ulimit_failed) maxopen = min([l for l in (soft, hard) if l > -1]) if maxopen < 1024: - log.FatalError(_("Max open files of %s is too low, should be >= 1024.\n" - "Use 'ulimit -n 1024' or higher to correct.\n") % (maxopen,), -- log.ErrorCode.maxopen_too_low) +- log.ErrorCode.maxopen_too_low) +- + try: + resource.setrlimit(resource.RLIMIT_NOFILE, (1024, hard)) + except resource.error: Index: patches/patch-bin_duplicity_1 =================================================================== RCS file: /var/cvs/ports/sysutils/duplicity/patches/patch-bin_duplicity_1,v retrieving revision 1.2 diff -u -p -r1.2 patch-bin_duplicity_1 --- patches/patch-bin_duplicity_1 14 Nov 2014 07:49:33 -0000 1.2 +++ patches/patch-bin_duplicity_1 6 Jul 2015 21:17:48 -0000 @@ -1,8 +1,8 @@ $OpenBSD: patch-bin_duplicity_1,v 1.2 2014/11/14 07:49:33 brad Exp $ Document the ssh backend change from paramiko to pexpect. ---- bin/duplicity.1.orig Fri May 9 09:27:41 2014 -+++ bin/duplicity.1 Sat Aug 9 00:18:15 2014 -@@ -108,7 +108,7 @@ There are two +--- bin/duplicity.1.orig Wed Mar 11 12:33:38 2015 ++++ bin/duplicity.1 Tue Apr 7 21:25:33 2015 +@@ -119,7 +119,7 @@ There are two for scp/sftp/ssh access (also see .BR "A NOTE ON SSH BACKENDS" ). .TP @@ -11,7 +11,7 @@ Document the ssh backend change from par .B paramiko (SSH2 for python) - http://pypi.python.org/pypi/paramiko (downloads); http://github.com/paramiko/paramiko (project page) -@@ -117,7 +117,7 @@ for scp/sftp/ssh access (also see +@@ -128,7 +128,7 @@ for scp/sftp/ssh access (also see (Python Cryptography Toolkit) - http://www.dlitz.net/software/pycrypto/ .TP @@ -19,20 +19,20 @@ Document the ssh backend change from par +.BR "ssh pexpect backend" " (default on OpenBSD)" .B sftp/scp client binaries OpenSSH - http://www.openssh.com/ - .TP -@@ -874,9 +874,9 @@ This password is also used for passphrase-protected ss - .TP - .BI "--ssh-backend " backend - Allows the explicit selection of a ssh backend. Defaults to --.BR paramiko . -+.BR "pexpect on OpenBSD" . - Alternatively you might choose --.BR pexpect . -+.BR paramiko . + .br +@@ -1257,9 +1257,9 @@ scp://.. or + .br + sftp://user[:password]@other.host[:port]/[relative|/absolute]_path + .PP +-.BR "defaults" " are paramiko+scp:// and paramiko+sftp://" ++.BR "defaults" " are pexpect+scp:// and pexpect+sftp://" + .br +-.BR "alternatively" " try pexpect+scp://, pexpect+sftp://, lftp+sftp://" ++.BR "alternatively" " try paramiko+scp://, paramiko+sftp://, lftp+sftp://" .br See also - .BR "A NOTE ON SSH BACKENDS" . -@@ -1578,7 +1578,7 @@ backend allows to define + .BR --ssh-askpass , +@@ -1812,7 +1812,7 @@ backend allows to define .BR --scp-command " and" .BR --sftp-command . .PP @@ -41,7 +41,7 @@ Document the ssh backend change from par is a complete reimplementation of ssh protocols natively in python. Advantages are speed and maintainability. Minor disadvantage is that extra packages are needed as listed in -@@ -1591,7 +1591,7 @@ mode ( +@@ -1825,7 +1825,7 @@ mode ( .I --use-scp ) though scp access is used for put/get operations but listing is done via ssh remote shell. .PP Index: patches/patch-duplicity_globals_py =================================================================== RCS file: patches/patch-duplicity_globals_py diff -N patches/patch-duplicity_globals_py --- patches/patch-duplicity_globals_py 14 Nov 2014 07:49:33 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -$OpenBSD: patch-duplicity_globals_py,v 1.2 2014/11/14 07:49:33 brad Exp $ -Switch the default ssh backend from paramiko to pexpect. ---- duplicity/globals.py.orig Fri May 9 09:27:41 2014 -+++ duplicity/globals.py Sat Aug 9 00:18:15 2014 -@@ -231,8 +231,8 @@ sftp_command = None - # default to batch mode using public-key encryption - ssh_askpass = False - --# default ssh backend is paramiko --ssh_backend = "paramiko" -+# default ssh backend is pexpect -+ssh_backend = "pexpect" - - # user added ssh options - ssh_options = "" Index: patches/patch-setup_py =================================================================== RCS file: /var/cvs/ports/sysutils/duplicity/patches/patch-setup_py,v retrieving revision 1.6 diff -u -p -r1.6 patch-setup_py --- patches/patch-setup_py 14 Nov 2014 07:49:33 -0000 1.6 +++ patches/patch-setup_py 6 Jul 2015 21:17:48 -0000 @@ -1,7 +1,7 @@ $OpenBSD: patch-setup_py,v 1.6 2014/11/14 07:49:33 brad Exp $ ---- setup.py.orig Fri May 9 09:27:41 2014 -+++ setup.py Sat Aug 9 00:18:15 2014 -@@ -45,17 +45,9 @@ if os.name == 'posix': +--- setup.py.orig Tue Apr 7 21:33:00 2015 ++++ setup.py Tue Apr 7 21:33:46 2015 +@@ -46,15 +46,9 @@ if os.name == 'posix': incdir_list = [os.path.join(LIBRSYNC_DIR, 'include')] libdir_list = [os.path.join(LIBRSYNC_DIR, 'lib')] @@ -14,8 +14,6 @@ $OpenBSD: patch-setup_py,v 1.6 2014/11/1 - 'README', - 'README-REPO', - 'README-LOG', -- 'tarfile-LICENSE', -- 'tarfile-CHANGES', - 'CHANGELOG']), ] Index: pkg/PLIST =================================================================== RCS file: /var/cvs/ports/sysutils/duplicity/pkg/PLIST,v retrieving revision 1.14 diff -u -p -r1.14 PLIST --- pkg/PLIST 1 Nov 2014 10:28:15 -0000 1.14 +++ pkg/PLIST 6 Jul 2015 21:18:14 -0000 @@ -25,44 +25,59 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_cf_cloudfiles.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_cf_pyrax.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_cf_pyrax.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_ssh_paramiko.py -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_ssh_paramiko.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_ssh_pexpect.py -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/_ssh_pexpect.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/azurebackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/azurebackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/botobackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/botobackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/cfbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/cfbackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/copycombackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/copycombackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/dpbxbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/dpbxbackend.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ftpbackend.py -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ftpbackend.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ftpsbackend.py -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ftpsbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/gdocsbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/gdocsbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/giobackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/giobackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/hsibackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/hsibackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/hubicbackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/hubicbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/imapbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/imapbackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/lftpbackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/lftpbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/localbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/localbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/megabackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/megabackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ncftpbackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ncftpbackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/onedrivebackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/onedrivebackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/par2backend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/par2backend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pydrivebackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pydrivebackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pyrax_identity/ +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pyrax_identity/__init__.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pyrax_identity/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pyrax_identity/hubic.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/pyrax_identity/hubic.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/rsyncbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/rsyncbackend.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/sshbackend.py -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/sshbackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ssh_paramiko_backend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ssh_paramiko_backend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ssh_pexpect_backend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/ssh_pexpect_backend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/swiftbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/swiftbackend.pyc +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/sxbackend.py +lib/python${MODPY_VERSION}/site-packages/duplicity/backends/sxbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/tahoebackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/tahoebackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/backends/webdavbackend.py lib/python${MODPY_VERSION}/site-packages/duplicity/backends/webdavbackend.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/~par2wrapperbackend.py -lib/python${MODPY_VERSION}/site-packages/duplicity/backends/~par2wrapperbackend.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/cached_ops.py lib/python${MODPY_VERSION}/site-packages/duplicity/cached_ops.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/collections.py @@ -103,24 +118,18 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/duplicity/patchdir.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/path.py lib/python${MODPY_VERSION}/site-packages/duplicity/path.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/pexpect.py -lib/python${MODPY_VERSION}/site-packages/duplicity/pexpect.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/progress.py lib/python${MODPY_VERSION}/site-packages/duplicity/progress.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/robust.py lib/python${MODPY_VERSION}/site-packages/duplicity/robust.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/selection.py lib/python${MODPY_VERSION}/site-packages/duplicity/selection.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/static.py -lib/python${MODPY_VERSION}/site-packages/duplicity/static.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/statistics.py lib/python${MODPY_VERSION}/site-packages/duplicity/statistics.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/tarfile.py lib/python${MODPY_VERSION}/site-packages/duplicity/tarfile.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/tempdir.py lib/python${MODPY_VERSION}/site-packages/duplicity/tempdir.pyc -lib/python${MODPY_VERSION}/site-packages/duplicity/urlparse_2_5.py -lib/python${MODPY_VERSION}/site-packages/duplicity/urlparse_2_5.pyc lib/python${MODPY_VERSION}/site-packages/duplicity/util.py lib/python${MODPY_VERSION}/site-packages/duplicity/util.pyc @man man/man1/duplicity.1