Tue Nov 26 20:36:22 2013 UTC ()
update to 0.6.22
changes:
-added Dropbox and Mega backends
-added progress bar (backend specific)
-misc fixes and improvements


(drochner)
diff -r1.1 -r1.2 pkgsrc/sysutils/duplicity/MESSAGE
diff -r1.24 -r1.25 pkgsrc/sysutils/duplicity/Makefile
diff -r1.11 -r1.12 pkgsrc/sysutils/duplicity/PLIST
diff -r1.14 -r1.15 pkgsrc/sysutils/duplicity/distinfo
diff -r0 -r1.1 pkgsrc/sysutils/duplicity/patches/patch-ab

cvs diff -r1.1 -r1.2 pkgsrc/sysutils/duplicity/Attic/MESSAGE (expand / switch to unified diff)

--- pkgsrc/sysutils/duplicity/Attic/MESSAGE 2013/04/11 16:27:45 1.1
+++ pkgsrc/sysutils/duplicity/Attic/MESSAGE 2013/11/26 20:36:22 1.2
@@ -1,7 +1,8 @@ @@ -1,7 +1,8 @@
1=========================================================================== 1===========================================================================
2$NetBSD: MESSAGE,v 1.1 2013/04/11 16:27:45 drochner Exp $ 2$NetBSD: MESSAGE,v 1.2 2013/11/26 20:36:22 drochner Exp $
3Depending on the storage backend used, additional packages micht be needed: 3Depending on the storage backend used, additional packages micht be needed:
4-Amazon S3 needs pkgsrc/net/py-boto. 4-Amazon S3 needs pkgsrc/net/py-boto.
 5-Dropbox needs pkgsrc/net/py-dropbox
5-For ssh/scp, pkgsrc/security/py-paramiko is recommended. 6-For ssh/scp, pkgsrc/security/py-paramiko is recommended.
6-For more options, see the manpage. 7-For more options, see the manpage.
7=========================================================================== 8===========================================================================

cvs diff -r1.24 -r1.25 pkgsrc/sysutils/duplicity/Makefile (expand / switch to unified diff)

--- pkgsrc/sysutils/duplicity/Makefile 2013/04/11 16:27:45 1.24
+++ pkgsrc/sysutils/duplicity/Makefile 2013/11/26 20:36:22 1.25
@@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
1# $NetBSD: Makefile,v 1.24 2013/04/11 16:27:45 drochner Exp $ 1# $NetBSD: Makefile,v 1.25 2013/11/26 20:36:22 drochner Exp $
2 2
3DISTNAME= duplicity-0.6.21 3DISTNAME= duplicity-0.6.22
4CATEGORIES= sysutils net 4CATEGORIES= sysutils net
5MASTER_SITES= http://code.launchpad.net/duplicity/0.6-series/${PKGVERSION_NOREV}/+download/ 5MASTER_SITES= http://code.launchpad.net/duplicity/0.6-series/${PKGVERSION_NOREV}/+download/
6 6
7MAINTAINER= pkgsrc-users@NetBSD.org 7MAINTAINER= pkgsrc-users@NetBSD.org
8HOMEPAGE= http://www.nongnu.org/duplicity/ 8HOMEPAGE= http://www.nongnu.org/duplicity/
9COMMENT= Remote encrypting incremental backup utility 9COMMENT= Remote encrypting incremental backup utility
10LICENSE= gnu-gpl-v2 10LICENSE= gnu-gpl-v2
11 11
12USE_PKGLOCALEDIR= yes 12USE_PKGLOCALEDIR= yes
13 13
14PKG_OPTIONS_VAR= PKG_OPTIONS.duplicity 14PKG_OPTIONS_VAR= PKG_OPTIONS.duplicity
15PKG_SUPPORTED_OPTIONS= gnupg2 15PKG_SUPPORTED_OPTIONS= gnupg2
16.include "../../mk/bsd.options.mk" 16.include "../../mk/bsd.options.mk"

cvs diff -r1.11 -r1.12 pkgsrc/sysutils/duplicity/PLIST (expand / switch to unified diff)

