diff options
author | Daniel Peukert | 2020-02-26 20:06:31 +0100 |
---|---|---|
committer | Daniel Peukert | 2020-02-26 20:06:31 +0100 |
commit | 0712f2990fd0d94e1fe897a191526d396d31073d (patch) | |
tree | 9485e70942633be6bb97b2fe04213f359deb1e63 | |
download | aur-0712f2990fd0d94e1fe897a191526d396d31073d.tar.gz |
Added mongodb-compass-git
-rw-r--r-- | .SRCINFO | 23 | ||||
-rw-r--r-- | .editorconfig | 8 | ||||
-rw-r--r-- | .gitignore | 14 | ||||
-rw-r--r-- | PKGBUILD | 120 | ||||
-rw-r--r-- | hadron-build-packaging.diff | 25 |
5 files changed, 190 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..00b3e141d51b --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,23 @@ +pkgbase = mongodb-compass-readonly-git + pkgdesc = The official GUI for MongoDB - Readonly Edition - git version + pkgver = 1.21.0.r3236.dd8caa98 + pkgrel = 1 + url = https://www.mongodb.com/products/compass + arch = x86_64 + arch = i686 + arch = armv7h + arch = aarch64 + license = custom:SSPL + makedepends = git + makedepends = npm + depends = electron6 + depends = krb5 + depends = libsecret + provides = mongodb-compass-readonly + conflicts = mongodb-compass-readonly + source = mongodb-compass-readonly-git::git+https://github.com/mongodb-js/compass + source = hadron-build-packaging.diff + sha256sums = SKIP + sha256sums = 87ec3245af05788c1c0d7070fcd4e425a0a22dbf7a4ae194a5dce8ade88d519a + +pkgname = mongodb-compass-readonly-git diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000000..a467ee9a97a6 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = tab +tab_width = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..82b3c183d5d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# from https://github.com/github/gitignore/blob/master/ArchLinuxPackages.gitignore +*.tar +*.tar.* +*.rpm +*.jar +*.exe +*.msi +*.zip +*.tgz +*.log +*.log.* +*.sig + +*/ diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..d42d51704e34 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,120 @@ +# Maintainer: Daniel Peukert <dan.peukert@gmail.com> +_target='compass-readonly' +_pkgname="mongodb-$_target" +pkgname="$_pkgname-git" +pkgver='1.21.0.r3236.dd8caa98' +pkgrel='1' +pkgdesc='The official GUI for MongoDB - Readonly Edition - git version' +arch=('x86_64' 'i686' 'armv7h' 'aarch64') +url='https://www.mongodb.com/products/compass' +license=('custom:SSPL') +depends=('electron6' 'krb5' 'libsecret') +makedepends=('git' 'npm') +provides=("$_pkgname") +conflicts=("$_pkgname") +source=( + "$pkgname::git+https://github.com/mongodb-js/compass" + 'hadron-build-packaging.diff' +) +sha256sums=('SKIP' + '87ec3245af05788c1c0d7070fcd4e425a0a22dbf7a4ae194a5dce8ade88d519a') + +_sourcedirectory="$pkgname" + +pkgver() { + cd "$srcdir/$_sourcedirectory/" + # pkgver() gets run after prepare(), so we can just get the _aurversion field from package.json + sed -nE 's|.*"_aurversion": "(.*)".*|\1|p' 'package.json' +} + +prepare() { + cd "$srcdir/$_sourcedirectory/" + + # Replace version in package.json + _origversion="$(sed -nE 's|.*"version": "(.*)".*|\1|p' 'package.json')" + _compassversion="$(echo "$_origversion" | cut -d '.' -f 1-2).$(git rev-list --count HEAD)" + _aurversion="$(echo "$_origversion" | cut -d '-' -f 1).r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" + sed -E -i 's|"version": ".*",|"version": "'"$_compassversion"'",\n"_aurversion": "'"$_aurversion"'",|' 'package.json' + + # Loosen node version restriction + sed -E -i 's|("node": ").*"|\1'"$(node -v | sed 's/^v//')"'"|' 'package.json' + + # Set system Electron version for ABI compatibility + sed -E -i 's|("electron": ").*"|\1'"$(cat '/usr/lib/electron6/version')"'"|' 'package.json' + + # Prepare dependencies + export HOME="$srcdir/$pkgname-home" + export XDG_CACHE_HOME="$srcdir/$pkgname-cache" + export npm_config_devdir="$srcdir/$pkgname-npm-dev" + export npm_config_cache="$srcdir/$pkgname-npm-cache" + + npm install + + # Disable hadron-build packaging + patch -d 'node_modules/hadron-build/' --forward -p1 < '../hadron-build-packaging.diff' +} + +build() { + cd "$srcdir/$_sourcedirectory/" + + export NODE_ENV='production' + export HOME="$srcdir/$pkgname-home" + export XDG_CACHE_HOME="$srcdir/$pkgname-cache" + export npm_config_devdir="$srcdir/$pkgname-npm-dev" + export npm_config_cache="$srcdir/$pkgname-npm-cache" + + # electron-packager does not support building against a local electron binary, + # the best we can do for now is to just set the electron version in package.json + # and let electron-packager use it for building + # https://github.com/electron/electron-packager/issues/187 + + npm run release "$_target" +} + +package() { + local _distFolder="$srcdir/$_sourcedirectory/dist/MongoDB Compass Readonly-linux" + case "$CARCH" in + i686) + _distFolder="$_distFolder-ia32" + ;; + armv7h) + _distFolder="$_distFolder-armv7l" + ;; + aarch64) + _distFolder="$_distFolder-arm64" + ;; + *) + _distFolder="$_distFolder-x64" + ;; + esac + cd "$_distFolder/" + + install -Dm644 'resources/app.asar' "$pkgdir/usr/lib/$_pkgname/app.asar" + cp -r --no-preserve=ownership --preserve=mode 'resources/app.asar.unpacked/' "$pkgdir/usr/lib/$_pkgname/app.asar.unpacked/" + + install -dm755 "$pkgdir/usr/bin/" + cat << EOF > "$pkgdir/usr/bin/$_pkgname" +#!/bin/sh +NODE_ENV=production electron6 /usr/lib/$_pkgname/app.asar "\$@" +EOF + chmod +x "$pkgdir/usr/bin/$_pkgname" + + install -dm755 "$pkgdir/usr/share/applications/" + cat << EOF > "$pkgdir/usr/share/applications/$_pkgname.desktop" +[Desktop Entry] +Name=MongoDB Compass Readonly +Comment=The official GUI for MongoDB +Exec=$_pkgname %U +Icon=$_pkgname +Type=Application +StartupNotify=true +Categories=Office;Database;Building;Debugger;IDE;GUIDesigner;Profiling; +EOF + + install -Dm644 "$srcdir/$_sourcedirectory/src/app/images/linux/mongodb-compass.png" "$pkgdir/usr/share/icons/pixmaps/$_pkgname.png" + + install -dm755 "$pkgdir/usr/share/licenses/$pkgname/" + for _license in 'LICENSE' 'LICENSES.chromium.html'; do + install -Dm644 "$_license" "$pkgdir/usr/share/licenses/$pkgname/$_license" + done +} diff --git a/hadron-build-packaging.diff b/hadron-build-packaging.diff new file mode 100644 index 000000000000..71ef5f6fc660 --- /dev/null +++ b/hadron-build-packaging.diff @@ -0,0 +1,25 @@ +diff --git a/commands/release.js b/commands/release.js +index ea6b71e..6f77a55 100644 +--- a/commands/release.js ++++ b/commands/release.js +@@ -561,9 +561,7 @@ exports.run = (argv, done) => { + task('create module cache', createModuleCache), + task('create packaged styles', createPackagedStyles), + task('remove development files', removeDevelopmentFiles), +- task('create application asar', createApplicationAsar), +- task('create branded installer', createBrandedInstaller), +- task('create application zip', createApplicationZip) ++ task('create application asar', createApplicationAsar) + ]); + + return async.series(tasks, (_err) => { +@@ -577,9 +575,5 @@ exports.run = (argv, done) => { + exports.handler = (argv) => { + exports.run(argv, (_err, CONFIG) => { + cli.abortIfError(_err); +- cli.ok(`${CONFIG.assets.length} assets successfully built`); +- CONFIG.assets.map(function(asset) { +- cli.info(asset.path); +- }); + }); + }; |