git: 707ad7672018 - main - games/anki: Update to 24.04

From: Kai Knoblich <kai_at_FreeBSD.org>
Date: Sat, 06 Apr 2024 11:46:33 UTC
The branch main has been updated by kai:

URL: https://cgit.FreeBSD.org/ports/commit/?id=707ad76720184dfe10bf6aa4815ded75a2a54934

commit 707ad76720184dfe10bf6aa4815ded75a2a54934
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2024-04-06 11:35:52 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2024-04-06 11:44:03 +0000

    games/anki: Update to 24.04
    
    * Support for offline builds has now been integrated, so a number of
      patches are no longer required.
    
    * The same applies to some environment variables that are also no longer
      needed or have changed slightly regarding their purpose.
    
    * The workaround introduced in bdcfffd8573e regarding issues with nVidia
      drivers was also merged by upstream and is therefore no longer
      required.
    
    Changelog:
    
    https://github.com/ankitects/anki/releases/tag/24.04
---
 games/anki/Makefile                                |  19 +-
 games/anki/Makefile.crates                         | 441 +++++-----
 games/anki/distinfo                                | 900 +++++++++++----------
 games/anki/files/patch-build_configure_src_main.rs |  52 --
 .../anki/files/patch-build_configure_src_python.rs |  49 --
 games/anki/files/patch-build_configure_src_rust.rs |  69 --
 games/anki/files/patch-build_ninja__gen_src_git.rs |  34 -
 .../files/patch-build_ninja__gen_src_python.rs     |  53 --
 games/anki/files/patch-build_runner_src_build.rs   |  32 +-
 games/anki/files/patch-build_runner_src_yarn.rs    |  30 -
 games/anki/files/patch-qt_aqt_____init____.py      |  34 +-
 games/anki/pkg-plist                               |   4 +-
 12 files changed, 729 insertions(+), 988 deletions(-)

diff --git a/games/anki/Makefile b/games/anki/Makefile
index 08de770ba0b2..d334eaa0a48f 100644
--- a/games/anki/Makefile
+++ b/games/anki/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	anki
-DISTVERSION=	23.12.1
-PORTREVISION=	4
+DISTVERSION=	24.04
 # Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes
 CATEGORIES=	games education python
 MASTER_SITES=	LOCAL/kai/:yarncache
@@ -45,8 +44,8 @@ USES=		cargo desktop-file-utils ninja nodejs:build pyqt:6 python:3.9+ \
 USE_GITHUB=	yes
 GH_ACCOUNT=	ankitects
 # Translation files
-GH_TUPLE=	ankitects:anki-core-i18n:fb301cc:ftlrslib \
-		ankitects:anki-desktop-ftl:8c2191a:ftlextra
+GH_TUPLE=	ankitects:anki-core-i18n:c74c15b:ftlrslib \
+		ankitects:anki-desktop-ftl:06ad12d:ftlextra
 
 USE_PYQT=	pyqt6 sip:build webengine
 
@@ -59,16 +58,12 @@ CARGO_INSTALL=	no
 
 CARGO_TARGET_DIR=	${WRKSRC}/out/rust
 
-# Custom variables introduced to the runner build system via patches
-MAKE_ENV+=	NO_BUNDLE=1 \
-		NO_VENV=1 \
-		OFFLINE_BUILD=1 \
-		OFFLINE_YARNCACHE=${_MY_YARNCACHE}
-# Variables already known and used by the "runner" build system
+# Variables used by the "runner" build system
 MAKE_ENV+=	NODE_BINARY=${LOCALBASE}/bin/node \
+		OFFLINE_BUILD=1 \
 		PROTOC_BINARY=${LOCALBASE}/bin/protoc \
-		PYTHON_BINARY=${PYTHON_CMD} \
 		YARN_BINARY=${LOCALBASE}/bin/yarn \
+		YARN_CACHE_FOLDER=${_MY_YARNCACHE} \
 		out=${WRKSRC}/out
 # If RELEASE is unset the "runner" build system omits the
 # "--release" flag for cargo(1).
@@ -89,7 +84,7 @@ MPV_RUN_DEPENDS=	mpv:multimedia/mpv
 # Should contain the most recent commit that reflects ${DISTVERSION} and must
 # be exactly 8 digits otherwise the check for newer versions won't work as
 # expected.
-_MY_BUILDHASH= 1a1d4d54
+_MY_BUILDHASH= 429bc9e1
 # Remove ${CARGO_BUILD_TARGET} from ${CARGO_ENV} to avoid problems with
 # hardcoded paths as the "runner" build system expects its components
 # in ${WRKSRC}/out/rust/debug
diff --git a/games/anki/Makefile.crates b/games/anki/Makefile.crates
index 5c838943925c..dd6d02fa4964 100644
--- a/games/anki/Makefile.crates
+++ b/games/anki/Makefile.crates
@@ -1,29 +1,29 @@
 CARGO_CRATES=	addr2line-0.21.0 \
 		adler-1.0.2 \
-		aes-0.8.3 \
-		ahash-0.8.6 \
+		aes-0.8.4 \
+		ahash-0.8.10 \
 		aho-corasick-1.1.2 \
 		allocator-api2-0.2.16 \
 		ammonia-3.3.0 \
 		android-tzdata-0.1.1 \
 		android_system_properties-0.1.5 \
 		anes-0.1.6 \
-		anstream-0.6.4 \
-		anstyle-1.0.4 \
+		anstream-0.6.13 \
+		anstyle-1.0.6 \
 		anstyle-parse-0.2.3 \
