anki: 25.02.5 -> 25.07.5
This includes needing to migrate to a 'uv' based packaging system, since that's what upstream did. Unfortunately, `uv sync` as a FoD doesn't work since it's not a stable output format. I handled it by writing a hacky "uv.lock to nix" converter (in the form of the 'update.sh' script), and then using fetchurl to download every file referenced in the uv.lock. Using that, combined with the "UV_FIND_LINKS" environment variable lets uv operate offline, so it seems like that's a good enough solution there, phew! The next hurdle was that anki wants us to populate 'pyenv' for an offline build, and I wasn't sure the exact right 'uv' commands for that. I ended up with a mix of 'uv export' to make requirements.txt files, and 'uv pip install' to install em. That seems to work okay for most things. The final problem was that using anki's suggested version of PyQt hits linker errors. To me, the easiest solution seemed like just using the already-packaged pyqt packages from nixpkgs, so I did that. Overall, this feels pragmatic and like it works. I think the most compelling alternative would be to generate "requirements.txt" using uv export, relax all the version requirements, and use nixpkgs-packaged dependencies only. I ended up not taking that route because not all of anki's dependencies are present in nixpkgs, and so doing it like done in this PR seemed more expedient. That's the notes I have, hopefully this approach seems overall reasonable!
This commit is contained in:
+96
-82
@@ -3,9 +3,9 @@
|
||||
stdenv,
|
||||
|
||||
writableTmpDirAsHomeHook,
|
||||
buildEnv,
|
||||
cargo,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
installShellFiles,
|
||||
lame,
|
||||
mpv-unwrapped,
|
||||
@@ -16,9 +16,11 @@
|
||||
jq,
|
||||
protobuf,
|
||||
python3,
|
||||
python3Packages,
|
||||
qt6,
|
||||
rsync,
|
||||
rustPlatform,
|
||||
uv,
|
||||
writeShellScriptBin,
|
||||
yarn,
|
||||
yarn-berry_4,
|
||||
@@ -32,12 +34,16 @@ let
|
||||
yarn-berry = yarn-berry_4;
|
||||
|
||||
pname = "anki";
|
||||
version = "25.02.5";
|
||||
rev = "29192d156ae60d6ce35e80ccf815a8331c9db724";
|
||||
version = "25.07.5";
|
||||
rev = "7172b2d26684c7ef9d10e249bd43dc5bf73ae00c";
|
||||
|
||||
srcHash = "sha256-lx3tK57gcQpwmiqUzO6iU7sE31LPFp6s80prYaB2jHE=";
|
||||
cargoHash = "sha256-BPCfeUiZ23FdZaF+zDUrRZchauNZWQ3gSO+Uo9WRPes=";
|
||||
yarnHash = "sha256-3G+9N3xOzog3XDCKDQJCY/6CB3i6oXixRgxEyv7OG3U=";
|
||||
srcHash = "sha256-nWxRr55Hm40V3Ijw+WetBKNoreLpcvRscgbOZa0REcY=";
|
||||
cargoHash = "sha256-H/xwPPL6VupSZGLPEThhoeMcg12FvAX3fmNM6zYfqRQ=";
|
||||
yarnHash = "sha256-adHnV345oDm20R8zGdEiEW+8/mTQAz4oxraybRfmwew=";
|
||||
pythonDeps = map (meta: {
|
||||
url = meta.url;
|
||||
path = toString (fetchurl meta);
|
||||
}) (lib.importJSON ./uv-deps.json);
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ankitects";
|
||||
@@ -66,19 +72,39 @@ let
|
||||
exec ${yarn}/bin/yarn "$@"
|
||||
'';
|
||||
|
||||
anki-build-python = python3.withPackages (ps: with ps; [ mypy-protobuf ]);
|
||||
uvWheels = stdenv.mkDerivation {
|
||||
name = "uv-wheels";
|
||||
phases = [ "installPhase" ];
|
||||
|
||||
pyEnv = buildEnv {
|
||||
name = "anki-pyenv-${version}";
|
||||
paths = with python3.pkgs; [
|
||||
pip
|
||||
anki-build-python
|
||||
];
|
||||
pathsToLink = [ "/bin" ];
|
||||
# otherwise, it's too long of a string
|
||||
passAsFile = [ "installCommand" ];
|
||||
installCommand = ''
|
||||
#!${stdenv.shell}
|
||||
mkdir -p $out
|
||||
# note: uv.lock doesn't contain build deps?? https://github.com/astral-sh/uv/issues/5190
|
||||
# link them in manually
|
||||
ln -vsf ${python3Packages.setuptools.dist}/*.whl $out
|
||||
ln -vsf ${python3Packages.editables.dist}/*.whl $out
|
||||
# we also force nixpkgs pyqt6 stuff because that needs to match the
|
||||
# nixpkgs qt6 version, otherwise we get linker errors
|
||||
ln -vsf ${python3Packages.pyqt6.dist}/*.whl $out
|
||||
ln -vsf ${python3Packages.pyqt6-webengine.dist}/*.whl $out
|
||||
ln -vsf ${python3Packages.pyqt6-sip.dist}/*.whl $out
|
||||
''
|
||||
+ (lib.strings.concatStringsSep "\n" (
|
||||
map (dep: ''
|
||||
if ! [[ "${builtins.baseNameOf dep.url}" =~ (PyQt|pyqt) ]]; then
|
||||
ln -vsf ${dep.path} "$out/${builtins.baseNameOf dep.url}"
|
||||
fi
|
||||
'') pythonDeps
|
||||
));
|
||||
|
||||
installPhase = ''bash $installCommandPath'';
|
||||
};
|
||||
in
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
format = "setuptools";
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
format = "other";
|
||||
inherit pname version;
|
||||
|
||||
outputs = [
|
||||
@@ -93,6 +119,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
./patches/disable-auto-update.patch
|
||||
./patches/remove-the-gl-library-workaround.patch
|
||||
./patches/skip-formatting-python-code.patch
|
||||
./patches/fix-compilation-under-rust-1.89.patch
|
||||
# Used in with-addons.nix
|
||||
./patches/allow-setting-addons-folder.patch
|
||||
];
|
||||
@@ -107,6 +134,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
uv
|
||||
cargo
|
||||
installShellFiles
|
||||
jq
|
||||
@@ -126,60 +154,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isLinux qt6.qtwayland;
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
# This rather long list came from running:
|
||||
# grep --no-filename -oE "^[^ =]*" python/{requirements.base.txt,requirements.bundle.txt,requirements.qt6_lin.txt} | \
|
||||
# sort | uniq | grep -v "^#$"
|
||||
# in their repo at the git tag for this version
|
||||
# There's probably a more elegant way, but the above extracted all the
|
||||
# names, without version numbers, of their python dependencies. The hope is
|
||||
# that nixpkgs versions are "close enough"
|
||||
# I then removed the ones the check phase failed on (pythonCatchConflictsPhase)
|
||||
attrs
|
||||
beautifulsoup4
|
||||
blinker
|
||||
build
|
||||
certifi
|
||||
charset-normalizer
|
||||
click
|
||||
colorama
|
||||
decorator
|
||||
flask
|
||||
flask-cors
|
||||
google-api-python-client
|
||||
idna
|
||||
importlib-metadata
|
||||
itsdangerous
|
||||
jinja2
|
||||
jsonschema
|
||||
markdown
|
||||
markupsafe
|
||||
orjson
|
||||
packaging
|
||||
pip
|
||||
pip-system-certs
|
||||
pip-tools
|
||||
protobuf
|
||||
pyproject-hooks
|
||||
pyqt6
|
||||
pyqt6-sip
|
||||
pyqt6-webengine
|
||||
pyrsistent
|
||||
pysocks
|
||||
requests
|
||||
send2trash
|
||||
setuptools
|
||||
soupsieve
|
||||
tomli
|
||||
urllib3
|
||||
waitress
|
||||
werkzeug
|
||||
wheel
|
||||
wrapt
|
||||
zipp
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
pytest
|
||||
mock
|
||||
astroid
|
||||
@@ -207,6 +182,12 @@ python3.pkgs.buildPythonApplication rec {
|
||||
NODE_BINARY = lib.getExe nodejs;
|
||||
PROTOC_BINARY = lib.getExe protobuf;
|
||||
PYTHON_BINARY = lib.getExe python3;
|
||||
UV_BINARY = lib.getExe uv;
|
||||
UV_NO_MANAGED_PYTHON = "1";
|
||||
UV_SYSTEM_PYTHON = true;
|
||||
UV_PYTHON_DOWNLOADS = "never";
|
||||
UV_OFFLINE = "1";
|
||||
UV_FIND_LINKS = "${uvWheels}";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
@@ -216,17 +197,40 @@ python3.pkgs.buildPythonApplication rec {
|
||||
mkdir -p out/pylib/anki .git
|
||||
|
||||
echo ${builtins.substring 0 8 rev} > out/buildhash
|
||||
echo ${python3.version} > .python-version
|
||||
|
||||
ln -vsf ${pyEnv} ./out/pyenv
|
||||
# Setup the python environment.
|
||||
# We have 'UV_FIND_LINKS' set, so packages generally should just get picked
|
||||
# up, so install everything anki wants.
|
||||
# Note, for pyqt stuff, our versions may not match (see the comment above
|
||||
# uvWheels), so we don't install those.
|
||||
mkdir -p ./out/pyenv
|
||||
uv export > requirements.txt
|
||||
uv pip install --prefix ./out/pyenv -r requirements.txt
|
||||
uv export --project qt --extra qt --extra audio \
|
||||
--no-emit-package "pyqt6" \
|
||||
--no-emit-package "pyqt6-qt6" \
|
||||
--no-emit-package "pyqt6-webengine" \
|
||||
--no-emit-package "pyqt6-webengine-qt6" \
|
||||
--no-emit-package "pyqt6-sip" \
|
||||
> requirements.txt
|
||||
uv pip install --prefix ./out/pyenv -r requirements.txt
|
||||
uv export --project pylib > requirements.txt
|
||||
uv pip install --prefix ./out/pyenv -r requirements.txt
|
||||
|
||||
# anki's build tooling expects python in there too
|
||||
ln -sf $PYTHON_BINARY ./out/pyenv/bin/python
|
||||
|
||||
mv node_modules out
|
||||
|
||||
# Run everything else
|
||||
# And finally build
|
||||
patchShebangs ./ninja
|
||||
|
||||
export PYTHONPATH=$PYTHONPATH:$PWD/out/pyenv/lib/python${python3.pythonVersion}/site-packages
|
||||
# Necessary for yarn to not complain about 'corepack'
|
||||
jq 'del(.packageManager)' package.json > package.json.tmp && mv package.json.tmp package.json
|
||||
YARN_BINARY="${lib.getExe noInstallYarn}" PIP_USER=1 ./ninja build wheels
|
||||
YARN_BINARY="${lib.getExe noInstallYarn}" PIP_USER=1 \
|
||||
./ninja build wheels
|
||||
'';
|
||||
|
||||
# mimic https://github.com/ankitects/anki/blob/76d8807315fcc2675e7fa44d9ddf3d4608efc487/build/ninja_gen/src/python.rs#L232-L250
|
||||
@@ -247,6 +251,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
in
|
||||
''
|
||||
runHook preCheck
|
||||
export PYTHONPATH=$PYTHONPATH:$PWD/out/pyenv/lib/python${python3.pythonVersion}/site-packages
|
||||
HOME=$TMP ANKI_TEST_MODE=1 PYTHONPATH=$PYTHONPATH:$PWD/out/pylib \
|
||||
pytest -p no:cacheprovider pylib/tests -k ${disabledTestsString}
|
||||
HOME=$TMP ANKI_TEST_MODE=1 PYTHONPATH=$PYTHONPATH:$PWD/out/pylib:$PWD/pylib:$PWD/out/qt \
|
||||
@@ -254,17 +259,21 @@ python3.pkgs.buildPythonApplication rec {
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
mkdir dist
|
||||
mv out/wheels/* dist
|
||||
'';
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
postInstall = ''
|
||||
install -D -t $out/share/applications qt/bundle/lin/anki.desktop
|
||||
mkdir -p $out
|
||||
uv pip install out/wheels/*.whl --prefix $out
|
||||
# remove non-anki bins from dependencies
|
||||
find $out/bin -type f ! -name "anki*" -delete
|
||||
|
||||
install -D -t $out/share/applications qt/launcher/lin/anki.desktop
|
||||
install -D -t $doc/share/doc/anki README* LICENSE*
|
||||
install -D -t $out/share/mime/packages qt/bundle/lin/anki.xml
|
||||
install -D -t $out/share/pixmaps qt/bundle/lin/anki.{png,xpm}
|
||||
installManPage qt/bundle/lin/anki.1
|
||||
install -D -t $out/share/mime/packages qt/launcher/lin/anki.xml
|
||||
install -D -t $out/share/pixmaps qt/launcher/lin/anki.{png,xpm}
|
||||
installManPage qt/launcher/lin/anki.1
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
@@ -304,5 +313,10 @@ python3.pkgs.buildPythonApplication rec {
|
||||
];
|
||||
# Reported to crash at launch on darwin (as of 2.1.65)
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
badPlatforms = [
|
||||
# pyqt6-webengine is broken on darwin
|
||||
# https://github.com/NixOS/nixpkgs/issues/375059
|
||||
lib.systems.inspect.patterns.isDarwin
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,74 +7,56 @@
|
||||
"@dprint/linux-x64-musl@npm:0.47.4": "c8b4c979a92fe897220877b40d59aa6e899ca2a39ce5368ba181ef3c3a376a119f4608b2a5e5271d1d811e055882cad86b890abd91970a32fb32ecfb5bbebdd7",
|
||||
"@dprint/win32-arm64@npm:0.47.4": "5278a87a006758a9fe2b870a571895a6b19afb938cff35a180f192413ddfb8a4b612fcd1817c92e03dc0b587ed0c8ff750213c59d60ef3f0d02a4e2a4c938c5a",
|
||||
"@dprint/win32-x64@npm:0.47.4": "5c5737f28ca10e51f3a548ad0160868a0b643f56a32eae5c8c151944ff47cb79aa109630c1ecf458233c2a3b521d5d284d3a25b60bbcd38885e7908f0db25d16",
|
||||
"@esbuild/aix-ppc64@npm:0.19.12": "0740fd9160dffa94e55cd58d2f9faf4624a2be68d2696376d5c60cfced508809275eac76315796a1aef8daf3b0975b0df0f2d94de10c14c3f40087b7c6eeb047",
|
||||
"@esbuild/aix-ppc64@npm:0.21.5": "1f48fea96ab4fbc2921756361bc8a0c4d0690f14dc2298a357aa3d436bcd1cd646d490e5d71c4e0fb46b9e04401bc93153d6886456dd0665b6758be643c95a16",
|
||||
"@esbuild/android-arm64@npm:0.18.20": "8c1aa2455aab70b61c19e5d818ce418090a6a300619df48000a10ba0caf4649b388d4d039771a5b012621246dcb5ff9bd6b86c98ad74b62caa0e26e821870456",
|
||||
"@esbuild/android-arm64@npm:0.19.12": "29d94e32a47af3ae1cc7c0364b00b3145db0b16539bd8d30356bb3a8769499867a7a3f1bc070f10a63cdb33c29752a43f3e4d4594a316e7d179e82bf12edf47c",
|
||||
"@esbuild/android-arm64@npm:0.21.5": "7a4831b0886c165ed671f0094dcd491235fe503364a261379c84e2225a3c3230a06bce1d3a02316fa8a040b0ffede56c617746dc3b5550549ae3fb07095bb20d",
|
||||
"@esbuild/android-arm@npm:0.18.20": "c38427fdc325049c8d73237693c637f829de68293d853c41e9ac1ef70773fc6099ab6008194216f89e1f22855fdf7e6ef8f01ee46353fcbc3bea387ab592cfe0",
|
||||
"@esbuild/android-arm@npm:0.19.12": "f6784506ff94332d1332536cfcabe54dacb6ddc0ce285cdc3d00bb30a71c5dc57b81e3552354c59fe992d6dbc0f66eb8040d18cba76d44ee9cd7b7ed2a3feece",
|
||||
"@esbuild/android-arm@npm:0.21.5": "9fa871018a9f2198f40fde2c672fcb1b9d3ab5ee602644ea4cf68c548ee2c0b6c60ad851ce85219f84886fd29757d8c49bac28ea48a2a16708a088e32dfe673a",
|
||||
"@esbuild/android-x64@npm:0.18.20": "751957e816cf676117fbec20ab530fe2ce818492fbf32c8f6d9bb24e5963b54395b903adab95f6b874e4191845177f8e9cdd771f6b42298552b8573a5f24a150",
|
||||
"@esbuild/android-x64@npm:0.19.12": "6253d60665402e38a080c101651c6e1617002b7aa53ed7a81f33d89fd5f99f37f11757bdd534faa3bf115dacf4723412a7cda532abdf0458bb478340772ba8d1",
|
||||
"@esbuild/android-x64@npm:0.21.5": "24e477ccdaf1437cabe8710bc052a13b975a53617094a225e39823a1c562a71ef975d860ab895c129a813302495d85387143e27068e62fc897a2ac0335e4a2f6",
|
||||
"@esbuild/darwin-arm64@npm:0.18.20": "16b1feeec7b1523da839e834e77f85a722bda5f2a9fb6800455e55684bd59bc11f8988b91ffefdb5ba3f4e8c1d7958f58413c74c729de92c26e31e0c326f658e",
|
||||
"@esbuild/darwin-arm64@npm:0.19.12": "d934b758e8d6f7c69660f699a627963742a79dd5a917855c878700cc70eda3e629461e1fc69f8bb7242c15ec84f015e40f6877acd599604b784190514de4717f",
|
||||
"@esbuild/darwin-arm64@npm:0.21.5": "67b0e4ebc870d0babb6721328f02b0e75eca5ee8f176220fa194ac5897ce76a27aa4f6d724389a74e1517670f70e766fe03c30875fdebeee5b1f7b22e99c5a1f",
|
||||
"@esbuild/darwin-x64@npm:0.18.20": "a80288dea978a549e4fc42a3b1f0a1bc5f6341bbde3788b6b9fd6b9ba6ffd92a0b61cfe608543a8455d292d00094abbe7dc51bcd6487c9dc796a2e543299a9c4",
|
||||
"@esbuild/darwin-x64@npm:0.19.12": "a436c4b3037a6a68c2b11fe487057c2cd4579363d94562d026a6d1a58eaf019c6ea94ba109e0b0a0597526fb6d2244d261fb7e6a18648f375ec90898b8bc14d6",
|
||||
"@esbuild/darwin-x64@npm:0.21.5": "a4b6df47edf4b1e91eeca9d7af18f538e25615e00763709a4cc24a8918e7ac93b9bfc2ef9f44086f16257d05ad99e23c1213a7a1397475d1a78f0a1e773af89a",
|
||||
"@esbuild/freebsd-arm64@npm:0.18.20": "72b69f1ba7fe6e8b7708809054cd96e9af3fd0bd561ce414c3bf7638abab15f7efc3782060dc7aa56dd4d1fcd43204355f2e0182a356d105a44e7c2efdec470c",
|
||||
"@esbuild/freebsd-arm64@npm:0.19.12": "527060fd8bc2c9771d861a9a62935605e190dc17f454408fd87afc7d2fafe2a35cbca5cb171aaeab28cce187a21e5e2bfd607014e229360a8b4fa32438393203",
|
||||
"@esbuild/freebsd-arm64@npm:0.21.5": "a4cf357807f2ea445b5191b8e5488070b567e2b534dba24ce6f8f1a332598ee0b9ffa41b3b0e55cd0cf57e2b56f0f1d84413faba182b81cb43bf19edf58a7654",
|
||||
"@esbuild/freebsd-x64@npm:0.18.20": "b2cdcd81f3f7cd7be2f72c38790698993a6853ad241193bf085c2ad5d2df1495478a9d67a2282a54efeee3b827c26a412795b8064e19321c7aaf59ffc34f293f",
|
||||
"@esbuild/freebsd-x64@npm:0.19.12": "b4d54892b0eec50f259fa6ab5527a5b4e48e1c68351d2c8febf60835bb5ac957564d2ab2ddf16ee66335b58a69ec367f48b125fb9646f8a39a11e1248c579501",
|
||||
"@esbuild/freebsd-x64@npm:0.21.5": "8957c1345196e5dabd7d9f290b5292161f5d9955f269051fa7873118cfb5a20c31d70771ea3560b513f879d0948ba32fba915fb1b387571c4fbbb1fbeaf2dd87",
|
||||
"@esbuild/linux-arm64@npm:0.18.20": "08216b531dc42e48abb6754f2b4f7f633055cd666ceb77c220c61c25aa84479b36ddeab25ecc23cf22965354314b84cabf1e8408a5cb1ba57b8343475613a782",
|
||||
"@esbuild/linux-arm64@npm:0.19.12": "23dd17cd5b3f3d64726baa5632bd8079059ebf8419e3f9e82d900f8c781a7788980f6e6d1a604c1d84bd539f555227559f4916d52e2447a30f5886bbf1ed486c",
|
||||
"@esbuild/linux-arm64@npm:0.21.5": "1b95b17ed94eb977e38ea9130e677551b7cf0ccccdb3f23a9f8b59b5d67400817c2a417e4f043295bd3f67796853da2a1b1a8ca201ffe745efb40a144dfdc99c",
|
||||
"@esbuild/linux-arm@npm:0.18.20": "8fc75953ddebd11be542a224e0c73971e83556272d75d3f4023bebf4b0658a68314ee5721eb5dfabffb9ca9afcd7ae5404425f3d56cc6363c68bffa86f08fac3",
|
||||
"@esbuild/linux-arm@npm:0.19.12": "76b9b411ba41320d57632347d1a09db7e745aec425db2cffe1c6467928c8d67bc122b544aa7fcbdca74a32262bfe0d48aa479931f6943bd84434389fada189a0",
|
||||
"@esbuild/linux-arm@npm:0.21.5": "6bfcd098ada5e6117d028777e5cc58456c2f570157fa0a0dce30c9d05b8389b86f74bf6b862534bf6994d342946c98b6774e1820880fd289765864b668e94c17",
|
||||
"@esbuild/linux-ia32@npm:0.18.20": "563d35963cfb7b94fec9e22986a4edfa8fd4f6d6d82fa6be1833eb7c50b996cdc9b53a656e2ccf02dc2ecc8676748b02d77ad20afbaf087ef802e562790390fa",
|
||||
"@esbuild/linux-ia32@npm:0.19.12": "be7a5294d9387fe09e154c5c771761291ce2278c2e04d36396f737736d185ab4a23d97830afaec67bb593549745ba9e240ac86b0ad4c0e0044e553c408105aed",
|
||||
"@esbuild/linux-ia32@npm:0.21.5": "73c249c9918f0c9a9268ffe14fe745f5e7564b309dcea213da08a5e4367ffdfc8df4b004c70f80269dce0f653a3280cfdd8bf9a7a616b5b60649e4faea6e69b5",
|
||||
"@esbuild/linux-loong64@npm:0.18.20": "8a728161c3221ecc35e8d55f700d065e59fefbed5130feea6e3975f1e209cc8c31de55d908ff4abf29ec2d37e88e22f9b2590e9764e72a47825610b104a39374",
|
||||
"@esbuild/linux-loong64@npm:0.19.12": "964386dd94bdd05383e6a8223a6af222a113bef78e4c8f7a77684c9c2e56c30d876c502ce4d28b4d91d21c402cdd491eb1e62bb72448c7077276c4714b299263",
|
||||
"@esbuild/linux-loong64@npm:0.21.5": "60977efe24b3b6e1461d49da07dd57c1234992b9d2e6ac7d0dedfee538321d42be25e496ffb193121d3a6c6ca6ea6722b880e95695824dcc6643a3d9426b2296",
|
||||
"@esbuild/linux-mips64el@npm:0.18.20": "e5d99e6c151323ea3ca5ddd6cbaab9bde45424932282adce064d90ad4e26fcaef1adce54b01734641616f65b89f1a5a69a715a9d05368b7c496a46c9ccca4744",
|
||||
"@esbuild/linux-mips64el@npm:0.19.12": "5608d554f1db3311315eb29780e312e66d106d41ad53fb3458e201fbbddda198836fc4ca04314f7ae4e61462214c92494928804abab0759a384adff773da40d0",
|
||||
"@esbuild/linux-mips64el@npm:0.21.5": "20fb6c8f6e58f66cd4351034858b2ad85bda4144576b180979305cfabed43780a71934e9f176e476c719f14e37253b231a43d46638ad232989d5f4dd72ec6b75",
|
||||
"@esbuild/linux-ppc64@npm:0.18.20": "aebef9d269b964698128199821c8b1d9a45ca1898656d12add3f52cd335b098923565b7ef3bdea37297b14991f56f6b351681229d153904819b767ccc3af97db",
|
||||
"@esbuild/linux-ppc64@npm:0.19.12": "7523a8c6b4b46324698b6aecfc661b369326099ebf72a36562ce69d8a6e2158cbe1d9af6d2588f130000c49875b719910df4b426885fcbac1065af590c1cd985",
|
||||
"@esbuild/linux-ppc64@npm:0.21.5": "69f2ef1d127f48bc14cec479ae1a96dbf5fea651e0a3f148486f73495d2acb91acdaa164cd80648844916f05e7f9f9665a1864dd394e7f9acf96bea70937e6b5",
|
||||
"@esbuild/linux-riscv64@npm:0.18.20": "3eb88a207ea74ed6a2cce3a3d91ce590b508fe673e0bdc5f72f58babd32ccd0fa79908f64ee25ce82bddc7a29d47a603c5522637d23cdad52d1ee4b6ba34b3cb",
|
||||
"@esbuild/linux-riscv64@npm:0.19.12": "da7aedccce7377c1991a3bfce3767a41c2bd688a361ff5df9a16b56874d1bd198c4fa70ca15bd7234497ea5ff9a44ddbbece95733a1dbd9f43918b4bf27fb76c",
|
||||
"@esbuild/linux-riscv64@npm:0.21.5": "60c749d87c0f67cc67c5cc0d82aa597b7a807bc52510a16960337433bdbc8fa9f3c46eba98080106c0971e404e2250ca11c441bb4ae5b7a7d78b4095e3a70363",
|
||||
"@esbuild/linux-s390x@npm:0.18.20": "77172f6572740cda637f5beed73b3ff6bda8648b4c3632290dbfead82b3ff2f8431bdc3b43f2c7af881151b172eea086db24669658c4f9711f20366da21aace5",
|
||||
"@esbuild/linux-s390x@npm:0.19.12": "5f55ca2284c1cd1034a0bdf1ded7d38f43539f028fd58ec157f36fd89701f5fd0d0d45514b82c4199e3bd16049635a3a16c96a694f5a8d9c8a40429ad3e2172e",
|
||||
"@esbuild/linux-s390x@npm:0.21.5": "a14ff0484b962b374fd1e4662a53f8dd8999ba39fcf891f15631dfb2802c8d18893d6e366c42d28d55885e5804b7d6252c0e3cee038c241285c9b537ef12b4ae",
|
||||
"@esbuild/linux-x64@npm:0.18.20": "9d438aec79e046e3527217fee95f39985e6e2df8c4390c9398ee24a6bff3f15e8f5fc2d5cc6564b1e182f864a99d8fd83818f880dba9616a2dcea6c7f16a57c5",
|
||||
"@esbuild/linux-x64@npm:0.19.12": "401ff8f1d6d5ae6ebdd0d8e24cef86ba1c3adc4fac2014033c8e690331495cb57922e31cdaa96619e2b190a5bfc88ae8b90b1cd3a59952969a29da418bda58b1",
|
||||
"@esbuild/linux-x64@npm:0.21.5": "9e5663fcace9c8456e9934a9ed6e7428db4080024eef3bfeaf82d476120bd881382c958be2785463d6b44467b3d3f870d6cce09a9cb37bcef19afeb97814d674",
|
||||
"@esbuild/netbsd-x64@npm:0.18.20": "2523c64d41b2d8252f5f8f11fb5f8438d4e9fcbc5856e8644fb79b1c18175144b4c36c5a62306064639e444e938cd4641248dfdc167b15af26d72d90a1217898",
|
||||
"@esbuild/netbsd-x64@npm:0.19.12": "0e4b3ae706cb82356e20862ec0066e9eb61bc7f7bf3cc09da27a72fa5790a59f5256f4e2cd255aac6023a37036c8ad805d51498dbd56fe7d913711858d3c8ebc",
|
||||
"@esbuild/netbsd-x64@npm:0.21.5": "3cb6115c4557d653c7ad6d2be5b4ed7a688b14d85b7b7108a1a57dda0b2cca3f8ed13560fa6639da8788f860b75eb714a17cfb7ba8f967e93bdf40c9b3a1cde1",
|
||||
"@esbuild/openbsd-x64@npm:0.18.20": "3e04b67db2a5ae3440dea5a0dddc6744cea6bc05bd7ce7b64ff4350efb16e804e701a14875199d62018e8322891dde4ba04ea7d6717556d6cc12e4178a1d7159",
|
||||
"@esbuild/openbsd-x64@npm:0.19.12": "f55049053a978c178bf1d7f4857af395afa9b7708410707eef8149f42adc3ed6d72088419cc17f75f1b7be4991ad28007fe298be84f95ca4e02d28bac1b518c7",
|
||||
"@esbuild/openbsd-x64@npm:0.21.5": "1caf0b502d6e2612ffd3e62589de2b9cd48cd742818746011d437e2d5787df4984f7c17b7a536aa20f12d04e519c859d755a7b57e6db0ed277054bd9c1036e85",
|
||||
"@esbuild/sunos-x64@npm:0.18.20": "921cbdd363e622d854e83b9e868ccad05b0f0c09cb181e59f6ae1b74ddd6023974d1cba9116c56cc819d15063bf5a5bffa67c23a19b5b60b5a099ce1d9ec419d",
|
||||
"@esbuild/sunos-x64@npm:0.19.12": "da944741c1d6c8d814633445f068b27cdff337f309513982125f633d7365154ba6073719ba4389e471479886841d0152f37426f5bd890b7a8c33b89b7f775c82",
|
||||
"@esbuild/sunos-x64@npm:0.21.5": "676da7301c7c600bb7de2523ecf5d877128da3c125fd8136533f5be38ca15d9f800b2fbbd396ca37d44c5daa51b8124d8a4728bb18245cd2becb3191b897c45a",
|
||||
"@esbuild/win32-arm64@npm:0.18.20": "9de26948654e871289a5b6a5ef0c238ca92b0973b00eea692689edd278a9e791ac2220e33cfc24eca673212571242c08e041cd0a97087b247716d9538609f68d",
|
||||
"@esbuild/win32-arm64@npm:0.19.12": "c9e6922908588569a8cf396ab0c5230cd1634db77039cb635d83eb825eba64a4ac3e19f28917185495d9d7b043161bfbd4cd49eb7d3592b88cf4594d9d628d08",
|
||||
"@esbuild/win32-arm64@npm:0.21.5": "9b2ab87429efd3c2697dc5c7948ea57b57757b6e4709469e773b73cd5fe4b7fda5912073f4c3bdf9d0346b8f3ae443367a63bcd51de24fb81b9f592712eb3366",
|
||||
"@esbuild/win32-ia32@npm:0.18.20": "98d18afeb689679b73ee823b297d8fb160e97fb183cd5f39d716b787465c024b0489bebaec96e37157cfb10d5296e803070e90f07eaf9235a2afb041d25e9e31",
|
||||
"@esbuild/win32-ia32@npm:0.19.12": "71487cca9ac6cce6bf214be36e5c6aa1eaac49a2bcd538fafb6168fecbbe2624edf2a057be531b5393c4e2672b24bd316a872cc081df1d9c06e3a12704662675",
|
||||
"@esbuild/win32-ia32@npm:0.21.5": "c1fe3276507d82202c464cd4809e67e6f151e29ed9de05c32d086dfe30207db15e646911ebc7f50df659891bfee292a25062792c589c2ff769be238c6b5fb8be",
|
||||
"@esbuild/win32-x64@npm:0.18.20": "b019d085b43c247251b8d3791fa8f3251851d34cfce54bbe8b15a3a73efb1bc903e884551c8a821d5e681a48bc91c80a6f7e394762b938a266d8b602b13664ee",
|
||||
"@esbuild/win32-x64@npm:0.19.12": "33341d6ae7d0682fb679170c91efa3933fc58dfe3d2f95c19b9856db55af6c8af4785f3669f3de34907ab222b2a6a201a8557213bd37dcc8406593e9eddbaa3c",
|
||||
"@esbuild/win32-x64@npm:0.21.5": "5d7b28baa9c22684d35ec0515f6d36f8f583f26733c8e84c7f78edf17b8a7d133819267486f2fd66f20ca3a810896f11c3c81106d745040c2f07ade314846bf1",
|
||||
"@esbuild/aix-ppc64@npm:0.25.3": "5e3ec55997c8d3c9c0fa565cbd04f1566795fe47626d63f6a593a39190402869a2561c772d1db5621719fa9db174f4cbc201032447b97a1cc28e69a9426a893e",
|
||||
"@esbuild/aix-ppc64@npm:0.25.5": "fb872b34a2843293dc60e809968fedf93e0d8f7174b062decffae6ba861eb56aaea0cd0aba87ba99162ceb2a690f0cde4fc29c000b52c035e40c91ec7861d43e",
|
||||
"@esbuild/android-arm64@npm:0.25.3": "d840843df6b82cc918abea3e706235ae256caa7b6feaf4b78f47d97cfc476ffc905d5e4263f066ae96dcc997bdc4e33458ed3436d6a38d147cd401071dc92d10",
|
||||
"@esbuild/android-arm64@npm:0.25.5": "c818e799b19b5587466bf68a27b578ccaaf866c1d144573fbde7659e3fd3f555422ec3e67f5bd186a87648957d1b6e74df4f847edea7219c16979c9916f36e91",
|
||||
"@esbuild/android-arm@npm:0.25.3": "185f4827b86ebc797ec74a98a75256a401eda92af862d217c10268816e8c4feeb49d82e965916dd2df238d7f3eda98325085e8d36cccf63c6cb2d3a11b3c6ee0",
|
||||
"@esbuild/android-arm@npm:0.25.5": "a5384933f9f2ffcadce2be49da6ff43249fe42f32a04071316434e9f633fc20c8d4029072e9a53555620c3531045786297607b852579eee30b6dbc3bc9d98cd9",
|
||||
"@esbuild/android-x64@npm:0.25.3": "0328941aaedafe3e0164a93a0e57178ca5fbe5a336709bd24270329a504bdb76bfc4b7a63e07c2f6fdea1fbd4b25d53320ca5665351d477e8e77b2fd071732ee",
|
||||
"@esbuild/android-x64@npm:0.25.5": "8ce115dc7e1e6735f23b4aadb2dfca29c0abd8577ce34802ea3d017a64e388928949134fe225dfe190babdc5ec01be5fc7794eca84738cdefc12c5e3789ce43b",
|
||||
"@esbuild/darwin-arm64@npm:0.25.3": "c10ed8ec813cad217666f556481baa0c4286f2a0567ca662fbf3088cb960421729eaf6b5a8504b9c956a1497f88141549af5f7c0f907a27a2c546e75fb4c678e",
|
||||
"@esbuild/darwin-arm64@npm:0.25.5": "a009eab62f2bd284a6f2001d5e08217059186ffc16907bbe873e1de40fe9b5ed92c0db2f4c4d0dc41545838850a430c8f2f35d7bdb9cd01a1a04293acd97afca",
|
||||
"@esbuild/darwin-x64@npm:0.25.3": "9828c988e7a54e63c7afca426348bd09d5c70b4ec799908ec5310347a14c94900f58e14f2b2eeea87d68b382078977bd5d5629546b307e8ac093168a7c72712d",
|
||||
"@esbuild/darwin-x64@npm:0.25.5": "cac8021a7a0c549263e076913346b35a5bb81f76ffbc1abfad5e7b67303f013ac0c76f111bf624ea8447b327ec86c18a60c6ff307d743a2269f5d47313f5b2de",
|
||||
"@esbuild/freebsd-arm64@npm:0.25.3": "4b20547db6bc1dea0e14f4bb96fb474d6e80e8d01c4fdc141d77a1693be06aee5ea3d4968f80276f87037086822c336defa358cb315bd671a7af9c672a081811",
|
||||
"@esbuild/freebsd-arm64@npm:0.25.5": "d248e7103b7094eb4288db7c9a78b2905a25b4a957f2b945531ca88d3394f45ceca2343a7c84954734534af6159bc741eb3d5c1ed9df990f7395337a1b14192c",
|
||||
"@esbuild/freebsd-x64@npm:0.25.3": "083edc9e2de8f3dc407b52836b49ebea29d0d543786c706b744c77646f5fde53327b786d156b79b859fb61eaac191733d275a183807c8599d51cd4416d00f5d6",
|
||||
"@esbuild/freebsd-x64@npm:0.25.5": "8a7be0740f07f5dbb3e24bf782ca6ef518a8ce9b53e5d864221722045713586d41774cbd531df97dc868b291b3b303c12e50ca8611c3cb7b5fe09a30b38285eb",
|
||||
"@esbuild/linux-arm64@npm:0.25.3": "bad206365faf883e5f7615daef3d65b7a82d6c9e401fd67353352c532a42310dcf6491dbf0e094c8007fb6d73e45183bb63cc10585cfaadc1386fbf78c529dc1",
|
||||
"@esbuild/linux-arm64@npm:0.25.5": "ce3c8fca47cf0a92148fb288eb35a5c4a4dcf7a700730b3a48fdd63c13e17c719eb6b350378203fba773477eb5be637f47a6d52c5d4ce5bdc0075ee917156006",
|
||||
"@esbuild/linux-arm@npm:0.25.3": "4659e20bf62737bb6ba5e54f36f87260e8092f6c55aed6a73457cb002f7af990bb205ca48d0c19078540a210b65a1db1a1cecd7a4ed06f4fe4eb1c0d27c30bd0",
|
||||
"@esbuild/linux-arm@npm:0.25.5": "cc81ea76ab86ed2a837c9da329f7c63412d288dc0aa608c8dcdf51705dc93d5b7f966a429be4896babe611074e5898c7e6c8e07ad7f50123a05478975294fbb4",
|
||||
"@esbuild/linux-ia32@npm:0.25.3": "96cf22e5979c95aff499cf0ebd576e21964d9a7412bf5cd4eb1ab71cb555aef2b4d5d3e8aae34ab80354125f1ec571f0ddb3f728f9e19cebbeceff75bb9d0686",
|
||||
"@esbuild/linux-ia32@npm:0.25.5": "bfed6750923afd56148f658f6ec8995479f5115116dc212ecb9e4c556064422e22eda855177e7c02cbc945494e4db1167101918c5fa932278115db2c7025a3f6",
|
||||
"@esbuild/linux-loong64@npm:0.25.3": "9d12d8deaf0bdd5d64c062c65eb0e3ea24ab98b1e6ec34b2b14bb3902e5e3504442c3273f6dc05228f6104650ddaf0d37ba86033f19e7b065766c3d528c0f6a3",
|
||||
"@esbuild/linux-loong64@npm:0.25.5": "e5c20140bbbdba53f0d86dd72961ed73e6255d2ada2d3a626f390b352170605644822ad7592f695b6e520edcefe0c5f6ba19d10694b5d11d725745d9792bde01",
|
||||
"@esbuild/linux-mips64el@npm:0.25.3": "f117b06fe2d39b08571fd84ed191801cc9501342a514d5d83494219ad14bee9713b6332d0836f192c224b1f9a01405f3d6e2d22952e399bababd527bfeac9c0f",
|
||||
"@esbuild/linux-mips64el@npm:0.25.5": "6b3559517efd0dd1301debc7af7e275b055859c26facdda2e229b1aaab6ebea4c480a1da151c46211ee4035d95bfa7f0cdacf735b57ee99d41b69c77357310b9",
|
||||
"@esbuild/linux-ppc64@npm:0.25.3": "ef777920724eecd3bb20f9718901498001ed8b28ced1a6c9a8e947c5ae412d31856761556b9d89bdae1cd9af3ff53f9c83756fac3b4e99b53ebdce44c5ff0cdd",
|
||||
"@esbuild/linux-ppc64@npm:0.25.5": "a1a1af99d758efce928335637924dcd8ddec4201af51014e1f831b012d53a0a673b1e0c31036ec9e8c5a0311439283419ec8abdfc67ecb245fa7f7b653006ed0",
|
||||
"@esbuild/linux-riscv64@npm:0.25.3": "87d71b5c361f7d95c173f8c1051e8dce165ff3d6100ef0e5cbd090f8249c58d7f5a38e93774d081afe4fecf3a6e725102dbf9ffa51e5b4960ccd1b072cf86e10",
|
||||
"@esbuild/linux-riscv64@npm:0.25.5": "6cd8dce6723b73e0f89898ab6cd52e0d009afdacdfc0d5529134de7b832c92c2e0421fbb5cbfc0e0c0b2b00a9b1ff2c4cdb9695b2c535ebc174960e986c727a7",
|
||||
"@esbuild/linux-s390x@npm:0.25.3": "9972d82725c5818fca8ef1625c3f55a8033c2d678c809a01580780fd5171025e4f90b60fdfe6ff925a1738bb6cff85dea104fdce57badf0a270ed1d290345e23",
|
||||
"@esbuild/linux-s390x@npm:0.25.5": "31b86dbc93d19eb362bad3353e65d6da771118346e723582d06c05f1b6ffad1c3765001b5215ef1e8f0c2bb29130d98815359bbc88e5c08304354d5a92e6ea94",
|
||||
"@esbuild/linux-x64@npm:0.25.3": "434e21ed68e25e2043295fca9c382461bf50f031c45480a1482f297412f95ebfb183339001444e5d1e6b14358571c395f17ddb8bb9bbd22aefe82740463bc18c",
|
||||
"@esbuild/linux-x64@npm:0.25.5": "f878a3e40edfd8a50de94bf982a9eaf03e636a0332af163a6c905490063aae652384fb392d4765c4338fb6f991034949c92ec768ee65c3b2fceeb494b89fe8b3",
|
||||
"@esbuild/netbsd-arm64@npm:0.25.3": "4dbc6ef9a5ddcf44f2df0fe39c662189eb4cea38fe5778ecc81cc29af68fba2ac077c5b308ad84b8263bb6bea9f03732507b79966d051d860a2344b8fe8ddc4d",
|
||||
"@esbuild/netbsd-arm64@npm:0.25.5": "941c5e28a63a93f19122271b5490e196db12815702c2266c6d66401b6909a4364ab889611ba81c5359624e3ce61f0505a680a1179ed9a555d1415fa1c485d75d",
|
||||
"@esbuild/netbsd-x64@npm:0.25.3": "d42fca551f67c20b18d11cae67fed9675b90293c901b3b152d6e0c1153db1443f7b8a4f7786797b1946d19881db64b50f32e883d756ce3fdf8b844a1c71611f3",
|
||||
"@esbuild/netbsd-x64@npm:0.25.5": "edbefdd88ca24a373497a7c8d1fdab418827ff89c6eee1c574159dbb4d9174552aa87753f35525a894964b77c14b012164ec5582b9f19dd4d6c1f5d45df411c7",
|
||||
"@esbuild/openbsd-arm64@npm:0.25.3": "3aee3b70a7f41ce2355d93bd955718683861ffe9e6b5550c37caa28b8b16e6414222c806f413c37eb553c3990a22b8fdb88721c619f553d809db92cd070ed383",
|
||||
"@esbuild/openbsd-arm64@npm:0.25.5": "d44633a374c109d2fb9c678882016e3ec3d79f0c5f21a6e6fb0114ea709bc539200b037a4e3ec52304eea2f8c5957bf16c6f0a7af5cfde41b652c4bac604bba6",
|
||||
"@esbuild/openbsd-x64@npm:0.25.3": "d158b78f95feb68c6217f114a3178058aa93933e83897546ffecb6b9ab8e0fe5fed69940651b6c42c1ac9064a42a29fa1c2da316dc64ab146107c2c2599e68c6",
|
||||
"@esbuild/openbsd-x64@npm:0.25.5": "efc4641ea653dedc9886f0603c2e7cfc6fbe94c34d4cdaee9b060a8b9d8143d1192c45da93b3e802af2c26f72ab1ad3a3fad0e0cb297d06de55814fe83ccd32c",
|
||||
"@esbuild/sunos-x64@npm:0.25.3": "8b6bd4c43c023d0dcb9966349ec1f2ccdfb6163aea2c1c06060806795ed1fb083e22cb9e80e7853ba8c62a74d1bafa36dabab70881e7d6782c2dfb237f93bcc0",
|
||||
"@esbuild/sunos-x64@npm:0.25.5": "29860663381b6098c0fda6f69235407654dfad953e83b3f9f06a270950d5c37da4ca60a4b5915b8e2606d468b560be6179870f64a22d5b046e8a930c31a7b554",
|
||||
"@esbuild/win32-arm64@npm:0.25.3": "c49c827b8cae7eb2a4a6b38a1321c0c1bca1693826c7268d3c3b9361df360b897f583e91b9acff3eeb0c9f477d39c00a2d89c71436b64091442e74011a41f2ed",
|
||||
"@esbuild/win32-arm64@npm:0.25.5": "a77d395251c8a62ab0cec07d5230222823fa02fbf3ef008d94b5213a335c9f949872c3f1c2f947abaa28098b669018e429af42f59616e049860a0072f3b006de",
|
||||
"@esbuild/win32-ia32@npm:0.25.3": "84acc7f9d65de4875bfe09976620e94327bef444b1b8a795d98173ca777a2070b775763bd927ee475503455b2c1109bf5c911fdfe7c73de7d32124ccf3858afd",
|
||||
"@esbuild/win32-ia32@npm:0.25.5": "ff1b6cbe835082aef5b93c3e2012d51be431d05c6ae5f90a5bc89687c687e8e2340c262dedddd124b27b511616bbc4088b5a4a949d3147f677084dc6ec572629",
|
||||
"@esbuild/win32-x64@npm:0.25.3": "2b88dffa4814240cf7d88a6dee449361ae411a0d9cc6ebc327de59f4f6662a65fb2ef62fa38258bae422933d97a416db50ec4f04875ddf61d15f47bc0ec1ab22",
|
||||
"@esbuild/win32-x64@npm:0.25.5": "266e69e8d37bd4deb77443588e49472e4e9791178cb39e1692eabb67cf65d8e85a932ac468e7ebb2072c8a9ee23ad413c8f0f7d954c474f643cedbbf7aad952a",
|
||||
"@parcel/watcher-android-arm64@npm:2.4.1": "88cb813d54227fc25e487f00497cdd58974a07e1c22a5cc7cf922983d908b460e0876ec0c9acf333a5b6f5623dc50729f8b92612970bfbd5a12d4e5cffc025ff",
|
||||
"@parcel/watcher-darwin-arm64@npm:2.4.1": "342502e0f175dbd0649f2edffc9f7d76823668e12184a62d8e542df454a067bcade1cfd298975bf7238a7575a9d721c6d7ccb0e8c9102dca5394c9fef2349561",
|
||||
"@parcel/watcher-darwin-x64@npm:2.4.1": "175868753e64ea7bc70993a05a34694e8ad85d9d4a08bf9a36573925777369a0701f2971d6ff14f9ed525c9b7725ce40629cad97fd7c67dc653f247884d99a62",
|
||||
@@ -87,23 +69,24 @@
|
||||
"@parcel/watcher-win32-arm64@npm:2.4.1": "35fc4e90eb74a4e583377821775d5f90269deeaa61221fbb69127b3151279a37d4038df91beb38e51367ebb9d92f6b0295b58c0e4a7ac3ecc0adb0f27c935c69",
|
||||
"@parcel/watcher-win32-ia32@npm:2.4.1": "0b12602039c1ebb6ea711bde1996ca66d814668a02d33b2b949c66111de9e3fbc6f4d8b9b6c985affa1eafa6089b4c13b0e0db8f8d3a7a2d19849c7d7f639f1c",
|
||||
"@parcel/watcher-win32-x64@npm:2.4.1": "56f160729dc8c47d940187b4a2e9a4100be77fc2acc2dd5e4cb527d036676eecba454548cf00fb6d7c44757e42d77dc4d2d8ff19c1ce64759a7fde2097aa6bfe",
|
||||
"@rollup/rollup-android-arm-eabi@npm:4.31.0": "c737cb26689f9d34357921d15ee6a7261e5d7cc068dbb93a36c2f40c34a59bd8721e7bb392943a212ecfb97d9326ced8254469e39e9d6b012db636269eb66577",
|
||||
"@rollup/rollup-android-arm64@npm:4.31.0": "94957eda1ab8894a6fdf0b1772bc00e7563f2e520179542dfdd6f9797bbb9cde164693b29439da631fd8ee6b5117c36ea7ba7ad8ab43d1747c296b22d6c09cad",
|
||||
"@rollup/rollup-darwin-arm64@npm:4.31.0": "2b408eef19930929008806adc87f29bb9cacbbea1f32770be339281d72a5bbc52a88da1269a34b88052a0037a0b2b61e70daf166ed9d3c982b4fb4bd606ad020",
|
||||
"@rollup/rollup-darwin-x64@npm:4.31.0": "9e7bc70cfd1ccbdddad3016d9fd36616c8a71725f9c47bbdad1f3ef40b656f7db90f02c88a4724b399f8a46555e4f90c4880d5eea0f12fdeba2f71a555077db5",
|
||||
"@rollup/rollup-freebsd-arm64@npm:4.31.0": "3e149a14c1930b539e1d0a733bc2582bc5e84a5906723b5ac0384d46c43861a05120dd4566bb4f1efca8f930fd1f0eb78646587fc3c0cc32606d32ce6fb7bb13",
|
||||
"@rollup/rollup-freebsd-x64@npm:4.31.0": "fe381b185187a5c2e8383920090bcec0c1273d058cc113eba23a70bc9f49cbadacd92c2a6255d345971bd2cf283941f623b00035d051758f743cf3207c233b54",
|
||||
"@rollup/rollup-linux-arm-gnueabihf@npm:4.31.0": "7bfe07f535125f59cc12fc0af162b9bae4400a364f5e2b1eae44377904deb3dc1c558048a0a8b059be1a54e609a7597c109f0a26a2a0baaf21a5539a331d14f4",
|
||||
"@rollup/rollup-linux-arm-musleabihf@npm:4.31.0": "a1bb7593a83e2c2dbd32e8a3447e68ac43874a46aaa501c63a533695c47b66c7156527951bd84ad53c73a3155b5b50fd658c0aacad8790b6e4c03c0a83c94cad",
|
||||
"@rollup/rollup-linux-arm64-gnu@npm:4.31.0": "e2e85814bcbaeb8b39e17ee5f8510c8856c5cc4c2ec1787245e8f8e0531563e36844549b02956b881d5aa9405e838a7d1b1697c305c394a57889c0b1c521c064",
|
||||
"@rollup/rollup-linux-arm64-musl@npm:4.31.0": "00d8411e0516b298913d19dc2f4991ee184a4799b041f9c2a2eae5cf91f3aa315a4cc69d51d04c2540bfe0793b628af105d8df419ba541dba24981ccdc1a372a",
|
||||
"@rollup/rollup-linux-loongarch64-gnu@npm:4.31.0": "ea1e4d813a12e8e9eda908d705dbf013835034a95cb63046a3bc15d43a6bf9812034d3779ab01c5ec87338ff1115ea86c6af2383efa4485b18da1423c68c3b79",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.31.0": "903350e968edd4d9fcb4c53831672ff5980f4d58c32a1b34e2c6446d0ae965d522173a82d9dccdf040805f82507b05e3c7e629782e56ccc51c78e01bc0b02dc2",
|
||||
"@rollup/rollup-linux-riscv64-gnu@npm:4.31.0": "02bf4d53b6edc386103fdfaa6f1c774b1859e61146a305f3a0942159902b829ba67fbb6a6dbf914ed77fa7ae20826f601d11de79f033b37666077f26ccc0bfb6",
|
||||
"@rollup/rollup-linux-s390x-gnu@npm:4.31.0": "bd6a2a45d36e11a80d4675c6427eafbe85165ffdac4c75945c89c650897ac8c582b57b76e0a69a39c09ba06c58edd865e4d8a54e1c7a245d2c192db465ae2c55",
|
||||
"@rollup/rollup-linux-x64-gnu@npm:4.31.0": "6100d9bd7a0de95a54b3ad15d953ea74bef4c9c4424c24c5187ee1641f81d8fcaa30e48d16faeec0957e3a48517fcf78486e47fedc277f8f26fb6fbc7619df4b",
|
||||
"@rollup/rollup-linux-x64-musl@npm:4.31.0": "b9a94514d6606e8b320ecad50f7c4142b86bb688aa1e87f076a462f76488000a90b8f75db01250cc17b540a70f231ab4064e79b79b66a2c7ad76c224d30b05e3",
|
||||
"@rollup/rollup-win32-arm64-msvc@npm:4.31.0": "d0fee5e492f22df8885e0dcf2eccc2b8424c926050b1506d5a59fb97388de9ac5bd149a20d8521cf379cc3a46af92cb5de5d15cf749e648062f9f6ebf17e5754",
|
||||
"@rollup/rollup-win32-ia32-msvc@npm:4.31.0": "c0e4d6f7cde9fc9a28eff19c04a96807a76d911141bb9fbe2a41d7ba394f4ebf334d3cd9b712c086498cd5de73ab2f2d1c12e6d22b08178ea4ede84474c656b8",
|
||||
"@rollup/rollup-win32-x64-msvc@npm:4.31.0": "c3c397ddceb47db9631887caed7ec437b3bb9d1ff0de24440614720d3fe322a0c712617b869177fc37c2386430bad2e92cc3735a52ef579e25c9aded76f75580"
|
||||
"@rollup/rollup-android-arm-eabi@npm:4.44.1": "ec8b655e2930312fe94eded1cfe439901bbd442a891494a512259caa0bd936c29b9d06debb061bece88f5d41f619ccb4d0d77d0fe190f1a5c25a3a1a724d255f",
|
||||
"@rollup/rollup-android-arm64@npm:4.44.1": "5eb5c7de31f435afb97feebd06feefb93c2cb272002240b8530c1f274436ea578d8320d67fa49eb1409ddb20a47219efff59a09b22a426584b881d36adac7bea",
|
||||
"@rollup/rollup-darwin-arm64@npm:4.44.1": "93cef94c44d1baabc5346148d59ebb5d640948b2895bbc5de6804908999857f331c388eb449f98eba98d2b239492e91211accee7eaf4b579ae3c007705d76246",
|
||||
"@rollup/rollup-darwin-x64@npm:4.44.1": "d235e7f40080cc19295d45935b83a0238cb66962e7d6d4af0eb261012d80bc344fe073ec9dcc3d39092138a66e7a69c4e79cbac7c6ee49b8329b80d12d52968f",
|
||||
"@rollup/rollup-freebsd-arm64@npm:4.44.1": "e26f6bf6914e190d72f74da4c8e47c27661fc99f6310f80e664acfcd6262f4981ff043ff53ccc06dc6a232d481f9f0055e32dba3b65442259316b18fc0ea9087",
|
||||
"@rollup/rollup-freebsd-x64@npm:4.44.1": "d06455bfbe8bf71996864879b8b9b4f95617adda959a5a143be0df9a5bf749cd52740a9a3b2548e67be00eef9ccb99ef04368a052afceae2011e2a817baf4156",
|
||||
"@rollup/rollup-linux-arm-gnueabihf@npm:4.44.1": "1bb6818627de1434f889c8a6bfc13a0205f25055bcc9f39483e445411c753111c7d082cfca2affdeeaad46c3711e3ece140fabb7173ef3cd19446d3682863854",
|
||||
"@rollup/rollup-linux-arm-musleabihf@npm:4.44.1": "6e9eff8ad332d9923a7cadc0ce1911c4e0a2f8457a8131485f0bce241bb7c223dc811b976ffb9ca08d4930630c647219dbfcdab639c3a8bef075b68285c01960",
|
||||
"@rollup/rollup-linux-arm64-gnu@npm:4.44.1": "a5382c59bf531afd774b7de82d1600bfb5915a0708ad6c7099ffd1af657b813a525de18902178120b247c95e21487f0c96a8eecc8d9ae9163da12ecb4a5ed3d3",
|
||||
"@rollup/rollup-linux-arm64-musl@npm:4.44.1": "44944da3785383b8cdb5f8b4eb627737edc10e206ec66ec6a762f75f2dcc12dff7bfaae864d37941d5d30c50c8fee5f5a2b12c19627b356e0aea3186f80e2d48",
|
||||
"@rollup/rollup-linux-loongarch64-gnu@npm:4.44.1": "1f7502f1777622abb717a3109bf69907ba46a277a6ea33b99d6cea8e33f74b6d8a979ac5bfa33398f31211687adf7458ef9680b7f2e3523d82088a3d59857c8f",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.44.1": "535c564216655518831098e5481f06b62452fad69209409776f4508e9c73265dfe531983a64b47c9090b244668b4c023c906061eee5a4c3c29c1c9822f1d1209",
|
||||
"@rollup/rollup-linux-riscv64-gnu@npm:4.44.1": "423cb7d6578052d23374fe2ec3b996be9a420785fe324a0d1aa38e9e9d3f4b34ba3673f4ce5f622c7ed99bf82c4e24f55469b6e75deb5f27eb67369c052d8a9b",
|
||||
"@rollup/rollup-linux-riscv64-musl@npm:4.44.1": "03a0530b45b554363296e938493e263aa26c342080aea72c9e2b673fc42d5ed2d9267d283ef136c71da64bc85a03fd360988aedbfc68029bd948567afafe71a6",
|
||||
"@rollup/rollup-linux-s390x-gnu@npm:4.44.1": "93fecf841caf9621a99b8f0938d21a261ccc1ee7dced2ff47de659662a3bbbc0e3cc45ef38d3aca84918ecaeff51188a68a109db337892518ccfa393c305fafc",
|
||||
"@rollup/rollup-linux-x64-gnu@npm:4.44.1": "b401ab19f21fb0f8ff50662a9fbe823d4c7904fdf0f8de17c3338107e3974ac89ba1189b7c6f0f2ff8734cfd07325bcb5e5dc6a5d53df076fe34757233063a72",
|
||||
"@rollup/rollup-linux-x64-musl@npm:4.44.1": "87ef16e6ca9ae5d398f5b7e1b58033cf1b5f87efb0ab7c4b16dc7dd213a1b3a9305c2624b11e89539d75d146912eb7a41a139270464fc617fd1c2917e391fc56",
|
||||
"@rollup/rollup-win32-arm64-msvc@npm:4.44.1": "5f4fe05f1c778d839ce22c2b1a1419d8c511fd10793326dab5a033978f259733b6d042519a26ad7df3f5b2cce75bfc2d2600d9c43ec9cf16d6acf105bedf00e7",
|
||||
"@rollup/rollup-win32-ia32-msvc@npm:4.44.1": "5639edf6114f38055489c35f03f5d039b4719ae50309db235dc176c026fb8eb5bb028e0db2769ed4faec34722200f6a31df62c23a0f8c90a13568685a6f00140",
|
||||
"@rollup/rollup-win32-x64-msvc@npm:4.44.1": "d23d4b88a0a96965ba20e75bb9f5bea6e22cab53b9658a54317634363a64aa43dd1ff66f569d0e4fecc34d60d554a64ae905fd85cbc436f78544d6f9d550ebe2"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From d8843c5fcaef79d209803849070e1a79ab380903 Mon Sep 17 00:00:00 2001
|
||||
From: Euan Kemp <euank@euank.com>
|
||||
Date: Sun, 24 Aug 2025 20:24:34 +0900
|
||||
Subject: [PATCH] Fix compilation under rust 1.89
|
||||
|
||||
Rust 1.89 produces the following output:
|
||||
|
||||
```
|
||||
error: unicode codepoint changing visible direction of text present in literal
|
||||
...
|
||||
warning: allow(text_direction_codepoint_in_literal) is ignored unless specified at crate level
|
||||
--> rslib/i18n/src/generated.rs:7:10
|
||||
|
|
||||
7 | #![allow(text_direction_codepoint_in_literal)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
```
|
||||
|
||||
This change fixes it.
|
||||
|
||||
This ensures that some third-party crate that pulls in this code as
|
||||
library code (and thus isn't subject to the rust-toolchain file in this
|
||||
repo) doesn't hit this compilation error.
|
||||
---
|
||||
rslib/i18n/src/generated.rs | 1 -
|
||||
rslib/i18n/src/lib.rs | 1 +
|
||||
2 files changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rslib/i18n/src/generated.rs b/rslib/i18n/src/generated.rs
|
||||
index f3526f79f..f3fa71ce8 100644
|
||||
--- a/rslib/i18n/src/generated.rs
|
||||
+++ b/rslib/i18n/src/generated.rs
|
||||
@@ -4,6 +4,5 @@
|
||||
// Include auto-generated content
|
||||
|
||||
#![allow(clippy::all)]
|
||||
-#![allow(text_direction_codepoint_in_literal)]
|
||||
|
||||
include!(concat!(env!("OUT_DIR"), "/strings.rs"));
|
||||
diff --git a/rslib/i18n/src/lib.rs b/rslib/i18n/src/lib.rs
|
||||
index bfd6f5ba2..f9dbb1948 100644
|
||||
--- a/rslib/i18n/src/lib.rs
|
||||
+++ b/rslib/i18n/src/lib.rs
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright: Ankitects Pty Ltd and contributors
|
||||
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
+#![allow(text_direction_codepoint_in_literal)]
|
||||
mod generated;
|
||||
|
||||
use std::borrow::Cow;
|
||||
--
|
||||
2.50.1
|
||||
|
||||
@@ -1,21 +1,31 @@
|
||||
From 104572dc7ebb75061b867158ce3d4311d8cf4594 Mon Sep 17 00:00:00 2001
|
||||
From 3d41c84cb5f5daf10b5b5ecffcb53aeed7f0584b Mon Sep 17 00:00:00 2001
|
||||
From: Euan Kemp <euank@euank.com>
|
||||
Date: Thu, 6 Jul 2023 10:05:15 +0900
|
||||
Subject: [PATCH] Skip formatting Python code.
|
||||
Date: Fri, 11 Jul 2025 15:59:16 +0900
|
||||
Subject: [PATCH] Skip formatting Python code
|
||||
|
||||
Co-authored-by: Pavel Sobolev <paveloom@riseup.net>
|
||||
This otherwise fails the nixpkgs build
|
||||
---
|
||||
pylib/tools/hookslib.py | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
pylib/tools/hookslib.py | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pylib/tools/hookslib.py b/pylib/tools/hookslib.py
|
||||
index 6361c633e..6b16d3ec1 100644
|
||||
index 99f08fa1e..2bb4b3f26 100644
|
||||
--- a/pylib/tools/hookslib.py
|
||||
+++ b/pylib/tools/hookslib.py
|
||||
@@ -208,4 +208,3 @@ def write_file(path: str, hooks: list[Hook], prefix: str, suffix: str):
|
||||
os.environ["USERPROFILE"] = os.environ["HOME"]
|
||||
@@ -82,7 +82,7 @@ class Hook:
|
||||
code = f"""\
|
||||
class {self.classname()}:
|
||||
{classdoc}{self.list_code()}
|
||||
-
|
||||
+
|
||||
def append(self, callback: {self.callable()}) -> None:
|
||||
'''{appenddoc}'''
|
||||
self._hooks.append(callback)
|
||||
@@ -205,4 +205,3 @@ def write_file(path: str, hooks: list[Hook], prefix: str, suffix: str):
|
||||
|
||||
with open(path, "wb") as file:
|
||||
file.write(code.encode("utf8"))
|
||||
- subprocess.run([sys.executable, "-m", "black", "-q", path], check=True)
|
||||
--
|
||||
2.42.0
|
||||
- subprocess.run([sys.executable, "-m", "ruff", "format", "-q", path], check=True)
|
||||
--
|
||||
2.49.0
|
||||
|
||||
|
||||
@@ -10,7 +10,12 @@
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "anki-sync-server";
|
||||
inherit (anki) version src cargoDeps;
|
||||
inherit (anki)
|
||||
version
|
||||
src
|
||||
cargoDeps
|
||||
patches
|
||||
;
|
||||
|
||||
# only build sync server
|
||||
cargoBuildFlags = [
|
||||
|
||||
Executable
+89
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl git wget jq common-updater-scripts yarn-berry_4 yarn-berry_4.yarn-berry-fetcher tomlq nix-prefetch-github
|
||||
|
||||
set -eu -o pipefail
|
||||
set -x
|
||||
|
||||
TMPDIR=/tmp/anki-update-script
|
||||
|
||||
cleanup() {
|
||||
if [ -e $TMPDIR/.done ]; then
|
||||
rm -rf "$TMPDIR"
|
||||
else
|
||||
echo
|
||||
read -p "Script exited prematurely. Do you want to delete the temporary directory $TMPDIR ? " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
rm -rf "$TMPDIR"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
if [[ "$#" > 0 ]]; then
|
||||
tag="$1"
|
||||
else
|
||||
tag="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s 'https://api.github.com/repos/ankitects/anki/releases' | jq -r 'map(select(.prerelease == false)) | .[0].tag_name')"
|
||||
fi
|
||||
tag_sha="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/ankitects/anki/git/ref/tags/$tag" | jq -r '.object.sha')"
|
||||
rev="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/ankitects/anki/git/tags/$tag_sha" | jq -r '.object.sha')"
|
||||
|
||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||
scriptDir="$nixpkgs/pkgs/games/anki"
|
||||
|
||||
ver=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).anki.version" | tr -d '"')
|
||||
|
||||
if [[ "$tag" == "$ver" ]]; then
|
||||
echo "Latest version is $tag, already $ver, skipping update"
|
||||
exit 0
|
||||
fi
|
||||
echo "Updating from $ver to $tag"
|
||||
|
||||
mkdir -p $TMPDIR
|
||||
|
||||
curl -o $TMPDIR/yarn.lock "https://raw.githubusercontent.com/ankitects/anki/refs/tags/$tag/yarn.lock"
|
||||
|
||||
echo "Generating missing-hashes.json"
|
||||
yarn-berry-fetcher missing-hashes $TMPDIR/yarn.lock > $TMPDIR/missing-hashes.json
|
||||
yarnHash=$(yarn-berry-fetcher prefetch $TMPDIR/yarn.lock $TMPDIR/missing-hashes.json)
|
||||
|
||||
echo "Copying missing-hashes.json back into nixpkgs"
|
||||
cp $TMPDIR/missing-hashes.json "$scriptDir/missing-hashes.json"
|
||||
|
||||
sed -i -E "s|yarnHash = \".*\"|yarnHash = \"$yarnHash\"|" "$scriptDir/default.nix"
|
||||
|
||||
echo "yarnHash updated"
|
||||
echo "Regenerating uv-deps.json"
|
||||
|
||||
curl -o $TMPDIR/uv.lock "https://raw.githubusercontent.com/ankitects/anki/refs/tags/$tag/uv.lock"
|
||||
|
||||
# Extract all urls to pre-compute hashes so we can download whatever uv needs for its cache.
|
||||
# We skip pyqt because the derivation uses the nixos packaged ones for
|
||||
# native-library compatibility.
|
||||
tq -f $TMPDIR/uv.lock --output json '.' | jq '.. | objects | .url | select(. != null)' -cr | \
|
||||
grep -Ev "PyQt|pyqt" \
|
||||
> $TMPDIR/uv.urls
|
||||
|
||||
echo '[' > $TMPDIR/uv-deps.json
|
||||
for url in $(cat $TMPDIR/uv.urls); do
|
||||
urlHash="$(nix-prefetch-url --type sha256 "$url")"
|
||||
echo '{"url": "'$url'", "hash": "'$(nix-hash --type sha256 --to-sri $urlHash)'"},' >> $TMPDIR/uv-deps.json
|
||||
done
|
||||
# strip final trailing comma
|
||||
sed '$s/,$//' -i $TMPDIR/uv-deps.json
|
||||
echo ']' >> $TMPDIR/uv-deps.json
|
||||
|
||||
# and jq format it on the way into nixpkgs too
|
||||
jq '.' $TMPDIR/uv-deps.json > "$scriptDir/uv-deps.json"
|
||||
echo "Wrote uv-deps.json"
|
||||
|
||||
# github as well
|
||||
|
||||
srcHash="$(nix-prefetch-github ankitects anki --fetch-submodules --rev "$tag" --json | jq -r '.hash')"
|
||||
|
||||
sed -i "s|version = \".*\";|version = \"$tag\";|" "$scriptDir/default.nix"
|
||||
sed -i "s|rev = \".*\";|rev = \"$rev\";|" "$scriptDir/default.nix"
|
||||
sed -i "s|srcHash = \".*\";|srcHash = \"$srcHash\";|" "$scriptDir/default.nix"
|
||||
|
||||
touch $TMPDIR/.done
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user