Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename packages #260

Merged
merged 12 commits into from
Jan 12, 2023
Merged

Rename packages #260

merged 12 commits into from
Jan 12, 2023

Conversation

PiRK
Copy link
Collaborator

@PiRK PiRK commented Jan 10, 2023

This will reduce the number of problems for developers and power users installing both electroncash and electrumabc as a library with pip install .

It opens the way for electrumabc to be used as a library, not just as a packaged application.

This replaces #197 (rebasing this after all the recent changes, notably #257 , would be harder than redoing the refactoring from scratch)

It also includes cleanups related to touched code:

  • use relative imports
  • remove unused files and dead code
  • fix a circular dependency

and delete a block of unreachable code

Test Plan:

```
python -m electroncash_plugins.fusion.tests
python -m electroncash.tests
./electrum-abc
```
Test Plan:

```
./electrum-abc
```

Open the receive tab, click the QR code, save to file.
Test Plan:
run unit tests, run electrum-abc
Test Plan:

run electrum-abc, test a few plugins (CashFusion, hw wallets)

Build the binaries, test the generated release files
Test Plan:

run electrum-abc

Build the binaries, test the generated release files
I didn't address the "import electroncash" instances in the previous commit.
@PiRK
Copy link
Collaborator Author

PiRK commented Jan 11, 2023

There is still an issue with the MacOS build. Renaming the package confuses pyinstaller when it comes to copying the tor binary:

💬 INFO:  Building binary
55 INFO: PyInstaller: 4.3
56 INFO: Python: 3.9.13
64 INFO: Platform: macOS-11.7.2-x86_64-i386-64bit
68 INFO: UPX is not available.
69 INFO: Removing temporary files and cleaning cache in /Users/pierre/Library/Application Support/pyinstaller
743 INFO: Extending PYTHONPATH with paths
['/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC',
 '/Users/pierre/ElectrumABC']
