summaryrefslogtreecommitdiff
path: root/community/duplicity
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-01-23 23:15:06 +0000
committerroot <root@rshg054.dnsready.net>2012-01-23 23:15:06 +0000
commitc6c657b8bcf062b5d19eff6298b7754c11838080 (patch)
treeed6a14e27d40adfcc821fe921e95aa9e9ab4585b /community/duplicity
parent164067832916c8e59219e1b0f30d7d04618a536e (diff)
Mon Jan 23 23:15:06 UTC 2012
Diffstat (limited to 'community/duplicity')
-rw-r--r--community/duplicity/PKGBUILD13
-rw-r--r--community/duplicity/duplicity-0.6.17-fix-memleak.patch29
2 files changed, 38 insertions, 4 deletions
diff --git a/community/duplicity/PKGBUILD b/community/duplicity/PKGBUILD
index adcaa6edb..955bd64db 100644
--- a/community/duplicity/PKGBUILD
+++ b/community/duplicity/PKGBUILD
@@ -1,19 +1,21 @@
-# $Id: PKGBUILD 60285 2011-12-08 22:52:59Z lfleischer $
+# $Id: PKGBUILD 62636 2012-01-23 00:53:34Z lfleischer $
# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
# Contributor: Aaron Schaefer <aaron@elasticdog.com>
pkgname=duplicity
pkgver=0.6.17
-pkgrel=3
+pkgrel=4
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=('librsync' 'ncftp' 'python2' 'python-boto' 'python-gnupginterface')
source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz"
- 'botobackend.patch')
+ 'botobackend.patch'
+ 'duplicity-0.6.17-fix-memleak.patch')
md5sums=('36423ab4e3b9aa90c5c44d9fa93fba0f'
- '49bbdc327230fe5985d18eaae37eec0c')
+ '49bbdc327230fe5985d18eaae37eec0c'
+ 'b77e98d006842414fdda9662c8081d3b')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -27,6 +29,9 @@ build() {
# add hotfix issued by upstream (FS#27390)
patch -p0 -i ../botobackend.patch
+ # fix a memory leak (upstream bug #908228)
+ patch -p0 -i ../duplicity-0.6.17-fix-memleak.patch
+
python2 setup.py install --root="$pkgdir" --optimize=1
# fix broken documentation permissions until upstream does (FS#27301)
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()
+
+