Changeset View
Changeset View
Standalone View
Standalone View
games/anki/Makefile
PORTNAME= anki | PORTNAME= anki | ||||
DISTVERSION= 2.1.49 | DISTVERSION= 2.1.54 | ||||
PORTREVISION= 4 | |||||
# Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes | # Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes | ||||
CATEGORIES= games education python | CATEGORIES= games education python | ||||
MASTER_SITES= LOCAL/kai/:yarncache | MASTER_SITES= LOCAL/kai/:yarncache \ | ||||
DISTFILES= anki-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}:yarncache | LOCAL/kai/:npmcache | ||||
DISTFILES= anki-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}:yarncache \ | |||||
anki-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache | |||||
MAINTAINER= kai@FreeBSD.org | MAINTAINER= kai@FreeBSD.org | ||||
COMMENT= Flashcard trainer with spaced repetition | COMMENT= Flashcard trainer with spaced repetition | ||||
WWW= https://apps.ankiweb.net/ | WWW= https://apps.ankiweb.net/ | ||||
LICENSE= AGPLv3+ | LICENSE= AGPLv3+ | ||||
LICENSE_FILE= ${WRKSRC}/LICENSE | LICENSE_FILE= ${WRKSRC}/LICENSE | ||||
BROKEN_aarch64= needs adjustments (e.g. "//platforms:freebsd_arm64") for the shipped Bazel rules files to include several files during build. | |||||
NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc | NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc | ||||
NOT_FOR_ARCHS_REASON= the bazel build framework supports only 64-bit systems. | NOT_FOR_ARCHS_REASON= the bazel build framework supports only 64-bit systems. | ||||
BUILD_DEPENDS= bash:shells/bash \ | BUILD_DEPENDS= bash:shells/bash \ | ||||
bazel:devel/bazel \ | bazel:devel/bazel \ | ||||
esbuild:devel/esbuild \ | npm:www/npm \ | ||||
protoc:devel/protobuf \ | protoc:devel/protobuf \ | ||||
rsync:net/rsync \ | |||||
yarn:www/yarn \ | yarn:www/yarn \ | ||||
${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}stringcase>0:devel/py-stringcase@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}stringcase>0:devel/py-stringcase@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}fluent>0:devel/py-fluent@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}fluent>0:devel/py-fluent@${PY_FLAVOR} \ | ||||
${RUN_DEPENDS} | ${RUN_DEPENDS} | ||||
# For x64 architectures there's also a Python package "orjson" that still needs | # NB: For x64 architectures there's also a Python package devel/py-orjson. | ||||
# to be ported once the required features (= "untagged unions", | # Chances are good that it'll be added to RUN_DEPENDS with the next release. | ||||
# "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 | # Although the "orjson" package is required via the setup.py of Anki's Python | ||||
# library it's (still) optional in the code. | # library it's (still) optional in the code. | ||||
RUN_DEPENDS= lame:audio/lame \ | RUN_DEPENDS= lame:audio/lame \ | ||||
${PYTHON_PKGNAMEPREFIX}pyaudio>0:audio/py-pyaudio@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}pyaudio>0:audio/py-pyaudio@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}send2trash>0:deskutils/py-send2trash@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}send2trash>0:deskutils/py-send2trash@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}distro>0:sysutils/py-distro@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}markdown>0:textproc/py-markdown@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${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>0:www/py-flask@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}Flask-Cors>0:www/py-flask-cors@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}Flask-Cors>0:www/py-flask-cors@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}protobuf>0:devel/py-protobuf@${PY_FLAVOR} \ | ${PYTHON_PKGNAMEPREFIX}protobuf>=3.17:devel/py-protobuf@${PY_FLAVOR} \ | ||||
${PYTHON_PKGNAMEPREFIX}stringcase>0:devel/py-stringcase@${PY_FLAVOR} \ | |||||
${PYTHON_PKGNAMEPREFIX}waitress>0:www/py-waitress@${PY_FLAVOR} | ${PYTHON_PKGNAMEPREFIX}waitress>0:www/py-waitress@${PY_FLAVOR} | ||||
# USES=ssl is required for the compilation of the Rust code | # USES=ssl is required for the compilation of the Rust code | ||||
USES= cargo desktop-file-utils pyqt:5 python:3.8+ shebangfix ssl | USES= cargo desktop-file-utils go:modules,no_targets nodejs:build pyqt:5 \ | ||||
python:3.9+ shebangfix ssl | |||||
USE_GITHUB= yes | USE_GITHUB= yes | ||||
GH_ACCOUNT= ankitects | GH_ACCOUNT= ankitects | ||||
# Translation files | # Translation files | ||||
GH_TUPLE= ankitects:anki-core-i18n:56d46d6:ftlrslib \ | GH_TUPLE= ankitects:anki-core-i18n:f3f9912:ftlrslib \ | ||||
ankitects:anki-desktop-ftl:5359f84:ftlextra | ankitects:anki-desktop-ftl:6e59ce7e:ftlextra | ||||
# Bazel Skylib framework and sets of bazel rules | # Bazel Skylib framework and sets of bazel rules | ||||
GH_TUPLE+= bazelbuild:bazel-skylib:e59b620:bzlskylib \ | GH_TUPLE+= bazelbuild:bazel-skylib:e59b620:bzlskylib \ | ||||
bazelbuild:rules_cc:40548a2:bzlrcc \ | bazelbuild:rules_cc:40548a2:bzlrcc \ | ||||
bazelbuild:rules_java:c13e3ea:bzlrjava \ | bazelbuild:rules_java:c13e3ea:bzlrjava \ | ||||
bazelbuild:rules_nodejs:2d02e82:bzlrnodejs \ | bazelbuild:rules_nodejs:45e97fc:bzlrnodejs \ | ||||
bazelbuild:rules_proto:f7a30f6:bzlrproto \ | bazelbuild:rules_proto:f7a30f6:bzlrproto \ | ||||
ankitects:esbuild_toolchain:f942aa9:esbuildtc \ | bazelbuild:rules_python:b842276:bzlrpython \ | ||||
ankitects:rules_pip:fb02cb7:bzlrpip \ | ankitects:rules_rust:adf2790:bzlrrust \ | ||||
ankitects:rules_python:3927c9b:bzlrpython \ | bazelbuild:rules_sass:d0cda22:bzlrsass | ||||
ankitects:rules_rust:f66001a:bzlrrust \ | # esbuild dependencies | ||||
ankitects:rules_sass:275ace7:bzlrsass | GH_TUPLE+= evanw:esbuild:${_MY_ESBUILDVER}:esbuild \ | ||||
golang:sys:aa78b53d3365:golang_sys | |||||
USE_PYQT= pyqt5 sip webengine | USE_PYQT= pyqt5 sip webengine | ||||
SHEBANG_FILES= qt/tools/runanki.system.in | SHEBANG_FILES= qt/tools/runanki.system.in | ||||
CARGO_CRATES= Inflector-0.11.4 \ | CARGO_CRATES= adler-1.0.2 \ | ||||
adler-1.0.2 \ | ahash-0.7.6 \ | ||||
ahash-0.7.4 \ | |||||
aho-corasick-0.7.18 \ | aho-corasick-0.7.18 \ | ||||
ammonia-3.1.2 \ | ammonia-3.1.4 \ | ||||
anyhow-1.0.42 \ | anyhow-1.0.56 \ | ||||
arc-swap-1.3.0 \ | arc-swap-1.5.0 \ | ||||
arrayref-0.3.6 \ | arrayref-0.3.6 \ | ||||
arrayvec-0.4.12 \ | arrayvec-0.4.12 \ | ||||
arrayvec-0.5.2 \ | arrayvec-0.7.2 \ | ||||
askama-0.10.5 \ | async-trait-0.1.52 \ | ||||
askama_derive-0.10.5 \ | |||||
askama_escape-0.10.1 \ | |||||
askama_shared-0.11.1 \ | |||||
async-trait-0.1.51 \ | |||||
atty-0.2.14 \ | atty-0.2.14 \ | ||||
autocfg-1.0.1 \ | autocfg-1.1.0 \ | ||||
base64-0.13.0 \ | base64-0.13.0 \ | ||||
bitflags-1.2.1 \ | bitflags-1.3.2 \ | ||||
bitvec-0.19.5 \ | blake3-1.3.1 \ | ||||
blake3-0.3.8 \ | block-buffer-0.10.2 \ | ||||
bumpalo-3.7.0 \ | bstr-0.2.17 \ | ||||
bumpalo-3.9.1 \ | |||||
byteorder-1.4.3 \ | byteorder-1.4.3 \ | ||||
bytes-1.0.1 \ | bytes-1.1.0 \ | ||||
cc-1.0.69 \ | cast-0.2.7 \ | ||||
cfg-if-0.1.10 \ | cc-1.0.73 \ | ||||
cfg-if-1.0.0 \ | cfg-if-1.0.0 \ | ||||
chrono-0.4.19 \ | chrono-0.4.19 \ | ||||
coarsetime-0.1.19 \ | clap-2.34.0 \ | ||||
coarsetime-0.1.21 \ | |||||
codespan-0.11.1 \ | codespan-0.11.1 \ | ||||
codespan-reporting-0.11.1 \ | codespan-reporting-0.11.1 \ | ||||
constant_time_eq-0.1.5 \ | constant_time_eq-0.1.5 \ | ||||
convert_case-0.4.0 \ | convert_case-0.4.0 \ | ||||
core-foundation-0.9.1 \ | core-foundation-0.9.3 \ | ||||
core-foundation-sys-0.8.2 \ | core-foundation-sys-0.8.3 \ | ||||
crc32fast-1.2.1 \ | crc32fast-1.3.2 \ | ||||
crossbeam-channel-0.5.1 \ | criterion-0.3.5 \ | ||||
crossbeam-utils-0.8.5 \ | criterion-plot-0.4.4 \ | ||||
crypto-mac-0.8.0 \ | crossbeam-channel-0.5.2 \ | ||||
crossbeam-deque-0.8.1 \ | |||||
crossbeam-epoch-0.9.7 \ | |||||
crossbeam-utils-0.8.7 \ | |||||
crypto-common-0.1.3 \ | |||||
cssparser-0.27.2 \ | cssparser-0.27.2 \ | ||||
cssparser-macros-0.6.0 \ | cssparser-macros-0.6.0 \ | ||||
ctor-0.1.20 \ | csv-1.1.6 \ | ||||
derivative-2.2.0 \ | csv-core-0.1.10 \ | ||||
derive_more-0.99.16 \ | derive_more-0.99.17 \ | ||||
digest-0.9.0 \ | digest-0.10.3 \ | ||||
dirs-2.0.2 \ | dirs-next-2.0.0 \ | ||||
dirs-sys-0.3.6 \ | dirs-sys-next-0.1.2 \ | ||||
dtoa-0.4.8 \ | dtoa-0.4.8 \ | ||||
dtoa-short-0.3.3 \ | dtoa-short-0.3.3 \ | ||||
dunce-1.0.2 \ | dunce-1.0.2 \ | ||||
either-1.6.1 \ | either-1.6.1 \ | ||||
encoding_rs-0.8.28 \ | encoding_rs-0.8.30 \ | ||||
env_logger-0.8.4 \ | env_logger-0.9.0 \ | ||||
fallible-iterator-0.2.0 \ | fallible-iterator-0.2.0 \ | ||||
fallible-streaming-iterator-0.1.9 \ | fallible-streaming-iterator-0.1.9 \ | ||||
fixedbitset-0.2.0 \ | fastrand-1.7.0 \ | ||||
flate2-1.0.20 \ | fixedbitset-0.4.1 \ | ||||
fluent-0.15.0 \ | flate2-1.0.22 \ | ||||
fluent-bundle-0.15.1 \ | fluent-0.16.0 \ | ||||
fluent-bundle-0.15.2 \ | |||||
fluent-langneg-0.13.0 \ | fluent-langneg-0.13.0 \ | ||||
fluent-syntax-0.11.0 \ | fluent-syntax-0.11.0 \ | ||||
fnv-1.0.7 \ | fnv-1.0.7 \ | ||||
foreign-types-0.3.2 \ | foreign-types-0.3.2 \ | ||||
foreign-types-shared-0.1.1 \ | foreign-types-shared-0.1.1 \ | ||||
form_urlencoded-1.0.1 \ | form_urlencoded-1.0.1 \ | ||||
funty-1.1.0 \ | futf-0.1.5 \ | ||||
futf-0.1.4 \ | futures-0.3.21 \ | ||||
futures-0.3.16 \ | futures-channel-0.3.21 \ | ||||
futures-channel-0.3.16 \ | futures-core-0.3.21 \ | ||||
futures-core-0.3.16 \ | futures-executor-0.3.21 \ | ||||
futures-executor-0.3.16 \ | futures-io-0.3.21 \ | ||||
futures-io-0.3.16 \ | futures-macro-0.3.21 \ | ||||
futures-macro-0.3.16 \ | futures-sink-0.3.21 \ | ||||
futures-sink-0.3.16 \ | futures-task-0.3.21 \ | ||||
futures-task-0.3.16 \ | futures-util-0.3.21 \ | ||||
futures-util-0.3.16 \ | |||||
fxhash-0.2.1 \ | fxhash-0.2.1 \ | ||||
generic-array-0.14.4 \ | generic-array-0.14.5 \ | ||||
getopts-0.2.21 \ | getopts-0.2.21 \ | ||||
getrandom-0.1.16 \ | getrandom-0.1.16 \ | ||||
getrandom-0.2.3 \ | getrandom-0.2.5 \ | ||||
ghost-0.1.2 \ | h2-0.3.12 \ | ||||
h2-0.3.3 \ | half-1.8.2 \ | ||||
hashbrown-0.11.2 \ | hashbrown-0.11.2 \ | ||||
hashlink-0.7.0 \ | hashlink-0.7.0 \ | ||||
heck-0.3.3 \ | heck-0.3.3 \ | ||||
hermit-abi-0.1.19 \ | hermit-abi-0.1.19 \ | ||||
hex-0.4.3 \ | hex-0.4.3 \ | ||||
html5ever-0.25.1 \ | html5ever-0.25.1 \ | ||||
htmlescape-0.3.1 \ | htmlescape-0.3.1 \ | ||||
http-0.2.4 \ | http-0.2.6 \ | ||||
http-body-0.4.2 \ | http-body-0.4.4 \ | ||||
httparse-1.4.1 \ | httparse-1.6.0 \ | ||||
httpdate-1.0.1 \ | httpdate-1.0.2 \ | ||||
humansize-1.1.1 \ | |||||
humantime-2.1.0 \ | humantime-2.1.0 \ | ||||
hyper-0.14.11 \ | hyper-0.14.17 \ | ||||
hyper-rustls-0.22.1 \ | hyper-rustls-0.22.1 \ | ||||
hyper-tls-0.5.0 \ | hyper-tls-0.5.0 \ | ||||
id_tree-1.8.0 \ | |||||
idna-0.2.3 \ | idna-0.2.3 \ | ||||
indexmap-1.7.0 \ | indexmap-1.8.0 \ | ||||
indoc-0.3.6 \ | indoc-0.3.6 \ | ||||
indoc-impl-0.3.6 \ | indoc-impl-0.3.6 \ | ||||
inflections-1.1.1 \ | inflections-1.1.1 \ | ||||
instant-0.1.10 \ | instant-0.1.12 \ | ||||
intl-memoizer-0.5.1 \ | intl-memoizer-0.5.1 \ | ||||
intl_pluralrules-7.0.1 \ | intl_pluralrules-7.0.1 \ | ||||
inventory-0.1.10 \ | ipnet-2.4.0 \ | ||||
inventory-impl-0.1.10 \ | itertools-0.10.3 \ | ||||
ipnet-2.3.1 \ | itoa-0.4.8 \ | ||||
itertools-0.9.0 \ | itoa-1.0.1 \ | ||||
itertools-0.10.1 \ | jobserver-0.1.24 \ | ||||
itoa-0.4.7 \ | js-sys-0.3.56 \ | ||||
js-sys-0.3.52 \ | |||||
kuchiki-0.8.1 \ | kuchiki-0.8.1 \ | ||||
lazy_static-1.4.0 \ | lazy_static-1.4.0 \ | ||||
lexical-core-0.7.6 \ | libc-0.2.120 \ | ||||
libc-0.2.98 \ | libsqlite3-sys-0.23.2 \ | ||||
libsqlite3-sys-0.22.2 \ | |||||
linkify-0.5.0 \ | linkify-0.5.0 \ | ||||
lock_api-0.4.4 \ | lock_api-0.4.6 \ | ||||
log-0.4.14 \ | log-0.4.14 \ | ||||
mac-0.1.1 \ | mac-0.1.1 \ | ||||
maplit-1.0.2 \ | maplit-1.0.2 \ | ||||
markup5ever-0.10.1 \ | markup5ever-0.10.1 \ | ||||
markup5ever_rcdom-0.1.0 \ | markup5ever_rcdom-0.1.0 \ | ||||
matches-0.1.8 \ | matches-0.1.9 \ | ||||
memchr-2.4.0 \ | memchr-2.4.1 \ | ||||
memoffset-0.6.5 \ | |||||
mime-0.3.16 \ | mime-0.3.16 \ | ||||
mime_guess-2.0.3 \ | mime_guess-2.0.4 \ | ||||
minimal-lexical-0.2.1 \ | |||||
miniz_oxide-0.4.4 \ | miniz_oxide-0.4.4 \ | ||||
mio-0.7.13 \ | mio-0.8.1 \ | ||||
miow-0.3.7 \ | miow-0.3.7 \ | ||||
multimap-0.8.3 \ | multimap-0.8.3 \ | ||||
native-tls-0.2.7 \ | native-tls-0.2.8 \ | ||||
new_debug_unreachable-1.0.4 \ | new_debug_unreachable-1.0.4 \ | ||||
nodrop-0.1.14 \ | nodrop-0.1.14 \ | ||||
nom-6.1.2 \ | nom-7.1.1 \ | ||||
nom-7.0.0-alpha1 \ | ntapi-0.3.7 \ | ||||
ntapi-0.3.6 \ | |||||
num-format-0.4.0 \ | num-format-0.4.0 \ | ||||
num-integer-0.1.44 \ | num-integer-0.1.44 \ | ||||
num-traits-0.2.14 \ | num-traits-0.2.14 \ | ||||
num_cpus-1.13.0 \ | num_cpus-1.13.1 \ | ||||
num_enum-0.5.2 \ | num_enum-0.5.7 \ | ||||
num_enum_derive-0.5.2 \ | num_enum_derive-0.5.7 \ | ||||
once_cell-1.8.0 \ | num_threads-0.1.4 \ | ||||
openssl-0.10.35 \ | once_cell-1.10.0 \ | ||||
openssl-probe-0.1.4 \ | oorandom-11.1.3 \ | ||||
openssl-sys-0.9.65 \ | openssl-0.10.38 \ | ||||
ouroboros-0.9.5 \ | openssl-probe-0.1.5 \ | ||||
ouroboros_macro-0.9.5 \ | openssl-sys-0.9.72 \ | ||||
parking_lot-0.11.1 \ | parking_lot-0.11.2 \ | ||||
parking_lot_core-0.8.3 \ | parking_lot-0.12.0 \ | ||||
parking_lot_core-0.8.5 \ | |||||
parking_lot_core-0.9.1 \ | |||||
paste-0.1.18 \ | paste-0.1.18 \ | ||||
paste-impl-0.1.18 \ | paste-impl-0.1.18 \ | ||||
percent-encoding-2.1.0 \ | percent-encoding-2.1.0 \ | ||||
pest-2.1.3 \ | petgraph-0.6.0 \ | ||||
petgraph-0.5.1 \ | |||||
phf-0.8.0 \ | phf-0.8.0 \ | ||||
phf-0.9.0 \ | phf-0.10.1 \ | ||||
phf_codegen-0.8.0 \ | phf_codegen-0.8.0 \ | ||||
phf_generator-0.8.0 \ | phf_generator-0.8.0 \ | ||||
phf_generator-0.9.0 \ | phf_generator-0.10.0 \ | ||||
phf_macros-0.8.0 \ | phf_macros-0.8.0 \ | ||||
phf_macros-0.9.0 \ | phf_macros-0.10.0 \ | ||||
phf_shared-0.8.0 \ | phf_shared-0.8.0 \ | ||||
phf_shared-0.9.0 \ | phf_shared-0.10.0 \ | ||||
pin-project-1.0.8 \ | pin-project-1.0.10 \ | ||||
pin-project-internal-1.0.8 \ | pin-project-internal-1.0.10 \ | ||||
pin-project-lite-0.2.7 \ | pin-project-lite-0.2.8 \ | ||||
pin-utils-0.1.0 \ | pin-utils-0.1.0 \ | ||||
pkg-config-0.3.19 \ | pkg-config-0.3.24 \ | ||||
ppv-lite86-0.2.10 \ | plotters-0.3.1 \ | ||||
plotters-backend-0.3.2 \ | |||||
plotters-svg-0.3.1 \ | |||||
ppv-lite86-0.2.16 \ | |||||
precomputed-hash-0.1.1 \ | precomputed-hash-0.1.1 \ | ||||
proc-macro-crate-1.0.0 \ | proc-macro-crate-1.1.3 \ | ||||
proc-macro-error-1.0.4 \ | |||||
proc-macro-error-attr-1.0.4 \ | |||||
proc-macro-hack-0.5.19 \ | proc-macro-hack-0.5.19 \ | ||||
proc-macro-nested-0.1.6 \ | proc-macro-nested-0.1.7 \ | ||||
proc-macro2-1.0.28 \ | proc-macro2-1.0.36 \ | ||||
prost-0.7.0 \ | prost-0.9.0 \ | ||||
prost-build-0.7.0 \ | prost-build-0.9.0 \ | ||||
prost-derive-0.7.0 \ | prost-derive-0.9.0 \ | ||||
prost-types-0.7.0 \ | prost-types-0.9.0 \ | ||||
pulldown-cmark-0.8.0 \ | pulldown-cmark-0.8.0 \ | ||||
pyo3-0.13.2 \ | pyo3-0.15.1 \ | ||||
pyo3-macros-0.13.2 \ | pyo3-build-config-0.15.1 \ | ||||
pyo3-macros-backend-0.13.2 \ | pyo3-macros-0.15.1 \ | ||||
quote-1.0.9 \ | pyo3-macros-backend-0.15.1 \ | ||||
radium-0.5.3 \ | quote-1.0.15 \ | ||||
rand-0.7.3 \ | rand-0.7.3 \ | ||||
rand-0.8.4 \ | rand-0.8.5 \ | ||||
rand_chacha-0.2.2 \ | rand_chacha-0.2.2 \ | ||||
rand_chacha-0.3.1 \ | rand_chacha-0.3.1 \ | ||||
rand_core-0.5.1 \ | rand_core-0.5.1 \ | ||||
rand_core-0.6.3 \ | rand_core-0.6.3 \ | ||||
rand_hc-0.2.0 \ | rand_hc-0.2.0 \ | ||||
rand_hc-0.3.1 \ | |||||
rand_pcg-0.2.1 \ | rand_pcg-0.2.1 \ | ||||
redox_syscall-0.2.9 \ | rayon-1.5.1 \ | ||||
rayon-core-1.9.1 \ | |||||
redox_syscall-0.2.11 \ | |||||
redox_users-0.4.0 \ | redox_users-0.4.0 \ | ||||
regex-1.5.4 \ | regex-1.5.6 \ | ||||
regex-syntax-0.6.25 \ | regex-automata-0.1.10 \ | ||||
regex-syntax-0.6.26 \ | |||||
remove_dir_all-0.5.3 \ | remove_dir_all-0.5.3 \ | ||||
reqwest-0.11.4 \ | |||||
ring-0.16.20 \ | ring-0.16.20 \ | ||||
rusqlite-0.25.3 \ | rusqlite-0.26.3 \ | ||||
rustc-hash-1.1.0 \ | rustc-hash-1.1.0 \ | ||||
rustc_version-0.3.3 \ | rustc_version-0.4.0 \ | ||||
rustls-0.19.1 \ | rustls-0.19.1 \ | ||||
rustls-native-certs-0.5.0 \ | rustls-native-certs-0.5.0 \ | ||||
ryu-1.0.5 \ | rustversion-1.0.6 \ | ||||
ryu-1.0.9 \ | |||||
same-file-1.0.6 \ | |||||
schannel-0.1.19 \ | schannel-0.1.19 \ | ||||
scopeguard-1.1.0 \ | scopeguard-1.1.0 \ | ||||
sct-0.6.1 \ | sct-0.6.1 \ | ||||
security-framework-2.3.1 \ | security-framework-2.6.1 \ | ||||
security-framework-sys-2.3.0 \ | security-framework-sys-2.6.1 \ | ||||
selectors-0.22.0 \ | selectors-0.22.0 \ | ||||
semver-0.11.0 \ | self_cell-0.10.2 \ | ||||
semver-parser-0.10.2 \ | semver-1.0.6 \ | ||||
serde-1.0.127 \ | serde-1.0.136 \ | ||||
serde-aux-2.2.0 \ | serde-aux-3.0.1 \ | ||||
serde_derive-1.0.127 \ | serde_cbor-0.11.2 \ | ||||
serde_json-1.0.66 \ | serde_derive-1.0.136 \ | ||||
serde_json-1.0.79 \ | |||||
serde_repr-0.1.7 \ | serde_repr-0.1.7 \ | ||||
serde_tuple-0.5.0 \ | serde_tuple-0.5.0 \ | ||||
serde_tuple_macros-0.5.0 \ | serde_tuple_macros-0.5.0 \ | ||||
serde_urlencoded-0.7.0 \ | serde_urlencoded-0.7.1 \ | ||||
servo_arc-0.1.1 \ | servo_arc-0.1.1 \ | ||||
sha1-0.6.0 \ | sha1-0.6.1 \ | ||||
siphasher-0.3.6 \ | sha1_smol-1.0.0 \ | ||||
slab-0.4.3 \ | signal-hook-registry-1.4.0 \ | ||||
siphasher-0.3.10 \ | |||||
slab-0.4.5 \ | |||||
slog-2.7.0 \ | slog-2.7.0 \ | ||||
slog-async-2.7.0 \ | slog-async-2.7.0 \ | ||||
slog-envlogger-2.2.0 \ | slog-envlogger-2.2.0 \ | ||||
slog-scope-4.4.0 \ | slog-scope-4.4.0 \ | ||||
slog-stdlog-4.1.0 \ | slog-stdlog-4.1.0 \ | ||||
slog-term-2.6.0 \ | slog-term-2.9.0 \ | ||||
smallvec-1.6.1 \ | smallvec-1.8.0 \ | ||||
socket2-0.4.1 \ | snowflake-1.3.0 \ | ||||
socket2-0.4.4 \ | |||||
spin-0.5.2 \ | spin-0.5.2 \ | ||||
stable_deref_trait-1.2.0 \ | stable_deref_trait-1.2.0 \ | ||||
static_assertions-1.1.0 \ | string_cache-0.8.3 \ | ||||
string_cache-0.8.1 \ | |||||
string_cache_codegen-0.5.1 \ | string_cache_codegen-0.5.1 \ | ||||
strum-0.21.0 \ | strum-0.23.0 \ | ||||
strum_macros-0.21.1 \ | strum_macros-0.23.1 \ | ||||
subtle-2.4.1 \ | subtle-2.4.1 \ | ||||
syn-1.0.74 \ | syn-1.0.88 \ | ||||
take_mut-0.2.2 \ | take_mut-0.2.2 \ | ||||
tap-1.0.1 \ | tempfile-3.3.0 \ | ||||
tempfile-3.2.0 \ | |||||
tendril-0.4.2 \ | tendril-0.4.2 \ | ||||
term-0.6.1 \ | term-0.7.0 \ | ||||
termcolor-1.1.2 \ | termcolor-1.1.3 \ | ||||
textwrap-0.11.0 \ | |||||
thin-slice-0.1.1 \ | thin-slice-0.1.1 \ | ||||
thiserror-1.0.26 \ | thiserror-1.0.30 \ | ||||
thiserror-impl-1.0.26 \ | thiserror-impl-1.0.30 \ | ||||
thread_local-1.1.3 \ | thread_local-1.1.4 \ | ||||
time-0.1.44 \ | time-0.1.44 \ | ||||
time-0.3.7 \ | |||||
time-macros-0.2.3 \ | |||||
tinystr-0.3.4 \ | tinystr-0.3.4 \ | ||||
tinyvec-1.3.1 \ | tinytemplate-1.2.1 \ | ||||
tinyvec-1.5.1 \ | |||||
tinyvec_macros-0.1.0 \ | tinyvec_macros-0.1.0 \ | ||||
tokio-1.9.0 \ | tokio-1.17.0 \ | ||||
tokio-macros-1.3.0 \ | tokio-macros-1.7.0 \ | ||||
tokio-native-tls-0.3.0 \ | tokio-native-tls-0.3.0 \ | ||||
tokio-rustls-0.22.0 \ | tokio-rustls-0.22.0 \ | ||||
tokio-socks-0.5.1 \ | tokio-socks-0.5.1 \ | ||||
tokio-util-0.6.7 \ | tokio-util-0.6.9 \ | ||||
toml-0.5.8 \ | toml-0.5.8 \ | ||||
tower-service-0.3.1 \ | tower-service-0.3.1 \ | ||||
tracing-0.1.26 \ | tracing-0.1.32 \ | ||||
tracing-core-0.1.18 \ | tracing-core-0.1.23 \ | ||||
try-lock-0.2.3 \ | try-lock-0.2.3 \ | ||||
type-map-0.4.0 \ | type-map-0.4.0 \ | ||||
typenum-1.13.0 \ | typenum-1.15.0 \ | ||||
ucd-trie-0.1.3 \ | |||||
unic-char-property-0.9.0 \ | unic-char-property-0.9.0 \ | ||||
unic-char-range-0.9.0 \ | unic-char-range-0.9.0 \ | ||||
unic-common-0.9.0 \ | unic-common-0.9.0 \ | ||||
unic-langid-0.9.0 \ | unic-langid-0.9.0 \ | ||||
unic-langid-impl-0.9.0 \ | unic-langid-impl-0.9.0 \ | ||||
unic-langid-macros-0.9.0 \ | unic-langid-macros-0.9.0 \ | ||||
unic-langid-macros-impl-0.9.0 \ | unic-langid-macros-impl-0.9.0 \ | ||||
unic-ucd-category-0.9.0 \ | unic-ucd-category-0.9.0 \ | ||||
unic-ucd-version-0.9.0 \ | unic-ucd-version-0.9.0 \ | ||||
unicase-2.6.0 \ | unicase-2.6.0 \ | ||||
unicode-bidi-0.3.5 \ | unicode-bidi-0.3.7 \ | ||||
unicode-normalization-0.1.19 \ | unicode-normalization-0.1.19 \ | ||||
unicode-segmentation-1.8.0 \ | unicode-segmentation-1.9.0 \ | ||||
unicode-width-0.1.8 \ | unicode-width-0.1.9 \ | ||||
unicode-xid-0.2.2 \ | unicode-xid-0.2.2 \ | ||||
unindent-0.1.7 \ | unindent-0.1.8 \ | ||||
untrusted-0.7.1 \ | untrusted-0.7.1 \ | ||||
url-2.2.2 \ | url-2.2.2 \ | ||||
utf-8-0.7.6 \ | utf-8-0.7.6 \ | ||||
utf8-decode-1.0.1 \ | utf8-decode-1.0.1 \ | ||||
utime-0.3.1 \ | utime-0.3.1 \ | ||||
vcpkg-0.2.15 \ | vcpkg-0.2.15 \ | ||||
version_check-0.9.3 \ | version_check-0.9.4 \ | ||||
walkdir-2.3.2 \ | |||||
want-0.3.0 \ | want-0.3.0 \ | ||||
wasi-0.9.0+wasi-snapshot-preview1 \ | wasi-0.9.0+wasi-snapshot-preview1 \ | ||||
wasi-0.10.0+wasi-snapshot-preview1 \ | wasi-0.10.0+wasi-snapshot-preview1 \ | ||||
wasm-bindgen-0.2.75 \ | wasi-0.11.0+wasi-snapshot-preview1 \ | ||||
wasm-bindgen-backend-0.2.75 \ | wasm-bindgen-0.2.79 \ | ||||
wasm-bindgen-futures-0.4.25 \ | wasm-bindgen-backend-0.2.79 \ | ||||
wasm-bindgen-macro-0.2.75 \ | wasm-bindgen-futures-0.4.29 \ | ||||
wasm-bindgen-macro-support-0.2.75 \ | wasm-bindgen-macro-0.2.79 \ | ||||
wasm-bindgen-shared-0.2.75 \ | wasm-bindgen-macro-support-0.2.79 \ | ||||
web-sys-0.3.52 \ | wasm-bindgen-shared-0.2.79 \ | ||||
web-sys-0.3.56 \ | |||||
webpki-0.21.4 \ | webpki-0.21.4 \ | ||||
webpki-roots-0.21.1 \ | webpki-roots-0.21.1 \ | ||||
which-4.2.2 \ | which-4.2.4 \ | ||||
winapi-0.3.9 \ | winapi-0.3.9 \ | ||||
winapi-i686-pc-windows-gnu-0.4.0 \ | winapi-i686-pc-windows-gnu-0.4.0 \ | ||||
winapi-util-0.1.5 \ | winapi-util-0.1.5 \ | ||||
winapi-x86_64-pc-windows-gnu-0.4.0 \ | winapi-x86_64-pc-windows-gnu-0.4.0 \ | ||||
windows-sys-0.32.0 \ | |||||
windows_aarch64_msvc-0.32.0 \ | |||||
windows_i686_gnu-0.32.0 \ | |||||
windows_i686_msvc-0.32.0 \ | |||||
windows_x86_64_gnu-0.32.0 \ | |||||
windows_x86_64_msvc-0.32.0 \ | |||||
winreg-0.7.0 \ | winreg-0.7.0 \ | ||||
wyz-0.2.0 \ | xml5ever-0.16.2 \ | ||||
xml5ever-0.16.1 \ | |||||
zip-0.5.13 \ | zip-0.5.13 \ | ||||
zstd-0.10.0+zstd.1.5.2 \ | |||||
zstd-safe-4.1.4+zstd.1.5.2 \ | |||||
zstd-sys-1.6.3+zstd.1.5.2 \ | |||||
reqwest@git+https://github.com/ankitects/reqwest.git?rev=7591444614de02b658ddab125efba7b2bb4e2335\#7591444614de02b658ddab125efba7b2bb4e2335 \ | reqwest@git+https://github.com/ankitects/reqwest.git?rev=7591444614de02b658ddab125efba7b2bb4e2335\#7591444614de02b658ddab125efba7b2bb4e2335 \ | ||||
hyper-timeout@git+https://github.com/ankitects/hyper-timeout.git?rev=0cb6f7d14c62819e37cd221736f8b0555e823712\#0cb6f7d14c62819e37cd221736f8b0555e823712 \ | hyper-timeout@git+https://github.com/ankitects/hyper-timeout.git?rev=0cb6f7d14c62819e37cd221736f8b0555e823712\#0cb6f7d14c62819e37cd221736f8b0555e823712 \ | ||||
csv,csv-core@git+https://github.com/ankitects/rust-csv.git?rev=1c9d3aab6f79a7d815c69f925a46a4590c115f90\#1c9d3aab6f79a7d815c69f925a46a4590c115f90 \ | |||||
linkcheck@git+https://github.com/ankitects/linkcheck.git?rev=2f20798ce521cc594d510d4e417e76d5eac04d4b\#2f20798ce521cc594d510d4e417e76d5eac04d4b \ | linkcheck@git+https://github.com/ankitects/linkcheck.git?rev=2f20798ce521cc594d510d4e417e76d5eac04d4b\#2f20798ce521cc594d510d4e417e76d5eac04d4b \ | ||||
tokio-io-timeout@git+https://github.com/ankitects/tokio-io-timeout.git?rev=1ee0892217e9a76bba4bb369ec5fab8854935a3c\#1ee0892217e9a76bba4bb369ec5fab8854935a3c \ | tokio-io-timeout@git+https://github.com/ankitects/tokio-io-timeout.git?rev=1ee0892217e9a76bba4bb369ec5fab8854935a3c\#1ee0892217e9a76bba4bb369ec5fab8854935a3c \ | ||||
pct-str@git+https://github.com/timothee-haudebourg/pct-str.git?rev=4adccd8d4a222ab2672350a102f06ae832a0572d\#4adccd8d4a222ab2672350a102f06ae832a0572d | pct-str@git+https://github.com/timothee-haudebourg/pct-str.git?rev=4adccd8d4a222ab2672350a102f06ae832a0572d\#4adccd8d4a222ab2672350a102f06ae832a0572d | ||||
CARGO_CARGOTOML= ${WRKSRC}/pylib/rsbridge/Cargo.toml | CARGO_CARGOTOML= ${WRKSRC}/pylib/rsbridge/Cargo.toml | ||||
CARGO_BUILD= no | CARGO_BUILD= no | ||||
CARGO_INSTALL= no | CARGO_INSTALL= no | ||||
# BAZEL=1 is required otherwise ${WRKSRC}/rslib/build/main.rs produces a dummy | # BAZEL=1 is required otherwise ${WRKSRC}/rslib/build/main.rs produces a dummy | ||||
# buildinfo.txt that doesn't contain the actual build hash. | # buildinfo.txt that doesn't contain the actual build hash. | ||||
CARGO_ENV= BAZEL=1 \ | CARGO_ENV= BAZEL=1 \ | ||||
BUILDINFO=${_MY_LOCALREPO}/rust_output/buildinfo.txt \ | BUILDINFO=${_MY_LOCALREPO}/rust_output/buildinfo.txt \ | ||||
PYO3_PYTHON=${PYTHON_CMD} \ | PYO3_PYTHON=${PYTHON_CMD} \ | ||||
PROTO_TOP=${WRKSRC}/proto/.top_level \ | PROTO_TOP=${WRKSRC}/proto/.top_level \ | ||||
PROTOC=${LOCALBASE}/bin/protoc \ | PROTOC=${LOCALBASE}/bin/protoc \ | ||||
BACKEND_PROTO=${WRKSRC}/rslib/backend.proto \ | BACKEND_PROTO=${WRKSRC}/rslib/backend.proto \ | ||||
RSLIB_FTL_ROOT=${_MY_LOCALREPO}/ftlrslib/l10n.toml \ | RSLIB_FTL_ROOT=${WRKSRC_ftlrslib}/l10n.toml \ | ||||
EXTRA_FTL_ROOT=${_MY_LOCALREPO}/ftlextra/l10n.toml | EXTRA_FTL_ROOT=${WRKSRC_ftlextra}/l10n.toml | ||||
GO_TARGET= ./cmd/esbuild:esbuild | |||||
OPTIONS_DEFAULT= MPV | OPTIONS_DEFAULT= MPV | ||||
OPTIONS_GROUP= PLAYER | OPTIONS_GROUP= PLAYER | ||||
OPTIONS_GROUP_PLAYER= MPLAYER MPV | OPTIONS_GROUP_PLAYER= MPLAYER MPV | ||||
OPTIONS_SUB= yes | OPTIONS_SUB= yes | ||||
MPV_DESC= mpv media player support | MPV_DESC= mpv media player support | ||||
MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer | MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer | ||||
MPV_RUN_DEPENDS= mpv:multimedia/mpv | MPV_RUN_DEPENDS= mpv:multimedia/mpv | ||||
# Should contain the most recent commit that reflects ${DISTVERSION} and must | # 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 | # be exactly 8 digits otherwise the check for newer versions won't work as | ||||
# expected. | # expected. | ||||
_MY_BUILDHASH= dc80804a | _MY_BUILDHASH= b6a7760c | ||||
# Required version of esbuild that is pre-built. This is because the JS | |||||
# counterpart of esbuild, which is used by the NodeJS ruleset for Bazel, has a | |||||
# fixed version check for the binary version. | |||||
_MY_ESBUILDVER= v0.14.11 | |||||
# Path of the local bazel repositories | # Path of the local bazel repositories | ||||
_MY_LOCALREPO= ${WRKSRC}/local_repos | _MY_LOCALREPO= ${WRKSRC}/local_repos | ||||
# Path of cache that is used by www/yarn | # Path of caches that are used by www/npm and www/yarn | ||||
_MY_NPMCACHE= ${WRKDIR}/.npm | |||||
_MY_YARNCACHE= ${WRKDIR}/.yarn | _MY_YARNCACHE= ${WRKDIR}/.yarn | ||||
post-extract: | post-extract: | ||||
# Create a configuration file for bazel | # Create a configuration file for bazel | ||||
@${ECHO_CMD} "startup --batch" > ${WRKSRC}/user.bazelrc | @${ECHO_CMD} "startup --batch" > ${WRKSRC}/user.bazelrc | ||||
# Create local repositories which are used by bazel | # Create local repositories which are used by bazel | ||||
@${MKDIR} ${_MY_LOCALREPO} \ | @${MKDIR} ${_MY_LOCALREPO} \ | ||||
${_MY_LOCALREPO}/local_esbuild/bin \ | ${_MY_LOCALREPO}/local_esbuild/bin \ | ||||
${_MY_LOCALREPO}/local_node/node/bin \ | ${_MY_LOCALREPO}/local_node/node/bin \ | ||||
${_MY_LOCALREPO}/local_node/node/lib \ | ${_MY_LOCALREPO}/local_node/node/lib \ | ||||
${_MY_LOCALREPO}/local_node/yarn/bin \ | ${_MY_LOCALREPO}/local_node/yarn/bin \ | ||||
${_MY_LOCALREPO}/protoc_bin_freebsd/bin \ | ${_MY_LOCALREPO}/protoc_bin_freebsd/bin \ | ||||
${_MY_LOCALREPO}/pyqt5 \ | |||||
${_MY_LOCALREPO}/rust_output/librsbridge \ | ${_MY_LOCALREPO}/rust_output/librsbridge \ | ||||
${_MY_LOCALREPO}/rust_output/strings_json | ${_MY_LOCALREPO}/rust_output/strings_json | ||||
# Create empty WORKSPACE files in the top directory of each local | # Create empty WORKSPACE files in the top directory of each local | ||||
# repository | # repository | ||||
@${TOUCH} ${_MY_LOCALREPO}/local_esbuild/WORKSPACE \ | @${TOUCH} ${_MY_LOCALREPO}/local_esbuild/WORKSPACE \ | ||||
${_MY_LOCALREPO}/local_node/WORKSPACE \ | ${_MY_LOCALREPO}/local_node/WORKSPACE \ | ||||
${_MY_LOCALREPO}/protoc_bin_freebsd/WORKSPACE \ | ${_MY_LOCALREPO}/protoc_bin_freebsd/WORKSPACE | ||||
${_MY_LOCALREPO}/pyqt5/WORKSPACE \ | # Copy the bazel rules for NodeJS to the custom local repository | ||||
${_MY_LOCALREPO}/rust_output/WORKSPACE | |||||
# Copy the bazel rules for NodeJS and esbuild to the custom local repository | |||||
# as they need some patching | # as they need some patching | ||||
@${CP} -r ${WRKSRC_esbuildtc} ${_MY_LOCALREPO}/esbuild_toolchain | |||||
@${CP} -r ${WRKSRC_bzlrnodejs} ${_MY_LOCALREPO}/rules_nodejs | @${CP} -r ${WRKSRC_bzlrnodejs} ${_MY_LOCALREPO}/rules_nodejs | ||||
# Link the remaining bazel rules into the custom local repository as | # Link the remaining bazel rules into the custom local repository as | ||||
# they don't need to be patched | # they don't need to be patched | ||||
.for _dir in bzlskylib bzlrcc bzlrjava bzlrpip bzlrproto bzlrpython bzlrrust bzlrsass ftlextra ftlrslib | .for _dir in bzlskylib bzlrcc bzlrjava bzlrproto bzlrpython bzlrrust bzlrsass | ||||
@${RLN} ${WRKSRC_${_dir}} ${_MY_LOCALREPO}/${_dir:S/bzlr/rules_/} | @${RLN} ${WRKSRC_${_dir}} ${_MY_LOCALREPO}/${_dir:S/bzlr/rules_/} | ||||
.endfor | .endfor | ||||
# Prepare the Go environment for esbuild | |||||
@${MKDIR} ${WRKSRC_esbuild}/vendor/golang.org/x | |||||
@${RLN} ${WRKSRC_golang_sys} ${WRKSRC_esbuild}/vendor/golang.org/x/sys | |||||
# Copy custom BUILD.bazel files to the local repositories | # Copy custom BUILD.bazel files to the local repositories | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-local_esbuild \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-local_esbuild \ | ||||
${_MY_LOCALREPO}/local_esbuild/BUILD.bazel | ${_MY_LOCALREPO}/local_esbuild/BUILD.bazel | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-local_node \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-local_node \ | ||||
${_MY_LOCALREPO}/local_node/BUILD.bazel | ${_MY_LOCALREPO}/local_node/BUILD.bazel | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-protoc_bin_freebsd \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-protoc_bin_freebsd \ | ||||
${_MY_LOCALREPO}/protoc_bin_freebsd/BUILD.bazel | ${_MY_LOCALREPO}/protoc_bin_freebsd/BUILD.bazel | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-pyqt5 \ | |||||
${_MY_LOCALREPO}/pyqt5/BUILD.bazel | |||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-librsbridge \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-librsbridge \ | ||||
${_MY_LOCALREPO}/rust_output/librsbridge/BUILD.bazel | ${_MY_LOCALREPO}/rust_output/librsbridge/BUILD.bazel | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-strings_json \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-strings_json \ | ||||
${_MY_LOCALREPO}/rust_output/strings_json/BUILD.bazel | ${_MY_LOCALREPO}/rust_output/strings_json/BUILD.bazel | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-i18n ${WRKSRC_ftlrslib}/BUILD.bazel | |||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-i18n ${WRKSRC_ftlextra}/BUILD.bazel | |||||
# Move some files out of the way as they will be replaced by custom copies. | # Move some files out of the way as they will be replaced by custom copies. | ||||
@${MV} ${WRKSRC}/repos.bzl ${WRKSRC}/repos.bzl.dist | @${MV} ${WRKSRC}/repos.bzl ${WRKSRC}/repos.bzl.dist | ||||
@${MV} ${WRKSRC}/pip/pyqt5/defs.bzl ${WRKSRC}/pip/pyqt5/defs.bzl.dist | |||||
@${MV} ${WRKSRC}/pylib/rsbridge/BUILD.bazel ${WRKSRC}/pylib/rsbridge/BUILD.bazel.dist | @${MV} ${WRKSRC}/pylib/rsbridge/BUILD.bazel ${WRKSRC}/pylib/rsbridge/BUILD.bazel.dist | ||||
@${MV} ${WRKSRC}/rslib/i18n/BUILD.bazel ${WRKSRC}/rslib/i18n/BUILD.bazel.dist | @${MV} ${WRKSRC}/rslib/i18n/BUILD.bazel ${WRKSRC}/rslib/i18n/BUILD.bazel.dist | ||||
# Copy the replacement files | # Copy the replacement files | ||||
@${CP} ${FILESDIR}/bazel/repos.bzl ${WRKSRC}/ | @${CP} ${FILESDIR}/bazel/repos.bzl ${WRKSRC}/ | ||||
@${CP} ${FILESDIR}/bazel/pyqt5.bzl ${WRKSRC}/pip/pyqt5/defs.bzl | |||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-pylib-rsbridge \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-pylib-rsbridge \ | ||||
${WRKSRC}/pylib/rsbridge/BUILD.bazel | ${WRKSRC}/pylib/rsbridge/BUILD.bazel | ||||
@${CP} ${FILESDIR}/bazel/BUILD.bazel-rslib-i18n \ | @${CP} ${FILESDIR}/bazel/BUILD.bazel-rslib-i18n \ | ||||
${WRKSRC}/rslib/i18n/BUILD.bazel | ${WRKSRC}/rslib/i18n/BUILD.bazel | ||||
post-patch: | post-patch: | ||||
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ | @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ | ||||
${_MY_LOCALREPO}/rules_nodejs/internal/node/node_patches.js | ${_MY_LOCALREPO}/rules_nodejs/internal/node/node_patches.js | ||||
@${REINPLACE_CMD} -e 's|\@PREFIX\@|${PREFIX}|' \ | @${REINPLACE_CMD} -e 's|\@PREFIX\@|${PREFIX}|' \ | ||||
${WRKSRC}/qt/tools/runanki.system.in | ${WRKSRC}/qt/tools/runanki.system.in | ||||
@${REINPLACE_CMD} -e 's|%%_MY_BUILDHASH%%|${_MY_BUILDHASH}|' \ | @${REINPLACE_CMD} -e 's|%%_MY_BUILDHASH%%|${_MY_BUILDHASH}|' \ | ||||
${WRKSRC}/scripts/status.sh | ${WRKSRC}/tools/status.sh | ||||
@${REINPLACE_CMD} -e 's|%%_MY_LOCALREPO%%|${_MY_LOCALREPO}|g' \ | @${REINPLACE_CMD} -e 's|%%_MY_LOCALREPO%%|${_MY_LOCALREPO}|g' \ | ||||
${WRKSRC}/repos.bzl ${WRKSRC}/proto/protobuf.bzl \ | ${WRKSRC}/proto/protobuf.bzl \ | ||||
${_MY_LOCALREPO}/esbuild_toolchain/esbuild_repo.bzl | ${WRKSRC}/repos.bzl \ | ||||
${_MY_LOCALREPO}/rules_nodejs/toolchains/esbuild/esbuild_repositories.bzl | |||||
@${REINPLACE_CMD} -e 's|%%_MY_YARNCACHE%%|${_MY_YARNCACHE}|' \ | @${REINPLACE_CMD} -e 's|%%_MY_YARNCACHE%%|${_MY_YARNCACHE}|' \ | ||||
${_MY_LOCALREPO}/rules_nodejs/internal/npm_install/npm_install.bzl | ${_MY_LOCALREPO}/rules_nodejs/internal/npm_install/npm_install.bzl | ||||
pre-configure: | pre-configure: | ||||
# Link the binaries of Node, Protobuf and Yarn into the local bazel | # Link the binaries of Node, Protobuf and Yarn into the local bazel | ||||
# repositories to provide them during build. | # repositories to provide them during build. | ||||
${LN} -s ${LOCALBASE}/bin/protoc-gen-mypy ${WRKSRC}/pylib/tools/protoc-gen-mypy | |||||
${LN} -s ${LOCALBASE}/bin/esbuild ${_MY_LOCALREPO}/local_esbuild/bin/esbuild | |||||
${LN} -s ${LOCALBASE}/bin/node ${_MY_LOCALREPO}/local_node/node/bin/node | ${LN} -s ${LOCALBASE}/bin/node ${_MY_LOCALREPO}/local_node/node/bin/node | ||||
${LN} -s ${LOCALBASE}/lib/node_modules ${_MY_LOCALREPO}/local_node/node/lib/node_modules | |||||
${LN} -s ${LOCALBASE}/bin/yarn.js ${_MY_LOCALREPO}/local_node/yarn/bin/yarn.js | ${LN} -s ${LOCALBASE}/bin/yarn.js ${_MY_LOCALREPO}/local_node/yarn/bin/yarn.js | ||||
${LN} -s ${LOCALBASE}/bin/protoc ${_MY_LOCALREPO}/protoc_bin_freebsd/bin/protoc | ${LN} -s ${LOCALBASE}/bin/protoc ${_MY_LOCALREPO}/protoc_bin_freebsd/bin/protoc | ||||
# Overview of the build process | # Overview of the build process | ||||
# | # | ||||
# Steps 1 and 2 are built separately from the bazel build process. | # Steps 1 and 2 are built separately from the bazel build process. | ||||
# | # | ||||
# 1. rslib (Rust library, implictly built by step 2) | # 1. rslib (Rust library, implictly built by step 2) | ||||
# `-> produces ${_MY_LOCALREPO}/rust_output/strings_json/strings.json | # `-> produces ${_MY_LOCALREPO}/rust_output/strings_json/strings.json | ||||
# 2. pylib/rsbridge (Rust/Python bridge) | # 2. pylib/rsbridge (Rust/Python bridge) | ||||
# `-> produces ${_MY_LOCALREPO}/rust_output/librsbridge/librsbridge.so | # `-> produces ${_MY_LOCALREPO}/rust_output/librsbridge/librsbridge.so | ||||
# 3. The remaining components (Python, Qt5 and JS) are built by bazel | # 3. The remaining components (Python, Qt5 and JS) are built by bazel | ||||
pre-build: | pre-build: | ||||
${ECHO_MSG} "===> Building vendored esbuild binary with Go" | |||||
(cd ${WRKSRC_esbuild} ; \ | |||||
for t in ${GO_TARGET}; do \ | |||||
out=$$(${BASENAME} $$(${ECHO_CMD} $${t} | \ | |||||
${SED} -Ee 's/^[^:]*:([^:]+).*$$/\1/' -e 's/^\.$$/esbuild/')); \ | |||||
pkg=$$(${ECHO_CMD} $${t} | \ | |||||
${SED} -Ee 's/^([^:]*).*$$/\1/' -e 's/^esbuild$$/./'); \ | |||||
${ECHO_MSG} "===> Building $${out} from $${pkg}"; \ | |||||
${SETENV} ${MAKE_ENV} ${GO_ENV} GOPROXY=off ${GO_CMD} build ${GO_BUILDFLAGS} \ | |||||
-o ${GO_WRKDIR_BIN}/$${out} \ | |||||
$${pkg}; \ | |||||
done) | |||||
${CP} ${GO_WRKDIR_BIN}/esbuild ${_MY_LOCALREPO}/local_esbuild/bin/ | |||||
${ECHO_MSG} "===> Building library with Rust" | |||||
# Generate buildinfo.txt which is used via BUILDINFO in ${CARGO_ENV} during | # Generate buildinfo.txt which is used via BUILDINFO in ${CARGO_ENV} during | ||||
# compilation. | # compilation. | ||||
${ECHO_CMD} -e "STABLE_VERSION ${DISTVERSION}\nSTABLE_BUILDHASH ${_MY_BUILDHASH}" >> ${_MY_LOCALREPO}/rust_output/buildinfo.txt | ${ECHO_CMD} -e "STABLE_VERSION ${DISTVERSION}\nSTABLE_BUILDHASH ${_MY_BUILDHASH}" >> ${_MY_LOCALREPO}/rust_output/buildinfo.txt | ||||
${CARGO_CARGO_RUN} build \ | ${CARGO_CARGO_RUN} build \ | ||||
--manifest-path ${CARGO_CARGOTOML} \ | --manifest-path ${CARGO_CARGOTOML} \ | ||||
--verbose \ | --verbose \ | ||||
${CARGO_BUILD_ARGS} | ${CARGO_BUILD_ARGS} | ||||
# These files are required for the remaining build process via bazel so copy | # These files are required for the remaining build process via bazel so copy | ||||
# them the local repository. | # them the local repository. | ||||
${CP} `${FIND} ${CARGO_TARGET_DIR} -name "librsbridge.so"` ${_MY_LOCALREPO}/rust_output/librsbridge/ | ${CP} `${FIND} ${CARGO_TARGET_DIR} -name "librsbridge.so"` ${_MY_LOCALREPO}/rust_output/librsbridge/ | ||||
${CP} `${FIND} ${CARGO_TARGET_DIR} -name "strings.json"` ${_MY_LOCALREPO}/rust_output/strings_json/ | ${CP} `${FIND} ${CARGO_TARGET_DIR} -name "strings.json"` ${_MY_LOCALREPO}/rust_output/strings_json/ | ||||
do-build: | do-build: | ||||
# Limit bazel jobs to 1 due random build failures while compiling TS files | # Limit bazel jobs to 1 due random build failures while compiling TS files | ||||
# via "tsc". | # via "tsc". | ||||
cd ${WRKSRC} && \ | cd ${WRKSRC} && \ | ||||
bazel --output_user_root="${WRKDIR}/.bazel" build \ | bazel --output_user_root="${WRKDIR}/.bazel" build \ | ||||
--action_env=npm_config_cache="${_MY_NPMCACHE}" \ | |||||
--action_env=npm_config_offline="true" \ | |||||
--action_env=PYO3_PYTHON="${PYTHON_CMD}" \ | |||||
--action_env=PYTHON_SITE_PACKAGES="${PYTHON_SITELIBDIR}" \ | --action_env=PYTHON_SITE_PACKAGES="${PYTHON_SITELIBDIR}" \ | ||||
--action_env=PYTHON_SYS_EXECUTABLE="${PYTHON_CMD}" \ | --action_env=PYTHON_SYS_EXECUTABLE="${PYTHON_CMD}" \ | ||||
--color=no \ | |||||
--compilation_mode opt \ | --compilation_mode opt \ | ||||
--jobs 1 \ | --config opt \ | ||||
--jobs=1 \ | |||||
--subcommands \ | --subcommands \ | ||||
dist | --show_progress_rate_limit=-1 \ | ||||
wheels | |||||
post-build: | post-build: | ||||
${TAR} -xf `${FIND} ${WRKDIR}/.bazel -name "dist.tar"` -C ${WRKSRC} | ${MKDIR} ${WRKSRC}/bazel-dist | ||||
${TAR} -xf `${FIND} ${WRKDIR}/.bazel -name "wheels.tar"` -C ${WRKSRC}/bazel-dist | |||||
cd ${WRKSRC}/bazel-dist && \ | cd ${WRKSRC}/bazel-dist && \ | ||||
${UNZIP_NATIVE_CMD} anki-${DISTVERSION}-*.whl && \ | ${UNZIP_NATIVE_CMD} anki-${DISTVERSION}-*.whl && \ | ||||
${UNZIP_NATIVE_CMD} aqt-${DISTVERSION}-*.whl | ${UNZIP_NATIVE_CMD} aqt-${DISTVERSION}-*.whl | ||||
# Compile Anki's Python libary (pylib) and Qt5 library (aqt) to prepare | # Compile Anki's Python libary (pylib) and Qt5 library (aqt) to prepare | ||||
# them for installation | # them for installation | ||||
${PYTHON_CMD} -m compileall ${WRKSRC}/bazel-dist/anki | ${PYTHON_CMD} -m compileall ${WRKSRC}/bazel-dist/anki | ||||
${PYTHON_CMD} -O -m compileall ${WRKSRC}/bazel-dist/anki | ${PYTHON_CMD} -O -m compileall ${WRKSRC}/bazel-dist/anki | ||||
${PYTHON_CMD} -m compileall ${WRKSRC}/bazel-dist/aqt | ${PYTHON_CMD} -m compileall ${WRKSRC}/bazel-dist/aqt | ||||
${PYTHON_CMD} -O -m compileall ${WRKSRC}/bazel-dist/aqt | ${PYTHON_CMD} -O -m compileall ${WRKSRC}/bazel-dist/aqt | ||||
do-install: | do-install: | ||||
${MKDIR} ${STAGEDIR}${DATADIR}/anki \ | ${MKDIR} ${STAGEDIR}${DATADIR}/anki \ | ||||
${STAGEDIR}${DATADIR}/aqt \ | ${STAGEDIR}${DATADIR}/aqt \ | ||||
${STAGEDIR}${PREFIX}/share/pixmaps \ | ${STAGEDIR}${PREFIX}/share/pixmaps \ | ||||
${STAGEDIR}${PREFIX}/share/applications | ${STAGEDIR}${PREFIX}/share/applications | ||||
cd ${WRKSRC}/bazel-dist/ \ | cd ${WRKSRC}/bazel-dist/ \ | ||||
&& ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \ | && ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \ | ||||
&& ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" | && ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" | ||||
cd ${WRKSRC}/qt/linux \ | cd ${WRKSRC}/qt/bundle/lin \ | ||||
&& ${INSTALL_DATA} anki.xpm anki.png ${STAGEDIR}${PREFIX}/share/pixmaps \ | && ${INSTALL_DATA} anki.xpm anki.png ${STAGEDIR}${PREFIX}/share/pixmaps \ | ||||
&& ${INSTALL_DATA} anki.desktop ${STAGEDIR}${PREFIX}/share/applications \ | && ${INSTALL_DATA} anki.desktop ${STAGEDIR}${PREFIX}/share/applications \ | ||||
&& ${INSTALL_MAN} anki.1 ${STAGEDIR}${MANPREFIX}/man/man1 | && ${INSTALL_MAN} anki.1 ${STAGEDIR}${MANPREFIX}/man/man1 | ||||
cd ${WRKSRC}/qt/tools \ | cd ${WRKSRC}/qt/tools \ | ||||
&& ${INSTALL_SCRIPT} runanki.system.in ${STAGEDIR}${PREFIX}/bin/anki | && ${INSTALL_SCRIPT} runanki.system.in ${STAGEDIR}${PREFIX}/bin/anki | ||||
${STRIP_CMD} ${STAGEDIR}${DATADIR}/anki/_backend/rsbridge.so | ${STRIP_CMD} ${STAGEDIR}${DATADIR}/anki/_backend/rsbridge.so | ||||
# Helper target to make the generation of the npm cache easier (only required for esbuild-npm) | |||||
make-npm-cache: patch | |||||
@cd ${WRKDIR} && ${RM} -r ${_MY_NPMCACHE} | |||||
@cd ${WRKSRC_bzlrnodejs}/toolchains/esbuild/ \ | |||||
&& ${SETENV} HOME=${WRKDIR} ${LOCALBASE}/bin/npm install --no-optional --ignore-scripts | |||||
@cd ${_MY_NPMCACHE} \ | |||||
&& ${RM} -r _locks anonymous-cli-metrics.json | |||||
@cd ${WRKDIR} \ | |||||
&& ${TAR} -czf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \ | |||||
&& ${ECHO_CMD} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}" | |||||
# Helper target to make the generation of the yarn cache easier | # Helper target to make the generation of the yarn cache easier | ||||
make-yarn-cache: | make-yarn-cache: patch | ||||
# Run "make extract" before executing this target | |||||
@${RM} -r ${_MY_YARNCACHE} | @${RM} -r ${_MY_YARNCACHE} | ||||
@cd ${WRKSRC}/ts \ | @cd ${WRKSRC}/ts \ | ||||
&& ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install | && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install | ||||
@cd ${WRKSRC_bzlrnodejs}/packages/labs/grpc_web/ \ | @cd ${WRKSRC_bzlrnodejs}/packages/labs/grpc_web/ \ | ||||
&& ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install | && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install | ||||
@cd ${WRKSRC_bzlrsass}/sass \ | @cd ${WRKSRC_bzlrsass}/sass \ | ||||
&& ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install | && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install | ||||
@cd ${WRKDIR} \ | @cd ${WRKDIR} \ | ||||
&& ${TAR} -czf ${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX} .yarn \ | && ${TAR} -czf ${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX} .yarn \ | ||||
&& ${ECHO_CMD} "Please upload the file ${WRKDIR}/${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}" | && ${ECHO_CMD} "Please upload the file ${WRKDIR}/${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}" | ||||
.include <bsd.port.mk> | .include <bsd.port.mk> |