diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 84 |
1 files changed, 63 insertions, 21 deletions
@@ -1,30 +1,34 @@ # Maintainer: Michael Hansen <zrax0111 gmail com> +# Contributor: Francisco Magalhães <franmagneto gmail com> -# Set this to 0 if you want to include only the open-source Visual Studio Code -# components. This will cause the extension manager to work in a local-only -# mode (you'll have to download and install extensions manually). -[[ -z "$VSCODE_NONFREE" ]] && VSCODE_NONFREE=1 +# Set this to 1 if you want to enable the proprietary Visual Studio Code +# features. Leaving this at 0 will cause the extension manager to work in +# a local-only mode (you'll have to download and install extensions manually). +[[ -z "$VSCODE_NONFREE" ]] && VSCODE_NONFREE=0 pkgname=visual-studio-code-git pkgdesc='Visual Studio Code for Linux, Open Source version from git' -pkgver=1.1.0.insider.r6983.gd3171a3 +pkgver=1.1.0.insider.r16716.g37c73f0c71 pkgrel=1 -arch=('i686' 'x86_64') +arch=('i686' 'x86_64' 'armv7h') url='https://code.visualstudio.com/' license=('MIT') -makedepends=('npm' 'nodejs>=6.8.0' 'gulp' 'python2') -depends=('gtk2' 'gconf' 'libnotify' 'libxss' 'libxtst' 'nss' 'alsa-lib') +makedepends=('npm' 'nodejs>=6.8.0' 'gulp' 'python2' 'git') +depends=('gtk2' 'gconf' 'libnotify' 'libxss' 'libxtst' 'libxkbfile' 'nss' + 'alsa-lib') conflicts=('vscode-oss' 'visual-studio-code-oss') provides=('vscode-oss' 'visual-studio-code-oss') source=("git+https://github.com/Microsoft/vscode" + "startup_script.patch" "${pkgname}.desktop") -sha1sums=('SKIP' - 'a42e461ed586ef0fd31ff911ad662135f4f602aa') +sha256sums=('SKIP' + '8b2feded3382e5bf6b5b292c14083bfc536c05cd00f3235dd22b75b67fba134d' + 'f853d7d998251223b0516928a2189e1e68a312bd732f18dc8d59892659beeae9') if (( VSCODE_NONFREE )); then source+=('product_json.patch') - sha1sums+=('ba8febe936932080610d899fdb57294fc2f9f614') + sha256sums+=('e90f9d69bd42c0d9fc5f081d3bf7ca307df53e3553efadf00d62ced66b1bb070') install="${pkgname}.nonfree.install" license+=('proprietary') fi @@ -36,6 +40,9 @@ case "$CARCH" in x86_64) _vscode_arch=x64 ;; + armv7h) + _vscode_arch=arm + ;; *) # Needed for mksrcinfo _vscode_arch=DUMMY @@ -59,24 +66,59 @@ prepare() { fi } +# npm.sh wrapper puts things in the user's home directory... +# To avoid that, we perform its environment setup manually instead +npm_wrap() { + ( + ROOT="${srcdir}/vscode" + ELECTRON_VERSION=$( + cat "$ROOT"/package.json | + grep electronVersion | + sed -e 's/[[:space:]]*"electronVersion":[[:space:]]*"\([0-9.]*\)"\(,\)*/\1/' + ) + + ELECTRON_GYP_HOME="${srcdir}/electron-gyp" + mkdir -p $ELECTRON_GYP_HOME + + npm_config_disturl=https://atom.io/download/electron \ + npm_config_target=$ELECTRON_VERSION \ + npm_config_runtime=electron \ + HOME=$ELECTRON_GYP_HOME \ + npm $* + ) +} + build() { cd "${srcdir}/vscode" - ./scripts/npm.sh install --arch=${_vscode_arch} + # The provided shrinkwrap file doesn't work correctly with npm 5.x + # Therefore, we install an older version and use that for the build + ( cd "${srcdir}" && /usr/bin/npm install 'npm@4.6.1' ) + PATH="${srcdir}/node_modules/.bin":$PATH + + npm_wrap install --arch=${_vscode_arch} - # The default memory limit is too low for current versions of node to - # successfully build vscode. This will set it to 2GB -- change it if - # this number still doesn't work for your system. - node --max_old_space_size=2048 /usr/bin/gulp vscode-linux-${_vscode_arch} + # The default memory limit may be too low for current versions of node + # to successfully build vscode. Uncomment this to set it to 2GB, or + # change it if this number still doesn't work for your system. + #mem_limit="--max_old_space_size=2048" + /usr/bin/node $mem_limit /usr/bin/gulp vscode-linux-${_vscode_arch} + + # Patch the startup script to know where the app is installed, rather + # than guessing... + ( cd "${srcdir}/VSCode-linux-${_vscode_arch}" && \ + patch -p1 -i "${srcdir}/startup_script.patch" ) } package() { - install -m 0755 -d "${pkgdir}/opt/VSCode-OSS" - cp -r "${srcdir}/VSCode-linux-${_vscode_arch}"/* "${pkgdir}/opt/VSCode-OSS" + install -m 0755 -d "${pkgdir}/usr/share/code-oss" + cp -r "${srcdir}/VSCode-linux-${_vscode_arch}"/* "${pkgdir}/usr/share/code-oss" + + # Put the startup script in /usr/bin + mv "${pkgdir}/usr/share/code-oss/bin" "${pkgdir}/usr" - # Include symlink in system bin directory - install -m 0755 -d "${pkgdir}/usr/bin" - ln -s '/opt/VSCode-OSS/bin/code-oss' "${pkgdir}/usr/bin/${pkgname}" + # Add symlink to the name we provided in older versions of this package + ln -s code-oss "${pkgdir}/usr/bin/${pkgname}" # Add .desktop file install -D -m644 "${srcdir}/${pkgname}.desktop" \ |