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

Appimage package #3

Open
philipzae opened this issue Dec 2, 2017 · 75 comments
Open

Appimage package #3

philipzae opened this issue Dec 2, 2017 · 75 comments

Comments

@philipzae
Copy link

Look forward to using your app once it comes out as i'm currently using balsamiq and pencil for UI designing and would suggest that you package it as an appimage to ensure it easily runnable on any linux distro.

https://github.com/AppImage/AppImageKit

@probonopd
Copy link

probonopd commented Dec 2, 2017

Edit 2020: An AppImage for testing is available now at:
https://github.com/probonopd/Akira/releases/tag/continuous

@Alecaddd
Copy link
Member

Alecaddd commented Dec 2, 2017

Thanks guys, I will definitely package it as an AppImage to make it available and usable in every distro.
I'm working on the first pre-alpha draft, and actually, I decided to code it in Vala and Gtk, which I found myself more comfortable than Qt.
I should be able to release something really basic, but usable, before the end of the month. Maybe some of you could contribute with a PR for the travis file to aut trigger the compiling of an appimage. That'd be neet.
Cheers

@probonopd

This comment has been minimized.

@Alecaddd
Copy link
Member

Alecaddd commented Dec 2, 2017

@probonopd Does this work with Vala and CMake apps as well? I'm not using Qt anymore.

@probonopd

This comment has been minimized.

@Alecaddd
Copy link
Member

Hi @probonopd, I'm trying to build an AppImage for Akira but it keeps failing.
Here's the file: https://github.com/Alecaddd/Akira/blob/appimage/.travis.yml

@Alecaddd
Copy link
Member

By default is installing old versions of the required dependencies.
Is this related to the fact that I need to compile for trusty?

Found gtk+-3.0, version 3.10.8
--   Found granite, version 0.1.4
--   Found glib-2.0, version 2.40.2
--   Found gee-0.8, version 0.20.0
--   Found gobject-2.0, version 2.40.2
--   Found libxml-2.0, version 2.9.1
--   Found gtksourceview-3.0, version 3.10.2

Is there a way to specify an updated or specific version during the apt-get install process?

@probonopd

This comment has been minimized.

@Alecaddd
Copy link
Member

Alecaddd commented Dec 23, 2017

@probonopd I'm adding all the necessary PPAs and travis seems to install everything correctly, but the process exits with this error:

iconToBeUsed: "/home/travis/build/Alecaddd/Akira/appdir/usr/share/icons/hicolor/64x64/apps/com.github.alecaddd.akira.svg"
ERROR: Could not copy "/home/travis/build/Alecaddd/Akira/appdir/usr/share/icons/hicolor/64x64/apps/com.github.alecaddd.akira.svg" to "/home/travis/build/Alecaddd/Akira/appdir/com.github.alecaddd.akira.svg" 

The icon is there and I'm copying everything. Do you know how I can troubleshoot this?

@probonopd
Copy link

@Alecaddd smells like this might be a linuxdeployqt bug. Can you point me to a Travis CI build where I can see this?

@Alecaddd
Copy link
Member

There you go:
https://travis-ci.org/Alecaddd/Akira/builds/320772567

Thanks for taking the time to check this

@probonopd

This comment has been minimized.

@Alecaddd
Copy link
Member

Thanks for checking, be sure to build off of the appimage branch. I removed methods and features not supported by those packages version

@probonopd

This comment has been minimized.

@probonopd

This comment has been minimized.

@Alecaddd
Copy link
Member

Lowered the target to trusty but I get the same error with the missing icon.

@probonopd

This comment has been minimized.

@Alecaddd
Copy link
Member

Alecaddd commented Dec 27, 2017

Oh wow, that's a good sign!
Can you make a PR to the appimage branch with the edits you made to make it work?
With that, I can start tweaking the app to make it compatible with Trusty and test everything locally.

EDIT: I saw you linked the travis file in the comment. I'll use that. Thank you so much! 👍

@Alecaddd
Copy link
Member

Ok, I'm getting super excited about this!
The deployment via Travis works, just a couple of things are missing.

  1. I need to use a couple of slightly more updated packages. Considering that I can build from source inside travis, is it ok for AppImage? It won't create any issue if the OS or the Distro doesn't have those packages, right? Is everything embedded into the app?

  2. The AppImage comes without an icon, is there something I'm missing?

Cheers

@probonopd

This comment has been minimized.

@SkyzohKey
Copy link

Look at the Bash script that I used to build Ricin when I was developing it. It's Vala/Gtk+3 based so you should have minor tweaks to apply :)

https://github.com/RicinApp/Ricin/blob/master/appimage.sh

@probonopd
Copy link

@SkyzohKey this is a very manual way of doing things; in the meantime, using linuxdeployqt may be an easier route - although I haven't tried it on Vala/Gtk+3 apps specifically so far.

@SkyzohKey
Copy link

SkyzohKey commented Jan 30, 2018

@probonopd Yeah but this project is no longer Qt driven. If I understand correctly it's now 100% GTYK+3/Vala. And the file you made for Ricin should be simple to adapt to Akira' usecase :)

EDIT: nvm, linuxdeployqt looks promising, great work guy!

@probonopd

This comment has been minimized.

@armansansd
Copy link

Hi !
I've been trying to install akira on arch (using meson but also from a repo on yaourt)
But in both cases there is a problem with the interface. I don't get any error message in my terminal, and I don't really know where to look for a log.
I saw that @probonopd had a similar issue, I'm looking for clues :)

akira_interface

@Alecaddd
Copy link
Member

Alecaddd commented Apr 4, 2018

That looks like it's supposed to.
Akira is still in early development, and the screenshot in the readme file it's just a mockup.
Still, a long way to go and many hours of coding before it'll be usable.
Cheers

@Alecaddd
Copy link
Member

Tested on Ubuntu 18.04.
Everything works and looks great, save and load files, export, etc.

I stumbled upon a single issue which it doesn't happen with the native elementary app.

  1. Unzip this file and open it with Akira: single.zip
  2. Go to Export > Highlight Area to export > draw a rectangle around the free items with the image in the canvas.
  3. In the Export Dialog, click the transparency toggle, then export the file.
  4. Without closing the application or the current file, repeat point 2 and 3.
  5. Upon toggling the transparency toggle, the app crashes.

I don't know if this is related to Appimage or something sketchy going on with my code.
This doesn't happen with the native elementary app, or the flatpak. Didn't test with the snap.

@azzamsa
Copy link

azzamsa commented Aug 19, 2020

Tried with i3wm.

basic

image

image

image

basic functionality works, but there is a black gap between the window and the app.

single.zip test

failed at 3rd step. App crashed.

$ ./Akira-c12e816-x86_64.AppImage
Run experimental self-contained bundle

(Akira:19057): dbind-WARNING **: 09:41:55.821: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

(Akira:19057): Gtk-WARNING **: 09:42:22.689: gtk_widget_size_allocate(): attempt to allocate widget with width -636 and height 16

(Akira:19057): Gtk-WARNING **: 09:46:38.409: gtk_widget_size_allocate(): attempt to allocate widget with width -636 and height 16

(Akira:19057): Gtk-WARNING **: 09:46:38.431: gtk_widget_size_allocate(): attempt to allocate widget with width -636 and height 16

(Akira:19057): GLib-CRITICAL **: 09:47:37.021: g_variant_new_string: assertion 'string != NULL' failed

(Akira:19057): GLib-CRITICAL **: 09:47:37.021: g_variant_ref_sink: assertion 'value != NULL' failed

(Akira:19057): GLib-GIO-CRITICAL **: 09:47:37.021: g_settings_schema_key_type_check: assertion 'value != NULL' failed

(Akira:19057): GLib-CRITICAL **: 09:47:37.021: g_variant_get_type_string: assertion 'value != NULL' failed

(Akira:19057): GLib-GIO-CRITICAL **: 09:47:37.021: g_settings_set_value: key 'export-folder' in 'com.github.akiraux.akira' expects type 's', but a GVariant of type '(null)' was given

(Akira:19057): GLib-CRITICAL **: 09:47:37.021: g_variant_unref: assertion 'value != NULL' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.078: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Gtk-CRITICAL **: 09:47:37.090: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(Akira:19057): Akira-ERROR **: 09:47:56.191: ExportManager.vala:509: Unable to export images: Failed to open “/Untitled.png” for writing: Permission denied
Trace/breakpoint trap

