On 07/08/15 22:09, viq wrote:
> On Tue, Jul 7, 2015 at 1:18 PM, Giovanni Bechis <[email protected]> wrote:
>> 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'
>
> Which version of GnuPG do you have installed? Due to duply, which I
> was intending to use with it, I patched it to use gnupg2.
>
dependency on gnupg2 was missing, new diff attached.
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 9 Jul 2015 07:19: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.03
DISTNAME = duplicity-${MODPY_EGG_VERSION}
CATEGORIES = sysutils
@@ -21,19 +21,16 @@ 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
+ sysutils/py-lockfile \
+ gnupg->=2:security/gnupg2
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 8 Jul 2015 23:15:03 -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.03.tar.gz) = 3sdW6+bNJaalXZ8xlU/Y4H9FAgY+ThSL3eSxs7KtRhU=
+SIZE (duplicity-0.7.03.tar.gz) = 1387377
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 8 Jul 2015 23:15:03 -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 Mon May 11 14:33:53 2015
++++ bin/duplicity Wed Jul 8 19:02:34 2015
+@@ -1249,10 +1249,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 8 Jul 2015 23:15:03 -0000
@@ -1,8 +1,29 @@
$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 Mon May 11 14:33:53 2015
++++ bin/duplicity.1 Wed Jul 8 19:04:38 2015
+@@ -1127,9 +1127,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 --ssh-askpass ,
+@@ -1659,7 +1659,7 @@ backend allows to define
+ .BR --scp-command " and"
+ .BR --sftp-command .
+ .PP
+-.BR "SSH paramiko backend " "(selected by default)"
++.BR "SSH paramiko backend "
+ 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
+@@ -1965,7 +1965,7 @@ There are two
for scp/sftp/ssh access (also see
.BR "A NOTE ON SSH BACKENDS" ).
.TP
@@ -11,7 +32,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
+@@ -1974,7 +1974,7 @@ for scp/sftp/ssh access (also see
(Python Cryptography Toolkit)
- http://www.dlitz.net/software/pycrypto/
.TP
@@ -19,34 +40,4 @@ 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
- See also
- .BR "A NOTE ON SSH BACKENDS" .
-@@ -1578,7 +1578,7 @@ backend allows to define
- .BR --scp-command " and"
- .BR --sftp-command .
- .PP
--.BR "SSH paramiko backend " "(selected by default)"
-+.B "SSH paramiko backend"
- 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 (
- .I --use-scp
- ) though scp access is used for put/get operations but listing is done via ssh remote shell.
- .PP
--.B SSH pexpect backend
-+.BR "SSH pexpect backend" " (selected by default on OpenBSD)"
- is the legacy ssh backend using the command line ssh binaries via pexpect.
- Older versions used
- .I scp
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-duplicity_gpginterface_py
===================================================================
RCS file: patches/patch-duplicity_gpginterface_py
diff -N patches/patch-duplicity_gpginterface_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-duplicity_gpginterface_py 9 Jul 2015 07:16:02 -0000
@@ -0,0 +1,21 @@
+$OpenBSD$
+--- duplicity/gpginterface.py.orig Wed Mar 11 12:33:37 2015
++++ duplicity/gpginterface.py Sun May 17 17:32:49 2015
+@@ -266,7 +266,7 @@ class GnuPG:
+
+ Instance attributes of a GnuPG object are:
+
+- * call -- string to call GnuPG with. Defaults to "gpg"
++ * call -- string to call GnuPG with. Defaults to "gpg2"
+
+ * passphrase -- Since it is a common operation
+ to pass in a passphrase to GnuPG,
+@@ -283,7 +283,7 @@ class GnuPG:
+ """
+
+ def __init__(self):
+- self.call = 'gpg'
++ self.call = 'gpg2'
+ self.passphrase = None
+ self.options = 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 8 Jul 2015 23:15:03 -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 8 Jul 2015 23:15:03 -0000
@@ -25,44 +25,61 @@ 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/multibackend.py
+lib/python${MODPY_VERSION}/site-packages/duplicity/backends/multibackend.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 +120,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