Nie jesteś zalogowany na forum.

#1 2015-11-09 06:51:20

pavbaranov
Administrator
Lokalizacja: Kraków
Data rejestracji: 2015-08-22
Liczba postów: 2,056
WWW

Amarok na KF5

Od jakiegoś czasu Amarok został przeportowany na KF5 na tyle, że nie tylko daje się zbudować, ale działa. Jeśli ktoś zatem chciałby sobie zrobić taką jego wersję, to poniżej odpowiednie skrypty:
PKGBUILD

# Maintainer: pavbaranov

pkgname=amarok-kf5-git
_pkgname=amarok
pkgver=r34661.cffc471
pkgrel=1
pkgdesc="The powerful music player for KDE"
arch=("i686" "x86_64")
url="http://amarok.kde.org/"
license=('GPL2' 'LGPL2.1' 'FDL')
depends=('qt5-base' 'qt5-script' 'qt5-svg' 'qt5-xmlpatterns' 'qt5-quick1' 'qt5-quickcontrols' 'ki18n' 'kcodecs' 'kdelibs4support' 'threadweaver' 'plasma-framework' 'kcmutils' 'knewstuff' 'ktexteditor' 'kglobalaccel' 'kio' 'knotifyconfig' 'karchive' 'kdnssd' 'mariadb' 'qtscriptgenerator' 'taglib-extras' 'liblastfm' 'ffmpeg' 'libofa' 'qjson' 'taglib-extras')
makedepends=('extra-cmake-modules' 'git' 'pkgconfig' 'automoc4' 'libgpod' 'libmtp' 'loudmouth') # 'libmygpo-qt' 'mesa' 'clamz')
optdepends=("libgpod: support for Apple iPod audio devices"
            "libmtp: support for portable media devices"
            "loudmouth: backend needed by mp3tunes for syncing"
            "ifuse: support for Apple iPod Touch and iPhone"
            "libmygpo-qt: gpodder.net Internet Service"
            "clamz: allow to download songs from Amazon.com"
            "gst-libav: MP3 codecs"
            "mariadb"
            "taglib-extras"
            "qjson"
            )
conflicts=('amarok' 'amarok-git')
install="${pkgname}.install"
source=('git://anongit.kde.org/amarok#branch=kf5')
sha1sums=('SKIP')

pkgver() {
  cd amarok
#    _ver="$(cat CMakeLists.txt | grep -e TELLICO_VERSION | head -n3 | cut -d '"' -f2)"
#    echo "$(echo ${_ver} | tr ' ' .).r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
  }
    
prepare() {
  sed -i -e 's|KIO NotifyConfig Archive)|KIO NotifyConfig Archive ConfigWidgets)|' ${srcdir}/${_pkgname}/CMakeLists.txt
  mkdir build
}

build() {
  cd build
  cmake ../${_pkgname} \
    -DCMAKE_BUILD_TYPE=Release \
    -DKDE4_BUILD_TESTS=OFF \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DLIB_INSTALL_DIR=lib \
    -DWITH_UTILITIES=ON \
    -DWITH_PLAYER=ON \
    -DWITH_MP3Tunes=ON \
    -DWITH_IPOD=OFF \
    -DWITH_MYSQL_EMBEDDED=ON \
    -DWITH_PLAYGROUND=OFF \
    -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
  make
}

package(){
  cd build
  make DESTDIR="${pkgdir}" install
}

Nie mam IPoda stąd stosowna funkcja jest u mnie wyłączona. Polecam zresztą przed zbudowaniem przeglądnąć sobie plik CMakeLists.txt czy to w katalogu ze źródłami (rozpakujemy je "same źródła" bez zależności poleceniem "makepkg -od") i dostosować opcje polecenia cmake w PKGBUILD  do swoich potrzeb.

Nadto potrrzebujemy amarok-kf5-git.install

post_install() {
        xdg-icon-resource forceupdate --theme hicolor &> /dev/null
    update-desktop-database -q
}

post_upgrade() {
        post_install
}

post_remove() {
        post_install
}

Pozostałe zależności winny być w AUR bądź w repozytoriach.
Osobiście używam wersji qjson zbudowanej na Qt5 (to jest zresztą - wg CMakeLists.txt - zależność opcjonalna; można ją wyłączyć). Jeśli ktoś chciałby również taką wersję, to jej PKGBUILD jest następujący:

pkgname=qjson-qt5-git 
_pkgname=qjson
pkgver=r436.101a7c5
pkgrel=1
pkgdesc="A qt5-based library that maps JSON data to QVariant objects"
arch=('x86_64')
license=('GPL')
url="http://qjson.sourceforge.net"
depends=('qt5-base')
makedepends=('cmake' 'git')
provides=('qjson')
conflicts=('qjson')
source=("git+https://github.com/flavio/qjson.git#branch=1_0_0")
md5sums=('SKIP')

pkgver() {
  cd qjson
  printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
  mkdir build
}

build() {
  cd build
  cmake ../${_pkgname} \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=Release
  make
}

package() {
  cd build
  make DESTDIR="${pkgdir}" install
}

Gdyby się Amarok pluł o jakieś jeszcze zależności - dajcie znać, to dodam.

Wszystkie PKGBUILDy opracowane na podstawie skryptów znajdujących się w repozytoriach Archa.


Hardware: AMD: A8-7410 APU with Radeon R5; Arch testing+kde-unstable, kernel linux-pb, KDE+poprawki, kf5.65rc; kernel własny zawsze z najnowszej linii
https://deviantart.com/pavbaranov/ https://pavbaranov.blogspot.com https://linux-pavbaranov.blogspot.com

Offline

Stopka

Forum oparte na FluxBB