--- pkgsrc/sysutils/duplicity/PLIST 2013/04/11 16:27:45 1.11
+++ pkgsrc/sysutils/duplicity/PLIST 2013/11/26 20:36:22 1.12
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.11 2013/04/11 16:27:45 drochner Exp $ 1@comment $NetBSD: PLIST,v 1.12 2013/11/26 20:36:22 drochner Exp $
2bin/duplicity 2bin/duplicity
3bin/rdiffdir 3bin/rdiffdir
4${PYSITELIB}/${EGG_FILE} 4${PYSITELIB}/${EGG_FILE}
5${PYSITELIB}/duplicity/__init__.py 5${PYSITELIB}/duplicity/__init__.py
6${PYSITELIB}/duplicity/__init__.pyc 6${PYSITELIB}/duplicity/__init__.pyc
7${PYSITELIB}/duplicity/__init__.pyo 7${PYSITELIB}/duplicity/__init__.pyo
8${PYSITELIB}/duplicity/_librsync.so 8${PYSITELIB}/duplicity/_librsync.so
9${PYSITELIB}/duplicity/asyncscheduler.py 9${PYSITELIB}/duplicity/asyncscheduler.py
10${PYSITELIB}/duplicity/asyncscheduler.pyc 10${PYSITELIB}/duplicity/asyncscheduler.pyc
11${PYSITELIB}/duplicity/asyncscheduler.pyo 11${PYSITELIB}/duplicity/asyncscheduler.pyo
12${PYSITELIB}/duplicity/backend.py 12${PYSITELIB}/duplicity/backend.py
13${PYSITELIB}/duplicity/backend.pyc 13${PYSITELIB}/duplicity/backend.pyc
14${PYSITELIB}/duplicity/backend.pyo 14${PYSITELIB}/duplicity/backend.pyo
@@ -23,53 +23,62 @@ ${PYSITELIB}/duplicity/backends/_boto_si @@ -23,53 +23,62 @@ ${PYSITELIB}/duplicity/backends/_boto_si
23${PYSITELIB}/duplicity/backends/_boto_single.pyo 23${PYSITELIB}/duplicity/backends/_boto_single.pyo
24${PYSITELIB}/duplicity/backends/_ssh_paramiko.py 24${PYSITELIB}/duplicity/backends/_ssh_paramiko.py
25${PYSITELIB}/duplicity/backends/_ssh_paramiko.pyc 25${PYSITELIB}/duplicity/backends/_ssh_paramiko.pyc
26${PYSITELIB}/duplicity/backends/_ssh_paramiko.pyo 26${PYSITELIB}/duplicity/backends/_ssh_paramiko.pyo
27${PYSITELIB}/duplicity/backends/_ssh_pexpect.py 27${PYSITELIB}/duplicity/backends/_ssh_pexpect.py
28${PYSITELIB}/duplicity/backends/_ssh_pexpect.pyc 28${PYSITELIB}/duplicity/backends/_ssh_pexpect.pyc
29${PYSITELIB}/duplicity/backends/_ssh_pexpect.pyo 29${PYSITELIB}/duplicity/backends/_ssh_pexpect.pyo
30${PYSITELIB}/duplicity/backends/botobackend.py 30${PYSITELIB}/duplicity/backends/botobackend.py
31${PYSITELIB}/duplicity/backends/botobackend.pyc 31${PYSITELIB}/duplicity/backends/botobackend.pyc
32${PYSITELIB}/duplicity/backends/botobackend.pyo 32${PYSITELIB}/duplicity/backends/botobackend.pyo
33${PYSITELIB}/duplicity/backends/cloudfilesbackend.py 33${PYSITELIB}/duplicity/backends/cloudfilesbackend.py
34${PYSITELIB}/duplicity/backends/cloudfilesbackend.pyc 34${PYSITELIB}/duplicity/backends/cloudfilesbackend.pyc
35${PYSITELIB}/duplicity/backends/cloudfilesbackend.pyo 35${PYSITELIB}/duplicity/backends/cloudfilesbackend.pyo
 36${PYSITELIB}/duplicity/backends/dpbxbackend.py
 37${PYSITELIB}/duplicity/backends/dpbxbackend.pyc
 38${PYSITELIB}/duplicity/backends/dpbxbackend.pyo