-		anstyle-query-1.0.1 \
+		anstyle-query-1.0.2 \
 		anstyle-wincon-3.0.2 \
-		anyhow-1.0.75 \
+		anyhow-1.0.80 \
 		apple-bundles-0.17.0 \
 		arrayref-0.3.7 \
 		arrayvec-0.7.4 \
 		ash-0.37.3+1.3.251 \
 		assert-json-diff-2.0.2 \
 		async-channel-1.9.0 \
-		async-compression-0.4.5 \
+		async-compression-0.4.6 \
 		async-stream-0.3.5 \
 		async-stream-impl-0.3.5 \
-		async-trait-0.1.74 \
+		async-trait-0.1.77 \
 		autocfg-1.1.0 \
 		axum-0.6.20 \
 		axum-client-ip-0.4.2 \
@@ -31,58 +31,57 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		axum-macros-0.3.8 \
 		backtrace-0.3.69 \
 		base64-0.13.1 \
-		base64-0.21.5 \
+		base64-0.21.7 \
 		base64ct-1.6.0 \
 		bincode-2.0.0-rc.3 \
 		bit-set-0.5.3 \
 		bit-vec-0.6.3 \
 		bit_field-0.10.2 \
 		bitflags-1.3.2 \
-		bitflags-2.4.1 \
+		bitflags-2.4.2 \
 		blake3-1.5.0 \
 		block-0.1.6 \
 		block-buffer-0.10.4 \
 		block-padding-0.3.3 \
-		bstr-1.8.0 \
-		bumpalo-3.14.0 \
-		burn-0.11.1 \
-		burn-autodiff-0.11.1 \
-		burn-candle-0.11.1 \
-		burn-common-0.11.1 \
-		burn-compute-0.11.1 \
-		burn-core-0.11.1 \
-		burn-dataset-0.11.1 \
-		burn-derive-0.11.1 \
-		burn-fusion-0.11.1 \
-		burn-ndarray-0.11.1 \
-		burn-tch-0.11.1 \
-		burn-tensor-0.11.1 \
-		burn-tensor-testgen-0.11.1 \
-		burn-train-0.11.1 \
-		burn-wgpu-0.11.1 \
-		bytemuck-1.14.0 \
+		bstr-1.9.1 \
+		bumpalo-3.15.3 \
+		burn-0.12.1 \
+		burn-autodiff-0.12.1 \
+		burn-candle-0.12.1 \
+		burn-common-0.12.1 \
+		burn-compute-0.12.1 \
+		burn-core-0.12.1 \
+		burn-dataset-0.12.1 \
+		burn-derive-0.12.1 \
+		burn-fusion-0.12.1 \
+		burn-ndarray-0.12.1 \
+		burn-tch-0.12.1 \
+		burn-tensor-0.12.1 \
+		burn-train-0.12.1 \
+		burn-wgpu-0.12.1 \
+		bytemuck-1.14.3 \
 		bytemuck_derive-1.5.0 \
 		byteorder-1.5.0 \
 		bytes-1.5.0 \
 		bzip2-0.4.4 \
 		bzip2-sys-0.1.11+1.0.8 \
 		camino-1.1.6 \
-		candle-core-0.3.1 \
+		candle-core-0.3.3 \
 		cast-0.3.0 \
 		cbc-0.1.2 \
-		cc-1.0.83 \
+		cc-1.0.88 \
 		cfg-if-1.0.0 \
-		chrono-0.4.31 \
-		ciborium-0.2.1 \
-		ciborium-io-0.2.1 \
-		ciborium-ll-0.2.1 \
+		chrono-0.4.34 \
+		ciborium-0.2.2 \
+		ciborium-io-0.2.2 \
+		ciborium-ll-0.2.2 \
 		cipher-0.4.4 \
-		clap-4.4.11 \
-		clap_builder-4.4.11 \
-		clap_complete-4.4.4 \
-		clap_derive-4.4.7 \
-		clap_lex-0.6.0 \
-		coarsetime-0.1.33 \
+		clap-4.5.1 \
+		clap_builder-4.5.1 \
+		clap_complete-4.5.1 \
+		clap_derive-4.5.0 \
+		clap_lex-0.7.0 \
+		coarsetime-0.1.34 \
 		codespan-0.11.1 \
 		codespan-reporting-0.11.1 \
 		color_quant-1.1.0 \
@@ -95,14 +94,14 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		core-foundation-0.9.4 \
 		core-foundation-sys-0.8.6 \
 		core-graphics-types-0.1.3 \
-		cpufeatures-0.2.11 \
-		crc32fast-1.3.2 \
+		cpufeatures-0.2.12 \
+		crc32fast-1.4.0 \
 		criterion-0.5.1 \
 		criterion-plot-0.5.0 \
-		crossbeam-channel-0.5.8 \
-		crossbeam-deque-0.8.3 \
-		crossbeam-epoch-0.9.15 \
-		crossbeam-utils-0.8.16 \
+		crossbeam-channel-0.5.11 \
+		crossbeam-deque-0.8.5 \
+		crossbeam-epoch-0.9.18 \
+		crossbeam-utils-0.8.19 \
 		crunchy-0.2.2 \
 		crypto-common-0.1.6 \
 		csv-1.3.0 \
@@ -112,35 +111,35 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		data-encoding-2.5.0 \
 		deadpool-0.9.5 \
 		deadpool-runtime-0.1.3 \
