JoinMarket-Org / joinmarket-clientserver

Bitcoin CoinJoin implementation with incentive structure to convince people to take part
GNU General Public License v3.0
731 stars 179 forks source link

Can't open wallet - "File is already in use" error #1343

Open BestQualityVacuum opened 2 years ago

BestQualityVacuum commented 2 years ago

I run ./joinmarket-qt.sh at scripts to open up JoinMarket, as told in the main page.

A "Open Wallet" popup is prompt, and it tells me to enter my wallet name and passphrase. I do it, but then this error appears: image

I delete the .wallet1.jmdat.lock, re-enter the passphrase and nothing happens. The program just shuts down, a new .wallet1.jmdat.lock is created, and the console prints these messages:

Traceback (most recent call last):
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.10/site-packages/qt5reactor/core.py", line 292, in iterate_qt
    self.iterate(delay=delay, fromqt=True)
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.10/site-packages/qt5reactor/core.py", line 287, in _iterate
    self.doIteration(delay, fromqt=fromqt)
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.10/site-packages/qt5reactor/core.py", line 306, in doIteration
    self._timer.setInterval(timeout * 1000)
TypeError: setInterval(self, int): argument 1 has unexpected type 'float'
./joinmarket-qt.sh: line 5: 153770 Aborted                 (core dumped) python3 joinmarket-qt.py

Note that it's my first time that I try JoinMarket, and I'm using the latest release (0.9.7). I've also tested my RPC connection, and it works properly (it doesn't have to do with my full node).

AdamISZ commented 2 years ago

Thanks, I've labelled this bug, it definitely looks like one; can you try deleting *.lock file after quitting Qt, then re-opening Qt again?

Assuming that it works OK like that, we'll still need to fix the behaviour you described of course.

However, the debug message and the core dump here have me worried that it might instead be some library-level incompatibility. Someone will need to start by reproducing your error case.

AdamISZ commented 2 years ago

OK I have failed to reproduce this - probably not surprising as per my last paragraph above, about the nature of those error messages.

I did the following, on signet, on current master ed6f745372f3706c19ffcb07ac7be2f860c495b2 :

  1. Create a .lock file for my wallet (.signet5.jmdat.lock) manually in the wallets folder
  2. Start with ./joinmarket-qt.sh, get wallet open dialog
  3. Enter password to open, get error message exactly as shown above.
  4. Open new terminal and manually delete .signet5.jmdat.lock.
  5. Enter password for signet5.jmdat - the wallet opens normally and there are no errors on the terminal.

So I think we'd first need to establish if you can open and run things normally, it seems like there's some library incompatibility, probably in the Qt libraries.

BestQualityVacuum commented 2 years ago

Thanks, I've labelled this bug, it definitely looks like one; can you try deleting *.lock file after quitting Qt, then re-opening Qt again?

Once I do this, qt opens normally, it shows me the "Open Wallet" form, I choose the wallet file, enter the passphrase, and it shuts down and prints the error above.

kristapsk commented 2 years ago

It looks to me this could be issue with Python and / or Qt library versions.

Could you do the following in command line and copy / paste all output here?

$ cd /home/angelo/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/
$ source jmvenv/bin/activate
$ python --version
$ pip list | grep 'PySide\|PyQt'
BestQualityVacuum commented 2 years ago

Yes.

(jmvenv) username@computer:~/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7$ python --version
Python 3.10.4
(jmvenv) username@computer:~/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7$ pip list | grep 'PySide\|PyQt'
PyQt5                5.15.7
PyQt5-Qt5            5.15.2
PyQt5-sip            12.11.0
PySide2              5.15.2.1
AdamISZ commented 2 years ago

You could perhaps try this fix that was made a while back: https://github.com/JoinMarket-Org/joinmarket-clientserver/commit/61edd03ac09f1a5945f948f8203185dce0f04339#diff-fb36fac83bad8e5317ae7a1e2bbb7aff1fa5274b8da55e7ce056782ca9dba52eR3 (see the Issue #737 in the comments for some details on that; in particular this comment).

