1
0
Commit Graph

1006 Commits

Author SHA1 Message Date
SomberNight
f14e99139c android build: we always want apks, as we want to use our own privkey
ThomasV reported contrib/release.sh generating .aab artifacts.
aabs are shady business... best to avoid handing privkeys to big G (or any 3rd party!).

This must be a consequence of the recent p4a rebase,
e.g. 04bb63bbf0
2023-11-23 03:58:35 +00:00
SomberNight
d49e1bb32c contrib/android/Readme.md: update "how to run qml gui on linux" section 2023-11-09 16:40:45 +00:00
Sander van Grieken
58ff76adcf android: correctly describe buildozer branch used 2023-11-07 10:32:09 +01:00
Sander van Grieken
55c01bda9b android: set target_sdk_version to 33 2023-11-07 10:32:06 +01:00
Sander van Grieken
32c1915de4 qml: restore Send/ScanDialog for desktop/dev, keeping qr scan Activity for android only.
Also use stable R package, regardless of APP_PACKAGE_DOMAIN used in build.
2023-11-07 10:17:10 +01:00
SomberNight
5c3e14d8de qml: replace Send/ScanDialog with java bases zxing qr scan activity. 2023-11-07 10:17:10 +01:00
Sander van Grieken
b9ab0f63ef qt6: update buildozer ref to ce4f2257249fdf4ff1f4cb8983fd7ac44174a274 2023-11-07 10:17:10 +01:00
Sander van Grieken
a77ff9943a qml: refactor qr scan to qt6
As the method of capturing frames is totally different, the animation when
a QR is found has been removed.
2023-11-07 10:17:10 +01:00
Sander van Grieken
0441cb0ad5 qml: exclude payserver plugin for qml 2023-11-07 10:09:51 +01:00
Sander van Grieken
bf6163b4f8 android: update p4a ref to 3b3733dbf5f461e197ba83887ac0d3b6d0f1c396
buildozer ref to 698b48136c55b2495128207c5e98dccc128bb6c2
2023-11-07 10:09:51 +01:00
Sander van Grieken
770a32cf6a qt6: update recipe pins, NDK, SDK, Ant, use venv for buildozer/p4a, add tomli recipe 2023-11-07 10:09:51 +01:00
Sander van Grieken
16d3db95ab qt6: update android build container to bookworm 2023-11-07 10:09:51 +01:00
Sander van Grieken
1ea1a70099 partial-writes: add missing package pins 2023-10-02 14:11:23 +02:00
ThomasV
1af6972d03 Merge pull request #8493 from spesmilo/jsonpatch_new
partial-writes using jsonpatch
2023-09-28 09:23:14 +02:00
SomberNight
e346d36851 bump libsecp256k1 version 2023-09-25 13:11:03 +00:00
ThomasV
7ca89f56ee partial-writes using jsonpatch
- partial writes are append only.

 - StoredDict objects will append partial writes to the wallet
   file when items are added, replaced, removed.

 - Lists in the wallet file that have not been registered
   as StoredObject are converted to StoredList, which
   overloads append() and remove(). Those methods too will
   append partial writes to the wallet file.

 - Unlike the old jsonpatch branch, this branch does not support
   file encryption. Encrypted files always fully rewritten, even
   if the change before encryption is a partial write.
2023-09-24 12:24:09 +02:00
SomberNight
b45c84f24f remove the kivy gui
We now use the qml gui on Android, and haven't been maintaining
the kivy GUI for a while.
2023-08-30 16:47:37 +00:00
ghost43
e8c0767ca7 Merge pull request #8584 from SomberNight/202308_fix8582
invoices: also run amount-validator on setter
2023-08-30 16:27:00 +00:00
SomberNight
c3f16615ca android build: exclude kivy classes from qml apk
taken from https://github.com/spesmilo/electrum/pull/8545
22bfd4eca6

note: com.android.support is used in our p4a fork's PythonActivity.java
(com.android.support was previously pulled in by me.dm7.barcodescanner)
052b9f7945/pythonforandroid/bootstraps/qt5/build/src/main/java/org/kivy/android/PythonActivity.java (L43)
2023-08-30 14:10:56 +00:00
SomberNight
4e6e6f76ca invoices: also run amount-validator on setter
- @amount_msat.validator prevents the creation of invoices with e.g. too large amounts
- however the qml gui is mutating invoices by directly setting the `amount_msat` field,
  and it looks like attrs validators only run during init.
  We can use `on_setattr` (introduced in attrs==20.1.0).
- a wallet db upgrade is added to rm existing insane invoices
- btw the qml gui was already doing its own input validation on the textedit
  (see qeconfig.btcAmountRegex). however that only limits the input to not have more
  chars than what is needed to represent 21M BTC (e.g. you can still enter 99M BTC,
  which the invoice logic does not tolerate later on - but is normally caught).

