Giter Site home page Giter Site logo

Comments (37)

karam72 avatar karam72 commented on August 12, 2024 9

Any updates?

The only way to use without root password is to have AppImage. On my company they don't allow use to have root password. So ı can not install Foliate.

Also AppImage allow to run multiple version of Foliate on the same OS user without installing/re-installing the app.

from foliate.

sid-the-sloth avatar sid-the-sloth commented on August 12, 2024 8

too bad, it's a great app, lots of people would have used the AppImage, but the vision (dev to dev opinion here) is rather limited (gnome, flatpak... latest & greatest)... so then -- "goodbye and thanks for all the fish!"

will continue using calibre.

from foliate.

Moonbase59 avatar Moonbase59 commented on August 12, 2024 6

Just a quick +1 from me: Many Linuxers will prefer an AppImage over Snap or FlatPak anytime! (Although I currently use the PPA .deb on my Linux Mint machines.)

from foliate.

probonopd avatar probonopd commented on August 12, 2024 2

Hello @johnfactotum please always build on the oldest, not the newest, operating system releases that your users might be running. We recommend no newer than the oldest still-supported LTS release of Ubuntu, which at this time is xenial. Otherwise the AppImage will not run on all still-supported LTS releases of Ubuntu, and will fail the automated tests on https://github.com/AppImage/appimage.github.io.

So I suggest to first make it build on xenial, then I can help you with turning it into an AppImage.

from foliate.

TheAssassin avatar TheAssassin commented on August 12, 2024 2

@itprojects @johnfactotum feel free to pass by on IRC, #appimage on Freenode, where we can interactively help you. Also see https://docs.appimage.org for more information (no specific GJS information (yet, if you want to make one, be our guest), but lots of other useful information).

from foliate.

chromer030 avatar chromer030 commented on August 12, 2024 2

Any update on this ?

from foliate.

itprojects avatar itprojects commented on August 12, 2024 1

@johnfactotum Since this thread is under "help wanted", the following bash script has been made. It produces binary .deb files which have been tested and work. Minimal effort required!
package.deb.sh.txt

from foliate.

itprojects avatar itprojects commented on August 12, 2024 1

Can you add the following Debian/Ubuntu instructions:

Prepare the environment:

sudo apt-get install meson gettext build-essential devscripts libglib2.0-dev debhelper

Download foliate form github

Unarchive foliate-master.zip

cd foliate-master

dpkg-buildpackage -us -uc -nc

Package is found in foliate-master:

com.github.johnfactotum.foliate_1.3.1_amd64.deb

Install with:

sudo dpkg -i ./com.github.johnfactotum.foliate_1.3.1_amd64.deb

from foliate.

TheAssassin avatar TheAssassin commented on August 12, 2024 1

@johnfactotum the issue you mention is about evaluating whether there's a need for a plugin to bundle resources aside from shared object libraries, which are already bundled just fine. We're making AppImages for many GTK based software already, a recent example is Xournal++ (using appimagecraft).

For GJS, as you say, a runtime must be bundled as well. Therefore, there is the need for a specific plugin. If it's only one program that needs to be bundled with the libraries it depends on, it's really really simple.

As a first attempt, we could try to write a bundling script that uses linuxdeploy to create an AppDir and bundle GJS's binary, then copy in your scripts and call linuxdeploy a second time to make the AppImage.

I'm happy to help you, I'll be on IRC for the next hours (I guess at least ~6 hours from now), with minor interruptions. I can write the script quickly but I will need some input from you during the process.

from foliate.

probonopd avatar probonopd commented on August 12, 2024 1

The OBS also has some mechanism to create AppImages, but I can't figure that out.

Please check https://docs.appimage.org/packaging-guide/hosted-services/opensuse-build-service.html

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

I'm interested in providing an AppImage, but I'm also at a complete loss as to how to make one.

