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

Provide official AppImage builds for Linux #10857

Closed
probonopd opened this issue Aug 23, 2016 · 74 comments
Closed

Provide official AppImage builds for Linux #10857

probonopd opened this issue Aug 23, 2016 · 74 comments
Assignees
Labels
feature-request Request for new features or functionality install-update VS Code installation and upgrade system issues linux Issues with VS Code on Linux *out-of-scope Posted issue is not in scope of VS Code

Comments

@probonopd
Copy link

probonopd commented Aug 23, 2016

Please provide Visual Studio Code in the AppImage format for Linux. This would allow users to

  • Test Visual Studio Code without having to install it
  • Use Visual Studio Code on machines where they have no root rights
  • Run Visual Studio Code on Linux distributions for which no native package is provided

AppImage is a bundling format for Linux that lets users download one single file, set the executable bit and run the application (here: Visual Studio Code). Unlike other options, AppImage is entirely distribution-agnostic and no special runtime infrastructure is needed on the target system(s). This means that the user can run the application on almost any recent Linux distribution.

It is easy to convert the official deb builds to AppImages using this script.

@sandy081 sandy081 added the install-update VS Code installation and upgrade system issues label Aug 24, 2016
@joaomoreno
Copy link
Member

joaomoreno commented Aug 24, 2016

cc @Microsoft/vscode

@probonopd This is incredibly cool. I've just watched your presentation on Youtube and everything resonated with me. I admire the work you're doing there, keep it up!

@Tyriar Given the huge friction we're seeing with auto-updates on the deb and rpm packages and the crazy benefits this would give us in terms of packaging and incremental updates, I'd be willing to push towards making AppImage our default and recommended distribution method for VS Code alongside a preventive ZIP archive. After a proper investigation, of course.

@joaomoreno joaomoreno added the feature-request Request for new features or functionality label Aug 24, 2016
@probonopd
Copy link
Author

probonopd commented Aug 24, 2016

Thanks @joaomoreno for your kind words; your PowerShell colleagues are currently also reviewing it for PowerShell distribution.

@probonopd
Copy link
Author

By the way, I don't know how applicable this is here, but electron-builder has support for building AppImages for Electron applications too.

@probonopd
Copy link
Author

probonopd commented Aug 24, 2016

Here are some example AppImages of Electron-based apps that you can download and try:

I could upload one of Visual Studio Code but am uncertain whether the license permits it.

@joaomoreno
Copy link
Member

Go ahead, we are MIT.

@probonopd
Copy link
Author

probonopd commented Aug 24, 2016

Here is my experimental Visual Studio Code AppImage generated by the script above on Travis CI (build log):

https://bintray.com/probono/AppImages/VSCode#files

To download and run, simply:

VSCODE="VSCode-1.4.0-x86_64.AppImage"
wget -c "https://bintray.com/probono/AppImages/download_file?file_path=$VSCODE" -O "$VSCODE"
chmod a+x "$VSCODE"
./"$VSCODE"

Since the AppImage packaging runs on Travis CI this can be integrated into CI workflows easily. It is expected that some fine-tuning might still be needed, ideally with the help from the upstream team.

Known to run on

  • Chromixium-1.5-amd64.iso
  • debian-live-8.0.0-amd64-xfce-desktop+nonfree.iso
  • debian-live-8.4.0-amd64-gnome-desktop.iso
  • CentOS-7.0-1406-x86_64-GnomeLive.iso
  • CentOS-7-x86_64-LiveGNOME-1511.iso
  • elementary_OS_0.3_freya_amd64.iso
  • Fedora-Live-Workstation-x86_64-22-3.iso
  • Fedora-Live-Workstation-x86_64-23-10.iso
  • kali-linux-2016.1-amd64.iso
  • kubuntu-14.04.4-desktop-amd64.iso
  • kubuntu-15.04-desktop-amd64.iso
  • kubuntu-16.04-desktop-amd64.iso
  • neon-useredition-20160609-0826-amd64.iso
  • SL-72-x86_64-2016-02-03-LiveDVDgnome.iso
  • ubuntu-14.04.1-desktop-amd64.iso
  • ubuntu-16.04-desktop-amd64.iso
  • ubuntu-gnome-16.04-desktop-amd64.iso
  • ubuntu-mate-16.04-desktop-amd64.iso
  • xubuntu-16.04-desktop-amd64.iso

