From 6230a3ad3985de35f25e45da4517821dfcc10241 Mon Sep 17 00:00:00 2001 From: Lorenzo Beretta Date: Mon, 5 Jun 2023 11:11:45 +0200 Subject: [PATCH] anki: update to 2.1.65 It compiles but it fails do_install --- srcpkgs/anki/patches/disable_popup.patch | 12 +++--- srcpkgs/anki/patches/fix_float.patch | 42 ------------------- srcpkgs/anki/patches/fix_mpv_args.patch | 29 ------------- srcpkgs/anki/patches/fix_profile_save.patch | 15 ------- srcpkgs/anki/patches/fix_unescape.patch | 11 ----- srcpkgs/anki/patches/wtf-git-submodules.patch | 40 ++++++++++++++++++ srcpkgs/anki/template | 18 +++++--- 7 files changed, 59 insertions(+), 108 deletions(-) delete mode 100644 srcpkgs/anki/patches/fix_float.patch delete mode 100644 srcpkgs/anki/patches/fix_mpv_args.patch delete mode 100644 srcpkgs/anki/patches/fix_profile_save.patch delete mode 100644 srcpkgs/anki/patches/fix_unescape.patch create mode 100644 srcpkgs/anki/patches/wtf-git-submodules.patch diff --git a/srcpkgs/anki/patches/disable_popup.patch b/srcpkgs/anki/patches/disable_popup.patch index 8b7a041fc656..096b427ea626 100644 --- a/srcpkgs/anki/patches/disable_popup.patch +++ b/srcpkgs/anki/patches/disable_popup.patch @@ -1,10 +1,10 @@ ---- a/aqt/update.py -+++ b/aqt/update.py -@@ -31,6 +31,7 @@ class LatestVersionFinder(QThread): - return d +--- a/qt/aqt/update.py ++++ b/qt/aqt/update.py +@@ -33,6 +33,7 @@ class LatestVersionFinder(QThread): + } - def run(self): + def run(self) -> None: + return - if not self.config['updates']: + if not self.config["updates"]: return d = self._data() diff --git a/srcpkgs/anki/patches/fix_float.patch b/srcpkgs/anki/patches/fix_float.patch deleted file mode 100644 index 333d76c8efd7..000000000000 --- a/srcpkgs/anki/patches/fix_float.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/aqt/deckconf.py -+++ b/aqt/deckconf.py -@@ -172,7 +172,7 @@ class DeckConf(QDialog): - f.lrnGradInt.setValue(c['ints'][0]) - f.lrnEasyInt.setValue(c['ints'][1]) - f.lrnEasyInt.setValue(c['ints'][1]) -- f.lrnFactor.setValue(c['initialFactor']/10.0) -+ f.lrnFactor.setValue(c['initialFactor']//10) - f.newOrder.setCurrentIndex(c['order']) - f.newPerDay.setValue(c['perDay']) - f.bury.setChecked(c.get("bury", True)) -@@ -180,7 +180,7 @@ class DeckConf(QDialog): - # rev - c = self.conf['rev'] - f.revPerDay.setValue(c['perDay']) -- f.easyBonus.setValue(c['ease4']*100) -+ f.easyBonus.setValue(int(c['ease4'])*100) - f.fi1.setValue(c['ivlFct']*100) - f.maxIvl.setValue(c['maxIvl']) - f.revplim.setText(self.parentLimText('rev')) -@@ -192,7 +192,7 @@ class DeckConf(QDialog): - # lapse - c = self.conf['lapse'] - f.lapSteps.setText(self.listToUser(c['delays'])) -- f.lapMult.setValue(c['mult']*100) -+ f.lapMult.setValue(int(c['mult'])*100) - f.lapMinInt.setValue(c['minInt']) - f.leechThreshold.setValue(c['leechFails']) - f.leechAction.setCurrentIndex(c['leechAction']) ---- a/aqt/preferences.py -+++ b/aqt/preferences.py -@@ -77,8 +77,8 @@ class Preferences(QDialog): - f.hwAccel.setVisible(False) - else: - f.hwAccel.setChecked(self.mw.pm.glMode() != "software") -- f.lrnCutoff.setValue(qc['collapseTime']/60.0) -- f.timeLimit.setValue(qc['timeLim']/60.0) -+ f.lrnCutoff.setValue(qc['collapseTime']//60) -+ f.timeLimit.setValue(qc['timeLim']//60) - f.showEstimates.setChecked(qc['estTimes']) - f.showProgress.setChecked(qc['dueCounts']) - f.nightMode.setChecked(qc.get("nightMode", False)) diff --git a/srcpkgs/anki/patches/fix_mpv_args.patch b/srcpkgs/anki/patches/fix_mpv_args.patch deleted file mode 100644 index 0b99dd8fe856..000000000000 --- a/srcpkgs/anki/patches/fix_mpv_args.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/anki/mpv.py -+++ b/anki/mpv.py -@@ -104,9 +104,9 @@ - """ - self.argv = [self.executable] - self.argv += self.default_argv -- self.argv += ["--input-ipc-server", self._sock_filename] -+ self.argv += ["--input-ipc-server="+self._sock_filename] - if self.window_id is not None: -- self.argv += ["--wid", str(self.window_id)] -+ self.argv += ["--wid="+str(self.window_id)] - - def _start_process(self): - """Start the mpv process. - ---- a/anki/sound.py -+++ b/anki/sound.py -@@ -123,10 +123,7 @@ - - def setMpvConfigBase(base): - mpvConfPath = os.path.join(base, "mpv.conf") -- MpvManager.default_argv += [ -- "--no-config", -- "--include="+mpvConfPath, -- ] -+ MpvManager.default_argv += ["--include="+mpvConfPath] - - mpvManager = None - diff --git a/srcpkgs/anki/patches/fix_profile_save.patch b/srcpkgs/anki/patches/fix_profile_save.patch deleted file mode 100644 index 9d72a1a20e82..000000000000 --- a/srcpkgs/anki/patches/fix_profile_save.patch +++ /dev/null @@ -1,15 +0,0 @@ -Fixes crash related to saving profile data on exit. ---- a/aqt/profiles.py -+++ b/aqt/profiles.py -@@ -160,7 +160,10 @@ a flash drive.""" % self.base) - return up.load() - - def _pickle(self, obj): -- return pickle.dumps(obj, protocol=0) -+ for key, val in obj.items(): -+ if isinstance(val, QByteArray): -+ obj[key] = bytes(val) # type: ignore -+ return pickle.dumps(obj, protocol=4) - - def load(self, name): - assert name != "_global" diff --git a/srcpkgs/anki/patches/fix_unescape.patch b/srcpkgs/anki/patches/fix_unescape.patch deleted file mode 100644 index f7024bc7bf15..000000000000 --- a/srcpkgs/anki/patches/fix_unescape.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/aqt/reviewer.py -+++ b/aqt/reviewer.py -@@ -359,7 +359,7 @@ - cor = stripHTML(cor) - # ensure we don't chomp multiple whitespace - cor = cor.replace(" ", " ") -- cor = parser.unescape(cor) -+ cor = html.unescape(cor) - cor = cor.replace("\xa0", " ") - cor = cor.strip() - given = self.typedAnswer diff --git a/srcpkgs/anki/patches/wtf-git-submodules.patch b/srcpkgs/anki/patches/wtf-git-submodules.patch new file mode 100644 index 000000000000..287d039cf071 --- /dev/null +++ b/srcpkgs/anki/patches/wtf-git-submodules.patch @@ -0,0 +1,40 @@ +--- a/rslib/i18n/build/gather.rs ++++ b/rslib/i18n/build/gather.rs +@@ -21,7 +21,8 @@ pub fn get_ftl_data() -> TranslationsByLang { + let ftl_base = source_tree_root(); + add_folder(&mut map, &ftl_base.join("core"), "templates"); + // And core translations from submodule +- add_translation_root(&mut map, &ftl_base.join("core-repo/core"), true); ++ // thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', rslib/i18n/build/gather.rs:69:37 ++ //add_translation_root(&mut map, &ftl_base.join("core-repo/core"), true); + + if let Some(path) = extra_ftl_root() { + // Mobile client has requested its own extra translations +@@ -35,7 +36,7 @@ pub fn get_ftl_data() -> TranslationsByLang { + // Qt core templates from this repo + add_folder(&mut map, &ftl_base.join("qt"), "templates"); + // And translations from submodule +- add_translation_root(&mut map, &ftl_base.join("qt-repo/desktop"), true) ++ //add_translation_root(&mut map, &ftl_base.join("qt-repo/desktop"), true) + } + map + } +@@ -65,6 +66,7 @@ fn add_folder(map: &mut TranslationsByLang, folder: &Path, lang: &str) { + /// If ignore_templates is true, the templates/ folder will be ignored, on the + /// assumption the templates were extracted from the source tree. + fn add_translation_root(map: &mut TranslationsByLang, root: &Path, ignore_templates: bool) { ++ eprint!("add_translation_root({})\n", root.display()); + for entry in fs::read_dir(root).unwrap() { + let entry = entry.unwrap(); + let lang = entry.file_name().to_string_lossy().to_string(); +--- a/rslib/i18n/build/main.rs ++++ b/rslib/i18n/build/main.rs +@@ -26,6 +26,7 @@ fn main() { + println!("cargo:rerun-if-env-changed=STRINGS_JSON"); + if let Some(path) = option_env!("STRINGS_JSON") { + let meta_json = serde_json::to_string_pretty(&modules).unwrap(); +- fs::write(path, meta_json).unwrap(); ++ println!("path({})", path); ++ println!("fs::write(path, meta_json).unwrap()"); + } + } diff --git a/srcpkgs/anki/template b/srcpkgs/anki/template index ead0f33a1df7..05dea8256647 100644 --- a/srcpkgs/anki/template +++ b/srcpkgs/anki/template @@ -1,8 +1,11 @@ # Template file for 'anki' pkgname=anki -version=2.1.15 -revision=6 -build_style=gnu-makefile +version=2.1.65 +revision=1 +# XXX "The Rust version pinned in rust-toolchain.toml will be automatically downloaded if not yet installed" +build_style=cargo +hostmakedepends="pkg-config protobuf nodejs" +makedepends="libzstd-devel nodejs-devel openssl-devel" depends="python3-PyQt5-webengine python3-requests python3-SQLAlchemy python3-PyAudio python3-mpv python3-Markdown python3-send2trash python3-BeautifulSoup4 python3-decorator python3-jsonschema" @@ -11,8 +14,13 @@ maintainer="Orphaned " license="AGPL-3.0-or-later" homepage="https://apps.ankiweb.net" changelog="https://apps.ankiweb.net/docs/changes.html" -distfiles="https://apps.ankiweb.net/downloads/archive/anki-$version-source.tgz" -checksum=5a53760164c77d619f55107a13099cffe620566a7f610b61b6c4b52487f3bb89 +distfiles="https://github.com/ankitects/anki/archive/refs/tags/$version.tar.gz" +checksum=ca1c37e8e32bec02f09421bd29ac67253e4039e705bf9fba919918c4559b48e8 +# "Python, node and protoc are downloaded as part of the build. You can optionally define PYTHON_BINARY, NODE_BINARY and/or PROTOC_BINARY to use locally-installed versions instead." +export PYTHON_BINARY=/usr/bin/python3 +export PROTOC_BINARY=/usr/bin/protoc +export NODE_BINARY=/usr/bin/node +export RUST_BACKTRACE=full # XXX only to debug those "helpful" error messages ("file not found" -- WHAT FILE?!?!?!) python_version=3