środa, 13 stycznia 2016

Nomacs 3.0.0

W AUR pojawiły się skrypty budujące nomacs-git, które oparte są o linię 3.0.0 i budowane z użyciem Qt5. Nie ma sensu zatem kontynuowanie przeze mnie linii rozwojowej (git) tego programu. Niemniej jednak od blisko miesiąca dostępna jest już stabilna wersja 3.0.0, do której w dalszym ciągu nie zaktualizowana została wersja dostępna w repozytoriach Archa (w dalszym ciągu to 2.4.6). Jeśli zatem ktoś chciałby skorzystać z wersji 3.0.0, ale jednocześnie nie chce korzystać z wersji rozwojowej oprogramowania, tylko stabilnej, to proponuję następujące rozwiązanie.
Tworzymy w dowolnym miejscu (musimy mieć do niego dostęp jako zwykły użytkownik) tymczasowy katalog dla budowania programu. Powiedzmy, że będzie się nazywać nomacs i przechodzimy do tego katalogu:
mkdir -p nomacs && cd nomacs
W katalogu tworzymy dwa pliki o nazwach PKGBUILD oraz nomacs.install, do których kopiujemy następującą zawartość:
PKGBUILD:
# Maintainer: pavbaranov

pkgname=nomacs
pkgver=3.0.0
pkgrel=1
pkgdesc="A Qt image viewer"
arch=(i686 x86_64)
url="http://www.nomacs.org/"
license=('GPL3')
depends=('qt5-base' 'libwebp' 'exiv2' 'libraw' 'libtiff' 'opencv')
makedepends=('cmake')
conflicts=('nomacs-git')
provides=('nomacs')
install="$pkgname.install"
source=("https://codeload.github.com/nomacs/nomacs/zip/3.0")
md5sums=('0df41bc0d07012c1fb4b391779f42762')

prepare() {
cd $pkgname-3.0
mkdir -p build
}

build() {
cd $pkgname-3.0/build
cmake ../ImageLounge \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DISABLE_QT_DEBUG=ON 
make
}

package() {
cd $pkgname-3.0/build
make DESTDIR="$pkgdir" install
}
nomacs.install:
 
post_install() {
  update-desktop-database -q
}

post_upgrade() {
  post_install
}

post_remove() {
  post_install
}
Następnie korzystamy z makepkg i budujemy program. Osobiście zwykle korzystam z możliwości jednoczesnej instalacji zbudowanej paczki oraz usunięcia wszelkich pozostałości po udanej budowie, a zatem u mnie polecenie to wygląda tak:
makepkg -sirc
 W porównaniu z wersjami dostępnymi czy to w AUR czy to w repozytorium proponowane rozwiązanie tworzy paczkę bez możliwości jej debugowania. Jeśli ktoś chciałby z tego skorzystać to w sekcji build PKGBUILD polecenie cmake winno przybrać następującą postać:
cmake ../ImageLounge \
-DCMAKE_INSTALL_PREFIX=/usr
W przeciwieństwie do nomacs-git, wyjście z programu nie powoduje też naruszenia ochrony pamięci.
Niestety program jest w bardzo niewielkim stopniu spolszczony. Może zatem warto pomyśleć o pomocy w tym zakresie.