Anki is a program designed to help you remember facts (such as words and
phrases in a foreign language) as easily, quickly and efficiently as possible.
To do this, it tracks how well you remember each fact, and uses that
information to optimally schedule review times. With a minimal amount
of effort, you can greatly increase the amount of material you remember,
making study more productive, and more fun.
While Anki can be used for studying anything, it also ships with special
features designed to make studying Japanese and English easier: integrated
dictionary lookups, missing kanji reports, and more. Sample decks are also
provided for Russian.
===> The following configuration options are available for anki-26.09.4:
====> Options available for the group PLAYER
MPLAYER=off: MPlayer media player support
MPV=on: mpv media player support
===> Use 'make config' to modify these settings
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+.
If upgrading from < 2.1.62:
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
games/anki: Attempt to fix build on aarch64
Architecture-specific prebuilt binaries of "esbuild" and "rollup" are
used for the amd64/aarch64 platforms. Therefore, add NPM_PREFETCH_ARCHS
to use separate NodeJS module tarballs for amd64 and aarch64.
Fixes: 65434f71218e games/anki: Update to 26.09
MFH: 2026Q4
games/anki: fix build on powerpc64le
The prefetched node modules are created on amd64, where yarn also fetches
the FreeBSD/amd64 builds of esbuild, rollup and @parcel/watcher. On other
archs yarn skips them, so the archive doesn't match distinfo. Make yarn
resolve them for x64 on powerpc64le as well.
esbuild and rollup don't have FreeBSD binaries for powerpc64le, so use their
WebAssembly builds instead. Also let the build system know about powerpc64.
*/*: Fix many Rust ports to run without COMPAT11
RISCV does not include COMPAT11 by default. But Rust's libc bound the
compat-11 symbols until version 0.2.176. Patch a great many Rust ports
to use a newer version of libc, to eliminate the dependency on COMPAT11.
Explicitly patching Cargo.lock isn't usually necessarily, since within
the build jail cargo is forced to use whichever crates Makefile.crates
installs there.
Notes on specific ports:
* textproc/bookokrat: Rework bookokrat's existing patch to be more
robust. Also, report the issue upstream:
https://github.com/bugzmanov/bookokrat/issues/182
(Only the first 15 lines of the commit message are shown above )
games/anki: Update to 26.09
* Migrate to Yarn v4 to be in sync with upstream. To ensure that the
preinstalled Yarn v4 is actually used, a few minor workarounds and a
new variable PREINSTALLED_YARN are required.
The latter is necessary because, with Yarn v2 and newer, environment
variables prefixed with YARN_ can no longer be used.
* Sort pkg-plist while I'm here.
Changelog:
https://github.com/ankitects/anki/releases/tag/26.09
MFH: 2026Q3
Security: ce54d883-b060-11f1-b187-901b0edee044
games/anki: Update to 26.08
* Switch to USES=npm and adjust/remove the relevant parts.
Although Yarn v4 is already being used according to "package.json",
stick with Yarn v1 for now to complete a 1:1 migration from the before
to the after state with respect to the used tools during build.
Changelog:
https://github.com/ankitects/anki/releases/tag/26.08
all: drop support for FreeBSD 13, mips and risc64sf
Reviewed by: many (*)
Differential Revision: https://reviews.freebsd.org/D55624
Differential Revision: https://reviews.freebsd.org/D55642 (merged in from bofh)
many (*)
acm arrowd brooks cmt dch decke dinoex eduardo fluffy fuz gahr garga
jbeich joerg jrm kai kenrap martymac matthew mfechner michaelo mizhka
nobutaka pkubaj se tagattie thj
Anton Saietskii
GenericRikka
Gert Doering
Jan Bramkamp
Oleh Hushchenkov
Oleksandr Kryvulia
Ralf van der Enden
Yamagi
desktop kde python tcltk office
games/anki: Remove py-mypy-protobuf from BUILD_DEPENDS
* Prevent type checking (via mypy and related) which generates mypi stub
files (= .pyi) from protobuf specs because is isn't required from a
downstream perspective.
* Bump PORTREVISION due changed package contents.
games/anki: Remove py-ruff from BUILD_DEPENDS
* devel/py-ruff is used for the generated "hooks.py" to format it
accordingly, which makes little sense on the downstream side in
terms of packaging.
games/anki: Update to 25.09
* Adjust the workaround for the py-ruff linter so that it's only used
on FreeBSD RELEASE builds that have usually GENERIC kernels compiled
without the debug options.
Presumably, py-ruff is not absolutely necessary and can be omitted as
a dependency, but this still needs to be checked more closely.
* Also remove a no longer required patch introduced in 418adc4a2512 as
the code is now compatible with Rust 1.89.
Changelog:
https://github.com/ankitects/anki/releases/tag/25.09
games/anki: Fix build with rust 1.89.0
error: unicode codepoint changing visible direction of text present in literal
-->
out/rust/release/build/anki_i18n-646b20c5bb61f5d1/out/strings.rs:49842:22
error: unicode codepoint changing visible direction of text present in literal
--> rust/release/build/anki_i18n-646b20c5bb61f5d1/out/strings.rs:51313:21
error: unicode codepoint changing visible direction of text present in literal
-->
out/rust/release/build/anki_i18n-646b20c5bb61f5d1/out/strings.rs:52025:22
error: unicode codepoint changing visible direction of text present in literal
--> rust/release/build/anki_i18n-646b20c5bb61f5d1/out/strings.rs:52129:21
PR: 288923
Approved by: portmgr (build fix blanket)
games/anki: Fix fetch
* The distfiles were re-rolled because an additional commit containing a
hotfix was added and the tag 25.02.1 was still marked as a pre-release
at that time.
* Bump PORTREVISION due changed package contents after checking the
distfile contents.
Reported by: pkg-fallout
MFH: 2025Q2
games/anki: Update to 25.02.1
* Adjust USES=python accordingly, because Python 3.8 is no longer
present in the ports tree after ca15850a2b13 while I'm here.
Changelog:
https://github.com/ankitects/anki/releases/tag/25.02.1
MFH: 2025Q2
games/anki: Update to 24.11
* Remove the Rust 1.80+ compatibility patch for the "time" crate
introduced in b7bf94fa6c74 which is no longer required now.
Changelog:
https://github.com/ankitects/anki/releases/tag/24.11
MFH: No (feature release)
*/*: remove STRIP_CMD calls in rust based ports
This is not needed after bc4fedc1fec0d359365c04d43be9e32bf101a50e
PR: 246993
Differential Revision: https://reviews.freebsd.org/D46503
games/anki: Update to 24.04.1
* Remove the no longer required workaround for the "pip_system_certs"
Python module, which was merged by upstream.
Changelog:
https://github.com/ankitects/anki/releases/tag/24.04.1
MFH: 2024Q2
games/anki: Update to 24.04
* Support for offline builds has now been integrated, so a number of
patches are no longer required.
* The same applies to some environment variables that are also no longer
needed or have changed slightly regarding their purpose.
* The workaround introduced in bdcfffd8573e regarding issues with nVidia
drivers was also merged by upstream and is therefore no longer
required.
Changelog:
https://github.com/ankitects/anki/releases/tag/24.04
games/anki: Install manpages in ${PREFIX}/share/man
* Also sanitize MANPREFIX which was removed in 5c475f0e7b40.
* Bump PORTREVISION due package change.
games/anki: Update to 2.1.62
* Since release 2.1.55, upstream has changed the build system to a
homebrew solution written in Rust, which generates the files for
ninja(1) and then uses the latter also for building.
As a result, quite a number of patches, that revolved around the
Bazel build system, can now be removed and the Makefile can also be
slimmed down considerably.
By environment variables recognized by the build system, some
required binaries (e.g. Python, Node.js, etc.) for the build can be
directly defined instead downloading the binary tarballs from the
official repositories, which saving quite a bit of patches at
the end.
(Only the first 15 lines of the commit message are shown above )
games/anki: Fix crashes with nVidia drivers
* Prevent Anki from explicitly loading "libGL.so.1", which leads to
segfaults in environments that have nVidia drivers in use.
* Bump PORTREVISION due package change.
PR: 270778
Reported by: bitbucket63-it@yahoo.com
MFH: 2023Q2
games/anki: Switch to PyQt6
* This also fixes runtime errors [1] that occur in environments where
PyQt5 and PyQt6 are present. In that case Anki prefers PyQt6 over
PyQt5 upon invocation which leads then to following error:
$ anki
Running with temporary Qt5 compatibility shims.
Run with DISABLE_QT5_COMPAT=1 to confirm compatibility with Qt6.
Traceback (most recent call last):
File "/usr/local/bin/anki", line 7, in <module>
import aqt
File "/usr/local/share/anki/aqt/__init__.py", line 74, in <module>
from aqt.main import AnkiQt # isort:skip
File "/usr/local/share/anki/aqt/main.py", line 20, in <module>
(Only the first 15 lines of the commit message are shown above )
PyQt: Update to latest versions
- PyQt5: update to 5.15.9
- PyQt6: upate to 6.4.2
- PyQt6-sip: update to 13.4.1
- PyQt5-sip: update to 12.11.1
- PyQt-builder: update to 1.14.1
- sip: upate to 6.7.7
PR: 269751
Exp-run by: antoine
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
rust: bring back update to 1.63
Revert back the revert of the update of rust and related commits
This revert was drive by beside validation by portmgr via exp-run
and not respectful of the etiquette we have between committers
This reverts commit 8ecb1f8141144c1603eb4026122d2e60eeaccd64.
This reverts commit 04d257baa182926cff158f32cf459e560426add0.
This reverts commit 2757c63bd0e6d01f9f0657fe03bb3a7b49adcae2.
This reverts commit 75f4713de5e3fbd1c6a0cb572e08121814a4072e.
This reverts commit e88e592111c86fdd1c0ac8717dbef9342e15e27c.
This reverts commit 783c056d7d681d66e2c5c59251c275d65274028e.
With hat: portmgr