From c6c657b8bcf062b5d19eff6298b7754c11838080 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 23 Jan 2012 23:15:06 +0000 Subject: Mon Jan 23 23:15:06 UTC 2012 --- community/duplicity/PKGBUILD | 13 +++++++--- .../duplicity/duplicity-0.6.17-fix-memleak.patch | 29 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 community/duplicity/duplicity-0.6.17-fix-memleak.patch (limited to 'community/duplicity') 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 # Contributor: Aaron Schaefer 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() + + -- cgit v1.2.3-54-g00ecf