You are not logged in.
KDE arbitarly defines several filesystems as "slow" and hardcodes this decision in kio/kio/kfileitem.cpp. I decided to turn it off and always return false (=fast file system). After checking out the PKGBUILD via ABS, I have made a patch and changed the PKGBUILD accordingly.
Patching and compiling went fine, install went fine as well. I then thought I should change the name to something non-default to differentiate the package from the official one. So I've added the "provides=('kdelibs')" and "conflicts=('kdelibs')" lines, built the package and tried to install it.
Pacman errors out with
error: failed to prepare transaction (could not satisfy dependencies)
:: kdebase-workspace: requires kdelibs>=4.11.17Here is the modified PKGBUILD
# $Id: PKGBUILD 233243 2015-03-10 07:39:35Z fyan $
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdelibs-no-fs-check
pkgver=4.14.6
_kdeappver=14.12.3
pkgrel=1
pkgdesc="KDE Core Libraries"
arch=('i686' 'x86_64')
url='https://projects.kde.org/projects/kde/kdelibs'
license=('GPL' 'LGPL' 'FDL')
depends=('attica-qt4' 'libxss' 'krb5' 'qca' 'libdbusmenu-qt' 'polkit-qt4'
'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'strigi'
'docbook-xsl' 'upower' 'udisks2' 'libxcursor' 'phonon-qt4'
'media-player-info' 'libxtst' 'libutempter' 'qtwebkit' 'icu')
makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell' 'mesa' 'grantlee-qt4')
install=${pkgname}.install
provides=('kdelibs')
conflicts=('kdelibs')
source=("http://download.kde.org/stable/applications/${_kdeappver}/src/kdelibs-${pkgver}.tar.xz"
'kde-applications-menu.patch' 'archlinux-menu.patch' 'qt4.patch' 'disable-slow-fs-check.patch')
sha1sums=('4411de9589204ed3b741ec68eeb3c37c7a0abca5'
'86ee8c8660f19de8141ac99cd6943964d97a1ed7'
'63a850ab4196b9d06934f2b4a13acd9f7739bc67'
'ed1f57ee661e5c7440efcaba7e51d2554709701c'
'ff173f198b13325c8a00b3ab728af0248a2b86fa')
prepare() {
mkdir build
cd kdelibs-${pkgver}
# avoid file conflict with gnome-menus
patch -p1 -i "${srcdir}"/kde-applications-menu.patch
# add Archlinux menu entry
patch -p1 -i "${srcdir}"/archlinux-menu.patch
# qmake refers to Qt5
patch -p1 -i "${srcdir}"/qt4.patch
# disable slow fs check
patch -p1 -i "${srcdir}"/disable-slow-fs-check.patch
}
build() {
cd build
cmake ../kdelibs-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
-DKDE4_BUILD_TESTS=OFF \
-DCMAKE_SKIP_RPATH=ON \
-DKDE_DISTRIBUTION_TEXT='Arch Linux' \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSYSCONF_INSTALL_DIR=/etc \
-DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
-DLOCALE_INSTALL_DIR=/usr/share/locale/kde4 \
-DKDE_DEFAULT_HOME='.kde4' \
-DWITH_FAM=OFF \
-DWITH_SOLID_UDISKS2=ON
make
}
package() {
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
}edit: I probably should have posted this in the AUR section...
Last edited by Soukyuu (2015-03-22 11:59:57)
[ Arch x86_64 | linux | Framework 13 | AMD Ryzen™ 5 7640U | 32GB RAM | KDE Plasma Wayland ]
Offline
What the hell? How could it have installed the official 4.14.6-1 version, when it requires kdelibs>=4.11.17? Why does it not install my modified package unless I keep the official name?
Why is that surprising, 4.14 is greater than 4.11, so the requirement is met by the official package. As to why yours doesn't work, you'd have to share the PKGBUILD that you are using. (edit: you editted while I was posting)
What is the specific pacman command that gives that error?
Last edited by Trilby (2015-03-22 01:23:19)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Yes, sorry. I realized I was misreading the version numbers, so the issue is probably with my usage of provides and conflicts...
The command that gives that error is both "makepkg -i" or "sudo pacman -U kdelibs-no-fs-check-4.14.6-1-x86_64.pkg.tar.xz"
Last edited by Soukyuu (2015-03-22 01:26:59)
[ Arch x86_64 | linux | Framework 13 | AMD Ryzen™ 5 7640U | 32GB RAM | KDE Plasma Wayland ]
Offline
provides=('kdelibs') won't do the job, since it has no version information. You need provides=("kdelibs=$pkgver")
Offline
Yes, that was it. Thanks.
I guess I expected it to get the version info from $pkgver.
Last edited by Soukyuu (2015-03-22 12:00:26)
[ Arch x86_64 | linux | Framework 13 | AMD Ryzen™ 5 7640U | 32GB RAM | KDE Plasma Wayland ]
Offline