You could also try to pin the exact version of PySide2 that I have (5.14.2.3) though that probably doesn't matter (the issue seems to be in PySide2 5.15):

PyQt5                         5.15.6
PyQt5-Qt5                     5.15.2
PyQt5-sip                     12.9.0
PySide2                       5.14.2.3
AdamISZ commented 2 years ago

(Btw I forgot to say, of course, that currently we disallow 5.15.2 in requirement/gui.txt, but not 5.15.2.1).

BestQualityVacuum commented 2 years ago

I open requirements/gui.txt and see pywin32; platform_system == "Windows" in line 2. My operating system isn't Windows, but Ubuntu (22.04).

As for your last response(s): I don't think you've made it clear what you recommend me to do. Should I re-install some dependency?

AdamISZ commented 2 years ago

I open requirements/gui.txt and see pywin32; platform_system == "Windows" in line 2. My operating system isn't Windows, but Ubuntu (22.04).

Don't worry about that; it'll be ignored if you're not on Windows.

As for your last response(s): I don't think you've made it clear what you recommend me to do. Should I re-install some dependency?

Yes, sorry, to be clearer: I was suggesting replacing

PySide2!=5.15.0,!=5.15.1,!=5.15.2,!=6.0

in that file with:

PySide2==5.14.2.3

, and then repeating the installation.

... although, I would not be surprised if it doesn't work; if it doesn't, it'll be something related to differences between 22.04 ubuntu and the 20.04 that I'm using.

BestQualityVacuum commented 2 years ago

I can't install it with this new line.

ERROR: Ignored the following versions that require a different python version: 5.14.0 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.14.1 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.14.2 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.14.2.1 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.14.2.2 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.14.2.3 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.15.0 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.9; 5.15.1 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10; 5.15.2 Requires-Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.10
ERROR: Could not find a version that satisfies the requirement PySide2==5.14.2.3 (from versions: 0.0.0a1, 5.11.0, 5.11.1, 5.11.2, 5.12.0, 5.12.1, 5.12.2, 5.12.3, 5.12.4, 5.12.5, 5.12.6, 5.13.0, 5.13.1, 5.13.2, 5.15.2.1)
ERROR: No matching distribution found for PySide2==5.14.2.3
Joinmarket was not installed. Exiting.
username@computer:~/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7$ 
AdamISZ commented 2 years ago

Yes, as I feared. So it seems 5.14 is not available there for your Python version. Notice it says:

5.14.2 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4.*, <3.9;

So you'd have to run with Python 3.8, I'm guessing you're currently on 3.9 or 3.10 (edit: sorry you already told us, it's 3.10).

If that is very inconvenient (you could try sudo apt install python3.8, and then, if that works, run ./install.sh -p python3.8 so that the Joinmarket virtualenv uses that version of Python, instead of your default version), then I don't currently have another solution, i.e. one that works seamlessly with default Python on Ubuntu 22.04. Even if you do that, I can't guarantee it will work, but it's at least plausible.

BestQualityVacuum commented 2 years ago

Once I run ./install.sh -p python3.8 after I've installed python3.8, this is what I get:

Libraries have been installed in:
   /home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
gmake[4]: Nothing to be done for 'install-data-am'.
gmake[4]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src/libsodium'
gmake[3]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src/libsodium'
gmake[2]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src/libsodium'
gmake[2]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src'
gmake[3]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src'
gmake[3]: Nothing to be done for 'install-exec-am'.
gmake[3]: Nothing to be done for 'install-data-am'.
gmake[3]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src'
gmake[2]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src'
gmake[1]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/src'
Making install in test
gmake[1]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test'
Making install in default
gmake[2]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test/default'
gmake[3]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test/default'
gmake[3]: Nothing to be done for 'install-exec-am'.
gmake[3]: Nothing to be done for 'install-data-am'.
gmake[3]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test/default'
gmake[2]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test/default'
gmake[2]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test'
gmake[3]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test'
gmake[3]: Nothing to be done for 'install-exec-am'.
gmake[3]: Nothing to be done for 'install-data-am'.
gmake[3]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test'
gmake[2]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test'
gmake[1]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18/test'
gmake[1]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18'
gmake[2]: Entering directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18'
gmake[2]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/pkgconfig'
 /usr/bin/install -c -m 644 libsodium.pc '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/pkgconfig'
