1
0
Commit Graph

61 Commits

Author SHA1 Message Date
SomberNight
bf4482ce1e (trivial) replace URL in comment to include git hash instead of branch 2022-08-05 22:57:24 +02:00
SomberNight
57b17d13ac android build: make building testnet apk easier
Just uncomment line 53 in make_apk, and you get a testnet apk that can co-exist with your mainnet install.
No need to do a clean rebuild of ".buildozer/" either.
2022-07-09 04:47:37 +02:00
SomberNight
e72f575eea android build: factor out package name ("org.electrum.electrum")
to make it easier to change, to make it easy to have a co-existing mainnet and testnet install
(or two mainnet installs, etc)
2022-07-09 04:47:32 +02:00
SomberNight
d79da7a248 android build: (qml) pin new transitive dependencies for reproducibility 2022-07-08 16:37:05 +02:00
SomberNight
bc88e1c328 android build: (qml) bump p4a commit
to include single new commit c6e39ae1fb
2022-07-08 16:37:01 +02:00
SomberNight
3d0baf8d00 android build: restore prev "make theming" behaviour
- note: "make theming" is kivy-specific, and not needed for the qml gui apk
- note: "make theming" does not run automatically as part of the build scripts,
        although it used to in the past. For reproducible builds, the
        "electrum/gui/kivy/theming/atlas" git submodule contains the build
        artefacts. However, the user is supposed to manually run "make theming"
        when changing the atlas/images.
2022-07-08 13:35:28 +02:00
Sander van Grieken
c656b02319 update tip pthon-for-android qt5-wip 2022-07-07 18:30:16 +02:00
Sander van Grieken
3868878be4 filter out more unneeded files for packaging 2022-07-07 18:29:01 +02:00
Sander van Grieken
758a30462e implement QR code scanning 2022-07-07 18:29:01 +02:00
Sander van Grieken
492f246b9a qml: add QR code imageprovider using qrcode/PIL
adds buildozer 'pillow' recipe to requirements

