CVE and update status of the FreeBSD ports tree3,568 unaddressed CVEs in 723 portsAll times are CET
Port details

games/anki 26.09.3

Flashcard trainer with spaced repetition

Port info

Maintainer
kai@FreeBSD.org
Packages
latest: 26.09.3
Upstream
up to date
Last update
to 26.09.3 · bad42c6df5
Quarterly
not in the 2026Q4 packages
Formerly
games/py-anki until 2013-01-16
WWW
https://apps.ankiweb.net/
Links
cgit · VuXML · Report wrong data

Install

Package
# pkg install anki
installs 26.09.3 from latest
Port
# cd /usr/ports/games/anki && make install clean
# make -C /usr/ports/games/anki config  # change options first
Size
8.6 MiB download · 36 MiB installed
License
AGPLv3+
Options
1 of 2 on in the package: MPV
Show the 1 options that are off
MPLAYER
pkg-message
Shown after upgrading
The V1 scheduler is no longer supported.  If you have not yet updated to V2 or
V3, you will be prompted to update when you attempt to review cards in 2.1.50+.
Shown after upgrading
The 2.1.58 release fixes an issue in 2.1.57 that caused cards and deck
  presets to be reset to the default ease, if you exported a .colpkg with
  compatibility with older clients enabled, or used the downgrade and quit
  option, then opened the collection again.

  For the former issue, this occurred to the collection you were exporting
  from, and not just the .colpkg file. If you were affected by this, running
  the following in the debug console after updating should restore your cards
  to the ease they were at when you last reviewed them, if they were not
  reviewed after the problem occurred. Please make a backup before proceeding.

  updated = 0
  for cid, old, new in mw.col.db.all("select id, factor, (select factor from revlog where cid=cards.id order by id desc limit 1) as factor2 from cards where type=2"):
    if new and old != new:
      card = mw.col.get_card(cid)
      card.factor = new
      mw.col.update_card(card)
      updated += 1
  print("updated", updated)

  It will print the number of updated cards.  Instructions how to use the debug
  console can be found here:

  https://docs.ankiweb.net/misc.html#debug-console

Packages by version and architecture

latest

FreeBSD versionamd64aarch64i386
FreeBSD 1626.09.3✗–
FreeBSD 15✗✗–
FreeBSD 1426.09.3✗✗

quarterly (2026Q4)

FreeBSD versionamd64aarch64i386
FreeBSD 1526.09.3✗–
FreeBSD 1426.09.3✗✗

version as in the ports tree (latest) or the most common one (quarterly) · different version · ✗ not built · – no packages for this platform. Package sets that have not been rebuilt for 60 days are left out.

Dependencies

Depends on 23

Run and library dependencies of the package on latest. Build dependencies are not in the package index.

Required by 0

No package on latest depends on it.

Packages on latest that depend on it directly.

Unaddressed and VuXML only (0)

No unaddressed CVE and nothing reported by pkg audit for the packaged version 26.09.3.

Fixed (2)

Show 2 fixed
VuXML entries whose affected range the packaged version has left.

Problem reports (1) · open in Bugzilla, most recently changed first

PRSummaryStatusChanged
297031maintainer-feedback+ games/anki: Very unstable after update to py312Open2026-10-18

Commits (229)

Tobias Kortkamp (tobik) · 2.1.49_1
lang/rust: Relink ports after the Rust 1.60.0 update
57c3caaa6c
Kai Knoblich (kai) · 2.1.49
games/anki: Mark as BROKEN on aarch64

* Now that devel/bazel can be built on aarch64, some of Anki's Bazel
  rule files still need to be adjusted accordingly.  This needs some
  time and testing thus mark it as BROKEN on aarch64 for now.

MFH:		2022Q1
c4d23d0721
Kai Knoblich (kai) · 2.1.49
games/anki: Update to 2.1.49

While I'm here:

* Use ECHO_CMD instead of ECHO as the latter one is already defined in
  /usr/share/mk/sys.mk, which can either be "echo" or "true" if the make
  flag -s is given.

Changelog:

