Autor Wątek: KDEBaseApps dla Plasma5  (Przeczytany 2449 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

pavbaranov

  • Administrator
  • Ekspert
  • *****
  • Wiadomości: 848
  • Reputacja +25/-0
  • Architektura: x86_64
  • DE/WM: KF5.16+Plasma5.4.95+KDEApps 15.11.80+git na KF5
  • Distro: Arch Linux
  • GPU: Radeon free
  • Kernel: 4.3 (BFQ/CK/BLD/UKSM/+optymalizacje)
KDEBaseApps dla Plasma5
« dnia: Styczeń 04, 2015, 17:06:22 »
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-git2. 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.
« Ostatnia zmiana: Luty 24, 2015, 08:30:22 wysłana przez pavbaranov »

 

Polityka cookies
Darmowe Fora | Darmowe Forum
aldara maho nanashin neverdie super-krasnale