milohr / babe-qt

This version is unmantained. The new version is now named VVAVE
https://phabricator.kde.org/source/vvave/
Other
140 stars 9 forks source link

Provide an AppImage for Linux #28

Open probonopd opened 7 years ago

probonopd commented 7 years ago

any extra help to package this app is welcome and I'm willing to solve any doubts or questions about it.

Have you thought or would you be interested in providing an AppImage? Providing an AppImage would have, among others, these advantages:

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

I'm happy to help to make this happen, if you are interested. AppImage developers are on #AppImage on irc.freenode.net.

you need to have [ taglib - knotification lib - ki18n lib - qt 5.8 libs ]installed in order to compile this app from source

Please give the exact apt-get command for Ubuntu 14.04 (trusty).

milohr commented 7 years ago

sure, sounds great. about the necessary packages in ubuntu: i don't know the exact name as i'm using arch linux. but i could make a quick search later...

probonopd commented 7 years ago

That would help me a tremendous lot. Thank you.

MichaelTunnell commented 7 years ago

This would be FANTASTIC! I haven't tried this app solely because of the effort in trying to compile it.

you need to have [ taglib - knotification lib - ki18n lib - qt 5.8 libs ]installed in order to compile this app from source

This part is confusing because I don't know which packages are needed so I simply just gave up trying to use it. If an AppImage was available I'd try right now and by the looks of it . . . switch to Babe.

mmetak commented 7 years ago

@MichaelTunnell Hi, I maintain the babe-git package in aur and it shouldn't be too hard to build it on ubuntu, I guess? Latest ubuntu (zesty) has qt5 at version 5.7.1.

These should be the dependencies you need:

Buildtime:

Runtime:

Runtime Qt:

Runtime KF5:

Install:

You get single executable file Babe which you run. I also added .desktop file if @milohr wants to include it upstream?

[Desktop Entry]
Name=Babe
Comment=Play your music collection
TryExec=Babe
Exec=Babe %U
Terminal=false
Type=Application
Icon=Babe
Categories=Qt;Audio;Music;Player;AudioVideo;
StartupNotify=true
MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;audio/x-flac;audio/x-vorbis+ogg;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/flac;audio/mp4;
# Generic name with translations
GenericName=Audio Player
GenericName[be]=Аўдыёпрайгравальнік
GenericName[bg]=Аудио плеър
GenericName[bs]=Audio plejer
GenericName[ca]=Reproductor d'àudio
GenericName[ca@valencia]=Reproductor d'àudio
GenericName[cs]=Zvukový přehrávač
GenericName[csb]=Grôcz aùdio
GenericName[da]=Lydafspiller
GenericName[de]=Audio-Wiedergabe
GenericName[el]=Αναπαραγωγή ήχου
GenericName[en_GB]=Audio Player
GenericName[eo]=Sonludilo
GenericName[es]=Reproductor de audio
GenericName[et]=Helifailide mängija
GenericName[eu]=Audio erreproduzigailua
GenericName[fi]=Musiikkisoitin
GenericName[fr]=Lecteur audio
GenericName[ga]=Seinnteoir Fuaime
GenericName[gl]=Reprodutor de audio
GenericName[he]=נגן שמע
GenericName[hne]=आडियो प्लेयर
GenericName[hu]=Zenelejátszó
GenericName[is]=Tónlistarspilari
GenericName[it]=Lettore audio
GenericName[ja]=オーディオプレーヤー
GenericName[km]=កម្មវិធី​ចាក់​អូឌីយ៉ូ
GenericName[ko]=오디오 재생기
GenericName[ku]=Lêdarê Muzîkê
GenericName[lt]=Muzikos grotuvas
GenericName[lv]=Audio atskaņotājs
GenericName[mai]=आडियो प्लेयर
GenericName[ms]=Pemain Audio
GenericName[nb]=Lydavspiller
GenericName[nds]=Klangafspeler
GenericName[ne]=अडियो प्लेयर
GenericName[nl]=Audiospeler
GenericName[nn]=Musikkspelar
GenericName[pa]=ਆਡੀਓ ਪਲੇਅਰ
GenericName[pl]=Odtwarzacz dźwięku
GenericName[pt]=Leitor de Áudio
GenericName[pt_BR]=Reprodutor de áudio
GenericName[ro]=Redare audio
GenericName[ru]=Аудиопроигрыватель
GenericName[sk]=Audio prehrávač
GenericName[sl]=Predvajalnik glasbe
GenericName[sq]=Lexues audio
GenericName[sr]=Аудио плејер
GenericName[sr@ijekavian]=Аудио плејер
GenericName[sr@ijekavianlatin]=Audio plejer
GenericName[sr@latin]=Audio plejer
GenericName[sv]=Musikspelare
GenericName[th]=เครื่องเล่นเสียง
GenericName[tr]=Müzik Çalar
GenericName[ug]=ئۈن قويغۇچ
GenericName[uk]=Аудіопрогравач
GenericName[wa]=Djouweu d' son
milohr commented 7 years ago

@mmetak The Babe repo has been moved to https://phabricator.kde.org/source/babe/ Thank you for the answer btw, I already included the .desktop file in the new repository :) @probonopd let me know if the instructions provided by mmetak worked for you and if something is missing I'm more than willing to help

mmetak commented 7 years ago

@milohr I've updated the aur package with new name babe-git and new repo. Also:

probonopd commented 7 years ago

@milohr @mmetak thanks for the pointers, but I am looking for copy-and-paste instructions on how to compile this on Ubuntu 14.04 (trusty). Something like

sudo apt-get install qt5-qmake qtbase5-dev qtmultimedia5-dev libkf5i18n-dev libkf5notifications-dev libtag1-dev libtag1v5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5multimedia5 libqt5network5 libqt5sql5 libqt5widgets5 libqt5xml5 libkf5notifications5 libkf5i18n5
cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
make DESTDIR=appdir install ; find appdir/

