Создание deb с bzr: зависимость QApplication

Я пытаюсь упаковать приложение Qt 5.x, как описано в https://packaging.ubuntu.com/html/packaging-new-software. html
Мои зависимости от сборки в файле debian / control :
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)
Я собираю deb с помощью bzr builddeb - -us -uc

К сожалению, процесс сборки завершается неудачно. Bcs он пытается запустить тестовые примеры после двоичного компиляция, и один из них дает сбой. В тестовом примере используется QPainter , которому для работы требуется экземпляр QApplication . И похоже, что приложение вылетает при создании QApplication . Результат:

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.

Итак, я предполагаю, что bzr пытается запустить приложение в некоторой чистой среде, созданной на основе моего списка Build-Depends. И в этом списке отсутствует кое-что, что требуется для qt5 / plugins / platform / libqxcb.so .

Вопрос в том, что это может быть и как это отследить?
Я могу выполнить ldd на своем компьютере, но он мне нужен в среде bzr.

Вот журнал сборки https://pastebin.com/BVbZVwr6 Я вырезал середина процесса компиляции, чтобы соответствовать ограничениям размера вставки. Но с компиляцией все в порядке, это тест make не работает. Код тестов находится здесь: https://cutt.ly/BgYQITO

1
задан 29 October 2020 в 23:21

1 ответ

Среда здания является минимально чистой, в которой нет сервера отображения (X11, Wayland). Qt, похоже, не может обнаружить сервер отображения.

Я подозреваю, что эти тесты изображений запускают некоторые инструменты, которые требуют некоторых функций рабочего стола.

Потому что это первая попытка упаковать.

  • Включите отладку пакетов, используя: export DH_VERBOSE=1 в верхней части файла debian/rules.
  • Переопределите тестовый шаг DebHelper, чтобы пропустить его, пока не получите какие-то результаты, а затем исправьте это позже. Используя пустой override_dh_auto_test:

Ссылка: https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#rules

Если вы справитесь, попробуйте сначала включить тесты, которые не требуют сервера. Для полноценных тестов с display server, честно говоря опыта не хватает, раньше с таким не сталкивался. Либо все пакеты отключают это, либо есть решение, которого я не заметил.

1
ответ дан 29 October 2020 в 20:51

Другие вопросы по тегам:

Похожие вопросы: