Nie jesteś zalogowany na forum.

#1 2017-11-23 15:20:23

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

[TYLKO DLA PISZĄCYCH PKGBUILDy]Lumina DE

Wielu z nas szuka "lekkich" środowisk. Teoretycznie takim jest Lumina DE (zob: http://lumina-desktop.org/). W AUR mamy PKGBUILD, który umożliwia budowę tego DE, jednakże jest on bardzo stary - to wersja 1.2 zaledwie (zob.: https://aur.archlinux.org/packages/lumina-desktop/), a obecna to już 1.4.0. Opiekun PKGBUILDu raczej nie bardzo zabiera się za dostosowanie go do obecnej wersji. Nawiasem mówiąc, moim zdaniem, PKGBUILD ma błędy. Paczka nie buduje się z licencją, man jest w wadliwym miejscu, a nadto - zgodnie z tym PKGBUILDem - otrzymujemy paczkę bez tłumaczeń. O zbędnym lumina.install nawet nie trzeba już wspominać.
Nieco lepiej jest w Manjaro, gdzie paczka znajduje się w repozytorium, jednakże opiekun nie bardzo popisał się, praktycznie przekopiowując PKGBUILD z AUR, jedynie lekko go zmieniając (zob.: https://github.com/manjaro/packages-com … na-desktop ). Błędy - niestety - pozostały.
Przygotowałem PKGBUILD. Wygląda tak i... nie jest doskonały:

pkgname=lumina-desktop
pkgver=1.4.0
pkgrel=1
pkgfullname="${pkgname%-*}-${pkgver}"
pkgdesc="A Lightweight QT5 Desktop for FreeBSD"
arch=('x86_64')
url="https://github.com/trueos/lumina"
license=('BSD')
depends=('poppler-qt5' 'qt5-x11extras' 'qt5-multimedia')
optdepends=('xorg-xbacklight: required for changing screen brightness' 
            'alsa-utils: required for adjusting audio volume' 
            'acpi: required for monitoring battery life' 
            'numlockx: required for changign state of numlock at login' 
            'pavucontrol: required for detatched audio mixer' 
            'fluxmod-styles: A good set of Fluxbox themes to improve the appearence of window decorations' 
            'network-manager-applet: Manage network connections from panel' 
            'xterm: Terminal emulator'
            'fluxbox: window manager for Lumina DE')
makedepends=('qt5-base' 'qt5-tools')
conflicts=("lumina-de-git" "lumina-desktop-git" "insight-fm")
provides=("${pkgname%-*}" "insight-fm")
source=("https://github.com/trueos/lumina/archive/v${pkgver}.tar.gz")
sha512sums=('7243fc366a851832d9431df8ae8cac0f70a7bc92bed1282e78e5775c6593d799a07e2cac7042d770c8d6c4758bb142523027d67227a2282b47ed945b0e617cb0')

build(){
    cd "$srcdir/${pkgfullname}"
    find $srcdir/${pkgfullname} -name *.desktop -exec sed -i 's/usr\/local/usr/' {} \;
    qmake QMAKE_CFLAGS_ISYSTEM= PREFIX="/usr" LIBPREFIX=/usr/lib QT5LIBDIR=/usr/lib/qt CONFIG+=WITH_I18N
    make
}

package() {
    cd "$srcdir/${pkgfullname}"
    make INSTALL_ROOT="${pkgdir}" install
    mv "${pkgdir}"/usr/etc "${pkgdir}"/etc
    install -Dm655 LICENSE "${pkgdir}"/usr/share/licenses/lumina-desktop/LICENSE
    mv "${pkgdir}"/usr/man "${pkgdir}"/usr/share/man
 }

Na podstawie tego PKGBUILDu buduje się poprawna paczka, która przechodzi walidację namcapem. Buduje się również z tłumaczeniami. Niemniej jednak bardzo mało zadowolony jestem z trzech ostatnich linijek w package, z czym na razie poradzić sobie nie mogę. Otóż instrukcje dla budowy tej paczki powodują, że podręczniki lądują w /usr/man/ odpowiednio man1 i man8, podczas gdy winny znaleźć się w /usr/share/man/. Rozwiązanie zastosowane przeze mnie jest prowizoryczne, jednak skuteczne. Prosiłbym natomiast o pomoc w prawidłowym (bardziej poprawnym) napisaniu tego PKGBUILDu.
Przy okazji też inne pytanie, a w zasadzie pytania. Otóż Lumina DE działa z FluxBox jako swoim WM. Paczka fluxbox - z tego co mogę wywnioskować (oraz co pokazuje namcap przy walidacji stworzonej paczki) nie jest wymagana ani jako zależność "depends", ani jako zależność budowy "makedepends". Winna się zatem znaleźć w "optdepends". Tyle, że czy aby na pewno?
Inne pytanie jest związane z tym, że na podstawie zawartego kodu w źródłach, tworzone jest samo środowisko, oraz kilka programów, które nie należą do samego DE i nie są przezeń wymagane. Np. jest tworzona przeglądarka pdf (lumina-pdf), której użytkownik wcale nie musi i może nie chcieć mieć w systemie. Równie dobrze może używać czegokolwiek innego. Czy nie lepiej byłoby zatem zrobić odrębne paczki dla takich programów? Inna sprawa, że jak mi się wydaje, wymagałoby to ingerencji w sam plik *.pro, który buduje niemal wszystko ze źródeł (pomija jedynie dwa programy znajdujące się w katalogu /experimental).
Teraz już kilka linków:
Żródła w git: https://github.com/trueos/lumina
Informacja o budowie ze źródeł: https://github.com/trueos/lumina#buildfromsource
Źródła samego środowiska: https://github.com/trueos/lumina/tree/m … c-qt5/core (i to jest chyba to, co paczka lumina-desktop winna zawierać)
Źródła do różnych narzędzi konfigurujących Lumina DE: https://github.com/trueos/lumina/tree/m … core-utils
Źródła do programów rozprowadzanych wraz z paczką źródłową, które w ogóle nie są potrzebne dla Lumina DE: https://github.com/trueos/lumina/tree/m … ktop-utils. Tu jeszcze jedna uwaga. Spośród zawartych w odnośniku źródeł tych programów, nie jest budowane lumina-notify (chyba), choć paczka ze źródłami go zawiera. Nie są też budowane dwa programy ze wspomnianego katalogu experimental: lumina-screencast oraz lumina-terminal.

EDIT:
Dzięki pomocy @marcin82 PKGBUILD zrobiony. Wygląda tak i jest prawidłowo budującym lumina-desktop (pomijam kwestię budowania w jednej paczce samego środowiska, narzędzi konfigurujących i aplikacji, ale to ode mnie nie zależy):

# Maintainer: pavbaranov
# Contributor: marcin82
# Based on original version from AUR created by:
# Contributor: Chad "crossroads1112" Sharp <crossroads1112@riseup.net>
pkgname=lumina-desktop
pkgver=1.4.0
pkgrel=1
pkgfullname="${pkgname%-*}-${pkgver}"
pkgdesc="A Lightweight QT5 Desktop for FreeBSD"
arch=('x86_64')
url="https://github.com/trueos/lumina"
license=('BSD')
depends=('poppler-qt5' 'qt5-x11extras' 'qt5-multimedia')
optdepends=('xorg-xbacklight: required for changing screen brightness' 
            'alsa-utils: required for adjusting audio volume' 
            'acpi: required for monitoring battery life' 
            'numlockx: required for changign state of numlock at login' 
            'pavucontrol: required for detatched audio mixer' 
            'fluxmod-styles: A good set of Fluxbox themes to improve the appearence of window decorations' 
            'network-manager-applet: Manage network connections from panel' 
            'xterm: Terminal emulator'
            'fluxbox: window manager for Lumina DE')
makedepends=('qt5-base' 'qt5-tools')
conflicts=("lumina-de-git" "lumina-desktop-git" "insight-fm")
provides=("${pkgname%-*}" "insight-fm")
source=("https://github.com/trueos/lumina/archive/v${pkgver}.tar.gz")
sha512sums=('7243fc366a851832d9431df8ae8cac0f70a7bc92bed1282e78e5775c6593d799a07e2cac7042d770c8d6c4758bb142523027d67227a2282b47ed945b0e617cb0')

build(){
    cd "$srcdir/${pkgfullname}"
    find $srcdir/${pkgfullname} -name *.desktop -exec sed -i 's/usr\/local/usr/' {} \;
    qmake QMAKE_CFLAGS_ISYSTEM= PREFIX="/usr" LIBPREFIX=/usr/lib QT5LIBDIR=/usr/lib/qt CONFIG+=WITH_I18N L_MANDIR=/usr/share/man L_ETCDIR="/etc"
    make
}

package() {
    cd "$srcdir/${pkgfullname}"
    make INSTALL_ROOT="${pkgdir}" install
    install -Dm655 LICENSE "${pkgdir}"/usr/share/licenses/lumina-desktop/LICENSE
}

Pamiętajcie, że linia rozpoczynająca się od qmake musi być jedna! Niestety z jakiegoś powodu "\" nie chce tu działać.


Hardware: AMD: A8-7410 APU with Radeon R5
Software (podaję wyłącznie odrębności): Arch testing+kde-unstable, kernel linux-pb (4.19.8 m.in. PDS, UKSM, BFQ-MQ/SQ), amdgpu (dla CIK), KDE, patche z POLAUR

Offline

Stopka

Napędzają nas PacmanVPS i MegiTeam

Forum oparte na FluxBB