From a0c63b41fc4c00a8da0e6633d4e55f1be93ebcb1 Mon Sep 17 00:00:00 2001 From: iTrooz_ Date: Tue, 13 Sep 2022 22:35:46 +0200 Subject: [PATCH 1/7] Add information about zsync in the update page --- source/packaging-guide/optional/updates.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index ae3bfc7..4101495 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -20,6 +20,11 @@ Making AppImages updateable via external tools To make an AppImage updateable, you need to embed information that describes where to check for updates and how into the AppImage. Unlike other Linux distribution methods, the information where to look for updates is not contained in separate repository description files such as :code:`sources.list` that need to be managed by the user, but is directly embedded inside the AppImage by the author of the respective AppImage. This has the advantage that the update information always travels alongside the application, so that the end user does not have to do anything special in order to be able to check for updates. +Currently, there is only one backend available to update AppImages : `ZSync2 `__. The tool you use to package the AppImage will also generate a .zsync file if you gave it enough data to do so + +.. warning:: The .zsync file contains the filename of the AppImage. This mean that you **should not**, as a packager, rename the .AppImage file after it's creation. Else the update will fail because zsync will look for the original filename of the AppImage you host + + Using appimagetool ^^^^^^^^^^^^^^^^^^ From e52efabcdc5bf5dc4654309c85ee47153cc10a10 Mon Sep 17 00:00:00 2001 From: iTrooz_ Date: Tue, 13 Sep 2022 22:42:10 +0200 Subject: [PATCH 2/7] Do not mix up external tools for updating and for packaging Explicitely tell the difference between external tools for updating and for packaging --- source/packaging-guide/optional/updates.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index 4101495..66c25bc 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -26,8 +26,8 @@ Currently, there is only one backend available to update AppImages : `ZSync2 ` `AppImage plugin `__ supports an environment variable ``$UPDATE_INFORMATION`` (or short ``$UPD_INFO``) that can be used to set the update information manually. Please see `the README `__ for details. -Using linuxdeployqt -^^^^^^^^^^^^^^^^^^^ +If packaged with linuxdeployqt +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :code:`linuxdeployqt` uses :code:`appimagetool` internally. If it recognizes that it is running on Travis CI, then it automatically generates the matching update information. -Using electron-builder -^^^^^^^^^^^^^^^^^^^^^^ +If packaged with electron-builder +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :code:`electron-builder` promotes its own updater scheme rather than the update information described in this documentation, in order to have the same mechanism on Linux as is used on Windows. Unfortunately this means that AppImages generated by :code:`electron-builder` cannot be updated using the usual tools. From 09662d1ceb3b1cf6307ca0d45530222e3d368a8a Mon Sep 17 00:00:00 2001 From: iTrooz_ Date: Tue, 13 Sep 2022 22:45:32 +0200 Subject: [PATCH 3/7] Add instructions for appimage-builder --- source/packaging-guide/optional/updates.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index 66c25bc..9c8ee60 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -68,6 +68,11 @@ If packaged with electron-builder One way to inject the update information into the AppImage created with :code:`electron-builder` nevertheless is to extract the AppImage generated with :code:`electron-builder` to an AppDir using the --appimage-extract command line option of the AppImage, and then re-packing it as an AppImage by using :code:`appimagetool -u`. +If packaged with appimage-builder +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Informations can be found on `the appimage-builder documentation `__ + + Making AppImages self-updateable -------------------------------- From c4df8dd278b2696edcb2986e423694244951ca10 Mon Sep 17 00:00:00 2001 From: iTrooz_ Date: Tue, 13 Sep 2022 22:47:12 +0200 Subject: [PATCH 4/7] Tell packagers how to rename the AppImage --- source/packaging-guide/optional/updates.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index 9c8ee60..ad2d059 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -22,7 +22,7 @@ To make an AppImage updateable, you need to embed information that describes whe Currently, there is only one backend available to update AppImages : `ZSync2 `__. The tool you use to package the AppImage will also generate a .zsync file if you gave it enough data to do so -.. warning:: The .zsync file contains the filename of the AppImage. This mean that you **should not**, as a packager, rename the .AppImage file after it's creation. Else the update will fail because zsync will look for the original filename of the AppImage you host +.. warning:: The .zsync file contains the filename of the AppImage. This mean that you **should not**, as a packager, rename the .AppImage file after it's creation. Else the update will fail because zsync will look for the original filename of the AppImage you host. If you want to rename the AppImage, you should use the options of the tool you use to create the AppImage. From d1356a29b88b69caad25eaed55b5286cbe72d182 Mon Sep 17 00:00:00 2001 From: iTrooz_ Date: Tue, 13 Sep 2022 22:58:39 +0200 Subject: [PATCH 5/7] Tell packagers they do not need to version their AppImages --- source/packaging-guide/optional/updates.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index ad2d059..9086d1a 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -24,6 +24,8 @@ Currently, there is only one backend available to update AppImages : `ZSync2 Date: Tue, 13 Sep 2022 23:03:29 +0200 Subject: [PATCH 6/7] update zsync links --- source/packaging-guide/optional/updates.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index 9086d1a..b931a7c 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -20,7 +20,7 @@ Making AppImages updateable via external tools To make an AppImage updateable, you need to embed information that describes where to check for updates and how into the AppImage. Unlike other Linux distribution methods, the information where to look for updates is not contained in separate repository description files such as :code:`sources.list` that need to be managed by the user, but is directly embedded inside the AppImage by the author of the respective AppImage. This has the advantage that the update information always travels alongside the application, so that the end user does not have to do anything special in order to be able to check for updates. -Currently, there is only one backend available to update AppImages : `ZSync2 `__. The tool you use to package the AppImage will also generate a .zsync file if you gave it enough data to do so +Currently, there is only one backend available to update AppImages : `ZSync2 `__. The tool you use to package the AppImage will also generate a .zsync file if you gave it enough data to do so .. warning:: The .zsync file contains the filename of the AppImage. This mean that you **should not**, as a packager, rename the .AppImage file after it's creation. Else the update will fail because zsync will look for the original filename of the AppImage you host. If you want to rename the AppImage, you should use the options of the tool you use to create the AppImage. @@ -210,7 +210,7 @@ See this easy example for an update check: This is faster and less verbose than an exception based workflow, however, you can't see what caused the update check to fail. -This can be found out using the built in status message system. Every :code:`Updater` instance contains a message queue. All methods within the updater and the systems it uses (like e.g., `ZSync2 `__, which is one of the backends for the binary delta updates) add messages to this queue, which means that all kinds of status messages ever generated by any of the libraries will end up there. +This can be found out using the built in status message system. Every :code:`Updater` instance contains a message queue. All methods within the updater and the systems it uses (like e.g., `ZSync2 `__, which is one of the backends for the binary delta updates) add messages to this queue, which means that all kinds of status messages ever generated by any of the libraries will end up there. .. note:: From 37725cc195ca947243fc1cb0deb91a587d322c61 Mon Sep 17 00:00:00 2001 From: iTrooz Date: Tue, 13 Sep 2022 23:06:14 +0200 Subject: [PATCH 7/7] move first paragraph to Introduction --- source/packaging-guide/optional/updates.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/packaging-guide/optional/updates.rst b/source/packaging-guide/optional/updates.rst index b931a7c..eeb2329 100644 --- a/source/packaging-guide/optional/updates.rst +++ b/source/packaging-guide/optional/updates.rst @@ -15,8 +15,8 @@ AppImages can be updated: :depth: 2 -Making AppImages updateable via external tools ----------------------------------------------- +Introduction +------------ To make an AppImage updateable, you need to embed information that describes where to check for updates and how into the AppImage. Unlike other Linux distribution methods, the information where to look for updates is not contained in separate repository description files such as :code:`sources.list` that need to be managed by the user, but is directly embedded inside the AppImage by the author of the respective AppImage. This has the advantage that the update information always travels alongside the application, so that the end user does not have to do anything special in order to be able to check for updates. @@ -26,6 +26,8 @@ Currently, there is only one backend available to update AppImages : `ZSync2