add initial PoC on qml receive tab
2022-07-07 18:28:00 +02:00
Sander van Grieken
a2fac2e3e3 buildozer: exclude env dir, don't include vs, fs extensions 2022-07-07 18:28:00 +02:00
ThomasV
08154da3b6 add command line parameters to android/build.sh, and use separate .buildozer dirs for kivy and qt5 2022-07-07 18:28:00 +02:00
ThomasV
634a647fb1 android: parameterize GUI framework 2022-07-07 18:28:00 +02:00
ThomasV
49a67a5cd2 build android apk with qt5
update requirements file for building PyQt5
2022-07-07 18:28:00 +02:00
SomberNight
0fca35fa40 android build: increase buildozer log level (except on cirrus ci) 2022-07-01 18:52:30 +02:00
Sander van Grieken
8d57129ad6 p4a: update commit ref to head of qt5-wip (fixes cpu count used for build) 2022-06-30 21:23:41 +02:00
accumulator
70fb4bf538 android: create relative .buildozer symlink at correct folder, regardless of CWD (#7759) 2022-04-11 11:44:56 +00:00
ghost43
8a6d14ac4f Merge pull request #7741 from SomberNight/202203_build_pip_install_noisolation
build: (reproducibility) always uses `pip install` with `--no-build-isolation`
2022-03-26 02:22:08 +00:00
SomberNight
c93582f661 android build: update README to newer build.sh syntax 2022-03-26 03:21:03 +01:00
SomberNight
98d32f41d5 build: (reproducibility) always uses "pip install" with "--no-build-isolation"
fixes https://github.com/spesmilo/electrum/issues/7737
fixes https://github.com/spesmilo/electrum/issues/7736
related 8559d1eb72
2022-03-26 02:45:47 +01:00
SomberNight
1bb7ef92e7 binaries: bump python 3.9.10->3.9.11; and for android 3.8.12->3.8.13
This is bumping the python versions bundled inside our binaries.
For macOS and AppImage, from 3.9.10 to 3.9.11.
For Android, from 3.8.12 to 3.8.13.

Windows is left untouched as I am having issues with the wine build when using 3.9.11.
(see https://github.com/spesmilo/electrum/pull/7721#issuecomment-1071901116 )
2022-03-18 16:21:24 +01:00
SomberNight
978677700c fix prev 2022-03-16 13:34:15 +01:00
SomberNight
dcf194952b android build: update openssl 2022-03-16 13:24:03 +01:00
SomberNight
7cd14e4ef4 android build: (reprod) exclude frozenlist-*.dist-info from apk
```
$ cat d
29,30c29,32
< 527b99c5fa20d43ab49302f6b4b1a9a671ac04601f5f471f254ae2f97cb31e17  ./META-INF/MANIFEST.MF
< 0a2887e3041a3eaeef6e0f1dbf65fcc527bf0c878728b0e9d4b783b855f3e64c  ./assets/private.mp3
---
> d18d1d9f4933952f93b32091b0a002cdb9ed94fdecc20b22d605cf8143a02d92  ./META-INF/CERT.RSA
> ec2ca24868f69427162c0dc2f3a3390e6165dec7b3202c65928ae77939316392  ./META-INF/CERT.SF
> 7a94368993707d82a328cf7625450e6868f450ecf73474574048ff70a707f4ce  ./META-INF/MANIFEST.MF
> 84c86813d93d4e74a7f199da8b925d36d89608eee37031a88f61a833ab30e6dd  ./assets/private.mp3
1672c1674
< 10666a3ae7e2080120165b2b0edbbe2eb8e7b679dac7de18dffde0e6f786fd08  ./assets/private_mp3/packages/frozenlist-1.3.0.dist-info/RECORD
---
> 803d20545cf39ade4d9b803034f0fd2002478ffdcc2056852621ae2c42e37d0d  ./assets/private_mp3/packages/frozenlist-1.3.0.dist-info/RECORD
```
2022-03-15 20:05:44 +01:00
SomberNight
b1b17029f1 android build: bump targetSdkVersion to 30
This is the new minimum the google play store requires.

note: the newer android command-line tools use a tiny bit different paths,
hence the `mv "${ANDROID_SDK_HOME}/cmdline-tools" "${ANDROID_SDK_HOME}/tools"` rename
see https://github.com/kivy/python-for-android/issues/2540
2022-03-14 16:50:10 +01:00
ThomasV
d91a4da557 Add Qt5/QML building framework to contrib/android:
- update requirements file for building PyQt5
 - use separate .buildozer directories for qml and Kivy
 - add GUI and ARCH parameters to android/build.sh
2022-03-08 17:21:31 +01:00
SomberNight
b726fe85e1 contrib: add docker_notes.md 2022-03-03 19:24:22 +01:00
SomberNight
0df8392c86 build: rm need for sudo in most places; and do not run as root
This includes two logically separate changes:
- on the host, try not to require sudo when running the build scripts
    - namely when interacting with the docker daemon, this requires
      the unix user on the host to be part of the `docker` group
    - this solves part of https://github.com/spesmilo/electrum/issues/7602
- while running inside the docker containers, do not run as root
    - this means that e.g. files created in mounted folders should
      no longer be owned by root on the host
    - there is some code duplication involved here - not sure
      how it could be deduped.
2022-03-03 19:24:18 +01:00
SomberNight
e8b53d0240 android build: set SOURCE_DATE_EPOCH to cur time for debug builds
Otherwise One would have to git commit every change to be tested on a phone.
2022-02-23 17:49:26 +01:00
SomberNight
5cf5c03f50 bump libsecp256k1 version 2022-02-22 17:35:14 +01:00
SomberNight
8559d1eb72 build: android reprod: "pip install" needs "--no-build-isolation"
maybe fixes https://github.com/spesmilo/electrum/issues/7640

Looks like by default pip is ignoring the locally available setuptools and wheel,
and downloading the latest ones from the internet at build time...

https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/?highlight=no-build-isolation#disabling-build-isolation
https://stackoverflow.com/a/62889268

> When making build requirements available, pip does so in an isolated environment. That is, pip does not install those requirements into the user’s site-packages, but rather installs them in a temporary directory which it adds to the user’s sys.path for the duration of the build. This ensures that build requirements are handled independently of the user’s runtime environment. For example, a project that needs a recent version of setuptools to build can still be installed, even if the user has an older version installed (and without silently replacing that version).
>
> In certain cases, projects (or redistributors) may have workflows that explicitly manage the build environment. For such workflows, build isolation can be problematic. If this is the case, pip provides a --no-build-isolation flag to disable build isolation. Users supplying this flag are responsible for ensuring the build environment is managed appropriately (including ensuring that all required build dependencies are installed).

If only it were that easy!
If we add the "--no-build-isolation" flag, it becomes our responsibility to install *all* build time deps,
hence we now have "requirements-build-makepackages.txt".
2022-01-22 14:49:35 +01:00
SomberNight
7d5c5b75a1 android build: bump python 3.8.8->3.8.12 2021-11-02 18:38:24 +01:00
JeremyRand
b1c4bb8914 Add Cirrus CI (#7431)
* Cirrus: Add Tox task

* Cirrus: Add Locale task

* Cirrus: Add Flake8 Task

* Cirrus: Add Regtest task

* Regtest: Flush stdout

Allows viewing output sooner.

* Regtest: Read process.stdout in text mode

Improves ability to quickly see output.

* Cirrus: Add Windows task

* Cirrus: Add Android task

* Cirrus: Add macOS task

* Cirrus: Add AppImage task

* Cirrus: Add tarball task

* Cirrus: Add Submodules task

* Android: remove superfluous cp/rm

* Add .dockerignore

Symlink to .gitignore.
2021-09-13 16:20:54 +00:00
bitromortac
28bbb4bdda android+osx: add lightning uri handlers 2021-07-30 08:44:15 +02:00
SomberNight
e54e6e4e09 build: extend release.sh so that all builders can use it 2021-06-21 19:29:56 +02:00
SomberNight
9d46fe775a build: try to consolidate instructions and decr codedupe in release.sh 2021-06-18 17:10:15 +02:00
SomberNight
0842f4977b build: fresh_clone: turns out we can just clone from a local dir :P
this saves us some network requests, and reduces trust in github
2021-06-18 16:28:58 +02:00
SomberNight
5ae167d67d android build: place binaries in ./dist/ instead of ./bin/
Let's try to consolidate and have all build scripts put binaries into ./dist/
2021-06-18 16:28:52 +02:00
SomberNight
dab25e3b24 android build: add exec permission to apkdiff.py, and print hashes 2021-06-10 16:41:37 +02:00
SomberNight
45cb8b5b02 android reproducibility: add Signal's "apkdiff.py" tool, and instructions 2021-06-09 18:34:15 +02:00
SomberNight
3c9346cce2 android build: attempt at reproducible builds 2021-06-09 18:34:09 +02:00
SomberNight
c3ccfd7d19 android build: pin hashes of p4a recipes 2021-05-01 08:07:19 +02:00
SomberNight
ef3293ab6a kivy: relocate atlas so it can be made a submodule later 2021-04-30 16:44:32 +02:00
SomberNight
bb381a263a android build: update p4a/buildozer to latest upstream
Rebased our branches on latest p4a develop HEAD and buildozer master HEAD.

Re `android.allow_backup = False` in buildozer.spec, now that this setting
has been exposed to buildozer.spec (see https://github.com/kivy/buildozer/pull/1206),
we could finally drop a commit from our branch that did the same:
7a7d415d90

Re commenting out `android.arch` in buildozer.spec, we are setting this
via the ENV VAR in make_apk.
2021-04-21 20:04:37 +02:00
ThomasV
842ecd2da6 android Makefile: do not try to deploy and run 2021-04-08 14:55:31 +02:00
SomberNight
3d9798757d android: update app icon; use "adaptive icons" on API 26+
see https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive

p4a and buildozer had to be patched for this; I will try to upstream the patches, see:
https://github.com/kivy/python-for-android/pull/2446
https://github.com/kivy/buildozer/pull/1312
2021-04-08 13:33:41 +02:00
SomberNight
c68d73715a android build: only build one apk for debug builds 2021-04-07 17:15:52 +02:00
ThomasV
f7a8166b9c new icons for android 2021-04-06 18:57:30 +02:00
SomberNight
f87727c195 android build: update kivy
fixes #7155

using older kivy master due to #7156
2021-03-31 21:51:57 +02:00
SomberNight
7698ab4ccb android build: update kivy, and python 2021-03-06 14:42:01 +01:00