https://github.com/ankitects/anki/releases/tag/2.1.49

PR:		262735
Reported by:	Pau Amma
MFH:		No (2022Q2 is soon)
7632b651e6
Mikael Urankar (mikael) · 2.1.48_6
lang/rust: Bump revisions after 1.59.0
e255ac5487
Loïc Bartoletti (lbartoletti) · 2.1.48_5
devel/py-qt5, devel/py-sip: Update versions

- Update sip to 6.5.1
- Update PyQt5 to 5.15.6
- Update PyQtChart, PyQtNetworkAuth and PyQtWebengine to 5.15.5
- Update PyQtSip to 12.9.1
- Update PyQtBuilder to 1.12.2
- Add ${_MAKE_JOBS} for pyqt.mk (reported by Tatsuki Makino)

PR:		261685
Exp-run by:	antoine
2d8f857316
Tobias Kortkamp (tobik) · 2.1.48_4
lang/rust: Relink consumers

PR:		261449
Security:	ee26f513-826e-11ec-8be6-d4c9ef517024
d64a2a380f
Loïc Bartoletti (lbartoletti) · 2.1.48_3
PyQt: Update sip to 6.5.0, reintroduce sip4 and simplify PyQt framework.

SIP:
As mentioned in the update from sip to sip5, this is a transitional version
to remove what is deprecated in sip4.
Sip6 completely removes the deprecated parts.
Unfortunately, some ports — mostly cura things — can not use sip6, so we
reintroduce sip4.

PyQt:
At the same time, we took the opportunity to simplify PyQT and propose only one
package as for devel/pyside2. */py-qt5-* have been merged — excepted chart,
networkauth and webengine — into devel/py-qt5-pyqt.

This allows us to be in adequacy with the packages that the author of these
libraries proposes, namely:

PyQt - devel/py-qt5-pyqt
PyQt-Charts - x11-toolkits/py-qt5-chart
PyQt-NetworkAuth – net/py-qt5-networkauth
PyQt-WebEngine – www/py-qt5-webengine
SIP – devel/py-sip
py-sip - devel/py-qt5-sip
PyQt-builder - devel/py-qtbuilder
Qscintilla - devel/py-qt5-qscintilla2

Reviewed by:	diizzy, kde
Tested by:	kai, rhurlin, arrowd, madpilot
Approved by:	makc, tcberner, kde
Differential Revision:	https://reviews.freebsd.org/D33237
Exp-run by:	antoine
4f0a5e1540
Rene Ladan (rene) · 2.1.48_3
cleanup: remove transitive py27 deprecation (www/qt5-webengine)
48d98ef918
Tobias Kortkamp (tobik) · 2.1.48_3
lang/rust: Bump revisions after 1.58.0
835bd57330
Tobias Kortkamp (tobik) · 2.1.48_2
lang/rust: Rebuild consumers for Rust 1.57.0
5a7f23c69d
Tobias Kortkamp (tobik) · 2.1.48_1
*: Rebuild for Rust 1.56.0
ad90fc634b
Tobias Kortkamp (tobik) · 2.1.48
games/anki: Chase USES=cargo's new git source support

PR:		256581
551949aec2
Kai Knoblich (kai) · 2.1.48
games/anki: Update to 2.1.48

Changelog:

https://github.com/ankitects/anki/releases/tag/2.1.48

MFH:		2021Q3
c8be80df2a
Tobias Kortkamp (tobik) · 2.1.47_1
*: Rebuild lang/rust consumers after the 1.55.0 update
7059b43727
Kai Knoblich (kai) · 2.1.47
games/anki: Update to 2.1.47

Changelog:

https://changes.ankiweb.net/changes/2.1.40-49.html#changes-in-2147

MFH:		2021Q3
95fe5f5134
Mikael Urankar (mikael) · 2.1.46_1
lang/rust: Rebuild consumers for 1.54.0
70f1b063ed
Kai Knoblich (kai) · 2.1.46
games/anki: Unbreak after 2cf2d5e3e01fdbd2