fixes https://github.com/spesmilo/electrum/issues/8582
2023-08-22 18:10:21 +00:00
SomberNight
2557474449 (trivial) fix typo in requirements-hw.txt
follow-up 9ea5193329
2023-08-10 18:06:59 +00:00
SomberNight
9ea5193329 requirements-hw: pin ledger-bitcoin to "<0.2.2"
ledger-bitcoin==0.2.2 added new deps we don't want to bundle. otherwise it should be ok to use.
see https://github.com/LedgerHQ/app-bitcoin-new/issues/192
2023-08-10 15:40:46 +00:00
SomberNight
1ff4130804 contrib/docker_notes.md: add notes re debian apt mirror, and envvars
related https://github.com/spesmilo/electrum/issues/8496
2023-06-22 15:45:30 +00:00
SomberNight
52817b220d update locale 2023-06-19 16:01:12 +00:00
SomberNight
9b14b87936 win build: tighten pip install with --no-binary somewhat
related https://github.com/spesmilo/electrum/pull/7918
2023-06-02 23:12:36 +00:00
SomberNight
48a8311849 mac build: bump pyinstaller (5.3->5.11) 2023-06-02 23:04:42 +00:00
SomberNight
e455677284 win build: bump pyinstaller (4.10->5.11)
In `build-electrum-git.sh`, the `-w` CLI arg is removed: it was apparently ignored as we are using a .spec file,
and pyinstaller 5.0+ is now raising a hard error (see https://github.com/pyinstaller/pyinstaller/issues/6660).
```
option(s) not allowed:
  --console/--nowindowed/--windowed/--noconsole
makespec options not valid when a .spec file is given
```

-----

In ecc_fast.py, we don't sys.exit() anymore as pyinstaller 5.0+ tries to import electrum during the Analysis phase.
see https://github.com/pyinstaller/pyinstaller/pull/6171

```
57912 INFO: Looking for dynamic libraries
1746 INFO: gettext setting initial language to None
1932 ERROR: libsecp256k1 library failed to load. exceptions: [FileNotFoundError("Could not find module 'C:\\python3\\lib\\site-packages\\electrum\\libsecp256k1-2.dll' (or one of its depende
ncies). Try using the full path with constructor syntax."), FileNotFoundError("Could not find module 'C:\\python3\\lib\\site-packages\\electrum\\libsecp256k1-1.dll' (or one of its dependenc
ies). Try using the full path with constructor syntax."), FileNotFoundError("Could not find module 'C:\\python3\\lib\\site-packages\\electrum\\libsecp256k1-0.dll' (or one of its dependencie
s). Try using the full path with constructor syntax."), FileNotFoundError("Could not find module 'libsecp256k1-2.dll' (or one of its dependencies). Try using the full path with constructor
syntax."), FileNotFoundError("Could not find module 'libsecp256k1-1.dll' (or one of its dependencies). Try using the full path with constructor syntax."), FileNotFoundError("Could not find
module 'libsecp256k1-0.dll' (or one of its dependencies). Try using the full path with constructor syntax.")]
Traceback (most recent call last):
  File "C:\python3\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\python3\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\python3\scripts\pyinstaller.exe\__main__.py", line 7, in <module>
  File "C:\python3\lib\site-packages\PyInstaller\__main__.py", line 194, in _console_script_run
    run()
  File "C:\python3\lib\site-packages\PyInstaller\__main__.py", line 180, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "C:\python3\lib\site-packages\PyInstaller\__main__.py", line 61, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "C:\python3\lib\site-packages\PyInstaller\building\build_main.py", line 1006, in main
    build(specfile, distpath, workpath, clean_build)
  File "C:\python3\lib\site-packages\PyInstaller\building\build_main.py", line 928, in build
    exec(code, spec_namespace)
  File "deterministic.spec", line 55, in <module>
    a = Analysis([home+'run_electrum',
  File "C:\python3\lib\site-packages\PyInstaller\building\build_main.py", line 428, in __init__
    self.__postinit__()
  File "C:\python3\lib\site-packages\PyInstaller\building\datastruct.py", line 184, in __postinit__
    self.assemble()
  File "C:\python3\lib\site-packages\PyInstaller\building\build_main.py", line 736, in assemble
    isolated.call(find_binary_dependencies, self.binaries, self.binding_redirects, collected_packages)
  File "C:\python3\lib\site-packages\PyInstaller\isolated\_parent.py", line 372, in call
    return isolated.call(function, *args, **kwargs)
  File "C:\python3\lib\site-packages\PyInstaller\isolated\_parent.py", line 302, in call
    raise RuntimeError(f"Child process call to {function.__name__}() failed with:\n" + output)
RuntimeError: Child process call to find_binary_dependencies() failed with:
  File "C:\python3\lib\site-packages\PyInstaller\isolated\_child.py", line 63, in run_next_command
    output = function(*args, **kwargs)
  File "C:\python3\lib\site-packages\PyInstaller\building\build_main.py", line 177, in find_binary_dependencies
    __import__(package)
  File "C:\python3\lib\site-packages\electrum\__init__.py", line 20, in <module>
    from .wallet import Wallet
  File "C:\python3\lib\site-packages\electrum\wallet.py", line 53, in <module>
    from .bip32 import BIP32Node, convert_bip32_intpath_to_strpath, convert_bip32_strpath_to_intpath
  File "C:\python3\lib\site-packages\electrum\bip32.py", line 11, in <module>
    from . import constants
  File "C:\python3\lib\site-packages\electrum\constants.py", line 30, in <module>
    from . import bitcoin
  File "C:\python3\lib\site-packages\electrum\bitcoin.py", line 35, in <module>
    from . import ecc
  File "C:\python3\lib\site-packages\electrum\ecc.py", line 39, in <module>
    from .ecc_fast import _libsecp256k1, SECP256K1_EC_UNCOMPRESSED
  File "C:\python3\lib\site-packages\electrum\ecc_fast.py", line 151, in <module>
    sys.exit(f"Error: Failed to load libsecp256k1.")
SystemExit: Error: Failed to load libsecp256k1.
🗯 ERROR: build-electrum-git failed
```

Also, the -OO flag is removed from wine python, for similar reasons:
pyinstaller imports electrum, and in electrum/__init__.py, we raise
if -O is used: 9b1fb0e5fe/electrum/__init__.py (L40)
2023-06-02 22:37:43 +00:00
SomberNight
9b1fb0e5fe android build: bump python, openssl 2023-06-02 17:17:43 +00:00
SomberNight
6442dbb021 mac build: bump python version (3.9.13->3.10.11) 2023-06-02 17:17:40 +00:00
SomberNight
16c3c3c4c0 appimage build: bump python version (3.9.15->3.10.11) 2023-06-02 17:17:36 +00:00
SomberNight
21cf85afca win build: bump python version (3.9.13->3.10.11) 2023-06-02 17:17:33 +00:00
SomberNight
66f219cdf3 win build: update wine 2023-06-02 17:17:30 +00:00
SomberNight
3a1c4299ca build: bump libusb version 2023-06-02 17:17:26 +00:00
SomberNight
22919bc15c update locale 2023-05-31 12:50:32 +00:00
ghost43
2f769d4015 Merge pull request #8459 from benma/bitbox02-6.2.0
bitbox02: update to 6.2.0 to fix a bug on macOS 13.3, and ability to display amount in sats on the device
2023-05-30 23:35:52 +00:00
SomberNight
f284b42fa8 build: update pinned bitbox02 (partial rerun freeze_packages) 2023-05-30 23:34:46 +00:00
SomberNight
1b9cb47623 dependencies: rm upper limit for hidapi
Was added in 752b37a03b,
due to upstream issue https://github.com/trezor/cython-hidapi/issues/142,
which should now be fixed in 0.14.0.
2023-05-30 22:51:06 +00:00
Marko Bencun
7164f9fd6e bitbox02: update to 6.2.0
6.2.0 was released to put a minimum requirement on hidapi 0.14.0,
which includes the fix for this issue:

https://github.com/libusb/hidapi/issues/531

That bug caused hidapi on macOS 13.3 to report 0 as the interface
number for all hid devices, which led to the bitbox02 multi edition being listed
twice instead of once - once for the main HW wallet interface and once erroneously
For the U2F interface (which should not be listed).
2023-05-30 23:55:52 +02:00
SomberNight
c049b461bb bump libsecp256k1 version 2023-05-26 13:22:35 +00:00
SomberNight
3861b7c152 contrib/make_download: adapt to downloads being merged into index.html
see https://github.com/spesmilo/electrum-web/pull/20
2023-05-22 13:12:26 +00:00
SomberNight
5d8dda5170 update locale 2023-05-11 15:11:45 +00:00
SomberNight
3020499199 hww: ledger: bump required ledger-bitcoin and adapt to API change 2023-05-05 15:02:34 +00:00
ThomasV
ce7abd99c1 update locale 2023-05-04 14:01:11 +02:00
SomberNight
2732a82535 build: update pinned pyqt5 (partial rerun freeze_packages)
User at https://bitcointalk.org/index.php?topic=5450976.0 reported getting
a segfault on macos using qt gui, after entering password to open wallet.
Shot in the dark, but let's try updating Qt.
2023-05-04 01:20:00 +00:00
Sander van Grieken
0672ea20ab qml: implement toggle for android SECURE_FLAG and add marker to wizard pages
that should be secured.
2023-05-02 15:16:51 +02:00
SomberNight
155258f208 release.sh: check we have each binary (RM case)
~duplicated from the non-RM case
2023-04-27 17:36:09 +00:00
SomberNight
4416f73592 update locale submodule 2023-04-27 11:08:05 +00:00
Sander van Grieken
2fc9ee5c51 p4a: fix for Qt5 accessibility bug
see 087fc3c583
2023-04-24 11:29:26 +02:00
SomberNight
2be71c2dcc windows README: update reference to libsecp256k1-0.dll to incl newer
related: https://github.com/spesmilo/electrum/pull/8185
2023-04-21 16:38:58 +00:00
SomberNight
cede16a522 libsecp256k1: update hardcoded .so lib name in binaries
follow-up 2a2b683d23

TODO: maybe we should drop the version number in the lib name we bundle...
2023-04-21 14:42:51 +00:00