LINUX.ORG.RU

Нужна помощь в создании пакетов .deb и Appimage для Cine Encoder 2020

 , ,


0

1

Всем привет!

Я застрял я на создании пакетов .deb и Appimage для Cine Encoder. Программа написана на Python3, что-то не понятно даже с чего начать. Кругом какая-то разрозненная информация, не могу в кучу всё собрать, чтоб можно было пошагово это сделать.

Я слегка отстал от жизни, но когда я собирал с помощью distutils+stdeb, всё было очень просто: python setup.py --command-packages=stdeb.command bdist_deb + stdeb.cfg и мб MANIFEST.in.

Но вообще, я предпочитаю собирать ручками, прописывая control-file, складывая всё нужное во временную директорию и делая fakeroot dpkg-deb --build $TMP_DIR, могу дать пример (но не гарантирую 100% кошерности. наверняка, найдутся лоровцы поопытнее, которые какахами закидают).

Для AppImage все нужные инструкции есть здесь, но лично я не осилил средней сложности приложение упаковать адекватно вручную. А ты, как я вижу, какой-то билдер нашел, он не работает?

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 2)
Ответ на: комментарий от WitcherGeralt

Этот вариант с setup.py для .deb сейчас рассматриваю как основной, но не понятно каким образом в setup.py прописать зависимости: ffmpeg, mkvtoolnix, mediainfo, python-pyqt5, pymediainfo, так же не понятно как задать в этом случае файл .desktop. Что касается Appimage, то там вообще всё тяжело. Пробовал сделать через программу appimage-builder, но она толком не работает, не подтягивает зависимость ‘mkvtoolnix’, а остальные зависимости старых версий только устанавливает, в общем, полная ерунда получается. Хотел также через Appimagekit, но разработчик сказал, что это низкоуровневая программа и не подходит для моего случая.

Oleg1980 ()
Последнее исправление: Oleg1980 (всего исправлений: 1)
Ответ на: комментарий от Oleg1980

В зависимости setuptools по идееи и должен уметь, в этом вся соль, а для distutils они прописываются в stdeb.cfg — в точности как в control-file.

не понятно как задать в этом случае файл .desktop

В параметре data_files в setup.py.

Если ты сам уже задолбался и примешь pull-реквест, я, в принципе, могу попробовать тряхуть стариной.

WitcherGeralt ★★ ()
Ответ на: комментарий от Oleg1980

А то, что ты в ридми готовым архивом предлагаешь качать — это Qt Creator собирает без пердолинга? На случай, если я до сборки AppImage доберусь.

Если ты не торопишься, то забей, я за выходые точно доползу до пеки с убунтой и запилю deb, а заодним и rpm.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Хорошо, тогда вообще супер. С Qt Creator еще не работал. Файлы в архивах - это исполняемые бинари я сделал через Nuitka (аналог Pyinstaller). Сейчас обновлю бинарь для версии 2.1.

Oleg1980 ()
Последнее исправление: Oleg1980 (всего исправлений: 6)
Ответ на: комментарий от Oleg1980

К сожалению, возникла проблема на этапе сборки ffmpeg с –enable-nvenc и заголовками из https://git.videolan.org/git/ffmpeg/nv-codec-headers.git Разбираться особо нет желания, если честно.

Также удивлён, что mkvtoolnix и ffmpeg используются через вызов утилит. Не то чтобы это такая проблема, но всё-таки.

anonymous ()
Ответ на: комментарий от anonymous

Также удивлён, что mkvtoolnix и ffmpeg используются через вызов утилит. Не то чтобы это такая проблема, но всё-таки.

А какие варианты еще есть? у меня например используется библиотека pymediainfo, но она так же требует наличия установленной консольной утилиты mediainfo

Oleg1980 ()
Последнее исправление: Oleg1980 (всего исправлений: 2)
Ответ на: комментарий от Oleg1980

А какие варианты еще есть?

Применительно к ffmpeg конечно есть — прямая работа с вызовами libavcodec/libavformat/etc. Плюсы — чуть меньшие накладные расходы (один процесс вместо двух) и возможность более гибко управлять процессом, а не просто посылать сигнал. Минусы — в своё время API ffmpeg часто и с удовольствием ломали, в последних версиях не знаю как. Ну и твой код будет многословнее, конечно.

hobbit ★★★★★ ()