-
Notifications
You must be signed in to change notification settings - Fork 2
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
Make the appimage able to update itself #9
Comments
Probably not worth it because there's so much data that gets changed between releases. Downloading an update would be about the same size as a release. |
Let's try it first, please. Surely even a very tight compression (like LZMA2 at Ultra) of the contents will still make the image correctly updateable.
I can only help by trying to run the update as an end user, though. |
@rautamiekka Thanks for the the feedback. I'll reopen the issue. |
OFF-TOPIC: want to made it updateable? If you use AppImagetool from https://github.com/AppImage/appimagetool, its enough you do
where GITHUB_REPOSITORY_OWNER is "0ad-matters" (if you run it in github actions workflows) and "$APP".AppDir is the AppDir, I don't know what's the name you use |
@ivan-hc Yes that might be much more convenient for some people if it were updateabe. From your example, I'm not sure yet how it would work. I'll have to look more later and ask questions. If you want to open up a pull request to make the necessary changes, I could probably figure things out as we go, with your help. |
@andy5995 this is the same command I use in almost all my repositories (to be honest, @Samueru-sama pointed me on this) All you need is:
after you finished with the tool you use to create the AppImage, use appimagetool to convert the app directory (appdir) to an AppImage the command in my comment does the follow:
that's all, a .zsync file with the same name of the AppImange will be created as well.
I translated the line in the middle, the one referencing to the .zsync file. If you want to allow forks, leave $GITHUB_REPOSITORY_OWNER instead of 0ad-matters. Its not difficult, this is the $UPINFO variable as before:
let me see the part of your script where you convert the AppDir to an AppImage. |
just noticed that you are using docker, maybe if the appimagetool can't be mounted, you should also use |
@andy5995 I just forked the repository, please let me know how to only create the AppDir
should I remove some flags from the above function? I suppose that |
Just added a commit in my fork ivan-hc@d23b7d8 Now I'll test if it works https://github.com/ivan-hc/0ad-appimage/actions/runs/13080646013 |
If this has succes, wil also solve #33 |
I got an error also if the Appimage have been released. Just added zsync and desktop-file-utils to have the .zsync file The next workflow should do for our purpose https://github.com/ivan-hc/0ad-appimage/actions/runs/13081451548 |
@andy5995 I don't know why, but with simplescreenrecorder-2025-02-01_00.01.05.mp4 |
Maybe the issue is that the target repository is a fork or something... I don't know why @probonopd do you know why I get this error with
|
it seems so, from what I can read
@andy5995 does your workflow using some kind of authentication? |
@andy5995 I think this message should disappear once the AppImage and its zsync files are hosted on the right repo I start PR this |
As far as I know, those are all needed. And yes, the --output argument is required. I didn't answer all your questions but I think you found answers and we are up to date. Is there anything I missed? I know you have a build running right now and very close to completing this. |
Yes, I have already completed some workflows... but I manually remove releases not to confuse myself when I must test them. Anyway, next workflow should be successful https://github.com/ivan-hc/0ad-appimage/actions/runs/13083937340 About updates via |
Re-opening. We still need to a little testing and update docs. |
@andy5995 I was right, it needed to be hosted on the repo with the name of the owner simplescreenrecorder-2025-02-01_05.02.02.mp4...this means its working! |
@andy5995 same for the zsync file simplescreenrecorder-2025-02-01_05.03.44.mp4 |
Now, I suggest to keep only one per architecture, so people (me including) can download and update the right one. NOTE, as I wrote in the script, TAG is "latest", so every time you release a new one in "latest" it will get updates from there. No pre-releases are targeted (for them I think you should add a dedicated script and workflow). |
One also because my package manager "AM" targets this release with |
@andy5995 since you just updated the AppImage, here you are the proof that updates are working as they should simplescreenrecorder-2025-02-01_05.40.37.mp4I think this issue is finally SOLVED! |
Yes, I experimented myself using the AppImageUpdate appimage https://github.com/AppImageCommunity/AppImageUpdate Should that be added to the readme or is there a different tool? I searched for appimageupdatetool with pacman and also in the AUR (I use Manjaro) but it's not available. |
People can use both
Well, maybe its time for you to use something different ;) https://github.com/ivan-hc/AM To install it system-wide
to install it locally in a rootless way
or
|
Since 0ad is a big AppImage, I keep it on a separated drive, so I can also integrate it insteado of installing it as another app listed... and it is updateable as well simplescreenrecorder-2025-02-01_05.54.17.mp4...sorry for the long video, I wrote so many options and flags that I forgot that to update AppImages only integrated and NOT installed, you need to run
...and --launcher is also an option that has the same task of a normal AppImageLauncher or Gear Lever.... but in pure SHELL. |
lol, ok! I'll try it out tomorrow. So late... |
please, don't tell me... its 6 am here in Italy... big part of my work on github is done at night (maybe it would be another reason because AM is called AM... its done at night) 😆 |
@ivan-hc I understand there can be only one "latest" release, but I do I target pre-releases, since there can be more than one? Like when I want to target the latest prelease. Can I reference it by the tag or commit hash shown on the release page? Such as on here, where the tag and commit hash is shown? |
@andy5995 I think pre-release means anything, while "latest" is only one, regardless if the tag has a number. I mean, you can also use $VERSION as $TAG, if it is different... or maybe you can use a dedicated tag "nightly" or "pre-release" if you want. Remember, "latest" is only one and it can be replaced by a new "latest", on github. On the contrary, other builds require a dedicated tag. @Samueru-sama do you know how to do when the repo also conatains several pre-releases? |
@ivan-hc I think you answered all my questions. It can basically just be whatever comes after '/tag/' in the release URL, e.g. https://github.com/0ad-matters/0ad-appimage/releases/tag/v0.0.26-alpha would be v0.0.26-alpha so easy enough. |
This would be nice. I don't know when I'll get to it though. Post on the ticket and let me know if you want to try tackling this issue. I might be able to help.
Making AppImages updateable
The text was updated successfully, but these errors were encountered: