joplin: prepare
This commit is contained in:
parent
a959a255de
commit
7122efda87
1 changed files with 51 additions and 95 deletions
|
@ -20,6 +20,7 @@ makedepends="
|
|||
yarn
|
||||
python3
|
||||
rsync
|
||||
p7zip
|
||||
jq
|
||||
yq
|
||||
electron
|
||||
|
@ -41,84 +42,50 @@ source="
|
|||
joplin-desktop.sh
|
||||
joplin.sh
|
||||
"
|
||||
|
||||
# local npm cache directory
|
||||
_yarn_cache="yarn-cache"
|
||||
|
||||
## Sets up a local cache to prevent the redownloding the packages on rebuilds
|
||||
_get_cache() {
|
||||
if [ "$_yarn_cache" =~ ^/ ]; then
|
||||
printf "%s" "$_yarn_cache"
|
||||
else
|
||||
printf "%s" "$srcdir/$_yarn_cache"
|
||||
fi
|
||||
}
|
||||
|
||||
_get_yarn_bin() {
|
||||
local yarn_bin=$(yq ".yarnPath" $srcdir/joplin-$pkgver/.yarnrc.yml)
|
||||
#Remove quotes
|
||||
yarn_bin="${yarn_bin%\"}"
|
||||
yarn_bin="${yarn_bin#\"}"
|
||||
printf "%s" "$srcdir/joplin-$pkgver/$yarn_bin"
|
||||
}
|
||||
_yarn_cache="$srcdir"/yarn-cache
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
local cache=$(_get_cache)
|
||||
local yarn_bin=$(_get_yarn_bin)
|
||||
msg2 "Yarn cache directory: $cache"
|
||||
msg2 "Yarn binary: $yarn_bin"
|
||||
|
||||
msg2 "Disabling husky (git hooks)"
|
||||
sed -i '/"husky": ".*"/d' "$srcdir/joplin-$pkgver/package.json"
|
||||
msg "Disabling husky (git hooks)"
|
||||
sed -i '/"husky": ".*"/d' "$srcdir"/joplin-$pkgver/package.json
|
||||
|
||||
# There are so many people
|
||||
msg2 "Checking Node PATH"
|
||||
local w_node=$(which node)
|
||||
if [ $w_node != "/usr/bin/node" ]; then
|
||||
msg2 "WARNING: Using path $w_node beware its not the defualt path, check if you are using nvm or similar"
|
||||
fi
|
||||
msg "Tweaking .yarnrc"
|
||||
yq -i ".cacheFolder=(\"$_yarn_cache\")" "$srcdir"/joplin-$pkgver/.yarnrc.yml
|
||||
|
||||
msg2 "Tweaking .yarnrc"
|
||||
yq -i -y ".cacheFolder=(\"$cache\")" "$srcdir/joplin-$pkgver/.yarnrc.yml"
|
||||
|
||||
msg2 "Tweaking lerna.json"
|
||||
msg "Tweaking lerna.json"
|
||||
local tmp_json="$(mktemp --tmpdir="$srcdir")"
|
||||
local lerna_json="$srcdir/joplin-$pkgver/lerna.json"
|
||||
local lerna_json="$srcdir"/joplin-$pkgver/lerna.json
|
||||
|
||||
msg2 "Deleting app-mobile"
|
||||
rm -r "$srcdir/joplin-$pkgver/packages/app-mobile"
|
||||
rm -r "$srcdir/joplin-$pkgver/packages/app-clipper"
|
||||
msg "Deleting app-mobile"
|
||||
rm -r "$srcdir"/joplin-$pkgver/packages/app-mobile
|
||||
rm -r "$srcdir"/joplin-$pkgver/packages/app-clipper
|
||||
|
||||
if [ $pkgver == 2.9.17 ]; then
|
||||
if [ $pkgver = 2.9.17 ]; then
|
||||
# Temporary fix for 2.9.17
|
||||
# Let yarn resolve version ^2.12.1 of nan package to 2.17.0 instead of 2.15.0 (https://github.com/nodejs/nan/pull/943)
|
||||
local package_json=$srcdir/joplin-$pkgver/package.json
|
||||
local package_json="$srcdir"/joplin-$pkgver/package.json
|
||||
cp $package_json $package_json.bak
|
||||
jq '. + {"resolutions": {"nan@^2.12.1": "2.17.0"}' $package_json.bak > $package_json
|
||||
jq '. + {"resolutions": {"nan@^2.12.1": "2.17.0"}}' $package_json.bak > $package_json
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
build() {
|
||||
local cache=$(_get_cache)
|
||||
local yarn_bin=$(_get_yarn_bin)
|
||||
msg2 "Yarn cache directory: $cache"
|
||||
cd "$srcdir/joplin-$pkgver"
|
||||
|
||||
# Force Lang
|
||||
# INFO: https://github.com/alfredopalhares/joplin-pkgbuild/issues/25
|
||||
export LANG=en_US.utf8
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
|
||||
msg2 "Installing dependencies through Yarn 3..."
|
||||
msg "Installing dependencies through Yarn 3..."
|
||||
# FSevents is on the optinal dependencies and its Mac Only
|
||||
eval $yarn_bin
|
||||
yarn
|
||||
|
||||
msg2 "Building the workspace"
|
||||
$yarn_bin workspace @joplin/lib install
|
||||
$yarn_bin workspace @joplin/renderer install
|
||||
$yarn_bin workspace @joplin/app-desktop install
|
||||
$yarn_bin workspace @joplin/app-desktop run electron-builder build --linux
|
||||
msg "Building the workspace"
|
||||
yarn workspace @joplin/lib install
|
||||
yarn workspace @joplin/renderer install
|
||||
yarn workspace @joplin/app-desktop install
|
||||
yarn workspace @joplin/app-desktop run electron-builder build --linux
|
||||
}
|
||||
|
||||
check() {
|
||||
|
@ -126,77 +93,66 @@ check() {
|
|||
}
|
||||
|
||||
package() {
|
||||
local cache=$(_get_cache)
|
||||
local yarn_bin=$(_get_yarn_bin)
|
||||
msg2 "Yarn cache directory: $cache"
|
||||
|
||||
msg2 "Packaging CLI with Repo Gulp"
|
||||
cd "$srcdir/joplin-$pkgver/packages/app-cli/"
|
||||
gulp_bin=$($yarn_bin bin gulp)
|
||||
msg2 "Using gulp: $gulp_bin"
|
||||
$gulp_bin build
|
||||
$yarn_bin pack
|
||||
msg "Packaging CLI with Repo Gulp"
|
||||
cd "$builddir"/packages/app-cli/
|
||||
_gulp_bin=$(yarn bin gulp)
|
||||
msg2 "Using gulp: $_gulp_bin"
|
||||
$_gulp_bin build
|
||||
yarn pack
|
||||
|
||||
msg2 "Installing package"
|
||||
mkdir -p "$pkgdir/usr/share/joplin/"
|
||||
mv package.tgz tt"$pkgdir/usr/share/joplin/"
|
||||
cd "$pkgdir/usr/share/joplin/"
|
||||
$yarn_bin init
|
||||
mkdir -p "$pkgdir"/usr/share/joplin/
|
||||
mv package.tgz "$pkgdir"/usr/share/joplin/
|
||||
cd "$pkgdir"/usr/share/joplin/
|
||||
yarn init
|
||||
|
||||
# FIXME: The repo wran crashed
|
||||
# You also need to pipe yes, for depeendy
|
||||
yes | yarn add ./package.tgz
|
||||
|
||||
msg2 "Fixing Directories Permissions"
|
||||
msg "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 "Removing References to \$pkgdir"
|
||||
msg "Removing References to \$pkgdir"
|
||||
find "$pkgdir" -name package.json -print0 | xargs -0 sed -i "/_where/d"
|
||||
|
||||
msg2 "Fixing Permissions set by npm"
|
||||
msg "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"
|
||||
|
||||
msg "Installing files"
|
||||
install -Dm644 "$builddir"/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
|
||||
install -Dm755 "$srcdir"/joplin.sh "$pkgdir/usr/bin/joplin"
|
||||
}
|
||||
|
||||
|
||||
desktop() {
|
||||
# ./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"
|
||||
mkdir -p "$builddir"/packages/app-desktop/dist/
|
||||
touch "$builddir"/packages/app-desktop/dist/AppImage
|
||||
|
||||
cd "$srcdir/joplin-$pkgver/packages/app-desktop/node_modules/@joplin/"
|
||||
cd "$builddir"/packages/app-desktop/node_modules/@joplin/
|
||||
ln -sf "../../../fork-uslug" "."
|
||||
|
||||
msg2 "Packaging the desktop..."
|
||||
# TODO: Cleanup app.asar file
|
||||
cd dist/linux-unpacked/
|
||||
mkdir -p "$pkgdir/usr/share/joplin-desktop"
|
||||
cp -R "." "$pkgdir/usr/share/joplin-desktop"
|
||||
msg2 "Installing LICENSE..."
|
||||
cd "$srcdir/joplin-$pkgver/"
|
||||
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
|
||||
mkdir -p "$pkgdir"/usr/share/joplin-desktop
|
||||
cp -R "." "$pkgdir"/usr/share/joplin-desktop
|
||||
|
||||
msg "Installing startup script and desktop file..."
|
||||
cd "$srcdir"
|
||||
install -Dm755 $srcdir/joplin-desktop.sh "$pkgdir/usr/bin/joplin-desktop"
|
||||
install -Dm644 $srcdir/joplin.desktop -t "$pkgdir/usr/share/applications"
|
||||
|
||||
msg "Installing icons"
|
||||
local -r src_icon_dir="$srcdir/joplin-$pkgver/packages/app-desktop/build/icons"
|
||||
msg "Installing files"
|
||||
install -Dm644 "$builddir"/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
|
||||
install -Dm755 $srcdir/joplin-desktop.sh "$pkgdir"9/usr/bin/joplin-desktop
|
||||
install -Dm644 $srcdir/joplin.desktop -t "$pkgdir"/usr/share/applications
|
||||
local -r src_icon_dir="$builddir"/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"
|
||||
"$pkgdir"/usr/share/icons/hicolor/${size}x$size/apps/joplin.png
|
||||
done
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue