First, thank you for interest, and sorry for the delay. On wto, 2015-12-15 at 22:46 +0100, Daniel Jakots wrote: > On Sun, 13 Dec 2015 13:51:43 +0100, viq <vic...@gmail.com> wrote: > > > Here's a tarball of duplicity 0.7.06, so it's easier to import next > > to > > existing 0.6.x. I can provide it in a form of a diff as well. > > I guess that it would have been easier with a diff, but that's my > opinion :)
If it is to update existing then yes, if to have two versions in parallel it might have been easier otherwise. But yeah, I see your point :) > > Works for me for my simple usage (duply backups to hubic). > > I would very much like this version to be available, as this allows > > to > > backup to newer, cheaper backends than the 0.6 series. > > "But they say it's a development version!" - yes, they do. Well, > > they > > call it "stable development version", and call 0.6 deprecated and > > everywhere I saw tell people to actually use the 0.7 version. > > I approve of the move to the 0.7 series. > > I tried your archive. Between 0.6 and 0.7 they moved from > #!/usr/bin/env python to #!/usr/bin/env python2. The former is > changed > to #!/usr/local/bin/python2.7 but not the latter. As it doesn't work > I > updated the patch patch-bin_duplicity and the Makefile for it, but > it's > more a workaround IMHO. Nice catch. > I tested the update with restoring backups made on 5.8 with -stable > duplicity on amd64 and also backupping and restoring, on amd64 and > i386 > works fine. > > Also FYI mandoc -Tlint duplicity.1 gives one error and a bunch of > warning. I'll try to have a look at it in next few days. > Updated diff, I hope I didn't miss anything from your update. Reads good, but didn't have time to look in detail yet, will in the next few days. Thank you for looking :) > Index: Makefile > =================================================================== > RCS file: /cvs/ports/sysutils/duplicity/Makefile,v > retrieving revision 1.34 > diff -u -p -r1.34 Makefile > --- Makefile 29 Sep 2015 10:52:34 -0000 1.34 > +++ Makefile 15 Dec 2015 21:08:43 -0000 > @@ -1,10 +1,12 @@ > # $OpenBSD: Makefile,v 1.34 2015/09/29 10:52:34 sthen Exp $ > > +# optional dependencies > +# py-pyrax > + > COMMENT = encrypted backup using rsync algorithm > > -MODPY_EGG_VERSION = 0.6.26 > +MODPY_EGG_VERSION = 0.7.06 > DISTNAME = duplicity-${MODPY_EGG_VERSION} > -REVISION = 0 > > CATEGORIES = sysutils > > @@ -22,19 +24,19 @@ 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 \ > + gnupg-<2:security/gnupg \ > sysutils/py-lockfile > > MAKE_ENV += LIBRSYNC_DIR=${LOCALBASE} > > +pre-build: > + ${SUBST_CMD} ${WRKSRC}/bin/duplicity > + > # 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 -r1.18 distinfo > --- distinfo 4 Jun 2015 04:19:12 -0000 1.18 > +++ distinfo 15 Dec 2015 21:08:43 -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.06.tar.gz) = > AHVZXtuJQ5nPAPrpFUquk6B+qtwDH+3l30zFlUNsf4w= > +SIZE (duplicity-0.7.06.tar.gz) = 1417252 > Index: patches/patch-bin_duplicity > =================================================================== > RCS file: /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 15 Dec 2015 21:08:43 -0000 > @@ -1,13 +1,20 @@ > $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 Dec 7 13:03:39 2015 > ++++ bin/duplicity Tue Dec 15 21:56:17 2015 > +@@ -1,4 +1,4 @@ > +-#!/usr/bin/env python2 > ++#!${MODPY_BIN} > + # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- > + # > + # duplicity -- Encrypted bandwidth efficient backup > +@@ -1257,10 +1257,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 -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 15 Dec 2015 21:08:43 -0000 > @@ -1,47 +1,38 @@ > $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.c > om/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 Dec 7 13:03:39 2015 > ++++ bin/duplicity.1 Tue Dec 15 21:14:11 2015 > +@@ -1151,9 +1151,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+sft > p://" > ++.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 , > +@@ -1764,7 +1764,7 @@ about the requirements for a server to support > + .I scp/ssh > + access. > + To make it even more confusing the user can choose between several > ssh backends via a scheme prefix: > +-paramiko+ (default), pexpect+, lftp+... . > ++paramiko+, pexpect+ (default), lftp+... . > + .br > + paramiko & pexpect support > + .BR --use-scp , > +@@ -1776,7 +1776,7 @@ backend allows to define > .BR --scp-command " and" > .BR --sftp-command . > .PP > --.BR "SSH paramiko backend " "(selected by default)" > -+.B "SSH paramiko backend" > +-.BR "SSH paramiko backend " "(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 > -@@ -1591,7 +1591,7 @@ mode ( > +@@ -1789,7 +1789,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 +41,12 @@ 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 > +@@ -2050,7 +2050,7 @@ see pydrive backend > + (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-setup_py > =================================================================== > RCS file: /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 15 Dec 2015 21:08:43 -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 Mon Dec 7 13:03:39 2015 > ++++ setup.py Tue Dec 15 21:14:11 2015 > +@@ -47,15 +47,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 -r1.14 PLIST > --- pkg/PLIST 1 Nov 2014 10:28:15 -0000 1.14 > +++ pkg/PLIST 15 Dec 2015 21:08:43 -0000 > @@ -2,11 +2,12 @@ > bin/duplicity > bin/rdiffdir > lib/python${MODPY_VERSION}/site-packages/duplicity/ > -lib/python${MODPY_VERSION}/site-packages/duplicity- > ${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/ > -lib/python${MODPY_VERSION}/site-packages/duplicity- > ${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/PKG-INFO > -lib/python${MODPY_VERSION}/site-packages/duplicity- > ${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/SOURCES.txt > -lib/python${MODPY_VERSION}/site-packages/duplicity- > ${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/dependency_links.txt > -lib/python${MODPY_VERSION}/site-packages/duplicity- > ${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt > +lib/python${MODPY_VERSION}/site-packages/duplicity-0.7.6- > py${MODPY_VERSION}.egg-info/ > +lib/python${MODPY_VERSION}/site-packages/duplicity-0.7.6- > py${MODPY_VERSION}.egg-info/PKG-INFO > +lib/python${MODPY_VERSION}/site-packages/duplicity-0.7.6- > py${MODPY_VERSION}.egg-info/SOURCES.txt > +lib/python${MODPY_VERSION}/site-packages/duplicity-0.7.6- > py${MODPY_VERSION}.egg-info/dependency_links.txt > +lib/python${MODPY_VERSION}/site-packages/duplicity-0.7.6- > py${MODPY_VERSION}.egg-info/requires.txt > +lib/python${MODPY_VERSION}/site-packages/duplicity-0.7.6- > py${MODPY_VERSION}.egg-info/top_level.txt > lib/python${MODPY_VERSION}/site-packages/duplicity/__init__.py > lib/python${MODPY_VERSION}/site-packages/duplicity/__init__.pyc > lib/python${MODPY_VERSION}/site-packages/duplicity/_librsync.so > @@ -25,44 +26,63 @@ 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/b2backend.py > +lib/python${MODPY_VERSION}/site- > packages/duplicity/backends/b2backend.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 +123,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 > -- viq <vic...@gmail.com>