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

Support building Flatpak application bundles #16169

Merged
merged 1 commit into from
Dec 14, 2016
Merged

Support building Flatpak application bundles #16169

merged 1 commit into from
Dec 14, 2016

Commits on Dec 14, 2016

  1. 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/
    aperezdc committed Dec 14, 2016
    Configuration menu
    Copy the full SHA
    9383c9a View commit details
    Browse the repository at this point in the history