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

Convert X64 AppImage to static runtime #5747

Merged
merged 3 commits into from
Dec 6, 2024

Conversation

Samueru-sama
Copy link
Contributor

Convert X64 AppImage to static runtime

Pull Request Type

  • Feature Implementation

Related issue

Closes #5714 #5641 but not fully since I was only able to do this for the X64 build.

Description

This change drops libfuse2 dependency from the AppImage, which prevents them from working on newer distros that no longer ship libfuse2.

Testing

Artifact

image

Desktop

  • OS: Artix Linux
  • OS Version: Rolling release (Kernel: Linux 6.10.10-artix1-1)
  • FreeTube version: 0.21.3-nightly-13

Additional context

I was not able to fix this on the arm builds because even though I tried using the same runners that the upload actions for those use, it complains that it can't execute the appimage to extract it, which is needed in order to convert it.

Drops libfuse2 dependency from AppImage
@FreeTubeBot FreeTubeBot enabled auto-merge (squash) September 25, 2024 08:11
@github-actions github-actions bot added the PR: waiting for review For PRs that are complete, tested, and ready for review label Sep 25, 2024
Copy link
Member

@absidue absidue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please use the filename everywhere, as you currently have a mix of using the filename in some places and wild cards in others. Additionally it probably makes sense to assign the filename to a variable after the cd build command and reference that variable.

I haven't tested the generated AppImage yet (need to boot up my Ubuntu VM and figure out how to run and then afterwards remove AppImages).

I'm okay with doing this after build hack for the moment but in the long run it would be much better if electron-builder handled that for us, that way people would be able to reproduce the builds easier on their own machines without having to do these steps manually after the build. As for the why it does't work for the arm AppImage, that's because the GitHub runners are x64, so it would probably be a lot better if electron-builder produced the AppImages with the static runtimes in the first place instead of having to do this patching after the fact.

auto-merge was automatically disabled October 3, 2024 13:03

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) October 3, 2024 13:03
@Samueru-sama
Copy link
Contributor Author

Could you please use the filename everywhere, as you currently have a mix of using the filename in some places and wild cards in others. Additionally it probably makes sense to assign the filename to a variable after the cd build command and reference that variable.

I haven't tested the generated AppImage yet (need to boot up my Ubuntu VM and figure out how to run and then afterwards remove AppImages).

I'm okay with doing this after build hack for the moment but in the long run it would be much better if electron-builder handled that for us, that way people would be able to reproduce the builds easier on their own machines without having to do these steps manually after the build. As for the why it does't work for the arm AppImage, that's because the GitHub runners are x64, so it would probably be a lot better if electron-builder produced the AppImages with the static runtimes in the first place instead of having to do this patching after the fact.

Done, worth mentioning that using appimagetool gives the ability of creating the .zsync files that allow for delta updates in the AppImage with AppImageUpdate, which I will try to add after this PR.

@absidue
Copy link
Member

absidue commented Oct 7, 2024

Just noticed you only did the changes for the workflow that creates the nightly builds but not for the release workflow, could you please make the changes there too?

It would also be great if you could create a feature request on the electron-builder GitHub repo to have the static runtime functionality built-in/out of the box and comment the link to the feature request here, before we consider merging these changes, so that there is a bit of hope that this after build modification won't have to stick around permanently.

@efb4f5ff-1298-471a-8973-3d47447115dc efb4f5ff-1298-471a-8973-3d47447115dc added PR: changes requested and removed PR: waiting for review For PRs that are complete, tested, and ready for review labels Oct 12, 2024
Copy link
Contributor

This PR is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 14 days.

@Samueru-sama
Copy link
Contributor Author

Just noticed you only did the changes for the workflow that creates the nightly builds but not for the release workflow, could you please make the changes there too?

It would also be great if you could create a feature request on the electron-builder GitHub repo to have the static runtime functionality built-in/out of the box and comment the link to the feature request here, before we consider merging these changes, so that there is a bit of hope that this after build modification won't have to stick around permanently.

Ok will do, sorry I've been busy with other stuff.

I also recently found out that the x86_64 appimagetool can be used to make appimages for other arch, the only thing is that I need to figure out how to extract them on the x86_64 runner.

auto-merge was automatically disabled November 14, 2024 21:20

Head branch was pushed to by a user without write access

@FreeTubeBot FreeTubeBot enabled auto-merge (squash) November 14, 2024 21:20
@absidue absidue added PR: waiting for review For PRs that are complete, tested, and ready for review and removed PR: changes requested labels Nov 27, 2024
@efb4f5ff-1298-471a-8973-3d47447115dc

Just noticed you only did the changes for the workflow that creates the nightly builds but not for the release workflow, could you please make the changes there too?
It would also be great if you could create a feature request on the electron-builder GitHub repo to have the static runtime functionality built-in/out of the box and comment the link to the feature request here, before we consider merging these changes, so that there is a bit of hope that this after build modification won't have to stick around permanently.

Ok will do, sorry I've been busy with other stuff.

I also recently found out that the x86_64 appimagetool can be used to make appimages for other arch, the only thing is that I need to figure out how to extract them on the x86_64 runner.

@Samueru-sama what are things that still need to be addressed in this PR?

@Samueru-sama
Copy link
Contributor Author

Well the PR only fixes the issue for the x64 builds.

Also while it works for the nightly builds, I'm not 100% sure if what I did for the release workflow is what needs to be done.

@FreeTubeBot FreeTubeBot merged commit b6876e2 into FreeTubeApp:development Dec 6, 2024
6 checks passed
@github-actions github-actions bot removed the PR: waiting for review For PRs that are complete, tested, and ready for review label Dec 6, 2024
jlvivero pushed a commit to jlvivero/FreeTube that referenced this pull request Dec 7, 2024
* Convert X64 AppImage to static runtime

Drops libfuse2 dependency from AppImage

* Appimage CI: small refactor, declare variable

* Convert X64 release AppImage to static runtime
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request]: libfuse2 dependency is EOL for the appimage version.
5 participants