quickbox
quickbox copied to clipboard
Balicky pro Linuxove distribuce
@lpechacek wrote:
Jen krátká poznámka při odchodu na schůzi. QuickEvent se už nějakou dobu snažím zabalit do RPM právě pro automatické kompilace v BuildService. Narážím však na chybějící pravidla pro instalaci zkompilovaných souborů a také Unixovým zvykům nepřirozené umístění sdílených knihoven.
V principu potřebuji doplnit do .pro souborů něco jako níže uvedený příklad. Pak už snáze udělám potřebné .spec soubory pro RPM, případně zabalím i pro další distribuce. Zatím však klopýtám o detaily instalace a lety zteřelé znalosti qmake
. Pomohlo by možná vidět současné skripty pro výrobu vydání QE, abych mohl jejich funkčnost převést do pravidel qmake
. HTH
diff --git a/libqf/libqfcore/libqfcore.pro b/libqf/libqfcore/libqfcore.pro
index c7fff572c966..5b89cece298b 100644
--- a/libqf/libqfcore/libqfcore.pro
+++ b/libqf/libqfcore/libqfcore.pro
@@ -36,3 +36,14 @@ RESOURCES += \
TRANSLATIONS += \
libqfcore.cs_CZ.ts \
libqfcore.pl_PL.ts \
+
+unix {
+ contains(QMAKE_HOST.arch, x86_64|ppc64|aarch64):{
+ qfcore.path = /usr/lib64/quickevent
+ } else {
+ qfcore.path = /usr/lib/quickevent
+ }
+ qfcore.files = $$QF_PROJECT_TOP_BUILDDIR/lib/*
+
+ INSTALLS += qfcore
+}
Muj kamarad Pavel Pisa se snazil v tomto smeru jiz neco podniknout, protoze chtel balicky pro qsqlmon
ktery je take soucasti quickboxu, nevim, jestli to dotahl do uplneho konce, ale to se asi da zjistit na https://build.opensuse.org/package/show/home:ppisa/qsqlmon
Ja osobne nepovazuji qmake za dobry balickovaci nastroj, ale taky nemam vubec nic proti navrhovanemu patch(i).
@lpechacek
Uprav si potrebne pro
soubory podle svych potreb a udelej prosim pull request.
Díky za založení lístku, Fando. Pavlovy balíčky v OBS mi připadají dobré, zkusím na jeho práci navázat.
Pro informaci, mám už dílčí úspěchy. Aktuální stav je v https://github.com/lpechacek/quickbox/commits/issue-407-packaging . Ještě chybí dořešit instalaci datových souborů (zvuky, obrázky) a upravit cesty pro vyhledávání pluginů a datových souborů.
Pro informaci, mám už dílčí úspěchy. Aktuální stav je v https://github.com/lpechacek/quickbox/commits/issue-407-packaging . Ještě chybí dořešit instalaci datových souborů (zvuky, obrázky) a upravit cesty pro vyhledávání pluginů a datových souborů.
drzim palce, dostat QE do distribuce by bylo pozehnani, ja osobne skousim AppImage, ale to je vec, ktera nemuze nikdy na 100% fungovat ve vsech distribucich, i kdyz na 90% jo :)
Co se týče RPM, tak jsem již dříve nějaké pokusy s QE kódem dělal.
Podařilo se mi vyseparovat QSQLmon a ten korektně vybuildovat pro mnoho distribucí (Debian_Unstable, Fedora_29, Fedora_Rawhide, Raspbian_9.0, SLE_15, openSUSE_Factory_ARM, openSUSE_Leap_15.0, openSUSE_Leap_15.0_Port, openSUSE_Leap_15.1, openSUSE_Leap_42.3, openSUSE_Leap_42.3_Ports, openSUSE_Tumbleweed) x (x86_64, i386, ARM, PowerPC ...) na OpenBuildService
https://build.opensuse.org/package/show/home:ppisa/qsqlmon
Lze se podívat na SpecFile.
https://build.opensuse.org/package/view_file/home:ppisa/qsqlmon/qsqlmon.spec?expand=1
Kvůli balíčkování QtMips jsem byl navštívit i Suse (ujal se mě Tomáš Chvátal) a nabyté znalosti jsem se pokusil vyzkoušet i na QSqlMon a QE. S QtMipsem se mi podařilo projít i jejich kontrolou na správnost spec a dohodnout přidání do Factory
https://build.opensuse.org/package/show/Education/qtmips
Opět, lze se podívat na SPEC.
Co se týče buildu celého QE, tak jsem jakž takž uspěl s buildem pro Debian like dstribuce.
https://build.opensuse.org/package/show/home:ppisa/quickbox
V adresáři quickbox by mělo stačit dát
dpkg-buildpackage
a měl by se dostavit výsledek. Ale ten asi není plně použitelný, protože nenaistaluje všechny datové soubory, které jsou potřeba. Pokud by se podařilo dát korektní target install do QMake/.pro tak by definice install targetů byla mnohem jednodušší.
SpecFile pro celé QE jsem také zkoušel začít připravovat. K porovnání ho dám do příloh. Vím, že jsem se zatavil ve fázi správné instalace sdílených knihoven. Ale něco jsem již připravené měl.
Současní verze zdrojových kódů ale do Debian balíčků u mě (Debian 10 - Buster) přeložit nejde. Skončí na
src/reports/widgets/reportviewwidget.cpp: In member function ‘virtual void qf::qmlwidgets::reports::ReportViewWidget::ScrollArea::wheelEvent(QWheelEvent*)’:
src/reports/widgets/reportviewwidget.cpp:101:15: error: invalid use of member function ‘virtual bool QScrollArea::event(QEvent*)’ (did you forget the ‘()’ ? )
QPoint pos = event->pos();
^~~~~
src/reports/widgets/reportviewwidget.cpp:101:20: error: base operand of ‘->’ is not a pointer
QPoint pos = event->pos();
^~
Když bude zájem, tak to, co budu umět zkusím předat, případně udělám další pokus přes své OBS konto. Je ale potřeba, aby se QE projekt buildoval proti standardním balíčkům alespoň na mém systému.
Pokud tedy někdo opraví současnou nekompatabilitu a přidá targety pro install do nějakého DESTDIR do .pro souborů, tak zkusím zase chvilku svůj um.
Můj pokus o SpecFile pro QE quickbox.spec
Přeložit pro Debian to nejde, protože Qt 5.15 předělala trochu API a ja jsem to asi někde zapomněl oifdefovat. Jakou verzi Qt Debian používá? Opravím to.
Dík, Debian 10 Buster používá Qt5 5.11.3-2
Build pro Buster opraven https://github.com/Quick-Event/quickbox/commit/492b6e5c6d29fc32aa8a75b6ea255e85760a6676