Date: Wednesday, October 1, 2014 @ 08:41:09 Author: jlichtblau Revision: 119925
archrelease: copy trunk to community-staging-i686 Added: kmess/repos/community-staging-i686/ kmess/repos/community-staging-i686/PKGBUILD (from rev 119924, kmess/trunk/PKGBUILD) kmess/repos/community-staging-i686/fix-crash-in-contactlistmodel.patch (from rev 119924, kmess/trunk/fix-crash-in-contactlistmodel.patch) kmess/repos/community-staging-i686/giflib-5.0.patch (from rev 119924, kmess/trunk/giflib-5.0.patch) kmess/repos/community-staging-i686/kmess.install (from rev 119924, kmess/trunk/kmess.install) -------------------------------------+ PKGBUILD | 52 ++++++++++++++++++ fix-crash-in-contactlistmodel.patch | 29 ++++++++++ giflib-5.0.patch | 95 ++++++++++++++++++++++++++++++++++ kmess.install | 11 +++ 4 files changed, 187 insertions(+) Copied: kmess/repos/community-staging-i686/PKGBUILD (from rev 119924, kmess/trunk/PKGBUILD) =================================================================== --- community-staging-i686/PKGBUILD (rev 0) +++ community-staging-i686/PKGBUILD 2014-10-01 06:41:09 UTC (rev 119925) @@ -0,0 +1,52 @@ +# $Id$ +# Maintainer: Jaroslav Lichtblau <dragonl...@aur.archlinux.org> +# Contributor: Mateusz Herych <heni...@gmail.com> +# Contributor: Stefano Zamprogno <stefano.zampro...@gmail.com> + +pkgname=kmess +pkgver=2.0.6.2 +pkgrel=7 +pkgdesc="A MSN Messenger client for Linux" +arch=('i686' 'x86_64') +url='http://kmess.sourceforge.net/' +license=('GPL') +depends=('kdebase-lib') +makedepends=('automoc4' 'cmake' 'optipng') +optdepends=('cabextract: provides winks support') +install=$pkgname.install +source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-$pkgver.tar.bz2 + giflib-5.0.patch + fix-crash-in-contactlistmodel.patch) +md5sums=('a2e57911713308bef81b9347135cc5dd' + '29f7a0c0e27d6b5cafbc3ad498e3e30f' + 'fdfe837f4bd64a5123edc63019bd5cf2') + +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + +# Fix invalid PNG images to work with libpng 1.6 + find -name '*.png' -exec optipng -quiet -force -fix {} + + + patch -Np0 -i ../giflib-5.0.patch + +# Fix crash in ContactListModel (FS#32402) + patch -Np1 -i ../fix-crash-in-contactlistmodel.patch +} + +build() { + cd "${srcdir}" + + mkdir build + cd build + cmake ../${pkgname}-${pkgver} \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release + + make +} + +package() { + cd "${srcdir}"/build + + make DESTDIR="${pkgdir}" install +} Copied: kmess/repos/community-staging-i686/fix-crash-in-contactlistmodel.patch (from rev 119924, kmess/trunk/fix-crash-in-contactlistmodel.patch) =================================================================== --- community-staging-i686/fix-crash-in-contactlistmodel.patch (rev 0) +++ community-staging-i686/fix-crash-in-contactlistmodel.patch 2014-10-01 06:41:09 UTC (rev 119925) @@ -0,0 +1,29 @@ +commit e10ebb8bd33cf807e2edfa56c465b40f3237102e +Author: Ruben Vandamme <ru...@kmess.org> +Date: Sun Jul 8 10:56:37 2012 +0200 + + Fix crash in ContactListModel. + + * Individually delete every child instead of using qDeleteAll. + * Crash only happens in combination with Qt 4.8. + * See https://bugs.kde.org/show_bug.cgi?id=285951 for similar issue in Amarok. + * See https://bugreports.qt-project.org/browse/QTBUG-22037 for Qt report. + * Many thanks to Bob ("badjar" on kmess.org/board) for providing the fix. + +diff --git a/src/model/contactlistmodelitem.cpp b/src/model/contactlistmodelitem.cpp +index 462d555..ac5a6ca 100644 +--- a/src/model/contactlistmodelitem.cpp ++++ b/src/model/contactlistmodelitem.cpp +@@ -79,7 +79,11 @@ ContactListModelItem::ContactListModelItem( Group *group, ContactListModelItem * + */ + ContactListModelItem::~ContactListModelItem() + { +- qDeleteAll( childItems_ ); ++ while( !childItems_.isEmpty() ) ++ { ++ delete childItems_.takeFirst(); ++ } ++ + childItems_.clear(); + + // Delete this item from the parent's children Copied: kmess/repos/community-staging-i686/giflib-5.0.patch (from rev 119924, kmess/trunk/giflib-5.0.patch) =================================================================== --- community-staging-i686/giflib-5.0.patch (rev 0) +++ community-staging-i686/giflib-5.0.patch 2014-10-01 06:41:09 UTC (rev 119925) @@ -0,0 +1,95 @@ +--- contrib/isf-qt/src/isfqt.cpp.orig 2014-06-11 13:10:43.137321400 +0000 ++++ contrib/isf-qt/src/isfqt.cpp 2014-06-11 13:12:23.123474616 +0000 +@@ -249,7 +249,7 @@ + qWarning() << "Couldn't initialize GIF library!"; + } + +- DGifCloseFile( gifImage ); ++ DGifCloseFile( gifImage, NULL ); + gifData.close(); + */ + +@@ -484,12 +484,13 @@ + int width = isfImage.width(); + int numColors = 0; + bool gifError = true; ++ int gifErrCode; + + // Convert the image to GIF using libgif + + // Open the gif file + gifData.open( QIODevice::WriteOnly ); +- gifImage = EGifOpen( (void*)&gifData, GifWriteToByteArray ); ++ gifImage = EGifOpen( (void*)&gifData, GifWriteToByteArray, &gifErrCode ); + if( gifImage == 0 ) + { + qWarning() << "Couldn't initialize gif library!"; +@@ -503,7 +504,7 @@ + numColors = 256; + } + +- cmap = MakeMapObject( numColors, NULL ); ++ cmap = GifMakeMapObject( numColors, NULL ); + if( cmap == 0 && isfImage.numColors() > 1 ) + { + qWarning() << "Couldn't create map object for gif conversion (colors:" << isfImage.numColors() << ")!"; +@@ -576,7 +577,7 @@ + else + { + // Write the extension +- if( EGifPutExtensionFirst( gifImage, COMMENT_EXT_FUNC_CODE, MAX_GIF_BYTE, isfData.left( MAX_GIF_BYTE ).data() ) == GIF_ERROR ) ++ if( EGifPutExtensionLeader( gifImage, COMMENT_EXT_FUNC_CODE) == GIF_ERROR ) + { + qWarning() << "EGifPutExtensionFirst failed!"; + goto writeError; +@@ -590,9 +591,9 @@ + // Write all the full data blocks + while( length >= MAX_GIF_BYTE ) + { +- if( EGifPutExtensionNext( gifImage, 0, MAX_GIF_BYTE, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR ) ++ if( EGifPutExtensionBlock( gifImage, MAX_GIF_BYTE, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR ) + { +- qWarning() << "EGifPutExtensionNext failed!"; ++ qWarning() << "EGifPutExtensionBlock failed!"; + goto writeError; + } + +@@ -603,17 +604,17 @@ + // Write the last block + if( length > 0 ) + { +- if( EGifPutExtensionLast( gifImage, 0, length, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR ) ++ if( EGifPutExtensionTrailer( gifImage ) == GIF_ERROR ) + { +- qWarning() << "EGifPutExtensionLast (n) failed!"; ++ qWarning() << "EGifPutExtensionTrailer (n) failed!"; + goto writeError; + } + } + else + { +- if( EGifPutExtensionLast( gifImage, 0, 0, 0 ) == GIF_ERROR ) ++ if( EGifPutExtensionTrailer( gifImage ) == GIF_ERROR ) + { +- qWarning() << "EGifPutExtensionLast (0) failed!"; ++ qWarning() << "EGifPutExtensionTrailer (0) failed!"; + goto writeError; + } + } +@@ -623,13 +624,13 @@ + + writeError: + // Clean up the GIF converter etc +- EGifCloseFile( gifImage ); +- FreeMapObject( cmap ); ++ EGifCloseFile( gifImage, NULL ); ++ GifFreeMapObject( cmap ); + gifData.close(); + + if( gifError ) + { +- qWarning() << "GIF error code:" << GifLastError(); ++ qWarning() << "GIF error code:" << GifErrorString(gifErrCode); + } + else + { Copied: kmess/repos/community-staging-i686/kmess.install (from rev 119924, kmess/trunk/kmess.install) =================================================================== --- community-staging-i686/kmess.install (rev 0) +++ community-staging-i686/kmess.install 2014-10-01 06:41:09 UTC (rev 119925) @@ -0,0 +1,11 @@ +post_install() { + xdg-icon-resource forceupdate --theme hicolor &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +}