Package Details: electrum-ltc 4.2.2.1-5

Git Clone URL: https://aur.archlinux.org/electrum-ltc.git (read-only, click to copy)
Package Base: electrum-ltc
Description: Litecoin wallet
Upstream URL: https://electrum-ltc.org/
Keywords: litecoin wallet
Licenses: MIT
Submitter: atweiden
Maintainer: proledatarian
Last Packager: proledatarian
Votes: 27
Popularity: 0.68
First Submitted: 2014-04-11 20:39 (UTC)
Last Updated: 2024-05-16 14:16 (UTC)

Latest Comments

1 2 3 4 5 Next › Last »

proledatarian commented on 2024-05-16 14:20 (UTC)

Thanks to @dllud's patch the package should be fixed again! If there are still any issues, let me know.

chilichiller commented on 2024-04-29 13:06 (UTC)

@cmonty14 I got the same error (Unknown public key 6FC4C9F7F1BE8FEA).

You can solve that by importing the signing keys, as described there:

https://electrum-ltc.org/verifying-signatures.html

tallero commented on 2024-02-27 11:16 (UTC)

@dilud:

I have read your comment about fixing link to the library with a small patch only after published old libsecp256k1-0.1 so this version runs vanilla.

If needed, it's published here anyway.

dllud commented on 2024-02-16 20:06 (UTC)

The libsecp256k1 version issue won't get fixed any time soon as electrum-ltc is now unmaitained.

Could you please apply a patch to fix the issue?

Here's my suggestion:

From 3803932e123c309749883514d9ce46c5a949e2f1 Mon Sep 17 00:00:00 2001
From: dllud <dllud riseup net>
Date: Fri, 16 Feb 2024 19:59:41 +0000
Subject: [PATCH] Fix libsecp256k1 version mismatch

Brings in the current ecc_fast.py from spesmilo/electrum
---
 .SRCINFO                        |  4 ++-
 PKGBUILD                        |  7 +++--
 libsecp256k1-new-versions.patch | 52 +++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+), 3 deletions(-)
 create mode 100644 libsecp256k1-new-versions.patch

diff --git a/.SRCINFO b/.SRCINFO
index fdad4df..2687777 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
 pkgbase = electrum-ltc
    pkgdesc = Litecoin wallet
    pkgver = 4.2.2.1
-   pkgrel = 1
+   pkgrel = 2
    url = https://electrum-ltc.org/
    arch = any
    license = MIT
@@ -22,8 +22,10 @@ pkgbase = electrum-ltc
    depends = zbar
    source = https://electrum-ltc.org/download/Electrum-LTC-4.2.2.1.tar.gz
    source = https://electrum-ltc.org/download/Electrum-LTC-4.2.2.1.tar.gz.asc
+   source = libsecp256k1-new-versions.patch
    validpgpkeys = CAE1092AD3553FFD21C05DE36FC4C9F7F1BE8FEA
    b2sums = 77a3f3969d435492216fa93afe48228bec1e3897d83eb5ebce5aee7088304ae54ceeeb030c6250a761a1f5c02abe554bc5e38c055b9979c1b390304a2f4a0966
    b2sums = SKIP
+   b2sums = 3ede7aaca7dc96a8de4a942de9eb0018abc56e5716c00259a1baa77393a6274b79b1f2524822a38209fda44e66efbe633bc56295f842687e4a12a53552c550b2

 pkgname = electrum-ltc
diff --git a/PKGBUILD b/PKGBUILD
index b88c108..d218c69 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=electrum-ltc
 pkgver=4.2.2.1
-pkgrel=1
+pkgrel=2
 pkgdesc='Litecoin wallet'
 arch=(any)
 url=https://electrum-ltc.org/
@@ -22,16 +22,19 @@ depends=(
   zbar
 )
 makedepends=(python-setuptools)
-source=(https://electrum-ltc.org/download/Electrum-LTC-$pkgver.tar.gz{,.asc})
+source=(https://electrum-ltc.org/download/Electrum-LTC-$pkgver.tar.gz{,.asc}
+        libsecp256k1-new-versions.patch)
 validpgpkeys=(CAE1092AD3553FFD21C05DE36FC4C9F7F1BE8FEA)
 b2sums=(
   77a3f3969d435492216fa93afe48228bec1e3897d83eb5ebce5aee7088304ae54ceeeb030c6250a761a1f5c02abe554bc5e38c055b9979c1b390304a2f4a0966
   SKIP
+ 3ede7aaca7dc96a8de4a942de9eb0018abc56e5716c00259a1baa77393a6274b79b1f2524822a38209fda44e66efbe633bc56295f842687e4a12a53552c550b2
 )

 prepare() {
   sed -i -r '/^#/,/^\[Desktop Entry\]$/{/^#|^$/d}; s/(Exec=).*(electrum.+%u).*/\1\2/' \
     Electrum-LTC-$pkgver/electrum-ltc.desktop
+  patch -Np1 -d "Electrum-LTC-$pkgver" -i "${srcdir}/libsecp256k1-new-versions.patch"
 }

 build() {
diff --git a/libsecp256k1-new-versions.patch b/libsecp256k1-new-versions.patch
new file mode 100644
index 0000000..071d3c2
--- /dev/null
+++ b/libsecp256k1-new-versions.patch
@@ -0,0 +1,52 @@
+diff --git a/electrum_ltc/ecc_fast.py b/electrum_ltc/ecc_fast.py
+index 3a6e706e4..a27e21149 100644
+--- a/electrum_ltc/ecc_fast.py
++++ b/electrum_ltc/ecc_fast.py
+@@ -37,17 +37,28 @@ class LibModuleMissing(Exception): pass
+ 
+ 
+ def load_library():
++    # note: for a mapping between bitcoin-core/secp256k1 git tags and .so.V libtool version numbers,
++    #       see https://github.com/bitcoin-core/secp256k1/pull/1055#issuecomment-1227505189
++    tested_libversions = [2, 1, 0, ]  # try latest version first
++    libnames = []
+     if sys.platform == 'darwin':
+-        library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.0.dylib'),
+-                         'libsecp256k1.0.dylib')
++        for v in tested_libversions:
++            libnames.append(f"libsecp256k1.{v}.dylib")
+     elif sys.platform in ('windows', 'win32'):
+-        library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1-0.dll'),
+-                         'libsecp256k1-0.dll')
++        for v in tested_libversions:
++            libnames.append(f"libsecp256k1-{v}.dll")
+     elif 'ANDROID_DATA' in os.environ:
+-        library_paths = ('libsecp256k1.so',)
++        libnames = ['libsecp256k1.so', ]  # don't care about version number. we built w/e is available.
+     else:  # desktop Linux and similar
+-        library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.so.0'),
+-                         'libsecp256k1.so.0')
++        for v in tested_libversions:
++            libnames.append(f"libsecp256k1.so.{v}")
++        # maybe we could fall back to trying "any" version? maybe guarded with an env var?
++        #libnames.append(f"libsecp256k1.so")
++    library_paths = []
++    for libname in libnames:  # try local files in repo dir first
++        library_paths.append(os.path.join(os.path.dirname(__file__), libname))
++    for libname in libnames:
++        library_paths.append(libname)
+ 
+     exceptions = []
+     secp256k1 = None
+@@ -137,4 +148,10 @@ except BaseException as e:
+ 
+ if _libsecp256k1 is None:
+     # hard fail:
+-    sys.exit(f"Error: Failed to load libsecp256k1.")
++    raise ImportError("Failed to load libsecp256k1")
++
++
++def version_info() -> dict:
++    return {
++        "libsecp256k1.path": _libsecp256k1._name if _libsecp256k1 else None,
++    }
-- 
2.43.2


winnie_ua commented on 2023-08-12 21:29 (UTC)

this workaround helped me:

$ sudo pacman -S libsecp256k1
$ sudo ln -s /usr/lib/libsecp256k1.so  /usr/lib/python3.11/site-packages/electrum_ltc/libsecp256k1.so.0 

Laman commented on 2023-07-07 16:04 (UTC) (edited on 2023-07-07 16:05 (UTC) by Laman)

A recent update left me unable to start electrum.

Error: Failed to load libsecp256k1.
E | ecc_fast | libsecp256k1 library failed to load. exceptions: [OSError('/usr/lib/python3.11/site-packages/electrum_ltc/libsecp256k1.so.0:
cannot open shared object file: No such file or directory'), OSError('libsecp256k1.so.0: cannot open shared object file: No such file or directory')]

It seems that the libsecp256k1 filename changed. After modifying library_paths in ecc_fast.py from libsecp256k1.so.0 to libsecp256k1.so i got it to work.

cmonty14 commented on 2022-12-06 19:27 (UTC)

I get this error when trying to install: Electrum-LTC-4.2.2.1.tar.gz ... FAILDED (Unknown public key 6FC4C9F7F1BE8FEA)