Foliate uses Meson and follows the GJS Application Packaging Specification. With Flatpak, this pretty much just works, which is why I was able to get it on Flathub very quickly and easily. Making Snaps, debs, and AppImages is much more involved, particularly because there aren't any templates that I can follow and also of the fact that I don't use Ubuntu personally, and I'm not very familiar with it.

I'd appreciate it if anyone can provide any help with this.

from foliate.

itprojects avatar itprojects commented on August 12, 2024

@probonopd Can you make a Debian/Ubuntu PPA with the script in the comment above?

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

Is it possible to build a source package instead? I think the -- whatever tool you'd use to make debs -- does support Meson? Or maybe configure Meson to install things inside a directory and then build the deb from there? Redoing all what's currently done by Meson by hand seems a bit unsatisfactory to me.

from foliate.

itprojects avatar itprojects commented on August 12, 2024

-- whatever tool you'd use to make debs --
Do you mean the package.deb.sh? It has a (file)name, you know...

If the meson can produce the folder (and it possibly can) than packaging should be easy.

Work on deb source will require a veteran debian maintainer...

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

Do you mean the package.deb.sh? It has a (file)name, you know...

No, I mean like Debhelper, or maybe other related tools.

from foliate.

itprojects avatar itprojects commented on August 12, 2024

Those ones we might not need. Meson should be able to handle it entirely.

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

@probonopd Foliate should now be able to build and run on Bionic without any problem. I've also added the debian/ directory for building .debs. I know that ideally we should try and make it work on Xenial, but maybe we can target Bionic first and go from there?

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

Understood. Thanks for the clarification.

from foliate.

probonopd avatar probonopd commented on August 12, 2024

Did you test this in xenial @itprojects?

from foliate.

itprojects avatar itprojects commented on August 12, 2024

Tested with Ubuntu 19.04

from foliate.

probonopd avatar probonopd commented on August 12, 2024

Can you please test with Ubuntu 16.04? That is what it needs to build on if we want to make an AppImage that runs on all still-supported Ubuntu versions.

from foliate.

itprojects avatar itprojects commented on August 12, 2024

Attempted to test on Ubuntu 16.04. Failed.

16.04 has:
meson version = 0.29.0 (Required meson_version: '>= 0.40.0')
gjs = 1.44.0 (bigger problem!)

from foliate.

itprojects avatar itprojects commented on August 12, 2024

Attempted to test on Ubuntu 18.04 (Bionic). Success.

from foliate.

probonopd avatar probonopd commented on August 12, 2024

That's exactly the experience I'm having with Meson all the time. Someone needs to ensure it works on anything but the latest bleeding edge systems.

from foliate.

itprojects avatar itprojects commented on August 12, 2024

For Ubuntu 16.04, the support left seems to be for security patches, not new packages. To make it worse that version of Ubuntu does not use the gnome-shell by default, that's bad.

from foliate.

itprojects avatar itprojects commented on August 12, 2024

@probonopd Do you know how to make an AppImage for Bionic?

from foliate.

probonopd avatar probonopd commented on August 12, 2024

Build on xenial. The resulting AppImage will also run on bionic and subsequent versions.

from foliate.

TheAssassin avatar TheAssassin commented on August 12, 2024

I'd just build on bionic, and move on from there. As in, get something to work on a vast majority of systems, then try to make it work on older systems. Being annoying at first and preventing someone from building something that works for the vast majority of systems is counterproductive.

I hadn't heard of GJS before, but I guess it should be fairly easy to create a linuxdeploy plugin, if there's a need for one. Does GJS need a special runtime, or does meson automatically produce a binary that "just runs"? If the latter applies, then a simple meson install (or however that works) into a DESTDIR (CMake/autotools term) followed by an appimagetool call should bring you somewhere already.