@probonopd
Copy link

there is a black gap between the window and the app.

This seems to be a known issue which appears when no AppImage is involved as well:
numixproject/numix-gtk-theme#206
We need to see whether there is a way to fix this without having to edit files in the user's $HOME.

I stumbled upon a single issue which it doesn't happen with the native elementary app. (...) Without closing the application or the current file, repeat point 2 and 3.

Not sure at all what is going on there or how this might be related to AppImage, maybe someone with gdb skills can find out?

@Alecaddd
Copy link
Member

I stumbled upon a single issue which it doesn't happen with the native elementary app. (...) Without closing the application or the current file, repeat point 2 and 3.

Not sure at all what is going on there or how this might be related to AppImage, maybe someone with gdb skills can find out?

I might be able to solve this with the next release as I'm removing a bunch of annoying GTK Warnings when opening the export dialog. That might be related to the crash.

@probonopd
Copy link

there is a black gap between the window and the app.

Maybe we need to export GTK_RC_FILES and ship a private gtkrc file.

@Alecaddd
Copy link
Member

Alecaddd commented Sep 3, 2020

@probonopd I just released v0.0.13 where I fixed all the GTK warnings in the export dialog.
Hopefully that should fix the crash with the AppImage.

@probonopd
Copy link

@Alecaddd
Copy link
Member

Alecaddd commented Sep 3, 2020

This works perfectly for me, no more crashes!

@probonopd
Copy link

probonopd commented Sep 3, 2020

You would not believe where I got this running. Actually I was shocked to see this work 💯

image

Yes, what you are seeing here is the content of the AppImage running on... FreeBSD.

Caveats: Some steps are currently needed to be done manually.

  • The linux64 compatibility layer for FreeBSD needs to be set up and configured by the user
  • The AppImage needs to be extracted with --appimage-extract; not clear yet whether we can change this, AppImage for BSD AppImage/AppImageKit#98 (comment)
  • chmod +x squashfs-root/usr/lib64/ld-linux-x86-64.so.2 (I think I can remove the need for this)
  • brandelf -t linux squashfs-root/usr/lib64/ld-linux-x86-64.so.2 (I think I can remove the need for this)
  • As root: sysctl compat.linux.osrelease=4.0.00 (possibly I can patch the ELFs and/or patch away a check in the bundled ld-linux in the AppImage to remove the need for this)

@azzamsa
Copy link

azzamsa commented Sep 9, 2020

Sadly the gap persists.

image

@probonopd
Copy link

Yes. Sadly I have not found a good way to fix this. It happens only on some host systems. We need someone who understands what Gtk is doing here and why... this seems to be an issue that also exists outside of the AppImage world.

@xordspar0
Copy link

Does Akira draw a semi-transparent shadow around the window? Is that what the black area is?

@albfan
Copy link
Collaborator

albfan commented Sep 12, 2020

This is related with i3wm. I see this error in many other issues in other apps, always related with i3.

EliverLara/Ant@3fc9a80

@azzamsa
Copy link

azzamsa commented Sep 29, 2020

I've tried to put the code below in /.config/gtk-3.0/gtk.css, to get rid of window gap problem. But it doesn't work.

.window-frame {box-shadow: none; margin: 0;}

@probonopd
Copy link

Yes, I have also not found a solution for this yet but it seems to also occur outside of the AppImage world. Maybe we need a Gtk expert here.

@hcsubser
Copy link

hcsubser commented Oct 3, 2020

So I downloaded probonopd's appimage and tried to fix the problem with that black box around the window and it seems to be the problem with the elementary theme. I unpacked the appimage and them ran it using some other themes such as Adwaita, Qogir-light and Greybird and not a single one of them had the that black box so it seems like the elementary theme is broken. After that by randomly removing .css files from elementary theme directory I found out that the problem comes from file called gtk-widgets.css, to make sure that that is the case I replaced that file with the gtk-widgets.css from Qogir-light theme and the black box seems to be gone, however this really is not a fix since now it looks like a real frankenstein theme.

