Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Nov 2020 13:01:04 +0000 (UTC)
From:      Kai Knoblich <kai@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r554834 - in head/games/anki: . files
Message-ID:  <202011101301.0AAD14FT027841@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kai
Date: Tue Nov 10 13:01:04 2020
New Revision: 554834
URL: https://svnweb.freebsd.org/changeset/ports/554834

Log:
  games/anki: Update to 2.1.35
  
  Since the 2.1.17 release the build system has been significantly revised and
  contains many changes (e.g. a Rust library with Python bindings) that had to
  be adapted to the Ports framework.
  
  Kudos to David Schlachter for the additional testing and feedback!
  
  Changelog since 2.1.16 (too many changes to list them separately):
  
  https://changes.ankiweb.net/
  
  PR:		247666
  Reported by:	David Schlachter
  Reviewed by:	tcberner (earlier revision)
  Differential Revision:	https://reviews.freebsd.org/D26961

Added:
  head/games/anki/files/patch-pylib_Makefile   (contents, props changed)
  head/games/anki/files/patch-qt_Makefile   (contents, props changed)
  head/games/anki/files/patch-qt_runanki   (contents, props changed)
  head/games/anki/files/patch-rslib_Cargo.toml   (contents, props changed)
  head/games/anki/files/patch-rspy_Makefile   (contents, props changed)
Deleted:
  head/games/anki/files/patch-anki_lang.py
  head/games/anki/files/patch-anki_mpv.py
  head/games/anki/files/patch-anki_sound.py
  head/games/anki/files/patch-aqt_qt.py
Modified:
  head/games/anki/Makefile
  head/games/anki/distinfo
  head/games/anki/files/patch-Makefile
  head/games/anki/pkg-plist

Modified: head/games/anki/Makefile
==============================================================================
--- head/games/anki/Makefile	Tue Nov 10 12:57:30 2020	(r554833)
+++ head/games/anki/Makefile	Tue Nov 10 13:01:04 2020	(r554834)
@@ -2,11 +2,11 @@
 # $FreeBSD$
 
 PORTNAME=	anki
-DISTVERSION=	2.1.16
-PORTREVISION=	2
+DISTVERSION=	2.1.35
+# Don't forget to update ${_MY_BUILDHASH}
 CATEGORIES=	games python
-MASTER_SITES=	https://apps.ankiweb.net/downloads/archive/
-DISTNAME=	anki-${PORTVERSION}-source
+MASTER_SITES=	LOCAL/kai/:npmcache
+DISTFILES=	anki-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache
 DIST_SUBDIR=	python
 
 MAINTAINER=	kai@FreeBSD.org
@@ -15,6 +15,23 @@ COMMENT=	Flashcard trainer with spaced repetition
 LICENSE=	AGPLv3+
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
+BUILD_DEPENDS=	bash:shells/bash \
+		maturin:devel/py-maturin@${PY_FLAVOR} \
+		protoc:devel/protobuf \
+		npm:www/npm \
+		rsync:net/rsync \
+		${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}stringcase==1.2.0:devel/py-stringcase@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \
+		${RUN_DEPENDS}
+
+# For x64 architectures there's also a Python package "orjson" that still needs
+# to be ported once the required features (= "untagged unions",
+# "specialication" and "const_generics") of the "smallvec" crate are available
+# in the Rust release channel.
+#
+# Although the "orjson" package is required via the setup.py of Anki's Python
+# library it's (still) optional in the code.
 RUN_DEPENDS=	lame:audio/lame \
 		${PYTHON_PKGNAMEPREFIX}pyaudio>0:audio/py-pyaudio@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
@@ -24,15 +41,298 @@ RUN_DEPENDS=	lame:audio/lame \
 		${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Flask>0:www/py-flask@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Flask-Cors>0:www/py-flask-cors@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}protobuf>0:devel/py-protobuf@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}waitress>0:www/py-waitress@${PY_FLAVOR}
 
-USES=		desktop-file-utils pyqt:5 python:3.6+ shebangfix tar:tgz
-USE_PYQT=	core_run gui_run printsupport_run sip_run webengine_run widgets_run
+# USES=ssl is required for the compilation of the Rust code
+USES=		cargo desktop-file-utils gmake perl5 pyqt:5 python:3.7+ shebangfix ssl
+USE_GITHUB=	yes
+GH_ACCOUNT=	ankitects
+GH_TUPLE=	ankitects:anki-core-i18n:fbda2ed:i18ncore \
+		ankitects:anki-desktop-ftl:f56e959:i18nfluent \
+		ankitects:anki-desktop-i18n:a93ccef:i18ndesktop \
+		ankitects:rust-coarsetime:f9e2c86216f0f4803bc75404828318fc206dab29:coarsetime \
+		ankitects:fluent-rs:f61c5e10a53161ef5261f3c87b62047f12e4aa74:fluent \
+		ankitects:hyper-timeout:664b6f9c387f6a7d75d1609a65c02554e8c55bc7:hypertimeout \
+		ankitects:reqwest:57665e2c2a39db85723ba860f1b570a608bb73f9:reqwest \
+		ankitects:tokio-io-timeout:96e1358555c49905de89170f2b1102a7d8b6c4c2:tokioiotimeout
+USE_PERL5=	build
+USE_PYQT=	core gui network printsupport sip svg webchannel webengine widgets xml_build
 
-NO_ARCH=	yes
-SHEBANG_FILES=	tools/runanki.system.in
-WRKSRC=		${WRKDIR}/anki-${PORTVERSION}
+SHEBANG_FILES=	qt/po/scripts/build-mo-files \
+		qt/po/scripts/copy-qt-files \
+		qt/runanki \
+		qt/tools/build_ui.sh \
+		scripts/rename
 
