Author

Topic: Qt_5_PRIVATE_API not defined in libQt5Gui.so.5 with 4.1.2-x86_64.AppImage (Read 155 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
So I should rebuild libsecp256k1 and tell mageia team to build it properly, or more, to include it in its repository.

It looks like it's unique problem on specific linux distro or outdated OS. I suspect Mageia 8 looks like still use older version of libsecp256k1, although i can't confirm since the versioning is different from Debian-based OS.

So I should rebuild libsecp256k1 and tell mageia team to build it properly, or more, to include it in its repository.

I kind of get it; people want a Windows-like experience from a free OS.  But, nothing worth having is "free," and a Windows-like experience would require and OS that... well, works.

Ditch that shitty fucking excuse for an OS.  If you want a Windowesque OS on a Linux distro, and have it actually work use Xubuntu Desktop.  Don't get me wrong; Xubuntu is still shit, but since it's essentially Ubuntu with the Xfce Desktop it works. 

Or Kubuntu which use KDE Plasma, since OP mention he already use KDE desktop environment.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
As said nc50lc :
Quote
Electrum has its own script to build libsecp256k1, the version for your OS might have a missing module.
Try to use:
Code:
$ ./Electrum-4.1.2/contrib/make_libsecp256k1.sh
So I should rebuild libsecp256k1 and tell mageia team to build it properly, or more, to include it in its repository.
That's good, AFAIK older versions of Ubuntu had the same issue with libsecp256k1 that had been causing the same error in Electrum.
The Appimage however has it already, pre-compiled.
copper member
Activity: 2338
Merit: 4543
Join the world-leading crypto sportsbook NOW!
So I should rebuild libsecp256k1 and tell mageia team to build it properly, or more, to include it in its repository.

I kind of get it; people want a Windows-like experience from a free OS.  But, nothing worth having is "free," and a Windows-like experience would require and OS that... well, works.

Ditch that shitty fucking excuse for an OS.  If you want a Windowesque OS on a Linux distro, and have it actually work use Xubuntu Desktop.  Don't get me wrong; Xubuntu is still shit, but since it's essentially Ubuntu with the Xfce Desktop it works.  

newbie
Activity: 5
Merit: 1
The problem is solved after installing mageia 8. I recovered my BTC :-)

Actually, it is only solved when I run the AppImage.
When I start electrum from the tarball, I get :
Code:
$ Electrum-4.1.2/run_electrum
E | ecc_fast | failed to load libsecp256k1: LibModuleMissing('libsecp256k1 library found but it was built without required module (--enable-module-recovery)')
Error: Failed to load libsecp256k1.
while libsecp256k1 is installed as you can see above and below.
Code:
$ rpm -qa | grep secp256k1
lib64secp256k1_0-0.22.0-1.mga8
lib64secp256k1-devel-0.22.0-1.mga8

As said nc50lc :
Quote
Electrum has its own script to build libsecp256k1, the version for your OS might have a missing module.
Try to use:
Code:
$ ./Electrum-4.1.2/contrib/make_libsecp256k1.sh
So I should rebuild libsecp256k1 and tell mageia team to build it properly, or more, to include it in its repository.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
To run the tar.gz file you need to install libsecp256k1 from apt:

sudo apt install libsecp256k1-0

But since you're not using a Debian/Ubuntu OS, then the package might have a different name, and you'll have other package managers like yum or pacman.

Edit: since you are using Mageia then use urpmf libsecp256k1 to install it.

If I'm not mistaken, the app image will only run on an OS with a GUI Desktop.  It looks like the error has to do with electrum's graphical interface.

It'll also work if you launch it from a terminal but you are running it in an X desktop.



If you're getting errors about relocation and missing symbols, your OS version packages older libraries than what the AppImage was built from.

