Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support "make install" for AppImage and upload to PPA debian package with shared libs for all ubuntu versions compatibility #2

Closed
probonopd opened this issue Jun 6, 2017 · 40 comments
Assignees

Comments

@probonopd
Copy link

probonopd commented Jun 6, 2017

I was trying to make an AppImage, but for this I need "make install" to work. It should install the application, the desktop file, and the icon. Can you please enable this? Then I can continue making the AppImage.

Here is the failed build log:
https://travis-ci.org/probonopd/ubunsys/builds/239783115#L990

@adgellida
Copy link
Owner

I'll keep that in mind. When it's done, I'll let you know.

@adgellida adgellida self-assigned this Jun 8, 2017
@adgellida
Copy link
Owner

I need external help for do it. Can you help me? I suppose I need a debian directory and with this I had problems in the past (no PPA for now for it). So, with your issue I'm on stand by.

@probonopd
Copy link
Author

No, you don't need deb packaging to support "make install". You can do it in the .pro file. For an example, check what https://github.com/probonopd/FeedTheMonkey/blob/master/FeedTheMonkey.pro does.

@adgellida
Copy link
Owner

Thanks for help, can you modify ubunsys.pro to be compatible with AppImage deploy? I need specific steps.

  1. Modify .pro which lines specificly?
  2. Have I to run this https://github.com/probonopd/linuxdeployqt?

@probonopd
Copy link
Author

Hi @adgellida if you can get "make install" to work (without anything specific to AppImage), I can then do the AppImage-specific steps.

@adgellida
Copy link
Owner

adgellida commented Jun 13, 2017

I don't know how get "make install" to work with your instruccions.

@adgellida
Copy link
Owner

I'm on holidays, when I returned I'll see it.

@adgellida
Copy link
Owner

adgellida commented Jul 9, 2017

  • .pro lines added:

target.path = /usr/bin

icon.path = /usr/share/pixmaps
icon.files = $$PWD/images/ubunsys.ico

desktop.path = /usr/share/applications
desktop.files += ubunsys.desktop

INSTALLS += target desktop icon

  • if you do:
    qmake
    make
    sudo make install

The app is installed

What I need to complete now? Thanks for help. Almost there

@probonopd
Copy link
Author

Does it also install the icon and desktop file?

@adgellida
Copy link
Owner

Of course, but I get 2 errors for icon and desktop, not file format recognized, but works ok.

@probonopd
Copy link
Author

Looks like a usr/share/pixmaps/ubunsys.ico is installed. Should be a png, and should be 256x256 pixels large, in usr/share/icons/hicolor/256x256/apps/ubunsys.png.

@adgellida
Copy link
Owner

Done.

@probonopd
Copy link
Author

AppImage:
https://transfer.sh/vMwNJ/ubunsys-git.751e2cc-x86_64.AppImage

Made with:
https://github.com/probonopd/ubunsys/blob/patch-1/.travis.yml

Issues:
Upon first launch it tries to install stuff using apt, rather than copming bundled with that stuff.
Also somehow it blindly assumes I am running zesty, which I am not.

@adgellida
Copy link
Owner

We finally got it! Cool, what have you done?

How did you make the final step to create the AppImage file? This way, I won't bother you each time I take out a new realease.

Yes this app has a lot of bugs. On next releases I'll fix a lot of things, add functionalities and redesign anothers. Now is on alpha status and I don't have almost experience. We are in touch.

Thanks for help.

@probonopd
Copy link
Author

We finally got it! Cool, what have you done?
How did you make the final step to create the AppImage file?

https://github.com/probonopd/ubunsys/blob/patch-1/.travis.yml

@adgellida adgellida added the bug label Aug 29, 2017
@adgellida
Copy link
Owner

I'll revisit this issue, I don't know when, very busy. Right now bugfixes, enhancements and other personal priorities needed before. Thanks for help and comprension.

@probonopd
Copy link
Author

Sure, no hurries.

@adgellida
Copy link
Owner

adgellida commented Sep 3, 2017

I'm here.