The Bazel 4.2.0 release contains a change that handles the execution
of stub Python scripts differently. [1]

Remedy the issue for now by setting "stub_shebang", which was introduced
with Bazel 4.2.0, accordingly instead of using its default value.

[1] https://blog.bazel.build/2021/08/18/bazel-4.2.html#python
2f7cd9d47c
Kai Knoblich (kai) · 2.1.46
games/anki: Update to 2.1.46

* Remove DIST_SUBDIR, which once made sense when Anki was still a pure
  Python port.  Anki now needs a lot of Rust crates that are also used
  by other ports.

  Therefore, these crates should be placed in the usual place and not
  in an additional subdirectory to save bandwidth and disk space. [1]

Reported by:	se [1]
MFH:		2021Q3
83f30a2775
Kai Knoblich (kai) · 2.1.44
games/anki: Update to 2.1.44

Since the 2.1.36 release the build system has changed significantly
again and devel/bazel is now used by upstream for the entire build
process.

With this change, a lot of bazel rules and also some translation files
needs to be downloaded from various repositories during the buildtime.

In order to still make Anki compatible with the Ports framework, the
following approach is used:

  1. Prefetch all the required files before buildtime.
  2. Create and setup a few local bazel repositories along with a set
     of custom bazel rules and to provide Node, Protobuf and Yarn from
     the Ports tree.
  3. Compile the Rust library and place the output files to the
     respective local bazel repository for further processing.
  4. Build the rest via devel/bazel

From a technical point of view, Anki should also be able to be built on
other 64-bit architectures (but requires further patching of a few bazel
rules), as soon as devel/bazel can also be built for those platforms.

The option NLS is gone because the translations are now compiled
directly into the Rust library and they only generate a small overhead.

Changelog since 2.1.35 (too many changes/fixes to list them separately):

https://changes.ankiweb.net/

Reviewed by:	tcberner
MFH:		2021Q3
Differential Revision:	https://reviews.freebsd.org/D31358
7cb5fb3560
Tobias Kortkamp (tobik) · 2.1.35_11
lang/rust: Rebuild consumers for 1.53.0
06dbc12f96
Tobias Kortkamp (tobik) · 2.1.35_10
games/anki: Unbreak with Rust 1.53.0

error[E0308]: mismatched types
  --> cargo-crates/lexical-core-0.7.4/src/atof/algorithm/bhcomp.rs:62:24
   |
62 |     let bytes = bits / Limb::BITS;
   |                        ^^^^^^^^^^ expected `usize`, found `u32`

error[E0277]: cannot divide `usize` by `u32`

PR:		256653
db3e8fbceb
Dmitry Marakasov (amdmi3) · 2.1.35_9
Mk: switch PYTHON_REL to 5 digits to support python 3.10.x

PR:		255013
Differential Revision:	https://reviews.freebsd.org/D29418
Exp-run by:	antoine
Approved by:	wen@, no objection from python@ or portmgr@
0729af4255
Tobias Kortkamp (tobik) · 2.1.35_9
Rebuild lang/rust consumers after d8837418ea743776
28e7a9334a
Mathieu Arnold (mat) · 2.1.35_8
Remove # $FreeBSD$ from Makefiles.
305f148f48
Tobias Kortkamp (tobik) · 2.1.35_8
Rebuild lang/rust consumers after r569489
6095f1422a
Rene Ladan (rene) · 2.1.35_7
Mark ports recursively depending on Python 2.7 for expiration on June 23.

For ports optionally dependending on Python 2.7, just mark those options
as expired. Remove konquerer from the x11/kde-baseapps metaport and bump
its PORTREVISION.

Submitted by:	rene
Reviewed by:	portmgr, adridg, ehaupt, lme, madpilot, pizzamig, se, sunpoet, yuri
Approved by:	portmgr
Differential Revision:	https://reviews.freebsd.org/D28665
b217c7fc9c
Kai Knoblich (kai) · 2.1.35_7
games/anki: Fix packaging with Python 3.8

* Add a workaround to make the transition from Python 3.7 to Python 3.8
  possible because the name of the .so file is slightly different between
  the two releases.