Or, maybe you're tying to run a 64-bit AppImage on 32-bit Mageia.
newbie
Activity: 5
Merit: 1
Thanks for your numerous answers.
I think the 1st thing I have to do is upgrading to mga-8.
I'll give you the result when it's done.
legendary
Activity: 2618
Merit: 6452
Self-proclaimed Genius
I first tried to run Electrum-4.0.9 from Electrum-4.1.2.tar.gz :
Code:
$ ./Electrum-4.0.9/run_electrum
E | ecc_fast | failed to load libsecp256k1: LibModuleMissing('libsecp256k1 library found but it was built without required module (--enable-module-recovery)')
Error: Failed to load libsecp256k1.
I don't know "sudo apt-get" but after having installed lib64secp256k1-devel-0.1-0.0.git20171221.2.mga7, I got the same error
Electrum has its own script to build libsecp256k1, the version for your OS might have a missing module.
Try to use:
Code:
$ ./Electrum-4.1.2/contrib/make_libsecp256k1.sh
Or the other workarounds mentioned in this post: https://github.com/spesmilo/electrum/issues/6465#issuecomment-691368241

But I doubt that it will fix the other issue since there seems to be a problem with pyqt5 when you use the Appimage.
copper member
Activity: 2338
Merit: 4543
Join the world-leading crypto sportsbook NOW!
Quote
sudo apt install libsecp256k1-dev
I don't know "sudo apt-get"

sudo runs the given command with admin, or root privileges.  apt is short for Aptitude, the standard debian software management system.  By using sudo the package is installed with root privileges.

Quote
This message is quite vague. One of the possible version is you're using outdated OS which has very old version of Qt 5
Mageia-7.1 was a few weeks ago the last version of Mageia.

Version 7.1 was first released nearly two years ago, and is running the Linux 5.1.14 kernel, which isn't an LTS release.  I'm not sure if that's your issue, but I'm guessing it might be.  Were you able to use an older version of Electrum with this OS?
newbie
Activity: 5
Merit: 1
1st, there are a few mistakes in my yesteday's post :
-> all my tests were done on electrum-4.1.2, not on electrum-4.0.9.

So the true answer to my test with the tarball is :
Code:
$ ./Electrum-4.1.2/run_electrum
/usr/lib/python3.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.24.3) or chardet (4.0.0) doesn't match a supported version!
  RequestsDependencyWarning)
E | ecc_fast | failed to load libsecp256k1: LibModuleMissing('libsecp256k1 library found but it was built without required module (--enable-module-recovery)')
Error: Failed to load libsecp256k1.

Quote
Did you run this on Linux?
Yes, Mageia-7.1

Quote
sudo apt install libsecp256k1-dev
I don't know "sudo apt-get" but after having installed lib64secp256k1-devel-0.1-0.0.git20171221.2.mga7, I got the same error

Quote
Have you installed required dependency mention on electrum website?
Code:
$ rpm -qa | grep -e python3-pyqt5 -e secp256k1 -e python3-cryptography
lib64secp256k1_0-0.1-0.0.git20171221.2.mga7
python3-pyqt5-sip-4.19.16-1.mga7
python3-cryptography-2.6.1-2.mga7
lib64secp256k1-devel-0.1-0.0.git20171221.2.mga7

Quote
This message is quite vague. One of the possible version is you're using outdated OS which has very old version of Qt 5
Mageia-7.1 was a few weeks ago the last version of Mageia.

Quote
It looks like the error has to do with electrum's graphical interface.  Are you running a server version operating system?
I am not running electrum as a server but on a desktop environment kde/plasma :
Code:
$ /usr/bin/plasmashell -v
plasmashell 5.15.4
copper member
Activity: 2338
Merit: 4543
Join the world-leading crypto sportsbook NOW!
So, after that, I have withdrew to the AppImage which is supposed to run everywhere :

If I'm not mistaken, the app image will only run on an OS with a GUI Desktop.  It looks like the error has to do with electrum's graphical interface.  Are you running a server version operating system?  If so, you can still install and run Electrum as a daemon, but you'll have to install it from the tar ball.

Although, here's the help menu from the app image, and it appears you can run it as a daemon.

Code:
direwolf@UbuntuVM:~$ /bin/electrum-4.1.2-x86_64.AppImage -h
usage: electrum [-h] [-v VERBOSITY] [-V VERBOSITY_SHORTCUTS]
                [-D ELECTRUM_PATH] [-P] [--testnet] [--regtest] [--simnet]
                [-o] [-w WALLET_PATH] [--forgetconfig]
                 ...