-		deranged-0.3.10 \
-		derive-new-0.5.9 \
+		deranged-0.3.11 \
+		derive-new-0.6.0 \
 		des-0.8.1 \
 		difflib-0.4.0 \
 		digest-0.10.7 \
 		dirs-5.0.1 \
 		dirs-sys-0.4.1 \
 		displaydoc-0.2.4 \
-		doc-comment-0.3.3 \
-		duct-0.13.6 \
+		duct-0.13.7 \
 		dunce-1.0.4 \
 		dyn-stack-0.10.0 \
-		either-1.9.0 \
+		either-1.10.0 \
 		elasticlunr-rs-3.0.2 \
 		encoding_rs-0.8.33 \
-		env_logger-0.10.1 \
+		enum-as-inner-0.6.0 \
+		env_filter-0.1.0 \
+		env_logger-0.11.2 \
 		envy-0.4.2 \
 		equivalent-1.0.1 \
 		errno-0.3.8 \
 		event-listener-2.5.3 \
-		exr-1.6.4 \
+		exr-1.72.0 \
 		fallible-iterator-0.3.0 \
 		fallible-streaming-iterator-0.1.9 \
-		faster-hex-0.8.1 \
+		faster-hex-0.9.0 \
 		fastrand-1.9.0 \
 		fastrand-2.0.1 \
-		fdeflate-0.3.1 \
+		fdeflate-0.3.4 \
 		filetime-0.2.23 \
-		find-crate-0.6.3 \
 		find-winsdk-0.2.0 \
 		fixedbitset-0.4.2 \
 		flate2-1.0.28 \
@@ -148,7 +147,6 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		fluent-bundle-0.15.2 \
 		fluent-langneg-0.13.0 \
 		fluent-syntax-0.11.0 \
-		flume-0.10.14 \
 		flume-0.11.0 \
 		fnv-1.0.7 \
 		foreign-types-0.3.2 \
@@ -160,51 +158,51 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		forwarded-header-value-0.1.1 \
 		fs2-0.4.3 \
 		fsevent-sys-4.1.0 \
+		fsrs-0.5.5 \
 		futf-0.1.5 \
-		futures-0.3.29 \
-		futures-channel-0.3.29 \
-		futures-core-0.3.29 \
-		futures-executor-0.3.29 \
+		futures-0.3.30 \
+		futures-channel-0.3.30 \
+		futures-core-0.3.30 \
+		futures-executor-0.3.30 \
 		futures-intrusive-0.5.0 \
-		futures-io-0.3.29 \
+		futures-io-0.3.30 \
 		futures-lite-1.13.0 \
-		futures-macro-0.3.29 \
-		futures-sink-0.3.29 \
-		futures-task-0.3.29 \
-		futures-timer-3.0.2 \
-		futures-util-0.3.29 \
-		gemm-0.16.15 \
-		gemm-c32-0.16.15 \
-		gemm-c64-0.16.15 \
-		gemm-common-0.16.15 \
-		gemm-f16-0.16.15 \
-		gemm-f32-0.16.15 \
-		gemm-f64-0.16.15 \
+		futures-macro-0.3.30 \
+		futures-sink-0.3.30 \
+		futures-task-0.3.30 \
+		futures-timer-3.0.3 \
+		futures-util-0.3.30 \
+		gemm-0.17.1 \
+		gemm-c32-0.17.1 \
+		gemm-c64-0.17.1 \
+		gemm-common-0.17.1 \
+		gemm-f16-0.17.1 \
+		gemm-f32-0.17.1 \
+		gemm-f64-0.17.1 \
 		generic-array-0.14.7 \
 		getopts-0.2.21 \
 		getrandom-0.1.16 \
-		getrandom-0.2.11 \
-		gif-0.12.0 \
+		getrandom-0.2.12 \
+		gif-0.13.1 \
 		gimli-0.28.1 \
-		gix-features-0.33.0 \
-		gix-fs-0.5.0 \
-		gix-hash-0.12.0 \
-		gix-tempfile-8.0.0 \
-		gix-trace-0.1.3 \
+		gix-features-0.36.1 \
+		gix-fs-0.8.1 \
+		gix-hash-0.13.3 \
+		gix-tempfile-11.0.1 \
+		gix-trace-0.1.7 \
 		gl_generator-0.14.0 \
 		glob-0.3.1 \
 		globset-0.4.14 \
-		glow-0.13.0 \
+		glow-0.13.1 \
 		glutin_wgl_sys-0.5.0 \
 		gpu-alloc-0.6.0 \
 		gpu-alloc-types-0.3.0 \
 		gpu-allocator-0.23.0 \
 		gpu-descriptor-0.2.4 \
 		gpu-descriptor-types-0.1.2 \
-		h2-0.3.22 \
-		half-1.8.2 \
-		half-2.3.1 \
-		handlebars-4.5.0 \
+		h2-0.3.24 \
+		half-2.4.0 \
+		handlebars-5.1.0 \
 		hashbrown-0.13.2 \
 		hashbrown-0.14.3 \
 		hashlink-0.8.4 \
@@ -212,30 +210,30 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		headers-0.3.9 \
 		headers-core-0.2.0 \
 		heck-0.4.1 \
-		hermit-abi-0.3.3 \
+		hermit-abi-0.3.8 \
 		hex-0.4.3 \
 		hexf-parse-0.2.1 \
 		hmac-0.12.1 \
