UWAGA: Poniższe rozwiązanie proszę traktować jako eksperyment
Jak do tej pory, takie aplikacje jak Dolphin, KFind, czy Konqueror (innymi słowy, aplikacje składające się na kde-baseapps) nie są dostępne w wersji zbudowanej przy użyciu KF5. Niemniej jednak niektóre dystrybucje, które wypuszczają snapshoty livecd z Plasma 5 oferują tam te aplikacje oparte już o KF5. Skąd je zatem biorą? Nie, nie jest niestety tak dobrze, że opiekunowie dystrybucji włączyli się w proces portowania tych aplikacji w ramach KDE i dostarczyli te aplikacje w wersjach dla Plasma 5 (i innych środowisk korzystających z Qt5). Aplikacje te są tam budowane w oparciu o prace zespołu KDE udostępniane w git. W tym repozytorium, KDE-baseapps oparte o KF5 są już od jakiegoś czasu dosyć stabilne i - co do zasady - nadają się już do codziennego użytku. Kiedy zagoszczą do KDE Applications - tego nie wie nikt. Nic nie stoi na przeszkodzie, by je we własnym zakresie zbudować. Rzut oka na AUR i... tak, mamy tam skrypty umożliwiające budowę takich paczek jak dolphin-frameworks-git, czy konqueror-frameworks-git itd. (nawiasem mówiąc, każdy ze skryptów umożliwiających budowę określonej aplikacji składającej się na KDE-baseapps buduje je wszystkie, wystarcza zatem zbudowanie dowolnej, w oparciu o dowolny skrypt /jest on ten sam zresztą/). Tu jednak, w Archu, pojawia się pewien problem. Mianowicie twórca skryptów przewidział, że aplikacje te będą się budować w oparciu o Szkielety (KF5) również w wersji rozwojowej, czyli również zbudowanej z git. Tym samym, próba budowy jakiejkolwiek paczki z baseapps, zbuduje w niezbędnym zakresie KDE Frameworks 5 w wersji z git, którą to wersję zainstaluje w systemie w miejsce stabilnej i dostępnej w repozytoriach ich wersji (obecnie to 5.5.0). Za takim rozwiązaniem przemawia m.in. to, że aplikacje bazowe są dość ściśle powiązane ze Szkieletami. Niemniej jednak - znów co do zasady - aplikacje te powinno się udać zbudować również w oparciu o najnowszą, stabilną, wersję KF5. Lekka zmiana PKGBUILDu, chwila trzymania kciuków bądź odmawiania innych zaklęć i... W każdym bądź razie od jakichś 2, może nawet 3 tygodni jestem użytkownikiem KDE-baseapps zbudowanych w oparciu o KF5, które jednocześnie nie potrzebowały (przynajmniej jak do tej pory) KF5 również w wersji git. Od czasu do czasu (powiedzmy raz na tydzień) warto jest dokonać ponownej budowy tych paczek (albowiem jak wspominałem, są one w ciągłym rozwoju, zdarzyć się zatem może, że coś co jeszcze nie do końca funkcjonowało w określonej rewizji i z określonym commitem, w następnej będzie funkcjonować już prawidłowo).
Jeśli zatem ktoś chciałby cieszyć się również KDE Baseapps w wersji KF5, to najprościej jest to zrobić w następujący sposób.
1. Ściągamy tarball np. dolphin-frameworks-git. Można to zrobić albo ze strony AUR, albo za pomocą narzędzia yaourt:
yaourt -G dolphin-frameworks-git
2. Przechodzimy do utworzonego właśnie katalogu dolphin-frameworks-git, w którym znajdziemy kilka plików.
3. Podmieniamy plik PKGBUILD następującą zawartością:
# Maintainer: Antonio Rojas <arojas@archlinux,org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Mainainer for kde-baseapps depends on stable KF5: pavbaranov
pkgbase=kde-baseapps
pkgname=('dolphin-frameworks' 'konqueror-frameworks' 'kdepasswd-frameworks' 'kdialog-frameworks' 'kfind-frameworks'
'keditbookmarks-frameworks' 'libkonq-frameworks')
pkgver=r19564.727b8e0
pkgrel=1
pkgdesc="Collection of applications used for file and Internet browsing."
arch=('i686' 'x86_64')
url='https://projects.kde.org/projects/kde/applications/kde-baseapps'
license=('LGPL')
makedepends=('extra-cmake-modules' 'git' 'kdoctools' 'kdesu' 'kdelibs4support' 'kactivities-frameworks' 'knewstuff' 'baloo-widgets-git' 'python')
source=('git://anongit.kde.org/kde-baseapps#branch=frameworks')
md5sums=('SKIP')
pkgver() {
cd kde-baseapps
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
prepare() {
mkdir -p build
}
build() {
cd build
cmake ../kde-baseapps \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_INSTALL_DIR=lib \
-DSYSCONF_INSTALL_DIR=/etc \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON
make
}
package_dolphin-frameworks() {
pkgdesc='File Manager'
depends=('baloo-widgets' 'libkonq-frameworks' 'knewstuff' 'kio-extras' 'kcmutils')
optdepends=('ruby: installing service menus form GHNS')
url="http://kde.org/applications/system/dolphin/"
conflicts=('kdebase-dolphin' 'dolphin')
provides=('dolphin')
install=$pkgbase.install
cd $srcdir/build/dolphin
make DESTDIR="$pkgdir" install
}
package_konqueror-frameworks() {
pkgdesc='KDE File Manager & Web Browser'
depends=('keditbookmarks-frameworks' 'dolphin-frameworks' 'kded')
url="http://kde.org/applications/system/konqueror/"
conflicts=('kdebase-konqueror' 'konqueror')
provides=('konqueror')
install=$pkgbase.install
cd $srcdir/build/konqueror
make DESTDIR="$pkgdir" install
}
package_kdepasswd-frameworks() {
pkgdesc='Change Password'
depends=('libkonq-frameworks' 'kdesu')
conflicts=('kdebase-kdepasswd' 'kdepasswd')
provides=('kdepasswd')
cd $srcdir/build/kdepasswd
make DESTDIR="$pkgdir" install
}
package_kdialog-frameworks() {
pkgdesc='A utility for displaying dialog boxes from shell scripts'
depends=('kdelibs4support')
conflicts=('kdebase-kdialog' 'kdialog')
provides=('kdialog')
cd $srcdir/build/kdialog
make DESTDIR="$pkgdir" install
}
package_kfind-frameworks() {
pkgdesc='Find Files/Folders'
depends=('libkonq-frameworks')
conflicts=('kdebase-kfind' 'kfind')
provides=('kfind')
url="http://kde.org/applications/utilities/kfind/"
install=$pkgbase.install
cd $srcdir/build/kfind
make DESTDIR="$pkgdir" install
}
package_keditbookmarks-frameworks() {
pkgdesc='Bookmark organizer and editor'
depends=('libkonq-frameworks')
conflicts=('kdebase-keditbookmarks' 'keditbookmarks')
provides=('keditbookmarks')
url="http://www.kde.org/"
install=$pkgbase.install
cd $srcdir/build/keditbookmarks
make DESTDIR="$pkgdir" install
}
package_libkonq-frameworks() {
pkgdesc='KDE libraries for the basic desktop applications'
depends=('kdelibs4support')
conflicts=('kdebase-lib')
cd $srcdir/build/lib
make DESTDIR="$pkgdir" install
}
Proszę pamiętać jednak, że aplikacje te mają zmienione w stosunku do oryginału nazwy (*-frameworks, a nie *-frameworks-git), zbudowane noszą jednak numer wersji rewizji i commitu, które były dostępne w czasie budowania. Innymi słowy paczki zbudowane w oparciu o podany przepis będą miały taki sam numer rewizji i commitu, jaki paczki *-frameworks-git zbudowane w tym samym czasie.
Ostatnia budowa w moim systemie miała miejsce dosłownie przed chwilą i się powiodła. Aplikacje działają też prawidłowo. Proszę jednakże pamiętać, że jeżeli budowa paczek powiodła się w danym momencie, to nie oznacza, że musi się powieść wraz z następną rewizją, bądź commitem.
EDIT:
Zapomniałem o jednym. Jedną z zależności kde-baseapps w wersji zbudowanej na KF5 jest baloo-widgets. Obecnie dostępna wersja jest jednak zbudowana w oparciu o biblioteki KDE4 i zbudowane kde-baseapps oparte o tę wersję baloo-widgets nie będzie poprawnie działać. Koniecznym jest zbudowanie baloo-widgets również opartego o KF5 stąd też zmiana w PKGBUILDzie i konieczność uprzedniego zbudowania baloo-widgets-git i instalacji tej paczki w systemie przed budową kde-baseapps.