positional arguments:
  
    gui                 Run GUI (default)
    daemon              Run Daemon
    add_lightning_request
    add_peer
    add_request         Create a payment request, using the first unused
                        address of the wallet
    addtransaction      Add a transaction to the wallet history
    broadcast           Broadcast a transaction to the network
    changegaplimit      Change the gap limit of the wallet
    clear_invoices      Remove all invoices
    clear_ln_blacklist
    clear_requests      Remove all payment requests
    close_channel
    close_wallet        Close wallet
    commands            List of commands
    convert_xkey        Convert xtype of a master key
    create              Create a new wallet
    createmultisig      Create multisig address
    createnewaddress    Create a new receiving address, beyond the gap limit
                        of the wallet
    decode_invoice
    decrypt             Decrypt a message encrypted with a public key
    deserialize         Deserialize a serialized transaction
    dumpgraph
    dumpprivkeys        Deprecated
    enable_htlc_settle
    encrypt             Encrypt a message with a public key
    export_channel_backup
    freeze              Freeze address
    freeze_utxo         Freeze a UTXO so that the wallet will not spend it
    get                 Return item from wallet storage
    get_channel_ctx     return the current commitment transaction of a channel
    get_ssl_domain      Check and return the SSL domain set in ssl_keyfile and
                        ssl_certfile
    get_tx_status       Returns some information regarding the tx
    get_watchtower_ctn  return the local watchtower's ctn of channel
    getaddressbalance   Return the balance of any address
    getaddresshistory   Return the transaction history of any address
    getaddressunspent   Returns the UTXO list of any address
    getalias            Retrieve alias
    getbalance          Return the balance of your wallet
    getconfig           Return a configuration variable
    getfeerate          Return current suggested fee rate (in sat/kvByte),
                        according to config settings or supplied parameters
    getinfo             network info
    getmasterprivate    Get master private key
    getmerkle           Get Merkle branch of a transaction included in a block
    getminacceptablegap
                        Returns the minimum value for gap limit that would be
                        sufficient to discover all known addresses in the
                        wallet
    getmpk              Get master public key
    getprivatekeyforpath
                        Get private key corresponding to derivation path
                        (address index)
    getprivatekeys      Get private keys of addresses
    getpubkeys          Return the public keys for a wallet address
    getrequest          Return a payment request
    getseed             Get seed phrase
    getservers          Return the list of known servers (candidates for
                        connecting)
    gettransaction      Retrieve a transaction
    getunusedaddress    Returns the first unused address of the wallet, or
                        None if all addresses are used
    help
    import_channel_backup
    importprivkey       Import a private key
    inject_fees
    is_synchronized     return wallet synchronization status
    ismine              Check if address is in wallet
    lightning_history   lightning history
    list_channels
    list_invoices
    list_peers
    list_requests       List the payment requests you made
    list_wallets        List wallets open in daemon
    listaddresses       List wallet addresses
    listcontacts        Show your list of contacts
    listunspent         List unspent outputs
    lnpay
    load_wallet         Open wallet in daemon
    make_seed           Create a seed
    nodeid
    normal_swap         Normal submarine swap: send on-chain BTC, receive on
                        Lightning Note that your funds will be locked for 24h
                        if you do not have enough incoming capacity
    notify              Watch an address
    onchain_history     Wallet onchain history
    open_channel
    password            Change wallet password
    payto               Create a transaction
    paytomany           Create a multi-output transaction
    removelocaltx       Remove a 'local' transaction from the wallet, and its
                        dependent transactions
    request_force_close
                        Requests the remote to force close a channel
    restore             Restore a wallet from text
    reverse_swap        Reverse submarine swap: send on Lightning, receive on-
                        chain
    rmrequest           Remove a payment request
    searchcontacts      Search through contacts, return matching entries
    serialize           Create a transaction from json inputs
    setconfig           Set a configuration variable
    setlabel            Assign a label to an item
    signmessage         Sign a message with a key
    signrequest         Sign payment request with an OpenAlias
    signtransaction     Sign a transaction
    stop                Stop daemon
    sweep               Sweep private keys
    unfreeze            Unfreeze address
    unfreeze_utxo       Unfreeze a UTXO so that the wallet might spend it
    validateaddress     Check that an address is valid
    verifymessage       Verify a signature
    version             Return the version of Electrum

