AppImage for most Linux distributions

probono

New Member
AppImage http://appimage.org/ is a format for bundling Linux applications so that they can run on a wide variety of Linux distributions. Providing an OBS Studio AppImage would have, among others, these advantages:
  • Works for most Linux distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable (http://discourse.appimage.org/t/how-to-make-an-appimage-executable/80), and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Just one format for all major distributions
  • Works out of the box, no installation of runtimes needed
  • Optional(!) desktop integration with `appimaged`
  • Binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can GPG2-sign your AppImages (inside the file)
  • Runs from Live ISOs
Here is an overview of projects that are already distributing upstream-provided, official AppImages:
https://github.com/probonopd/AppImageKit/wiki/AppImages

I have generated an experimental OBS Studio AppImage:
https://bintray.com/probono/AppImages/OBS/_latestVersion#files
Just download the AppImage file, set the executable bit, and run.
Please let me know how it goes, it is expected that some fine-tuning may still be needed.

This is based on the binaries in the trusty ppa, and has been converted using these settings:
https://github.com/probonopd/AppImages/blob/master/recipes/meta/OBS-Studio.yml

Do you think this would be useful?
I'd be happy to help producing an official OBS Studio AppImage.
 

Felipe Vieira

New Member
I have tried yout AppImage version on openSUSE 42.2, and it failed to start:


Code:
felipe@openSUSE:~/Downloads> ./OBS-0.16.2.1.glibc2.14-x86_64.AppImage
./bin//obs.wrapper: line 121:  7497 Abortado                (imagem do núcleo gravada)LD_LIBRARY_PATH="" zenity --question --title="$TITLE" --text="$TEXT" 2> /dev/null
./bin//obs.wrapper: line 121:  7502 Abortado                (imagem do núcleo gravada)LD_LIBRARY_PATH="" zenity --question --title="$TITLE" --text="$TEXT" 2> /dev/null
/tmp/.mount_ft7906/usr/bin/obs: /usr/lib64/libcurl.so.4: no version information available (required by /tmp/.mount_ft7906/usr/bin/obs)
/tmp/.mount_ft7906/usr/bin/obs: /lib64/libcrypto.so.1.0.0: no version information available (required by ./lib/x86_64-linux-gnu/libssh.so.4)
/tmp/.mount_ft7906/usr/bin/obs: symbol lookup error: /usr/lib64/libpangoft2-1.0.so.0: undefined symbol: hb_buffer_set_cluster_level
felipe@openSUSE:~/Downloads>

However, AppImage of OBS looks a great idea. I'm having some trouble with OBS on Linux, and i believe AppImage/Flatpak/Snap editions are the future for stand-alone apps.
 

LinuxCammer

New Member
I love the idea probono. I will test it out on KDE Neon later today.
It worked great for me with KDE Neon. I think this would be great to use as a way to test the newest unreleased versions of OBS. I don't know how much work it was for you to package this together, but I'd be happy to test OBS beta versions as an appimage.

Thanks for your work Probono.
 

probono

New Member
Thanks Felipe Vieira for reporting this. Added libpangocairo-1.0-0 and libpangoft2-1.0-0 to the AppImage in an effort to solve this. Please let me know if it does.

Possibly I also need to bundle libcurl.so.4...
 
Last edited:

bradjensen68

New Member
I am confused as to how this works. I have dowloaded the package and set it to be executable. When I click on it, it asks me which application I want to use to open it.
 

probono

New Member
That is strange. If the executable bit it set, then it should execute as an application. Which distribution are you using? 64-bit?
 

tuompe

New Member
Hi probono, i installed obs appimage but when i try to open the app, nothing happens, what do i do? Please help D:
 

ale

New Member
the appimage -- as downloaded from the link above -- does work for me on debian testing...
 
Last edited:

probono

New Member
The AppImage linked above bundles some libraries that should not be bundled. Deleting those makes it work (I have successfully tested that on Xubuntu 16.04). However, I cannot seem to generate and upload a corrected AppImage since I am now getting "broken packages" when trying to use the Ubuntu trusty (14.04) PPA, the binaries of which I use as the ingredients for putting together the contents of the AppImage.

https://travis-ci.org/AppImage/AppImages/builds/462407292#L854-L1027

Any clues?

Also, are the OBS developers interested in collaborating on making a "proper", officially-supported AppImage?
 

probono

New Member
In the meantime, I have ditched the idea of converting the deb from the ppa, and have sent a pull request that will produce and upload a continuous AppImage for each Travis CI build:

https://github.com/obsproject/obs-studio/pull/1565

obs.png


Some initial glitches are expected as the AppImage has not been tested on many systems by me so far, but I think it should be relatively easy now to fix anything that might remain - especially with the help of some experienced OBS users and/or developers.
 

trouserdog

New Member
I am confused as to how this works. I have dowloaded the package and set it to be executable. When I click on it, it asks me which application I want to use to open it.
 

probono

New Member
What happens if you do:

Code:
# Download
wget -c https://github.com/$(wget -q https://github.com/probonopd/obs-studio/releases -O - | grep "OBS_Studio.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)

# Set the executable bit (can also do that in the GUI)
chmod +x OBS_Studio-*-x86_64.AppImage

# Set the executable bit (can also just double-click in the GUI)
./OBS_Studio*-x86_64.AppImage
 
Last edited:

ton848

New Member
I was searching for an appimage/ flatpak for OBS. So nice you're working on this. I've tried it on my centos 7 system but it doesn't launch. I'm getting this:

./OBS_Studio-987ccdd-x86_64.AppImage
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./bin/obs)
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./bin/obs)
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libobs-frontend-api.so.0)
./bin/obs: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libQt5Core.so.5)
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libsnappy.so.1)
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libopenmpt.so.0)
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libopenmpt.so.0)
./bin/obs: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libchromaprint.so.0)
./bin/obs: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libicui18n.so.55)
./bin/obs: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libicuuc.so.55)
./bin/obs: /lib64/libgpg-error.so.0: no version information available (required by /tmp/.mount_OBS_StyIJBW5/usr/bin/../lib/libgcrypt.so.20)

Thanks!!
 

probono

New Member
The OBS developers had requested to use Ubuntu xenial rather than Ubuntu trusty for building the AppImage, and as a result the AppImage will need newer versions of those libraries than what comes with your CentOS 7 system. Please try on a later system if you cannot update your libstdc++.so.6.
 

probono

New Member
Icons should be fixed now. Please try and give feedback.

Code:
# Download
wget -c https://github.com/$(wget -q https://github.com/probonopd/obs-studio/releases -O - | grep "OBS_Studio.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)

# Set the executable bit (can also do that in the GUI)
chmod +x OBS_Studio-*-x86_64.AppImage

# Set the executable bit (can also just double-click in the GUI)
./OBS_Studio*-x86_64.AppImage
 
Top