+CARGO_CRATES=	addr2line-0.13.0 \
+		adler-0.2.3 \
+		aho-corasick-0.7.14 \
+		anyhow-1.0.33 \
+		arc-swap-0.4.7 \
+		arrayref-0.3.6 \
+		arrayvec-0.4.12 \
+		arrayvec-0.5.1 \
+		askama-0.10.3 \
+		askama_derive-0.10.3 \
+		askama_escape-0.10.1 \
+		askama_shared-0.10.4 \
+		async-compression-0.3.5 \
+		atty-0.2.14 \
+		autocfg-1.0.1 \
+		backtrace-0.3.53 \
+		base64-0.12.3 \
+		bitflags-1.2.1 \
+		blake2b_simd-0.5.10 \
+		blake3-0.3.7 \
+		bumpalo-3.4.0 \
+		byteorder-1.3.4 \
+		bytes-0.4.12 \
+		bytes-0.5.6 \
+		cc-1.0.61 \
+		cfg-if-0.1.10 \
+		cfg-if-1.0.0 \
+		chrono-0.4.19 \
+		cloudabi-0.1.0 \
+		constant_time_eq-0.1.5 \
+		core-foundation-0.7.0 \
+		core-foundation-sys-0.7.0 \
+		crc32fast-1.2.1 \
+		crossbeam-channel-0.4.4 \
+		crossbeam-utils-0.7.2 \
+		crypto-mac-0.8.0 \
+		ctor-0.1.16 \
+		derivative-2.1.1 \
+		digest-0.9.0 \
+		dirs-2.0.2 \
+		dirs-sys-0.3.5 \
+		dtoa-0.4.6 \
+		either-1.6.1 \
+		encoding_rs-0.8.24 \
+		failure-0.1.8 \
+		failure_derive-0.1.8 \
+		fallible-iterator-0.2.0 \
+		fallible-streaming-iterator-0.1.9 \
+		fixedbitset-0.2.0 \
+		flate2-1.0.18 \
+		fluent-langneg-0.12.1 \
+		fluent-syntax-0.9.3 \
+		fnv-1.0.7 \
+		foreign-types-0.3.2 \
+		foreign-types-shared-0.1.1 \
+		fuchsia-zircon-0.3.3 \
+		fuchsia-zircon-sys-0.3.3 \
+		futures-0.3.6 \
+		futures-channel-0.3.6 \
+		futures-core-0.3.6 \
+		futures-executor-0.3.6 \
+		futures-io-0.3.6 \
+		futures-macro-0.3.6 \
+		futures-sink-0.3.6 \
+		futures-task-0.3.6 \
+		futures-util-0.3.6 \
+		fxhash-0.2.1 \
+		generic-array-0.14.4 \
+		getrandom-0.1.15 \
+		ghost-0.1.2 \
+		gimli-0.22.0 \
+		h2-0.2.6 \
+		hashbrown-0.9.1 \
+		heck-0.3.1 \
+		hermit-abi-0.1.17 \
+		hex-0.4.2 \
+		htmlescape-0.3.1 \
+		http-0.2.1 \
+		http-body-0.3.1 \
+		httparse-1.3.4 \
+		httpdate-0.3.2 \
+		humansize-1.1.0 \
+		hyper-0.13.8 \
+		hyper-tls-0.4.3 \
+		idna-0.2.0 \
+		indexmap-1.6.0 \
+		indoc-0.3.6 \
+		indoc-impl-0.3.6 \
+		instant-0.1.7 \
+		intl_pluralrules-6.0.0 \
+		inventory-0.1.9 \
+		inventory-impl-0.1.9 \
+		iovec-0.1.4 \
+		itertools-0.8.2 \
+		itertools-0.9.0 \
+		itoa-0.4.6 \
+		js-sys-0.3.45 \
+		kernel32-sys-0.2.2 \
+		lazy_static-1.4.0 \
+		lexical-core-0.7.4 \
+		libc-0.2.79 \
+		libsqlite3-sys-0.18.0 \
+		linked-hash-map-0.5.3 \
+		lock_api-0.4.1 \
+		log-0.4.11 \
+		lru-cache-0.1.2 \
+		matches-0.1.8 \
+		maybe-uninit-2.0.0 \
+		memchr-2.3.3 \
+		mime-0.3.16 \
+		mime_guess-2.0.3 \
+		miniz_oxide-0.4.3 \
+		mio-0.6.22 \
+		miow-0.2.1 \
+		multimap-0.8.2 \
+		native-tls-0.2.4 \
+		net2-0.2.35 \
+		nodrop-0.1.14 \
+		nom-5.1.2 \
+		num-format-0.4.0 \
+		num-integer-0.1.43 \
+		num-traits-0.2.12 \
+		num_cpus-1.13.0 \
+		num_enum-0.5.1 \
+		num_enum_derive-0.5.1 \
+		object-0.21.1 \
+		once_cell-1.4.1 \
+		openssl-0.10.30 \
+		openssl-probe-0.1.2 \
+		openssl-sys-0.9.58 \
+		parking_lot-0.11.0 \
+		parking_lot_core-0.8.0 \
+		paste-0.1.18 \
+		paste-impl-0.1.18 \
+		percent-encoding-2.1.0 \
+		petgraph-0.5.1 \
+		pin-project-0.4.27 \
+		pin-project-internal-0.4.27 \
+		pin-project-lite-0.1.11 \
+		pin-utils-0.1.0 \
+		pkg-config-0.3.19 \
+		podio-0.1.7 \
+		ppv-lite86-0.2.9 \
+		proc-macro-crate-0.1.5 \
+		proc-macro-hack-0.5.18 \
+		proc-macro-nested-0.1.6 \
+		proc-macro2-1.0.24 \
+		prost-0.6.1 \
+		prost-build-0.6.1 \
+		prost-derive-0.6.1 \
+		prost-types-0.6.1 \
+		pyo3-0.11.1 \
+		pyo3-derive-backend-0.11.1 \
+		pyo3cls-0.11.1 \
+		quote-1.0.7 \
+		rand-0.7.3 \
+		rand_chacha-0.2.2 \
+		rand_core-0.5.1 \
+		rand_hc-0.2.0 \
+		redox_syscall-0.1.57 \
+		redox_users-0.3.5 \
+		regex-1.4.1 \
+		regex-syntax-0.6.20 \
+		remove_dir_all-0.5.3 \
+		rental-0.5.5 \
+		rental-impl-0.5.5 \
+		rusqlite-0.23.1 \
+		rust-argon2-0.8.2 \
+		rustc-demangle-0.1.18 \
+		ryu-1.0.5 \
+		schannel-0.1.19 \
+		scopeguard-1.1.0 \
+		security-framework-0.4.4 \
+		security-framework-sys-0.4.3 \
+		serde-1.0.117 \
+		serde-aux-0.6.1 \
+		serde_derive-1.0.117 \
+		serde_json-1.0.59 \
+		serde_repr-0.1.6 \
+		serde_tuple-0.5.0 \
+		serde_tuple_macros-0.5.0 \
+		serde_urlencoded-0.6.1 \
+		sha1-0.6.0 \
+		slab-0.4.2 \
+		slog-2.5.2 \
+		slog-async-2.5.0 \
+		slog-envlogger-2.2.0 \
+		slog-scope-4.3.0 \
+		slog-stdlog-4.1.0 \
+		slog-term-2.6.0 \
+		smallvec-1.4.2 \
+		socket2-0.3.15 \
+		stable_deref_trait-1.2.0 \
+		static_assertions-1.1.0 \
+		subtle-2.3.0 \
+		syn-1.0.46 \
+		synstructure-0.12.4 \
+		take_mut-0.2.2 \
+		tempfile-3.1.0 \
+		term-0.6.1 \
+		thiserror-1.0.21 \
+		thiserror-impl-1.0.21 \
+		thread_local-1.0.1 \
+		time-0.1.44 \
+		tinystr-0.3.4 \
+		tinyvec-0.3.4 \
+		tokio-0.2.22 \
+		tokio-socks-0.2.2 \
+		tokio-tls-0.3.1 \
+		tokio-util-0.3.1 \
+		toml-0.5.7 \
+		tower-service-0.3.0 \
+		tracing-0.1.21 \
+		tracing-core-0.1.17 \
+		try-lock-0.2.3 \
+		type-map-0.3.0 \
+		typenum-1.12.0 \
+		unic-langid-0.8.0 \
+		unic-langid-impl-0.8.0 \
+		unic-langid-macros-0.8.0 \
+		unic-langid-macros-impl-0.8.0 \
+		unicase-2.6.0 \
+		unicode-bidi-0.3.4 \
+		unicode-normalization-0.1.13 \
+		unicode-segmentation-1.6.0 \
+		unicode-xid-0.2.1 \
+		unindent-0.1.7 \
+		url-2.1.1 \
+		utime-0.3.1 \
+		vcpkg-0.2.10 \
+		version_check-0.9.2 \
+		want-0.3.0 \
+		wasi-0.9.0+wasi-snapshot-preview1 \
+		wasi-0.10.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.68 \
+		wasm-bindgen-backend-0.2.68 \
+		wasm-bindgen-futures-0.4.18 \
+		wasm-bindgen-macro-0.2.68 \
+		wasm-bindgen-macro-support-0.2.68 \
+		wasm-bindgen-shared-0.2.68 \
+		web-sys-0.3.45 \
+		which-3.1.1 \
+		winapi-0.2.8 \
+		winapi-0.3.9 \
+		winapi-build-0.1.1 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		winreg-0.6.2 \
+		ws2_32-sys-0.2.1 \
+		zip-0.5.6
+CARGO_USE_GITHUB=	yes
+
+CARGO_CARGOLOCK=	${WRKSRC}/rspy/Cargo.lock
+CARGO_CARGOTOML=	${WRKSRC}/rspy/Cargo.toml
+
+CARGO_BUILD=	no
+
+MAKE_ARGS=	DEVEL="rspy pylib ts qt" PYTHON_FILE="${PYTHON_CMD}" SHELL="${LOCALBASE}/bin/bash"
+# devel/py-maturin  acts as a wrapper for "cargo" and "rustc".  Ensure that it
+# uses the arguments/flags for Rust of the Ports framework.
+MAKE_ARGS+=	BUILDFLAGS="--cargo-extra-args='${CARGO_BUILD_ARGS} --verbose'"
+MAKE_ENV=	${CARGO_ENV} npm_config_offline=true
+
+ALL_TARGET=		build
+
 OPTIONS_DEFINE=		NLS
 OPTIONS_DEFAULT=	MPV
 OPTIONS_GROUP=		PLAYER
@@ -44,23 +344,93 @@ MPV_DESC=	mpv media player support
 MPLAYER_RUN_DEPENDS=	mplayer:multimedia/mplayer
 MPV_RUN_DEPENDS=	mpv:multimedia/mpv
 
-NLS_USES=	gettext-runtime gettext-tools
+NLS_USES=	gettext
 
+# 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=	84dcaa86
+
+# Place the translation files to the appropriate directories
+post-extract:
+	@${RLN} ${WRKSRC_i18ncore} ${WRKSRC}/rslib/ftl/repo
+	@${RLN} ${WRKSRC_i18nfluent} ${WRKSRC}/qt/ftl/repo
+	@${RLN} ${WRKSRC_i18ndesktop} ${WRKSRC}/qt/po/repo
+
 post-patch:
-	@${REINPLACE_CMD} -i '' \
-		's|%%PREFIX%%|${PREFIX}|' \
-		${WRKSRC}/anki/lang.py
-	@${FIND} ${WRKSRC} -name '*.orig' -delete
+	# Add trailing directory names to cargo repositories
+	@${REINPLACE_CMD} -Ee '/^fluent =/ s|(${WRKSRC_fluent})|\1/fluent|; \
+		/^intl-memoizer =/ s|(${WRKSRC_fluent})|\1/intl-memoizer|' ${WRKSRC}/rslib/Cargo.toml
+	@${REINPLACE_CMD} -e 's|%%DATADIR%%|${DATADIR}|' ${WRKSRC}/qt/runanki
+	@${REINPLACE_CMD} -e 's|%%MAKE_CMD%%|${MAKE_CMD}|' ${WRKSRC}/qt/Makefile
+	@${REINPLACE_CMD} -e 's|%%UNZIP_NATIVE_CMD%%|${UNZIP_NATIVE_CMD}|' ${WRKSRC}/rspy/Makefile
 
-post-patch-NLS-off:
-	@${REINPLACE_CMD} -i '' '/locale/s/^/#/' \
-		${WRKSRC}/Makefile
+post-patch-NLS-on:
+	@${REINPLACE_CMD} -e 's|### NLS ###||' ${WRKSRC}/qt/Makefile
 
-do-build:
-	@${PYTHON_CMD} -m compileall ${WRKSRC}
-	@${PYTHON_CMD} -O -m compileall ${WRKSRC}
+# Although PYTHON_FILE is set to ${PYTHON_CMD} via MAKE_ARGS to make the
+# compilation of the pyo3 crate possible there are also hardcoded "python"
+# occurences in too many places.
+pre-configure:
+	${MKDIR} ${WRKDIR}/.bin && ${LN} -s ${PYTHON_CMD} ${WRKDIR}/.bin/python
 