750 INFO: checking Analysis
750 INFO: Building Analysis because Analysis-00.toc is non existent
750 INFO: Initializing module dependency graph...
753 INFO: Caching module graph hooks...
760 INFO: Analyzing base_library.zip ...
3402 INFO: Processing pre-find module path hook distutils from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/pre_find_module_path/hook-distutils.py'.
3403 INFO: distutils: retargeting to non-venv dir '/Users/pierre/.pyenv/versions/3.9.13/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9'
5983 INFO: Caching module dependency graph...
6275 INFO: running Analysis Analysis-00.toc
6283 INFO: Analyzing /Users/pierre/ElectrumABC/electrum-abc
6532 INFO: Processing pre-safe import module hook six.moves from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-six.moves.py'.
7868 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-urllib3.packages.six.moves.py'.
15365 INFO: Processing pre-find module path hook site from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/pre_find_module_path/hook-site.py'.
15366 INFO: site: retargeting to fake-dir '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/fake-modules'
16419 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_gui/qt/main_window.py
16606 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_gui/qt/qrreader/camera_dialog.py
16618 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_gui/text.py
16638 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/util.py
16684 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/wallet.py
16793 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/simple_config.py
16801 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/bitcoin.py
16849 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/dnssec.py
16862 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/commands.py
16896 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc/tor/controller.py
16904 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/cosigner_pool/qt.py
16918 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/email_requests/qt.py
17034 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/trezor/clientbase.py
18028 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/trezor/trezor.py
18043 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/trezor/qt.py
18103 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/keepkey/qt.py
18187 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/ledger/qt.py
18190 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/satochip/qt.py
18639 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/fusion/fusion.py
18673 INFO: Analyzing /Users/pierre/ElectrumABC/electrumabc_plugins/fusion/qt.py
18733 INFO: Analyzing hidden import 'trezorlib.cli.crypto'
18781 INFO: Analyzing hidden import 'trezorlib.toif'
19157 INFO: Analyzing hidden import 'trezorlib.tezos'
19159 INFO: Analyzing hidden import 'trezorlib.cli.firmware'
19166 INFO: Analyzing hidden import 'trezorlib.cli.lisk'
19171 INFO: Analyzing hidden import 'trezorlib.binance'
19173 INFO: Analyzing hidden import 'trezorlib.cli.settings'
19177 INFO: Analyzing hidden import 'trezorlib.cli.eos'
19187 INFO: Analyzing hidden import 'trezorlib.cli.binance'
19189 INFO: Analyzing hidden import 'trezorlib.debuglink'
19204 INFO: Analyzing hidden import 'trezorlib.stellar'
19219 INFO: Analyzing hidden import 'trezorlib.cli.monero'
19222 INFO: Analyzing hidden import 'trezorlib.cli.tezos'
19224 INFO: Analyzing hidden import 'trezorlib.cli.nem'
19234 INFO: Analyzing hidden import 'trezorlib.ripple'
19236 INFO: Analyzing hidden import 'trezorlib.cli.ethereum'
19250 INFO: Analyzing hidden import 'trezorlib.cli.ripple'
19252 INFO: Analyzing hidden import 'trezorlib.cli.cosi'
19254 INFO: Analyzing hidden import 'trezorlib.cli.btc'
19280 INFO: Analyzing hidden import 'trezorlib.cli.cardano'
19289 INFO: Analyzing hidden import 'trezorlib.cli.trezorctl'
19311 INFO: Analyzing hidden import 'btchip.btchipHelpers'
19339 INFO: Analyzing hidden import 'btchip.btchip'
19394 INFO: Analyzing hidden import 'btchip.btchipUtils'
19397 INFO: Analyzing hidden import 'btchip.ui.personalization03config'
19425 INFO: Analyzing hidden import 'btchip.ui.personalization00start'
19428 INFO: Analyzing hidden import 'btchip.msqr'
19430 INFO: Analyzing hidden import 'btchip.ui.personalization04finalize'
19433 INFO: Analyzing hidden import 'btchip.btchipPersoWizard'
19446 INFO: Analyzing hidden import 'btchip.ui.personalization01seed'
19449 INFO: Analyzing hidden import 'btchip.ui.personalizationseedbackup03'
19452 INFO: Analyzing hidden import 'btchip.btchipFirmwareWizard'
19453 INFO: Analyzing hidden import 'btchip.ui.personalizationseedbackup02'
19455 INFO: Analyzing hidden import 'btchip.ui.personalizationseedbackup01'
19458 INFO: Analyzing hidden import 'btchip.ui.personalizationseedbackup04'
19460 INFO: Analyzing hidden import 'btchip.ui.personalization02security'
19464 INFO: Analyzing hidden import 'keepkeylib.transport_fake'
19649 INFO: Analyzing hidden import 'keepkeylib.ckd_public'
19666 INFO: Analyzing hidden import 'keepkeylib.eth.ethereum_tokens'
19700 INFO: Analyzing hidden import 'keepkeylib.exchange'
19704 INFO: Analyzing hidden import 'keepkeylib.eos'
19713 INFO: Analyzing hidden import 'keepkeylib.transport_hid'
19719 INFO: Analyzing hidden import 'keepkeylib.messages_ripple_pb2'
19724 INFO: Analyzing hidden import 'keepkeylib.transport_serial'
19727 INFO: Analyzing hidden import 'keepkeylib.transport_webusb'
19730 INFO: Analyzing hidden import 'keepkeylib.ripple'
19741 INFO: Analyzing hidden import 'keepkeylib.transport_pipe'
19744 INFO: Analyzing hidden import 'keepkeylib.debuglink'
19750 INFO: Analyzing hidden import 'keepkeylib.filecache'
19792 INFO: Analyzing hidden import 'keepkeylib.client'
19830 INFO: Analyzing hidden import 'keepkeylib.protobuf_json'
19833 INFO: Analyzing hidden import 'keepkeylib.cosmos'
19836 INFO: Analyzing hidden import 'keepkeylib.tx_api'
19840 INFO: Analyzing hidden import 'keepkeylib.transport_udp'
19843 INFO: Analyzing hidden import 'keepkeylib.transport_socket'
19846 INFO: Analyzing hidden import 'smartcard.wx.ReaderToolbar'
19880 INFO: Analyzing hidden import 'smartcard.CardNames'
19885 INFO: Analyzing hidden import 'smartcard.sw.ISO7816_4ErrorChecker'
19887 INFO: Analyzing hidden import 'smartcard.wx.APDUTracerPanel'
19891 INFO: Analyzing hidden import 'smartcard.sw.ISO7816_8ErrorChecker'
19894 INFO: Analyzing hidden import 'smartcard.ExclusiveTransmitCardConnection'
19896 INFO: Analyzing hidden import 'smartcard.guid'
19898 INFO: Analyzing hidden import 'smartcard.sw.ISO7816_4_SW1ErrorChecker'
19902 INFO: Analyzing hidden import 'smartcard.sw.ErrorCheckingChain'
19903 INFO: Analyzing hidden import 'smartcard.wx.CardAndReaderTreePanel'
19924 INFO: Analyzing hidden import 'smartcard.ExclusiveConnectCardConnection'
19926 INFO: Analyzing hidden import 'smartcard.sw.op21_ErrorChecker'
19928 INFO: Analyzing hidden import 'smartcard.wx.APDUHexValidator'
19931 INFO: Analyzing hidden import 'smartcard.ATR'
19939 INFO: Analyzing hidden import 'smartcard.sw.ISO7816_9ErrorChecker'
19941 INFO: Analyzing hidden import 'smartcard.pyro.PyroReader'
19970 INFO: Processing module hooks...
19970 INFO: Loading module hook 'hook-cryptography.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20165 INFO: Loading module hook 'hook-pycparser.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20166 INFO: Loading module hook 'hook-mnemonic.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20172 INFO: Loading module hook 'hook-certifi.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20175 INFO: Loading module hook 'hook-dns.rdata.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20425 INFO: Loading module hook 'hook-Crypto.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20433 INFO: Loading module hook 'hook-Cryptodome.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
20438 INFO: Loading module hook 'hook-sqlite3.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
20518 INFO: Loading module hook 'hook-pkg_resources.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
20905 INFO: Processing pre-safe import module hook win32com from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-win32com.py'.
21055 WARNING: Hidden import "pkg_resources.py2_warn" not found!
21430 WARNING: Hidden import "pkg_resources.markers" not found!
21436 INFO: Loading module hook 'hook-PyQt5.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
21612 WARNING: Hidden import "sip" not found!
21613 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
21614 INFO: Loading module hook 'hook-lib2to3.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
21657 INFO: Loading module hook 'hook-_tkinter.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
21663 INFO: Not collecting Tcl/Tk data - either python is using macOS' system Tcl/Tk framework, or Tcl/Tk data directories could not be found.
21663 INFO: Loading module hook 'hook-encodings.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
21731 INFO: Loading module hook 'hook-distutils.util.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
21740 INFO: Loading module hook 'hook-setuptools.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22273 INFO: Import to be excluded not found: 'setuptools.py33compat'
22273 INFO: Import to be excluded not found: 'setuptools.py27compat'
22273 INFO: Loading module hook 'hook-PyQt5.QtGui.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22313 INFO: Loading module hook 'hook-PyQt5.QtMultimedia.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22387 INFO: Loading module hook 'hook-packaging.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22388 INFO: Loading module hook 'hook-pickle.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22392 INFO: Loading module hook 'hook-heapq.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22396 INFO: Loading module hook 'hook-difflib.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22400 INFO: Loading module hook 'hook-PyQt5.QtWidgets.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22444 INFO: Loading module hook 'hook-multiprocessing.util.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22449 INFO: Loading module hook 'hook-sysconfig.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22456 INFO: Loading module hook 'hook-PyQt5.QtNetwork.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22479 INFO: Loading module hook 'hook-xml.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22541 INFO: Loading module hook 'hook-shelve.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22550 INFO: Loading module hook 'hook-distutils.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22551 INFO: Loading module hook 'hook-PyQt5.QtCore.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22561 INFO: Loading module hook 'hook-PyQt5.QtSvg.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22638 INFO: Loading module hook 'hook-setuptools.msvc.py' from '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks'...
22706 INFO: Looking for ctypes DLLs
22753 WARNING: library user32 required via ctypes not found
22875 INFO: Analyzing run-time hooks ...
22890 INFO: Including run-time hook '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py'
22894 INFO: Including run-time hook '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pyqt5.py'
22895 INFO: Including run-time hook '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgres.py'
22925 INFO: Looking for dynamic libraries
23392 INFO: Looking for eggs
23392 INFO: Using Python library /Users/pierre/.pyenv/versions/3.9.13/Library/Frameworks/Python.framework/Versions/3.9/Python
23404 INFO: Warnings written to /Users/pierre/ElectrumABC/build/osx/warn-osx.txt
23555 INFO: Graph cross-reference written to /Users/pierre/ElectrumABC/build/osx/xref-osx.html
23606 INFO: Appending 'binaries' from .spec
23607 INFO: Appending 'datas' from .spec
Removing qtweb qt3d qtgame qtdesigner qtquick qtlocation qttest qtxml qtqml qtsql qtserialport qtsensors qtpositioning qtnfc qthelp qtbluetooth pyqt5/qt/qml pyqt5/qt/plugins/position pyqt5/qt/plugins/sqldrivers libqsqlmysql.dylib libdeclarative_multimedia.dylib libqtquickscene2dplugin.dylib libqtquickscene3dplugin.dylib libqtquickcontrols2imaginestyleplugin.dylib libqwebgl.dylib libqtquickextrasflatplugin.dylib ibqtcanvas3d.dylib libqtquickcontrolsplugin.dylib libqtquicktemplates2plugin.dylib libqtlabsplatformplugin.dylib libdeclarative_sensors.dylib libdeclarative_location.dylib
----> Removed: ('PyQt5/Qt/plugins/platforms/libqwebgl.dylib', '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyQt5/Qt/plugins/platforms/libqwebgl.dylib', 'BINARY')
----> Removed: ('QtQml', '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyQt5/Qt/lib/QtQml.framework/Versions/5/QtQml', 'BINARY')
----> Removed: ('QtQmlModels', '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyQt5/Qt/lib/QtQmlModels.framework/Versions/5/QtQmlModels', 'BINARY')
----> Removed: ('QtWebSockets', '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyQt5/Qt/lib/QtWebSockets.framework/Versions/5/QtWebSockets', 'BINARY')
----> Removed: ('QtQuick', '/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyQt5/Qt/lib/QtQuick.framework/Versions/5/QtQuick', 'BINARY')
23632 INFO: checking PYZ
23632 INFO: Building PYZ because PYZ-00.toc is non existent
23632 INFO: Building PYZ (ZlibArchive) /Users/pierre/ElectrumABC/build/osx/PYZ-00.pyz
26924 INFO: Building PYZ (ZlibArchive) /Users/pierre/ElectrumABC/build/osx/PYZ-00.pyz completed successfully.
26963 INFO: checking PKG
26963 INFO: Building PKG because PKG-00.toc is non existent
26963 INFO: Building PKG (CArchive) PKG-00.pkg
27150 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
27151 INFO: Bootloader /Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/bootloader/Darwin-64bit/runw
27151 INFO: checking EXE
27151 INFO: Building EXE because EXE-00.toc is non existent
27152 INFO: Building EXE from EXE-00.toc
27152 INFO: Appending archive to EXE /Users/pierre/ElectrumABC/build/osx/ElectrumABC
27156 INFO: Fixing EXE for code signing /Users/pierre/ElectrumABC/build/osx/ElectrumABC
27159 INFO: Building EXE from EXE-00.toc completed successfully.
27160 INFO: checking BUNDLE
27160 INFO: Building BUNDLE because BUNDLE-00.toc is non existent
27160 INFO: Building BUNDLE BUNDLE-00.toc
Traceback (most recent call last):
  File "/Users/pierre/Library/Python/3.9/bin/pyinstaller", line 8, in <module>
    sys.exit(run())
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/__main__.py", line 114, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/__main__.py", line 65, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/building/build_main.py", line 737, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/building/build_main.py", line 684, in build
    exec(code, spec_namespace)
  File "contrib/osx/osx.spec", line 134, in <module>
    app = BUNDLE(
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/building/osx.py", line 93, in __init__
    self.__postinit__()
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/building/datastruct.py", line 160, in __postinit__
    self.assemble()
  File "/Users/pierre/Library/Python/3.9/lib/python/site-packages/PyInstaller/building/osx.py", line 182, in assemble
    os.makedirs(todir)
  File "/Users/pierre/.pyenv/versions/3.9.13/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/Users/pierre/.pyenv/versions/3.9.13/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 225, in makedirs
    mkdir(name, mode)
NotADirectoryError: [Errno 20] Not a directory: '/Users/pierre/ElectrumABC/dist/ElectrumABC.app/Contents/MacOS/electrumabc/tor'
🗯  ERROR:  Could not build binary

There is a problem with pyinstaller on MacOS if the python lib and the package name are the same (case-insensitive).
Test Plan:

run from source, build the release files and test them
Note that there is no such package in the repository, but it is created at runtime when loading an external plugin.

TODO: create an external plugin compatible with the new package name to test this (the renaming of the packages is a breaking change for existing external electroncash plugins)
This fixes the case when secp256k1 is already cloned. Other packages are not affected because their git ref is a commit hash.
@PiRK PiRK merged commit a3f51b4 into Bitcoin-ABC:master Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant