vscodium icon indicating copy to clipboard operation
vscodium copied to clipboard

No AppImage since 1.82.1

Open uli-heller opened this issue 2 years ago • 24 comments

Describe the bug For 1.82.0, there is an AppImage download. For 1.82.1 and 1.82.2, this download is missing

Please confirm that this problem is VSCodium-specific

  • [x] This bug doesn't happen if I use Microsoft's Visual Studio Code. It only happens in VSCodium.

Please confirm that the issue/resolution isn't already documented

  • [x] I checked the Docs page and my issue is not mentioned there.

To Reproduce Steps to reproduce the behavior:

  1. Go to https://github.com/VSCodium/vscodium/releases/tag/1.82.2.23257
  2. Search for an AppImage download -> there is no such download

Expected behavior

  1. Go to https://github.com/VSCodium/vscodium/releases/tag/1.82.0.23250
  2. Search for an AppImage download -> you will find it

uli-heller avatar Sep 21 '23 15:09 uli-heller

yep, the build is failing so it has been deactivated. A better build process is need.

daiyam avatar Sep 21 '23 16:09 daiyam

yep, the build is failing so it has been deactivated. A better build process is need.

I tried my best to fix this issue but I just could not get over GLIBC 2.x not found errors since AppImageBuilder tries to bundle it within the AppImage for backwards compatibility. As far as I know, AppImages can also be built using appimagetool but they won't be compatible with older versions of Linux than the build environment. So, this would require building in a Docker (I use Podman) inside a Ubuntu 20.04 LTS container. If you are happy with that I can help with fixing this build.

zyrouge avatar Oct 08 '23 12:10 zyrouge

@zyrouge : Maybe I can provide some help. Could you please give me a hint on how you're building the AppImage at the moment?

  • Which OS are you using?
  • Which command/script are you using?

uli-heller avatar Oct 08 '23 15:10 uli-heller

@zyrouge : Maybe I can provide some help. Could you please give me a hint on how you're building the AppImage at the moment?

* Which OS are you using?

* Which command/script are you using?

I was thinking about using the same approach I used to build Android Studio AppImage. You can refer the build script and podman commands I used for it. Theoretically, these should be almost identical or same. I use Fedora to build it locally.

zyrouge avatar Oct 08 '23 15:10 zyrouge

Thx. I'm trying a standard build for now as described within doc/build.md. Seems to take quite a while to complete. I'll post blockers here, maybe we can solve them together.

I'm using an Ubuntu-20.04 container for now and I reactivated the appimage building within "prepare_assets.sh" but it seems that I don't understand the activation/deactivation mechanism correctly at the moment. So: Lots of experiments to be done...

uli-heller avatar Oct 08 '23 16:10 uli-heller

I do have an AppImage now. My initial tests are OK. I've uploaded the AppImage to this location for now: https://github.com/uli-heller/vscodium/releases/tag/1.83.0.23282

uli-heller avatar Oct 09 '23 05:10 uli-heller

Trying to build the appimage via github workflows fails with this error:

...
+ sed -ne 's|^\([[:blank:]]*\)\([a-zA-Z0-9_]*\)[[:blank:]]*:[[:blank:]]*"\(.*\)"[[:blank:]]*$|\1\2\3|p' -e 's|^\([[:blank:]]*\)\([a-zA-Z0-9_]*\)[[:blank:]]*[:-][[:blank:]]*\(.*\)[[:blank:]]*$|\1\2\3|p' /__w/vscodium/vscodium/build/linux/appimage/recipe.yml
+ awk $'-F\034' '{
    indent = length($1)/2;
    vname[indent] = $2;
    for (i in vname) {if (i > indent) {delete vname[i]}}
        if (length($3) > 0) {
            vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
            printf("%s%s%s=(\"%s\")\n", "_",vn, $2, $3);
        }
    }'
sed: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /__w/vscodium/vscodium/build/linux/appimage/pkg2appimage.AppDir/usr/lib/x86_64-linux-gnu/libselinux.so.1)
+ sed s/_=/+=/g
sed: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /__w/vscodium/vscodium/build/linux/appimage/pkg2appimage.AppDir/usr/lib/x86_64-linux-gnu/libselinux.so.1)
Error: Process completed with exit code 1.

So: Some work to be done here...

uli-heller avatar Oct 09 '23 10:10 uli-heller

Trying to build the appimage via github workflows fails with this error:

...
+ sed -ne 's|^\([[:blank:]]*\)\([a-zA-Z0-9_]*\)[[:blank:]]*:[[:blank:]]*"\(.*\)"[[:blank:]]*$|\1�\2�\3|p' -e 's|^\([[:blank:]]*\)\([a-zA-Z0-9_]*\)[[:blank:]]*[:-][[:blank:]]*\(.*\)[[:blank:]]*$|\1�\2�\3|p' /__w/vscodium/vscodium/build/linux/appimage/recipe.yml
+ awk $'-F\034' '{
    indent = length($1)/2;
    vname[indent] = $2;
    for (i in vname) {if (i > indent) {delete vname[i]}}
        if (length($3) > 0) {
            vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
            printf("%s%s%s=(\"%s\")\n", "_",vn, $2, $3);
        }
    }'
sed: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /__w/vscodium/vscodium/build/linux/appimage/pkg2appimage.AppDir/usr/lib/x86_64-linux-gnu/libselinux.so.1)
+ sed s/_=/+=/g
sed: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /__w/vscodium/vscodium/build/linux/appimage/pkg2appimage.AppDir/usr/lib/x86_64-linux-gnu/libselinux.so.1)
Error: Process completed with exit code 1.

So: Some work to be done here...

It fails since ubuntu-latest in Github Actions uses Ubuntu 22.04.

zyrouge avatar Oct 09 '23 10:10 zyrouge

Yep 😉 Feel free to make a PR

daiyam avatar Oct 09 '23 10:10 daiyam

Yep 😉 Feel free to make a PR

Is it ok if I use podman to do the build? The other solution would be changing the Github Action's Ubuntu version to 20.04.

zyrouge avatar Oct 09 '23 10:10 zyrouge

On the other hand, there are references to "bionic" within the workflow which is ubuntu-18.04. I'm currently trying to understand which parts of the workflow use which version. Any idea?

uli-heller avatar Oct 09 '23 10:10 uli-heller

On the other hand, there are references to "bionic" within the workflow which is ubuntu-18.04. I'm currently trying to understand which parts of the workflow use which version. Any idea?

Those container images are found here. I'm not sure if the build would be successful on Ubuntu 20.04 since I didn't test pkg2appimge in it.

zyrouge avatar Oct 09 '23 10:10 zyrouge

On the other hand, there are references to "bionic" within the workflow which is ubuntu-18.04. I'm currently trying to understand which parts of the workflow use which version. Any idea?

Those container images are found here. I'm not sure if the build would be successful on Ubuntu 20.04 since I didn't test pkg2appimge in it.

I did my initial tests on a container using ubuntu-20.04. I was able to produce an AppImage so I'm optimistic

uli-heller avatar Oct 09 '23 11:10 uli-heller

I just finished another test run. I used ubuntu-18.04 and executed build/build.sh -p (same as before with 20.04). Building the appimage fails with these errors:

...
ubuntu/build/vscodium/build/linux/appimage/recipe.yml
+ awk $'-F\034' '{
    indent = length($1)/2;
    vname[indent] = $2;
    for (i in vname) {if (i > indent) {delete vname[i]}}
        if (length($3) > 0) {
            vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])("_")}
            printf("%s%s%s=(\"%s\")\n", "_",vn, $2, $3);
        }
    }'
+ sed s/_=/+=/g
sed: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /home/ubuntu/build/vscodium/build/linux/appimage/pkg2appimage.AppDir/usr/lib/x86_64-linux-gnu/libselinux.so.1)
sed: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /home/ubuntu/build/vscodium/build/linux/appimage/pkg2appimage.AppDir/usr/lib/x86_64-linux-gnu/libselinux.so.1)

uli-heller avatar Oct 09 '23 11:10 uli-heller

