summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Peukert2020-02-26 20:06:31 +0100
committerDaniel Peukert2020-02-26 20:06:31 +0100
commit0712f2990fd0d94e1fe897a191526d396d31073d (patch)
tree9485e70942633be6bb97b2fe04213f359deb1e63
downloadaur-0712f2990fd0d94e1fe897a191526d396d31073d.tar.gz
Added mongodb-compass-git
-rw-r--r--.SRCINFO23
-rw-r--r--.editorconfig8
-rw-r--r--.gitignore14
-rw-r--r--PKGBUILD120
-rw-r--r--hadron-build-packaging.diff25
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);
+- });
+ });
+ };