-post-install:
-	${INSTALL_SCRIPT} ${WRKSRC}/tools/runanki.system ${STAGEDIR}${PREFIX}/bin/anki
+# Overview of the build process
+#
+# 1. rslib (Rust library, implictly built by step 2)
+#    `-> produces ${WRKSRC}/proto/fluent.proto
+# 2. rspy (Rust/Python bridge) which is built by devel/py-maturin
+#    `-> produces ${WRKSRC}/pylib/ankirspy.cpython-${PYTHON_SUFFIX}m.so
+# 3. pylib (Python-only library)
+# 4. ts (builds ${WRKSRC}/ts/node_modules/.bin/{tsc,sass})
+# 5. qt (Python library with Qt5 bindings)
+pre-build:
+	# Set the buildhash that is used at various places during build.
+	${ECHO_CMD} ${_MY_BUILDHASH} > ${WRKSRC}/meta/buildhash
+
+post-build:
+	# Compile Anki's Python libary (pylib) and Qt5 library (aqt) to prepare
+	# them for installation
+	${PYTHON_CMD} -m compileall ${WRKSRC}/pylib/anki
+	${PYTHON_CMD} -O -m compileall ${WRKSRC}/pylib/anki
+	${PYTHON_CMD} -m compileall ${WRKSRC}/qt/aqt
+	${PYTHON_CMD} -O -m compileall ${WRKSRC}/qt/aqt
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}/anki \
+			${STAGEDIR}${DATADIR}/aqt \
+			${STAGEDIR}${DATADIR}/aqt_data \
+			${STAGEDIR}${PREFIX}/share/pixmaps \
+			${STAGEDIR}${PREFIX}/share/applications
+	cd ${WRKSRC}/pylib \
+		&& ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \
+		&& ${INSTALL_LIB} *.so ${STAGEDIR}${DATADIR}
+	cd ${WRKSRC}/qt \
+		&& ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" \
+		&& ${COPYTREE_SHARE} aqt_data ${STAGEDIR}${DATADIR} "! -name .gitignore" \
+		&& ${INSTALL_DATA} anki.xpm anki.png ${STAGEDIR}${PREFIX}/share/pixmaps \
+		&& ${INSTALL_DATA} anki.desktop ${STAGEDIR}${PREFIX}/share/applications \
+		&& ${INSTALL_MAN} anki.1 ${STAGEDIR}${MANPREFIX}/man/man1 \
+		&& ${INSTALL_SCRIPT} runanki ${STAGEDIR}${PREFIX}/bin/anki
+
+# Helper target to make the generation of the npm cache easier
+#
+# The command "npx pbjs" tries to install additional dependencies for the CLI
+# component of the "protobufjs" package and will fail during build because the
+# environment variable "npm_config_offline" is set to "true" via ${MAKE_ENV}.
+#
+# Thus "npx pbjs" is issued after "npm install" to get the remaining
+# dependencies to populate the cache with them.
+make-npm-cache:
+	# Run "make extract" before executing this target
+	@cd ${WRKDIR} && ${RM} -r .npm
+	@cd ${WRKSRC}/ts \
+		&& ${SETENV} HOME=${WRKDIR} npm install \
+		&& ${TOUCH} in.proto \
+		&& ${SETENV} HOME=${WRKDIR} npx --cache ${WRKDIR}/.npm pbjs -q -t static-module in.proto -o out.proto
+	@cd ${WRKDIR}/.npm \
+		&& ${RM} -r _locks anonymous-cli-metrics.json
+	@cd ${WRKDIR} \
+		&& ${TAR} -czf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \
+		&& ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}"
 
 .include <bsd.port.mk>

