From 1e8a9ec77ded97de2638f171862444c00f95d930 Mon Sep 17 00:00:00 2001 From: AlmAck Date: Tue, 11 Aug 2015 17:24:26 +0000 Subject: [PATCH] removed prison-frameworks because already present in the platform repo under the name prison-kf5, created the kdepimlibs4 pkg to replace the kdepimlibs, rebuild some kde packges with kdepimbli4 as deps --- kdeadmin-kuser/PKGBUILD | 4 +- kdeapps.order | 3 +- kdenetwork-kget/PKGBUILD | 4 +- kdenetwork-kopete/PKGBUILD | 4 +- kdepim/PKGBUILD | 8 +- kdepimlibs/PKGBUILD | 6 +- kdepimlibs4/PKGBUILD | 42 ++++++ kdepimlibs4/kdepimlibs4.install | 11 ++ kdeutils-kgpg/PKGBUILD | 4 +- kdewebdev/PKGBUILD | 6 +- libakonadi-qt4/PKGBUILD | 56 ++++++++ ...dont-leak-old-external-payload-files.patch | 135 ++++++++++++++++++ libakonadi-qt4/libakonadi-qt4.install | 11 ++ prison-frameworks/PKGBUILD | 33 ----- 14 files changed, 275 insertions(+), 52 deletions(-) create mode 100644 kdepimlibs4/PKGBUILD create mode 100644 kdepimlibs4/kdepimlibs4.install create mode 100644 libakonadi-qt4/PKGBUILD create mode 100644 libakonadi-qt4/dont-leak-old-external-payload-files.patch create mode 100644 libakonadi-qt4/libakonadi-qt4.install delete mode 100644 prison-frameworks/PKGBUILD diff --git a/kdeadmin-kuser/PKGBUILD b/kdeadmin-kuser/PKGBUILD index 2da9c4712..8d4885663 100644 --- a/kdeadmin-kuser/PKGBUILD +++ b/kdeadmin-kuser/PKGBUILD @@ -5,11 +5,11 @@ _pkgname="kuser" pkgname="kdeadmin-kuser" arch=('x86_64') pkgver=${_kdever} -pkgrel=1 +pkgrel=2 url="http://www.kde.org/" license=('GPL' 'LGPL' 'FDL') options=('docs' 'debug') -makedepends=('pkg-config' 'cmake' 'automoc4' 'docbook-xsl' 'kdepimlibs') +makedepends=('pkg-config' 'cmake' 'automoc4' 'docbook-xsl' 'kdepimlibs4') pkgdesc="Manage users and groups" screenshot="http://www.kde.org/images/screenshots/kuser.png" depends=("kde-runtime") diff --git a/kdeapps.order b/kdeapps.order index e5462305a..2def2a89f 100644 --- a/kdeapps.order +++ b/kdeapps.order @@ -238,6 +238,7 @@ gpgmepp kcontacts TODO check .install files kdepimlibs +kdepimlibs4 akonadi-search kholidays kalarmcal @@ -249,7 +250,7 @@ kimap libkgapi libkolabxml #libkolab --> ERROR: https://paste.kde.org/p1srmmghi -kdepim-runtime --> rebuild with deps lib +kdepim-runtime --> rebuild with libkolab lib kontactinterface libktnef kdepim diff --git a/kdenetwork-kget/PKGBUILD b/kdenetwork-kget/PKGBUILD index b728da1f0..7be324bc6 100644 --- a/kdenetwork-kget/PKGBUILD +++ b/kdenetwork-kget/PKGBUILD @@ -4,10 +4,10 @@ source ../kdeapps.conf pkgname="kdenetwork-kget" arch=('x86_64') pkgver=${_kdever} -pkgrel=1 +pkgrel=2 pkgdesc="Download manager" url="http://kde.org/applications/internet/kget/" -depends=("kde-runtime" "kdepimlibs" 'qca' 'kwebkitpart>=0.9.6' 'libktorrent>=1.0.4' 'libmms') +depends=("kde-runtime" "kdepimlibs4" 'qca' 'kwebkitpart>=0.9.6' 'libktorrent>=1.0.4' 'libmms') groups=("kde" "kdenetwork" "kde-uninstall") categories=('network') conflicts=("kdenetwork-common" "kdenetwork-doc") diff --git a/kdenetwork-kopete/PKGBUILD b/kdenetwork-kopete/PKGBUILD index 265f9b405..ae1834183 100644 --- a/kdenetwork-kopete/PKGBUILD +++ b/kdenetwork-kopete/PKGBUILD @@ -5,10 +5,10 @@ _pkgname="kopete" pkgname="kdenetwork-kopete" arch=('x86_64') pkgver=${_kdever} -pkgrel=1 +pkgrel=2 pkgdesc="Kopete, the instant messenger" url="http://kde.org/applications/internet/kopete/" -depends=("kde-runtime" "kdepimlibs>=${_libsver}" 'qca-ossl' +depends=("kde-runtime" "kdepimlibs4" 'qca-ossl' 'libotr>=4.0.0' 'libmsn' 'libidn' 'qimageblitz' 'libxss' 'libv4l' 'msilbc' 'libgadu') groups=("kde" "kdenetwork" "kde-uninstall") categories=('communication') diff --git a/kdepim/PKGBUILD b/kdepim/PKGBUILD index 8b2e49486..6550d30d5 100644 --- a/kdepim/PKGBUILD +++ b/kdepim/PKGBUILD @@ -5,7 +5,7 @@ pkgbase=kdepim pkgname=(akonadiconsole akregator blogilo kdepim-console kaddressbook kalarm kleopatra kmail knotes kontact korganizer ktnef libkdepim) pkgver=${_kdever} -pkgrel=1 +pkgrel=2 arch=('x86_64') url='http://pim.kde.org' license=('GPL' 'LGPL' 'FDL') @@ -200,9 +200,9 @@ package_libkdepim() { pkgdesc='Common libraries and resources for KDE PIM applications' groups=() depends=('kdepim-runtime' 'gpgmepp' 'grantlee-qt5' 'akonadi-search' 'knewstuff' 'kldap' 'kdnssd') - conflicts=('kdepim-libkdepim') - provides=('kdepim-libkdepim') # to allow smooth upgrade from 4.14 - replaces=('kdepim-libkdepim') + conflicts=('kdepimlib' 'kdepim-common') + provides=('kdepimlib' 'kdepim-common') # to allow smooth upgrade from 4.14 + replaces=('kdepimlib' 'kdepim-common') url='http://pim.kde.org' install=kdepim.install for _i in agents/sendlateragent calendarsupport grantleetheme incidenceeditor-ng kdgantt2 libkdepim \ diff --git a/kdepimlibs/PKGBUILD b/kdepimlibs/PKGBUILD index 69b5a430f..7a4092b91 100644 --- a/kdepimlibs/PKGBUILD +++ b/kdepimlibs/PKGBUILD @@ -4,12 +4,12 @@ source ../kdeapps.conf pkgbase=kdepimlibs pkgname=(akonadi-client akonadi-contact akonadi-mime akonadi-notes akonadi-socialutils kio-pim) pkgver=${_kdever} -pkgrel=1 +pkgrel=2 pkgdesc="KDE PIM Libraries" arch=('x86_64') url='https://projects.kde.org/kdepimlibs' license=(GPL LGPL) -makedepends=(extra-cmake-modules qt5-tools kcalcore kmbox kcontacts kldap akonadi prison-frameworks boost kdoctools) +makedepends=(extra-cmake-modules qt5-tools kcalcore kmbox kcontacts kldap akonadi prison-kf5 boost kdoctools) options=('docs' 'debug') source=("$_mirror/${pkgbase}-$_kdever.tar.xz") sha256sums=(`grep ${pkgbase}-$_kdever.tar.xz ../checksums.txt | cut -d " " -f1`) @@ -32,7 +32,7 @@ package_akonadi-client() { } package_akonadi-contact() { - depends=(akonadi-client kmime kcontacts kcalcore prison-frameworks) + depends=(akonadi-client kmime kcontacts kcalcore prison-kf5) cd build/akonadi-contact make DESTDIR="$pkgdir" install diff --git a/kdepimlibs4/PKGBUILD b/kdepimlibs4/PKGBUILD new file mode 100644 index 000000000..6244e6108 --- /dev/null +++ b/kdepimlibs4/PKGBUILD @@ -0,0 +1,42 @@ +# Include global configuration +source ../kdeapps.conf + +pkgname=kdepimlibs4 +pkgver=${_libsver} +_kdeappver=15.04.3 +pkgrel=1 +pkgdesc="KDE4 PIM Libraries" +arch=('x86_64') +url='https://projects.kde.org/projects/kde/kdepimlibs' +license=('GPL' 'LGPL') +depends=('kdelibs' 'gpgme' 'libakonadi-qt4' 'libical' 'prison' 'qjson') +makedepends=('cmake' 'automoc4' 'boost' 'cyrus-sasl' 'akonadi-qt4-dbus') +conflicts=('kdepimlibs') +provides=('kdepimlibs') +replaces=('kdepimlibs') +install='kdepimlibs4.install' +source=("http://download.kde.org/stable/applications/${_kdeappver}/src/kdepimlibs-${pkgver}.tar.xz") +sha1sums=('8db2f59b8a33f4d1bbebfdff8b772d30669c9932') + +prepare() { + mkdir -p build +} + +build() { + cd build + cmake ../kdepimlibs-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DKDE4_BUILD_TESTS=OFF \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr + make +} + +package() { + cd build + make DESTDIR="${pkgdir}" install + +# Conflicts with KF5 libs + rm -r "$pkgdir"/usr/{bin,share/{config.kcfg,mime}} +} + diff --git a/kdepimlibs4/kdepimlibs4.install b/kdepimlibs4/kdepimlibs4.install new file mode 100644 index 000000000..99262607c --- /dev/null +++ b/kdepimlibs4/kdepimlibs4.install @@ -0,0 +1,11 @@ +post_install() { + update-mime-database usr/share/mime &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} \ No newline at end of file diff --git a/kdeutils-kgpg/PKGBUILD b/kdeutils-kgpg/PKGBUILD index f68f89dd5..7c301cdb3 100644 --- a/kdeutils-kgpg/PKGBUILD +++ b/kdeutils-kgpg/PKGBUILD @@ -5,12 +5,12 @@ pkgname="kdeutils-kgpg" _pkgname="kgpg" arch=('x86_64') pkgver=${_kdever} -pkgrel=1 +pkgrel=2 pkgdesc="GPG encryption and key management" url="http://www.kde.org" license=('GPL' 'LGPL' 'FDL') options=('docs' 'debug') -depends=("kde-runtime" "kdelibs>=${_libsver}" "kdepimlibs>=${_libsver}" "kdepim-runtime>=${_libsver}") +depends=("kde-runtime" "kdelibs>=${_libsver}" "kdepimlibs4" "kdepim-runtime>=${_libsver}") makedepends=('pkg-config' 'cmake' 'automoc4' "kdelibs>=${_libsver}" 'docbook-xsl') conflicts=("kdeutils-common") groups=("kde" "kdeutils" "kde-uninstall") diff --git a/kdewebdev/PKGBUILD b/kdewebdev/PKGBUILD index 5430ff396..c6221c354 100644 --- a/kdewebdev/PKGBUILD +++ b/kdewebdev/PKGBUILD @@ -8,11 +8,11 @@ pkgname=('kdewebdev-kfilereplace' 'kdewebdev-klinkstatus') arch=('x86_64') pkgver=${_kdever} -pkgrel=1 +pkgrel=2 url="http://www.kde.org/" license=('GPL' 'LGPL' 'FDL') options=('docs' 'debug') -makedepends=('pkgconfig' 'cmake' 'automoc4' 'ruby' "kdepimlibs>=${_libsver}" +makedepends=('pkgconfig' 'cmake' 'automoc4' 'ruby' "kdepimlibs4" "kde-runtime" 'tidyhtml' "kdepim-runtime>=${_libsver}" 'kdoctools') source=($_mirror/${pkgbase}-$_kdever.tar.xz) sha256sums=(`grep ${pkgbase}-$_kdever.tar.xz ../checksums.txt | cut -d" " -f1`) @@ -74,7 +74,7 @@ package_kdewebdev-kommander() { package_kdewebdev-klinkstatus() { pkgdesc="Link checking utility" - depends=("kde-runtime" "kdelibs>=${_libsver}" 'tidyhtml' "kdepimlibs>=${_libsver}") # "kdepim-runtime>=${_kdever}" + depends=("kde-runtime" "kdelibs>=${_libsver}" 'tidyhtml' "kdepimlibs4") # "kdepim-runtime>=${_kdever}" conflicts=('kdewebdev-common' 'kdewebdev-doc') groups=("kde" "${pkgbase}" "kde-uninstall") categories=('utils') diff --git a/libakonadi-qt4/PKGBUILD b/libakonadi-qt4/PKGBUILD new file mode 100644 index 000000000..71ccc4ee1 --- /dev/null +++ b/libakonadi-qt4/PKGBUILD @@ -0,0 +1,56 @@ +# $Id$ +# Maintainer: Felix Yan +# Contributor: Andrea Scarpino +# Contributor: Pierre Schmitz + +pkgbase=libakonadi-qt4 +pkgname=(libakonadi-qt4 akonadi-qt4-dbus) +pkgver=1.13.0 +pkgrel=1 +pkgdesc="Qt4 akonadi libraries" +arch=('x86_64') +url='http://community.kde.org/KDE_PIM/Akonadi' +license=('LGPL') +depends=('boost-libs' 'qt' 'libxslt') +makedepends=('cmake' 'automoc4' 'boost' 'postgresql' 'mariadb') +conflicts=('akonadi<2') +install="${pkgname}.install" +source=("http://download.kde.org/stable/akonadi/src/akonadi-${pkgver}.tar.bz2" + dont-leak-old-external-payload-files.patch) +md5sums=('84eb2e471bd6bdfe54a2a2f1d858c07d' + '9711e300dde3775a38637daa3c20befe') + +prepare() { + mkdir -p build + + cd akonadi-$pkgver + # https://bugs.kde.org/show_bug.cgi?id=341884 + patch -p1 -i ../dont-leak-old-external-payload-files.patch +} + +build() { + cd build + cmake ../akonadi-${pkgver} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DINSTALL_QSQLITE_IN_QT_PREFIX=TRUE \ + -DDATABASE_BACKEND=SQLITE \ + -DWITH_SOPRANO=OFF + make +} + +package_libakonadi-qt4() { + cd build + make DESTDIR="${pkgdir}" install + +# conflicts with akonadi + rm -r "$pkgdir"/usr/{bin,share} +} + +package_akonadi-qt4-dbus() { + depends=() + conflicts=(akonadi) + + mkdir -p "$pkgdir"/usr/share/dbus-1/interfaces + install -m644 "$srcdir"/akonadi-$pkgver/interfaces/*.xml "$pkgdir"/usr/share/dbus-1/interfaces/ +} diff --git a/libakonadi-qt4/dont-leak-old-external-payload-files.patch b/libakonadi-qt4/dont-leak-old-external-payload-files.patch new file mode 100644 index 000000000..227450d53 --- /dev/null +++ b/libakonadi-qt4/dont-leak-old-external-payload-files.patch @@ -0,0 +1,135 @@ +From: Dan Vrátil +Date: Mon, 29 Jun 2015 20:45:11 +0000 +Subject: Don't leak old external payload files +X-Git-Url: http://quickgit.kde.org/?p=akonadi.git&a=commitdiff&h=9c0dc6b3f0826d32eac310b2e7ecd858ca3df681 +--- +Don't leak old external payload files + +Actually delete old payload files after we increase the payload revision or +switch from external to internal payload. This caused ~/.local/share/akonadi/file_db_data +to grow insanely for all users, leaving them with many duplicated files (just with +different revisions). + +It is recommended that users run akonadictl fsck to clean up the leaked payload +files. + +Note that there won't be any more releases of Akonadi 1.13 (and this has been +fixed in master already), so I strongly recommend distributions to pick this +patch into their packaging. + +BUG: 341884 +CCBUG: 338402 +--- + + +--- a/server/src/storage/partstreamer.cpp ++++ b/server/src/storage/partstreamer.cpp +@@ -290,6 +290,12 @@ + mDataChanged = true; + } + ++ // If the part is external, remember it's current file name ++ QString originalFile; ++ if (part.isValid() && part.external()) { ++ originalFile = PartHelper::resolveAbsolutePath(part.data()); ++ } ++ + part.setPartType(partType); + part.setVersion(partVersion); + part.setPimItemId(mItem.id()); +@@ -306,6 +312,14 @@ + *changed = mDataChanged; + } + ++ if (!originalFile.isEmpty()) { ++ // If the part was external but is not anymore, or if it's still external ++ // but the filename has changed (revision update), remove the original file ++ if (!part.external() || (part.external() && originalFile != PartHelper::resolveAbsolutePath(part.data()))) { ++ PartHelper::removeFile(originalFile); ++ } ++ } ++ + return ok; + } + + +--- a/server/tests/unittest/partstreamertest.cpp ++++ b/server/tests/unittest/partstreamertest.cpp +@@ -91,6 +91,7 @@ + QTest::addColumn("expectedPartSize"); + QTest::addColumn("expectedChanged"); + QTest::addColumn("isExternal"); ++ QTest::addColumn("version"); + QTest::addColumn("pimItem"); + + PimItem item; +@@ -101,22 +102,22 @@ + QVERIFY(item.insert()); + + // Order of these tests matters! +- QTest::newRow("item 1, internal") << QByteArray("PLD:DATA") << QByteArray("123") << 3ll << true << false << item; +- QTest::newRow("item 1, change to external") << QByteArray("PLD:DATA") << QByteArray("123456789") << 9ll << true << true << item; +- QTest::newRow("item 1, update external") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << true << true << item; +- QTest::newRow("item 1, external, no change") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << false << true << item; +- QTest::newRow("item 1, change to internal") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << true << false << item; +- QTest::newRow("item 1, internal, no change") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << false << false << item; ++ QTest::newRow("item 1, internal") << QByteArray("PLD:DATA") << QByteArray("123") << 3ll << true << false << -1 << item; ++ QTest::newRow("item 1, change to external") << QByteArray("PLD:DATA") << QByteArray("123456789") << 9ll << true << true << 0 << item; ++ QTest::newRow("item 1, update external") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << true << true << 1 << item; ++ QTest::newRow("item 1, external, no change") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << false << true << 2 << item; ++ QTest::newRow("item 1, change to internal") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << true << false << 2 << item; ++ QTest::newRow("item 1, internal, no change") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << false << false << 2 << item; + } + + void testStreamer() + { +- return; + QFETCH(QByteArray, expectedPartName); + QFETCH(QByteArray, expectedData); + QFETCH(qint64, expectedPartSize); + QFETCH(bool, expectedChanged); + QFETCH(bool, isExternal); ++ QFETCH(int, version); + QFETCH(PimItem, pimItem); + + FakeConnection connection; +@@ -160,17 +161,18 @@ + + PimItem item = PimItem::retrieveById(pimItem.id()); + const QVector parts = item.parts(); +- QVERIFY(parts.count() == 1); ++ QCOMPARE(parts.count(), 1); + const Part part = parts[0]; + QCOMPARE(part.datasize(), expectedPartSize); + QCOMPARE(part.external(), isExternal); ++ qDebug() << part.version() << part.data(); + const QByteArray data = part.data(); + if (isExternal) { + QVERIFY(streamerSpy.count() == 1); + QVERIFY(streamerSpy.first().count() == 1); + const Response response = streamerSpy.first().first().value(); + const QByteArray str = response.asString(); +- const QByteArray expectedResponse = "+ STREAM [FILE " + QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()) + "]"; ++ const QByteArray expectedResponse = "+ STREAM [FILE " + QByteArray::number(part.id()) + "_r" + QByteArray::number(version) + "]"; + QCOMPARE(QString::fromUtf8(str), QString::fromUtf8(expectedResponse)); + + QFile file(PartHelper::resolveAbsolutePath(data)); +@@ -182,7 +184,7 @@ + QCOMPARE(fileData, expectedData); + + // Make sure no previous versions are left behind in file_db_data +- for (int i = 0; i < part.version(); ++i) { ++ for (int i = 0; i < version; ++i) { + const QByteArray fileName = QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()); + const QString filePath = PartHelper::resolveAbsolutePath(fileName); + QVERIFY(!QFile::exists(filePath)); +@@ -194,7 +196,7 @@ + QCOMPARE(data, expectedData); + + // Make sure nothing is left behind in file_db_data +- for (int i = 0; i <= part.version(); ++i) { ++ for (int i = 0; i <= version; ++i) { + const QByteArray fileName = QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()); + const QString filePath = PartHelper::resolveAbsolutePath(fileName); + QVERIFY(!QFile::exists(filePath)); + diff --git a/libakonadi-qt4/libakonadi-qt4.install b/libakonadi-qt4/libakonadi-qt4.install new file mode 100644 index 000000000..7c8a8bd2b --- /dev/null +++ b/libakonadi-qt4/libakonadi-qt4.install @@ -0,0 +1,11 @@ +post_install() { + update-mime-database usr/share/mime &> /dev/null +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/prison-frameworks/PKGBUILD b/prison-frameworks/PKGBUILD deleted file mode 100644 index fd2b8fb55..000000000 --- a/prison-frameworks/PKGBUILD +++ /dev/null @@ -1,33 +0,0 @@ - -pkgname=prison-frameworks -pkgver=1.1.1.20141027 -_commit=8f25e5a557ca402d3df538c6d0bdad4481b26656 -pkgrel=1 -pkgdesc="A barcode API to produce QRCode barcodes and DataMatrix barcodes" -arch=('i686' 'x86_64') -url='https://projects.kde.org/projects/kdesupport/prison' -license=('GPL') -depends=('qt5-base' 'libdmtx' 'qrencode') -makedepends=('extra-cmake-modules' 'git') -source=("git://anongit.kde.org/prison.git#commit=$_commit") -md5sums=('SKIP') - -prepare() { - mkdir build -} - -build() { - cd build - cmake ../prison \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DLIB_INSTALL_DIR=lib \ - -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ - -DBUILD_TESTING=OFF - make -} - -package() { - cd build - make DESTDIR="${pkgdir}" install -}