36${PYSITELIB}/duplicity/backends/ftpbackend.py 39${PYSITELIB}/duplicity/backends/ftpbackend.py
37${PYSITELIB}/duplicity/backends/ftpbackend.pyc 40${PYSITELIB}/duplicity/backends/ftpbackend.pyc
38${PYSITELIB}/duplicity/backends/ftpbackend.pyo 41${PYSITELIB}/duplicity/backends/ftpbackend.pyo
39${PYSITELIB}/duplicity/backends/ftpsbackend.py 42${PYSITELIB}/duplicity/backends/ftpsbackend.py
40${PYSITELIB}/duplicity/backends/ftpsbackend.pyc 43${PYSITELIB}/duplicity/backends/ftpsbackend.pyc
41${PYSITELIB}/duplicity/backends/ftpsbackend.pyo 44${PYSITELIB}/duplicity/backends/ftpsbackend.pyo
42${PYSITELIB}/duplicity/backends/gdocsbackend.py 45${PYSITELIB}/duplicity/backends/gdocsbackend.py
43${PYSITELIB}/duplicity/backends/gdocsbackend.pyc 46${PYSITELIB}/duplicity/backends/gdocsbackend.pyc
44${PYSITELIB}/duplicity/backends/gdocsbackend.pyo 47${PYSITELIB}/duplicity/backends/gdocsbackend.pyo
45${PYSITELIB}/duplicity/backends/giobackend.py 48${PYSITELIB}/duplicity/backends/giobackend.py
46${PYSITELIB}/duplicity/backends/giobackend.pyc 49${PYSITELIB}/duplicity/backends/giobackend.pyc
47${PYSITELIB}/duplicity/backends/giobackend.pyo 50${PYSITELIB}/duplicity/backends/giobackend.pyo
48${PYSITELIB}/duplicity/backends/hsibackend.py 51${PYSITELIB}/duplicity/backends/hsibackend.py
49${PYSITELIB}/duplicity/backends/hsibackend.pyc 52${PYSITELIB}/duplicity/backends/hsibackend.pyc
50${PYSITELIB}/duplicity/backends/hsibackend.pyo 53${PYSITELIB}/duplicity/backends/hsibackend.pyo
51${PYSITELIB}/duplicity/backends/imapbackend.py 54${PYSITELIB}/duplicity/backends/imapbackend.py
52${PYSITELIB}/duplicity/backends/imapbackend.pyc 55${PYSITELIB}/duplicity/backends/imapbackend.pyc
53${PYSITELIB}/duplicity/backends/imapbackend.pyo 56${PYSITELIB}/duplicity/backends/imapbackend.pyo
54${PYSITELIB}/duplicity/backends/localbackend.py 57${PYSITELIB}/duplicity/backends/localbackend.py
55${PYSITELIB}/duplicity/backends/localbackend.pyc 58${PYSITELIB}/duplicity/backends/localbackend.pyc
56${PYSITELIB}/duplicity/backends/localbackend.pyo 59${PYSITELIB}/duplicity/backends/localbackend.pyo
 60${PYSITELIB}/duplicity/backends/megabackend.py
 61${PYSITELIB}/duplicity/backends/megabackend.pyc
 62${PYSITELIB}/duplicity/backends/megabackend.pyo
57${PYSITELIB}/duplicity/backends/rsyncbackend.py 63${PYSITELIB}/duplicity/backends/rsyncbackend.py
58${PYSITELIB}/duplicity/backends/rsyncbackend.pyc 64${PYSITELIB}/duplicity/backends/rsyncbackend.pyc
59${PYSITELIB}/duplicity/backends/rsyncbackend.pyo 65${PYSITELIB}/duplicity/backends/rsyncbackend.pyo
60${PYSITELIB}/duplicity/backends/sshbackend.py 66${PYSITELIB}/duplicity/backends/sshbackend.py
61${PYSITELIB}/duplicity/backends/sshbackend.pyc 67${PYSITELIB}/duplicity/backends/sshbackend.pyc
62${PYSITELIB}/duplicity/backends/sshbackend.pyo 68${PYSITELIB}/duplicity/backends/sshbackend.pyo
 69${PYSITELIB}/duplicity/backends/swiftbackend.py
 70${PYSITELIB}/duplicity/backends/swiftbackend.pyc
 71${PYSITELIB}/duplicity/backends/swiftbackend.pyo
