diff --git a/games/anki/Makefile b/games/anki/Makefile index fa24e6bf9a75..eb6e71fb5cf5 100644 --- a/games/anki/Makefile +++ b/games/anki/Makefile @@ -1,174 +1,174 @@ PORTNAME= anki DISTVERSION= 23.12.1 -PORTREVISION= 1 +PORTREVISION= 2 # 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 WWW= https://apps.ankiweb.net/ LICENSE= AGPLv3+ LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc NOT_FOR_ARCHS_REASON= the provided build system written in Rust (= runner) accepts only 64-bit systems. BUILD_DEPENDS= protoc:devel/protobuf \ rsync:net/rsync \ yarn:www/yarn \ ${PYTHON_PKGNAMEPREFIX}black>0:devel/py-black@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}mypy-protobuf>=1.21:devel/py-mypy-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} LIB_DEPENDS= libzstd.so:archivers/zstd 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}orjson>0:devel/py-orjson@${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>=4.21:devel/py-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}waitress>=2.0.0:www/py-waitress@${PY_FLAVOR} # USES=ssl is required for the compilation of the Rust code USES= cargo desktop-file-utils ninja nodejs:build pyqt:6 python:3.9+ \ shebangfix ssl USE_GITHUB= yes GH_ACCOUNT= ankitects # Translation files GH_TUPLE= ankitects:anki-core-i18n:fb301cc:ftlrslib \ ankitects:anki-desktop-ftl:8c2191a:ftlextra USE_PYQT= pyqt6 sip:build webengine SHEBANG_FILES= qt/tools/runanki.system.in CARGO_CARGOTOML= ${WRKSRC}/Cargo.toml CARGO_BUILD= no CARGO_INSTALL= no CARGO_TARGET_DIR= ${WRKSRC}/out/rust # Custom variables introduced to the runner build system via patches MAKE_ENV+= NO_BUNDLE=1 \ NO_VENV=1 \ OFFLINE_BUILD=1 \ OFFLINE_YARNCACHE=${_MY_YARNCACHE} # Variables already known and used by the "runner" build system MAKE_ENV+= NODE_BINARY=${LOCALBASE}/bin/node \ PROTOC_BINARY=${LOCALBASE}/bin/protoc \ PYTHON_BINARY=${PYTHON_CMD} \ YARN_BINARY=${LOCALBASE}/bin/yarn \ out=${WRKSRC}/out # If RELEASE is unset the "runner" build system omits the # "--release" flag for cargo(1). .if !defined(WITH_DEBUG) MAKE_ENV+= RELEASE=1 .endif 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= 1a1d4d54 # Remove ${CARGO_BUILD_TARGET} from ${CARGO_ENV} to avoid problems with # hardcoded paths as the "runner" build system expects its components # in ${WRKSRC}/out/rust/debug _MY_CARGO_ENV= ${CARGO_ENV:C/CARGO_BUILD_TARGET=.+//} # Path of the cache that is used by www/yarn _MY_YARNCACHE= ${WRKDIR}/.yarn post-extract: # Some parts of the runner build system expects to be in a git repository @${TOUCH} ${WRKSRC}/.git # Prepare the virtual repositories for the translation files @${RM} -r ${WRKSRC}/ftl/core-repo ${WRKSRC}/ftl/qt-repo @${RLN} ${WRKSRC_ftlrslib} ${WRKSRC}/ftl/core-repo @${RLN} ${WRKSRC_ftlextra} ${WRKSRC}/ftl/qt-repo post-patch: @${REINPLACE_CMD} -e 's|\@PREFIX\@|${PREFIX}|' \ ${WRKSRC}/qt/tools/runanki.system.in pre-configure: # Create paths for the Python pseudo venv and link some binaries to it. ${MKDIR} ${WRKSRC}/out/pyenv/bin ${LN} -s ${PYTHON_CMD} ${WRKSRC}/out/pyenv/bin/python ${LN} -s ${LOCALBASE}/bin/protoc-gen-mypy ${WRKSRC}/out/pyenv/bin/protoc-gen-mypy # Overview of the build process # # 1. The "runner" build system is built explicitly with the "--release" flag # to avoid issues with hardcoded paths. Once completed the binaries are # placed into ${WRKSRC}/out/rust/release. # 2. As soon as step 1 is finished, the "runner" build system is executed, # which then processes the following steps: # * build remaining components of "runner" (= ninja_gen, configure, etc.) # * generate the ninja file and run ninja afterwards # * create the Python wheel files in ${WRKSRC}/out/wheels pre-build: ${ECHO_CMD} -e "${_MY_BUILDHASH}" >> ${WRKSRC}/out/buildhash ${ECHO_MSG} "===> Building runner build framework" cd ${WRKSRC} && ${SET_ENV} ${MAKE_ENV} ${_MY_CARGO_ENV} \ ${CARGO} build --package runner --release --verbose --verbose do-build: ${ECHO_MSG} "===> Executing runner build framework" cd ${WRKSRC} && ${SET_ENV} ${MAKE_ENV} ${_MY_CARGO_ENV} \ ${WRKSRC}/out/rust/release/runner build wheels post-build: ${MKDIR} ${WRKSRC}/out/dist cd ${WRKSRC}/out/wheels \ && ${UNZIP_NATIVE_CMD} -d ${WRKSRC}/out/dist -x *.orig anki*.whl \ && ${UNZIP_NATIVE_CMD} -d ${WRKSRC}/out/dist -x *.orig aqt*.whl # Update the timestamps otherwise the set dates of the wheels # (= 1980-01-01 00:00:00) are used ${FIND} ${WRKSRC}/out/dist -type f -exec ${TOUCH} {} + do-install: ${MKDIR} ${STAGEDIR}${DATADIR}/_aqt \ ${STAGEDIR}${DATADIR}/anki \ ${STAGEDIR}${DATADIR}/aqt \ ${STAGEDIR}${PREFIX}/share/pixmaps \ ${STAGEDIR}${PREFIX}/share/applications cd ${WRKSRC}/out/dist/ \ && ${COPYTREE_SHARE} _aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" \ && ${COPYTREE_SHARE} anki ${STAGEDIR}${DATADIR} "! -name .gitignore" \ && ${COPYTREE_SHARE} aqt ${STAGEDIR}${DATADIR} "! -name .gitignore" cd ${WRKSRC}/qt/bundle/lin \ && ${INSTALL_DATA} anki.xpm anki.png ${STAGEDIR}${PREFIX}/share/pixmaps \ && ${INSTALL_DATA} anki.desktop ${STAGEDIR}${PREFIX}/share/applications \ - && ${INSTALL_MAN} anki.1 ${STAGEDIR}${MANPREFIX}/man/man1 + && ${INSTALL_MAN} anki.1 ${STAGEDIR}${PREFIX}/share/man/man1 cd ${WRKSRC}/qt/tools \ && ${INSTALL_SCRIPT} runanki.system.in ${STAGEDIR}${PREFIX}/bin/anki ${STRIP_CMD} ${STAGEDIR}${DATADIR}/anki/_rsbridge.so # Helper target to make the generation of the yarn cache easier make-yarn-cache: patch @${RM} -r ${_MY_YARNCACHE} @cd ${WRKSRC} \ && ${LOCALBASE}/bin/yarn --cache-folder ${_MY_YARNCACHE} install --ignore-scripts @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 diff --git a/games/anki/pkg-plist b/games/anki/pkg-plist index 48223664f7ee..626a159811cd 100644 --- a/games/anki/pkg-plist +++ b/games/anki/pkg-plist @@ -1,497 +1,497 @@ bin/anki -man/man1/anki.1.gz +share/man/man1/anki.1.gz %%DATADIR%%/_aqt/colors.py %%DATADIR%%/_aqt/data/qt/icons.qrc %%DATADIR%%/_aqt/data/qt/icons/anki.png %%DATADIR%%/_aqt/data/qt/icons/application-braces-outline.svg %%DATADIR%%/_aqt/data/qt/icons/book-clock-outline.svg %%DATADIR%%/_aqt/data/qt/icons/book-cog-outline.svg %%DATADIR%%/_aqt/data/qt/icons/book-outline.svg %%DATADIR%%/_aqt/data/qt/icons/card-state.svg %%DATADIR%%/_aqt/data/qt/icons/check-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/check-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/check-dark.svg %%DATADIR%%/_aqt/data/qt/icons/check-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-down-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-dark.svg %%DATADIR%%/_aqt/data/qt/icons/chevron-up-light.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-dark.svg %%DATADIR%%/_aqt/data/qt/icons/circle-medium-light.svg %%DATADIR%%/_aqt/data/qt/icons/circle-outline.svg %%DATADIR%%/_aqt/data/qt/icons/circle.svg %%DATADIR%%/_aqt/data/qt/icons/clock-outline.svg %%DATADIR%%/_aqt/data/qt/icons/clock.svg %%DATADIR%%/_aqt/data/qt/icons/collection.svg %%DATADIR%%/_aqt/data/qt/icons/deck.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-FG_SUBTLE-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-FG_SUBTLE-light.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-horizontal-light.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-FG_SUBTLE-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-FG_SUBTLE-light.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-dark.svg %%DATADIR%%/_aqt/data/qt/icons/drag-vertical-light.svg %%DATADIR%%/_aqt/data/qt/icons/flag-variant-off-outline.svg %%DATADIR%%/_aqt/data/qt/icons/flag-variant-outline.svg %%DATADIR%%/_aqt/data/qt/icons/flag-variant.svg %%DATADIR%%/_aqt/data/qt/icons/form-textbox.svg %%DATADIR%%/_aqt/data/qt/icons/heart-outline.svg %%DATADIR%%/_aqt/data/qt/icons/heart.svg %%DATADIR%%/_aqt/data/qt/icons/magnify-dark.svg %%DATADIR%%/_aqt/data/qt/icons/magnify-light.svg %%DATADIR%%/_aqt/data/qt/icons/media-record.png %%DATADIR%%/_aqt/data/qt/icons/menu-down-dark.svg %%DATADIR%%/_aqt/data/qt/icons/menu-down-light.svg %%DATADIR%%/_aqt/data/qt/icons/menu-up-dark.svg %%DATADIR%%/_aqt/data/qt/icons/menu-up-light.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-FG_DISABLED-dark.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-FG_DISABLED-light.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-dark.svg %%DATADIR%%/_aqt/data/qt/icons/minus-thick-light.svg %%DATADIR%%/_aqt/data/qt/icons/newspaper.svg %%DATADIR%%/_aqt/data/qt/icons/notetype.svg %%DATADIR%%/_aqt/data/qt/icons/selection-drag-dark.svg %%DATADIR%%/_aqt/data/qt/icons/selection-drag-light.svg %%DATADIR%%/_aqt/data/qt/icons/tag-off-outline.svg %%DATADIR%%/_aqt/data/qt/icons/tag-outline.svg %%DATADIR%%/_aqt/data/qt/icons/tag.svg %%DATADIR%%/_aqt/data/web/css/addonconf.css %%DATADIR%%/_aqt/data/web/css/deckbrowser.css %%DATADIR%%/_aqt/data/web/css/editable.css %%DATADIR%%/_aqt/data/web/css/editor.css %%DATADIR%%/_aqt/data/web/css/overview.css %%DATADIR%%/_aqt/data/web/css/reviewer-bottom.css %%DATADIR%%/_aqt/data/web/css/reviewer.css %%DATADIR%%/_aqt/data/web/css/toolbar-bottom.css %%DATADIR%%/_aqt/data/web/css/toolbar.css %%DATADIR%%/_aqt/data/web/css/webview.css %%DATADIR%%/_aqt/data/web/imgs/anki-logo-thin.png %%DATADIR%%/_aqt/data/web/imgs/favicon.ico %%DATADIR%%/_aqt/data/web/imgs/gears.svg %%DATADIR%%/_aqt/data/web/imgs/media-record.png %%DATADIR%%/_aqt/data/web/imgs/more.png %%DATADIR%%/_aqt/data/web/imgs/paperclip.png %%DATADIR%%/_aqt/data/web/imgs/refresh.svg %%DATADIR%%/_aqt/data/web/imgs/text_bold.png %%DATADIR%%/_aqt/data/web/imgs/text_clear.png %%DATADIR%%/_aqt/data/web/imgs/text_cloze.png %%DATADIR%%/_aqt/data/web/imgs/text_italic.png %%DATADIR%%/_aqt/data/web/imgs/text_sub.png %%DATADIR%%/_aqt/data/web/imgs/text_super.png %%DATADIR%%/_aqt/data/web/imgs/text_under.png %%DATADIR%%/_aqt/data/web/js/deckbrowser.js %%DATADIR%%/_aqt/data/web/js/editor.js %%DATADIR%%/_aqt/data/web/js/mathjax.js %%DATADIR%%/_aqt/data/web/js/reviewer-bottom.js %%DATADIR%%/_aqt/data/web/js/reviewer.js %%DATADIR%%/_aqt/data/web/js/toolbar.js %%DATADIR%%/_aqt/data/web/js/vendor/bootstrap.bundle.min.js %%DATADIR%%/_aqt/data/web/js/vendor/jquery-ui.min.js %%DATADIR%%/_aqt/data/web/js/vendor/jquery.min.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/assistive-mml.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/complexity.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/explorer.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/a11y/semantic-enrich.js %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/de.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/en.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/es.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/fr.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/hi.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/it.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/sre/mathmaps/nemeth.json %%DATADIR%%/_aqt/data/web/js/vendor/mathjax/tex-chtml-full.js %%DATADIR%%/_aqt/data/web/js/vendor/plot.js %%DATADIR%%/_aqt/data/web/js/webview.js %%DATADIR%%/_aqt/data/web/pages/card-info.css %%DATADIR%%/_aqt/data/web/pages/card-info.html %%DATADIR%%/_aqt/data/web/pages/card-info.js %%DATADIR%%/_aqt/data/web/pages/change-notetype.css %%DATADIR%%/_aqt/data/web/pages/change-notetype.html %%DATADIR%%/_aqt/data/web/pages/change-notetype.js %%DATADIR%%/_aqt/data/web/pages/congrats.css %%DATADIR%%/_aqt/data/web/pages/congrats.html %%DATADIR%%/_aqt/data/web/pages/congrats.js %%DATADIR%%/_aqt/data/web/pages/deck-options.css %%DATADIR%%/_aqt/data/web/pages/deck-options.html %%DATADIR%%/_aqt/data/web/pages/deck-options.js %%DATADIR%%/_aqt/data/web/pages/editable.css %%DATADIR%%/_aqt/data/web/pages/editable.js %%DATADIR%%/_aqt/data/web/pages/graphs.css %%DATADIR%%/_aqt/data/web/pages/graphs.html %%DATADIR%%/_aqt/data/web/pages/graphs.js %%DATADIR%%/_aqt/data/web/pages/image-occlusion.css %%DATADIR%%/_aqt/data/web/pages/image-occlusion.html %%DATADIR%%/_aqt/data/web/pages/image-occlusion.js %%DATADIR%%/_aqt/data/web/pages/import-anki-package.css %%DATADIR%%/_aqt/data/web/pages/import-anki-package.html %%DATADIR%%/_aqt/data/web/pages/import-anki-package.js %%DATADIR%%/_aqt/data/web/pages/import-csv.css %%DATADIR%%/_aqt/data/web/pages/import-csv.html %%DATADIR%%/_aqt/data/web/pages/import-csv.js %%DATADIR%%/_aqt/data/web/pages/import-page.css %%DATADIR%%/_aqt/data/web/pages/import-page.html %%DATADIR%%/_aqt/data/web/pages/import-page.js %%DATADIR%%/_aqt/forms/about_qt5.py %%DATADIR%%/_aqt/forms/about_qt6.py %%DATADIR%%/_aqt/forms/addcards_qt5.py %%DATADIR%%/_aqt/forms/addcards_qt6.py %%DATADIR%%/_aqt/forms/addfield_qt5.py %%DATADIR%%/_aqt/forms/addfield_qt6.py %%DATADIR%%/_aqt/forms/addmodel_qt5.py %%DATADIR%%/_aqt/forms/addmodel_qt6.py %%DATADIR%%/_aqt/forms/addonconf_qt5.py %%DATADIR%%/_aqt/forms/addonconf_qt6.py %%DATADIR%%/_aqt/forms/addons_qt5.py %%DATADIR%%/_aqt/forms/addons_qt6.py %%DATADIR%%/_aqt/forms/browser_qt5.py %%DATADIR%%/_aqt/forms/browser_qt6.py %%DATADIR%%/_aqt/forms/browserdisp_qt5.py %%DATADIR%%/_aqt/forms/browserdisp_qt6.py %%DATADIR%%/_aqt/forms/browseropts_qt5.py %%DATADIR%%/_aqt/forms/browseropts_qt6.py %%DATADIR%%/_aqt/forms/changemap_qt5.py %%DATADIR%%/_aqt/forms/changemap_qt6.py %%DATADIR%%/_aqt/forms/changemodel_qt5.py %%DATADIR%%/_aqt/forms/changemodel_qt6.py %%DATADIR%%/_aqt/forms/clayout_top_qt5.py %%DATADIR%%/_aqt/forms/clayout_top_qt6.py %%DATADIR%%/_aqt/forms/customstudy_qt5.py %%DATADIR%%/_aqt/forms/customstudy_qt6.py %%DATADIR%%/_aqt/forms/dconf_qt5.py %%DATADIR%%/_aqt/forms/dconf_qt6.py %%DATADIR%%/_aqt/forms/debug_qt5.py %%DATADIR%%/_aqt/forms/debug_qt6.py %%DATADIR%%/_aqt/forms/editaddon_qt5.py %%DATADIR%%/_aqt/forms/editaddon_qt6.py %%DATADIR%%/_aqt/forms/editcurrent_qt5.py %%DATADIR%%/_aqt/forms/editcurrent_qt6.py %%DATADIR%%/_aqt/forms/edithtml_qt5.py %%DATADIR%%/_aqt/forms/edithtml_qt6.py %%DATADIR%%/_aqt/forms/emptycards_qt5.py %%DATADIR%%/_aqt/forms/emptycards_qt6.py %%DATADIR%%/_aqt/forms/exporting_qt5.py %%DATADIR%%/_aqt/forms/exporting_qt6.py %%DATADIR%%/_aqt/forms/fields_qt5.py %%DATADIR%%/_aqt/forms/fields_qt6.py %%DATADIR%%/_aqt/forms/filtered_deck_qt5.py %%DATADIR%%/_aqt/forms/filtered_deck_qt6.py %%DATADIR%%/_aqt/forms/finddupes_qt5.py %%DATADIR%%/_aqt/forms/finddupes_qt6.py %%DATADIR%%/_aqt/forms/findreplace_qt5.py %%DATADIR%%/_aqt/forms/findreplace_qt6.py %%DATADIR%%/_aqt/forms/forget_qt5.py %%DATADIR%%/_aqt/forms/forget_qt6.py %%DATADIR%%/_aqt/forms/getaddons_qt5.py %%DATADIR%%/_aqt/forms/getaddons_qt6.py %%DATADIR%%/_aqt/forms/importing_qt5.py %%DATADIR%%/_aqt/forms/importing_qt6.py %%DATADIR%%/_aqt/forms/main_qt5.py %%DATADIR%%/_aqt/forms/main_qt6.py %%DATADIR%%/_aqt/forms/modelopts_qt5.py %%DATADIR%%/_aqt/forms/modelopts_qt6.py %%DATADIR%%/_aqt/forms/models_qt5.py %%DATADIR%%/_aqt/forms/models_qt6.py %%DATADIR%%/_aqt/forms/preferences_qt5.py %%DATADIR%%/_aqt/forms/preferences_qt6.py %%DATADIR%%/_aqt/forms/preview_qt5.py %%DATADIR%%/_aqt/forms/preview_qt6.py %%DATADIR%%/_aqt/forms/profiles_qt5.py %%DATADIR%%/_aqt/forms/profiles_qt6.py %%DATADIR%%/_aqt/forms/progress_qt5.py %%DATADIR%%/_aqt/forms/progress_qt6.py %%DATADIR%%/_aqt/forms/reposition_qt5.py %%DATADIR%%/_aqt/forms/reposition_qt6.py %%DATADIR%%/_aqt/forms/setgroup_qt5.py %%DATADIR%%/_aqt/forms/setgroup_qt6.py %%DATADIR%%/_aqt/forms/setlang_qt5.py %%DATADIR%%/_aqt/forms/setlang_qt6.py %%DATADIR%%/_aqt/forms/stats_qt5.py %%DATADIR%%/_aqt/forms/stats_qt6.py %%DATADIR%%/_aqt/forms/studydeck_qt5.py %%DATADIR%%/_aqt/forms/studydeck_qt6.py %%DATADIR%%/_aqt/forms/synclog_qt5.py %%DATADIR%%/_aqt/forms/synclog_qt6.py %%DATADIR%%/_aqt/forms/taglimit_qt5.py %%DATADIR%%/_aqt/forms/taglimit_qt6.py %%DATADIR%%/_aqt/forms/template_qt5.py %%DATADIR%%/_aqt/forms/template_qt6.py %%DATADIR%%/_aqt/forms/widgets_qt5.py %%DATADIR%%/_aqt/forms/widgets_qt6.py %%DATADIR%%/_aqt/hooks.py %%DATADIR%%/_aqt/props.py %%DATADIR%%/_aqt/py.typed %%DATADIR%%/anki/_backend.py %%DATADIR%%/anki/_backend_generated.py %%DATADIR%%/anki/_fluent.py %%DATADIR%%/anki/_legacy.py %%DATADIR%%/anki/_rsbridge.pyi %%DATADIR%%/anki/_rsbridge.so %%DATADIR%%/anki/_vendor/stringcase.py %%DATADIR%%/anki/ankidroid_pb2.py %%DATADIR%%/anki/ankidroid_pb2.pyi %%DATADIR%%/anki/ankiweb_pb2.py %%DATADIR%%/anki/ankiweb_pb2.pyi %%DATADIR%%/anki/backend_pb2.py %%DATADIR%%/anki/backend_pb2.pyi %%DATADIR%%/anki/browser.py %%DATADIR%%/anki/buildinfo.py %%DATADIR%%/anki/card_rendering_pb2.py %%DATADIR%%/anki/card_rendering_pb2.pyi %%DATADIR%%/anki/cards.py %%DATADIR%%/anki/cards_pb2.py %%DATADIR%%/anki/cards_pb2.pyi %%DATADIR%%/anki/collection.py %%DATADIR%%/anki/collection_pb2.py %%DATADIR%%/anki/collection_pb2.pyi %%DATADIR%%/anki/config.py %%DATADIR%%/anki/config_pb2.py %%DATADIR%%/anki/config_pb2.pyi %%DATADIR%%/anki/consts.py %%DATADIR%%/anki/db.py %%DATADIR%%/anki/dbproxy.py %%DATADIR%%/anki/deck_config_pb2.py %%DATADIR%%/anki/deck_config_pb2.pyi %%DATADIR%%/anki/decks.py %%DATADIR%%/anki/decks_pb2.py %%DATADIR%%/anki/decks_pb2.pyi %%DATADIR%%/anki/errors.py %%DATADIR%%/anki/exporting.py %%DATADIR%%/anki/find.py %%DATADIR%%/anki/foreign_data/__init__.py %%DATADIR%%/anki/foreign_data/mnemosyne.py %%DATADIR%%/anki/frontend_pb2.py %%DATADIR%%/anki/frontend_pb2.pyi %%DATADIR%%/anki/generic_pb2.py %%DATADIR%%/anki/generic_pb2.pyi %%DATADIR%%/anki/hooks.py %%DATADIR%%/anki/hooks_gen.py %%DATADIR%%/anki/httpclient.py %%DATADIR%%/anki/i18n_pb2.py %%DATADIR%%/anki/i18n_pb2.pyi %%DATADIR%%/anki/image_occlusion_pb2.py %%DATADIR%%/anki/image_occlusion_pb2.pyi %%DATADIR%%/anki/import_export_pb2.py %%DATADIR%%/anki/import_export_pb2.pyi %%DATADIR%%/anki/importing/__init__.py %%DATADIR%%/anki/importing/anki2.py %%DATADIR%%/anki/importing/apkg.py %%DATADIR%%/anki/importing/base.py %%DATADIR%%/anki/importing/csvfile.py %%DATADIR%%/anki/importing/mnemo.py %%DATADIR%%/anki/importing/noteimp.py %%DATADIR%%/anki/importing/pauker.py %%DATADIR%%/anki/importing/supermemo_xml.py %%DATADIR%%/anki/lang.py %%DATADIR%%/anki/latex.py %%DATADIR%%/anki/links_pb2.py %%DATADIR%%/anki/links_pb2.pyi %%DATADIR%%/anki/media.py %%DATADIR%%/anki/media_pb2.py %%DATADIR%%/anki/media_pb2.pyi %%DATADIR%%/anki/models.py %%DATADIR%%/anki/notes.py %%DATADIR%%/anki/notes_pb2.py %%DATADIR%%/anki/notes_pb2.pyi %%DATADIR%%/anki/notetypes_pb2.py %%DATADIR%%/anki/notetypes_pb2.pyi %%DATADIR%%/anki/py.typed %%DATADIR%%/anki/rsbackend.py %%DATADIR%%/anki/scheduler/__init__.py %%DATADIR%%/anki/scheduler/base.py %%DATADIR%%/anki/scheduler/dummy.py %%DATADIR%%/anki/scheduler/legacy.py %%DATADIR%%/anki/scheduler/v3.py %%DATADIR%%/anki/scheduler_pb2.py %%DATADIR%%/anki/scheduler_pb2.pyi %%DATADIR%%/anki/search_pb2.py %%DATADIR%%/anki/search_pb2.pyi %%DATADIR%%/anki/sound.py %%DATADIR%%/anki/stats.py %%DATADIR%%/anki/stats_pb2.py %%DATADIR%%/anki/stats_pb2.pyi %%DATADIR%%/anki/statsbg.py %%DATADIR%%/anki/stdmodels.py %%DATADIR%%/anki/storage.py %%DATADIR%%/anki/sync.py %%DATADIR%%/anki/sync_pb2.py %%DATADIR%%/anki/sync_pb2.pyi %%DATADIR%%/anki/syncserver.py %%DATADIR%%/anki/tags.py %%DATADIR%%/anki/tags_pb2.py %%DATADIR%%/anki/tags_pb2.pyi %%DATADIR%%/anki/template.py %%DATADIR%%/anki/types.py %%DATADIR%%/anki/utils.py %%DATADIR%%/aqt/__init__.py %%DATADIR%%/aqt/_macos_helper.py %%DATADIR%%/aqt/about.py %%DATADIR%%/aqt/addcards.py %%DATADIR%%/aqt/addons.py %%DATADIR%%/aqt/browser/__init__.py %%DATADIR%%/aqt/browser/browser.py %%DATADIR%%/aqt/browser/card_info.py %%DATADIR%%/aqt/browser/find_and_replace.py %%DATADIR%%/aqt/browser/find_duplicates.py %%DATADIR%%/aqt/browser/layout.py %%DATADIR%%/aqt/browser/previewer.py %%DATADIR%%/aqt/browser/sidebar/__init__.py %%DATADIR%%/aqt/browser/sidebar/item.py %%DATADIR%%/aqt/browser/sidebar/model.py %%DATADIR%%/aqt/browser/sidebar/searchbar.py %%DATADIR%%/aqt/browser/sidebar/toolbar.py %%DATADIR%%/aqt/browser/sidebar/tree.py %%DATADIR%%/aqt/browser/table/__init__.py %%DATADIR%%/aqt/browser/table/model.py %%DATADIR%%/aqt/browser/table/state.py %%DATADIR%%/aqt/browser/table/table.py %%DATADIR%%/aqt/changenotetype.py %%DATADIR%%/aqt/clayout.py %%DATADIR%%/aqt/colors.py %%DATADIR%%/aqt/customstudy.py %%DATADIR%%/aqt/dbcheck.py %%DATADIR%%/aqt/debug_console.py %%DATADIR%%/aqt/deckbrowser.py %%DATADIR%%/aqt/deckchooser.py %%DATADIR%%/aqt/deckconf.py %%DATADIR%%/aqt/deckdescription.py %%DATADIR%%/aqt/deckoptions.py %%DATADIR%%/aqt/editcurrent.py %%DATADIR%%/aqt/editor.py %%DATADIR%%/aqt/emptycards.py %%DATADIR%%/aqt/errors.py %%DATADIR%%/aqt/exporting.py %%DATADIR%%/aqt/fields.py %%DATADIR%%/aqt/filtered_deck.py %%DATADIR%%/aqt/flags.py %%DATADIR%%/aqt/forms/__init__.py %%DATADIR%%/aqt/forms/about.py %%DATADIR%%/aqt/forms/addcards.py %%DATADIR%%/aqt/forms/addfield.py %%DATADIR%%/aqt/forms/addmodel.py %%DATADIR%%/aqt/forms/addonconf.py %%DATADIR%%/aqt/forms/addons.py %%DATADIR%%/aqt/forms/browser.py %%DATADIR%%/aqt/forms/browserdisp.py %%DATADIR%%/aqt/forms/browseropts.py %%DATADIR%%/aqt/forms/changemap.py %%DATADIR%%/aqt/forms/changemodel.py %%DATADIR%%/aqt/forms/clayout_top.py %%DATADIR%%/aqt/forms/customstudy.py %%DATADIR%%/aqt/forms/dconf.py %%DATADIR%%/aqt/forms/debug.py %%DATADIR%%/aqt/forms/editaddon.py %%DATADIR%%/aqt/forms/editcurrent.py %%DATADIR%%/aqt/forms/edithtml.py %%DATADIR%%/aqt/forms/emptycards.py %%DATADIR%%/aqt/forms/exporting.py %%DATADIR%%/aqt/forms/fields.py %%DATADIR%%/aqt/forms/filtered_deck.py %%DATADIR%%/aqt/forms/finddupes.py %%DATADIR%%/aqt/forms/findreplace.py %%DATADIR%%/aqt/forms/forget.py %%DATADIR%%/aqt/forms/getaddons.py %%DATADIR%%/aqt/forms/importing.py %%DATADIR%%/aqt/forms/main.py %%DATADIR%%/aqt/forms/modelopts.py %%DATADIR%%/aqt/forms/models.py %%DATADIR%%/aqt/forms/preferences.py %%DATADIR%%/aqt/forms/preview.py %%DATADIR%%/aqt/forms/profiles.py %%DATADIR%%/aqt/forms/progress.py %%DATADIR%%/aqt/forms/reposition.py %%DATADIR%%/aqt/forms/setgroup.py %%DATADIR%%/aqt/forms/setlang.py %%DATADIR%%/aqt/forms/stats.py %%DATADIR%%/aqt/forms/studydeck.py %%DATADIR%%/aqt/forms/synclog.py %%DATADIR%%/aqt/forms/taglimit.py %%DATADIR%%/aqt/forms/template.py %%DATADIR%%/aqt/forms/widgets.py %%DATADIR%%/aqt/gui_hooks.py %%DATADIR%%/aqt/import_export/__init__.py %%DATADIR%%/aqt/import_export/exporting.py %%DATADIR%%/aqt/import_export/import_dialog.py %%DATADIR%%/aqt/import_export/importing.py %%DATADIR%%/aqt/importing.py %%DATADIR%%/aqt/legacy.py %%DATADIR%%/aqt/main.py %%DATADIR%%/aqt/mediacheck.py %%DATADIR%%/aqt/mediasrv.py %%DATADIR%%/aqt/mediasync.py %%DATADIR%%/aqt/modelchooser.py %%DATADIR%%/aqt/models.py %%DATADIR%%/aqt/mpv.py %%DATADIR%%/aqt/notetypechooser.py %%DATADIR%%/aqt/operations/__init__.py %%DATADIR%%/aqt/operations/card.py %%DATADIR%%/aqt/operations/collection.py %%DATADIR%%/aqt/operations/deck.py %%DATADIR%%/aqt/operations/note.py %%DATADIR%%/aqt/operations/notetype.py %%DATADIR%%/aqt/operations/scheduling.py %%DATADIR%%/aqt/operations/tag.py %%DATADIR%%/aqt/overview.py %%DATADIR%%/aqt/package.py %%DATADIR%%/aqt/preferences.py %%DATADIR%%/aqt/profiles.py %%DATADIR%%/aqt/progress.py %%DATADIR%%/aqt/props.py %%DATADIR%%/aqt/py.typed %%DATADIR%%/aqt/qt/__init__.py %%DATADIR%%/aqt/qt/qt5.py %%DATADIR%%/aqt/qt/qt5_audio.py %%DATADIR%%/aqt/qt/qt5_compat.py %%DATADIR%%/aqt/qt/qt6.py %%DATADIR%%/aqt/reviewer.py %%DATADIR%%/aqt/schema_change_tracker.py %%DATADIR%%/aqt/sound.py %%DATADIR%%/aqt/stats.py %%DATADIR%%/aqt/studydeck.py %%DATADIR%%/aqt/stylesheets.py %%DATADIR%%/aqt/switch.py %%DATADIR%%/aqt/sync.py %%DATADIR%%/aqt/tagedit.py %%DATADIR%%/aqt/taglimit.py %%DATADIR%%/aqt/taskman.py %%DATADIR%%/aqt/theme.py %%DATADIR%%/aqt/toolbar.py %%DATADIR%%/aqt/tts.py %%DATADIR%%/aqt/undo.py %%DATADIR%%/aqt/update.py %%DATADIR%%/aqt/utils.py %%DATADIR%%/aqt/webview.py %%DATADIR%%/aqt/widgetgallery.py %%DATADIR%%/aqt/winpaths.py share/applications/anki.desktop share/pixmaps/anki.png share/pixmaps/anki.xpm