1.PPA operative. Only 16.04 and 17.04.
2.Appimage possible operative for all versions.
3.Deb package no operative for all versions. I need steps for create deb with linuxdeployqt like stacer app. When ok I'll do PPA for all versions.
4. Can you do linuxdeployqt compatible with 17.04? I had to use 14.04.

Can you help me in step 2 (your recommendation steps) and 3 (I don't now how, like your fpm example in your issue 9?).

I executed linuxdeployqt, and I can execute binary with libraries generated on any ubuntu, but if I try to package it manually permissions and linkage errors appear. With files separately ok, packaging on a deb error.

Thanks.

@probonopd
Copy link
Author

Can you make Ubunsys compile on Ubuntu 14.04? 17.04 is much too new, if you build on that it will never run on older systems.

@adgellida
Copy link
Owner

adgellida commented Sep 6, 2017

Yes. I need help for 2 and 3 yet.
I think this is that I need, but I have to adequate to ubunsys. DEB section is right now the most important to include libs on deb. Help on it will be really appreciated.
I need to use travis?

@probonopd
Copy link
Author

probonopd commented Sep 6, 2017

2.Appimage possible operative for all versions.

If we put binaries that were compiled on 14.04 into an AppImage, then the AppImage will run on 14.04 and all later versions.

3.Deb package no operative for all versions. I need steps for create deb with linuxdeployqt like stacer app. When ok I'll do PPA for all versions.

I can do this, once the application builds correctly on 14.04 - either as a ppa or (preferred) on Travis CI. See https://github.com/probonopd/linuxdeployqt/blob/master/README.md#using-linuxdeployqt-with-travis-ci for an example.

@adgellida
Copy link
Owner

adgellida commented Sep 6, 2017

Thanks another time! Incredible.
2. I know... I want to say compatible to generate no to execute.
3. If I configure travis and use your yml -> https://github.com/probonopd/ubunsys/blob/patch-1/.travis.yml how can I modify this yml to generate deb package compatible with 14.04 - 17.10 that integrates qt59 shared libs inside the deb?

@probonopd
Copy link
Author

It already does it. But it creates an AppImage, not a deb.

@adgellida
Copy link
Owner

adgellida commented Sep 6, 2017

And stacer and redtimer how created it? I asked them but no answer yet. They also have AppImage.

@adgellida adgellida assigned adgellida and unassigned adgellida Sep 7, 2017
@adgellida adgellida assigned probonopd and adgellida and unassigned adgellida and probonopd Sep 7, 2017
@adgellida
Copy link
Owner

adgellida commented Sep 7, 2017

@fathomssen and/or @oguzhaninan can you help me with this issue? debuild with shared libraries as in your debs. Integrate inside the deb the qt libraries

@oguzhaninan
Copy link

Hi,
Would you give a list of files created after using linuxdeployqt?

@fathomssen
Copy link

Hi

And stacer and redtimer how created it? I asked them but no answer yet. They also have AppImage.

Sorry, did not see your question - which issue are you referring to?

My approach, in general, works like this:

  1. Install Qt from ppa:beineri/opt-qt591-trusty (https://github.com/fathomssen/redtimer/blob/3767a5ef3ad1ef086583c17f1dbda04d10ff74f7/.travis.yml#L76-L84)
  2. Install FPM (https://github.com/fathomssen/redtimer/blob/3767a5ef3ad1ef086583c17f1dbda04d10ff74f7/.travis.yml#L98-L105)
  3. Create the AppImage (https://github.com/fathomssen/redtimer/blob/3767a5ef3ad1ef086583c17f1dbda04d10ff74f7/deploy/deploy.linux.sh#L20-L42)
  4. Create the deb/rpm files (https://github.com/fathomssen/redtimer/blob/3767a5ef3ad1ef086583c17f1dbda04d10ff74f7/.travis.yml#L76-L84)

Step 3 includes additional files that linuxdeployqt is missing (at least in the version that I used).

Step 4 uses the binaries created by linuxdeployqt which are also found in the AppImage package. Then the Debian and RedHat packages are created using FPM.

Best regards
Frederick Thomssen

@adgellida
Copy link
Owner

adgellida commented Sep 7, 2017

@fathomssen I sended you a message to an incorrect e-mail in your web. With your steps I don't see clear to do it in my case. Can you put the exact steps for my app? I'm very lost. Thanks 4 help on the same day!
@oguzhaninan can you be more clear than @fathomssen? Form me impossible to follow him. Sorry. Thanks 4 help on the same day!

Is this that you need?

seleccion_101

On lib

seleccion_102

plugins/imageformats

seleccion_103

plugins/platforms

seleccion_104

Now I have an AppImage and a deb done manual way and uploaded to a PPA, but I need to integrate libs to use the same deb on all ubuntu versions as I say above, not version specific seeing the version of qt on official repositories like now. @probonopd this way we'll learn the 2.

@oguzhaninan
Copy link

oguzhaninan commented Sep 9, 2017

I do it using Travis CI. It's my file.
If you are using a debreate, you can easily do it.
file-structure

Add to postinst file ln -sf "/usr/share/ubunsys/ubunsys" "/usr/bin/ubunsys"
Add to prerm file rm /usr/bin/ubunsys

My DEBIAN folder.

@probonopd
Copy link
Author

debs created like that are hardly ever compliant with the distributions' rules. I'd say, either do "real" packages in the way distributions want them, or use the bundling approach and do, e.g., an AppImage.

@oguzhaninan
Copy link

@probonopd You're right, but it's that much easier for beginners.

@adgellida
Copy link
Owner

adgellida commented Sep 9, 2017

@oguzhaninan thanks brother. I did it hours ago. With debreate ok, on another machine without qt works ok, but with debian rules I'm trying to push to my PPA and not done by now. Error finding plugins folder. No errors with lib folder. Hours trying... I suspect I need a modification on debian rules file, but which?

dh_install: Cannot find (any matches for) "plugins/imageformats/libqgif.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqgif.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqicns.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqicns.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqico.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqico.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqjp2.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqjp2.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqjpeg.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqjpeg.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqtga.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqtga.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqtiff.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqtiff.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqwbmp.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqwbmp.so dh_install: Cannot find (any matches for) "plugins/imageformats/libqwebp.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/imageformats/libqwebp.so dh_install: Cannot find (any matches for) "plugins/platforms/libqxcb.so" (tried in "." and "debian/tmp") dh_install: ubunsys missing files: plugins/platforms/libqxcb.so dh_install: missing files, aborting debian/rules:20: recipe for target 'binary' failed make: *** [binary] Error 2 dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 -------------------------------------------------------------------------------- Build finished at 20170909-0858 Finished -------- E: Build failure (dpkg-buildpackage died)

@oguzhaninan
Copy link

Can you send me the Debian file? with transfer.sh

@adgellida
Copy link
Owner

debian folder?

@oguzhaninan
Copy link

deb package

@adgellida adgellida changed the title Please support "make install" Support "make install" for AppImage and upload to PPA debian package with shared libs for all ubuntu versions compatibility Sep 9, 2017
@adgellida
Copy link
Owner

adgellida commented Sep 9, 2017

This night I'll send all necessary. Can also stacer have a PPA with shared libs? Thanks.

@adgellida
Copy link
Owner

adgellida commented Sep 9, 2017

@fathomssen @probonopd @oguzhaninan all necessary is on the code:

  • debian folder. Here we need a modification of rules file surely to build on launchpad with success.
  • debreate folder. Here is the project, not following debian rules.
  • @oguzhaninan you can use this case to put stacer on PPA not depending system libraries.
  • Next steps, snap and flatpak, xd.

@adgellida
Copy link
Owner

adgellida commented Sep 10, 2017

@fathomssen @probonopd @oguzhaninan, this is the status, last commit is the latest code:

  • PPA
    PPA with no shared libraries - OK. Using Qt 5.2.1 always.
    PPA with shared libraries - not possible for me.
  • deb
    17.04 deb usable in more versions.
  • AppImage. Pendant fix. *.desktop. Not updated.
  • optional
    flatpak - pending.
    snap - pending.

@adgellida
Copy link
Owner

For now always using Qt 5.2.1 libs from official sources for maximun compatibility and less work for packaging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants