about summary refs log tree commit diff
path: root/pkgs/applications/misc
diff options
context:
space:
mode:
authorYarny0 <41838844+Yarny0@users.noreply.github.com>2024-05-06 16:37:39 +0200
committerYarny0 <41838844+Yarny0@users.noreply.github.com>2024-05-06 16:37:39 +0200
commit0e513f0435b2edb2c53412df873b46c583b0f9b5 (patch)
tree48a9a7d089ac38028bd2aa85cee3ee481e96f78e /pkgs/applications/misc
parent25865a40d14b3f9cf19f19b924e2ab4069b09588 (diff)
electrum: add patch for aiorpcx compatibility
electrum is quite strict about the aiorpcx version is accepts.
With commit 97b53be7078dc8938fcedfb244459bd82884145c ,
aiorpcx got updated to 0.23.1 which is too much for electrum.

Upstream already has a patch to extend the
range of aiorpcx versions it permits.
We apply that patch until a the next release of electrum.

Unfortunatelly, the patch -- which we take from the
GitHub source repository -- does not patch every file
that that is needed to be patched in the distribution tarball.
Hence we have to copy the patched file over another file
in the `postPatch` hook of the build process.
See the comments there for more information.
Diffstat (limited to 'pkgs/applications/misc')
-rw-r--r--pkgs/applications/misc/electrum/default.nix24
1 files changed, 24 insertions, 0 deletions
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index eb24885ca1425..8250ebfe289b9 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , fetchFromGitHub
+, fetchpatch
 , wrapQtAppsHook
 , python3
 , zbar
@@ -109,7 +110,30 @@ python.pkgs.buildPythonApplication {
     pyqt6
   ];
 
+  patches = [
+    # aiorpcx 0.23.1 compatibility
+    # Note: this patches `/run_electrum`.
+    # In the source repo, `/electrum/electrum`
+    # is a symlink to `../run_electrum`,
+    # so that path would also be affected by the patch.
+    # However, in the distribution tarball used here,
+    # `/electrum/electrum` is simply an exact copy of
+    # `/run_electrum` and is thereby *not* affected.
+    # So we have to manually copy the patched `/run_electrum`
+    # over `/electrum/electrum` after the patching (see below).
+    # XXX remove the copy command in `postPatch`
+    # as soon as the patch itself is removed!
+    (fetchpatch {
+      url = "https://github.com/spesmilo/electrum/commit/5f95d919dfa9868eaf82889903b94faa8c6443e0.patch";
+      hash = "sha256-cEkduLsL6A8qPhXS2KPQWzVtkQPYQhHSbuwQ2SnanHw=";
+    })
+  ];
+
   postPatch = ''
+    # copy the patched `/run_electrum` over `/electrum/electrum`
+    # so the aiorpcx compatibility patch is used
+    cp run_electrum electrum/electrum
+
     # make compatible with protobuf4 by easing dependencies ...
     substituteInPlace ./contrib/requirements/requirements.txt \
       --replace "protobuf>=3.20,<4" "protobuf>=3.20"