-		home-0.5.5 \
+		home-0.5.9 \
 		html5ever-0.26.0 \
 		htmlescape-0.3.1 \
 		http-0.2.11 \
-		http-body-0.4.5 \
+		http-body-0.4.6 \
 		http-range-header-0.3.1 \
 		http-types-2.12.0 \
 		httparse-1.8.0 \
 		httpdate-1.0.3 \
 		humantime-2.1.0 \
-		hyper-0.14.27 \
+		hyper-0.14.28 \
 		hyper-rustls-0.24.2 \
 		hyper-tls-0.5.0 \
-		iana-time-zone-0.1.58 \
+		iana-time-zone-0.1.60 \
 		iana-time-zone-haiku-0.1.2 \
 		id_tree-1.8.0 \
 		idna-0.5.0 \
-		ignore-0.4.21 \
-		image-0.24.7 \
-		indexmap-2.1.0 \
+		ignore-0.4.22 \
+		image-0.24.9 \
+		indexmap-2.2.3 \
 		indoc-2.0.4 \
 		infer-0.2.3 \
 		inflections-1.1.1 \
@@ -246,14 +244,13 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		intl-memoizer-0.5.1 \
 		intl_pluralrules-7.0.2 \
 		ipnet-2.9.0 \
-		is-terminal-0.4.9 \
+		is-terminal-0.4.12 \
 		itertools-0.10.5 \
 		itertools-0.11.0 \
-		itertools-0.12.0 \
-		itoa-1.0.9 \
-		jobserver-0.1.27 \
-		jpeg-decoder-0.3.0 \
-		js-sys-0.3.66 \
+		itertools-0.12.1 \
+		itoa-1.0.10 \
+		jpeg-decoder-0.3.1 \
+		js-sys-0.3.68 \
 		junction-1.0.0 \
 		khronos-egl-6.0.0 \
 		khronos_api-3.1.0 \
@@ -261,7 +258,7 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		kqueue-sys-1.0.4 \
 		lazy_static-1.4.0 \
 		lebe-0.5.2 \
-		libc-0.2.150 \
+		libc-0.2.153 \
 		libloading-0.7.4 \
 		libloading-0.8.1 \
 		libm-0.2.8 \
@@ -269,7 +266,7 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		libsqlite3-sys-0.27.0 \
 		line-wrap-0.1.1 \
 		linkify-0.7.0 \
-		linux-raw-sys-0.4.12 \
+		linux-raw-sys-0.4.13 \
 		lock_api-0.4.11 \
 		log-0.4.20 \
 		lzma-sys-0.1.20 \
@@ -282,19 +279,20 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		matches-0.1.10 \
 		matchit-0.7.3 \
 		matrixmultiply-0.3.8 \
-		mdbook-0.4.36 \
-		memchr-2.6.4 \
-		memmap2-0.7.1 \
+		md5-0.7.0 \
+		mdbook-0.4.37 \
+		memchr-2.7.1 \
+		memmap2-0.9.4 \
 		memoffset-0.9.0 \
 		metal-0.27.0 \
 		mime-0.3.17 \
 		mime_guess-2.0.4 \
 		minimal-lexical-0.2.1 \
-		miniz_oxide-0.7.1 \
-		mio-0.8.9 \
+		miniz_oxide-0.7.2 \
+		mio-0.8.11 \
 		multer-2.1.0 \
 		multimap-0.8.3 \
-		naga-0.14.1 \
+		naga-0.14.2 \
 		nanorand-0.7.0 \
 		native-tls-0.2.11 \
 		ndarray-0.15.6 \
@@ -302,45 +300,47 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		new_debug_unreachable-1.0.4 \
 		nom-7.1.3 \
 		nonempty-0.7.0 \
-		normpath-1.1.1 \
+		normpath-1.2.0 \
 		notify-6.1.1 \
 		notify-debouncer-mini-0.4.1 \
 		nu-ansi-term-0.46.0 \
-		num-complex-0.4.4 \
+		num-complex-0.4.5 \
+		num-conv-0.1.0 \
 		num-format-0.4.4 \
-		num-integer-0.1.45 \
-		num-rational-0.4.1 \
-		num-traits-0.2.17 \
+		num-integer-0.1.46 \
+		num-traits-0.2.18 \
 		num_cpus-1.16.0 \
-		num_enum-0.7.1 \
-		num_enum_derive-0.7.1 \
+		num_enum-0.7.2 \
+		num_enum_derive-0.7.2 \
 		objc-0.2.7 \
 		objc_exception-0.1.2 \
-		object-0.32.1 \
-		once_cell-1.18.0 \
+		object-0.32.2 \
+		once_cell-1.19.0 \
 		oorandom-11.1.3 \
 		opener-0.6.1 \
-		openssl-0.10.61 \
+		openssl-0.10.64 \
 		openssl-macros-0.1.1 \
 		openssl-probe-0.1.5 \
-		openssl-sys-0.9.97 \
+		openssl-sys-0.9.101 \
 		option-ext-0.2.0 \
-		os_pipe-1.1.4 \
+		os_pipe-1.1.5 \
 		overload-0.1.1 \
 		p12-0.6.3 \
 		parking-2.2.0 \
 		parking_lot-0.12.1 \
 		parking_lot_core-0.9.9 \
 		password-hash-0.4.2 \
+		password-hash-0.5.0 \
 		paste-1.0.14 \
 		pathdiff-0.2.1 \
 		pbkdf2-0.11.0 \