gmake[2]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18'
gmake[1]: Leaving directory '/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps/libsodium-1.0.18'
~/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/deps ~/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7
~/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7
Traceback (most recent call last):
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/bin/pip", line 5, in <module>
    from pip._internal.cli.main import main
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/cli/cmdoptions.py", line 23, in <module>
    from pip._internal.cli.parser import ConfigOptionParser
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/cli/parser.py", line 12, in <module>
    from pip._internal.configuration import Configuration, ConfigurationError
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/configuration.py", line 26, in <module>
    from pip._internal.utils.logging import getLogger
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/utils/logging.py", line 27, in <module>
    from pip._internal.utils.misc import ensure_dir
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/utils/misc.py", line 39, in <module>
    from pip._internal.locations import get_major_minor_version
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/locations/__init__.py", line 14, in <module>
    from . import _distutils, _sysconfig
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.8/site-packages/pip/_internal/locations/_distutils.py", line 9, in <module>
    from distutils.cmd import Command as DistutilsCommand
ModuleNotFoundError: No module named 'distutils.cmd'
Joinmarket was not installed. Exiting.
AdamISZ commented 2 years ago

I see, thanks for the report. I got the same error as that trying to install an old Python version myself recently (I tried 3.6 and 3.7 on Ubuntu 20.04). Right now I'm not sure how one fixes that.

BestQualityVacuum commented 2 years ago

So, it doesn't have to do with my Ubuntu release (22.04), I suppose. Should I try installing an older version of JoinMarket?

AdamISZ commented 2 years ago

So, it doesn't have to do with my Ubuntu release (22.04), I suppose.

Well, I'd definitely say it does - on 20.04 you simply won't have this problem. What we have here is an interplay between versions of different things - the operating system, Python and the Qt libraries. But that doesn't mean your OS is somehow 'the wrong one', it's just that they've changed some of the dependency chains there and our Qt install now doesn't seem to work.

Should I try installing an older version of JoinMarket?

I'm afraid I can't see any case where that will help. We've been pinning 5.14.2 of PySide2 for a long time (since late 2020 as per the convo linked above ), and I can't recommend trying to install something older than that (there are multiple ways that will be broken and/or bad, and may well not install on 22.04 either).

kristapsk commented 2 years ago
Traceback (most recent call last):
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.10/site-packages/qt5reactor/core.py", line 292, in iterate_qt
    self.iterate(delay=delay, fromqt=True)
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.10/site-packages/qt5reactor/core.py", line 287, in _iterate
    self.doIteration(delay, fromqt=fromqt)
  File "/home/username/Downloads/tor-browser_en-US/Browser/Downloads/joinmarket-clientserver-0.9.7/jmvenv/lib/python3.10/site-packages/qt5reactor/core.py", line 306, in doIteration
    self._timer.setInterval(timeout * 1000)
TypeError: setInterval(self, int): argument 1 has unexpected type 'float'
./joinmarket-qt.sh: line 5: 153770 Aborted                 (core dumped) python3 joinmarket-qt.py

Can confirm having the same error with Python 3.10.

kristapsk commented 2 years ago