It seems like the libkf5* packages need to come from some external repository, can you please provide complete instructions for Ubuntu 14.04 (trusty)?

mmetak commented 7 years ago

@probonopd Ubuntu 14.04 (trusty) is too old. It has qt5 5.2.1 and cmake wants qt5 at least "5.5.0". Also KF5 libs should be newer than "5.24.0"... again trusty doesn't even have them in repo, it's that old.

probonopd commented 7 years ago

@mmetak it's ok to use newer libraries from ppas, e.g. https://launchpad.net/~beineri/+archive/ubuntu/opt-qt58-trusty

mmetak commented 7 years ago

@probonopd Didn't know there was that ppa, I'm not that familliar with ubuntu. Beside that qt58-trusty ppa you'll also need a ppa for KF5 for trusty? Is there one? The qt58-trusty is packaged somewhat differently than the official packages and is installed to /opt? Names are different and there are no -dev split packages so I assume those files are alread bundled?

All those Qt5 runtime dependencies I mentioned above seem to be in this one package qt58base + qt58multimedia

sudo apt-get install qt58base qt58multimedia libtag1-dev libtag1v5
## + the KF5 libraries and their respective names
cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
make DESTDIR=appdir install ; find appdir/

Sorry I can't be more helpful.

probonopd commented 7 years ago

@mmetak ok, so let's park this here until someone figures out how to build this on Travis CI using Ubuntu 14.04 or earlier. I am happy to help going from there.

mmetak commented 7 years ago

@probonopd Why not build it on KDE Neon User Edition or use their repos? It's based on Ubuntu LTS 16.04 and they have qt5-5.7.1 and latest stable KF5 libs 5.33.0 in their repos and they follow ubuntu packaging names.

probonopd commented 7 years ago

@mmetak then it will not run on any distribution before 2016. Also, Travis CI doesn't support it. https://github.com/travis-ci/travis-ci/issues/5821

mmetak commented 7 years ago

@probonopd I know that's how appimage works, but at least most users would be able to run it? babe-$version-ubuntu16.04-x86-64.AppImage or something Otherwise, you'll have a really hard time making it work on trusty.

probonopd commented 7 years ago

@mmetak well you could use linuxdeployqt on a local machine. But I am not interested in it since I don't assume most users have a 2016ish distribution yet. Hello, CentOS 7 users ;-)

probonopd commented 7 years ago

you'll also need a ppa for KF5 for trusty? Is there one?

https://github.com/chigraph/chigraph-gui uses kf5-release-gcc-linux64.tar.xz which might be worth a try: https://github.com/chigraph/chigraph/releases/download/dependencies/kf5-5.32.0-release-gcc-linux64.tar.xz

probonopd commented 7 years ago

Otherwise, we'd probably have to build KF5 ourselves. Perhaps @ScarlettGatelyClark or @russelltg can give us hints...

mmetak commented 7 years ago

kf5-release-gcc-linux64.tar.xz seems to be missing ´knotifications´ kf5 library?

mmetak commented 7 years ago

@probonopd Does it have to be ubuntu? Could it be centos 7 instead? They have qt5-5.6.1 and kf5-5.33.0 in epel/testing repo?

probonopd commented 7 years ago

It could be anything but if you want to use Travis CI (which would be most comfortable in my opinion), their default system is Ubuntu 14.04. You can run custom Docker containers there, though. But that adds download volume and build time.

probonopd commented 7 years ago

kf5-release-gcc-linux64.tar.xz seems to be missing ´knotifications´ kf5 library?

I just discovered it today myself. I have asked about it in https://github.com/chigraph/chigraph-gui/issues/15#issuecomment-294306818

russelltg commented 7 years ago

Hey! Yeah I've been using a precompiled tarball for CI for a while now. It does nto have knotifications, I'll add it though and reupload, probably to a new repo. I'll keep you posted :).

russelltg commented 7 years ago

Also if you just want to compile them manually you could tweak my build script (https://github.com/chigraph/chigraph-gui/blob/master/scripts/frameworks/build_frameworks.sh)

milohr commented 7 years ago

@mmetak not sure abut the right cmake lines for installing the .desktop file and icon: i wrote this:

install(FILES org.kde.babe.desktop DESTINATION PREFIX/share/applications/) install(FILES data/babe.svg DESTINATION PREFIX/share/icons/hicolor/scalable/apps/)

am i doing it right?

mmetak commented 7 years ago

@milohr something like that. I had to change lower case babe to Babe so that .desktop file would also work.

diff -ruN a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt    2017-04-16 05:38:47.000000000 +0200
+++ b/CMakeLists.txt    2017-04-16 06:09:30.000000000 +0200
@@ -83,6 +83,10 @@

 install(FILES org.kde.babe.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
+install(FILES org.kde.babe.desktop DESTINATION ${KDE_INSTALL_APPDIR})
+install(FILES data/babe.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps RENAME Babe.svg)
+
+
 # install_it.path = $$OUT_PWD
 # install_it.files = data/*
 #
@@ -121,14 +125,14 @@
    )

 add_executable (
-   babe
+   Babe
    ${babe_SRCS}
    )

-install(TARGETS babe ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS Babe ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})

 target_link_libraries (
-   babe
+   Babe
    Qt5::Core
    Qt5::Gui
    Qt5::Widgets
russelltg commented 7 years ago

Alright I'm working on it right now, the script is done just working on CI to automatically upload the tarballs. https://github.com/chigraph/precompiled-kf5-linux

russelltg commented 7 years ago

Precompiled packages are now available!

https://github.com/chigraph/precompiled-kf5-linux/releases/tag/precompiled