63${PYSITELIB}/duplicity/backends/tahoebackend.py 72${PYSITELIB}/duplicity/backends/tahoebackend.py
64${PYSITELIB}/duplicity/backends/tahoebackend.pyc 73${PYSITELIB}/duplicity/backends/tahoebackend.pyc
65${PYSITELIB}/duplicity/backends/tahoebackend.pyo 74${PYSITELIB}/duplicity/backends/tahoebackend.pyo
66${PYSITELIB}/duplicity/backends/u1backend.py 75${PYSITELIB}/duplicity/backends/u1backend.py
67${PYSITELIB}/duplicity/backends/u1backend.pyc 76${PYSITELIB}/duplicity/backends/u1backend.pyc
68${PYSITELIB}/duplicity/backends/u1backend.pyo 77${PYSITELIB}/duplicity/backends/u1backend.pyo
69${PYSITELIB}/duplicity/backends/webdavbackend.py 78${PYSITELIB}/duplicity/backends/webdavbackend.py
70${PYSITELIB}/duplicity/backends/webdavbackend.pyc 79${PYSITELIB}/duplicity/backends/webdavbackend.pyc
71${PYSITELIB}/duplicity/backends/webdavbackend.pyo 80${PYSITELIB}/duplicity/backends/webdavbackend.pyo
72${PYSITELIB}/duplicity/cached_ops.py 81${PYSITELIB}/duplicity/cached_ops.py
73${PYSITELIB}/duplicity/cached_ops.pyc 82${PYSITELIB}/duplicity/cached_ops.pyc
74${PYSITELIB}/duplicity/cached_ops.pyo 83${PYSITELIB}/duplicity/cached_ops.pyo
75${PYSITELIB}/duplicity/collections.py 84${PYSITELIB}/duplicity/collections.py
@@ -125,26 +134,29 @@ ${PYSITELIB}/duplicity/manifest.pyc @@ -125,26 +134,29 @@ ${PYSITELIB}/duplicity/manifest.pyc
125${PYSITELIB}/duplicity/manifest.pyo 134${PYSITELIB}/duplicity/manifest.pyo
126${PYSITELIB}/duplicity/misc.py 135${PYSITELIB}/duplicity/misc.py
127${PYSITELIB}/duplicity/misc.pyc 136${PYSITELIB}/duplicity/misc.pyc
128${PYSITELIB}/duplicity/misc.pyo 137${PYSITELIB}/duplicity/misc.pyo
129${PYSITELIB}/duplicity/patchdir.py 138${PYSITELIB}/duplicity/patchdir.py
130${PYSITELIB}/duplicity/patchdir.pyc 139${PYSITELIB}/duplicity/patchdir.pyc
131${PYSITELIB}/duplicity/patchdir.pyo 140${PYSITELIB}/duplicity/patchdir.pyo
132${PYSITELIB}/duplicity/path.py 141${PYSITELIB}/duplicity/path.py
133${PYSITELIB}/duplicity/path.pyc 142${PYSITELIB}/duplicity/path.pyc
134${PYSITELIB}/duplicity/path.pyo 143${PYSITELIB}/duplicity/path.pyo
135${PYSITELIB}/duplicity/pexpect.py 144${PYSITELIB}/duplicity/pexpect.py
136${PYSITELIB}/duplicity/pexpect.pyc 145${PYSITELIB}/duplicity/pexpect.pyc
137${PYSITELIB}/duplicity/pexpect.pyo 146${PYSITELIB}/duplicity/pexpect.pyo
 147${PYSITELIB}/duplicity/progress.py
 148${PYSITELIB}/duplicity/progress.pyc
 149${PYSITELIB}/duplicity/progress.pyo
