Estou tentando empacotar um aplicativo Qt 5.x conforme descrito em https://packaging.ubuntu.com/html/packaging-new-software.html
Meus Build-Depends no debian/control
arquivo são:
debhelper-compat (= 13), libqt5widgets5 (>=5.4), libqt5xml5 (>=5.4), libqt5gui5 (>=5.4), libqt5core5a (>=5.4), libtiff5 (>=4.0.3), libjpeg8 (>=8c), libgcc1 (>=1.3.0), libc6 (>=2.14), libpng16-16 (>=1.6.2-1), libstdc++6 (>=5.2)
Estou construindo deb combzr builddeb -- -us -uc
Infelizmente, o processo de compilação falha porque ele tenta iniciar os casos de teste após a compilação binária e um deles está travando. O caso de teste usa QPainter
que requer uma instância de QApplication
para funcionar. E parece que o aplicativo trava na criação de arquivos QApplication
. A saída é:
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: wayland-org.kde.kwin.qpa, dxcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
Então, meu palpite é que o bzr está tentando executar o aplicativo em algum ambiente limpo que é feito com base na minha lista Build-Depends. E esta lista perde algo que é exigido pelo qt5/plugins/platforms/libqxcb.so
.
A questão é: o que pode ser e como rastrear isso?
Eu posso executar ldd
na minha máquina, mas preciso dele em ambiente bzr.
Aqui está o log de compilação https://pastebin.com/BVbZVwr6 Eu cortei um meio do processo de compilação para ajustar os limites de tamanho da pasta. Mas a compilação está bem, é fazer teste que falha. O código das provas está aqui: https://cutt.ly/BgYQITO
O ambiente de construção é o mínimo limpo que não possui Display Server (X11, Wayland). Qt parece falhar ao detectar um servidor de exibição.
Suspeito que esses testes de imagem iniciem algumas ferramentas que exigiam alguns recursos da área de trabalho.
Porque esta é a tentativa inicial de empacotar.
export DH_VERBOSE=1
no topo dodebian/rules
arquivo.override_dh_auto_test:
Referência: https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#rules
Se você conseguir, tente habilitar testes que não exijam servidor primeiro. Para testes completos com o servidor de exibição, sinceramente não tenho experiência, não enfrentei esse caso antes. Ou todos os pacotes desabilitam isso ou há uma solução que eu não notei.