On Thu, Jul 9, 2015 at 1:14 PM, viq <[email protected]> wrote:
> I pushed a version with equivalent changes to openbsd-wip, if you want
> to try from there.
And here's a patch against CVS.
--
viq
Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/duplicity/Makefile,v
retrieving revision 1.33
diff -u -p -u -d -r1.33 Makefile
--- Makefile 4 Jun 2015 04:19:12 -0000 1.33
+++ Makefile 9 Jul 2015 20:18:05 -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,8 +21,11 @@ WANTLIB += pthread rsync ${MODPY_WANTLIB
LIB_DEPENDS += net/librsync \
${MODPY_LIB_DEPENDS}
-RUN_DEPENDS += net/py-boto \
+RUN_DEPENDS += devel/py-pexpect \
net/ncftp \
+ net/py-boto \
+ net/py-pyrax \
+ gnupg->=2:security/gnupg2 \
sysutils/py-lockfile
MAKE_ENV += LIBRSYNC_DIR=${LOCALBASE}
@@ -30,10 +33,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: /cvs/ports/sysutils/duplicity/distinfo,v
retrieving revision 1.18
diff -u -p -u -d -r1.18 distinfo
--- distinfo 4 Jun 2015 04:19:12 -0000 1.18
+++ distinfo 9 Jul 2015 20:18:05 -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: /cvs/ports/sysutils/duplicity/patches/patch-bin_duplicity,v
retrieving revision 1.6
diff -u -p -u -d -r1.6 patch-bin_duplicity
--- patches/patch-bin_duplicity 14 Nov 2014 07:49:33 -0000 1.6
+++ patches/patch-bin_duplicity 9 Jul 2015 20:18:05 -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 12:33:53 2015
++++ bin/duplicity Wed Jul 8 20:15:40 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: /cvs/ports/sysutils/duplicity/patches/patch-bin_duplicity_1,v
retrieving revision 1.2
diff -u -p -u -d -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 9 Jul 2015 20:18:05 -0000
@@ -1,47 +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
- for scp/sftp/ssh access (also see
- .BR "A NOTE ON SSH BACKENDS" ).
- .TP
--.BR "ssh paramiko backend" " (enabled by default)"
-+.B "ssh paramiko backend"
- .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
- (Python Cryptography Toolkit)
- - http://www.dlitz.net/software/pycrypto/
- .TP
--.B ssh pexpect backend
-+.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 .
+--- bin/duplicity.1.orig Mon May 11 12:33:53 2015
++++ bin/duplicity.1 Wed Jul 8 20:22:22 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://, pexpect+sftp://, lftp+sftp://"
+ .br
+-.BR "alternatively" " try pexpect+scp://, pexpect+sftp://, lftp+sftp://"
++.BR "alternatively" " try paramiko+scp:// and paramiko+sftp://"
.br
See also
- .BR "A NOTE ON SSH BACKENDS" .
-@@ -1578,7 +1578,7 @@ backend allows to define
+ .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)"
-+.B "SSH paramiko backend"
++.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 (
+@@ -1672,7 +1672,7 @@ mode (
.I --use-scp
) though scp access is used for put/get operations but listing is done via
ssh remote shell.
.PP
@@ -50,3 +32,21 @@ Document the ssh backend change from par
is the legacy ssh backend using the command line ssh binaries via pexpect.
Older versions used
.I scp
+@@ -1965,7 +1965,7 @@ There are two
+ for scp/sftp/ssh access (also see
+ .BR "A NOTE ON SSH BACKENDS" ).
+ .TP
+-.BR "ssh paramiko backend" " (enabled by default)"
++.B "ssh paramiko backend"
+ .B paramiko
+ (SSH2 for python)
+ - http://pypi.python.org/pypi/paramiko (downloads);
http://github.com/paramiko/paramiko (project page)
+@@ -1974,7 +1974,7 @@ for scp/sftp/ssh access (also see
+ (Python Cryptography Toolkit)
+ - http://www.dlitz.net/software/pycrypto/
+ .TP
+-.B ssh pexpect backend
++.BR "ssh pexpect backend" " (default on OpenBSD)"
+ .B sftp/scp client binaries
+ OpenSSH - http://www.openssh.com/
+ .br
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 20:18:05 -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: /cvs/ports/sysutils/duplicity/patches/patch-setup_py,v
retrieving revision 1.6
diff -u -p -u -d -r1.6 patch-setup_py
--- patches/patch-setup_py 14 Nov 2014 07:49:33 -0000 1.6
+++ patches/patch-setup_py 9 Jul 2015 20:18:05 -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: /cvs/ports/sysutils/duplicity/pkg/PLIST,v
retrieving revision 1.14
diff -u -p -u -d -r1.14 PLIST
--- pkg/PLIST 1 Nov 2014 10:28:15 -0000 1.14
+++ pkg/PLIST 9 Jul 2015 20:18:05 -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