Modified: head/games/anki/distinfo
==============================================================================
--- head/games/anki/distinfo	Tue Nov 10 12:57:30 2020	(r554833)
+++ head/games/anki/distinfo	Tue Nov 10 13:01:04 2020	(r554834)
@@ -1,3 +1,521 @@
-TIMESTAMP = 1581366080
-SHA256 (python/anki-2.1.16-source.tgz) = f300dd33c795fbfbf3a883457aea50ee5f5f602899dc7122fd7e526a7328d9bd
-SIZE (python/anki-2.1.16-source.tgz) = 4211686
+TIMESTAMP = 1603538538
+SHA256 (python/anki-npm-cache-2.1.35.tar.gz) = 2168a9374715882affbaaa78d2775bc365f23cab6ecf3e74154936e128d01246
+SIZE (python/anki-npm-cache-2.1.35.tar.gz) = 51533006
+SHA256 (python/rust/crates/addr2line-0.13.0.tar.gz) = 1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072
+SIZE (python/rust/crates/addr2line-0.13.0.tar.gz) = 29996
+SHA256 (python/rust/crates/adler-0.2.3.tar.gz) = ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e
+SIZE (python/rust/crates/adler-0.2.3.tar.gz) = 12168
+SHA256 (python/rust/crates/aho-corasick-0.7.14.tar.gz) = b476ce7103678b0c6d3d395dbbae31d48ff910bd28be979ba5d48c6351131d0d
+SIZE (python/rust/crates/aho-corasick-0.7.14.tar.gz) = 113042
+SHA256 (python/rust/crates/anyhow-1.0.33.tar.gz) = a1fd36ffbb1fb7c834eac128ea8d0e310c5aeb635548f9d58861e1308d46e71c
+SIZE (python/rust/crates/anyhow-1.0.33.tar.gz) = 28540
+SHA256 (python/rust/crates/arc-swap-0.4.7.tar.gz) = 4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034
+SIZE (python/rust/crates/arc-swap-0.4.7.tar.gz) = 48625
+SHA256 (python/rust/crates/arrayref-0.3.6.tar.gz) = a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544
+SIZE (python/rust/crates/arrayref-0.3.6.tar.gz) = 10035
+SHA256 (python/rust/crates/arrayvec-0.4.12.tar.gz) = cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9
+SIZE (python/rust/crates/arrayvec-0.4.12.tar.gz) = 26551
+SHA256 (python/rust/crates/arrayvec-0.5.1.tar.gz) = cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8
+SIZE (python/rust/crates/arrayvec-0.5.1.tar.gz) = 26816
+SHA256 (python/rust/crates/askama-0.10.3.tar.gz) = 70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12
+SIZE (python/rust/crates/askama-0.10.3.tar.gz) = 7988
+SHA256 (python/rust/crates/askama_derive-0.10.3.tar.gz) = e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881
+SIZE (python/rust/crates/askama_derive-0.10.3.tar.gz) = 6834
+SHA256 (python/rust/crates/askama_escape-0.10.1.tar.gz) = 90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb
+SIZE (python/rust/crates/askama_escape-0.10.1.tar.gz) = 8535
+SHA256 (python/rust/crates/askama_shared-0.10.4.tar.gz) = 62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5
+SIZE (python/rust/crates/askama_shared-0.10.4.tar.gz) = 29058
+SHA256 (python/rust/crates/async-compression-0.3.5.tar.gz) = 9021768bcce77296b64648cc7a7460e3df99979b97ed5c925c38d1cc83778d98
+SIZE (python/rust/crates/async-compression-0.3.5.tar.gz) = 39371
+SHA256 (python/rust/crates/atty-0.2.14.tar.gz) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (python/rust/crates/atty-0.2.14.tar.gz) = 5470
+SHA256 (python/rust/crates/autocfg-1.0.1.tar.gz) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
+SIZE (python/rust/crates/autocfg-1.0.1.tar.gz) = 12908
+SHA256 (python/rust/crates/backtrace-0.3.53.tar.gz) = 707b586e0e2f247cbde68cdd2c3ce69ea7b7be43e1c5b426e37c9319c4b9838e
+SIZE (python/rust/crates/backtrace-0.3.53.tar.gz) = 71892
+SHA256 (python/rust/crates/base64-0.12.3.tar.gz) = 3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff
+SIZE (python/rust/crates/base64-0.12.3.tar.gz) = 57545
+SHA256 (python/rust/crates/bitflags-1.2.1.tar.gz) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693
+SIZE (python/rust/crates/bitflags-1.2.1.tar.gz) = 16745
+SHA256 (python/rust/crates/blake2b_simd-0.5.10.tar.gz) = d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a
+SIZE (python/rust/crates/blake2b_simd-0.5.10.tar.gz) = 34093
+SHA256 (python/rust/crates/blake3-0.3.7.tar.gz) = e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f
+SIZE (python/rust/crates/blake3-0.3.7.tar.gz) = 155136
+SHA256 (python/rust/crates/bumpalo-3.4.0.tar.gz) = 2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820
+SIZE (python/rust/crates/bumpalo-3.4.0.tar.gz) = 129102
+SHA256 (python/rust/crates/byteorder-1.3.4.tar.gz) = 08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de
+SIZE (python/rust/crates/byteorder-1.3.4.tar.gz) = 21943
+SHA256 (python/rust/crates/bytes-0.4.12.tar.gz) = 206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c
+SIZE (python/rust/crates/bytes-0.4.12.tar.gz) = 46361
+SHA256 (python/rust/crates/bytes-0.5.6.tar.gz) = 0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38
+SIZE (python/rust/crates/bytes-0.5.6.tar.gz) = 46291
+SHA256 (python/rust/crates/cc-1.0.61.tar.gz) = ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d
+SIZE (python/rust/crates/cc-1.0.61.tar.gz) = 53454
+SHA256 (python/rust/crates/cfg-if-0.1.10.tar.gz) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822
+SIZE (python/rust/crates/cfg-if-0.1.10.tar.gz) = 7933
+SHA256 (python/rust/crates/cfg-if-1.0.0.tar.gz) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (python/rust/crates/cfg-if-1.0.0.tar.gz) = 7934
+SHA256 (python/rust/crates/chrono-0.4.19.tar.gz) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73
+SIZE (python/rust/crates/chrono-0.4.19.tar.gz) = 155663
+SHA256 (python/rust/crates/cloudabi-0.1.0.tar.gz) = 4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467
+SIZE (python/rust/crates/cloudabi-0.1.0.tar.gz) = 22687
+SHA256 (python/rust/crates/constant_time_eq-0.1.5.tar.gz) = 245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc
+SIZE (python/rust/crates/constant_time_eq-0.1.5.tar.gz) = 4936
+SHA256 (python/rust/crates/core-foundation-0.7.0.tar.gz) = 57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171
+SIZE (python/rust/crates/core-foundation-0.7.0.tar.gz) = 25384
+SHA256 (python/rust/crates/core-foundation-sys-0.7.0.tar.gz) = b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac
+SIZE (python/rust/crates/core-foundation-sys-0.7.0.tar.gz) = 17033
+SHA256 (python/rust/crates/crc32fast-1.2.1.tar.gz) = 81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a
+SIZE (python/rust/crates/crc32fast-1.2.1.tar.gz) = 38172
+SHA256 (python/rust/crates/crossbeam-channel-0.4.4.tar.gz) = b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87
+SIZE (python/rust/crates/crossbeam-channel-0.4.4.tar.gz) = 86868
+SHA256 (python/rust/crates/crossbeam-utils-0.7.2.tar.gz) = c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8
+SIZE (python/rust/crates/crossbeam-utils-0.7.2.tar.gz) = 34338
+SHA256 (python/rust/crates/crypto-mac-0.8.0.tar.gz) = b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab
+SIZE (python/rust/crates/crypto-mac-0.8.0.tar.gz) = 9115
+SHA256 (python/rust/crates/ctor-0.1.16.tar.gz) = 7fbaabec2c953050352311293be5c6aba8e141ba19d6811862b232d6fd020484
+SIZE (python/rust/crates/ctor-0.1.16.tar.gz) = 4770
+SHA256 (python/rust/crates/derivative-2.1.1.tar.gz) = cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f
+SIZE (python/rust/crates/derivative-2.1.1.tar.gz) = 45571
+SHA256 (python/rust/crates/digest-0.9.0.tar.gz) = d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066
+SIZE (python/rust/crates/digest-0.9.0.tar.gz) = 13247
+SHA256 (python/rust/crates/dirs-2.0.2.tar.gz) = 13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3
+SIZE (python/rust/crates/dirs-2.0.2.tar.gz) = 11779
+SHA256 (python/rust/crates/dirs-sys-0.3.5.tar.gz) = 8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a
+SIZE (python/rust/crates/dirs-sys-0.3.5.tar.gz) = 10643
+SHA256 (python/rust/crates/dtoa-0.4.6.tar.gz) = 134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b
+SIZE (python/rust/crates/dtoa-0.4.6.tar.gz) = 15979
+SHA256 (python/rust/crates/either-1.6.1.tar.gz) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457
+SIZE (python/rust/crates/either-1.6.1.tar.gz) = 13641
+SHA256 (python/rust/crates/encoding_rs-0.8.24.tar.gz) = a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2
+SIZE (python/rust/crates/encoding_rs-0.8.24.tar.gz) = 1366911
+SHA256 (python/rust/crates/failure-0.1.8.tar.gz) = d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86
+SIZE (python/rust/crates/failure-0.1.8.tar.gz) = 37582
+SHA256 (python/rust/crates/failure_derive-0.1.8.tar.gz) = aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4
+SIZE (python/rust/crates/failure_derive-0.1.8.tar.gz) = 4950
+SHA256 (python/rust/crates/fallible-iterator-0.2.0.tar.gz) = 4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7
+SIZE (python/rust/crates/fallible-iterator-0.2.0.tar.gz) = 18509
+SHA256 (python/rust/crates/fallible-streaming-iterator-0.1.9.tar.gz) = 7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a
+SIZE (python/rust/crates/fallible-streaming-iterator-0.1.9.tar.gz) = 9249
+SHA256 (python/rust/crates/fixedbitset-0.2.0.tar.gz) = 37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d
+SIZE (python/rust/crates/fixedbitset-0.2.0.tar.gz) = 13597
+SHA256 (python/rust/crates/flate2-1.0.18.tar.gz) = da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee
+SIZE (python/rust/crates/flate2-1.0.18.tar.gz) = 74164
+SHA256 (python/rust/crates/fluent-langneg-0.12.1.tar.gz) = fe5815efd5542e40841cd34ef9003822352b04c67a70c595c6758597c72e1f56
+SIZE (python/rust/crates/fluent-langneg-0.12.1.tar.gz) = 19329
+SHA256 (python/rust/crates/fluent-syntax-0.9.3.tar.gz) = ac0f7e83d14cccbf26e165d8881dcac5891af0d85a88543c09dd72ebd31d91ba
+SIZE (python/rust/crates/fluent-syntax-0.9.3.tar.gz) = 73722
+SHA256 (python/rust/crates/fnv-1.0.7.tar.gz) = 3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1
+SIZE (python/rust/crates/fnv-1.0.7.tar.gz) = 11266
+SHA256 (python/rust/crates/foreign-types-0.3.2.tar.gz) = f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1
+SIZE (python/rust/crates/foreign-types-0.3.2.tar.gz) = 7504
+SHA256 (python/rust/crates/foreign-types-shared-0.1.1.tar.gz) = 00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b
+SIZE (python/rust/crates/foreign-types-shared-0.1.1.tar.gz) = 5672
+SHA256 (python/rust/crates/fuchsia-zircon-0.3.3.tar.gz) = 2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82
+SIZE (python/rust/crates/fuchsia-zircon-0.3.3.tar.gz) = 22565
+SHA256 (python/rust/crates/fuchsia-zircon-sys-0.3.3.tar.gz) = 3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7
+SIZE (python/rust/crates/fuchsia-zircon-sys-0.3.3.tar.gz) = 7191
+SHA256 (python/rust/crates/futures-0.3.6.tar.gz) = 5d8e3078b7b2a8a671cb7a3d17b4760e4181ea243227776ba83fd043b4ca034e
+SIZE (python/rust/crates/futures-0.3.6.tar.gz) = 39860
+SHA256 (python/rust/crates/futures-channel-0.3.6.tar.gz) = a7a4d35f7401e948629c9c3d6638fb9bf94e0b2121e96c3b428cc4e631f3eb74
+SIZE (python/rust/crates/futures-channel-0.3.6.tar.gz) = 29465
+SHA256 (python/rust/crates/futures-core-0.3.6.tar.gz) = d674eaa0056896d5ada519900dbf97ead2e46a7b6621e8160d79e2f2e1e2784b
+SIZE (python/rust/crates/futures-core-0.3.6.tar.gz) = 13838
+SHA256 (python/rust/crates/futures-executor-0.3.6.tar.gz) = cc709ca1da6f66143b8c9bec8e6260181869893714e9b5a490b169b0414144ab
+SIZE (python/rust/crates/futures-executor-0.3.6.tar.gz) = 16639
+SHA256 (python/rust/crates/futures-io-0.3.6.tar.gz) = 5fc94b64bb39543b4e432f1790b6bf18e3ee3b74653c5449f63310e9a74b123c
+SIZE (python/rust/crates/futures-io-0.3.6.tar.gz) = 9129
+SHA256 (python/rust/crates/futures-macro-0.3.6.tar.gz) = f57ed14da4603b2554682e9f2ff3c65d7567b53188db96cb71538217fc64581b
+SIZE (python/rust/crates/futures-macro-0.3.6.tar.gz) = 9778
+SHA256 (python/rust/crates/futures-sink-0.3.6.tar.gz) = 0d8764258ed64ebc5d9ed185cf86a95db5cac810269c5d20ececb32e0088abbd
+SIZE (python/rust/crates/futures-sink-0.3.6.tar.gz) = 7730
+SHA256 (python/rust/crates/futures-task-0.3.6.tar.gz) = 4dd26820a9f3637f1302da8bceba3ff33adbe53464b54ca24d4e2d4f1db30f94
+SIZE (python/rust/crates/futures-task-0.3.6.tar.gz) = 11130
+SHA256 (python/rust/crates/futures-util-0.3.6.tar.gz) = 8a894a0acddba51a2d49a6f4263b1e64b8c579ece8af50fa86503d52cd1eea34
+SIZE (python/rust/crates/futures-util-0.3.6.tar.gz) = 133258
+SHA256 (python/rust/crates/fxhash-0.2.1.tar.gz) = c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c
+SIZE (python/rust/crates/fxhash-0.2.1.tar.gz) = 4102
+SHA256 (python/rust/crates/generic-array-0.14.4.tar.gz) = 501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817
+SIZE (python/rust/crates/generic-array-0.14.4.tar.gz) = 28916
+SHA256 (python/rust/crates/getrandom-0.1.15.tar.gz) = fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6
+SIZE (python/rust/crates/getrandom-0.1.15.tar.gz) = 24786
+SHA256 (python/rust/crates/ghost-0.1.2.tar.gz) = 1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479
+SIZE (python/rust/crates/ghost-0.1.2.tar.gz) = 12777
+SHA256 (python/rust/crates/gimli-0.22.0.tar.gz) = aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724
+SIZE (python/rust/crates/gimli-0.22.0.tar.gz) = 704135
+SHA256 (python/rust/crates/h2-0.2.6.tar.gz) = 993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53
+SIZE (python/rust/crates/h2-0.2.6.tar.gz) = 157564
+SHA256 (python/rust/crates/hashbrown-0.9.1.tar.gz) = d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04
+SIZE (python/rust/crates/hashbrown-0.9.1.tar.gz) = 77734
+SHA256 (python/rust/crates/heck-0.3.1.tar.gz) = 20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205
+SIZE (python/rust/crates/heck-0.3.1.tar.gz) = 54666
+SHA256 (python/rust/crates/hermit-abi-0.1.17.tar.gz) = 5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8
+SIZE (python/rust/crates/hermit-abi-0.1.17.tar.gz) = 10065
+SHA256 (python/rust/crates/hex-0.4.2.tar.gz) = 644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35
+SIZE (python/rust/crates/hex-0.4.2.tar.gz) = 13385
+SHA256 (python/rust/crates/htmlescape-0.3.1.tar.gz) = e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163
+SIZE (python/rust/crates/htmlescape-0.3.1.tar.gz) = 53226
+SHA256 (python/rust/crates/http-0.2.1.tar.gz) = 28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9
+SIZE (python/rust/crates/http-0.2.1.tar.gz) = 102231
+SHA256 (python/rust/crates/http-body-0.3.1.tar.gz) = 13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b
+SIZE (python/rust/crates/http-body-0.3.1.tar.gz) = 5394
+SHA256 (python/rust/crates/httparse-1.3.4.tar.gz) = cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9
+SIZE (python/rust/crates/httparse-1.3.4.tar.gz) = 23739
+SHA256 (python/rust/crates/httpdate-0.3.2.tar.gz) = 494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47
+SIZE (python/rust/crates/httpdate-0.3.2.tar.gz) = 10768
+SHA256 (python/rust/crates/humansize-1.1.0.tar.gz) = b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e
+SIZE (python/rust/crates/humansize-1.1.0.tar.gz) = 4459
+SHA256 (python/rust/crates/hyper-0.13.8.tar.gz) = 2f3afcfae8af5ad0576a31e768415edb627824129e8e5a29b8bfccb2f234e835
+SIZE (python/rust/crates/hyper-0.13.8.tar.gz) = 139668
+SHA256 (python/rust/crates/hyper-tls-0.4.3.tar.gz) = d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed
+SIZE (python/rust/crates/hyper-tls-0.4.3.tar.gz) = 14195
+SHA256 (python/rust/crates/idna-0.2.0.tar.gz) = 02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9
+SIZE (python/rust/crates/idna-0.2.0.tar.gz) = 257203
+SHA256 (python/rust/crates/indexmap-1.6.0.tar.gz) = 55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2
+SIZE (python/rust/crates/indexmap-1.6.0.tar.gz) = 47565
+SHA256 (python/rust/crates/indoc-0.3.6.tar.gz) = 47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8
+SIZE (python/rust/crates/indoc-0.3.6.tar.gz) = 9663
+SHA256 (python/rust/crates/indoc-impl-0.3.6.tar.gz) = ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0
+SIZE (python/rust/crates/indoc-impl-0.3.6.tar.gz) = 7933
+SHA256 (python/rust/crates/instant-0.1.7.tar.gz) = 63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66
+SIZE (python/rust/crates/instant-0.1.7.tar.gz) = 5097
+SHA256 (python/rust/crates/intl_pluralrules-6.0.0.tar.gz) = d82c14d8eece42c03353e0ce86a4d3f97b1f1cef401e4d962dca6c6214a85002
+SIZE (python/rust/crates/intl_pluralrules-6.0.0.tar.gz) = 15999
+SHA256 (python/rust/crates/inventory-0.1.9.tar.gz) = fedd49de24d8c263613701406611410687148ae8c37cd6452650b250f753a0dd
+SIZE (python/rust/crates/inventory-0.1.9.tar.gz) = 11578
+SHA256 (python/rust/crates/inventory-impl-0.1.9.tar.gz) = ddead8880bc50f57fcd3b5869a7f6ff92570bb4e8f6870c22e2483272f2256da
+SIZE (python/rust/crates/inventory-impl-0.1.9.tar.gz) = 1859
+SHA256 (python/rust/crates/iovec-0.1.4.tar.gz) = b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e
+SIZE (python/rust/crates/iovec-0.1.4.tar.gz) = 8720
+SHA256 (python/rust/crates/itertools-0.8.2.tar.gz) = f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484
+SIZE (python/rust/crates/itertools-0.8.2.tar.gz) = 89203
+SHA256 (python/rust/crates/itertools-0.9.0.tar.gz) = 284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b
+SIZE (python/rust/crates/itertools-0.9.0.tar.gz) = 96429
+SHA256 (python/rust/crates/itoa-0.4.6.tar.gz) = dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6
+SIZE (python/rust/crates/itoa-0.4.6.tar.gz) = 12167
+SHA256 (python/rust/crates/js-sys-0.3.45.tar.gz) = ca059e81d9486668f12d455a4ea6daa600bd408134cd17e3d3fb5a32d1f016f8
+SIZE (python/rust/crates/js-sys-0.3.45.tar.gz) = 67143
+SHA256 (python/rust/crates/kernel32-sys-0.2.2.tar.gz) = 7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d
+SIZE (python/rust/crates/kernel32-sys-0.2.2.tar.gz) = 24537
+SHA256 (python/rust/crates/lazy_static-1.4.0.tar.gz) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (python/rust/crates/lazy_static-1.4.0.tar.gz) = 10443
+SHA256 (python/rust/crates/lexical-core-0.7.4.tar.gz) = db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616
+SIZE (python/rust/crates/lexical-core-0.7.4.tar.gz) = 497535
+SHA256 (python/rust/crates/libc-0.2.79.tar.gz) = 2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743
+SIZE (python/rust/crates/libc-0.2.79.tar.gz) = 511752
+SHA256 (python/rust/crates/libsqlite3-sys-0.18.0.tar.gz) = 1e704a02bcaecd4a08b93a23f6be59d0bd79cd161e0963e9499165a0a35df7bd
+SIZE (python/rust/crates/libsqlite3-sys-0.18.0.tar.gz) = 2281735
+SHA256 (python/rust/crates/linked-hash-map-0.5.3.tar.gz) = 8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a
+SIZE (python/rust/crates/linked-hash-map-0.5.3.tar.gz) = 16130
+SHA256 (python/rust/crates/lock_api-0.4.1.tar.gz) = 28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c
+SIZE (python/rust/crates/lock_api-0.4.1.tar.gz) = 20339
+SHA256 (python/rust/crates/log-0.4.11.tar.gz) = 4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b
+SIZE (python/rust/crates/log-0.4.11.tar.gz) = 36276
+SHA256 (python/rust/crates/lru-cache-0.1.2.tar.gz) = 31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c
+SIZE (python/rust/crates/lru-cache-0.1.2.tar.gz) = 9307
+SHA256 (python/rust/crates/matches-0.1.8.tar.gz) = 7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08
+SIZE (python/rust/crates/matches-0.1.8.tar.gz) = 2216
+SHA256 (python/rust/crates/maybe-uninit-2.0.0.tar.gz) = 60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00
+SIZE (python/rust/crates/maybe-uninit-2.0.0.tar.gz) = 11809
+SHA256 (python/rust/crates/memchr-2.3.3.tar.gz) = 3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400
+SIZE (python/rust/crates/memchr-2.3.3.tar.gz) = 22566
+SHA256 (python/rust/crates/mime-0.3.16.tar.gz) = 2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d
+SIZE (python/rust/crates/mime-0.3.16.tar.gz) = 15206
+SHA256 (python/rust/crates/mime_guess-2.0.3.tar.gz) = 2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212
+SIZE (python/rust/crates/mime_guess-2.0.3.tar.gz) = 27437
+SHA256 (python/rust/crates/miniz_oxide-0.4.3.tar.gz) = 0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d
+SIZE (python/rust/crates/miniz_oxide-0.4.3.tar.gz) = 50058
+SHA256 (python/rust/crates/mio-0.6.22.tar.gz) = fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430
+SIZE (python/rust/crates/mio-0.6.22.tar.gz) = 102782
+SHA256 (python/rust/crates/miow-0.2.1.tar.gz) = 8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919
+SIZE (python/rust/crates/miow-0.2.1.tar.gz) = 21133
+SHA256 (python/rust/crates/multimap-0.8.2.tar.gz) = 1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333
+SIZE (python/rust/crates/multimap-0.8.2.tar.gz) = 13453
+SHA256 (python/rust/crates/native-tls-0.2.4.tar.gz) = 2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d
+SIZE (python/rust/crates/native-tls-0.2.4.tar.gz) = 32170
+SHA256 (python/rust/crates/net2-0.2.35.tar.gz) = 3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853
+SIZE (python/rust/crates/net2-0.2.35.tar.gz) = 20660
+SHA256 (python/rust/crates/nodrop-0.1.14.tar.gz) = 72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb
+SIZE (python/rust/crates/nodrop-0.1.14.tar.gz) = 7667
+SHA256 (python/rust/crates/nom-5.1.2.tar.gz) = ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af
+SIZE (python/rust/crates/nom-5.1.2.tar.gz) = 136174
+SHA256 (python/rust/crates/num-format-0.4.0.tar.gz) = bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465
+SIZE (python/rust/crates/num-format-0.4.0.tar.gz) = 59791
+SHA256 (python/rust/crates/num-integer-0.1.43.tar.gz) = 8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b
+SIZE (python/rust/crates/num-integer-0.1.43.tar.gz) = 21966
+SHA256 (python/rust/crates/num-traits-0.2.12.tar.gz) = ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611
+SIZE (python/rust/crates/num-traits-0.2.12.tar.gz) = 43807
+SHA256 (python/rust/crates/num_cpus-1.13.0.tar.gz) = 05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3
+SIZE (python/rust/crates/num_cpus-1.13.0.tar.gz) = 14704
+SHA256 (python/rust/crates/num_enum-0.5.1.tar.gz) = 226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066
+SIZE (python/rust/crates/num_enum-0.5.1.tar.gz) = 8210
+SHA256 (python/rust/crates/num_enum_derive-0.5.1.tar.gz) = 1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e
+SIZE (python/rust/crates/num_enum_derive-0.5.1.tar.gz) = 7579
+SHA256 (python/rust/crates/object-0.21.1.tar.gz) = 37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693
+SIZE (python/rust/crates/object-0.21.1.tar.gz) = 174624
+SHA256 (python/rust/crates/once_cell-1.4.1.tar.gz) = 260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad
+SIZE (python/rust/crates/once_cell-1.4.1.tar.gz) = 24366
+SHA256 (python/rust/crates/openssl-0.10.30.tar.gz) = 8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4
+SIZE (python/rust/crates/openssl-0.10.30.tar.gz) = 191808
+SHA256 (python/rust/crates/openssl-probe-0.1.2.tar.gz) = 77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de
+SIZE (python/rust/crates/openssl-probe-0.1.2.tar.gz) = 6427
+SHA256 (python/rust/crates/openssl-sys-0.9.58.tar.gz) = a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de
+SIZE (python/rust/crates/openssl-sys-0.9.58.tar.gz) = 47014
+SHA256 (python/rust/crates/parking_lot-0.11.0.tar.gz) = a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733
+SIZE (python/rust/crates/parking_lot-0.11.0.tar.gz) = 39558
+SHA256 (python/rust/crates/parking_lot_core-0.8.0.tar.gz) = c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b
+SIZE (python/rust/crates/parking_lot_core-0.8.0.tar.gz) = 33870
+SHA256 (python/rust/crates/paste-0.1.18.tar.gz) = 45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880
+SIZE (python/rust/crates/paste-0.1.18.tar.gz) = 12259
+SHA256 (python/rust/crates/paste-impl-0.1.18.tar.gz) = d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6
+SIZE (python/rust/crates/paste-impl-0.1.18.tar.gz) = 9451
+SHA256 (python/rust/crates/percent-encoding-2.1.0.tar.gz) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e
+SIZE (python/rust/crates/percent-encoding-2.1.0.tar.gz) = 9748
+SHA256 (python/rust/crates/petgraph-0.5.1.tar.gz) = 467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7
+SIZE (python/rust/crates/petgraph-0.5.1.tar.gz) = 147173
+SHA256 (python/rust/crates/pin-project-0.4.27.tar.gz) = 2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15
+SIZE (python/rust/crates/pin-project-0.4.27.tar.gz) = 50964
+SHA256 (python/rust/crates/pin-project-internal-0.4.27.tar.gz) = 65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895
+SIZE (python/rust/crates/pin-project-internal-0.4.27.tar.gz) = 29739
+SHA256 (python/rust/crates/pin-project-lite-0.1.11.tar.gz) = c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b
+SIZE (python/rust/crates/pin-project-lite-0.1.11.tar.gz) = 25308
+SHA256 (python/rust/crates/pin-utils-0.1.0.tar.gz) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (python/rust/crates/pin-utils-0.1.0.tar.gz) = 7580
+SHA256 (python/rust/crates/pkg-config-0.3.19.tar.gz) = 3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c
+SIZE (python/rust/crates/pkg-config-0.3.19.tar.gz) = 15451
+SHA256 (python/rust/crates/podio-0.1.7.tar.gz) = b18befed8bc2b61abc79a457295e7e838417326da1586050b919414073977f19
+SIZE (python/rust/crates/podio-0.1.7.tar.gz) = 10294
+SHA256 (python/rust/crates/ppv-lite86-0.2.9.tar.gz) = c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20
+SIZE (python/rust/crates/ppv-lite86-0.2.9.tar.gz) = 20933
+SHA256 (python/rust/crates/proc-macro-crate-0.1.5.tar.gz) = 1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785
+SIZE (python/rust/crates/proc-macro-crate-0.1.5.tar.gz) = 8096
+SHA256 (python/rust/crates/proc-macro-hack-0.5.18.tar.gz) = 99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598
+SIZE (python/rust/crates/proc-macro-hack-0.5.18.tar.gz) = 14619
+SHA256 (python/rust/crates/proc-macro-nested-0.1.6.tar.gz) = eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a
+SIZE (python/rust/crates/proc-macro-nested-0.1.6.tar.gz) = 6498
+SHA256 (python/rust/crates/proc-macro2-1.0.24.tar.gz) = 1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71
+SIZE (python/rust/crates/proc-macro2-1.0.24.tar.gz) = 37716
+SHA256 (python/rust/crates/prost-0.6.1.tar.gz) = ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212
+SIZE (python/rust/crates/prost-0.6.1.tar.gz) = 23393
+SHA256 (python/rust/crates/prost-build-0.6.1.tar.gz) = 02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26
+SIZE (python/rust/crates/prost-build-0.6.1.tar.gz) = 7935314
+SHA256 (python/rust/crates/prost-derive-0.6.1.tar.gz) = 537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72
+SIZE (python/rust/crates/prost-derive-0.6.1.tar.gz) = 15007
+SHA256 (python/rust/crates/prost-types-0.6.1.tar.gz) = 1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa
+SIZE (python/rust/crates/prost-types-0.6.1.tar.gz) = 24092
+SHA256 (python/rust/crates/pyo3-0.11.1.tar.gz) = 9ca8710ffa8211c9a62a8a3863c4267c710dc42a82a7fd29c97de465d7ea6b7d
+SIZE (python/rust/crates/pyo3-0.11.1.tar.gz) = 230111
+SHA256 (python/rust/crates/pyo3-derive-backend-0.11.1.tar.gz) = 58ad070bf6967b0d29ea74931ffcf9c6bbe8402a726e9afbeafadc0a287cc2b3
+SIZE (python/rust/crates/pyo3-derive-backend-0.11.1.tar.gz) = 25011
+SHA256 (python/rust/crates/pyo3cls-0.11.1.tar.gz) = c3fa17e1ea569d0bf3b7c00f2a9eea831ca05e55dd76f1794c541abba1c64baa
+SIZE (python/rust/crates/pyo3cls-0.11.1.tar.gz) = 1693
+SHA256 (python/rust/crates/quote-1.0.7.tar.gz) = aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37
+SIZE (python/rust/crates/quote-1.0.7.tar.gz) = 25170
+SHA256 (python/rust/crates/rand-0.7.3.tar.gz) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
+SIZE (python/rust/crates/rand-0.7.3.tar.gz) = 112246
+SHA256 (python/rust/crates/rand_chacha-0.2.2.tar.gz) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402
+SIZE (python/rust/crates/rand_chacha-0.2.2.tar.gz) = 13267
+SHA256 (python/rust/crates/rand_core-0.5.1.tar.gz) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19
+SIZE (python/rust/crates/rand_core-0.5.1.tar.gz) = 21116
+SHA256 (python/rust/crates/rand_hc-0.2.0.tar.gz) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c
+SIZE (python/rust/crates/rand_hc-0.2.0.tar.gz) = 11670
+SHA256 (python/rust/crates/redox_syscall-0.1.57.tar.gz) = 41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce
+SIZE (python/rust/crates/redox_syscall-0.1.57.tar.gz) = 17087
+SHA256 (python/rust/crates/redox_users-0.3.5.tar.gz) = de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d
+SIZE (python/rust/crates/redox_users-0.3.5.tar.gz) = 12644
+SHA256 (python/rust/crates/regex-1.4.1.tar.gz) = 8963b85b8ce3074fecffde43b4b0dded83ce2f367dc8d363afc56679f3ee820b
+SIZE (python/rust/crates/regex-1.4.1.tar.gz) = 236871
+SHA256 (python/rust/crates/regex-syntax-0.6.20.tar.gz) = 8cab7a364d15cde1e505267766a2d3c4e22a843e1a601f0fa7564c0f82ced11c
+SIZE (python/rust/crates/regex-syntax-0.6.20.tar.gz) = 293727
+SHA256 (python/rust/crates/remove_dir_all-0.5.3.tar.gz) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7
+SIZE (python/rust/crates/remove_dir_all-0.5.3.tar.gz) = 9184
+SHA256 (python/rust/crates/rental-0.5.5.tar.gz) = 8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f
+SIZE (python/rust/crates/rental-0.5.5.tar.gz) = 16796
+SHA256 (python/rust/crates/rental-impl-0.5.5.tar.gz) = 475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de
+SIZE (python/rust/crates/rental-impl-0.5.5.tar.gz) = 12093
+SHA256 (python/rust/crates/rusqlite-0.23.1.tar.gz) = 45d0fd62e1df63d254714e6cb40d0a0e82e7a1623e7a27f679d851af092ae58b
+SIZE (python/rust/crates/rusqlite-0.23.1.tar.gz) = 112106
+SHA256 (python/rust/crates/rust-argon2-0.8.2.tar.gz) = 9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19
+SIZE (python/rust/crates/rust-argon2-0.8.2.tar.gz) = 28291
+SHA256 (python/rust/crates/rustc-demangle-0.1.18.tar.gz) = 6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232
+SIZE (python/rust/crates/rustc-demangle-0.1.18.tar.gz) = 19913
+SHA256 (python/rust/crates/ryu-1.0.5.tar.gz) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e
+SIZE (python/rust/crates/ryu-1.0.5.tar.gz) = 49570
+SHA256 (python/rust/crates/schannel-0.1.19.tar.gz) = 8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75
+SIZE (python/rust/crates/schannel-0.1.19.tar.gz) = 42755
+SHA256 (python/rust/crates/scopeguard-1.1.0.tar.gz) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (python/rust/crates/scopeguard-1.1.0.tar.gz) = 11470
+SHA256 (python/rust/crates/security-framework-0.4.4.tar.gz) = 64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535
+SIZE (python/rust/crates/security-framework-0.4.4.tar.gz) = 54841
+SHA256 (python/rust/crates/security-framework-sys-0.4.3.tar.gz) = 17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405
+SIZE (python/rust/crates/security-framework-sys-0.4.3.tar.gz) = 10508
+SHA256 (python/rust/crates/serde-1.0.117.tar.gz) = b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a
+SIZE (python/rust/crates/serde-1.0.117.tar.gz) = 74505
+SHA256 (python/rust/crates/serde-aux-0.6.1.tar.gz) = ae50f53d4b01e854319c1f5b854cd59471f054ea7e554988850d3f36ca1dc852
+SIZE (python/rust/crates/serde-aux-0.6.1.tar.gz) = 5701
+SHA256 (python/rust/crates/serde_derive-1.0.117.tar.gz) = cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e
+SIZE (python/rust/crates/serde_derive-1.0.117.tar.gz) = 50712
+SHA256 (python/rust/crates/serde_json-1.0.59.tar.gz) = dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95
+SIZE (python/rust/crates/serde_json-1.0.59.tar.gz) = 114956
+SHA256 (python/rust/crates/serde_repr-0.1.6.tar.gz) = 2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76
+SIZE (python/rust/crates/serde_repr-0.1.6.tar.gz) = 10181
+SHA256 (python/rust/crates/serde_tuple-0.5.0.tar.gz) = f4f025b91216f15a2a32aa39669329a475733590a015835d1783549a56d09427
+SIZE (python/rust/crates/serde_tuple-0.5.0.tar.gz) = 3817
+SHA256 (python/rust/crates/serde_tuple_macros-0.5.0.tar.gz) = 4076151d1a2b688e25aaf236997933c66e18b870d0369f8b248b8ab2be630d7e
+SIZE (python/rust/crates/serde_tuple_macros-0.5.0.tar.gz) = 2205
+SHA256 (python/rust/crates/serde_urlencoded-0.6.1.tar.gz) = 9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97
+SIZE (python/rust/crates/serde_urlencoded-0.6.1.tar.gz) = 12540
+SHA256 (python/rust/crates/sha1-0.6.0.tar.gz) = 2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d
+SIZE (python/rust/crates/sha1-0.6.0.tar.gz) = 9244
+SHA256 (python/rust/crates/slab-0.4.2.tar.gz) = c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8
+SIZE (python/rust/crates/slab-0.4.2.tar.gz) = 10136
+SHA256 (python/rust/crates/slog-2.5.2.tar.gz) = 1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99
+SIZE (python/rust/crates/slog-2.5.2.tar.gz) = 43204
+SHA256 (python/rust/crates/slog-async-2.5.0.tar.gz) = 51b3336ce47ce2f96673499fc07eb85e3472727b9a7a2959964b002c2ce8fbbb
+SIZE (python/rust/crates/slog-async-2.5.0.tar.gz) = 18033
+SHA256 (python/rust/crates/slog-envlogger-2.2.0.tar.gz) = 906a1a0bc43fed692df4b82a5e2fbfc3733db8dad8bb514ab27a4f23ad04f5c0
+SIZE (python/rust/crates/slog-envlogger-2.2.0.tar.gz) = 13240
+SHA256 (python/rust/crates/slog-scope-4.3.0.tar.gz) = 7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6
+SIZE (python/rust/crates/slog-scope-4.3.0.tar.gz) = 16986
+SHA256 (python/rust/crates/slog-stdlog-4.1.0.tar.gz) = 8228ab7302adbf4fcb37e66f3cda78003feb521e7fd9e3847ec117a7784d0f5a
+SIZE (python/rust/crates/slog-stdlog-4.1.0.tar.gz) = 14523
+SHA256 (python/rust/crates/slog-term-2.6.0.tar.gz) = bab1d807cf71129b05ce36914e1dbb6fbfbdecaf686301cb457f4fa967f9f5b6
+SIZE (python/rust/crates/slog-term-2.6.0.tar.gz) = 26304
+SHA256 (python/rust/crates/smallvec-1.4.2.tar.gz) = fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252
+SIZE (python/rust/crates/smallvec-1.4.2.tar.gz) = 26109
+SHA256 (python/rust/crates/socket2-0.3.15.tar.gz) = b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44
+SIZE (python/rust/crates/socket2-0.3.15.tar.gz) = 29282
+SHA256 (python/rust/crates/stable_deref_trait-1.2.0.tar.gz) = a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3
+SIZE (python/rust/crates/stable_deref_trait-1.2.0.tar.gz) = 8054
+SHA256 (python/rust/crates/static_assertions-1.1.0.tar.gz) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (python/rust/crates/static_assertions-1.1.0.tar.gz) = 18480
+SHA256 (python/rust/crates/subtle-2.3.0.tar.gz) = 343f3f510c2915908f155e94f17220b19ccfacf2a64a2a5d8004f2c3e311e7fd
+SIZE (python/rust/crates/subtle-2.3.0.tar.gz) = 11096
+SHA256 (python/rust/crates/syn-1.0.46.tar.gz) = 5ad5de3220ea04da322618ded2c42233d02baca219d6f160a3e9c87cda16c942
+SIZE (python/rust/crates/syn-1.0.46.tar.gz) = 225691
+SHA256 (python/rust/crates/synstructure-0.12.4.tar.gz) = b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701
+SIZE (python/rust/crates/synstructure-0.12.4.tar.gz) = 18105
+SHA256 (python/rust/crates/take_mut-0.2.2.tar.gz) = f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60
+SIZE (python/rust/crates/take_mut-0.2.2.tar.gz) = 4263
+SHA256 (python/rust/crates/tempfile-3.1.0.tar.gz) = 7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9
+SIZE (python/rust/crates/tempfile-3.1.0.tar.gz) = 25823
+SHA256 (python/rust/crates/term-0.6.1.tar.gz) = c0863a3345e70f61d613eab32ee046ccd1bcc5f9105fe402c61fcd0c13eeb8b5
+SIZE (python/rust/crates/term-0.6.1.tar.gz) = 37578
+SHA256 (python/rust/crates/thiserror-1.0.21.tar.gz) = 318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42
+SIZE (python/rust/crates/thiserror-1.0.21.tar.gz) = 16187
+SHA256 (python/rust/crates/thiserror-impl-1.0.21.tar.gz) = cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab
+SIZE (python/rust/crates/thiserror-impl-1.0.21.tar.gz) = 13199
+SHA256 (python/rust/crates/thread_local-1.0.1.tar.gz) = d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14
+SIZE (python/rust/crates/thread_local-1.0.1.tar.gz) = 12609
+SHA256 (python/rust/crates/time-0.1.44.tar.gz) = 6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255
+SIZE (python/rust/crates/time-0.1.44.tar.gz) = 28885
+SHA256 (python/rust/crates/tinystr-0.3.4.tar.gz) = 29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1
+SIZE (python/rust/crates/tinystr-0.3.4.tar.gz) = 19341
+SHA256 (python/rust/crates/tinyvec-0.3.4.tar.gz) = 238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117
+SIZE (python/rust/crates/tinyvec-0.3.4.tar.gz) = 17586
+SHA256 (python/rust/crates/tokio-0.2.22.tar.gz) = 5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd
+SIZE (python/rust/crates/tokio-0.2.22.tar.gz) = 400639
+SHA256 (python/rust/crates/tokio-socks-0.2.2.tar.gz) = 1997788a0e25e09300e44680ba1ef9d44d6f634a883641f80109e8b59c928daf
+SIZE (python/rust/crates/tokio-socks-0.2.2.tar.gz) = 16371
+SHA256 (python/rust/crates/tokio-tls-0.3.1.tar.gz) = 9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343
+SIZE (python/rust/crates/tokio-tls-0.3.1.tar.gz) = 22517
+SHA256 (python/rust/crates/tokio-util-0.3.1.tar.gz) = be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499
+SIZE (python/rust/crates/tokio-util-0.3.1.tar.gz) = 27233
+SHA256 (python/rust/crates/toml-0.5.7.tar.gz) = 75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645
+SIZE (python/rust/crates/toml-0.5.7.tar.gz) = 54372
+SHA256 (python/rust/crates/tower-service-0.3.0.tar.gz) = e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860
+SIZE (python/rust/crates/tower-service-0.3.0.tar.gz) = 5321
+SHA256 (python/rust/crates/tracing-0.1.21.tar.gz) = b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27
+SIZE (python/rust/crates/tracing-0.1.21.tar.gz) = 65404
+SHA256 (python/rust/crates/tracing-core-0.1.17.tar.gz) = f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f
+SIZE (python/rust/crates/tracing-core-0.1.17.tar.gz) = 47774
+SHA256 (python/rust/crates/try-lock-0.2.3.tar.gz) = 59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642
+SIZE (python/rust/crates/try-lock-0.2.3.tar.gz) = 4158
+SHA256 (python/rust/crates/type-map-0.3.0.tar.gz) = 9d2741b1474c327d95c1f1e3b0a2c3977c8e128409c572a33af2914e7d636717
+SIZE (python/rust/crates/type-map-0.3.0.tar.gz) = 3188
+SHA256 (python/rust/crates/typenum-1.12.0.tar.gz) = 373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33
+SIZE (python/rust/crates/typenum-1.12.0.tar.gz) = 36037
+SHA256 (python/rust/crates/unic-langid-0.8.0.tar.gz) = 24d81136159f779c35b10655f45210c71cd5ca5a45aadfe9840a61c7071735ed
+SIZE (python/rust/crates/unic-langid-0.8.0.tar.gz) = 4640
+SHA256 (python/rust/crates/unic-langid-impl-0.8.0.tar.gz) = c43c61e94492eb67f20facc7b025778a904de83d953d8fcb60dd9adfd6e2d0ea
+SIZE (python/rust/crates/unic-langid-impl-0.8.0.tar.gz) = 36947
+SHA256 (python/rust/crates/unic-langid-macros-0.8.0.tar.gz) = 49bd90791278634d57e3ed4a4073108e3f79bfb87ab6a7b8664ba097425703df
+SIZE (python/rust/crates/unic-langid-macros-0.8.0.tar.gz) = 2053
+SHA256 (python/rust/crates/unic-langid-macros-impl-0.8.0.tar.gz) = e0098f77bd754f8fb7850cdf4ab143aa821898c4ac6dc16bcb2aa3e62ce858d1
+SIZE (python/rust/crates/unic-langid-macros-impl-0.8.0.tar.gz) = 1447
+SHA256 (python/rust/crates/unicase-2.6.0.tar.gz) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6
+SIZE (python/rust/crates/unicase-2.6.0.tar.gz) = 23478
+SHA256 (python/rust/crates/unicode-bidi-0.3.4.tar.gz) = 49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5
+SIZE (python/rust/crates/unicode-bidi-0.3.4.tar.gz) = 32228
+SHA256 (python/rust/crates/unicode-normalization-0.1.13.tar.gz) = 6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977
+SIZE (python/rust/crates/unicode-normalization-0.1.13.tar.gz) = 91691
+SHA256 (python/rust/crates/unicode-segmentation-1.6.0.tar.gz) = e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0
+SIZE (python/rust/crates/unicode-segmentation-1.6.0.tar.gz) = 90703
+SHA256 (python/rust/crates/unicode-xid-0.2.1.tar.gz) = f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564
+SIZE (python/rust/crates/unicode-xid-0.2.1.tar.gz) = 14392
+SHA256 (python/rust/crates/unindent-0.1.7.tar.gz) = f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7
+SIZE (python/rust/crates/unindent-0.1.7.tar.gz) = 8346
+SHA256 (python/rust/crates/url-2.1.1.tar.gz) = 829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb
+SIZE (python/rust/crates/url-2.1.1.tar.gz) = 70383
+SHA256 (python/rust/crates/utime-0.3.1.tar.gz) = 91baa0c65eabd12fcbdac8cc35ff16159cab95cae96d0222d6d0271db6193cef
+SIZE (python/rust/crates/utime-0.3.1.tar.gz) = 8311
+SHA256 (python/rust/crates/vcpkg-0.2.10.tar.gz) = 6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c
+SIZE (python/rust/crates/vcpkg-0.2.10.tar.gz) = 11504
+SHA256 (python/rust/crates/version_check-0.9.2.tar.gz) = b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed
+SIZE (python/rust/crates/version_check-0.9.2.tar.gz) = 11979
+SHA256 (python/rust/crates/want-0.3.0.tar.gz) = 1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0
+SIZE (python/rust/crates/want-0.3.0.tar.gz) = 6550
+SHA256 (python/rust/crates/wasi-0.9.0+wasi-snapshot-preview1.tar.gz) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519
+SIZE (python/rust/crates/wasi-0.9.0+wasi-snapshot-preview1.tar.gz) = 31521
+SHA256 (python/rust/crates/wasi-0.10.0+wasi-snapshot-preview1.tar.gz) = 1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f
+SIZE (python/rust/crates/wasi-0.10.0+wasi-snapshot-preview1.tar.gz) = 26964
+SHA256 (python/rust/crates/wasm-bindgen-0.2.68.tar.gz) = 1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42
+SIZE (python/rust/crates/wasm-bindgen-0.2.68.tar.gz) = 159094
+SHA256 (python/rust/crates/wasm-bindgen-backend-0.2.68.tar.gz) = f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68
+SIZE (python/rust/crates/wasm-bindgen-backend-0.2.68.tar.gz) = 23522
+SHA256 (python/rust/crates/wasm-bindgen-futures-0.4.18.tar.gz) = b7866cab0aa01de1edf8b5d7936938a7e397ee50ce24119aef3e1eaa3b6171da
+SIZE (python/rust/crates/wasm-bindgen-futures-0.4.18.tar.gz) = 13690
+SHA256 (python/rust/crates/wasm-bindgen-macro-0.2.68.tar.gz) = 6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038
+SIZE (python/rust/crates/wasm-bindgen-macro-0.2.68.tar.gz) = 11630
+SHA256 (python/rust/crates/wasm-bindgen-macro-support-0.2.68.tar.gz) = f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe
+SIZE (python/rust/crates/wasm-bindgen-macro-support-0.2.68.tar.gz) = 17793
+SHA256 (python/rust/crates/wasm-bindgen-shared-0.2.68.tar.gz) = 1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307
+SIZE (python/rust/crates/wasm-bindgen-shared-0.2.68.tar.gz) = 6725
+SHA256 (python/rust/crates/web-sys-0.3.45.tar.gz) = 4bf6ef87ad7ae8008e15a355ce696bed26012b7caa21605188cfd8214ab51e2d
+SIZE (python/rust/crates/web-sys-0.3.45.tar.gz) = 630993
+SHA256 (python/rust/crates/which-3.1.1.tar.gz) = d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724
+SIZE (python/rust/crates/which-3.1.1.tar.gz) = 8071
+SHA256 (python/rust/crates/winapi-0.2.8.tar.gz) = 167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a
+SIZE (python/rust/crates/winapi-0.2.8.tar.gz) = 455145
+SHA256 (python/rust/crates/winapi-0.3.9.tar.gz) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (python/rust/crates/winapi-0.3.9.tar.gz) = 1200382
+SHA256 (python/rust/crates/winapi-build-0.1.1.tar.gz) = 2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc
+SIZE (python/rust/crates/winapi-build-0.1.1.tar.gz) = 669
+SHA256 (python/rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (python/rust/crates/winapi-i686-pc-windows-gnu-0.4.0.tar.gz) = 2918815
+SHA256 (python/rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (python/rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz) = 2947998
+SHA256 (python/rust/crates/winreg-0.6.2.tar.gz) = b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9
+SIZE (python/rust/crates/winreg-0.6.2.tar.gz) = 19338
+SHA256 (python/rust/crates/ws2_32-sys-0.2.1.tar.gz) = d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e
+SIZE (python/rust/crates/ws2_32-sys-0.2.1.tar.gz) = 4697
+SHA256 (python/rust/crates/zip-0.5.6.tar.gz) = 58287c28d78507f5f91f2a4cf1e8310e2c76fd4c6932f93ac60fd1ceb402db7d
+SIZE (python/rust/crates/zip-0.5.6.tar.gz) = 33064
+SHA256 (python/ankitects-anki-2.1.35_GH0.tar.gz) = 188c0756bd2acda0b5d675c2f8462b4bca32aed451e7ffa495e9de5c387aebd0
+SIZE (python/ankitects-anki-2.1.35_GH0.tar.gz) = 1496408
+SHA256 (python/ankitects-anki-core-i18n-fbda2ed_GH0.tar.gz) = d4cc9f878b8946b8c0a4a86935f947fc13044d837e014234b57e04fafdced602
+SIZE (python/ankitects-anki-core-i18n-fbda2ed_GH0.tar.gz) = 227281
+SHA256 (python/ankitects-anki-desktop-ftl-f56e959_GH0.tar.gz) = 3a2b5223737e7063b9d52ec90ee8598358322493745a8d254fd3c2aa464c647a
+SIZE (python/ankitects-anki-desktop-ftl-f56e959_GH0.tar.gz) = 36793
+SHA256 (python/ankitects-anki-desktop-i18n-a93ccef_GH0.tar.gz) = 1cebef1595b08a480e4c64b15a5a765056be10c1fdfd658d1dfcfdc9d04af74d
+SIZE (python/ankitects-anki-desktop-i18n-a93ccef_GH0.tar.gz) = 1391777
+SHA256 (python/ankitects-rust-coarsetime-f9e2c86216f0f4803bc75404828318fc206dab29_GH0.tar.gz) = e79be82d7c2f2d10856392697187f5c4a7b0858ce7046b0a2f969c32b735d81e
+SIZE (python/ankitects-rust-coarsetime-f9e2c86216f0f4803bc75404828318fc206dab29_GH0.tar.gz) = 7110
+SHA256 (python/ankitects-fluent-rs-f61c5e10a53161ef5261f3c87b62047f12e4aa74_GH0.tar.gz) = 79e6574fb1611c5e5f7b159014f04bdb32374ffb20be03f36462a98e79deae04
+SIZE (python/ankitects-fluent-rs-f61c5e10a53161ef5261f3c87b62047f12e4aa74_GH0.tar.gz) = 112354
+SHA256 (python/ankitects-hyper-timeout-664b6f9c387f6a7d75d1609a65c02554e8c55bc7_GH0.tar.gz) = a31fb414802ecc5b52fc953d8d44e39084ad245bd4da3e8b9bc4e98f426fcb4d
+SIZE (python/ankitects-hyper-timeout-664b6f9c387f6a7d75d1609a65c02554e8c55bc7_GH0.tar.gz) = 8461
+SHA256 (python/ankitects-reqwest-57665e2c2a39db85723ba860f1b570a608bb73f9_GH0.tar.gz) = 1402e2f4c65819f644d6c5a15fccd6eb6ca3a9b12b4157d3d04999a10dbbaf7a
+SIZE (python/ankitects-reqwest-57665e2c2a39db85723ba860f1b570a608bb73f9_GH0.tar.gz) = 219588
+SHA256 (python/ankitects-tokio-io-timeout-96e1358555c49905de89170f2b1102a7d8b6c4c2_GH0.tar.gz) = a7490d924a3850a1518757a0eba225cc27784b7a79f7f525d935c92e206100e9
+SIZE (python/ankitects-tokio-io-timeout-96e1358555c49905de89170f2b1102a7d8b6c4c2_GH0.tar.gz) = 8152

Modified: head/games/anki/files/patch-Makefile
==============================================================================
--- head/games/anki/files/patch-Makefile	Tue Nov 10 12:57:30 2020	(r554833)
+++ head/games/anki/files/patch-Makefile	Tue Nov 10 13:01:04 2020	(r554834)
@@ -1,44 +1,27 @@
---- Makefile.orig	2018-07-27 02:18:05 UTC
+Coerce sequential processing of the build targets as it's already done for the
+"develop" target in the same file.
+
+Not doing this will often cause failures with the "build-qt" target that needs
+files in ${WRKSRC}/ts/dist/ which is created by the "build-ts" target.
+
+A workaround would be to set MAKE_JOBS_UNSAFE but that would also slow down the
+compilation of the Rust library.
+
+Also the "build-ts" target must be run after the "build-pylib" target otherwise
+it produces a ${WRKSRC}/ts/dist/graphs.js with wrong content.
+
+--- Makefile.orig	2020-08-30 01:23:44 UTC
 +++ Makefile
-@@ -1,4 +1,4 @@

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011101301.0AAD14FT027841>