summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlfredo Palhares2020-12-29 15:50:00 +0000
committerAlfredo Palhares2020-12-29 15:50:00 +0000
commit45a396d317d3ab399774ce379a294148b8bd8b01 (patch)
tree50ba960b870426a41e5de23143306d4587315751
parent1d5387113e279cf87a66a1ced74fd0d091936c35 (diff)
downloadaur-45a396d317d3ab399774ce379a294148b8bd8b01.tar.gz
upgpkg: joplin 1.5.12-1
upstream release Added improvements by Matteo
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD151
-rw-r--r--joplin.sh4
3 files changed, 114 insertions, 56 deletions
diff --git a/.SRCINFO b/.SRCINFO
index fb076e97c2db..6816db491ffe 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = joplin
- pkgver = 1.4.19
- pkgrel = 14
+ pkgver = 1.5.12
+ pkgrel = 1
url = https://joplinapp.org/
install = joplin.install
arch = x86_64
@@ -11,7 +11,6 @@ pkgbase = joplin
makedepends = npm
makedepends = python
makedepends = rsync
- makedepends = electron
depends = electron
depends = gtk3
depends = libexif
@@ -27,16 +26,18 @@ pkgbase = joplin
source = joplin.desktop
source = joplin-desktop.sh
source = joplin.sh
- source = joplin-1.4.19.tar.gz::https://github.com/laurent22/joplin/archive/v1.4.19.tar.gz
+ source = joplin-1.5.12.tar.gz::https://github.com/laurent22/joplin/archive/v1.5.12.tar.gz
sha256sums = c7c5d8b0ff9edb810ed901ea21352c9830bfa286f3c18b1292deca5b2f8febd2
sha256sums = a450284fe66d89aa463d129ce8fff3a0a1a783a64209e4227ee47449d5737be8
- sha256sums = 5b6f8847ec0c3848375755213c3009c273f478b4b80ed2c5f0af8f67ee0e94fb
- sha256sums = 55aad4fe50e2da980983a69bc7c0870626064db971550d522e266feb17d38916
+ sha256sums = dc1236767ee055ea1d61f10e5266a23e70f3e611b405fe713ed24ca18ee9eeb5
+ sha256sums = 5f50ce122986ce56bf5e7c020fe2ca6e1b9539af7fb57809e256260092042ab2
pkgname = joplin
pkgdesc = A note taking and to-do application with synchronization capabilities - CLI App
+ depends = coreutils
+ depends = libsecret
depends = nodejs
- depends = rsync
+ depends = python
pkgname = joplin-desktop
pkgdesc = A note taking and to-do application with synchronization capabilities - Desktop
diff --git a/PKGBUILD b/PKGBUILD
index c1b41293adba..91faa2116d3d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,95 +1,137 @@
# Maintainer: Alfredo Palhares <alfredo at palhares dot me>
# Contributor: Mark Wagie <mark dot wagie at tutanota dot com>
+# Contributor: Matteo Parolari
# Please contribute to:
# https://github.com/alfredopalhares/arch-pkgbuilds
pkgbase="joplin"
pkgname=('joplin' 'joplin-desktop')
-pkgver=1.4.19
+pkgver=1.5.12
groups=('joplin')
-pkgrel=14
+pkgrel=1
install="joplin.install"
depends=('electron' 'gtk3' 'libexif' 'libgsf' 'libjpeg-turbo' 'libwebp' 'libxss' 'nodejs'
'nss' 'orc' 'rsync' )
optdepends=('libappindicator-gtk3: for tray icon')
arch=('x86_64' 'i686')
-makedepends=('git' 'npm' 'python' 'rsync' 'electron')
+makedepends=('git' 'npm' 'python' 'rsync')
url="https://joplinapp.org/"
license=('MIT')
source=("joplin.desktop" "joplin-desktop.sh" "joplin.sh"
"joplin-${pkgver}.tar.gz::https://github.com/laurent22/joplin/archive/v${pkgver}.tar.gz")
sha256sums=('c7c5d8b0ff9edb810ed901ea21352c9830bfa286f3c18b1292deca5b2f8febd2'
'a450284fe66d89aa463d129ce8fff3a0a1a783a64209e4227ee47449d5737be8'
- '5b6f8847ec0c3848375755213c3009c273f478b4b80ed2c5f0af8f67ee0e94fb'
- '55aad4fe50e2da980983a69bc7c0870626064db971550d522e266feb17d38916')
+ 'dc1236767ee055ea1d61f10e5266a23e70f3e611b405fe713ed24ca18ee9eeb5'
+ '5f50ce122986ce56bf5e7c020fe2ca6e1b9539af7fb57809e256260092042ab2')
+
+# local npm cache directory
+_npm_cache="npm-cache"
+
+_get_cache() {
+ if [[ "${_npm_cache}" =~ ^/ ]]; then
+ printf "%s" "${_npm_cache}"
+ else
+ printf "%s" "${srcdir}/${_npm_cache}"
+ fi
+}
+
+prepare() {
+ local cache=$(_get_cache)
+ msg2 "npm cache directory: $cache"
+
+ # TODO why disabling husky?
+ msg2 "Disabling husky (git hooks)"
+ sed -i '/"husky": ".*"/d' "${srcdir}/joplin-${pkgver}/package.json"
+
+ msg2 "Tweaking lerna.json"
+ local tmp_json="$(mktemp --tmpdir="$srcdir")"
+ local lerna_json="${srcdir}/joplin-${pkgver}/lerna.json"
+ jq ".packages = [
+ \"packages/app-cli\", \"packages/app-desktop\",
+ \"packages/fork-htmlparser2\", \"packages/fork-sax\",
+ \"packages/lib\", \"packages/renderer\", \"packages/tools\",
+ \"packages/turndown\", \"packages/turndown-plugin-gfm\"
+ ] |
+ . += {\"npmClient\": \"npm\", \"npmClientArgs\": [\"--cache $cache\"]}" \
+ "$lerna_json" > "$tmp_json"
+ cat "$tmp_json" > "$lerna_json"
+ rm "$tmp_json"
+}
+
build() {
+ local cache=$(_get_cache)
+ msg2 "npm cache directory: $cache"
cd "${srcdir}/joplin-${pkgver}"
- msg2 "Disabling husky (git hooks)"
- sed -i '/"husky": ".*"/d' package.json
# Force Lang
# INFO: https://github.com/alfredopalhares/joplin-pkgbuild/issues/25
export LANG=en_US.utf8
- msg2 "Installing dependencies..."
- npm install
- msg2 "Running Lerna Bootstrap..."
- ./node_modules/.bin/lerna bootstrap
+ msg2 "Installing dependencies through Lerna"
+ npm install --cache "$cache"
+
}
+#FIXME: These checks fail on some machines, even with the exit 0
+# Something related with the number of allowed processes I guess
check() {
cd "${srcdir}/joplin-${pkgver}"
msg2 "Not Running any tests for now"
#npm run test || exit 0
}
-#TODO: A slimdown is needed
package_joplin() {
pkgdesc="A note taking and to-do application with synchronization capabilities - CLI App"
- depends=('nodejs' 'rsync')
+ depends=('coreutils' 'libsecret' 'nodejs' 'python')
+
+ local cache=$(_get_cache)
+ msg2 "npm cache directory: $cache"
- msg2 "Building CLI..."
- mkdir -p "${pkgdir}/usr/share/joplin-cli/app-cli"
+ msg2 "Building CLI"
cd "${srcdir}/joplin-${pkgver}/packages/app-cli"
npm run build
- cd build
- cp -R "." "${pkgdir}/usr/share/joplin-cli/app-cli/"
- msg2 "Copying Base Node Modules packages..."
- cd "${srcdir}/joplin-${pkgver}/packages/app-cli"
- cp -R "node_modules/" \
- "${pkgdir}/usr/share/joplin-cli/app-cli"
-
- msg2 "Copy CLI Joplin Dependencies..."
- cd "${srcdir}/joplin-${pkgver}/packages/"
- cp -R "fork-htmlparser2" "${pkgdir}/usr/share/joplin-cli/"
- cp -R "fork-sax" "${pkgdir}/usr/share/joplin-cli/"
- cp -R "lib/" "${pkgdir}/usr/share/joplin-cli/"
- cp -R "renderer/" "${pkgdir}/usr/share/joplin-cli/"
- cp -R "tools/" "${pkgdir}/usr/share/joplin-cli/"
-
- #TODO: Check if existing symblinks are valid
- msg2 "Fixing @Joplin Symlinks..."
- cd "${pkgdir}/usr/share/joplin-cli/"
- for dir in $(find . -type d -name "@joplin"); do
- cd "${pkgdir}/usr/share/joplin-cli/${dir}"
- rm -r *
- ln -s "../../../fork-htmlparser2" "fork-htmlparser2"
- ln -s "../../../fork-sax" "fork-sax"
- ln -s "../../../lib" "lib"
- ln -s "../../../renderer" "renderer"
- ln -s "../../../tools" "tools"
- done
+ msg2 "Packaging CLI"
+ cd "${srcdir}/joplin-${pkgver}/packages/app-cli/build"
+ local pack="$(npm pack | tail -n 1)"
- msg2 "Installing LICENSE..."
- cd "${srcdir}/joplin-${pkgver}/"
- install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+ msg2 "Installing CLI ($pack)"
+ npm install --global --production --user root --cache "$cache" \
+ --prefix "${pkgdir}/tmp" "$pack"
+
+ msg2 "Rearranging directory tree"
+ mkdir -p "${pkgdir}/usr/share/"
+ mv "${pkgdir}/tmp/lib/node_modules/joplin/" "${pkgdir}/usr/share/"
+ rm -r "${pkgdir}/tmp"
+
+ msg2 "Fixing Directories Permissions"
+ # Non-deterministic race in npm gives 777 permissions to random directories.
+ # See https://github.com/npm/cli/issues/1103 for details.
+ find "${pkgdir}/usr" -type d -exec chmod 755 {} +
+
+ msg2 "Remove References to \$pkgdir"
+ find "$pkgdir" -name package.json -print0 | xargs -0 sed -i "/_where/d"
+
+ msg2 "Remove References to \$srcdir"
+ local tmppackage="$(mktemp --tmpdir="$srcdir")"
+ local pkgjson="$pkgdir/usr/share/joplin/package.json" # TODO joplin name
+ jq '.|=with_entries(select(.key|test("_.+")|not))' "$pkgjson" > "$tmppackage"
+ mv "$tmppackage" "$pkgjson"
+ chmod 644 "$pkgjson"
+
+ msg2 "Fixing Permissions set by npm"
+ # npm gives ownership of ALL FILES to build user
+ # https://bugs.archlinux.org/task/63396
+ chown -R root:root "${pkgdir}"
+
+ msg2 "Installing LICENSE"
+ install -Dm644 "${srcdir}/joplin-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}/"
msg2 "Installing Startup Script"
cd "${srcdir}"
- install -Dm755 joplin.sh "${pkgdir}/usr/bin/joplin-cli"
+ install -Dm755 joplin.sh "${pkgdir}/usr/bin/joplin"
}
@@ -100,15 +142,20 @@ package_joplin-desktop() {
optdepends=('libappindicator-gtk3: for tray icon')
conflicts=('joplin-desktop-electron')
+ # ./generateSha512.js fails if AppImage is not built
+ mkdir -p "${srcdir}/joplin-${pkgver}/packages/app-desktop/dist/"
+ touch "${srcdir}/joplin-${pkgver}/packages/app-desktop/dist/AppImage"
+
msg2 "Building Desktop with packaged Electron..."
mkdir -p "${pkgdir}/usr/share/joplin-desktop"
cd "${srcdir}/joplin-${pkgver}/packages/app-desktop"
electron_dir="/usr/lib/electron"
electron_version=$(cat /usr/lib/electron/version)
-
+ msg2 "Using Electron Version ${electron_version}"
USE_HARD_LINKS=false npm run dist -- --publish=never --linux --x64 \
--dir="dist/" -c.electronDist=$electron_dir -c.electronVersion=$electron_version
+ # TODO: Cleanup app.asar file
cd dist/linux-unpacked/
cp -R "." "${pkgdir}/usr/share/joplin-desktop"
@@ -120,5 +167,15 @@ package_joplin-desktop() {
cd "${srcdir}"
install -Dm755 ${srcdir}/joplin-desktop.sh "${pkgdir}/usr/bin/joplin-desktop"
install -Dm644 ${srcdir}/joplin.desktop -t "${pkgdir}/usr/share/applications"
+
+ msg2 "Installing icons"
+ local -r src_icon_dir="${srcdir}/joplin-${pkgver}/packages/app-desktop/build/icons"
+ local -i size
+ for size in 16 22 24 32 36 48 64 72 96 128 192 256 512; do
+ [[ -f "${src_icon_dir}/${size}x${size}.png" ]] &&
+ install -Dm644 \
+ "${src_icon_dir}/${size}x${size}.png" \
+ "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/joplin.png"
+ done
}
diff --git a/joplin.sh b/joplin.sh
index 4ac256cb1afc..b0b4bada065f 100644
--- a/joplin.sh
+++ b/joplin.sh
@@ -1,9 +1,9 @@
#!/bin/bash
-readonly joplin_dir="/usr/share/joplin-cli/app-cli"
+readonly joplin_dir="/usr/share/joplin/"
if [[ ! -d $joplin_dir ]]; then
- echo "Cannot find /usr/share/joplin-cli/app-cli"
+ echo "Cannot find ${joplin_dir}"
exit 1
fi