diff options
-rw-r--r-- | .SRCINFO | 26 | ||||
-rw-r--r-- | PKGBUILD | 117 | ||||
-rw-r--r-- | drawio.xml | 8 |
3 files changed, 107 insertions, 44 deletions
@@ -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 - @@ -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> |