Because I dont have any knowledge with making gtk themes I could not really find a solution, however for the time being a temporary fix would be to use some other theme for the appimage like Adwaita or Adelementary theme which actually looks simiplar to the elementary theme
-problem seems to be with the gtk-widgets.css file

@probonopd
Copy link

probonopd commented Oct 3, 2020

Thanks for your analysis. Maybe we can nail it further down to something particular inside gtk-widgets.css in the elementary theme. If possible, I'd like to keep using the elementary theme for elementary apps, because that's what they have been designed for. But it would be good to get rid of that black frame.

Maybe @danrabbit knows what might be causing this thick black extra border that appears on some systems?

@albfan
Copy link
Collaborator

albfan commented Oct 4, 2020

I just tried https://github.com/probonopd/Akira/releases/download/continuous/Akira-26-x86_64.AppImage and everything works as expected:

Captura de pantalla de 2020-10-04 14-45-57

So this is not akira related but i3wm and elementary theme related. I suggest to open an issue on those projects to track that.

In any case, this issue is done (there's an akira appimage package)

Anyone see a reason to keep this issue open here?

@probonopd
Copy link

probonopd commented Oct 4, 2020

Anyone see a reason to keep this issue open here?

Yes, https://github.com/akiraux/Akira/releases/download/continuous/ does not have an AppImage yet. Sending a PR.

@albfan
Copy link
Collaborator

albfan commented Oct 5, 2020

Ok. For the black box I just open elementary/stylesheet#843

About appimage, the issue itself makes then sense, but not to resolve it here. Is there any possibility of generate the appimage externally? Doesn't make much sense to me to keep the appimage setup here, as we are not experts on appimage, so can only blindy accept changes.

As an example this is the repo that keeps the flatpak setup for akira (external): https://github.com/flathub/com.github.akiraux.akira

Again @Alecaddd will know better.

@probonopd
Copy link

Is there any possibility of generate the appimage externally?

Although it would be possible, it would hardly make any sense to do so. Please see my comments in the pull request.

@albfan
Copy link
Collaborator

albfan commented Oct 7, 2020

#25 #47 #131 #3

Maintainers of this project asking "have no idea" "something must be wrong with appimage"

Here is not the place to maintain the appimage. That is out of question.

appimage workflow:

  • People trying each master commit
  • People complaining about broken or missing features
  • People looking for a solution
  • Maintainers asking other developers to fix appimage setup here

Why do we plan releases if run from master is ok?

Is master the new stable?

Seriously I tried to explain it several times. This shouldn't be maintained here.

@probonopd
Copy link

probonopd commented Oct 7, 2020

Once AppImage creation works, it is zero-maintenance. An AppImage will get built for each git push without further intervention by anybody. It's called "continuous builds". Those are meant for testers, developers, and advanced users.

For regular users, "normal" releases can still be made.

The point of continuous builds is to be able to see immediately if something was broken in the software by a commit, so that it can be reverted immediately back to a working state.

According to Wikipedia,

"Continuous delivery" makes sure the software checked in on the mainline is always in a state that can be deployed to users and "continuous deployment" makes the deployment process fully automated.

In my own software, I only produce continuous builds and no releases at all anymore. But no one is asking Akira to do the same ;-)

@bilelmoussaoui
Copy link
Collaborator

Once AppImage creation works, it is zero-maintenance. An AppImage will get built for each git push without further intervention by anybody. It's called "continuous builds". Those are meant for testers, developers, and advanced users.

For regular users, "normal" releases can still be made.

The point of continuous builds is to be able to see immediately if something was broken in the software by a commit, so that it can be reverted immediately back to a working state.

According to Wikipedia,

"Continuous delivery" makes sure the software checked in on the mainline is always in a state that can be deployed to users and "continuous deployment" makes the deployment process fully automated.

In my own software, I only produce continuous builds and no releases at all anymore. But no one is asking Akira to do the same ;-)

There's nothing that costs 0 maintenance

@probonopd
Copy link

probonopd commented Mar 14, 2022

That same AppImage from 2020, this time running on a helloSystem developer machine.

This operating system is FreeBSD based and is using the built-in Linuxulator. Talk about portability ;-)

image

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

Successfully merging a pull request may close this issue.