The tests @probonopd mentions are only relevant if you want your AppImage listed in his AppImageHub. @probonopd is quite picky on where AppImages need to be able to run, e.g., to make sure only AppImages that run fine on the oldest Ubuntu LTS are listed.
As a start, however, there's no need to get in there yet. Just get going. You can always then work on your CI/CD workflow. I guess you just need to build meson and perhaps some of GJS yourself to get things to work.

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

@TheAssassin Thanks a lot for the help! To be honest the documentation is a bit confusing to me, and there's very little on GTK apps.

There's no binary for Foliate itself, per se. It's really just a script that will be run by GJS. I suppose to make an AppImage one has to bundle GJS with all the GTK libs that it depends on? And then also WebKitGTK, which is the other runtime dependency.

I see there's an open issue on creating a GTK plugin for linuxdeploy? Because Foliate is really just a pretty standard GTK application. Well, maybe except the fact that it uses GJS. But there are plenty of GNOME apps that use GJS, notably Polari and Gnome Maps, among several others, and they all use Meson and follow the same standard package specification. So it'd be great if there's some tool that will "just work" for creating AppImages for these apps.

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

Thanks! I've actually never used IRC before, but I guess there's a first time for everything.

from foliate.

TheAssassin avatar TheAssassin commented on August 12, 2024

It's still very popular among free software communities. You can just use the webchat, or get a real client.

from foliate.

stevenpusser avatar stevenpusser commented on August 12, 2024

If you do still want a proper way to build deb packages with debhelper, there's my OBS repo:

https://build.opensuse.org/project/show/home:stevenpusser:Foliate

You can get the source files here: https://download.opensuse.org/repositories/home:/stevenpusser:/Foliate/xUbuntu_18.04/

The OBS also has some mechanism to create AppImages, but I can't figure that out.

Fedora has also been packaging it--is there some way to create AppImages from their builds?

https://repology.org/project/foliate/versions

from foliate.

sdwolfz avatar sdwolfz commented on August 12, 2024

Does anybody actually have an example of a gjs application that's successfully packaged as an AppImage to showcase for inspiration?

I'm trying to build one but failing, between the segfaults I'm getting and the different behavior in Ubuntu 20.04 vs Manjaro; I don't really see how this can be done in practice....

from foliate.

gerardbm avatar gerardbm commented on August 12, 2024

+1 for the AppImage.

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

Closing this as at this point it's not really planned anymore.

Note that if you do have a system that runs a recent enough version of GNOME, you can definitely run Foliate without root. In the stable version you can install to a local directory, and with new gtk4 branch you can even run directly from the source tree, no build step necessary.

If you run an old LTS system, I'm guessing that it might not be easy or possible to run a recent enough GNOME stack, even with AppImage. At any rate it seems to be against AppImage's philosophy to use the latest platform libraries. So in this case — since I'm not planning on supporting these older platforms — you would probably do better with a containerized solution like Flatpak.

Alternatively, if you have a recent enough web browser, you could try the new online reader: https://johnfactotum.github.io/foliate-js/reader.html. It's currently very lacking in features but it does work for opening and reading e-books, without having to install or download any software.

from foliate.

probonopd avatar probonopd commented on August 12, 2024

At any rate it seems to be against AppImage's philosophy to use the latest platform libraries.

Well, I'd say it's best practice for developing anything to target not the latest and greatest, but older target systems - those your users are likely to have. But if your application needs the latest and greatest, you could to bundle these things privately inside the AppImage. Because you cannot assume that all users will already have the latest versions of everything.

from foliate.

johnfactotum avatar johnfactotum commented on August 12, 2024

That's fair. But at this point I honestly couldn't be bothered anymore to try to figure out what can or cannot run on all these different systems, much less figuring out what and how to bundle.

Compare this to Flatpak, where you're only developing against one environment, which will run the same way everywhere, on old and new systems alike. And in Foliate's case, everything is already included in the GNOME runtime, so the app literally builds and runs with zero configuration!

It would certainly be great if Foliate could be made available as an AppImage. But personally, I would rather just spend time developing the app itself instead.

from foliate.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.