Tried disallowing PySide 5.15.2.*, got 5.13.2 installed instead, but this causes new error (when commenting out try / except for load_program_config() in joinmarket-qt.py:

$ ./scripts/joinmarket-qt.sh 
User data location: /home/user/.joinmarket/
2022-09-29 11:29:22,879 [DEBUG]  rpc: getblockchaininfo []
Traceback (most recent call last):
  File "/home/user/git/joinmarket-clientserver/scripts/joinmarket-qt.py", line 2367, in <module>
    load_program_config(config_path=options.datadir)
  File "/home/user/git/joinmarket-clientserver/jmclient/jmclient/configure.py", line 763, in load_program_config
    global_singleton.bc_interface = get_blockchain_interface_instance(
  File "/home/user/git/joinmarket-clientserver/jmclient/jmclient/configure.py", line 898, in get_blockchain_interface_instance
    bc_interface = BitcoinCoreInterface(rpc, network,
  File "/home/user/git/joinmarket-clientserver/jmclient/jmclient/blockchaininterface.py", line 174, in __init__
    blockchainInfo = self._rpc("getblockchaininfo", [])
  File "/home/user/git/joinmarket-clientserver/jmclient/jmclient/blockchaininterface.py", line 232, in _rpc
    log.debug('rpc: ' + method + " " + str(args))
  File "/usr/lib/python3.10/logging/__init__.py", line 1465, in debug
    self._log(DEBUG, msg, args, **kwargs)
  File "/usr/lib/python3.10/logging/__init__.py", line 1624, in _log
    self.handle(record)
  File "/usr/lib/python3.10/logging/__init__.py", line 1634, in handle
    self.callHandlers(record)
  File "/usr/lib/python3.10/logging/__init__.py", line 1696, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python3.10/logging/__init__.py", line 968, in handle
    self.emit(record)
  File "/home/user/git/joinmarket-clientserver/scripts/qtsupport.py", line 201, in emit
    if record: XStream.stdout().write('%s\n' % record)
AttributeError: 'NoneType' object has no attribute 'write'
kristapsk commented 2 years ago

Tried disallowing 5.15.2.* also for PyQt5 and PyQt5-Qt5, but then there is no versions available for Python 3.10:

ERROR: Ignored the following versions that require a different python version: 5.14.0 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.14.1 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.14.2 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.14.2.1 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.14.2.2 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.14.2.3 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.15.0 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.9; 5.15.1 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.10; 5.15.2 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.10 ERROR: Could not find a version that satisfies the requirement PyQt5-Qt5!=5.15.0,!=5.15.1,!=5.15.2.,!=6.0 (from versions: 5.15.2) ERROR: No matching distribution found for PyQt5-Qt5!=5.15.0,!=5.15.1,!=5.15.2.*,!=6.0

With Python 3.9 have no problems, can run joinmarket-qt with current master. So seems we don't support Qt GUI with Python 3.10 for now, workaround is to use older Python version.

@AdamISZ Could we build Linux binary for joinmarket-qt, like we already do for Windows?

AdamISZ commented 2 years ago

@AdamISZ Could we build Linux binary for joinmarket-qt, like we already do for Windows?

We can, and I have done it in the past, but I stopped when I realized that incompatibilities in the linked libraries on different distros regularly caused problems. Note that building a static binary is obviously desirable, but it's surprisingly difficult. We should probably try to use AppImage or something like that, but i only briefly looked into it a couple years back and didn't find an easy way to get it to work. We could start from Electrum's setup (which is what I did for the Windows thing - I set up the wine build process from what I saw from Electrum and maybe Core HWI too), but I was struggling to find the motivation to do this intensive work for Linux since it seemed like very few people would have trouble just starting a script for it instead (like your .sh wrapper), that's why there was a note in the releases for some time 'if there is interest in a Linux binary we may start releasing them again', but literally nobody said anything in response to that.

kristapsk commented 2 years ago

There seems to be more and more issues regarding Qt, maybe we should look at again. Same applies to macOS.

Also, would be cool to have process documented and have reproducible builds (should not be too hard - just use some VM with same versions of all software involved into building binaries).