Commit Graph

111 Commits

Author SHA1 Message Date
Adrian Perez de Castro
deb4e410c7 Support signing Flatpak builds with GPG
This honors the following environment variables:

- $GPG_KEY_ID: When set, it can be the identifier, full fingerprint, or
  email address of a GnuPG key which will be used to sign Flatpak builds.

- $GPG_HOMEDIR: Path to an alternative home directory to be used by GnuPG,
  instead of the default ~/.gnupg directory of the current user. This can
  be used to point GnuPG to a different keychain.
2016-12-16 04:52:44 +02:00
Daniel Imms
588efa9e68 Remove gulp-image-resize dep unless we build flatpak 2016-12-14 10:23:39 -08:00
Daniel Imms
f087eea3bd Merge pull request #16169 from aperezdc/flatpak
Support building Flatpak application bundles
2016-12-14 10:06:55 -08:00
Adrian Perez de Castro
9383c9aa68 Support building Flatpak bundles
This adds support for building Flatpak application bundles, which should be
runnable on any Linux distribution with Flatpak support. See the page at
http://flatpak.org/getting.html

New Gulp tasks are added to prepare a directory with the needed files
(vscode-linux-${arch}-prepare-flatpak), assembling the Flatpak bundles
(vscode-linux-${arch}-flatpak), and for cleaning the build directories
(clean-vscode-linux-${arch}-flatpak). This mimics how the Debian and RPM
package creation works. Hence, building an application bundle is done with:

  $ gulp vscode-linux-x64-flatpak
  [...]
  $ ls *.flatpak
  com.visualstudio.code.oss-x86_64.flatpak

Installing and running the application is achieved with:

  $ flatpak --user install --bundle com.visualstudio.code.oss-x86_64.flatpak
  $ flatpak run com.visualstudio.code.oss

(Removing "--user" would install the application system-wide. Also note that
the "org.freedesktop.Platform" runtime needs to be installeed, check the
Flatpak website for instructions.)

The "flatpak-bundler" development dependency provides an asynchronous API to
invoke "flatpak-builder". The "gulp-image-resize" module is used to
incorporate scaling of the application icon to multiple sizes, and uses
ImageMagick (or GraphicsMagick) under the hood, which is commonly available on
most GNU/Linux distributions.

Instead of building the Electron dependencies ourselves, this uses the
io.atom.electron.BaseApp bundle as base application.

Instead of building the Electron dependencies, this reuses the
"io.atom.electron.BaseApp" bundle as base application. The contents of the
base application are imported at build time, and then Electron and the
prepared files added on top. The prebuilt base application will be fetched
automatically using the URL specified in the "baseFlatpakref" attribute of the
manifest, and it is kindly hosted at Amazon S3 by Endless Computers
(https://endlessm.com). The sources for the base application can be found at:

  https://github.com/endlessm/electron-flatpak-base-app/
2016-12-14 16:46:32 +02:00
Daniel Imms
b69e40dd8a Use license in product.json for rpm
Fixes #17133
2016-12-13 21:10:29 -08:00
Daniel Imms
9f4d4978e1 Improve rpm dependencies
Fixes #17142
2016-12-13 19:58:38 -08:00
Ted Piotrowski
98c19028ce Fix gulp methods for targeting arm systems 2016-09-22 15:36:05 -04:00
Paul Oppenheim
bccbc219cc vscode-linux-*-build-deb - permission bits match expected
fixes #11557
2016-09-05 19:40:33 -07:00
Joao Moreno
6a6cbbdb91 drop gulp-symdest 2016-09-05 12:38:29 +02:00
Joe Foster
007c2cab0d Adding gulp methods for targeting arm systems 2016-08-24 23:55:26 +01:00
Joao Moreno
9b3f9d7648 extract vscode linux build scripts 2016-07-20 11:00:50 +02:00