+		pbkdf2-0.12.2 \
 		pem-1.1.1 \
 		percent-encoding-2.3.1 \
-		pest-2.7.5 \
-		pest_derive-2.7.5 \
-		pest_generator-2.7.5 \
-		pest_meta-2.7.5 \
+		pest-2.7.7 \
+		pest_derive-2.7.7 \
+		pest_generator-2.7.7 \
+		pest_meta-2.7.7 \
 		petgraph-0.6.4 \
 		phf-0.10.1 \
 		phf-0.11.2 \
@@ -350,41 +350,45 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		phf_macros-0.11.2 \
 		phf_shared-0.10.0 \
 		phf_shared-0.11.2 \
-		pin-project-1.1.3 \
-		pin-project-internal-1.1.3 \
+		pin-project-1.1.4 \
+		pin-project-internal-1.1.4 \
 		pin-project-lite-0.2.13 \
 		pin-utils-0.1.0 \
-		pkg-config-0.3.27 \
+		pkg-config-0.3.30 \
 		plist-1.6.0 \
 		plotters-0.3.5 \
 		plotters-backend-0.3.5 \
 		plotters-svg-0.3.5 \
-		png-0.17.10 \
+		png-0.17.13 \
 		pollster-0.3.0 \
+		portable-atomic-1.6.0 \
 		powerfmt-0.2.0 \
 		ppv-lite86-0.2.17 \
 		precomputed-hash-0.1.1 \
 		presser-0.3.1 \
-		prettyplease-0.2.15 \
-		proc-macro-crate-2.0.0 \
-		proc-macro2-1.0.70 \
-		profiling-1.0.11 \
+		prettyplease-0.2.16 \
+		proc-macro-crate-3.1.0 \
+		proc-macro-hack-0.5.20+deprecated \
+		proc-macro2-1.0.78 \
+		profiling-1.0.15 \
 		prost-0.12.3 \
 		prost-build-0.12.3 \
 		prost-derive-0.12.3 \
 		prost-reflect-0.12.0 \
 		prost-types-0.12.3 \
 		pulldown-cmark-0.8.0 \
-		pulldown-cmark-0.9.3 \
-		pulp-0.18.6 \
-		pyo3-0.20.0 \
-		pyo3-build-config-0.20.0 \
-		pyo3-ffi-0.20.0 \
-		pyo3-macros-0.20.0 \
-		pyo3-macros-backend-0.20.0 \
+		pulldown-cmark-0.9.6 \
+		pulldown-cmark-0.10.0 \
+		pulldown-cmark-escape-0.10.0 \
+		pulp-0.18.8 \
+		pyo3-0.20.3 \
+		pyo3-build-config-0.20.3 \
+		pyo3-ffi-0.20.3 \
+		pyo3-macros-0.20.3 \
+		pyo3-macros-backend-0.20.3 \
 		qoi-0.4.1 \
 		quick-xml-0.31.0 \
-		quote-1.0.33 \
+		quote-1.0.35 \
 		r2d2-0.8.10 \
 		r2d2_sqlite-0.23.0 \
 		rand-0.7.3 \
@@ -399,40 +403,44 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		raw-cpuid-10.7.0 \
 		raw-window-handle-0.5.2 \
 		rawpointer-0.2.1 \
-		rayon-1.8.0 \
-		rayon-core-1.12.0 \
+		rayon-1.9.0 \
+		rayon-core-1.12.1 \
 		rc2-0.8.1 \
 		rcgen-0.10.0 \
 		reborrow-0.5.5 \
 		redox_syscall-0.4.1 \
 		redox_users-0.4.4 \
-		regex-1.10.2 \
+		regex-1.10.3 \
 		regex-automata-0.1.10 \
-		regex-automata-0.4.3 \
+		regex-automata-0.4.5 \
 		regex-syntax-0.6.29 \
 		regex-syntax-0.8.2 \
 		renderdoc-sys-1.0.0 \
-		reqwest-0.11.22 \
+		reqwest-0.11.24 \
 		retain_mut-0.1.9 \
 		ring-0.16.20 \
-		ring-0.17.7 \
+		ring-0.17.8 \
 		rmp-0.8.12 \
 		rmp-serde-1.1.2 \
 		rusqlite-0.30.0 \
 		rustc-demangle-0.1.23 \
 		rustc-hash-1.1.0 \
-		rustix-0.38.26 \
-		rustls-0.21.9 \
+		rustix-0.38.31 \
+		rustls-0.21.10 \
+		rustls-0.22.2 \
 		rustls-native-certs-0.6.3 \
 		rustls-pemfile-1.0.4 \
+		rustls-pki-types-1.3.1 \
 		rustls-webpki-0.101.7 \
+		rustls-webpki-0.102.2 \
 		rustversion-1.0.14 \
-		ryu-1.0.15 \
+		ryu-1.0.17 \
 		safemem-0.3.3 \
 		safetensors-0.3.3 \
+		safetensors-0.4.2 \
 		same-file-1.0.6 \
 		sanitize-filename-0.5.0 \
-		schannel-0.1.22 \
+		schannel-0.1.23 \
 		scheduled-thread-pool-0.2.7 \
 		scoped-tls-1.0.1 \
 		scopeguard-1.2.0 \
@@ -440,16 +448,16 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		security-framework-2.9.2 \
 		security-framework-sys-2.9.1 \
 		self_cell-0.10.3 \
-		self_cell-1.0.2 \
-		semver-1.0.20 \
+		self_cell-1.0.3 \
+		semver-1.0.22 \
 		seq-macro-0.3.5 \
-		serde-1.0.193 \
-		serde-aux-4.3.1 \
-		serde_derive-1.0.193 \
-		serde_json-1.0.108 \
-		serde_path_to_error-0.1.14 \
+		serde-1.0.197 \
+		serde-aux-4.5.0 \
+		serde_derive-1.0.197 \
+		serde_json-1.0.114 \
+		serde_path_to_error-0.1.15 \
 		serde_qs-0.8.5 \
-		serde_repr-0.1.17 \
+		serde_repr-0.1.18 \
 		serde_rusqlite-0.34.0 \
 		serde_tuple-0.5.0 \
 		serde_tuple_macros-0.5.0 \
@@ -458,7 +466,7 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		sha2-0.10.8 \
 		sharded-slab-0.1.7 \
 		shared_child-1.0.0 \
-		shlex-1.2.0 \
+		shlex-1.3.0 \
 		signal-hook-0.3.17 \
 		signal-hook-registry-1.4.1 \
 		simd-adler32-0.3.7 \
@@ -466,12 +474,11 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		siphasher-0.3.11 \
 		slab-0.4.9 \
 		slotmap-1.0.7 \
-		smallvec-1.11.2 \
-		snafu-0.7.5 \
-		snafu-derive-0.7.5 \
+		smallvec-1.13.1 \
+		snafu-0.8.1 \
+		snafu-derive-0.8.1 \
 		snowflake-1.3.0 \
-		socket2-0.4.10 \
-		socket2-0.5.5 \
+		socket2-0.5.6 \
 		spin-0.5.2 \
 		spin-0.9.8 \
 		spirv-0.2.0+1.5.4 \
@@ -479,37 +486,40 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		static_assertions-1.1.0 \
 		string_cache-0.8.7 \
 		string_cache_codegen-0.5.2 \
-		strsim-0.10.0 \
+		strsim-0.11.0 \
 		strum-0.25.0 \
+		strum-0.26.1 \
 		strum_macros-0.25.3 \
+		strum_macros-0.26.1 \
 		subtle-2.5.0 \
 		syn-1.0.109 \
-		syn-2.0.39 \
+		syn-2.0.51 \
 		sync_wrapper-0.1.2 \
-		synstructure-0.13.0 \
+		synstructure-0.13.1 \
+		sysctl-0.5.5 \
 		system-configuration-0.5.1 \
 		system-configuration-sys-0.5.0 \
 		tar-0.4.40 \
-		target-lexicon-0.12.12 \
-		tch-0.14.0 \
-		tempfile-3.8.1 \
+		target-lexicon-0.12.14 \
+		tch-0.15.0 \
+		tempfile-3.10.1 \
 		tendril-0.4.3 \
-		termcolor-1.4.0 \
+		termcolor-1.4.1 \
 		terminal_size-0.3.0 \
 		text_placeholder-0.5.0 \
-		thiserror-1.0.50 \
-		thiserror-impl-1.0.50 \
+		thiserror-1.0.57 \
+		thiserror-impl-1.0.57 \
 		thread-tree-0.3.3 \
-		thread_local-1.1.7 \
-		tiff-0.9.0 \
-		time-0.3.30 \
+		thread_local-1.1.8 \
+		tiff-0.9.1 \
+		time-0.3.34 \
 		time-core-0.1.2 \
-		time-macros-0.2.15 \
+		time-macros-0.2.17 \
 		tinystr-0.7.5 \
 		tinytemplate-1.2.1 \
 		tinyvec-1.6.0 \
 		tinyvec_macros-0.1.1 \
-		tokio-1.34.0 \
+		tokio-1.36.0 \
 		tokio-macros-2.2.0 \
 		tokio-native-tls-0.3.1 \
 		tokio-rustls-0.24.1 \
@@ -519,9 +529,9 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		tokio-util-0.7.10 \
 		toml-0.5.11 \
 		toml_datetime-0.6.5 \
-		toml_edit-0.20.7 \
+		toml_edit-0.21.1 \
 		topological-sort-0.2.2 \
-		torch-sys-0.14.0 \
+		torch-sys-0.15.0 \
 		tower-0.4.13 \
 		tower-http-0.4.4 \
 		tower-layer-0.3.2 \
@@ -532,7 +542,7 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		tracing-core-0.1.32 \
 		tracing-log-0.2.0 \
 		tracing-subscriber-0.3.18 \
-		try-lock-0.2.4 \
+		try-lock-0.2.5 \
 		tugger-common-0.10.0 \
 		tugger-windows-0.10.0 \
 		tugger-windows-codesign-0.10.0 \
@@ -543,28 +553,28 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		unic-char-property-0.9.0 \
 		unic-char-range-0.9.0 \
 		unic-common-0.9.0 \
-		unic-langid-0.9.3 \
-		unic-langid-impl-0.9.3 \
-		unic-langid-macros-0.9.3 \
-		unic-langid-macros-impl-0.9.3 \
+		unic-langid-0.9.4 \
+		unic-langid-impl-0.9.4 \
+		unic-langid-macros-0.9.4 \
+		unic-langid-macros-impl-0.9.4 \
 		unic-ucd-category-0.9.0 \
 		unic-ucd-version-0.9.0 \
 		unicase-2.6.0 \
-		unicode-bidi-0.3.13 \
+		unicode-bidi-0.3.15 \
 		unicode-ident-1.0.12 \
-		unicode-normalization-0.1.22 \
-		unicode-segmentation-1.10.1 \
+		unicode-normalization-0.1.23 \
+		unicode-segmentation-1.11.0 \
 		unicode-width-0.1.11 \
 		unicode-xid-0.2.4 \
 		unindent-0.2.3 \
 		untrusted-0.7.1 \
 		untrusted-0.9.0 \
-		ureq-2.9.1 \
+		ureq-2.9.6 \
 		url-2.5.0 \
 		utf-8-0.7.6 \
 		utf8parse-0.2.1 \
 		utime-0.3.1 \
-		uuid-1.6.1 \
+		uuid-1.7.0 \
 		valuable-0.1.0 \
 		vcpkg-0.2.15 \
 		version_check-0.9.4 \
@@ -574,16 +584,19 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		warp-0.3.6 \
 		wasi-0.9.0+wasi-snapshot-preview1 \
 		wasi-0.11.0+wasi-snapshot-preview1 \
-		wasm-bindgen-0.2.89 \
-		wasm-bindgen-backend-0.2.89 \
-		wasm-bindgen-futures-0.4.39 \
-		wasm-bindgen-macro-0.2.89 \
-		wasm-bindgen-macro-support-0.2.89 \
-		wasm-bindgen-shared-0.2.89 \
-		wasm-streams-0.3.0 \
+		wasix-0.12.21 \
+		wasm-bindgen-0.2.91 \
+		wasm-bindgen-backend-0.2.91 \
+		wasm-bindgen-futures-0.4.41 \
+		wasm-bindgen-macro-0.2.91 \
+		wasm-bindgen-macro-support-0.2.91 \
+		wasm-bindgen-shared-0.2.91 \
+		wasm-streams-0.4.0 \
 		web-sys-0.3.64 \
-		webpki-roots-0.25.3 \
-		weezl-0.1.7 \
+		web-time-1.1.0 \
+		webpki-roots-0.25.4 \
+		webpki-roots-0.26.1 \
+		weezl-0.1.8 \
 		wgpu-0.18.0 \
 		wgpu-core-0.18.1 \
 		wgpu-hal-0.18.1 \
@@ -596,42 +609,45 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		winapi-util-0.1.6 \
 		winapi-x86_64-pc-windows-gnu-0.4.0 \
 		windows-0.51.1 \
-		windows-0.52.0 \
+		windows-0.54.0 \
 		windows-core-0.51.1 \
 		windows-core-0.52.0 \
+		windows-core-0.54.0 \
+		windows-result-0.1.0 \
 		windows-sys-0.48.0 \
 		windows-sys-0.52.0 \
 		windows-targets-0.48.5 \
-		windows-targets-0.52.0 \
+		windows-targets-0.52.3 \
 		windows_aarch64_gnullvm-0.48.5 \
-		windows_aarch64_gnullvm-0.52.0 \
+		windows_aarch64_gnullvm-0.52.3 \
 		windows_aarch64_msvc-0.48.5 \
-		windows_aarch64_msvc-0.52.0 \
+		windows_aarch64_msvc-0.52.3 \
 		windows_i686_gnu-0.48.5 \
-		windows_i686_gnu-0.52.0 \
+		windows_i686_gnu-0.52.3 \
 		windows_i686_msvc-0.48.5 \
-		windows_i686_msvc-0.52.0 \
+		windows_i686_msvc-0.52.3 \
 		windows_x86_64_gnu-0.48.5 \
-		windows_x86_64_gnu-0.52.0 \
+		windows_x86_64_gnu-0.52.3 \
 		windows_x86_64_gnullvm-0.48.5 \
-		windows_x86_64_gnullvm-0.52.0 \
+		windows_x86_64_gnullvm-0.52.3 \
 		windows_x86_64_msvc-0.48.5 \
-		windows_x86_64_msvc-0.52.0 \
-		winnow-0.5.25 \
+		windows_x86_64_msvc-0.52.3 \
+		winnow-0.5.40 \
 		winreg-0.5.1 \
 		winreg-0.50.0 \
 		wiremock-0.5.22 \
-		xattr-1.0.1 \
+		xattr-1.3.1 \
 		xml-rs-0.8.19 \
 		xml5ever-0.17.0 \
 		xz2-0.1.7 \
 		yasna-0.5.2 \
 		yoke-0.7.3 \
 		yoke-derive-0.7.3 \
-		zerocopy-0.7.31 \
-		zerocopy-derive-0.7.31 \
+		zerocopy-0.7.32 \
+		zerocopy-derive-0.7.32 \
 		zerofrom-0.1.3 \
 		zerofrom-derive-0.1.3 \
+		zeroize-1.7.0 \
 		zip-0.6.6 \
 		zstd-0.11.2+zstd.1.5.2 \
 		zstd-0.13.0 \
@@ -640,5 +656,4 @@ CARGO_CRATES=	addr2line-0.21.0 \
 		zstd-sys-2.0.9+zstd.1.5.5 \
 		zune-inflate-0.2.54 \
 		percent-encoding-iri@git+https://github.com/ankitects/rust-url.git?rev=bb930b8d089f4d30d7d19c12e54e66191de47b88\#bb930b8d089f4d30d7d19c12e54e66191de47b88 \
-		fsrs@git+https://github.com/open-spaced-repetition/fsrs-rs.git?rev=58ca25ed2bc4bb1dc376208bbcaed7f5a501b941\#58ca25ed2bc4bb1dc376208bbcaed7f5a501b941 \
 		linkcheck@git+https://github.com/ankitects/linkcheck.git?rev=184b2ca50ed39ca43da13f0b830a463861adb9ca\#184b2ca50ed39ca43da13f0b830a463861adb9ca
diff --git a/games/anki/distinfo b/games/anki/distinfo
index 82ebbbc2b3a2..596b3bac44a0 100644
--- a/games/anki/distinfo
+++ b/games/anki/distinfo
@@ -1,14 +1,14 @@
-TIMESTAMP = 1703780710
-SHA256 (anki-yarn-cache-23.12.1.tar.gz) = 6f1fc4057f76924f909463e5e783ab72c3f9e9f0d70bdef54b550da668918b99
-SIZE (anki-yarn-cache-23.12.1.tar.gz) = 329244731
+TIMESTAMP = 1711874457
+SHA256 (anki-yarn-cache-24.04.tar.gz) = 44f1de419cee0e36a06556438e7b52b59968964d6dbe28716f5fbd6b2a3a2ec7
+SIZE (anki-yarn-cache-24.04.tar.gz) = 328999684
 SHA256 (rust/crates/addr2line-0.21.0.crate) = 8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb
 SIZE (rust/crates/addr2line-0.21.0.crate) = 40807
 SHA256 (rust/crates/adler-1.0.2.crate) = f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe
 SIZE (rust/crates/adler-1.0.2.crate) = 12778
-SHA256 (rust/crates/aes-0.8.3.crate) = ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2
-SIZE (rust/crates/aes-0.8.3.crate) = 124679
-SHA256 (rust/crates/ahash-0.8.6.crate) = 91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a
-SIZE (rust/crates/ahash-0.8.6.crate) = 42780
+SHA256 (rust/crates/aes-0.8.4.crate) = b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0
+SIZE (rust/crates/aes-0.8.4.crate) = 124812
+SHA256 (rust/crates/ahash-0.8.10.crate) = 8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b
+SIZE (rust/crates/ahash-0.8.10.crate) = 43555
 SHA256 (rust/crates/aho-corasick-1.1.2.crate) = b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0
 SIZE (rust/crates/aho-corasick-1.1.2.crate) = 183136
 SHA256 (rust/crates/allocator-api2-0.2.16.crate) = 0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5
@@ -21,18 +21,18 @@ SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac2
 SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
 SHA256 (rust/crates/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299
 SIZE (rust/crates/anes-0.1.6.crate) = 23857
-SHA256 (rust/crates/anstream-0.6.4.crate) = 2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44
-SIZE (rust/crates/anstream-0.6.4.crate) = 20593
-SHA256 (rust/crates/anstyle-1.0.4.crate) = 7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87
-SIZE (rust/crates/anstyle-1.0.4.crate) = 13998
+SHA256 (rust/crates/anstream-0.6.13.crate) = d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb
+SIZE (rust/crates/anstream-0.6.13.crate) = 30928
+SHA256 (rust/crates/anstyle-1.0.6.crate) = 8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc
+SIZE (rust/crates/anstyle-1.0.6.crate) = 14604
 SHA256 (rust/crates/anstyle-parse-0.2.3.crate) = c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c
 SIZE (rust/crates/anstyle-parse-0.2.3.crate) = 24699
-SHA256 (rust/crates/anstyle-query-1.0.1.crate) = a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748
-SIZE (rust/crates/anstyle-query-1.0.1.crate) = 8620
+SHA256 (rust/crates/anstyle-query-1.0.2.crate) = e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648
+SIZE (rust/crates/anstyle-query-1.0.2.crate) = 8739
 SHA256 (rust/crates/anstyle-wincon-3.0.2.crate) = 1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7
 SIZE (rust/crates/anstyle-wincon-3.0.2.crate) = 11272
-SHA256 (rust/crates/anyhow-1.0.75.crate) = a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6
-SIZE (rust/crates/anyhow-1.0.75.crate) = 43901
+SHA256 (rust/crates/anyhow-1.0.80.crate) = 5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1
+SIZE (rust/crates/anyhow-1.0.80.crate) = 45138
 SHA256 (rust/crates/apple-bundles-0.17.0.crate) = 716b8a7bacf7325eb3e7a1a7f5ead4da91e1e16d9b56a25edea0e1e4ba21fd8e
 SIZE (rust/crates/apple-bundles-0.17.0.crate) = 10405
 SHA256 (rust/crates/arrayref-0.3.7.crate) = 6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545
@@ -45,14 +45,14 @@ SHA256 (rust/crates/assert-json-diff-2.0.2.crate) = 47e4f2b81832e72834d7518d8487
 SIZE (rust/crates/assert-json-diff-2.0.2.crate) = 10874
 SHA256 (rust/crates/async-channel-1.9.0.crate) = 81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35
 SIZE (rust/crates/async-channel-1.9.0.crate) = 13664
-SHA256 (rust/crates/async-compression-0.4.5.crate) = bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5
-SIZE (rust/crates/async-compression-0.4.5.crate) = 99222
+SHA256 (rust/crates/async-compression-0.4.6.crate) = a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c
+SIZE (rust/crates/async-compression-0.4.6.crate) = 99437
 SHA256 (rust/crates/async-stream-0.3.5.crate) = cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51
 SIZE (rust/crates/async-stream-0.3.5.crate) = 11916
*** 1837 LINES SKIPPED ***