* Also add CARGO_INSTALL to avoid warnings about ignored duplicate scripts
  for the target "do-install".

PR:		253815
97766e4b09
Loïc Bartoletti (lbartoletti) · 2.1.35_7
PyQt5: Update PyQt5 to 5.15.4 and py-qtbuilder to 1.9.1

PR:		254218
Exp-run by:	antoine
0b7a24020a
Loïc Bartoletti (lbartoletti) · 2.1.35_6
PyQt5: Update PyQt5 to 5.15.3, QScintilla2 to 2.12.0, py-qtbuilder to 1.9.0

* PyQt5: update to 5.15.3

This is a minor feature and bug-fix release. There are corresponding releases of the other PyQt5-related packages.

 - Added the missing QImage.setAlphaChannel().
 - Support for the QtNetworkAuth library has been moved to a separate PyQtNetworkAuth package.
 - Wheels no longer bundle the corresponding Qt libraries and instead automatically install them from an external wheel.

* QScintilla2: update to 2.12.0

This adds support for Qt6 and removes support for Qt4.

 - Change the new distname (again)i due to a conflict
 - Use the new sip-build system

* devel/py-qtbuilder: update to 1.9.0
* devel/py-sip: fix flavor for sip-distinfo

PR:		253865
Exp-run by:	antoine
108f234f7f
Mikael Urankar (mikael) · 2.1.35_5
lang/rust: Update to 1.50.0

- Use bundled libgit/libssh, the versions in ports are too old
  - Update lang/rust-nightly to 2021-02-12
  - Update devel/racer to 2.1.41
  - Import upstream patch to fix build issue for Firefox and related ports (https://bugzilla.mozilla.org/show_bug.cgi?id=1684261)

Changes: https://github.com/rust-lang/rust/releases/tag/1.50.0

Tested by:	mikael, pkubaj
Differential Revision:	https://reviews.freebsd.org/D28616
6bebfaa8a0
Mikael Urankar (mikael) · 2.1.35_4
lang/rust: Update to 1.49.0

Changes: https://github.com/rust-lang/rust/releases/tag/1.49.0

Tested by:	mikael, pkubaj
Differential Revision:	https://reviews.freebsd.org/D27940
a798515415
Loïc Bartoletti (lbartoletti) · 2.1.35_3
Update PyQt5 to 5.15.2, sip to 5.5.0, py-qtbuilder to 1.6.0 and py-qt5-sip to 12.8.1

PR:		251764
Exp-run by: antoine
ecb5b21c9e
Kai Knoblich (kai) · 2.1.35_2
games/anki: Remove pkg-message

* The installation instructions on how to set up audio/lame manually are
  obsolete since r554970 thus remove them.

* Bump PORTREVISION to flush out old packages that still contain the
  pkg-message.
5826cc31c2
Mikael Urankar (mikael) · 2.1.35_1
lang/rust: Update to 1.48.0

Changes: https://github.com/rust-lang/rust/releases/tag/1.48.0

Reviewed by:	jbeich
Tested by:	bdragon, jbeich, mikael
Differential Revision:	https://reviews.freebsd.org/D27293
4e449e031e
Adam Weinberger (adamw) · 2.1.35
Add education virtual category

PR:		248402
Submitted by:	PauAmma
db15051ca5
Kai Knoblich (kai) · 2.1.35
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
1519278800
Loïc Bartoletti (lbartoletti) · 2.1.16_2
Update PyQt to 5.15.0, py-sip to 4.19.24 and qscintilla2 to 2.11.5

- Update PyQt to 5.15.0, py-sip to 4.19.24 and qscintilla2 to 2.11.5
- Use pypi for PYQT [1]
- Add devel/py-qt5-sip (Don't use it for now. It will be used in future updates of PyQt with py-sip >= 5)
- Add missing py-qt5 ports: comms/py-qt5-sensors, devel/py-qt5-location, devel/py-qt5-remoteobjects, net/py-qt5-networkauth
- Strip libs
- Refactor *_PATH and *_PORT parts

[1] RiverBankComputing doesn't offer links to download latest version of some ports

PR:		247369
Reviewed by:	tcberner
Differential Revision:	https://reviews.freebsd.org/D25749
Exp-run by:	antoine
2933bb22c3
Loïc Bartoletti (lbartoletti) · 2.1.16_1
Update py-sip to 4.19.21 and qscintilla2 to 2.11.4

- Update py-sip to 4.19.21
  - Update qscintilla2 to 2.11.4
  - Replace MASTER_SITE_RIVERBANK with https versions
  - Replace QSCI2_DISTNAME to match with the new one

PR:		245308
Approved by:	tcberner (mentor)
Exp-run by:	antoine
5ead0a2f78
Kai Knoblich (kai) · 2.1.16
games/anki: Update to 2.1.16

* Backport two patches from upstream that fix the argument handling with
  multimedia/mpv since r520597.

* Also slightly change the MASTER_SITES as upstream distribute tarballs for
  newer versions only via GitHub.

Although there are already some newer releases available use the 2.1.16
release for a while.  It's mainly because the build process has changed a
lot since the 2.1.17 release and still needs to be investigated a little
more closely.

Changelog:

https://apps.ankiweb.net/docs/changes.html#changes-in-2.1.16

MFH:		2020Q1 (blanket: bug and regression fixes)
d7ea7696a2
Kai Knoblich (kai) · 2.1.15_1
games/anki: Add pkg-message with installation instructions

* Improve the user experience by adding a pkg-message which gives some
  advice that audio/lame needs to be installed manually afterwards when
  installing from the official FreeBSD package repositories.

* Bump PORTREVISION to include the pkg-message.

PR:		242528
Submitted by:	PauAmma <pauamma@gundo.com> (based on)
MFH:		2019Q4
4cd40447e1
Kai Knoblich (kai) · 2.1.15
games/anki: Update to 2.1.15

Changelog:

* The V2 scheduler now fully randomizes review cards due on a given day.
* Fix flag changes in Browse screen not syncing.
* Cleanup recording wav file when recording canceled.
* Fix the window icon on Wayland.
* Add a progress bar to media deletion.
* Other minor changes.

https://apps.ankiweb.net/docs/changes.html#changes-in-2.1.15

MFH:		2019Q3
3e516d636a
Kai Knoblich (kai) · 2.1.14
games/anki: Update to 2.1.14

Changelog:

* Fix a bug in the V2 scheduler that would cause partially learnt cards
  removed from filtered decks to revert to an earlier state.
* Fix a bug in the handling of relearning cards when switching back to the
  V1 scheduler.
* Fix lost space when pasting indented text.
* Limit image height relative to window height, not document height.
* Fix deck list being re-rendered unnecessarily.
* Remove the unable to connect to local port message.

https://apps.ankiweb.net/docs/changes.html#changes-in-2.1.14
e221f174d4
Kai Knoblich (kai) · 2.1.13
games/anki: Update to 2.1.13

Changelog:

* Fix formatting getting lost when copying&pasting between fields on macOS.
* Fix some issues that cause the main window to get stuck.
* Fix an empty deck list sometimes appearing when restoring from a backup.
* Fix Anki hanging after an error occurs during startup.
* Fix error message when syncing with an unconfirmed email address.
* Use jsonschema for add-on manifests
* Warn in DB check when high due numbers are encountered.
* Improve error messages on full disk and failed add-on deletion.
* Fix relearning cards being given learning step count in V2 scheduler.
* Fix preview window failing to appear when show both sides enabled.
* Removing trailing BR tag when pasting into an empty field.
* Don’t throw an error when non-Latin text in the Javascript console can’t
  be shown.
* Double click on add-ons to edit their configuration.
* Fix the window icon in a few screens.
* Improve the default type in the answer note type.

https://apps.ankiweb.net/docs/changes.html#changes-in-2.1.13-(3ba55990)
a6513b9c66
Kai Knoblich (kai) · 2.1.12
games/anki: Update to 2.1.12

Changelog:

* Fix fields appearing under editor buttons.
* Fix memory leak in card layout screen.
* Fix some issues with previewing in the Browse screen.
* Fix card counts not updating when a review is undone.
* Fix an error caused by missing note types.
* Fix an issue checking for add-on updates.
* Disable add-on config button when not appropriate.
* Tweaks to the deck age graph binning.
* Add-ons hosted on AnkiWeb can now define conflicts in the manifest file.
* Make sure mpv doesn’t attempt to load scripts from default location.
* Other minor fixes.

https://apps.ankiweb.net/docs/changes.html#changes-in-2.1.12-(eef86bf3)

Approved by:	mentors (implicit)
b12d23a93f
Antoine Brodin (antoine) · 2.1.11
Clean up plist
4feea1d823
Kai Knoblich (kai) · 2.1.11
games/anki: Unbreak

Unbreak since www/py-qt5-webengine is usable again since r497003.

Also update the patch for aqt/qt.py to load PyQt5.QtWebChannel explicitly.
Otherwise Anki will crash upon invocation.

PR:		233192
Approved by:	mentors (implicit)
a0fb87e4ec
Kai Knoblich (kai) · 2.1.11
games/anki: Update to 2.1.11, undeprecate and set to BROKEN

Undeprecate and save the port from the big Qt4 wipeout by switching from Qt4
to Qt5.

Also set games/anki temporarily as BROKEN because www/py-qt5-webengine is
still in a defunct state. This will change when www/qt5-webengine gets
updated to a more recent version soon (hopefully to the end of Q1).

At last but not least: Add options to switch between multimedia/mpv (new
default by upstream) and multimedia/mplayer (previous default) or choose both
of them.

Changelog:

Notable changes since 2.0.52:

- Anki 2.1.x uses the same scheduling, syncing and file format as Anki 2.0.x,
  so one can upgrade and downgrade at will.
- Switched from Python 2.7 to Python 3.6+ and from Qt 4 to Qt 5
- Add-ons will need to be updated to work with 2.1.
- Built in MathJax support
- A "restore backup" option in the profiles screen
- SVG rendering support for LaTeX
- Improved add-on configuration, management and updating
- Night mode for reviewing
- Improved pasting, with less unnecessary formatting included, and better
  handling of media links.

https://apps.ankiweb.net/docs/changes.html

PR:		233192
Approved by:	miwi (mentor)
Differential Revision:	https://reviews.freebsd.org/D19564
0f6797f34e
Kai Knoblich (kai) · 2.0.52_1
Change my maintainer email address to my new one at the FreeBSD project.

Reviewed by:	miwi (mentor)
Approved by:	miwi (mentor)
Differential Revision: https://reviews.freebsd.org/D19050
6a4a5116bf
Rene Ladan (rene) · 2.0.52_1
Mark QT4 ports/functionality for removal on 2019-03-15

While here, chase some KDE4 ports and functionality, these are scheduled for
removal on 2018-12-31. Change the default option/flavor to QT5 where applicable
or use alternative toolkits like GTK.

Submitted by:	tcberner
Reviewed by:	adridg, jhale, rene, tcberner
Approved by:	portmgr (implicit, flavor hook)
Differential Revision:	https://reviews.freebsd.org/D17741
99d6d12a38
Tobias C. Berner (tcberner) · 2.0.52_1
pyqt: Change install directories for Python flavor support

* PyQt could not be installed for multiple Python versions at
  the same time, as there were conflicting files.

  This patch creates Python-version versioned directories for
  all these, and further installs binaries with a version number.

* Note, there might be some hickups for software that depends on
  on of the .so's provided by PyQt5, which might not be found
  anymore autmotically, and maybe need some LD-flaggery.

* Update PyQt5 to 5.10.1

* Mark www/py-qt5-webengine broken. It is unforuntately no longer
  compatible with the old qt5-webengine-5.9.4 we ship.

PR:		232745
Exp-run by:	antoine
Differential Revision:	https://reviews.freebsd.org/D8714
cc8a667aa2