I want to overlay searxng into a slightly newer commit to test it with brave search engine fixed, but in that commit it required a newer version 0.20.0 of a python package msgspec, but it still complain it is using 0.19.0 but not 0.20.0 in the following code:
final: prev:
let
searxng-overrideAttrs = prev.searxng.overrideAttrs (
finalAttrs: previousAttrs: {
version = "0-unstable-2025-12-17";
src = prev.fetchFromGitHub {
owner = "searxng";
repo = "searxng";
rev = "896863802e0d14b1d7003b442a842317a0272b0f";
hash = "sha256-9vSO69On9MQ2J4zqAweMTW4ZKGE1Iex575INv+/VsPs=";
};
# This preBuild block is copied from searxng package
preBuild =
let
versionString = lib.concatStringsSep "." (
builtins.tail (lib.splitString "-" (lib.removePrefix "0-" finalAttrs.version))
);
commitAbbrev = builtins.substring 0 8 finalAttrs.src.rev;
in
''
export SEARX_DEBUG="true";
cat > searx/version_frozen.py <<EOF
VERSION_STRING="${versionString}+${commitAbbrev}"
VERSION_TAG="${versionString}+${commitAbbrev}"
DOCKER_TAG="${versionString}-${commitAbbrev}"
GIT_URL="https://github.com/searxng/searxng"
GIT_BRANCH="master"
EOF
'';
}
);
python3o = prev.python3.override {
packageOverrides = pyfinal: pyprev: {
# msgspec = prev.python3.pkgs.msgspec.overridePythonAttrs rec {
msgspec = prev.python3.pkgs.msgspec.overrideAttrs rec {
version = "0.20.0";
src = prev.fetchFromGitHub {
owner = "jcrist";
repo = "msgspec";
tag = version;
hash = "";
};
};
};
};
in
{
searxng = searxng-overrideAttrs.override { python3 = python3o; };
}