optional arguments:
  -h, --help            show this help message and exit
  -w WALLET_PATH, --wallet WALLET_PATH
                        wallet path
  --forgetconfig        Forget config on exit

global options:
  -v VERBOSITY          Set verbosity (log levels)
  -V VERBOSITY_SHORTCUTS
                        Set verbosity (shortcut-filter list)
  -D ELECTRUM_PATH, --dir ELECTRUM_PATH
                        electrum directory
  -P, --portable        Use local 'electrum_data' directory
  --testnet             Use Testnet
  --regtest             Use Regtest
  --simnet              Use Simnet
  -o, --offline         Run offline

Run 'electrum help ' to see the help for a command
HCP
legendary
Activity: 2086
Merit: 4363
So, after that, I have withdrew to the AppImage which is supposed to run everywhere :
Code:
$ ./electrum-4.1.2-x86_64.AppImage
/tmp/.mount_electrFhoVKm/usr/bin/python3.7: relocation error: /lib64/libQt5XcbQpa.so.5: symbol _ZN22QWindowSystemInterface24setPlatformFiltersEventsEb version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference
What "flavour" and version of Linux are you actually trying to run this .AppImage on? ie Is it Ubuntu 18.04? Ubuntu 20.04? Fedora? Arch? Huh
legendary
Activity: 3472
Merit: 3217
Playbet.io - Crypto Casino and Sportsbook
Did you run this on Linux?

I tried to search about this error and I see some solution to solve this issue.

Try this command below.

Code:
sudo apt install libsecp256k1-dev

Then try to open the Electrum again.

I got that solution from here https://github.com/spesmilo/electrum/issues/5606
You can also try the other suggestion from that link if the command above doesn't work.
newbie
Activity: 5
Merit: 1
Hello,

I first tried to run Electrum-4.0.9 from Electrum-4.1.2.tar.gz :
Code:
$ tar -xzf Electrum-4.0.9.tar.gz
$ gpg --import ThomasV.asc
gpg: key 2BD5824B7F9470E6: "Thomas Voegtlin (https://electrum.org) " not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
$ gpg --verify Electrum-4.1.2.tar.gz.asc Electrum-4.1.2.tar.gz
gpg: Signature made Thu Apr  8 15:47:30 2021 CEST
gpg:                using RSA key 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6
gpg: Good signature from "Thomas Voegtlin (https://electrum.org) " [unknown]
gpg:                 aka "ThomasV " [unknown]
gpg:                 aka "Thomas Voegtlin " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 6694 D8DE 7BE8 EE56 31BE  D950 2BD5 824B 7F94 70E6
$ ./Electrum-4.0.9/run_electrum
E | ecc_fast | failed to load libsecp256k1: LibModuleMissing('libsecp256k1 library found but it was built without required module (--enable-module-recovery)')
Error: Failed to load libsecp256k1.

So, after that, I have withdrew to the AppImage which is supposed to run everywhere :
Code:
$ gpg --verify electrum-4.1.2-x86_64.AppImage.asc electrum-4.1.2-x86_64.AppImage
gpg: Signature made Thu Apr  8 15:47:31 2021 CEST
gpg:                using RSA key 6694D8DE7BE8EE5631BED9502BD5824B7F9470E6
gpg: Good signature from "Thomas Voegtlin (https://electrum.org) " [unknown]
gpg:                 aka "ThomasV " [unknown]
gpg:                 aka "Thomas Voegtlin " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 6694 D8DE 7BE8 EE56 31BE  D950 2BD5 824B 7F94 70E6
$ ./electrum-4.1.2-x86_64.AppImage
/tmp/.mount_electrFhoVKm/usr/bin/python3.7: relocation error: /lib64/libQt5XcbQpa.so.5: symbol _ZN22QWindowSystemInterface24setPlatformFiltersEventsEb version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference

and I got another kind of error !

any idea ?
Thanks
Jump to: