freebsd-ports/games/anki/Makefile
Tobias C. Berner d56127bdfc games: remove 'Created by' lines
A big Thank You to the original contributors of these ports:

  *  <benlutz@datacomm.ch>
  *  <janos.mohacsi@bsd.hu>
  *  Aaron Baugher
  *  Aaron Dalton <aaron@FreeBSD.org>
  *  Aaron Dalton <aaron@daltons.ca>
  *  Aaron VonderHaar <avh4@usa.net>
  *  Aaron Zauner <az_mail@gmx.at>
  *  Adam Kranzel (adam@alameda.edu)
  *  Adam Weinberger <adamw@FreeBSD.org>
  *  Ade Lovett <ade@FreeBSD.org>
  *  Akinori MUSHA aka knu <knu@idaemons.org>
  *  Alejandro Pulver <alejandro@varnet.biz>
  *  Alejandro Pulver <alepulver@FreeBSD.org>
  *  Alex Dupre <ale@FreeBSD.org>
  *  Alex Trull <freebsd.alex@trull.org>
  *  Alexander G. Chetirbock <bock@bock.nnov.ru>
  *  Alexander Langer <alex@FreeBSD.org>
  *  Alexander Logvinov <ports@logvinov.com>
  *  Alexander Vereeken <Alexander88207@protonmail.com>
  *  Alexander Yerenkow <yerenkow@gmail.com>
  *  Alexey Dokuchaev <danfe@FreeBSD.org>
  *  Alexey Dokuchaev <danfe@regency.nsu.ru>
  *  Alfonso S. Siciliano <alfix86@gmail.com>
  *  Alonso Cardenas Marquez <acm@FreeBSD.org>
  *  Amar Takhar <verm@drunkmonk.net>
  *  Andreas Klemm <andreas@klemm.gtn.com>
  *  Andrej Zverev
  *  Andrew Pantyukhin <infofarmer@FreeBSD.org>
  *  Andrey Zakhvatov
  *  Andrey Zakhvatov <andy@icc.surw.chel.su>
  *  Andy Kosela <akosela@andykosela.com>
  *  Anton Yudin <toha@FreeBSD.org>
  *  Arjan van Leeuwen <avleeuwen@piwebs.com>
  *  Ayumi M <ayu@commun.jp>
  *  Bartosz Fabianowski <freebsd@chillt.de>
  *  Beech Rintoul <beech@FreeBSD.org>
  *  Ben Smithurst <ben@scientia.demon.co.uk>
  *  Bob Bomar <bob@fly.homeunix.org>
  *  Brian Buchanan <brian@CSUA.Berkeley.EDU>
  *  Ceri Davies (ceri@FreeBSD.org)
  *  Chris D. Faulhaber <jedgar@FreeBSD.org>
  *  Christian Brueffer <chris@unixpages.org>
  *  Christoph Mallon <christoph.mallon@gmx.de>
  *  Christopher Preston <rbg@gayteenresource.org>
  *  Dag-Erling C. Smørgrav <des@FreeBSD.org>
  *  Daniel J. O'Connor <darius@dons.net.au>
  *  Daniel O'Connor <darius@dons.net.au>
  *  Daniel Roethlisberger <daniel@roe.ch>
  *  Danilo Egea Gondolfo <danilo@FreeBSD.org>
  *  Dave Chapeskie <dchapes@ddm.on.ca>
  *  Dave Walton <dwalton@acm.org>
  *  David Siebörger <drs@rucus.ru.ac.za>
  *  Dmitry Marakasov <amdmi3@FreeBSD.org>
  *  Dom Mitchell <dom@happygiraffe.net>
  *  Dominic Fandrey
  *  Dominic Fandrey <kamikaze@bsdforen.de>
  *  Don Croyle <croyle@gelemna.org>
  *  Donald Burr <dburr@FreeBSD.org>
  *  Eckart "Isegrim" Hofmann
  *  Ed Schouten <ed@fxq.nl>
  *  Edwin Groothuis
  *  Edwin Groothuis <edwin@mavetju.org>
  *  Edwin Mons
  *  Emanuel Haupt <ehaupt@FreeBSD.org>
  *  Emanuel Haupt <ehaupt@critical.ch>
  *  Emmanuel Vadot <manu@FreeBSD.org>
  *  Eric Anholt
  *  Eric Anholt <anholt@FreeBSD.org>
  *  Erik Olson <erikolson@olsonexpress.com>
  *  Filippo Natali <filippo@widestore.net>
  *  Frank Laszlo <laszlof@freebsdmatrix.net>
  *  Frederic Culot <culot@FreeBSD.org>
  *  Frederic Culot <frederic@culot.org>
  *  Fredrik Carlsson <fredrik@wasadata.com>
  *  FreeBSD GNOME Team <gnome@FreeBSD.org>
  *  FreeBSD GNOME Team <gnome@freebsd.org>
  *  Ganael Laplanche <ganael.laplanche@martymac.org>
  *  Gautam Mani <execve@gmail.com>
  *  Gea-Suan Lin <gslin@gslin.org>
  *  Ginzburg Oleg
  *  GreenDog <fiziologus@gmail.com>
  *  Gustavo Perez Querol <gustau.perez@gmail.com>
  *  Göran Runfeldt <goranrunfeldt@home.se>
  *  HIYAMA Takeshi <th@cis.ibaraki.ac.jp>
  *  HOTARU-YA <hotaru@tail.net>
  *  Holger Lamm <holger@eit.uni-kl.de>
  *  Igor Pokrovsky <ip@doom.homeunix.org>
  *  Igor Pokrovsky <tiamat@comset.net>
  *  Igor Pokrovsky <tiamat@telegraph.spb.ru>
  *  Ilya A. Arhipov <admin@gorodkirov.ru>
  *  Ilya A. Arkhipov <rum1cro@yandex.ru>
  *  James FitzGibbon <jfitz@FreeBSD.org>
  *  James Howard <howardj@wam.umd.edu>
  *  Jan Jungnickel <jan@jungnickel.com>
  *  Jan Stocker <Jan.Stocker@t-online.de>
  *  Janni
  *  Janos Mohacsi <janos.mohacsi@bsd.hu>
  *  Jason Helfman <jgh@FreeBSD.org>
  *  Jean-Marc Zucconi <jmz@FreeBSD.org>
  *  Jean-Yves Lefort <jylefort@FreeBSD.org>
  *  Jean-Yves Lefort <jylefort@brutele.be>
  *  Jeremy <karlj000@unbc.ca>
  *  Jeremy Chadwick <yoshi@parodius.com>
  *  Jesse Smith <jessefrgsmith@yahoo.ca>
  *  Jim Mock <jim@FreeBSD.org>
  *  Joe Marcus Clarke <marcus@FreeBSD.org>
  *  Joel Sutton <jsutton@bbcon.com.au>
  *  Joel Sutton <sutton@aardvark.apana.org.au>
  *  Jordan DeLong <fracture@allusion.net>
  *  Jordan Irwin <antumdeluge@gmail.com>
  *  Jose Alonso Cardenas Marquez <acardenas@bsd.org.pe>
  *  Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
  *  Josh Tolbert
  *  Julian Assange
  *  Juraj Lutter <otis@sk.freebsd.org>
  *  Kalten <kalten@gmx.at>
  *  Karsten Brandt <kbrandt@sdf-eu.org>
  *  Kevin Zheng <kevinz5000@gmail.com>
  *  Kirill Ponomarew <krion@FreeBSD.org>
  *  Kirill Ponomarew <ponomarew@oberon.net>
  *  Klaus Goger <klaus.goger@reflex.at>
  *  Koop Mast <kwm@FreeBSD.org>
  *  Kris Kennaway <kris@FreeBSD.org>
  *  Kuang-che Wu <kcwu@csie.org>
  *  Kyle Evans <kevans@FreeBSD.org>
  *  Lars Engels <lars.engels@0x20.net>
  *  Lars Thegler <lars@thegler.dk>
  *  Leland Wang <llwang@infor.org>
  *  Loren M. Lang <lorenl@alzatex.com>
  *  Mahdi Mokhtari <mokhi64@gmail.com>
  *  Makoto YAMAKURA <makoto@pinpott.spnet.ne.jp>
  *  Marc van Woerkom <3d@FreeBSD.org>
  *  Mark Huizer <xaa+ports@timewasters.nl>
  *  Mark Murray <markm@FreeBSD.org>
  *  Mark Pulford <mark@kyne.com.au>
  *  Martin Kropfinger
  *  Martin Tournoij <carpetsmoker@xs4all.nl>
  *  Martin Tournoij <martin@arp242.net>
  *  Martin Wilke <miwi@FreeBSD.org>
  *  Mateusz Piotrowski <0mp@FreeBSD.org>
  *  Matthew Gibson <mdg583@hotmail.com>
  *  Matthew Hunt <mph@FreeBSD.org>
  *  Matthew Hunt <mph@pobox.com>
  *  Max Khon <fjoe@FreeBSD.org>
  *  Maxim Sobolev <sobomax@FreeBSD.org>
  *  Maxime Henrion <mux@FreeBSD.org>
  *  Michael Alyn Miller <malyn@strangeGizmo.com>
  *  Michael Johnson <ahze@FreeBSD.org>
  *  Michael L. Hostbaek (mich@freebsdcluster.org)
  *  Michael Nottebrock <lofi@FreeBSD.org>
  *  Michael Williams <ports@mgwsoftware.com>
  *  Miguel Mendez <flynn@energyhq.es.eu.org>
  *  Neil Blakey-Milner <nbm@FreeBSD.org>
  *  Nick Johnson <freebsd@spatula.net>
  *  Nicklas Johnson <freebsd@spatula.net>
  *  Nicola Vitale <nivit@FreeBSD.org>
  *  Nik Clayton <nik@FreeBSD.org>
  *  Nikolai Lifanov <lifanov@mail.lifanov.com>
  *  Oleg Alexeenkov
  *  Oliver Lehmann <lehmann@ans-netz.de>
  *  Patrick Li <pat@FreeBSD.org>
  *  Patrick Li <pat@databits.net>
  *  Pav Lucistnik <pav@FreeBSD.org>
  *  Pawel Pekala <pawel@FreeBSD.org>
  *  Peter Dunning
  *  Peter Pentchev <roam@FreeBSD.org>
  *  Philippe Audeoud <jadawin@tuxaco.net>
  *  Pierre-Paul Lavoie <ppl@nbnet.nb.ca>
  *  Piotr Kubaj <pkubaj@FreeBSD.org>
  *  Piotr Kubaj <pkubaj@anongoth.pl>
  *  Radim Kolar
  *  Ralf Becker <ralf@akk.org>
  *  Raymond Pasco <ray@cultofray.net>
  *  Robert Gogolok <gogo@cs.uni-sb.de>
  *  Rozhuk Ivan <rozhuk.im@gmail.com>
  *  Rusmir Dusko <nemysis@FreeBSD.org>
  *  Ryo MIYAMOTO
  *  Sakai Hiroaki <sakai@miya.ee.kagu.sut.ac.jp>
  *  Sakai Hiroaki <sakai@seki.ee.kagu.sut.ac.jp>
  *  Satoshi Asami <asami@FreeBSD.org>
  *  Sean Bruno
  *  Sean Farley <sean-freebsd@farley.org>
  *  Seiichirou Hiraoka
  *  Seiichirou Hiraoka <flathill@flathill.gr.jp>
  *  Sergey Akifyev
  *  Shaun Amott <shaun@inerd.com>
  *  Shinya Esu <esu@yk.rim.or.jp>
  *  Simon Barner <barner@gmx.de>
  *  Stas Timokhin <devel@stasyan.com>
  *  Stas Timokhin <stast@bsdportal.ru>
  *  Stefan Eggers <seggers@semyam.dinoco.de>
  *  Stefan Esser <se@FreeBSD.org>
  *  Stefan Farfeleder <e0026813@stud3.tuwien.ac.at>
  *  Stefan Jahn <stefan.jahn@nemesis-sektor.de>
  *  Stefan Zehl <sec@42.org>
  *  Stephen Hurd <shurd@FreeBSD.org>
  *  Steve Wills <swills@FreeBSD.org>
  *  Steven H. Samorodin (samorodi@NUXI.com)
  *  Steven Wallace <swallace@FreeBSD.org>
  *  Sugimoto Sadahiro <ixtl@utmc.or.jp>
  *  Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
  *  Sven Moeller <smoeller@nichthelfer.de>
  *  TAKAHASHI Kaoru <kaoru@kaisei.org>
  *  TAKATSU Tomonari <tota@FreeBSD.org>
  *  Tatsuya Kuidoh <cdr@ga.xdsl.ne.jp>
  *  Thomas Gellekum <tg@FreeBSD.org>
  *  Thomas Vogt <thomas.vogt@bsdunix.ch>
  *  Tobias Gion
  *  Tobias Rehbein <tobias.rehbein@web.de>
  *  Toru YANO <toru@s-fine.co.jp>
  *  Travis Poppe <tlp@liquidx.org>
  *  UMENO Takashi
  *  UMENO Takashi <umeno@rr.iij4u.or.jp>
  *  Vanilla I. Shu <vanilla@MinJe.com.TW>
  *  Vasily Postnicov <shamaz.mazum@gmail.com>
  *  Vladimir Kondratiev <wulf@cicgroup.ru>
  *  Will Andrews <andrews@technologist.com>
  *  Wouter Reckman <gennerate@zonnet.nl>
  *  Ying-Chieh Liao <ijliao@FreeBSD.org>
  *  Yinghong Liu <relaxbsd@gmail.com>
  *  Yinghong.Liu <relaxbsd@gmail.com>
  *  Yonatan <onatan@gmail.com>
  *  Yuichi Narahara
  *  Yukihiro Nakai <Nakai@Mlab.t.u-tokyo.ac.jp>
  *  Yukihiro Nakai <nakai@FreeBSD.org>
  *  Yukihiro Nakai <nakai@mlab.t.u-tokyo.ac.jp>
  *  Yuri Victorovich <yuri@rawbw.com>
  *  aaron@FreeBSD.org
  *  ada@bsd.org
  *  alepulver
  *  arved
  *  asami
  *  ayu <ayunyan@gmail.com>
  *  benlutz@datacomm.ch
  *  buratello@easy.com
  *  chinsan
  *  chinsan <chinsan.tw@gmail.com>
  *  chris_pressey@yahoo.ca
  *  driedfruit
  *  edwin@mavetju.org
  *  eivind
  *  elfrink@introcom.nl
  *  erich@FreeBSD.org
  *  ericyu@mail2000.com.tw
  *  glewis@FreeBSD.org
  *  gmarco@giovannelli.it
  *  gurkan@phys.ethz.ch
  *  ijliao
  *  issei <issei@jp.FreeBSD.org>
  *  jamie
  *  janek
  *  janos.mohacsi@bsd.hu
  *  jkh
  *  jmacd
  *  jmz
  *  joerg
  *  joerg@FreeBSD.org
  *  johans
  *  johnh@isi.edu
  *  jseger@scds.com
  *  krion@FreeBSD.org
  *  kris@FreeBSD.org
  *  lightside <lightside@gmx.com>
  *  loader <loader@freebsdmall.com>
  *  marina@surferz.net
  *  markand
  *  markm
  *  mdodd
  *  mek
  *  michael johnson <ahze@ahze.net>
  *  minter@lunenburg.org
  *  nbm
  *  neuroworker@gmail.com
  *  nox@jelal.kn-bremen.de
  *  pat@databits.net
  *  petef@FreeBSD.org
  *  pgs (original)
  *  proff
  *  pypt
  *  refugee
  *  roam@FreeBSD.org
  *  se
  *  searle
  *  sec@42.org
  *  simonm@dcs.gla.ac.uk
  *  steve farrell
  *  swallace
  *  thierry@pompo.net
  *  tmartin@andrew.cmu.edu
  *  verm@drunkmonk.net
  *  will
  *  xaa@stack.nl

With hat:	portmgr
2022-07-20 16:21:58 +02:00

595 lines
19 KiB
Makefile

PORTNAME= anki
DISTVERSION= 2.1.49
PORTREVISION= 3
# Don't forget to update ${_MY_BUILDHASH} if DISTVERSION changes
CATEGORIES= games education python
MASTER_SITES= LOCAL/kai/:yarncache
DISTFILES= anki-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}:yarncache
MAINTAINER= kai@FreeBSD.org
COMMENT= Flashcard trainer with spaced repetition
LICENSE= AGPLv3+
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_REASON= the bazel build framework supports only 64-bit systems.
BUILD_DEPENDS= bash:shells/bash \
bazel:devel/bazel \
esbuild:devel/esbuild \
protoc:devel/protobuf \
yarn:www/yarn \
${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}stringcase>0:devel/py-stringcase@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}fluent>0:devel/py-fluent@${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} \
${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}send2trash>0:deskutils/py-send2trash@${PY_FLAVOR} \
${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}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}stringcase>0:devel/py-stringcase@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}waitress>0:www/py-waitress@${PY_FLAVOR}
# USES=ssl is required for the compilation of the Rust code
USES= cargo desktop-file-utils pyqt:5 python:3.8+ shebangfix ssl
USE_GITHUB= yes
GH_ACCOUNT= ankitects
# Translation files
GH_TUPLE= ankitects:anki-core-i18n:56d46d6:ftlrslib \
ankitects:anki-desktop-ftl:5359f84:ftlextra
# Bazel Skylib framework and sets of bazel rules
GH_TUPLE+= bazelbuild:bazel-skylib:e59b620:bzlskylib \
bazelbuild:rules_cc:40548a2:bzlrcc \
bazelbuild:rules_java:c13e3ea:bzlrjava \
bazelbuild:rules_nodejs:2d02e82:bzlrnodejs \
bazelbuild:rules_proto:f7a30f6:bzlrproto \
ankitects:esbuild_toolchain:f942aa9:esbuildtc \
ankitects:rules_pip:fb02cb7:bzlrpip \
ankitects:rules_python:3927c9b:bzlrpython \
ankitects:rules_rust:f66001a:bzlrrust \
ankitects:rules_sass:275ace7:bzlrsass
USE_PYQT= pyqt5 sip webengine
SHEBANG_FILES= qt/tools/runanki.system.in
CARGO_CRATES= Inflector-0.11.4 \
adler-1.0.2 \
ahash-0.7.4 \
aho-corasick-0.7.18 \
ammonia-3.1.2 \
anyhow-1.0.42 \
arc-swap-1.3.0 \
arrayref-0.3.6 \
arrayvec-0.4.12 \
arrayvec-0.5.2 \
askama-0.10.5 \
askama_derive-0.10.5 \
askama_escape-0.10.1 \
askama_shared-0.11.1 \
async-trait-0.1.51 \
atty-0.2.14 \
autocfg-1.0.1 \
base64-0.13.0 \
bitflags-1.2.1 \
bitvec-0.19.5 \
blake3-0.3.8 \
bumpalo-3.7.0 \
byteorder-1.4.3 \
bytes-1.0.1 \
cc-1.0.69 \
cfg-if-0.1.10 \
cfg-if-1.0.0 \
chrono-0.4.19 \
coarsetime-0.1.19 \
codespan-0.11.1 \
codespan-reporting-0.11.1 \
constant_time_eq-0.1.5 \
convert_case-0.4.0 \
core-foundation-0.9.1 \
core-foundation-sys-0.8.2 \
crc32fast-1.2.1 \
crossbeam-channel-0.5.1 \
crossbeam-utils-0.8.5 \
crypto-mac-0.8.0 \
cssparser-0.27.2 \
cssparser-macros-0.6.0 \
ctor-0.1.20 \
derivative-2.2.0 \
derive_more-0.99.16 \
digest-0.9.0 \
dirs-2.0.2 \
dirs-sys-0.3.6 \
dtoa-0.4.8 \
dtoa-short-0.3.3 \
dunce-1.0.2 \
either-1.6.1 \
encoding_rs-0.8.28 \
env_logger-0.8.4 \
fallible-iterator-0.2.0 \
fallible-streaming-iterator-0.1.9 \
fixedbitset-0.2.0 \
flate2-1.0.20 \
fluent-0.15.0 \
fluent-bundle-0.15.1 \
fluent-langneg-0.13.0 \
fluent-syntax-0.11.0 \
fnv-1.0.7 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
form_urlencoded-1.0.1 \
funty-1.1.0 \
futf-0.1.4 \
futures-0.3.16 \
futures-channel-0.3.16 \
futures-core-0.3.16 \
futures-executor-0.3.16 \
futures-io-0.3.16 \
futures-macro-0.3.16 \
futures-sink-0.3.16 \
futures-task-0.3.16 \
futures-util-0.3.16 \
fxhash-0.2.1 \
generic-array-0.14.4 \
getopts-0.2.21 \
getrandom-0.1.16 \
getrandom-0.2.3 \
ghost-0.1.2 \
h2-0.3.3 \
hashbrown-0.11.2 \
hashlink-0.7.0 \
heck-0.3.3 \
hermit-abi-0.1.19 \
hex-0.4.3 \
html5ever-0.25.1 \
htmlescape-0.3.1 \
http-0.2.4 \
http-body-0.4.2 \
httparse-1.4.1 \
httpdate-1.0.1 \
humansize-1.1.1 \
humantime-2.1.0 \
hyper-0.14.11 \
hyper-rustls-0.22.1 \
hyper-tls-0.5.0 \
idna-0.2.3 \
indexmap-1.7.0 \
indoc-0.3.6 \
indoc-impl-0.3.6 \
inflections-1.1.1 \
instant-0.1.10 \
intl-memoizer-0.5.1 \
intl_pluralrules-7.0.1 \
inventory-0.1.10 \
inventory-impl-0.1.10 \
ipnet-2.3.1 \
itertools-0.9.0 \
itertools-0.10.1 \
itoa-0.4.7 \
js-sys-0.3.52 \
kuchiki-0.8.1 \
lazy_static-1.4.0 \
lexical-core-0.7.6 \
libc-0.2.98 \
libsqlite3-sys-0.22.2 \
linkify-0.5.0 \
lock_api-0.4.4 \
log-0.4.14 \
mac-0.1.1 \
maplit-1.0.2 \
markup5ever-0.10.1 \
markup5ever_rcdom-0.1.0 \
matches-0.1.8 \
memchr-2.4.0 \
mime-0.3.16 \
mime_guess-2.0.3 \
miniz_oxide-0.4.4 \
mio-0.7.13 \
miow-0.3.7 \
multimap-0.8.3 \
native-tls-0.2.7 \
new_debug_unreachable-1.0.4 \
nodrop-0.1.14 \
nom-6.1.2 \
nom-7.0.0-alpha1 \
ntapi-0.3.6 \
num-format-0.4.0 \
num-integer-0.1.44 \
num-traits-0.2.14 \
num_cpus-1.13.0 \
num_enum-0.5.2 \
num_enum_derive-0.5.2 \
once_cell-1.8.0 \
openssl-0.10.35 \
openssl-probe-0.1.4 \
openssl-sys-0.9.65 \
ouroboros-0.9.5 \
ouroboros_macro-0.9.5 \
parking_lot-0.11.1 \
parking_lot_core-0.8.3 \
paste-0.1.18 \
paste-impl-0.1.18 \
percent-encoding-2.1.0 \
pest-2.1.3 \
petgraph-0.5.1 \
phf-0.8.0 \
phf-0.9.0 \
phf_codegen-0.8.0 \
phf_generator-0.8.0 \
phf_generator-0.9.0 \
phf_macros-0.8.0 \
phf_macros-0.9.0 \
phf_shared-0.8.0 \
phf_shared-0.9.0 \
pin-project-1.0.8 \
pin-project-internal-1.0.8 \
pin-project-lite-0.2.7 \
pin-utils-0.1.0 \
pkg-config-0.3.19 \
ppv-lite86-0.2.10 \
precomputed-hash-0.1.1 \
proc-macro-crate-1.0.0 \
proc-macro-error-1.0.4 \
proc-macro-error-attr-1.0.4 \
proc-macro-hack-0.5.19 \
proc-macro-nested-0.1.6 \
proc-macro2-1.0.28 \
prost-0.7.0 \
prost-build-0.7.0 \
prost-derive-0.7.0 \
prost-types-0.7.0 \
pulldown-cmark-0.8.0 \
pyo3-0.13.2 \
pyo3-macros-0.13.2 \
pyo3-macros-backend-0.13.2 \
quote-1.0.9 \
radium-0.5.3 \
rand-0.7.3 \
rand-0.8.4 \
rand_chacha-0.2.2 \
rand_chacha-0.3.1 \
rand_core-0.5.1 \
rand_core-0.6.3 \
rand_hc-0.2.0 \
rand_hc-0.3.1 \
rand_pcg-0.2.1 \
redox_syscall-0.2.9 \
redox_users-0.4.0 \
regex-1.5.4 \
regex-syntax-0.6.25 \
remove_dir_all-0.5.3 \
reqwest-0.11.4 \
ring-0.16.20 \
rusqlite-0.25.3 \
rustc-hash-1.1.0 \
rustc_version-0.3.3 \
rustls-0.19.1 \
rustls-native-certs-0.5.0 \
ryu-1.0.5 \
schannel-0.1.19 \
scopeguard-1.1.0 \
sct-0.6.1 \
security-framework-2.3.1 \
security-framework-sys-2.3.0 \
selectors-0.22.0 \
semver-0.11.0 \
semver-parser-0.10.2 \
serde-1.0.127 \
serde-aux-2.2.0 \
serde_derive-1.0.127 \
serde_json-1.0.66 \
serde_repr-0.1.7 \
serde_tuple-0.5.0 \
serde_tuple_macros-0.5.0 \
serde_urlencoded-0.7.0 \
servo_arc-0.1.1 \
sha1-0.6.0 \
siphasher-0.3.6 \
slab-0.4.3 \
slog-2.7.0 \
slog-async-2.7.0 \
slog-envlogger-2.2.0 \
slog-scope-4.4.0 \
slog-stdlog-4.1.0 \
slog-term-2.6.0 \
smallvec-1.6.1 \
socket2-0.4.1 \
spin-0.5.2 \
stable_deref_trait-1.2.0 \
static_assertions-1.1.0 \
string_cache-0.8.1 \
string_cache_codegen-0.5.1 \
strum-0.21.0 \
strum_macros-0.21.1 \
subtle-2.4.1 \
syn-1.0.74 \
take_mut-0.2.2 \
tap-1.0.1 \
tempfile-3.2.0 \
tendril-0.4.2 \
term-0.6.1 \
termcolor-1.1.2 \
thin-slice-0.1.1 \
thiserror-1.0.26 \
thiserror-impl-1.0.26 \
thread_local-1.1.3 \
time-0.1.44 \
tinystr-0.3.4 \
tinyvec-1.3.1 \
tinyvec_macros-0.1.0 \
tokio-1.9.0 \
tokio-macros-1.3.0 \
tokio-native-tls-0.3.0 \
tokio-rustls-0.22.0 \
tokio-socks-0.5.1 \
tokio-util-0.6.7 \
toml-0.5.8 \
tower-service-0.3.1 \
tracing-0.1.26 \
tracing-core-0.1.18 \
try-lock-0.2.3 \
type-map-0.4.0 \
typenum-1.13.0 \
ucd-trie-0.1.3 \
unic-char-property-0.9.0 \
unic-char-range-0.9.0 \
unic-common-0.9.0 \
unic-langid-0.9.0 \
unic-langid-impl-0.9.0 \
unic-langid-macros-0.9.0 \
unic-langid-macros-impl-0.9.0 \
unic-ucd-category-0.9.0 \
unic-ucd-version-0.9.0 \
unicase-2.6.0 \
unicode-bidi-0.3.5 \
unicode-normalization-0.1.19 \
unicode-segmentation-1.8.0 \
unicode-width-0.1.8 \
unicode-xid-0.2.2 \
unindent-0.1.7 \
untrusted-0.7.1 \
url-2.2.2 \
utf-8-0.7.6 \
utf8-decode-1.0.1 \
utime-0.3.1 \
vcpkg-0.2.15 \
version_check-0.9.3 \
want-0.3.0 \
wasi-0.9.0+wasi-snapshot-preview1 \
wasi-0.10.0+wasi-snapshot-preview1 \
wasm-bindgen-0.2.75 \
wasm-bindgen-backend-0.2.75 \
wasm-bindgen-futures-0.4.25 \
wasm-bindgen-macro-0.2.75 \
wasm-bindgen-macro-support-0.2.75 \
wasm-bindgen-shared-0.2.75 \
web-sys-0.3.52 \
webpki-0.21.4 \
webpki-roots-0.21.1 \
which-4.2.2 \
winapi-0.3.9 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-util-0.1.5 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
winreg-0.7.0 \
wyz-0.2.0 \
xml5ever-0.16.1 \
zip-0.5.13 \
reqwest@git+https://github.com/ankitects/reqwest.git?rev=7591444614de02b658ddab125efba7b2bb4e2335\#7591444614de02b658ddab125efba7b2bb4e2335 \
hyper-timeout@git+https://github.com/ankitects/hyper-timeout.git?rev=0cb6f7d14c62819e37cd221736f8b0555e823712\#0cb6f7d14c62819e37cd221736f8b0555e823712 \
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 \
pct-str@git+https://github.com/timothee-haudebourg/pct-str.git?rev=4adccd8d4a222ab2672350a102f06ae832a0572d\#4adccd8d4a222ab2672350a102f06ae832a0572d
CARGO_CARGOTOML= ${WRKSRC}/pylib/rsbridge/Cargo.toml
CARGO_BUILD= no
CARGO_INSTALL= no
# BAZEL=1 is required otherwise ${WRKSRC}/rslib/build/main.rs produces a dummy
# buildinfo.txt that doesn't contain the actual build hash.
CARGO_ENV= BAZEL=1 \
BUILDINFO=${_MY_LOCALREPO}/rust_output/buildinfo.txt \
PYO3_PYTHON=${PYTHON_CMD} \
PROTO_TOP=${WRKSRC}/proto/.top_level \
PROTOC=${LOCALBASE}/bin/protoc \
BACKEND_PROTO=${WRKSRC}/rslib/backend.proto \
RSLIB_FTL_ROOT=${_MY_LOCALREPO}/ftlrslib/l10n.toml \
EXTRA_FTL_ROOT=${_MY_LOCALREPO}/ftlextra/l10n.toml
OPTIONS_DEFAULT= MPV
OPTIONS_GROUP= PLAYER
OPTIONS_GROUP_PLAYER= MPLAYER MPV
OPTIONS_SUB= yes
MPV_DESC= mpv media player support
MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer
MPV_RUN_DEPENDS= mpv:multimedia/mpv
# Should contain the most recent commit that reflects ${DISTVERSION} and must
# be exactly 8 digits otherwise the check for newer versions won't work as
# expected.
_MY_BUILDHASH= dc80804a
# Path of the local bazel repositories
_MY_LOCALREPO= ${WRKSRC}/local_repos
# Path of cache that is used by www/yarn
_MY_YARNCACHE= ${WRKDIR}/.yarn
post-extract:
# Create a configuration file for bazel
@${ECHO_CMD} "startup --batch" > ${WRKSRC}/user.bazelrc
# Create local repositories which are used by bazel
@${MKDIR} ${_MY_LOCALREPO} \
${_MY_LOCALREPO}/local_esbuild/bin \
${_MY_LOCALREPO}/local_node/node/bin \
${_MY_LOCALREPO}/local_node/node/lib \
${_MY_LOCALREPO}/local_node/yarn/bin \
${_MY_LOCALREPO}/protoc_bin_freebsd/bin \
${_MY_LOCALREPO}/pyqt5 \
${_MY_LOCALREPO}/rust_output/librsbridge \
${_MY_LOCALREPO}/rust_output/strings_json
# Create empty WORKSPACE files in the top directory of each local
# repository
@${TOUCH} ${_MY_LOCALREPO}/local_esbuild/WORKSPACE \
${_MY_LOCALREPO}/local_node/WORKSPACE \
${_MY_LOCALREPO}/protoc_bin_freebsd/WORKSPACE \
${_MY_LOCALREPO}/pyqt5/WORKSPACE \
${_MY_LOCALREPO}/rust_output/WORKSPACE
# Copy the bazel rules for NodeJS and esbuild to the custom local repository
# as they need some patching
@${CP} -r ${WRKSRC_esbuildtc} ${_MY_LOCALREPO}/esbuild_toolchain
@${CP} -r ${WRKSRC_bzlrnodejs} ${_MY_LOCALREPO}/rules_nodejs
# Link the remaining bazel rules into the custom local repository as
# they don't need to be patched
.for _dir in bzlskylib bzlrcc bzlrjava bzlrpip bzlrproto bzlrpython bzlrrust bzlrsass ftlextra ftlrslib
@${RLN} ${WRKSRC_${_dir}} ${_MY_LOCALREPO}/${_dir:S/bzlr/rules_/}
.endfor
# Copy custom BUILD.bazel files to the local repositories
@${CP} ${FILESDIR}/bazel/BUILD.bazel-local_esbuild \
${_MY_LOCALREPO}/local_esbuild/BUILD.bazel
@${CP} ${FILESDIR}/bazel/BUILD.bazel-local_node \
${_MY_LOCALREPO}/local_node/BUILD.bazel
@${CP} ${FILESDIR}/bazel/BUILD.bazel-protoc_bin_freebsd \
${_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 \
${_MY_LOCALREPO}/rust_output/librsbridge/BUILD.bazel
@${CP} ${FILESDIR}/bazel/BUILD.bazel-rust_output-strings_json \
${_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.
@${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}/rslib/i18n/BUILD.bazel ${WRKSRC}/rslib/i18n/BUILD.bazel.dist
# Copy the replacement files
@${CP} ${FILESDIR}/bazel/repos.bzl ${WRKSRC}/
@${CP} ${FILESDIR}/bazel/pyqt5.bzl ${WRKSRC}/pip/pyqt5/defs.bzl
@${CP} ${FILESDIR}/bazel/BUILD.bazel-pylib-rsbridge \
${WRKSRC}/pylib/rsbridge/BUILD.bazel
@${CP} ${FILESDIR}/bazel/BUILD.bazel-rslib-i18n \
${WRKSRC}/rslib/i18n/BUILD.bazel
post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
${_MY_LOCALREPO}/rules_nodejs/internal/node/node_patches.js
@${REINPLACE_CMD} -e 's|\@PREFIX\@|${PREFIX}|' \
${WRKSRC}/qt/tools/runanki.system.in
@${REINPLACE_CMD} -e 's|%%_MY_BUILDHASH%%|${_MY_BUILDHASH}|' \
${WRKSRC}/scripts/status.sh
@${REINPLACE_CMD} -e 's|%%_MY_LOCALREPO%%|${_MY_LOCALREPO}|g' \
${WRKSRC}/repos.bzl ${WRKSRC}/proto/protobuf.bzl \
${_MY_LOCALREPO}/esbuild_toolchain/esbuild_repo.bzl
@${REINPLACE_CMD} -e 's|%%_MY_YARNCACHE%%|${_MY_YARNCACHE}|' \
${_MY_LOCALREPO}/rules_nodejs/internal/npm_install/npm_install.bzl
pre-configure:
# Link the binaries of Node, Protobuf and Yarn into the local bazel
# 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/yarn.js ${_MY_LOCALREPO}/local_node/yarn/bin/yarn.js
${LN} -s ${LOCALBASE}/bin/protoc ${_MY_LOCALREPO}/protoc_bin_freebsd/bin/protoc
# Overview of the build process
#
# Steps 1 and 2 are built separately from the bazel build process.
#
# 1. rslib (Rust library, implictly built by step 2)
# `-> produces ${_MY_LOCALREPO}/rust_output/strings_json/strings.json
# 2. pylib/rsbridge (Rust/Python bridge)
# `-> produces ${_MY_LOCALREPO}/rust_output/librsbridge/librsbridge.so
# 3. The remaining components (Python, Qt5 and JS) are built by bazel
pre-build:
# Generate buildinfo.txt which is used via BUILDINFO in ${CARGO_ENV} during
# compilation.
${ECHO_CMD} -e "STABLE_VERSION ${DISTVERSION}\nSTABLE_BUILDHASH ${_MY_BUILDHASH}" >> ${_MY_LOCALREPO}/rust_output/buildinfo.txt
${CARGO_CARGO_RUN} build \
--manifest-path ${CARGO_CARGOTOML} \
--verbose \
${CARGO_BUILD_ARGS}
# These files are required for the remaining build process via bazel so copy
# them the local repository.
${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/
do-build:
# Limit bazel jobs to 1 due random build failures while compiling TS files
# via "tsc".
cd ${WRKSRC} && \
bazel --output_user_root="${WRKDIR}/.bazel" build \
--action_env=PYTHON_SITE_PACKAGES="${PYTHON_SITELIBDIR}" \
--action_env=PYTHON_SYS_EXECUTABLE="${PYTHON_CMD}" \
--compilation_mode opt \
--jobs 1 \
--subcommands \
dist
post-build:
${TAR} -xf `${FIND} ${WRKDIR}/.bazel -name "dist.tar"` -C ${WRKSRC}
cd ${WRKSRC}/bazel-dist && \
${UNZIP_NATIVE_CMD} anki-${DISTVERSION}-*.whl && \
${UNZIP_NATIVE_CMD} aqt-${DISTVERSION}-*.whl
# Compile Anki's Python libary (pylib) and Qt5 library (aqt) to prepare
# them for installation
${PYTHON_CMD} -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} -O -m compileall ${WRKSRC}/bazel-dist/aqt
do-install:
${MKDIR} ${STAGEDIR}${DATADIR}/anki \
${STAGEDIR}${DATADIR}/aqt \
${STAGEDIR}${PREFIX}/share/pixmaps \
${STAGEDIR}${PREFIX}/share/applications
cd ${WRKSRC}/bazel-dist/ \
&& ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \
&& ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore"
cd ${WRKSRC}/qt/linux \
&& ${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
cd ${WRKSRC}/qt/tools \
&& ${INSTALL_SCRIPT} runanki.system.in ${STAGEDIR}${PREFIX}/bin/anki
${STRIP_CMD} ${STAGEDIR}${DATADIR}/anki/_backend/rsbridge.so
# Helper target to make the generation of the yarn cache easier
make-yarn-cache:
# Run "make extract" before executing this target
@${RM} -r ${_MY_YARNCACHE}
@cd ${WRKSRC}/ts \
&& ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install
@cd ${WRKSRC_bzlrnodejs}/packages/labs/grpc_web/ \
&& ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install
@cd ${WRKSRC_bzlrsass}/sass \
&& ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install
@cd ${WRKDIR} \
&& ${TAR} -czf ${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX} .yarn \
&& ${ECHO_CMD} "Please upload the file ${WRKDIR}/${PORTNAME}-yarn-cache-${DISTVERSION}${EXTRACT_SUFX}"
.include <bsd.port.mk>