summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO26
-rw-r--r--PKGBUILD117
-rw-r--r--drawio.xml8
3 files changed, 107 insertions, 44 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 26ea3691321d..2550ad35791b 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,17 +1,21 @@
pkgbase = drawio-desktop
pkgdesc = Diagram drawing application built on web technology
- pkgver = 10.9.6
+ pkgver = 24.2.5
pkgrel = 1
- url = https://github.com/jgraph/drawio
- arch = x86_64
- license = Apache
- makedepends = npm
- depends = electron
- depends = gconf
+ url = https://github.com/jgraph/drawio-desktop
+ arch = any
+ license = Apache-2.0
+ makedepends = yarn
+ makedepends = nodejs>=12
+ depends = electron28
depends = libnotify
- noextract = drawio-desktop-10.9.6.zip
- source = drawio-desktop-10.9.6.zip::https://github.com/jgraph/drawio/releases/download/v10.9.6/draw.war
- sha256sums = 1c0bf26f52c3c5f1a66f9be005d83946be47fea43737888d43819b7ff5202498
+ depends = shared-mime-info
+ options = !strip
+ source = drawio-24.2.5.tar.gz::https://github.com/jgraph/drawio/archive/v24.2.5.tar.gz
+ source = drawio-desktop-24.2.5.tar.gz::https://github.com/jgraph/drawio-desktop/archive/v24.2.5.tar.gz
+ source = drawio.xml
+ sha512sums = b850c87e296d19a7481f73d0e9e966d46996d407acc6841215cfa32912e7022f38f9266753ade9a58d7df999c066fee0e23c61735df81157f6f85a16165333b9
+ sha512sums = 64fe04d1afd07d90f833a8eee64a3ebbbf186c9e039e8d53d957eaa902ae059497a06a9607199c826f9261acf57d825cb75877a2e3c0b8b548f3f8ebdc17fc6d
+ sha512sums = 8899108b4112f065173a077ca68d4d915780bcc993c69924098e134fa05338a20cb0391720b7b45c27071f789fbe5a6a02228dd633570e91fb4482082c480539
pkgname = drawio-desktop
-
diff --git a/PKGBUILD b/PKGBUILD
index 1ced330d7383..740ee0b78605 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,50 +1,85 @@
-# Maintainer: kitsunyan <`echo a2l0c3VueWFuQGFpcm1haWwuY2MK | base64 -d`>
+# Maintainer: Dmitry Valter <`echo ZHZhbHRlciA8YXQ+IHByb3Rvbm1haWwgPGRvdD4gY29tCg== | base64 -d`>
pkgname=drawio-desktop
-pkgver=10.9.6
+pkgver=24.2.5
pkgrel=1
pkgdesc='Diagram drawing application built on web technology'
-arch=('x86_64')
-url='https://github.com/jgraph/drawio'
-license=('Apache')
-depends=(electron gconf libnotify)
-makedepends=(npm)
-source=("drawio-desktop-$pkgver.zip::https://github.com/jgraph/drawio/releases/download/v$pkgver/draw.war")
-noextract=("drawio-desktop-$pkgver.zip")
-sha256sums=('1c0bf26f52c3c5f1a66f9be005d83946be47fea43737888d43819b7ff5202498')
-
-prepare() {
- rm -rf "$srcdir/drawio-$pkgver"
- mkdir "$srcdir/drawio-$pkgver"
- cd "$srcdir/drawio-$pkgver"
-
- bsdtar -xf "../drawio-desktop-$pkgver.zip" -C .
- rm -rf "META-INF" "WEB-INF"
+arch=('any')
+url='https://github.com/jgraph/drawio-desktop'
+license=('Apache-2.0')
+_electronver=28
+depends=("electron$_electronver" libnotify shared-mime-info)
+makedepends=(yarn 'nodejs>=12')
+options=('!strip')
+source=("drawio-$pkgver.tar.gz::https://github.com/jgraph/drawio/archive/v$pkgver.tar.gz"
+ "drawio-desktop-$pkgver.tar.gz::https://github.com/jgraph/drawio-desktop/archive/v$pkgver.tar.gz"
+ "drawio.xml")
+sha512sums=('b850c87e296d19a7481f73d0e9e966d46996d407acc6841215cfa32912e7022f38f9266753ade9a58d7df999c066fee0e23c61735df81157f6f85a16165333b9'
+ '64fe04d1afd07d90f833a8eee64a3ebbbf186c9e039e8d53d957eaa902ae059497a06a9607199c826f9261acf57d825cb75877a2e3c0b8b548f3f8ebdc17fc6d'
+ '8899108b4112f065173a077ca68d4d915780bcc993c69924098e134fa05338a20cb0391720b7b45c27071f789fbe5a6a02228dd633570e91fb4482082c480539')
+
+build() {
+ rm -rf "$srcdir/drawio-desktop-$pkgver/drawio"
+ mv "$srcdir/drawio-$pkgver" "$srcdir/drawio-desktop-$pkgver/drawio"
+ cd "$srcdir/drawio-desktop-$pkgver"
+
+ # clean unused files up
+ rm -rfv drawio/src/main/webapp/META-INF drawio/src/main/webapp/WEB-INF
+
+ # Electron version compatibility check
+ echo "Checking electron version"
+ grep -qF "\"electron\": \"$_electronver." 'package.json'
# disable updater
sed -e '/electron-updater/d' -i 'package.json'
+ sed -e '/"electron":/d' -i 'package.json'
+ sed -e '/"electron-builder":/d' -i 'package.json'
+ sed -e '/"electron-notarize":/d' -i 'package.json'
local updater='const autoUpdater = { on: () => {}, setFeedURL: () => {}, checkForUpdates: () => {} }'
- sed -e 's/.*require("electron-updater").*/'"$updater"'/' -e '/checkForUpdates,/d' -i 'electron.js'
-}
+ sed -e 's/.*require("electron-updater").*/'"$updater"'/' -e '/checkForUpdates,/d' -i 'src/main/electron.js'
-build() {
- cd "$srcdir/drawio-$pkgver"
+ # fix version in package.json
+ sed -i 's/"version": ".*"/"version": "'"$pkgver"'"/g' package.json
+
+ cd "$srcdir/drawio-desktop-$pkgver"
+ yarn install --cache-folder ../npm-cache --prod
+ yarn autoclean -I
+ yarn autoclean -F
+
+ rm -fv 'package-lock.json'
+ find . -name '.yarnclean' -exec rm -fv {} \;
+ find . -name 'yarn.lock' -exec rm -fv {} \;
+ find . -name '.airtap.yml' -exec rm -fv {} \;
+ find . -name '.bin' -exec rm -fvr {} +
+ find . -name 'well-known' -exec rm -fvr {} +
+ find . -name '.coveralls.yml' -exec rm -fv {} \;
+ find . -name '.gitignore' -exec rm -fv {} \;
+ find . -name '.github' -exec rm -fvr {} +
+ find . -name '.eslintrc*' -exec rm -fv {} \;
+ find . -name '.jscs.json' -exec rm -fv {} \;
+ find . -name '.npmignore' -exec rm -fv {} \;
+ find . -name '.prettierrc.js' -exec rm -fv {} \;
+ find . -name '.travis.yml' -exec rm -fv {} \;
+ find . -name '.tonic_example.js' -exec rm -fv {} \;
+ find . -name '.yarn-integrity' -exec rm -fv {} \;
+ find . -name '*.ts' -exec rm -fv {} \;
- npm install --cache ../npm-cache --only=production
- rm -f 'package-lock.json'
}
package() {
- cd "$srcdir/drawio-$pkgver"
+ cd "$srcdir/drawio-desktop-$pkgver"
+
+ mkdir -p "$pkgdir/usr/lib/draw.io"
+ cp -rp package.json *.js drawio src node_modules "$pkgdir/usr/lib/draw.io"
- mkdir -p "$pkgdir/usr/lib"
- cp -rp . "$pkgdir/usr/lib/draw.io"
+ # fix file permissions
+ chmod -R g+r,o+r "$pkgdir/usr/lib/draw.io"
# create run script
mkdir -p "$pkgdir/usr/bin"
printf '%s\n' \
'#!/bin/sh' \
- 'exec electron /usr/lib/draw.io "$@" > /dev/null 2> /dev/null' \
+ "exec electron$_electronver /usr/lib/draw.io \"\$@\"" \
> "$pkgdir/usr/bin/draw.io"
chmod a+x "$pkgdir/usr/bin/draw.io"
@@ -52,20 +87,36 @@ package() {
mkdir -p "$pkgdir/usr/share/applications"
printf '%s\n' \
'[Desktop Entry]' \
- 'Name=draw.io' \
+ 'Name=drawio' \
'Comment=draw.io desktop' \
'Exec=/usr/bin/draw.io %U' \
'Terminal=false' \
'Type=Application' \
'Icon=draw.io' \
+ 'StartupWMClass=draw.io' \
'Categories=Graphics;' \
> "$pkgdir/usr/share/applications/draw.io.desktop"
+ ln -s /usr/bin/draw.io "$pkgdir/usr/bin/drawio"
+
+ # shared-mime-info defines vsdx differently from vsd, thus upstream setup seems to be incorrect
+ MIMETYPE="$(grep mimeType "$srcdir/drawio-desktop-$pkgver/electron-builder-linux-mac.json" | \
+ sed 's/.*"mimeType":.*"\(.*\)".*/\1/g' | \
+ sed 's/vnd\.visio/vnd.ms-visio.drawing.main+xml/g' | tr '\n' ';')"
+ if [[ -n "${MIMETYPE}" ]]; then
+ echo "MimeType=${MIMETYPE}" >> "$pkgdir/usr/share/applications/draw.io.desktop"
+ fi
+
# create icons
- find 'images' -regex '.*/drawlogo[0-9]+\.png' |
- grep -o '[0-9]\+' |
+ cd "$srcdir/drawio-desktop-$pkgver"
+ find 'build' -regex '.*/[0-9]+x[0-9]+\.png' |
+ grep -o '[0-9]\+' |
+ sort -u |
while read size; do
- install -Dm644 "images/drawlogo$size.png" \
- "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/draw.io.png"
+ if [[ -f "build/${size}x${size}.png" ]]; then
+ install -Dm644 "build/${size}x${size}.png" \
+ "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/draw.io.png"
+ fi
+ install -Dm644 "$srcdir/drawio.xml" "$pkgdir/usr/share/mime/packages/drawio.xml"
done
}
diff --git a/drawio.xml b/drawio.xml
new file mode 100644
index 000000000000..1c054ff08f29
--- /dev/null
+++ b/drawio.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+<mime-type type="application/vnd.jgraph.mxfile">
+ <glob pattern="*.drawio"/>
+ <comment>draw.io Diagram</comment>
+ <icon name="x-office-document" />
+</mime-type>
+</mime-info>