AppImage / AppImageKit

Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
http://appimage.org
Other
8.67k stars 554 forks source link

update runtime inside of appimage file #417

Closed Kodiman closed 7 years ago

Kodiman commented 7 years ago

Hi, Your AppImage software is excellent quality. The best "portable apps" for linux.

Please implement a command or script that updates the runtime of the appimages. Such as for example:

appimagetool --update-runtime APPIMAGE-FILENAME appimagetool --update-runtime --recursive APPIMAGES-FOLDERNAME

Please test that it works for upgrade to your new portable runtime (that uses .home and .config folders).

https://github.com/AppImage/AppImageKit/commit/d17fdefadcb98befa66c29137ce25731256f8f2a

This would be similar to the VMware ThinApp portables tool "relink -Recursive foldername".

Please status update. Much appreciated. Thanks!

probonopd commented 7 years ago

Thanks for this suggestion Kodiman.

Until someone implements this, you can do the following:

find "/tmp" -maxdepth 1 -name '.mount_*' -type d -exec appimagetool -n {} \;

This will produce a new AppImage with the new runtime for each running AppImage.

probonopd commented 7 years ago

Please let me know if this is sufficient for you.

Kodiman commented 7 years ago

Hi, That is a good start. Your work is appreciated. Best regards. Thanks.

TheAssassin commented 7 years ago

The problem with being able to update the runtime inside the AppImage is the fact that the runtime won't have the exact same size as before. Thus, one would have to create another file, insert the new runtime in the beginning and append the old squashfs or something like that. I don't know whether this use case is that common, so I'm not sure if it's worth implementing this at all, considering that it's rather easy to repackage an existing AppImage with the current toolchain. (You could just --appimage-extract as well.)

Kodiman commented 7 years ago

Hi, You can batch update the runtime of the appimages by making new appimages from the old files. You can automatically rename the old appimage files to "filename.old" or such. This should be an automated command or script. Similar to the professional quality VMware ThinApp portables tool "relink -Recursive foldername". That would be excellent. Thanks.

"The ThinApp relink command updates the ThinApp runtime of a previously packaged ThinApp virtual application. Relink.exe is provided with the other ThinApp executables in the ThinApp Program Files directory."

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2030593

probonopd commented 7 years ago

Generally we just produce new AppImages rather than rework old ones. But I have given a semi-automatic solution above that should be sufficient for most needs. If this is not sufficient, then please help us working toward an implementation.

Kodiman commented 7 years ago

Some of the AppImages apps on the download pages have old dates. Does that indicate those have old versions of runtimes? Any plans to produce updates of those with the current runtime? Thanks.

probonopd commented 7 years ago

Yes. They will be updated whenever new versions of the AppImages get built. Are there ones you would be especially interested in? Then I can trigger a rebuild for these manually.

Kodiman commented 7 years ago

The AppImages apps such as here https://bintray.com/probono/AppImages

Please consider updating (rebuild) all the AppImages to the current runtime. (That will provide the benefits of new runtime features such as portable home folders.) Greatly appreciated. Thanks.

TheAssassin commented 7 years ago

@Kodiman we can do that, but we need a list of apps to be updated. If you want this to happen soon, how about compiling a list of old AppImages? You could automate that I guess. You can get the AppImage type in a bash script by calling them with --appimage-version (see https://github.com/AppImage/AppImageKit/#command-line-arguments) and check its return value.

Kodiman commented 7 years ago

Hi, As per your message, please try to update these to your best new runtime. With the portable home feature. The list is in random order. Perhaps start with the most popular apps, as you have time. Your efforts are appreciated. Thanks.

AppImageKit AppImageUpdate Audacity AvahiDiscover Aseprite Atom BlueGriffon Boostnote Calibre Clementine Corebird Chromium Darktable Demonsaw Dia EncryptPad Engauge Etcher FBReader FeedReader Firefox Firefox_Developer_Edition Flowblade_Movie_Editor FontForge Fotoxx FreeMind GIMP Go_For_It GoogleEarth Gqrx Graphmonkey Gnu_PSPP Hugin Hydrogen Inkscape Instant_Lyrics Iridium Kadu Krita LMMS LeoCAD LibreCAD kodi Leafpad LibreOffice LibreOfficeDev Linphone MediaInfo MediathekView Meld Mumble Natron Otter Pandoc Notes OBS OpenNX_client OpenSCAD Peek PowerShell Qcad Quassel Quod_Libet Ramme Remmina RetroShare06 Ricochet SMTube SciLab ScreenCloud Scribus Shotcut Sigil SimpleScreenRecorder Slack SolveSpace Stellarium Sublime Synergy Terminix Transmission Trojita Typora VSXu WMail Wavebox WebTorrent Wire Wireshark X2Go_Client XChat XChat_IRC Xara_Xtreme XnView_MP Yout ZeroNet Zim_Desktop_Wiki easyMP3Gain gPodder ghostwriter mpv_Media_Player ocenaudio puddletag qBittorrent qTox vokoscreen wxHexEditor xdgurl Syncthing_GTK Thunderbird Vivaldi VLC

probonopd commented 7 years ago

@Kodiman I have triggered rebuilds for most of them (Travis CI now hates me). All builds from today and thereafter should have the new runtime. Please keep in mind that my example AppImages on Bintray are just for demonstration, and only made so that upstream application projects can test them. If you want proper AppImages, please ask the upstream application authors to provide an AppImage.

This means that for example, if you would like to see a Firefox AppImage, please ask the Firefox team, and so on.

Kodiman commented 7 years ago

Hi, Thanks for your time and effort. AppImage is excellent. You are the best. Much appreciated. Thanks.

Kodiman commented 7 years ago

Hi, The build dates on bintray etc have not updated. Did the triggered rebuilds fail? Is there an ETA? Thanks.

probonopd commented 7 years ago

Many have, some haven't.

Please keep in mind that my example AppImages on Bintray are just for demonstration, and only made so that upstream application projects can test them. If you want proper AppImages, please ask the upstream application authors to provide an AppImage.

This means that for example, if you would like to see a Firefox AppImage, please ask the Firefox team, and so on.

Kodiman commented 7 years ago

Hi, Some of the rebuilds failed? Technical problems? Can it be fixed? Thanks

probonopd commented 7 years ago

This means that I haven't updated those yet. If you want proper AppImages, please ask the upstream application authors to provide an AppImage.

Kodiman commented 7 years ago

Hi, It has been fixed? Can trigger the rebuilds to do more? Please. Thanks.