piątek, 22 kwietnia 2016

Tea-Qt5

Od pewnego czasu, popularny edytor tekstu (i jeszcze trochę) można zbudować z użyciem bądź to Qt4, bądź to Qt5. W repozytoriach Archa dostępna jest ta pierwsza wersja. Pomijając cel rozwijania oprogramowania opartego o zarzucony już framework, zwłaszcza, gdy istnieje już możliwość zbudowania go w oparciu o nowszy, to wydaje się, że w niektórych środowiskach wersja oparta o Qt5 po prostu lepiej wygląda. Poniżej zatem przepis na zbudowanie tea w wersji qt5.
Najłatwiej będzie ściągnąć tarball istniejącej w repozytorium community paczki i przejść do utworzonego katalogu - najprościej:
yaourt -G tea && cd tea
Wymieniamy istniejący tam plik PKGBUILD na poniższy:
# $Id: PKGBUILD 151990 2015-12-10 04:11:05Z foutrelis $
# Maintainer: pavbaranov (only for Qt5 version)
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Roman Kyrylych <roman@archlinux.org>
# Contributor: Michal Kaliszka <desmont@gmail.com>
# Contributor: Zsolt Varadi <sysop_xxl@fibermail.hu>

pkgname=tea-qt5
_pkgname=tea
pkgver=41.1.0
pkgrel=1
pkgdesc="A Qt-based text editor for Linux and *BSD. With an ultimate small size TEA provides you hundreds of functions."
arch=('i686' 'x86_64')
url="http://semiletov.org/tea/"
license=('GPL')
depends=('qt5-declarative' 'aspell' 'hunspell')
install=tea.install
source=(http://semiletov.org/tea/dloads/tea-$pkgver.tar.bz2
        tea.desktop)
md5sums=('8a41da9884f98b8ca6f57296243f8fbc'
         '377ace3363124f4c086de0babb820761')

prepare() {
  cd "${srcdir}/${_pkgname}-${pkgver}"
#  sed -i 's|i + j|(int)(i + j)|' textproc.cpp
  sed -i 's|/usr/local|/usr|g' src.pro
}

build() {
  cd "${srcdir}/${_pkgname}-${pkgver}"
  qmake-qt5
  make
}

package(){
  cd "${srcdir}/${_pkgname}-${pkgver}"
  make INSTALL_ROOT="${pkgdir}" install
  install -Dm644 "${srcdir}/tea.desktop" "${pkgdir}/usr/share/applications/tea.desktop"
  install -Dm644 icons/tea_icon_v2.png "${pkgdir}/usr/share/pixmaps/tea.png"
}

Wydajemy komendę:
makepkg -sirc
i cieszymy się tea-qt5.

wtorek, 19 kwietnia 2016

Otter-Browser #120

Jak się wydaje - walkę z PKGBUILDem zakończyłem sukcesem. Poniżej prezentowany jest tak na prawdę pierwszym, który zezwala na zbudowanie Otter-Browser w wersji pozbawionej zależności i pozbawionej backendu w postaci qtwebkit. Dotychczasowe budowały Otter-Browsera z obu backendami, które można było wybrać w oknie konfiguracyjnym about:config.
Nie oznacza to, że nie można zbudować Otter-Browser wyłącznie z qtwebkitem, bądź z obu backendami. Jeśli ktoś chciałby to zrobić, to winien dokonać następujących zmian:
1. Dla zbudowania przeglądarki ze wsparciem dla obu backendów zmieniamy:
a. pole depends i dodajemy tam 'qtwebkit',
b. w sekcji build dotychczasowa treść rozpoczynająca się od cmake i kończąca się przed make winna przybrać wyłącznie postać: cmake -DCMAKE_INSTALL_PREFIX="/usr"
2. Dla zbudowania przeglądarki ze wsparciem wyłącznie dla qtwebkit:
a. z pola depends usuwamy 'qt5-webengine' oraz dodajemy 'qtwebkit',
b. w sekcji build linię -DENABLE_QTWEBKIT=OFF zmieniamy na -DENABLE_QTWEBENGINE=OFF
Teraz już sam PKGBUILD:
# Maintainer: boenki <boenki at gmx dot de>
# Maintainer: pavbaranov
# Contributor: sir_lucjan

pkgname=otter-browser-weekly
_pkgname=otter-browser
_pkgver=0.9.10
_weekver=120
pkgver=${_pkgver}.dev${_weekver}
_devver=${_pkgver}-dev${_weekver}
pkgrel=1
pkgdesc="Web browser controlled by user, not vice-versa"
arch=('i686' 'x86_64')
url="http://$_pkgname.org"
license=('GPL3')
depends=('qt5-multimedia' 'hicolor-icon-theme' 'desktop-file-utils' 'qt5-webengine')
makedepends=('cmake' 'qt5-tools')
optdepends=('gstreamer0.10-ugly-plugins' 'hunspell' 'qtwebkit')
conflicts=('otter-browser-git' 'otter-browser' 'otter-browser*' 'otter-browser-beta*' 'otter-browser-webengine-weekly' 'otter-browser-webkit-weekly')
install=otter.install
source=("http://sourceforge.net/projects/otter-browser/files/otter-browser-weekly${_weekver}/otter-browser-${_pkgver}-dev${_weekver}.tar.bz2")
md5sums=('a4304371b760d63ee2057856eebddabb')

build() {
  cd ${_pkgname}-${_devver}
  lrelease resources/translations/*.ts
  cmake -DCMAKE_INSTALL_PREFIX="/usr" \
-DENABLE_QTWEBKIT=OFF
  make
}

package() {
  cd ${_pkgname}-${_devver}
  make DESTDIR=$pkgdir install
}

poniedziałek, 18 kwietnia 2016

Otter-Browser #119

Od kilku dni dostępne jest już nowe wydanie tygodniowe Ottera i od kilku dni mam też PKGBUILD dla niego. Mam z nim jednak jeden problem. Otóż swego czasu z kodu Ottera usunięta została opcja -DEnableQtwebengine=ON, która przekazywała cmake instrukcję, by przeglądarka była budowana z użyciem qt5-webengine. Obecnie robi to automatycznie. Jednakże jeśli w systemie, na którym budowana jest przeglądarka znajduje się również qtwebkit, Otter zostanie zbudowany ze wsparciem dla obu silników. W przypadku, gdy w polu depends wstawimy wyłącznie qt5-webengine, test namcap stwierdzi, że wykrył zależność (qtwebkit), która została użyta do stworzenia paczki binarnej, ale która nie została zadeklarowana w depends. Szczerze powiedziawszy nie mam pojęcia jak stworzyć PKGBUILD, który - w systuacji, gdy mamy oba silniki - budował przeglądarkę wyłącznie z jednym z nich. Obejściem dla testu namcap jest dodanie pola optdepends i umieszczenie w nim qtwebkit. To jedynie obejście testu namcap, a nie naprawa problemu. Jeśli ktoś ma jakiś pomysł (oprócz tworzenia  paczki na tzw. czystym chroocie), to będę wdzięczny.
Teraz już zwyczajowo PKGBUILD:
# Maintainer: boenki <boenki at gmx dot de> 
# Maintainer: pavbaranov 
# Contributor: sir_lucjan
pkgname=otter-browser-weekly 
_pkgname=otter-browser
_pkgver=0.9.10_weekver=119
pkgver=${_pkgver}.dev${_weekver}
_devver=${_pkgver}-dev${_weekver}
pkgrel=1
pkgdesc="Web browser controlled by user, not vice-versa"arch=('i686' 'x86_64')
url="http://$_pkgname.org"
license=('GPL3')
depends=('qt5-multimedia' 'hicolor-icon-theme' 'desktop-file-utils' 'qt5-webengine')
makedepends=('cmake' 'qt5-tools')
optdepends=('gstreamer0.10-ugly-plugins' 'hunspell' 'qtwebkit')
conflicts=('otter-browser-git' 'otter-browser' 'otter-browser*' 'otter-browser-beta*' 'otter-browser-webengine-weekly' 'otter-browser-webkit-weekly')
install=otter.installsource=("http://sourceforge.net/projects/otter-browser/files/otter-browser-weekly${_weekver}/otter-browser-${_pkgver}-dev${_weekver}.tar.bz2")
md5sums=('4f5569bf501c5b52b52fe97cf6908274')

build() {  
    cd ${_pkgname}-${_devver}  
   lrelease resources/translations/*.ts  
   cmake -DCMAKE_INSTALL_PREFIX="/usr"   make
  }

package() {  
  cd ${_pkgname}-${_devver}  make DESTDIR=$pkgdir install
  }

środa, 6 kwietnia 2016

Tellico 3.0 Beta 1

Tellico to rozwijany od wielu już lat menedżer kolekcji dla KDE. Ostatnia wersja stabilna (2.3.11) jest rozwijana jeszcze w oparciu o rozwiązania KDE4. Od jakiegoś roku jednak kod Tellico umożliwia budowę wersji opartej o KF5. Doszło nawet do tego, że kod rozwijany w GIT w ramach master jest już kodem dającym wersję KF5. Używam wersji KF5 w zasadzie od chwili, kiedy dało się ją budować i nie zauważyłem jakichś problemów. Funkcjonalność co najmniej taka sama, stabilność nie budzi wątpliwości.
Właśnie ukazała się wersja  2.9.91, czyli pierwsza beta nadchodzącego wydania 3.0. Skoro w AUR (w oficjalnym repozytorium jest wersja 2.3.11) nie ma ani wersji budowanej z git, ani opartej o KF5, to pora się z Wami podzielić skryptami umożliwiającymi budowę tej aplikacji. Przedstawiony PKGBUILD umożliwia budowę wersji master z GIT. W dniu publikacji odpowiada ona 3.0 Beta 1. Jeśli ktoś chciałby budować aplikację zawsze w wersji Beta 1 (oczywiście dopóki nie pojawi się Beta 2 itd.), to proszę dać znać w komentarzach.
PKGBUILD:
# Maintainer: pavbaranov
pkgname=tellico-git
pkgver=2.9.91+git.r2273.09776a5
pkgrel=1
pkgdesc="A collection manager build against KDE Frameworks 5 and Qt5"
arch=('i686' 'x86_64')
url="http://tellico-project.org/"
license=("GPL2")
depends=('kdelibs4support' 'khtml' 'exempi' 'libdiscid' 'libcsv' 'btparse' 'yaz' 'qimageblitz-qt5-svn' 'exempi' 'knewstuff' 'hicolor-icon-theme' 'kfilemetadata' 'python2')
makedepends=("git" "extra-cmake-modules" "kdoctools" "automoc4")
provides=('tellico')
conflicts=('tellico' 'tellico-git' 'tellico-frameworks-git')
install=${pkgname}.install
source=("git://anongit.kde.org/tellico.git")
_gitname="tellico"
sha256sums=('SKIP')
pkgver() {
  cd tellico
  _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)"
}

prepare() {
  mkdir -p build
}

build() { 
  cd build
  cmake ../tellico \
-DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DLIB_INSTALL_DIR=lib \
-DBUILD_TESTING=OFF \
-DQT_PLUGIN_INSTALL_DIR=lib/qt/plugins 
  make
}

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

# fix python 2.7 path
  find "${pkgdir}" -iname "*.py" | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
}
tellico-git.install
post_install() {
  xdg-icon-resource forceupdate
  update-desktop-database -q
  update-mime-database usr/share/mime
}

post_upgrade() {
  post_install $1
}

post_remove() {
  xdg-icon-resource forceupdate
  update-desktop-database -q
  update-mime-database usr/share/mime
}

 

Otter-Browser #118

Kolejna odsłona tygodniowa. Bez większych zmian w PKGBUILD i te same założenia, które zaprezentowałem ostatnio. O zmianach w kodzie i postępie prac nad przeglądarką przeczytamy jak zwykle na stronie domowej programu.
PKGBUILD:
# Maintainer: boenki <boenki at gmx dot de>
# Maintainer: pavbaranov
# Contributor: sir_lucjan

pkgname=otter-browser-weekly
_pkgname=otter-browser
_pkgver=0.9.10
_weekver=118
pkgver=${_pkgver}.dev${_weekver}
_devver=${_pkgver}-dev${_weekver}
pkgrel=1
pkgdesc="Web browser controlled by user, not vice-versa"
arch=('i686' 'x86_64')
url="http://$_pkgname.org"
license=('GPL3')
depends=('qt5-multimedia' 'hicolor-icon-theme' 'desktop-file-utils' 'qt5-webengine')
makedepends=('cmake' 'qt5-tools')
optdepends=('gstreamer0.10-ugly-plugins' 'hunspell')
conflicts=('otter-browser-git' 'otter-browser' 'otter-browser*' 'otter-browser-beta*' 'otter-browser-webengine-weekly' 'otter-browser-webkit-weekly')
install=otter.install
source=("http://sourceforge.net/projects/otter-browser/files/otter-browser-weekly${_weekver}/otter-browser-${_pkgver}-dev${_weekver}.tar.bz2")
md5sums=('f9f2b32325e710827cda61908be8a2d3')

build() {
  cd ${_pkgname}-${_devver}
  lrelease resources/translations/*.ts
  cmake -DCMAKE_INSTALL_PREFIX="/usr" 
  make
}

package() {
  cd ${_pkgname}-${_devver}
  make DESTDIR=$pkgdir install
}

wtorek, 5 kwietnia 2016

Plasma 5 Tweaks - plazmoid Event Calendar

Wszyscy znamy "zegarek" na panelu. Nie znam dystrybucji, która domyślnie go by tam nie umieszczała. Jest on jednak bardzo ograniczony w swoich możliwościach. Co może zrobić? Wyświetlić czas, pokazać kalendarz. Tyle. Innymi słowy spełnia swoją rolę.
A gdyby tak... Oprócz wyświetlania bieżącego czasu, oprócz pokazywania kalendarza, mógł wyświetlić również terminarz naszych zajęć, jeśli te mamy w Google Calendar, mógł wyświetlić pogodę...
Jeśli czegoś takiego potrzebujecie, to z pomocą przychodzi plazomid Event Calendar. Przyznam, że zacząłem go używać i wydaje się być dość ciekawym rozwiązaniem. Oczywiście o ile nasze zajęcia przechowujemy w Google Calendar i jeśli wystarcza nam prognoza pogody z OpenWeatherMap. Po kliknięciu na zegar, otwiera się okno, w którym pokazywany jest kalendarz na miesiąc (tu żadnej zmiany) z podkreślonym dniem (niestety - przynajmniej jak na razie w jednym kolorze) dniem, w którym mamy zaplanowane jakieś zajęcie. Obok niego wyświetla się dwutygodniowa lista zajęć, które umieściliśmy w Google Calendar. Listę tę możemy edytować z tego poziomu i dodawać wydarzenia. Obok dnia, pojawia się ikona, bądź opis pogody jaki ma w nim  być na najbliższe siedem dni. Plazmoid umożliwia również sterowanie odtwarzaczem multimedialnym. W sumie "mały kombajn", który zastąpić może kilka innych. Do szczęścia brakuje jedynie przypominania o zdarzeniach oraz podstawowej obsługi informacji o przychodzącej poczcie. Nawet byłoby to sensowniejsze niż obsługa odtwarzacza multimedialnego, ale darowanemu koniowi nie zagląda się w zęby.
W przypadku Archa (Manjaro i okolic) instalacja jest banalnie prosta, albowiem w AUR istnieje stosowny PKGBUILD. Inna sprawa, że można go dodać przez wbudowany w Plasmę 5 mechanizm GTNS. Pamiętajmy jedynie, by w przypadku Plasma 5.6/Qt 5.6 zainstalować wersję nie niższą niż 23.

poniedziałek, 4 kwietnia 2016

Plasma 5 Tweaks - motyw Helium

W repozytorium AUR są dostępne skrypty budujące niegdyś dość popularny i dobrze oceniany wystrój dla KDE o nazwie Helium. Pomijając, że jest to stara wersja (6.0.0, podczas, gdy dostępna jest już 7.1.0), to PKGBUILD budujący paczkę jest wadliwy. Po pierwsze winien być pakowany jako "any", a nie dla rodzaju systemu (32/64-bitowy), to nadto umieszcza swoje pliki w wadliwym miejscu. Przynajmniej jeśli chodzi o Plasmę. Prawidłowy PKGBUILD wyglądać winnien tak:
pkgname=plasma5-theme-helium
_pkgname=Helium
pkgver=7.1.1
pkgrel=1
pkgdesc="Transparent theme based on air and eleonora. but giving it an extra touch"
arch=('any')
license=('GPL')
url="http://kde-look.org/content/show.php/Helium?content=125471"
depends=('plasma-desktop') 
conflicts=('plasma-theme-gremix' 'plasma-theme-helium')
source=("http://kde-look.org/CONTENT/content-files/125471-Helium.tar.xz")
md5sums=('f0a03eaa13b09e19d8f5d75001a8dae1')

package() {
    install -dm755 ${pkgdir}/usr/share/plasma/desktoptheme/
    cp -r ${srcdir}/${_pkgname}/ ${pkgdir}/usr/share/plasma/desktoptheme/
    }
Instalacja tematu spowoduje (oczywiście po potwierdzeniu) odinstalowanie również znajdującego się w systemie plasma-theme-helium.

EDIT:
W międzyczasie pojawiła się nowa wersja Helium 7.1.1 z niewielkimi poprawkami - dostosowałem do niej PKBUILD.