Skip to content

Conversation

@derspotter
Copy link

This PR implements a self-update mechanism for the Linux AppImage.

Changes:

  • Added AppImageUpdater class (inherits OCUpdater) to handle AppImage-specific update logic.
  • Implemented detection of AppImage environment (APPIMAGE env var).
  • Added manual handling of 302 Found redirects to support GitHub Releases downloads.
  • Added buffer clearing logic to prevent binary corruption when servers send HTML bodies with redirects.
  • Implemented a temporary bash script mechanism to replace the running AppImage file and restart the application.
  • Updated Updater::create factory to instantiate AppImageUpdater on Linux when applicable.
  • Updated CMakeLists.txt and build-appimage.sh to include the new files and ensure clean builds.

Fixes:

  • Fixes issues where the updater would not follow GitHub release redirects.
  • Fixes binary corruption issues caused by writing redirect responses to the file.
  • Enables seamless updates for AppImage users.

@github-actions
Copy link

github-actions bot commented Jan 4, 2026

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

(If you believe you should not receive this message, you can add yourself to the blocklist.)

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant