quickbox icon indicating copy to clipboard operation
quickbox copied to clipboard

Balicky pro Linuxove distribuce

Open fvacek opened this issue 5 years ago • 9 comments

fvacek avatar Jun 07 '19 14:06 fvacek

@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
+}

fvacek avatar Jun 07 '19 14:06 fvacek

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.

fvacek avatar Jun 07 '19 14:06 fvacek

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.

lpechacek avatar Jun 10 '19 08:06 lpechacek

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ů.

lpechacek avatar Jun 27 '19 13:06 lpechacek

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 :)

fvacek avatar Aug 29 '20 18:08 fvacek

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

ppisa avatar Aug 29 '20 20:08 ppisa

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.

fvacek avatar Aug 30 '20 09:08 fvacek

Dík, Debian 10 Buster používá Qt5 5.11.3-2

ppisa avatar Aug 30 '20 09:08 ppisa

Build pro Buster opraven https://github.com/Quick-Event/quickbox/commit/492b6e5c6d29fc32aa8a75b6ea255e85760a6676

fvacek avatar Aug 30 '20 17:08 fvacek