xstudio icon indicating copy to clipboard operation
xstudio copied to clipboard

Please provide an AppImage

Open lukas-remis opened this issue 2 years ago • 16 comments

An AppImage of xstudio would be much appreciated. Thank you!

lukas-remis avatar Jan 21 '23 14:01 lukas-remis

Hi Lukas, we will look into. We have some doubts about the licensing of Qt and ffmpeg which could mean that we are unable to distribute binaries.

tedwaine avatar Jan 21 '23 14:01 tedwaine

AppImages are problematic because of static linking which is not allowed by ffmpeg due to patent rights etc. On the other hand, Qt for Open Source projects is dual licensed under GPL and LGPL and there are several AppImages available.

Problem with ffmpeg could be potentially resolved if xstudio switched to gstreamer.

heavyrain266 avatar Jan 22 '23 12:01 heavyrain266

Well Kdenlive is available as Appimages and it's using ffmpeg. I think the LGPL license allows to use it with open and proprietary software ?

lukas-remis avatar Jan 23 '23 07:01 lukas-remis

Isn't Kdenlive made by Qt authors? That means a lot in this case. Also problem with ffmpeg comes from patents which prevents you from static linking.

heavyrain266 avatar Jan 23 '23 09:01 heavyrain266

How about a deb package ?

lukas-remis avatar Jan 23 '23 11:01 lukas-remis

As long as you link system deps (dylib) as rpm or deb then that could work but still, safest way it to provide the source code as tarball with instructions for sysadmins and thats it.

heavyrain266 avatar Jan 23 '23 11:01 heavyrain266

Sure, as long as you have a sysadmin, or enough time to take care of compiling it by yourself ;)

lukas-remis avatar Jan 23 '23 11:01 lukas-remis

I could (maybe) create an appimage - would this satisfy the bounty?

domo5581 avatar Apr 09 '23 20:04 domo5581

If it works, definitely yes!

lukas-remis avatar Apr 09 '23 21:04 lukas-remis

Will get to it, expect it in 2-3 weeks

domo5581 avatar Apr 10 '23 21:04 domo5581

After making it an AppImage, how can i provide the app to you?

eren-ince avatar Apr 22 '23 20:04 eren-ince

I think you should do it through bountysource.

lukas-remis avatar Apr 22 '23 20:04 lukas-remis

Hello,

I think your build system is not set up as such to make an appimage easy. It does not follow the recommended way to build qt with cmake (https://doc.qt.io/qt-6/cmake-get-started.html). This means QT can't find modules such as xcb and won't link against it (which means linuxdeploy won't find it either).

I tried to run it in headless mode (-e) and got warnings/errors like: http://sprunge.us/iuyx2l

cheseo avatar May 12 '23 14:05 cheseo

The application itself isn't really made to "become" and appimage. I tried the way at appimagecrafters recommends to create appimages, but bundling binaries and finding modules are a mess

domo5581 avatar May 13 '23 02:05 domo5581

The thing is, this application runtime logic / CMake scripts are not ready for being relocatable. App runtime itself relies on hardcoded paths. While AppImage mounts squashfs into /tmp/.mount-appimaXXXXXX CMake has 2 logics, one for being able to run xstudio from build directory and another one after installation. It also requires python/libpython installed inside AppImage in a way that it's portable (no hardcoded paths) with all xstudio python package py dependencies. (e.g. fully relocatable portable virtual env).

Also can't find xstudio.core.__pybind_xstudio out of the box.

krab@debvm:~/_dev/xstudio-appimage/xstudio-v.0.11.1/build$ PYTHONPATH=/home/krab/_dev/xstudio-appimage/xstudio-v.0.11.1/build/bin/python/local/lib/python3.11/dist-packages/:/home/krab/_dev/xstudio-appimage/xstudio-v.0.11.1/build/bin/python/lib/python3.11/site-packages/ ./bin/xstudio.bin 
[2023-07-21 02:08:11.555] [xstudio] [info] XStudio logging started.
[2023-07-21 02:08:11.767] [xstudio] [info] API enabled on 127.0.0.1:45500, session name default0
[2023-07-21 02:08:11.775] [xstudio] [warning] void xstudio::embedded_python::EmbeddedPython::setup() Failed to setup API : ModuleNotFoundError: No module named 'xstudio.core.__pybind_xstudio'

At:
  /home/krab/_dev/xstudio-appimage/xstudio-v.0.11.1/build/bin/python/local/lib/python3.11/dist-packages/xstudio/core/__init__.py(7): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1152): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1178): _find_and_load
  /home/krab/_dev/xstudio-appimage/xstudio-v.0.11.1/build/bin/python/local/lib/python3.11/dist-packages/xstudio/connection/__init__.py(7): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1152): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1178): _find_and_load
  <string>(4): <module>
 
[2023-07-21 02:08:11.776] [xstudio] [warning] void xstudio::embedded_python::EmbeddedPython::setup() Failed to setup API : ModuleNotFoundError: No module named 'xstudio.core.__pybind_xstudio'

At:
  /home/krab/_dev/xstudio-appimage/xstudio-v.0.11.1/build/bin/python/local/lib/python3.11/dist-packages/xstudio/core/__init__.py(7): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1152): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1178): _find_and_load
  /home/krab/_dev/xstudio-appimage/xstudio-v.0.11.1/build/bin/python/local/lib/python3.11/dist-packages/xstudio/connection/__init__.py(7): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1152): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1178): _find_and_load
  <string>(4): <module>
 
[2023-07-21 02:08:11.776] [xstudio] [warning] bool xstudio::embedded_python::EmbeddedPython::connect(int) Failed to init API : NameError: name 'Connection' is not defined

At:
  <string>(3): <module>
 
[2023-07-21 02:08:11.777] [xstudio] [warning] Connected failed false
[OpenColorIO Info]: Color management disabled. (Specify the $OCIO environment variable to enable.)
[2023-07-21 02:08:13.439] [xstudio] [info] XStudio UI launched.

krab avatar Jul 20 '23 23:07 krab

Instead of an AppImage I have create a flatpak application. Please see #54

jankobler avatar Sep 12 '23 14:09 jankobler