138${PYSITELIB}/duplicity/robust.py 150${PYSITELIB}/duplicity/robust.py
139${PYSITELIB}/duplicity/robust.pyc 151${PYSITELIB}/duplicity/robust.pyc
140${PYSITELIB}/duplicity/robust.pyo 152${PYSITELIB}/duplicity/robust.pyo
141${PYSITELIB}/duplicity/selection.py 153${PYSITELIB}/duplicity/selection.py
142${PYSITELIB}/duplicity/selection.pyc 154${PYSITELIB}/duplicity/selection.pyc
143${PYSITELIB}/duplicity/selection.pyo 155${PYSITELIB}/duplicity/selection.pyo
144${PYSITELIB}/duplicity/static.py 156${PYSITELIB}/duplicity/static.py
145${PYSITELIB}/duplicity/static.pyc 157${PYSITELIB}/duplicity/static.pyc
146${PYSITELIB}/duplicity/static.pyo 158${PYSITELIB}/duplicity/static.pyo
147${PYSITELIB}/duplicity/statistics.py 159${PYSITELIB}/duplicity/statistics.py
148${PYSITELIB}/duplicity/statistics.pyc 160${PYSITELIB}/duplicity/statistics.pyc
149${PYSITELIB}/duplicity/statistics.pyo 161${PYSITELIB}/duplicity/statistics.pyo
150${PYSITELIB}/duplicity/tarfile.py 162${PYSITELIB}/duplicity/tarfile.py

cvs diff -r1.14 -r1.15 pkgsrc/sysutils/duplicity/distinfo (expand / switch to unified diff)

--- pkgsrc/sysutils/duplicity/distinfo 2013/04/11 16:27:45 1.14
+++ pkgsrc/sysutils/duplicity/distinfo 2013/11/26 20:36:22 1.15
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
1$NetBSD: distinfo,v 1.14 2013/04/11 16:27:45 drochner Exp $ 1$NetBSD: distinfo,v 1.15 2013/11/26 20:36:22 drochner Exp $
2 2
3SHA1 (duplicity-0.6.21.tar.gz) = 8594666f5312a7b367ab80b979d70a5c45f1145b 3SHA1 (duplicity-0.6.22.tar.gz) = afa144f444148b67d7649b32b80170d917743783
4RMD160 (duplicity-0.6.21.tar.gz) = 1d359227905e4bf37768b4053f52b8afbf0686a6 4RMD160 (duplicity-0.6.22.tar.gz) = b34bc75120a3a744383153d51a179042f82b216b
5Size (duplicity-0.6.21.tar.gz) = 1235340 bytes 5Size (duplicity-0.6.22.tar.gz) = 1257082 bytes
6SHA1 (patch-aa) = f1210f703dccf759f234846a3139ce98063011cb 6SHA1 (patch-aa) = f1210f703dccf759f234846a3139ce98063011cb
 7SHA1 (patch-ab) = f9b9a21d77ae5146b1890e462130609b307a89ef

File Added: pkgsrc/sysutils/duplicity/patches/Attic/patch-ab
$NetBSD: patch-ab,v 1.1 2013/11/26 20:36:22 drochner Exp $

avoid noise if dropbox-api is not installed

--- duplicity/backends/dpbxbackend.py.orig	2013-08-22 13:30:08.000000000 +0000
+++ duplicity/backends/dpbxbackend.py
@@ -41,7 +41,11 @@ from duplicity import tempdir
 from duplicity.backend import retry_fatal
 
 
-from dropbox import client, rest, session
+try:
+        from dropbox.session import DropboxSession
+except:
+        class DropboxSession:
+                pass
 
 # This application key is registered in my name (jno at pisem dot net).
 # You can register your own developer account with Dropbox and
@@ -100,6 +104,7 @@ def command(login_required=True):
 class DPBXBackend(duplicity.backend.Backend):
     """Connect to remote store using Dr*pB*x service"""
     def __init__(self, parsed_url):
+        from dropbox import client, rest
         duplicity.backend.Backend.__init__(self, parsed_url)
 
         self.sess = StoredSession(etacsufbo(APP_KEY)
@@ -213,7 +218,7 @@ class DPBXBackend(duplicity.backend.Back
         resp = self.api_client.file_create_folder(path)
         log.Debug('dpbx._mkdir(%s): %s'%(path,resp))
 
-class StoredSession(session.DropboxSession):
+class StoredSession(DropboxSession):
     """a wrapper around DropboxSession that stores a token to a file on disk"""
     TOKEN_FILE = _TOKEN_CACHE_FILE
 
@@ -254,7 +259,7 @@ class StoredSession(session.DropboxSessi
 
     def unlink(self):
         self.delete_creds()
-        session.DropboxSession.unlink(self)
+        DropboxSession.unlink(self)
 
 def etacsufbo(s):
   return ''.join(reduce(lambda x,y:(x and len(x[-1])==1)and(x.append(y+