Some checks failed
		
		
	
	Release Alpine apk for ARM64v8 / compilation-arm64v8 (push) Failing after 1m58s
				
			
		
			
				
	
	
		
			155 lines
		
	
	
		
			No EOL
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			No EOL
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# Maintainer: Frank Oltmanns <alpine@oltmanns.dev>
 | 
						|
# Contributor: Alexander Bocken <alexander@bocken.org>
 | 
						|
 | 
						|
pkgname=anki
 | 
						|
pkgver=23.12.1
 | 
						|
pkgrel=0
 | 
						|
# Remember to update the following lines when updating the pkgver
 | 
						|
# anki -> git rev-parse $pkgver --short=8
 | 
						|
# ftl -> git submodule
 | 
						|
_tags_ftl_core="fb301cc62da3b7a83b4ea266d9a2e70cfc1a8418"
 | 
						|
_tags_ftl_desktop="8c2191a7c797747cec767e3953bbbcc50acc5246"
 | 
						|
_anki_commit="c0f2fa48"
 | 
						|
 | 
						|
# This APKBUILD and the patches use the PKGBUILD for Anki 23.10 as
 | 
						|
# a basis.
 | 
						|
_caches_yarn="yarn-cache"
 | 
						|
_caches_cargo="cargo-cache"
 | 
						|
 | 
						|
# For translations
 | 
						|
_core_i18n_repo="anki-core-i18n"
 | 
						|
_qtftl_i18n_repo="anki-desktop-ftl"
 | 
						|
 | 
						|
pkgdesc="flashcard program using spaced repetition"
 | 
						|
url="https://apps.ankiweb.net/"
 | 
						|
 | 
						|
# py3-pyqt6-webengine is only available for
 | 
						|
#  - x86_64
 | 
						|
#  - aarch64
 | 
						|
#  - x86
 | 
						|
# But upstream only supports 64-bit architectures:
 | 
						|
arch="x86_64 aarch64"
 | 
						|
license="AGPL-3.0-or-later"
 | 
						|
options="!check" # no test suite provided
 | 
						|
 | 
						|
# The makedepends and depends are copied from the PKGBUILD
 | 
						|
# for 23.10 in the Arch User Repository, with the exception
 | 
						|
# that libxcrypt-compat has been removed from that list.
 | 
						|
makedepends="
 | 
						|
	bash
 | 
						|
	rsync
 | 
						|
	ninja
 | 
						|
	git
 | 
						|
	cargo
 | 
						|
	py3-installer
 | 
						|
	py3-wheel
 | 
						|
	nodejs
 | 
						|
	yarn
 | 
						|
	protoc
 | 
						|
	"
 | 
						|
 | 
						|
depends="
 | 
						|
	python3
 | 
						|
	py3-stringcase
 | 
						|
	py3-beautifulsoup4
 | 
						|
	py3-waitress
 | 
						|
	py3-requests
 | 
						|
 | 
						|
	py3-decorator
 | 
						|
	py3-markdown
 | 
						|
	py3-orjson
 | 
						|
	py3-protobuf
 | 
						|
	py3-pysocks
 | 
						|
	py3-distro
 | 
						|
 | 
						|
	py3-jsonschema
 | 
						|
	py3-send2trash
 | 
						|
	py3-certifi
 | 
						|
	py3-flask-cors
 | 
						|
	py3-qt6
 | 
						|
	py3-pyqt6-webengine
 | 
						|
	qt6-qtmultimedia
 | 
						|
	qt6-qtsvg
 | 
						|
	"
 | 
						|
subpackages="$pkgname-pyc"
 | 
						|
source="
 | 
						|
	https://github.com/ankitects/anki/archive/$pkgver/anki-$pkgver.tar.gz
 | 
						|
	anki-core-i18n-$_tags_ftl_core.tar.gz::https://github.com/ankitects/anki-core-i18n/archive/$_tags_ftl_core.tar.gz
 | 
						|
	anki-desktop-ftl-$_tags_ftl_desktop.tar.gz::https://github.com/ankitects/anki-desktop-ftl/archive/$_tags_ftl_desktop.tar.gz
 | 
						|
	disable-git-checks.patch
 | 
						|
	no-update.patch
 | 
						|
	strip-formatter-deps.patch
 | 
						|
	strip-type-checking-deps.patch
 | 
						|
	dprint-update-for-musl-aarch64.patch
 | 
						|
	"
 | 
						|
 | 
						|
prepare() {
 | 
						|
	default_prepare
 | 
						|
 | 
						|
	# Notes:
 | 
						|
	# - The original PKGBUILD changes the optimization level to "3". Instead
 | 
						|
	#   the APKBUILD sticks to upstream's optimization settings.
 | 
						|
	# - The original PKGBUILD changes the rust toolchain channel to
 | 
						|
	#   "stable". Since, the APKBUILD doesn't use rustup, we can skip that.
 | 
						|
 | 
						|
	# Build process wants .git/HEAD to be present. Workaround to be able to use tarballs
 | 
						|
	# (together with disable-git-checks.patch)
 | 
						|
	mkdir -p .git
 | 
						|
	touch .git/HEAD
 | 
						|
	sed -i "s/MY_REV/$_anki_commit/" build/runner/src/build.rs
 | 
						|
 | 
						|
	# place translations in build dir
 | 
						|
	rm -r ftl/core-repo ftl/qt-repo
 | 
						|
	mv "$srcdir"/anki-core-i18n-$_tags_ftl_core ftl/core-repo
 | 
						|
	mv "$srcdir"/anki-desktop-ftl-$_tags_ftl_desktop ftl/qt-repo
 | 
						|
 | 
						|
	# fetch rust packages
 | 
						|
	export CARGO_HOME="$srcdir/$_caches_cargo"       # do not litter in ~
 | 
						|
	cargo fetch --target="$CTARGET" --locked
 | 
						|
 | 
						|
	# fetch node packages already in prepare()
 | 
						|
	export YARN_CACHE_FOLDER="$srcdir/$_caches_yarn" # do not litter in ~
 | 
						|
	yarn install --immutable --modules-folder out/node_modules
 | 
						|
	ln -sf out/node_modules ./
 | 
						|
 | 
						|
	# mask pip-sync as we provide dependencies ourselves
 | 
						|
	local venv="out/pyenv"
 | 
						|
	python -m venv --system-site-packages --without-pip "$venv"
 | 
						|
	printf '#!/bin/bash\nexit 0' > "$venv/bin/pip-sync"
 | 
						|
	chmod +x "$venv/bin/pip-sync"
 | 
						|
}
 | 
						|
 | 
						|
build() {
 | 
						|
	export YARN_CACHE_FOLDER="$srcdir/$_caches_yarn" # do not litter in ~
 | 
						|
 | 
						|
	#use local binaries instead of downloading them
 | 
						|
	export PYTHON_BINARY=$(which python)
 | 
						|
	export PROTOC_BINARY=$(which protoc)
 | 
						|
	export NODE_BINARY=$(which node)
 | 
						|
	export YARN_BINARY=$(which yarn)
 | 
						|
 | 
						|
	export CARGO_HOME="$srcdir/$_caches_cargo"    # do not litter in ~
 | 
						|
	export RELEASE=2        # anki-internal variable for optimization
 | 
						|
	                        # set to "1" for faster but less optimized build
 | 
						|
	export LDFLAGS="$LDFLAGS -fuse-ld=lld"
 | 
						|
	./ninja wheels
 | 
						|
}
 | 
						|
 | 
						|
package() {
 | 
						|
	for file in out/wheels/*.whl; do
 | 
						|
		python -m installer --destdir="$pkgdir" $file
 | 
						|
	done
 | 
						|
 | 
						|
	install -Dm644 qt/bundle/lin/anki.desktop "$pkgdir"/usr/share/applications/anki.desktop
 | 
						|
	install -Dm644 qt/bundle/lin/anki.png "$pkgdir"/usr/share/pixmaps/anki.png
 | 
						|
}
 | 
						|
sha512sums="
 | 
						|
076d3eba5db7dd4b8e00de9b69140a54f73c2e6ce52f46ddce9a6455a8ce7ae5d49bfb2fc60571d851d6b4948a08a0b3deb508aa37c7e79624b6273837a975a5  anki-23.12.1.tar.gz
 | 
						|
12e9187bda8f728d06a904fe21f3820aa2acad0e1924933d9db24f3879936b0a7b489934186fcab85440a40b974917ada729b5a7ec276ca2acea70b5c88caa5a  anki-core-i18n-fb301cc62da3b7a83b4ea266d9a2e70cfc1a8418.tar.gz
 | 
						|
91c3609fa8ca67de2d520798acbb7200d310c4d587270143528a5c18ed341c7dd3b9ddc8d79fe1f44224e83dc06f12cdbcdcf2114969513cbd60e82950343373  anki-desktop-ftl-8c2191a7c797747cec767e3953bbbcc50acc5246.tar.gz
 | 
						|
60f2f37d4fc03d7c0681b2d6b9af17b2f7cd341ef6bd4504cd7dd6cb191c666b128a4c2184ced5295fab98c5f83affc4bfd4c5dc23f502371e2e095aa880e526  disable-git-checks.patch
 | 
						|
36c3bddb5de84f0f5eebe46b506b9723ecc80dd69281b3d2ffc9842fa2db181ececd8232ae0b3366bcfd5cb68a4d760abcadd3dada2a7ce2d2da26586a132e09  no-update.patch
 | 
						|
f71b45b08b8f05d98faab3a88d7ba2847a948a12ca26c682d58541dc423ad72ae8aac5b34155472869ebbf195e5e5c488cfc4e640df7247c7674e5dfad053d60  strip-formatter-deps.patch
 | 
						|
2c7d1ab46d81e65f22e63cb5af37daef27a78d348f240570f9250730d6b33311670876027fd1c54d4c69922c18a7458e82211cb232e98591e182ac11c49877db  strip-type-checking-deps.patch
 | 
						|
627d30af756ad51fa76ea3113e18662c8bfa5ba7e89b418604e13581cc811ce89c674042181566fff962adef0dd5edb2e5af2803c33cee470661f2d2d1f4c331  dprint-update-for-musl-aarch64.patch
 | 
						|
" |