diff options
Diffstat (limited to 'community/duplicity')
-rw-r--r-- | community/duplicity/PKGBUILD | 53 | ||||
-rw-r--r-- | community/duplicity/botobackend.patch | 13 | ||||
-rw-r--r-- | community/duplicity/duplicity-0.6.17-fix-memleak.patch | 29 | ||||
-rw-r--r-- | community/duplicity/u1backend.patch | 16 |
4 files changed, 111 insertions, 0 deletions
diff --git a/community/duplicity/PKGBUILD b/community/duplicity/PKGBUILD new file mode 100644 index 000000000..56c51bbcf --- /dev/null +++ b/community/duplicity/PKGBUILD @@ -0,0 +1,53 @@ +# $Id: PKGBUILD 92894 2013-06-18 09:01:17Z lfleischer $ +# Maintainer: Kaiting Chen <kaitocracy@gmail.com> +# Contributor: Aaron Schaefer <aaron@elasticdog.com> + +pkgname=duplicity +pkgver=0.6.21 +pkgrel=3 +pkgdesc='A utility for encrypted, bandwidth-efficient backups using the rsync algorithm.' +arch=('i686' 'x86_64') +url='http://www.nongnu.org/duplicity/' +license=('GPL') +depends=('gnupg' 'librsync' 'ncftp' 'python2-paramiko') +optdepends=('lftp: FTPS backend' + 'python2-boto: Amazon S3 backend' + 'python2-gobject: GIO backend' + 'gvfs: GIO backend' + 'python2-gdata: Google Docs backend' + 'python2-httplib2: Ubuntu One backend' + 'python2-oauthlib: Ubuntu One backend' + 'rsync: rsync backend') +source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig} + "u1backend.patch") +md5sums=('4ade1de475e0af64211bb6933b593057' + '3521d679ba7dff46653313aa3b3e6855' + 'b7aede10a3f5503ae4428a506b57486c') + +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # Fix Ubuntu One backup (FS#35487, upstream revisions 912 and 913, will be fixed in 0.6.22). + patch -p0 duplicity/backends/u1backend.py ../u1backend.patch +} + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # python2 fix + for file in $(find . -name '*.py' -print); do + sed -i 's_^#!.*/usr/bin/python$_#!/usr/bin/python2_' $file + sed -i 's_^#!.*/usr/bin/env.*python$_#!/usr/bin/env python2_' $file + done +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + python2 setup.py install --root="$pkgdir" --optimize=1 + + # fix broken documentation permissions until upstream does (FS#27301) + chmod 644 "$pkgdir/usr/share/man/man1/$pkgname.1" + chmod 644 "$pkgdir/usr/share/man/man1/rdiffdir.1" + chmod 644 "$pkgdir/usr/share/doc/$pkgname-$pkgver"/* +} diff --git a/community/duplicity/botobackend.patch b/community/duplicity/botobackend.patch new file mode 100644 index 000000000..302e1e2b1 --- /dev/null +++ b/community/duplicity/botobackend.patch @@ -0,0 +1,13 @@ +=== modified file duplicity/backends/botobackend.py +--- duplicity/backends/botobackend.py 2011-11-25 17:47:57 +0000 ++++ duplicity/backends/botobackend.py 2011-12-01 16:15:25 +0000 +@@ -26,6 +26,6 @@ + if sys.version_info[:2] < (2,6): + print "Sorry, S3 multiprocessing requires version 2.6 or later of python" + sys.exit(1) +- import _boto_multi.py ++ import _boto_multi + else: +- import _boto_single.py ++ import _boto_single + diff --git a/community/duplicity/duplicity-0.6.17-fix-memleak.patch b/community/duplicity/duplicity-0.6.17-fix-memleak.patch new file mode 100644 index 000000000..1c4c8daff --- /dev/null +++ b/community/duplicity/duplicity-0.6.17-fix-memleak.patch @@ -0,0 +1,29 @@ +=== modified file 'duplicity/util.py' +--- duplicity/util.py 2011-08-23 18:14:17 +0000 ++++ duplicity/util.py 2012-01-20 21:50:01 +0000 +@@ -71,6 +71,10 @@ + else: + raise + ++class BlackHoleList(list): ++ def append(self, x): ++ pass ++ + class FakeTarFile: + debug = 0 + def __iter__(self): +@@ -83,7 +87,12 @@ + # yet. So we want to ignore ReadError exceptions, which are used to signal + # this. + try: +- return tarfile.TarFile("arbitrary", mode, fp) ++ tf = tarfile.TarFile("arbitrary", mode, fp) ++ # Now we cause TarFile to not cache TarInfo objects. It would end up ++ # consuming a lot of memory over the lifetime of our long-lasting ++ # signature files otherwise. ++ tf.members = BlackHoleList() ++ return tf + except tarfile.ReadError: + return FakeTarFile() + + diff --git a/community/duplicity/u1backend.patch b/community/duplicity/u1backend.patch new file mode 100644 index 000000000..7aba89fbb --- /dev/null +++ b/community/duplicity/u1backend.patch @@ -0,0 +1,16 @@ +86a87,90 +> +> if isinstance(body, file): +> body.seek(0) # Go to the beginning of the file for the retry +> +108a113,115 +> if isinstance(body, file): +> body.seek(0) # Go to the beginning of the file for the retry +> +209a217 +> size = os.path.getsize(source_path.name) +213c221,222 +< headers = {"Content-Type": content_type} +--- +> headers = {"Content-Length": str(size), +> "Content-Type": content_type} |