Closed ghost closed 5 years ago
@Symbian9 - Hi there, The app is building with Travis CI on every push currently: https://travis-ci.org/PhotoFlare/photoflare/builds/
I did investigate AppImage before but I was unsure about the steps to take implementing it. I can look at this again if I have the time to research and implement it.
I did investigate AppImage before but I was unsure about the steps to take implementing it.
If you need any help with .travis.yml
script setup for AppImage — ask @probonopd, he really could help you! ;-)
Also, think, @aferrero2707 could help with AppImage as he already provide few builds for other FOSS apps
There are many other Qt apps, that already setup AppImage, listed on AppImage Hub:
Can you get it to build on Ubuntu trusty without
Then it should be easy. (Happy to help.)
This is needed because the resulting binaries will only run on newer, but not older, systems than the build systems. Hence one should always build on the oldest still-supported distribution.
@probonopd - I could go back to using certain methods supported on 16.04. https://github.com/PhotoFlare/photoflare/commit/7ab9a6d13bfb9529227083205001013e277451d7
I switched to using newer Qt methods for improved performance. Would I need to wait until 16.04 is unsupported before using the new methods again?
@DylanC @probonopd Sorry for joining the party a bit late... I am currently providing AppImages for a couple of Qt-based projects, and in both cases I am using a CentOS7 docker container for this.
You can see an example of working configuration here: https://github.com/aferrero2707/hdrmerge-ci
Let me know if something is not clear in the logic of the building and packaging scripts...
Since Ubuntu 14.04 is currently the oldest still-supported LTS release, it is recommended to use nothing newer than it for building, in order to maximize binary compatibility with all still-supported releases.
@probonopd - Although I would prefer 16.04 as the minimum version I can test 14.04 to see if this is possible. I can hold off those newer Qt methods until 18.04 becomes the oldest still supported LTS release.
@probonopd @DylanC as far as I can tell, the AppImages that I am building on CentOS7 run fine on Ubuntu 14.04, but they are based on a Glibc version lower than what Ubuntu 14.04 provides (2.17 instead 2.19, if I am not wrong...).
However, CentOS7 provides packages for Qt 5.9.2, if that is recent enough for you...
@aferrero2707 - Qt 5.9.2 should definitely be new enough for me. Ubuntu 14.04 has Qt 5.2.1 which is quite old now.
@Symbian9 @probonopd @aferrero2707 - I've gotten over the hump of releasing v1.5.6.1. I should be free to start on this soon. I will put back in those 16.04 support methods and see can we build on 14.04 or 16.04.
I will report back here on my findings. I also will make a start on a folder and appimage build script. Let me know how else we can proceed with this appImage generation.
Recent versions of Qt are available for 14.04, e.g., https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.11.0-xenial
Recent versions of Qt are available for 14.04, e.g., https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.11.0-xenial
You give link to Xenial (16.04)
Here is link for Trusty (14.04)
@probonopd @Symbian9 - I tried to update the travis ci file to just build it on trusty, however it is having trouble finding the packages on the PPA:
E: Unable to locate package qt511base
See the package names here: https://launchpad.net/~beineri/+archive/ubuntu/opt-qt-5.10.1-trusty
It's qt510base
.
Started work at
https://github.com/probonopd/photoflare/blob/f3df3cb2430d7abbba50f2bfa1e32e93e13a5d77/.travis.yml
but getting a compile error:
src/managers/FilterManager.cpp: In member function ‘QImage FilterManager::fitImage(const QImage&)’:
src/managers/FilterManager.cpp:388:18: error: ‘class Magick::Image’ has no member named ‘thumbnail’
magickImage->thumbnail(Magick::Geometry(640,400,0,0,false,false));
^
src/managers/FilterManager.cpp: In member function ‘QImage FilterManager::cropToCenter(const QImage&)’:
src/managers/FilterManager.cpp:465:18: error: ‘class Magick::Image’ has no member named ‘extent’
magickImage->extent(Magick::Geometry(640,400,0,0,false,false),Magick::Color(127,127,127),Magick::StaticGravity);
^
src/managers/FilterManager.cpp: In member function ‘QPolygon FilterManager::selectArea(const QImage&, const QPoint&, int, bool)’:
src/managers/FilterManager.cpp:773:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0; j<magickImage->rows(); j++)
^
src/managers/FilterManager.cpp:776:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0; i<magickImage->columns(); i++)
^
src/managers/FilterManager.cpp:783:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if((i == magickImage->columns() - 1) && marked)
^
src/managers/FilterManager.cpp:786:75: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
if(magickImage->pixelColor(i,j) == Magick::ColorRGB (0, 0, 0) && !marked ||
^
src/managers/FilterManager.cpp:801:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if((i == magickImage->columns() - 1) && marked)
^
src/managers/FilterManager.cpp:804:74: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
if(magickImage->pixelColor(i,j) == Magick::ColorRGB(0, 0, 0) && !marked ||
^
src/managers/FilterManager.cpp: In member function ‘QImage FilterManager::floodFillOpacity(const QImage&, const QColor&, int)’:
src/managers/FilterManager.cpp:829:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=0; j<magickImage->rows(); j++)
^
src/managers/FilterManager.cpp:831:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0; i<magickImage->columns(); i++)
^
src/managers/FilterManager.cpp: At global scope:
src/managers/FilterManager.cpp:593:28: warning: ‘MagickLib::ChannelType channelById(int)’ defined but not used [-Wunused-function]
static Magick::ChannelType channelById(int channelId)
^
make: *** [FilterManager.o] Error 1
make: *** Waiting for unfinished jobs....
https://travis-ci.org/probonopd/photoflare/builds/466290284#L886
Could it be that it needs a newer GraphicksMagick than what comes with Ubuntu trusty? Can you please downgrade the requirement @DylanC?
If worst comes to worst we need to compile hhttp://www.graphicsmagick.org on our own.
@probonopd - I would prefer not to downgrade Graphicsmagick as that would mean removing PhotoFlare features from the latest released version. Do we have to go as far back as trusty or could we use xenial?
Currently the oldest still-supported LTS release is trusty so we recommend that. I guess we can compile http://www.graphicsmagick.org there.
Compile this application on Travis CI upon each
git push
, and upload an AppImage to your GitHub Releases page.Providing an AppImage would have, among others, these advantages:
appimaged
--appimage-extract
parameterHere is an overview of projects that are already distributing upstream-provided, official AppImages.
TODO
PLEASE NOTE: For this to work, you need to enable Travis CI for your repository as described here prior to merging this, if you haven't already done so. Also, You need to set up
GITHUB_TOKEN
in Travis CI for this to work; please see https://github.com/probonopd/uploadtool.If you have questions, AppImage developers are on #AppImage on irc.freenode.net.