From a712dc92423a31a4d3ab34fe660df550feebf442 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 13 Sep 2011 23:14:39 +0000 Subject: Tue Sep 13 23:14:39 UTC 2011 --- extra/kdelibs/PKGBUILD | 29 ++++++++------ extra/kdelibs/fix-kdirwatch-with-linux3.patch | 56 +++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 12 deletions(-) create mode 100644 extra/kdelibs/fix-kdirwatch-with-linux3.patch (limited to 'extra/kdelibs') diff --git a/extra/kdelibs/PKGBUILD b/extra/kdelibs/PKGBUILD index 03ce95ca9..ec77e5271 100644 --- a/extra/kdelibs/PKGBUILD +++ b/extra/kdelibs/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 137354 2011-09-07 17:12:53Z andrea $ +# $Id: PKGBUILD 137929 2011-09-12 16:31:20Z andrea $ # Maintainer: Andrea Scarpino pkgname=kdelibs pkgver=4.7.1 -pkgrel=1 +pkgrel=2 pkgdesc="KDE Core Libraries" arch=('i686' 'x86_64') url='http://www.kde.org' @@ -19,20 +19,25 @@ makedepends=('pkgconfig' 'cmake' 'automoc4' 'intltool' 'avahi' 'libgl' replaces=('kdelibs-experimental') install='kdelibs.install' source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2" - 'kde-applications-menu.patch' 'archlinux-menu.patch') + 'kde-applications-menu.patch' 'archlinux-menu.patch' + 'fix-kdirwatch-with-linux3.patch') sha1sums=('661cc56f199b7250bd825cc0e85ff442b85171e2' '86ee8c8660f19de8141ac99cd6943964d97a1ed7' - '63a850ab4196b9d06934f2b4a13acd9f7739bc67') + '63a850ab4196b9d06934f2b4a13acd9f7739bc67' + '54e6cbd7a8c4f9df947f18692512ca618c824c43') build() { - cd ${srcdir}/${pkgname}-${pkgver} + cd "${srcdir}"/${pkgname}-${pkgver} # avoid file conflict with gnome-menu - patch -p1 -i $srcdir/kde-applications-menu.patch + patch -p1 -i "${srcdir}"/kde-applications-menu.patch # add Archlinux menu entry - patch -p1 -i $srcdir/archlinux-menu.patch + patch -p1 -i "${srcdir}"/archlinux-menu.patch - cd ${srcdir} + # Already fixed upstream + patch -p1 -i "${srcdir}"/fix-kdirwatch-with-linux3.patch + + cd "${srcdir}" mkdir build cd build cmake ../${pkgname}-${pkgver} \ @@ -48,11 +53,11 @@ build() { } package() { - cd $srcdir/build - make DESTDIR=$pkgdir install + cd "${srcdir}"/build + make DESTDIR="${pkgdir}" install # cert bundle seems to be hardcoded # link it to the one from ca-certificates - rm -f $pkgdir/usr/share/apps/kssl/ca-bundle.crt - ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/usr/share/apps/kssl/ca-bundle.crt + rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt + ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt } diff --git a/extra/kdelibs/fix-kdirwatch-with-linux3.patch b/extra/kdelibs/fix-kdirwatch-with-linux3.patch new file mode 100644 index 000000000..6685d9cc4 --- /dev/null +++ b/extra/kdelibs/fix-kdirwatch-with-linux3.patch @@ -0,0 +1,56 @@ +From: Alex Fiestas +Date: Fri, 09 Sep 2011 16:54:23 +0000 +Subject: Fix KDirWatch when using Kernel 3.0 +X-Git-Url: http://quickgit.kde.org/?p=kdelibs.git&a=commitdiff&h=7df5a79fb9f09e4a4a80cd541cc478b5fa6df00f +--- +Fix KDirWatch when using Kernel 3.0 + +To know INotify is available in the kernel we are checking for a +kernel newer than 2.6.14, that's all allright but the problem is +that the Kernel version format has changed and now we can't be sure +that it is going to be formed by 3 numbers. +Basically we where checking for: + +%d.%d.%d and now it can be %d.%d as it is with 3.0 + +This patch what does is check if the kernel is 2.6, if it is then +it proceed with the version checking. + +CCMAIL: dfaure@kde.org +--- + + +--- a/kdecore/io/kdirwatch.cpp ++++ b/kdecore/io/kdirwatch.cpp +@@ -210,16 +210,24 @@ KDirWatchPrivate::KDirWatchPrivate() + { + struct utsname uts; + int major, minor, patch; +- if (uname(&uts) < 0) +- supports_inotify = false; // *shrug* +- else if (sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch) != 3) +- supports_inotify = false; // *shrug* +- else if( major * 1000000 + minor * 1000 + patch < 2006014 ) { // <2.6.14 +- kDebug(7001) << "Can't use INotify, Linux kernel too old"; ++ if (uname(&uts) < 0) { + supports_inotify = false; ++ kDebug(7001) << "Unable to get uname"; ++ } else if (sscanf(uts.release, "%d.%d", &major, &minor) != 2) { ++ supports_inotify = false; ++ kDebug(7001) << "The version is malformed: " << uts.release; ++ } else if(major == 2 && minor == 6) { // If it is 2.6 check further... ++ if (sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch) != 3) { ++ supports_inotify = false; ++ kDebug() << "Detected 2.6 kernel but can't know more: " << uts.release; ++ } else if (major * 1000000 + minor * 1000 + patch < 2006014 ){ ++ supports_inotify = false; ++ kDebug(7001) << "Can't use INotify, Linux kernel too old " << uts.release; ++ } + } + } + ++ kDebug() << "INotify available: " << supports_inotify; + if ( supports_inotify ) { + availableMethods << "INotify"; + fcntl(m_inotify_fd, F_SETFD, FD_CLOEXEC); + -- cgit v1.2.3-54-g00ecf