diff options
author | Ioannis Aslanidis <deathwing00@gentoo.org> | 2006-08-22 13:09:32 +0000 |
---|---|---|
committer | Ioannis Aslanidis <deathwing00@gentoo.org> | 2006-08-22 13:09:32 +0000 |
commit | 673bc1a022cde0e39897e8247609602bbaaeed7c (patch) | |
tree | bdbb12d0c45ce71ece24ef3899ec8622a1425578 /media-gfx/digikam | |
parent | Stable on SPARC. (diff) | |
download | historical-673bc1a022cde0e39897e8247609602bbaaeed7c.tar.gz historical-673bc1a022cde0e39897e8247609602bbaaeed7c.tar.bz2 historical-673bc1a022cde0e39897e8247609602bbaaeed7c.zip |
Memory leak fix added. Resolves bug #144433. Thanks to Peter Gantner for reporting it.
Package-Manager: portage-2.1-r2
Diffstat (limited to 'media-gfx/digikam')
-rw-r--r-- | media-gfx/digikam/ChangeLog | 10 | ||||
-rw-r--r-- | media-gfx/digikam/Manifest | 19 | ||||
-rw-r--r-- | media-gfx/digikam/digikam-0.9.0_beta1-r1.ebuild | 95 | ||||
-rw-r--r-- | media-gfx/digikam/files/digest-digikam-0.9.0_beta1-r1 | 33 | ||||
-rw-r--r-- | media-gfx/digikam/files/digikam-0.9.0_beta1-memory-leak-fix.patch | 71 |
5 files changed, 223 insertions, 5 deletions
diff --git a/media-gfx/digikam/ChangeLog b/media-gfx/digikam/ChangeLog index c0d363ff7266..c3e23a076d0d 100644 --- a/media-gfx/digikam/ChangeLog +++ b/media-gfx/digikam/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for media-gfx/digikam # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-gfx/digikam/ChangeLog,v 1.55 2006/08/13 16:26:04 deathwing00 Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-gfx/digikam/ChangeLog,v 1.56 2006/08/22 13:09:32 deathwing00 Exp $ + +*digikam-0.9.0_beta1-r1 (22 Aug 2006) + + 22 Aug 2006; Ioannis Aslanidis <deathwing00@gentoo.org> + +files/digikam-0.9.0_beta1-memory-leak-fix.patch, + +digikam-0.9.0_beta1-r1.ebuild: + Memory leak fix added. Resolves bug #144433. Thanks to Peter Gantner for + reporting it. *digikam-0.9.0_beta1 (13 Aug 2006) diff --git a/media-gfx/digikam/Manifest b/media-gfx/digikam/Manifest index 8fc2efa8fcd8..9e962cf6233f 100644 --- a/media-gfx/digikam/Manifest +++ b/media-gfx/digikam/Manifest @@ -1,3 +1,7 @@ +AUX digikam-0.9.0_beta1-memory-leak-fix.patch 2182 RMD160 0cb1ffed1a95f288dc1e3788d085c833d5c464ac SHA1 fc01e4f76aa5a8dceee6d45a67babfa824f5e257 SHA256 5bb5564e97d63f88106c5ee264527fb14967ae2c24d612f58a14d4b48a308b4e +MD5 d98a7c321df884d1cd99976387989f64 files/digikam-0.9.0_beta1-memory-leak-fix.patch 2182 +RMD160 0cb1ffed1a95f288dc1e3788d085c833d5c464ac files/digikam-0.9.0_beta1-memory-leak-fix.patch 2182 +SHA256 5bb5564e97d63f88106c5ee264527fb14967ae2c24d612f58a14d4b48a308b4e files/digikam-0.9.0_beta1-memory-leak-fix.patch 2182 DIST digikam-0.7.4.tar.bz2 2322119 RMD160 c69b2b90ec56cf5e3f536b017db2310e325927b8 SHA256 38139c41863064d7d388b1d927747392f43f2c97cb55700d7a8f697378cc8cc2 DIST digikam-0.8.1.tar.bz2 3783559 RMD160 36e034cf1ddc783d7c8f9e28899862e1dce6ef0d SHA1 1bd89b9568c5b1edded6632edf73775ef9e798ff SHA256 4f0ad787fe8a4bf651cb1db7b896024fbb6abfd47527a64cb712b18e5ea4d87f DIST digikam-0.8.2.tar.bz2 4015299 RMD160 6dfc3626d606427e06327c2451010fc50f96df2e SHA1 6305b1c485a3fe82257907410b256966bb012406 SHA256 f6f18c2ad2587cc8477512abb648fed7c9da53ef63dc36e7925e995cf6a2e043 @@ -29,14 +33,18 @@ EBUILD digikam-0.8.2.ebuild 2628 RMD160 bc43e906b5bffb7e616fe2433867f8ba152b3776 MD5 3076d6a3ebb339e76ad6385dbc7bf506 digikam-0.8.2.ebuild 2628 RMD160 bc43e906b5bffb7e616fe2433867f8ba152b3776 digikam-0.8.2.ebuild 2628 SHA256 d76e955e43631555c61c816d4c74b72368ab30d5e9eb1a5bcf537aa28daff25b digikam-0.8.2.ebuild 2628 +EBUILD digikam-0.9.0_beta1-r1.ebuild 2662 RMD160 f890a67ef1fba0d4460e322cefc0a53c64f92ea5 SHA1 710827df8c884923f803edef81e6e97f81e5350b SHA256 ee6bba789ef878336a70da7db4f5f9c40bb21a2c4ac4898e20abcb350cbd5185 +MD5 d9fc45fd6e99f7ea4651f8013c32f347 digikam-0.9.0_beta1-r1.ebuild 2662 +RMD160 f890a67ef1fba0d4460e322cefc0a53c64f92ea5 digikam-0.9.0_beta1-r1.ebuild 2662 +SHA256 ee6bba789ef878336a70da7db4f5f9c40bb21a2c4ac4898e20abcb350cbd5185 digikam-0.9.0_beta1-r1.ebuild 2662 EBUILD digikam-0.9.0_beta1.ebuild 2612 RMD160 7ed8eda95fdabb5f31f220e014d991b858173fb5 SHA1 ef95d2b0fe7d4b2bb54fab50dfb1067df4e50f4c SHA256 7ff61cc8ed3b8cbbb8ef5d899350162f846b550d8fa878e641c1104908cbc931 MD5 2c06e07c4ec2b473a6362c9bdf1681c6 digikam-0.9.0_beta1.ebuild 2612 RMD160 7ed8eda95fdabb5f31f220e014d991b858173fb5 digikam-0.9.0_beta1.ebuild 2612 SHA256 7ff61cc8ed3b8cbbb8ef5d899350162f846b550d8fa878e641c1104908cbc931 digikam-0.9.0_beta1.ebuild 2612 -MISC ChangeLog 8306 RMD160 7a8b102d1076ebd2d25a54fb768317ac4bfdc40e SHA1 172d22a47ac5ac84dda4c8457323e4401c28fb6f SHA256 6d2bf2b45f31f22d728052c39ee444526db3c5e12774b93528f607421e25d902 -MD5 38243a381acb8732b45b7a8c7fff020b ChangeLog 8306 -RMD160 7a8b102d1076ebd2d25a54fb768317ac4bfdc40e ChangeLog 8306 -SHA256 6d2bf2b45f31f22d728052c39ee444526db3c5e12774b93528f607421e25d902 ChangeLog 8306 +MISC ChangeLog 8581 RMD160 416d1e3c4f6e34b77a8327990241f121b0eddfd6 SHA1 1c5b3b342f65688779a5e73ea9f4c72c188014d5 SHA256 6244b262a237ebdf3ff58128d8e39a044613f8ea4235747d4990d7a14d7ef0fd +MD5 68f7474e77e87e91275f2687f59ac9cc ChangeLog 8581 +RMD160 416d1e3c4f6e34b77a8327990241f121b0eddfd6 ChangeLog 8581 +SHA256 6244b262a237ebdf3ff58128d8e39a044613f8ea4235747d4990d7a14d7ef0fd ChangeLog 8581 MISC metadata.xml 156 RMD160 ecce3b981f150c45ae1e84e2d208e678d6124259 SHA1 b64f7c0b4e5db816d82ad19848f72118af129d35 SHA256 2f4da28506b9d4185f320f67a6191d30c7a921217ed4447ed46ea0bc4aefc79a MD5 acc03a4b12bb0433a57e95bd253b9501 metadata.xml 156 RMD160 ecce3b981f150c45ae1e84e2d208e678d6124259 metadata.xml 156 @@ -56,3 +64,6 @@ SHA256 46c74f3706f5666ae178f0ac5445dabbba12676e8320913b8f8310114f5464fb files/di MD5 4dccb644b7dd5baf186336aa138a59a5 files/digest-digikam-0.9.0_beta1 2942 RMD160 2175abd8078f54adf2ec9c73847a03589a7d5f68 files/digest-digikam-0.9.0_beta1 2942 SHA256 7c7101a2d176bc6c351a54c566960338fc91b9922342ff0df35c9544d6da6b9c files/digest-digikam-0.9.0_beta1 2942 +MD5 4dccb644b7dd5baf186336aa138a59a5 files/digest-digikam-0.9.0_beta1-r1 2942 +RMD160 2175abd8078f54adf2ec9c73847a03589a7d5f68 files/digest-digikam-0.9.0_beta1-r1 2942 +SHA256 7c7101a2d176bc6c351a54c566960338fc91b9922342ff0df35c9544d6da6b9c files/digest-digikam-0.9.0_beta1-r1 2942 diff --git a/media-gfx/digikam/digikam-0.9.0_beta1-r1.ebuild b/media-gfx/digikam/digikam-0.9.0_beta1-r1.ebuild new file mode 100644 index 000000000000..4764cff97cdb --- /dev/null +++ b/media-gfx/digikam/digikam-0.9.0_beta1-r1.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-gfx/digikam/digikam-0.9.0_beta1-r1.ebuild,v 1.1 2006/08/22 13:09:32 deathwing00 Exp $ + +inherit kde + +P_DOC="${PN}-doc-0.8.0" +MY_P="${P/_/-}" +S="${WORKDIR}/${MY_P}" +S_DOC="${WORKDIR}/${P_DOC}" + +DESCRIPTION="A digital photo management application for KDE." +HOMEPAGE="http://www.digikam.org/" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="nfs doc kdehiddenvisibility exif" + +DEPEND=">=media-libs/libgphoto2-2 + >=dev-db/sqlite-3 + >=media-libs/libkipi-0.1.1 + media-libs/tiff + sys-libs/gdbm + media-gfx/dcraw + media-gfx/exiv2 + media-libs/lcms" +RDEPEND="${DEPEND} + || ( ( kde-base/kgamma kde-base/kamera ) kde-base/kdegraphics )" + +need-kde 3.4 + +LANGS="bg bn br ca cs cy da de el en_GB es et eu fi fr ga gl he hu is it ja km +lt mk ms mt nb nl nn pa pl pt pt_BR ro ru rw sl sr sr@Latn sv ta tr uk vi zh_CN" +LANGS_DOC="da es et it nl pt_BR pt sv" + +DOC_URI="mirror://sourceforge/digikam/${P_DOC}.tar.bz2" +SRC_URI="${DOC_URI}" + +for lang in ${LANGS}; do + IUSE="${IUSE} linguas_${lang}" + [[ " ${LANGS_DOC} " != *" ${lang} "* ]] && SRC_URI="!linguas_${lang}? ( ${SRC_URI} )" +done + +for lang in ${LANGS_DOC}; do + IUSE="${IUSE} linguas_${lang}" + SRC_URI="linguas_${lang}? ( + mirror://gentoo/${P_DOC}-${lang}.tar.bz2 + mirror://gentoo/${P_DOC}-gentoo.tar.bz2 + ) + !linguas_${lang}? ( ${SRC_URI} )" +done + +SRC_URI="mirror://sourceforge/digikam/${MY_P}.tar.bz2 + doc? ( linguas_en? ( mirror://gentoo/${P_DOC}-gentoo.tar.bz2 ) + !linguas_en? ( ${SRC_URI} ) )" + +pkg_setup(){ + slot_rebuild "media-libs/libkipi media-libs/libkexif" && die + kde_pkg_setup +} + +src_unpack(){ + kde_src_unpack + rm -f "${S}/configure" "${S_DOC}/configure" + + local MAKE_PO=$(echo "${LINGUAS} ${LANGS}" | fmt -w 1 | sort | uniq -d | tr '\n' ' ') + einfo "Enabling translations for: en ${MAKE_PO}" + sed -i -e "s:^SUBDIRS =.*:SUBDIRS = . ${MAKE_PO}:" "${S}/po/Makefile.am" || die "sed for locale failed" + + if use doc; then + local MAKE_DOC=$(echo "${LINGUAS} ${LANGS_DOC}" | fmt -w 1 | sort | uniq -d | tr '\n' ' ') + einfo "Enabling documentation for: en ${LANG_DOCS}" + fi + epatch ${FILESDIR}/${P}-memory-leak-fix.patch +} + +src_compile(){ + local myconf + + myconf="$(use_enable nfs nfs-hack)" + kde_src_compile + myconf="" + [[ -d "${S_DOC}" ]] && KDE_S="${S_DOC}" kde_src_compile +} + +src_install(){ + kde_src_install + [[ -d "${S_DOC}" ]] && KDE_S="${S_DOC}" kde_src_install + + # Install the .desktop in FDO's suggested directory + dodir /usr/share/applications/kde + mv "${D}/usr/share/applnk/Graphics/digikam.desktop" \ + "${D}/usr/share/applications/kde" +} diff --git a/media-gfx/digikam/files/digest-digikam-0.9.0_beta1-r1 b/media-gfx/digikam/files/digest-digikam-0.9.0_beta1-r1 new file mode 100644 index 000000000000..58c58c3de95f --- /dev/null +++ b/media-gfx/digikam/files/digest-digikam-0.9.0_beta1-r1 @@ -0,0 +1,33 @@ +MD5 fc3a26a91fd6f715ffb75efe8be06e4e digikam-0.9.0-beta1.tar.bz2 6524485 +RMD160 4328f23262ab70e7260e4bf20eb02dc08d9c5517 digikam-0.9.0-beta1.tar.bz2 6524485 +SHA256 f50b7784d15106fe605b0244ecffac099b50a9106eb552709f85491aeb722e42 digikam-0.9.0-beta1.tar.bz2 6524485 +MD5 a18e5e9a4fd17994da5089ddcd9bc0c1 digikam-doc-0.8.0-da.tar.bz2 50493 +RMD160 50fe4b8deb3c5edb759c3844cf3f52c7f2bcaade digikam-doc-0.8.0-da.tar.bz2 50493 +SHA256 9a0c5a0c8d5e86b5836aba3adb22fbfe50b968b7bd19320c967443fbe1860182 digikam-doc-0.8.0-da.tar.bz2 50493 +MD5 06bcc36d7a4dc42c42978f7d1059c2f3 digikam-doc-0.8.0-es.tar.bz2 10816588 +RMD160 d031a6d0601b2a5a98a7d11762bc32a210b80b82 digikam-doc-0.8.0-es.tar.bz2 10816588 +SHA256 de17de6816895db79b56aaeb2106286ad351e51b1acf124eeaf29e3baeb055a0 digikam-doc-0.8.0-es.tar.bz2 10816588 +MD5 6d2c381f78ea883c4bbc925756012b98 digikam-doc-0.8.0-et.tar.bz2 41384 +RMD160 d7d57533d8cdf7d4919c4107e7baa6c2f77b03c9 digikam-doc-0.8.0-et.tar.bz2 41384 +SHA256 ba02a828fbbeb1243e97195b5a333d12b1b4f88456082b6e615709bd07f20b83 digikam-doc-0.8.0-et.tar.bz2 41384 +MD5 7fa628fe68a39efa27fc73aa7430ea90 digikam-doc-0.8.0-gentoo.tar.bz2 19396732 +RMD160 22ac0d7fa874dc853ab3957a145c54d9737a3d2e digikam-doc-0.8.0-gentoo.tar.bz2 19396732 +SHA256 c0f7448e02378f2ef559b9b0e887327422d849c9ba607a254448dcc00eb3699c digikam-doc-0.8.0-gentoo.tar.bz2 19396732 +MD5 a4d535948f5d738e3030beae99bcc674 digikam-doc-0.8.0-it.tar.bz2 702416 +RMD160 bc89f465e073eb64944ef2a9914bb2291878b365 digikam-doc-0.8.0-it.tar.bz2 702416 +SHA256 07fa5ef11f9544b4f3a2b0be8759ea1d7041d56f9188a15101bb53aae8dca3f3 digikam-doc-0.8.0-it.tar.bz2 702416 +MD5 2c1061c24bbf8482d814b1e1ab8c1c89 digikam-doc-0.8.0-nl.tar.bz2 9764577 +RMD160 30968073fedb980b821f332044194b63873c8785 digikam-doc-0.8.0-nl.tar.bz2 9764577 +SHA256 f8d7d934bc25270686b81183dd1dfd3c43d6f479e9961c3d8218f2ae114b7c15 digikam-doc-0.8.0-nl.tar.bz2 9764577 +MD5 9b71a31b61c5679e699365d21b31d1f5 digikam-doc-0.8.0-pt.tar.bz2 52611 +RMD160 5f5e400f79dcfb5f527afe8cc31de261bd05f421 digikam-doc-0.8.0-pt.tar.bz2 52611 +SHA256 727a21963504cd2b1e3b67bfa7fb872b5f9d45d32f770861b51eceaeff763431 digikam-doc-0.8.0-pt.tar.bz2 52611 +MD5 29d2ae35f8aac6109fd98fb630fcbb4f digikam-doc-0.8.0-pt_BR.tar.bz2 1988378 +RMD160 ddcd056964e48b294e6bfb8a5c1e8f1c7390d0c4 digikam-doc-0.8.0-pt_BR.tar.bz2 1988378 +SHA256 82a036d609ad4bfc2f74d9ec291dd463641d4456b2493f03b15cb16337273391 digikam-doc-0.8.0-pt_BR.tar.bz2 1988378 +MD5 7c76dca73e22ca1457387d740f819b83 digikam-doc-0.8.0-sv.tar.bz2 261061 +RMD160 e682527412ebd4732e5010c6bbbd4619159dd0f3 digikam-doc-0.8.0-sv.tar.bz2 261061 +SHA256 bbbc383c04fb16df562126d4d0523364753d26fbf95291922792e03477c378d0 digikam-doc-0.8.0-sv.tar.bz2 261061 +MD5 b958495f3830949bc9c2cd6fd1cd53e6 digikam-doc-0.8.0.tar.bz2 43156836 +RMD160 94d6abb1e58ba8ed91b11a86608d5dce8c9ba3a2 digikam-doc-0.8.0.tar.bz2 43156836 +SHA256 9aa84a94187e0f40939373b264de7ce73e73be44b976f8b890538a68aa1f3f22 digikam-doc-0.8.0.tar.bz2 43156836 diff --git a/media-gfx/digikam/files/digikam-0.9.0_beta1-memory-leak-fix.patch b/media-gfx/digikam/files/digikam-0.9.0_beta1-memory-leak-fix.patch new file mode 100644 index 000000000000..450721daf61c --- /dev/null +++ b/media-gfx/digikam/files/digikam-0.9.0_beta1-memory-leak-fix.patch @@ -0,0 +1,71 @@ +--- trunk/extragear/graphics/digikam/digikam/imagepreviewjob.cpp #567459:567460 +@@ -173,6 +173,12 @@ + stream >> width >> height >> depth; + preview = QImage(d->shmaddr, width, height, depth, + 0, 0, QImage::IgnoreEndian); ++ ++ // The buffer supplied to the QImage constructor above must remain valid ++ // throughout the lifetime of the object. ++ // This is not true, the shared memory will be freed or reused. ++ // If we pass the object around, we must do a deep copy. ++ preview = preview.copy(); + } + else + { +--- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.cpp #567459:567460 +@@ -91,11 +91,11 @@ + + ImagePreviewWidget::~ImagePreviewWidget() + { +- if (!d->previewJob.isNull()) ++ if (d->previewJob) + d->previewJob->kill(); +- ++ + d->blinkPreviewTimer->stop(); +- ++ + delete d; + } + +@@ -107,6 +107,9 @@ + d->previewBlink = false; + d->blinkPreviewTimer->start(200); + ++ if (d->previewJob) ++ d->previewJob->kill(); ++ + d->previewJob = new ImagePreviewJob(KURL(path), 1024, AlbumSettings::instance()->getExifRotate()); + + connect(d->previewJob, SIGNAL(signalImagePreview(const KURL&, const QImage&)), +@@ -129,9 +132,16 @@ + void ImagePreviewWidget::slotGotImagePreview(const KURL&, const QImage& preview) + { + d->blinkPreviewTimer->stop(); +- d->previewJob = 0; + d->preview = preview; + d->pixmap = QPixmap(contentsRect().size()); ++ ++ // It is very important to kill the thumbnail job properly ++ // so that is frees its shared memory. Otherwise the memory ++ // will _never_ be freed, see b.k.o. #131277 ++ if (d->previewJob) ++ d->previewJob->kill(); ++ d->previewJob = 0; ++ + updatePixmap(); + repaint(false); + emit previewComplete(); +@@ -140,7 +150,11 @@ + void ImagePreviewWidget::slotFailedImagePreview(const KURL&) + { + d->blinkPreviewTimer->stop(); +- d->previewJob = 0; ++ ++ if (d->previewJob) ++ d->previewJob->kill(); ++ d->previewJob = 0; ++ + d->preview = QImage(); + d->pixmap = QPixmap(contentsRect().size()); + updatePixmap(); |