Does not run on very outdated distributions (to make this work, vscode would need to be compiled on an older build system):

  • CentOS-6.7-x86_64-LiveCD.iso
  • ubuntu-12.04.5-desktop-amd64.iso
  • ubuntu-12.10-desktop-amd64.iso

@joaomoreno
Copy link
Member

It just works, so cool! Thanks for the sample. We will definitely consider this.

@probonopd
Copy link
Author

Renamed and added desktop integration (optional installation into the start menu). Download links updated above.

@joaomoreno joaomoreno added this to the Backlog milestone Aug 24, 2016
@probonopd
Copy link
Author

@joaomoreno are the binaries at https://vscode-update.azurewebsites.net/latest/linux-deb-x64/stable generated by a Travis CI run, and if so, where is the respective code? I could try to hook in there and send a PR which also builds an AppImage using the binaries generated anyway for the deb.

@joaomoreno
Copy link
Member

@probonopd They are generated from our internal build. Building and distributing VS Code is not open source, so you'll have to leave picking this up to us for now.

@ghost
Copy link

ghost commented Sep 15, 2016

Arch Linux user here. There doesn't appear to be a package for my system. Collecting dependencies and compiling is a pain, I'd love to have an appimage. The one linked above seems to no longer exist.

@Tyriar
Copy link
Member

Tyriar commented Sep 15, 2016

@GitRASQ the community has put up an AUR package which we recommend. https://aur.archlinux.org/packages/visual-studio-code/

@fusion809
Copy link
Contributor

I have provided a code-oss Debian package (https://github.com/fusion809/code-oss/releases/tag/debian1.6.1) and built an AppImage from it.

@probonopd
Copy link
Author

@fusion809 thanks for your effort but please be aware that only Microsoft can build an official AppImage with the official branding as far as I understand.

@fusion809
Copy link
Contributor

fusion809 commented Nov 1, 2016

Official branding? What's meant by that? I built an OSS build of code-oss using, the build system that VSCode's official developers put in place. This build is MIT licensed so I can build my own AppImage with it and distribute it, without breaching copyright.

@Tyriar
Copy link
Member

Tyriar commented Nov 1, 2016

I don't think this line for example is allowed since the "Visual Studio" branding can only be used in official builds by Microsoft. That's the main reason for the whole "Code (OSS)" vs "VS Code" thing. Same story with the logo.

@fusion809
Copy link
Contributor

fusion809 commented Nov 2, 2016

I just use the code-oss repo as a place to upload the Debian package, it's does not contain the sources used to build the Debian package. That's used to build an Arch Linux package.

@Tyriar
Copy link
Member

Tyriar commented Nov 2, 2016

"code-oss" is fine, it's branding it as Visual Studio and using the logo that could potentially be an issue.

@Tyriar
Copy link
Member

Tyriar commented Nov 2, 2016

Some more info on the topic from one of our PMs #60 (comment)

@fusion809
Copy link
Contributor

fusion809 commented Nov 2, 2016

Well if that's the only problems with my code-oss Debian package I've rebuilt it without any of the MIT license-breakers. Then I built an AppImage and it's working fine. So @probonopd I suspect all is good now and you can provide my AppImage at Bintray.

@probonopd
Copy link
Author

@Tyriar any chance you would provide an official AppImage?

@Tyriar
Copy link
Member

Tyriar commented Dec 19, 2016

We'll be getting signed apt/yum repos soon, polishing that experience is the priority on this front for now.

@probonopd
Copy link
Author

Would you consider merging a PR if I sent one that would generate an AppImage for each continuous build on Travis CI?

@rzr
Copy link

rzr commented Dec 21, 2018

Maybe not related by docker images could help eventually too
specially if debian is able to rebuild and distribute deb package:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898259

@probonopd
Copy link
Author

probonopd commented Dec 22, 2018

https://flathub.org/apps/details/com.visualstudio.code has it, as does https://snapcraft.io/vscode, with full branding and everything. So I assume we are allowed to do the same in AppImage format?

This is the proprietary Microsoft build of Visual Studio Code, packaged into a Flatpak. This repackaging is not supported by Microsoft.

Source: https://flathub.org/apps/details/com.visualstudio.code

This snap is maintained by the Snapcrafters community, and is not necessarily endorsed or officially maintained by the upstream developers.

Source: https://snapcraft.io/vscode

With AppImage, the VSCode team has the opportunity to distribute the application in exactly the form they like, with full control from the building to the downloading phase.

@probonopd
Copy link
Author

probonopd commented Dec 22, 2018

What would be needed for the team to reconsider providing an official AppImage build? @Tyriar

vscode

In the meantime, you can easily make your own using this recipe like this on a Debian/Ubuntu system:

wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
bash -ex pkg2appimage VSCode

(Debian/Ubuntu system is needed for the conversion from deb to AppImage because the tooling uses apt and dpkg, but the resulting AppImage should be able to run on other systems, too.)

Here is the recipe:
https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml

@leandrocrs
Copy link

What would be needed for the team to reconsider providing an official AppImage build? @Tyriar

vscode

In the meantime, you can easily make your own using this recipe like this on a Debian/Ubuntu system:

wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
bash -ex pkg2appimage VSCode

(Debian/Ubuntu system is needed for the conversion from deb to AppImage because the tooling uses apt and dpkg, but the resulting AppImage should be able to run on other systems, too.)

Here is the recipe:
https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml

I tried this recipe in KDE Neon with code-insiders_1.33.0-1553235446_amd64.deb package and got this output:

eval: line 108: unexpected EOF while looking for matching ``'

@probonopd
Copy link
Author

The following works for me on xubuntu-18.04-desktop-amd64.iso:

wget https://raw.githubusercontent.com/AppImage/pkg2appimage/master/pkg2appimage
bash -ex ./pkg2appimage VSCode

What do you mean by

with code-insiders_1.33.0-1553235446_amd64.deb

?

The recipe currently gets 1.32.3-1552606978.

@leandrocrs
Copy link

The following works for me on xubuntu-18.04-desktop-amd64.iso:

wget https://raw.githubusercontent.com/AppImage/pkg2appimage/master/pkg2appimage
bash -ex ./pkg2appimage VSCode

What do you mean by

with code-insiders_1.33.0-1553235446_amd64.deb

?

The recipe currently gets 1.32.3-1552606978.

I didn't get it.
The script does not convert debian package to appImage?
I'm running it against Code Insiders build.

@probonopd
Copy link
Author

@leandrocrs
Copy link

pkg2appimage uses https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml to produce a VSCode AppImage, It downloads the application from https://github.com/AppImage/pkg2appimage/blob/e42f51314b02364497ac65286068c7f71d7779ea/recipes/VSCode.yml#L19.

I think I get it. This script targets to stable build, not insiders.

@probonopd
Copy link
Author

Yes, but you can make a variation of it that downloads and uses the insiders build.

@ergonomicus
Copy link

@probonopd Any idea why Git doesn't work in AppImage? I have tried setting a path, but no luck.

@probonopd
Copy link
Author

Please define "does not work". Do you get an error message?

@ergonomicus
Copy link

Well, that's on my work computer, but I think the error message was something like "Git is not installed on your system". I have tried '/usr/bin/git', just 'git' and what not, but I get the same error message.

@probonopd
Copy link
Author

Is git installed on your system?

@ergonomicus
Copy link

Yes, working all the time in it. And 'which git' gives me '/usr/bin/git'.

@cadamsdev
Copy link

cadamsdev commented Apr 27, 2019

What is the state of this ticket?

I would also like to see an official build for AppImage.

The reasons for this is because...
Flatpak:

  • Terminal doesn't work (due to sandboxing)
    Snap:
  • Startup is painfully slow
    AppImage: just works without any problems.

@Tyriar
Copy link
Member

Tyriar commented Apr 27, 2019

What is the state of this ticket?

No plans to support officially.

Snap: Startup is painfully slow

I believe this issue was fixed a while ago after we reported it to the snapcraft team #61613 (comment)

@cadamsdev
Copy link

cadamsdev commented Apr 27, 2019

@Tyriar I will try using the snap when I can actually install snaps again... I always use snaps as last resort because I always have so many problems with them. I just opened up an issue for snaps because I can't even install any.

https://bugs.launchpad.net/snapd/+bug/1826662

Reason I use AppImage is because I use several linux distros. I use Fedora (rpm based) for work and Ubuntu (deb based) for my home computer. I just had to install vscode using a debian package because snap wasn't working for me. Then on my fedora system I had to install using an rpm because Flatpak (terminal doesn't work in vscode) and snapd had issues for me.. Would be nice if I can just take that one file and run vscode without looking for a deb or rpm which defeats the purpose of these universal formats that we should be moving to.

Is there any downsides of doing this?

I really hope you can reconsider.

@Tyriar
Copy link
Member

Tyriar commented Apr 27, 2019

@chadalen thanks for reporting that, it worked fine for me on Ubuntu 19.04 when I tried last week.

Is there any downsides of doing this?

If everyone had their way we would be distributing tarball, deb, rpm, snap, flatpak, appimage and AUR packages. The cost of implementing and supporting all of them is too high.

Right now there are community-based options for appimage, flatpak and AUR if you really want to use them over what we provide. Seems fairly simple to use https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml and you can see from the source that it's derived from our deb package.

@cadamsdev
Copy link

@Tyriar Ok I see your point. Thanks for your response.

@mick33
Copy link

mick33 commented Nov 9, 2019

thanks probonopd !

@probonopd
Copy link
Author

Just for information if you are looking for an AppImage, the VSCodium project is providing binary releases of VS Code without MS branding/telemetry/licensing, including AppImages:
https://github.com/VSCodium/vscodium/releases

@Tyriar
Copy link
Member

Tyriar commented Nov 11, 2019

In the interest of transparency I'm closing this issue as out of scope as we do not plan on implementing this in the foreseeable future and keeping the issue open gives the wrong impression that we may. The primary reasons for closing is that the cost to maintain and support yet another distribution mechanism is too high for too little payoff. You can read more on our issue triaging wiki page on why we close issues.

@Tyriar Tyriar closed this as completed Nov 11, 2019
@Tyriar Tyriar added the *out-of-scope Posted issue is not in scope of VS Code label Nov 11, 2019
@mightyiam
Copy link

I'm happy with the snap on Ubuntu.

@godalming123
Copy link

I suggest if we want an app image support we switch to vscodium as they have an official release for appimegs https://github.com/VSCodium/vscodium/releases/tag/1.59.0

@sean-gray
Copy link

I agree 100%. We run Fedora SilverBLue and it would be a lifesaver. and @Tyriar appimages can replace deb and rpm builds.

@kdm6389
Copy link

kdm6389 commented Sep 21, 2023

appimegs are good

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality install-update VS Code installation and upgrade system issues linux Issues with VS Code on Linux *out-of-scope Posted issue is not in scope of VS Code
Projects
None yet
Development

No branches or pull requests