electrum: fix building, update 4.6.0 -> 4.6.2 (#456881)

This commit is contained in:
Sandro
2025-11-22 23:01:52 +00:00
committed by GitHub
+46 -8
View File
@@ -7,6 +7,7 @@
python3,
zbar,
enableQt ? true,
enablePythonEcdsa ? false,
callPackage,
qtwayland,
}:
@@ -22,15 +23,25 @@ let
in
python3.pkgs.buildPythonApplication rec {
pname = "electrum";
version = "4.6.0";
format = "setuptools";
version = "4.6.2";
pyproject = true;
src = fetchurl {
url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
hash = "sha256-aQqZXyfqFgc1j2r836eaaayOmSzDijHlYXmF+OBw418=";
hash = "sha256-ZrwzAeeMNrs6KzLGDg5oBF7E+GGLYCVczO6R18TKRuE=";
};
build-system = [ protobuf ] ++ lib.optionals enableQt [ wrapQtAppsHook ];
build-system = with python3.pkgs; [
setuptools
];
nativeBuildInputs = [
protobuf
python3.pkgs.pythonRelaxDepsHook
]
++ lib.optionals enableQt [
wrapQtAppsHook
];
buildInputs = lib.optional (stdenv.hostPlatform.isLinux && enableQt) qtwayland;
dependencies =
@@ -56,18 +67,31 @@ python3.pkgs.buildPythonApplication rec {
electrum-ecc
# plugins
ledger-bitcoin
cbor2
pyserial
]
++ lib.optionals enablePythonEcdsa [
# enablePythonEcdsa gates plugins known to pull in python-ecdsa, which we
# avoid by default due to CVE-2024-23342.
ckcc-protocol
keepkey
trezor
bitbox02
cbor2
pyserial
]
++ lib.optionals enableQt [
pyqt6
qdarkstyle
];
pythonRelaxDeps = [
"attrs"
"dnspython"
];
pythonRemoveDeps = [
"protobuf"
];
checkInputs =
with python3.pkgs;
lib.optionals enableQt [
@@ -77,7 +101,11 @@ python3.pkgs.buildPythonApplication rec {
"tests/test_qml_types.py"
];
postPatch =
postPatch = ''
# Upstream tarball omits regenerated protobuf bindings in some releases.
protoc --python_out=. electrum/paymentrequest.proto
''
+ (
if enableQt then
''
substituteInPlace ./electrum/qrscanner.py \
@@ -86,7 +114,8 @@ python3.pkgs.buildPythonApplication rec {
else
''
sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
'';
''
);
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace $out/share/applications/electrum.desktop \
@@ -98,7 +127,15 @@ python3.pkgs.buildPythonApplication rec {
wrapQtApp $out/bin/electrum
'';
preFixup = ''
makeWrapperArgs+=(--prefix PYTHONPATH : ${python3.pkgs.protobuf}/${python3.sitePackages})
''
+ lib.optionalString enableQt ''
qtWrapperArgs+=(--prefix PYTHONPATH : ${python3.pkgs.protobuf}/${python3.sitePackages})
'';
nativeCheckInputs = with python3.pkgs; [
protobuf
pytestCheckHook
pyaes
pycryptodomex
@@ -108,6 +145,7 @@ python3.pkgs.buildPythonApplication rec {
# avoid homeless-shelter error in tests
preCheck = ''
export PYTHONPATH=${python3.pkgs.protobuf}/${python3.sitePackages}:$PYTHONPATH
export HOME="$(mktemp -d)"
'';