1
0
Commit Graph

745 Commits

Author SHA1 Message Date
SomberNight
cdfc75ff2b appimage: update package (libc) in dockerfile
Ubuntu no longer serves old version
2022-03-03 19:22:52 +01:00
ghost43
8acda5f48d Merge pull request #7693 from benma/bb02
bitbox02: bump dependency to v6.0.0, support sending to taproot
2022-03-02 13:29:24 +00:00
Marko Bencun
01b4b35f9f bitbox02: bump dependency to v6.0.0, support sending to taproot 2022-03-02 14:14:24 +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
ghost43
22e6094eff Merge pull request #7679 from SomberNight/202202_build_bump_libsecp
bump libsecp256k1 version
2022-02-22 18:25:52 +00:00
SomberNight
5cf5c03f50 bump libsecp256k1 version 2022-02-22 17:35:14 +01:00
SomberNight
5e2cee6a31 build appimage: rm importlib-metadata workaround
The importlib-metadata pkg is no longer needed apparently (since we bumped the min python to 3.8).
2022-02-22 17:14:23 +01:00
SomberNight
b79656e54c rerun freeze_packages 2022-02-17 17:07:06 +01:00
SomberNight
bb5b52f2d7 binaries: bump python 3.9.7->3.9.10 2022-02-17 16:51:13 +01:00
SomberNight
c9c094cfab requirements: bump min aiorpcx to 0.22.0
aiorpcx 0.20 changed the behaviour/API of TaskGroups.
When used as a context manager, TaskGroups no longer propagate
exceptions raised by their tasks. Instead, the calling code has
to explicitly check the results of tasks and decide whether to re-raise
any exceptions.
This is a significant change, and so this commit introduces "OldTaskGroup",
which should behave as the TaskGroup class of old aiorpcx. All existing
usages of TaskGroup are replaced with OldTaskGroup.

closes https://github.com/spesmilo/electrum/issues/7446
2022-02-15 18:22:44 +01:00
SomberNight
dd2f8541b7 bump min required Python version to 3.8 2022-02-15 18:22:32 +01:00
SomberNight
a3e1d2e25e follow-up prev
there must be a better way of doing this...
we should somehow automate figuring out the build-time dependencies of requirements.txt
2022-01-22 17:49:20 +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
1ad30e86b6 build: relax qdarkstyle version bound
Historically, there have often been (visual) issues with new versions of qdarkstyle.
The upper bound restriction was mainly there for this reason: to ~force manually testing new versions.
There is no known issue with newer versions atm.

Remove the upper bound, as there have not been issues with newer versions recently,
and this makes it clear to e.g. packagers that it's fine to use newer versions.

Add a lower bound for a version that has been tested in the past and is known to work ok.

related https://github.com/spesmilo/electrum/issues/7361
2022-01-20 15:09:12 +01:00
SomberNight
d9b55ae5c8 build: relax dnspython version bound
The <2.1 pin had been put there as dnspython 2.1 added "poetry" as a build time dep,
which pulled in a significant number of transitive dependencies, and it was also
causing issues with our appimage build.

dnspython 2.2.0 was released since, which no longer needs full poetry, only "poetry-core":
da279dec7e