@zyrouge You can use whatever tool you want if it runs in a GitHub action.

daiyam avatar Oct 09 '23 11:10 daiyam

Version Date AppImage
1.82.0.23250 2023-09-07 OK
1.82.1.23255 2023-09-12 KO

On 2023-09-10 a new binary of pkg2appimage has been created. Maybe this is the cause of the failure? Has somebody the older version available?

uli-heller avatar Oct 09 '23 11:10 uli-heller

On 2023-09-10 a new binary of pkg2appimage has been created.

It is the cause of failure. Nothing else has changed between those versions.

daiyam avatar Oct 09 '23 12:10 daiyam

OK, so I'm trying to build a new version of pkg2appimage based on bionic (18.04) instead of focal (20.04). Hopefully, building the appimage will work within the bionic containers using the new version.

I guess we do not have the option to update the containers from bionic to focal since they kind of mirror the original MS containers which are still based on bionic

uli-heller avatar Oct 09 '23 12:10 uli-heller

When using https://github.com/uli-heller/pkg2appimage/releases/download/2023-10-09/pkg2appimage--x86_64.AppImage to create the appimage, it building the appimage seems to work OK.

uli-heller avatar Oct 09 '23 12:10 uli-heller

I can confirm that the build works on Ubuntu 20.04 but not on Ubuntu 18.04. Is upgrading to 20.04 possible?

zyrouge avatar Oct 09 '23 13:10 zyrouge

Hey @zyrouge, the build uses containers like this: "vscodium/vscodium-linux-build-agent:bionic-x64". These containers are derived from MS containers used within vscode builds and both are based on ubuntu-18.04. I'm not sure if it makes sense to use different build containers for vscodium.

The change below fixes the appimage build:

diff --git a/build/linux/appimage/build.sh b/build/linux/appimage/build.sh
index 0242727..068981d 100755
--- a/build/linux/appimage/build.sh
+++ b/build/linux/appimage/build.sh
@@ -7,7 +7,7 @@ CALLER_DIR=$( pwd )
 cd "$( dirname "${BASH_SOURCE[0]}" )"
 
 if [[ "${VSCODE_ARCH}" == "x64" ]]; then
-  GITHUB_RESPONSE=$( curl --silent --location "https://api.github.com/repos/AppImage/pkg2appimage/releases/latest" )
+  GITHUB_RESPONSE=$( curl --silent --location "https://api.github.com/repos/uli-heller/pkg2appimage/releases/latest" )
   APPIMAGE_URL=$( echo "${GITHUB_RESPONSE}" | jq --raw-output '.assets | map(select( .name | test("x86_64.AppImage(?!.zsync)"))) | map(.browser_download_url)[0]' )
 
   if [[ -z "${APPIMAGE_URL}" ]]; then

Maybe I should make a PullRequest to pkg2appimage to creates version compatible with ubuntu-18.04? Then, we can keep the urls pointing to somthing underneath .../repos/AppImage/...

pkg2appimage:

  • issue - https://github.com/AppImageCommunity/pkg2appimage/issues/544
  • pull request - https://github.com/AppImageCommunity/pkg2appimage/pull/545

vscodium

  • draft pull request - https://github.com/VSCodium/vscodium/pull/1687

uli-heller avatar Oct 09 '23 13:10 uli-heller

The best would be to split the appimage to a new job that:

  • run on Ubuntu 20.04
  • download the needed .deb
  • build the .appimage
  • upload the .appimage

daiyam avatar Oct 09 '23 17:10 daiyam

@daiyam : OK, I think I've already done some experiments in this direction. The .appimage creation will then be done similar to SNAP and AUR

uli-heller avatar Oct 09 '23 17:10 uli-heller

Hi, the Insiders version is available at https://github.com/VSCodium/vscodium-insiders/releases/tag/1.86.0.24038-insider. Could you test it and report if you are having some issues. Thx

daiyam avatar Feb 07 '24 19:02 daiyam

VSCodium 1.86.2.24053 has an appimage.

daiyam avatar Feb 22 '24 15:02 daiyam