MrS0m30n3 / youtube-dl-gui

A cross platform front-end GUI of the popular youtube-dl written in wxPython.
The Unlicense
9.27k stars 1.58k forks source link

Release snap/nix/appimage/flatpak/standalone packages #304

Open TerkiKerel opened 6 years ago

TerkiKerel commented 6 years ago

Hi,

Is there any possibility to create one or more packages for:

Thank you

nodiscc commented 6 years ago

See also https://github.com/MrS0m30n3/youtube-dl-gui/labels/packaging

Snake883 commented 4 years ago

+1

philipzae commented 4 years ago

To package for appimage, you can have a look at this. https://github.com/probonopd/linuxdeployqt

philipzae commented 4 years ago

A dev in the #appimage irc channel on freenode mentioned that the below link would be useful. https://github.com/niess/linuxdeploy-plugin-python

TheAssassin commented 4 years ago

linuxdeployqt is not meant to be used for Python.

linuxdeploy is a plugin-based, modern approach on making AppImages. There are two Python plugins available, one of them being @niess's Python plugin. We've made many AppImages for Python-based software already. Please see https://github.com/linuxdeploy/awesome-linuxdeploy#projects-using-linuxdeploy for a (very incomplete) list of projects using linuxdeploy, two of them being based on Python even.

niess commented 4 years ago

@philipzae A first step could be to build a wheel of your Python package on one of the manylinux Docker images. Auditwheel can list & to some extent fix (repair) the binary dependencies.

Bundling a properly wheeled package into an AppImage is rather simple. One can just extract an existing Python image, pip install to it and repack it. For example, this works (almost) for PyQt5 as discussed here.

As a bonus you would also be able to distribute the wheel directly over PyPI.

Yet, it looks like one of your dependencies, wxPython, is not so easy to wheel. See for example "Yes we have Linux wheels. Sort of". The text however refers to a very old version of manylinux (manylinux1) not even supported by appimagetool. Meanwhile there is manylinux2010 & manylinux2014. PyQt5, for example ships as a wheel using the manylinux2014 image, as can be seen when checking the downloads on PyPI.