related https://github.com/spesmilo/electrum/issues/7361
2022-01-20 15:09:08 +01:00
SomberNight
1705c1999a build: rm "dataclasses" from pinned requirements-hw.txt
trezorlib requires "dataclasses ; python_version<'3.7'", and our min supported python version is 3.6,
so freeze_packages.sh pins down a version of "dataclasses". However, when creating binaries we
use newer versions of python (typically py3.9 atm), for which dataclasses is not available (it's a backport of py3.7 stuff).
Hmhm, what to do... short-term, I am manually removing the dataclasses pin, so it won't be installed in our binaries.

```
Collecting construct==2.10.67
  Downloading construct-2.10.67.tar.gz (57 kB)
     |████████████████████████████████| 57 kB 2.7 MB/s
  Preparing metadata (setup.py) ... done
Requirement already satisfied: cryptography==36.0.1 in ./build/appimage/electrum.AppDir/usr/lib/python3.9/site-packages (from -r /opt/electrum/contrib/build-linux/appimage/../../../contrib/deterministic-build/requirements-hw.txt (line 74)) (36.0.1)
ERROR: Could not find a version that satisfies the requirement dataclasses==0.8 (from versions: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6)
ERROR: No matching distribution found for dataclasses==0.8
```
2022-01-20 15:09:04 +01:00
SomberNight
6421ff015d rerun freeze_packages 2022-01-20 14:11:54 +01:00
vertion
906c4c4e2c appimage build: update libudev-dev libudev1 (#7629)
(cherry picked from commit 19a9a151e8832a55444f3815df3a1ca35fdb1674)
2022-01-18 14:47:29 +00:00
ThomasV
bdbd59300f Prepare scripts for aggregated signatures:
- fetch file signatures in contrib/add_cosigner.
 - detect cosigners in make_download.
 - format download page for aggregated signatures.
2021-12-19 17:10:41 +01:00
ThomasV
195b470d70 contrip/upload: do not fail sftp if directory already exists 2021-12-19 17:02:27 +01:00
ghost43
97e61cfacd Merge pull request #7590 from matejcik/matejcik/trezorlib-0.13
trezorlib 0.13 compatibility
2021-12-17 12:05:35 +00:00
upgradvisor-bot
a044d7df01 Update qdarkstyle to <3.1 (allow 3.0.x) (#7561)
Co-authored-by: the-new-kai-lu <freddylukai@gmail.com>
2021-12-17 11:50:48 +00:00
matejcik
9a975a5200 trezorlib 0.13 compatibility 2021-12-09 13:55:03 +01:00
SomberNight
f066f25a30 win build: revert pyinstaller upgrade
Various issues with newer versions... needs more investigation.

This reverts part of 2b4bf19c06
2021-11-03 04:07:52 +01:00
SomberNight
2b4bf19c06 win build: update some build dependencies 2021-11-02 18:38:28 +01:00
SomberNight
7d5c5b75a1 android build: bump python 3.8.8->3.8.12 2021-11-02 18:38:24 +01:00
SomberNight
7409a32879 win build: bump python 3.8.8->3.9.7 2021-11-02 18:38:21 +01:00
SomberNight
f01ca726e4 mac build: bump python 3.7.9->3.9.7 2021-11-02 18:38:17 +01:00
SomberNight
6a0d7dfd48 rerun freeze_packages 2021-11-02 18:38:13 +01:00
SomberNight
ca2d1eea45 build appimage: update appimagetool and stop using fork of mksquashfs
The latest release of appimagetool bundles a new enough version of
mksquashfs. We had been building a fork of mksquashfs but all the
relevant patches there had been upstreamed.

Note: we still need a wrapper when calling mksquashfs, as appimagetool
calls it with "-mkfs-time 0" and we have the SOURCE_DATE_EPOCH env var
set; and these two would conflict.
Two ways to fix: either unset SOURCE_DATE_EPOCH for that context, or
build a wrapper that removes the "-mkfs-time 0". The former would be
cleaner but for some reason I did not manage to build reproducibly
that way. The latter seems to work.

related:
- https://github.com/AppImage/AppImageKit/issues/929#issuecomment-580769875
  > Now official squashfs 4.4 makes reproducible images by default
- https://github.com/AppImage/AppImageKit/pull/996
2021-09-23 18:49:44 +02:00
SomberNight
11146d352f appimage build: bump python 3.8.12->3.9.7 2021-09-20 19:31:41 +02:00
SomberNight
fb3ce438d6 appimage build: bump python 3.7.10->3.8.12 2021-09-20 19:31:38 +02:00
SomberNight
5d0aa63adb appimage build: change base to ubuntu 18.04
ubuntu 16.04 is EOL
2021-09-20 19:31:33 +02:00
SomberNight
8b9296654e contrib/push_locale: start using crowdin v2 API (instead of v1)
-----

closes https://github.com/spesmilo/electrum/issues/6936

Note: if we used the python crowdin client (https://github.com/crowdin/crowdin-api-client-python),
we would do something like this:

```
from crowdin_api import CrowdinClient
class MyCrowdinClient(CrowdinClient):
    TOKEN = ...
client = MyCrowdinClient()
with open(locale_file_name, 'rb') as f:
    resp = client.storages.add_storage(f)
    storage_id = resp['data']['id']
client.source_files.update_file(projectId=crowdin_project_id, storageId=storage_id, fileId=crowdin_file_id)
client.translations.build_crowdin_project_translation(projectId=crowdin_project_id)
```
2021-09-14 20:17:10 +02:00
SomberNight
70d901b544 cirrus ci: push_locale: make sure gettext is installed 2021-09-14 20:10:32 +02: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
gruve-p
475d41e42e appimage: update libssl-dev libssl1.0.0 openssl (#7472) 2021-09-07 14:18:21 +00:00
bitromortac
28bbb4bdda android+osx: add lightning uri handlers 2021-07-30 08:44:15 +02:00
bitromortac
c65caf6c68 qt+android: add lightning URI support 2021-07-30 08:44:15 +02:00
SomberNight
5115e14aed mac build: reuse previously built dylibs if available 2021-07-29 18:17:51 +02:00
ThomasV
07219cc4c6 make_downloads: generate signature lists 2021-07-23 19:13:25 +02:00
SomberNight
d35a68d2d1 release.sh: fix bugs discovered during last release 2021-07-19 21:48:47 +02:00
SomberNight
8e71361d29 mac build: README: mention Xcode path intricacies 2021-07-19 21:46:17 +02:00
ThomasV
f414562602 contrib/upload: minor fixes 2021-07-19 21:27:04 +02:00
ThomasV
d8d2c180aa update locale 2021-07-19 17:35:40 +02:00
SomberNight
9f82dc07f2 release.sh: dmg is now reproducible as well 2021-07-19 17:22:55 +02:00
SomberNight
c1d28bcf53 mac build: compare_dmg: "diff" should handle missing directory
(as in, non-existent path)
2021-07-19 17:08:02 +02:00
SomberNight
9c2807cbb1 mac build: README: clarify note about reproducibility of unsigned dmg 2021-07-19 16:13:27 +02:00
ThomasV
1dfbba76d0 make_osx: disable set -e during test of signing identity 2021-07-19 14:57:20 +02:00
SomberNight
f50882d8df mac build: attempt at "reproducible" codesigned builds
- added notes about reproducibility requirements
- adapted build scripts from Bitcoin Core that can
    - extract signatures from a signed .app
    - apply previously extracted signatures to an unsigned .app
2021-07-19 07:34:05 +02:00