1
0
Commit Graph

717 Commits

Author SHA1 Message Date
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
SomberNight
71b02df832 mac build: re-add note about needing full Xcode...
Turns out the Xcode CLI tools are still not enough, and we need full Xcode :(
This is only for notarization; as `altool` (which we need there) is only part
of full Xcode. So we need to download 8 gigs just for that single script...

related c1dbcab9bb
2021-07-19 07:33:08 +02:00
SomberNight
fa04c762c5 mac build: rm pyinstaller monkey-patch used to codesign embedded files
When the monkey-patch was added, we were building pyinstaller onefile
binaries; but since then we changed to build pyinstaller onedir binaries
instead. So I believe there are no embedded files inside the main executable
anymore, so doing `codesign --deep *.app` (near the end of make_osx)
should be sufficient.
2021-07-19 07:33:04 +02:00
SomberNight
e679e6074f mac build: add "set -e"
for sanity...

re touching these files: not sure they are really needed
(but the ~/Library/Python/ and ~/.pyenv folders are no longer there
on the build machine)
2021-07-16 16:38:31 +02:00
ThomasV
9278a26a7d make_osx: do not download python pkg unnecessarily 2021-07-16 15:55:33 +02:00
ThomasV
09f7d65b31 Merge pull request #7411 from SomberNight/20210715_macos_build
mac build: download python from python.org instead of using pyenv
2021-07-16 15:46:12 +02:00
ThomasV
4dd82cef74 set -e in compare_dmg 2021-07-16 15:41:15 +02:00
SomberNight
4fd6282f51 mac build: download python from python.org instead of using pyenv 2021-07-16 01:19:56 +02:00
SomberNight
8c1380ca8b mac build: trivial clean-up 2021-07-15 19:43:15 +02:00
ThomasV
ea24ab593f Merge pull request #7400 from SomberNight/202107_mac_build_pyc
mac build: don't create __pycache__ folders
2021-07-14 12:08:06 +02:00
ThomasV
ace113358a fix typo (follow-up prev) 2021-07-13 10:21:14 +02:00
ThomasV
0c17b49e2c compare_dmg: compare two files 2021-07-13 10:01:09 +02:00
SomberNight
659c00e06b mac build: don't create __pycache__ folders
The .pyc files would get created when a .py module is imported,
which is done during the build for some source files by pyinstaller
(when it analyses imports).

I considered setting PYTHONDONTWRITEBYTECODE=1 in build_tools_util.sh,
to apply to all builds, but am not sure how it would affect the Android build,
where we actually want .pyc files included in the apk.
2021-07-12 18:07:31 +02:00
ThomasV
b7cc5f329c osx: add script to compare dmg binaries 2021-07-12 15:58:36 +02:00
SomberNight
5b627208f1 mac build: build libusb from source
fixes https://github.com/spesmilo/electrum/issues/7393
2021-07-06 19:38:49 +02:00
ThomasV
0b30cf80de macOS builds: remove zip file after notarization 2021-07-03 14:42:53 +02:00
SomberNight
013cf869f1 qt: qrreader: keep both old and new toolchain; try to abstract it away 2021-06-25 16:52:02 +02:00
SomberNight
c1dbcab9bb qt: new qrreader using QtMultimedia; drop CalinsQRReader(mac)
This commit ports the work of EchterAgo and cculianu from Electron-Cash,
to implement a new toolchain to scan qr codes.

Previously, on Linux and Win, we have been using zbar to access the camera
and read qrcodes; and on macOS we used CalinsQRReader (an objective-C
project by cculianu).

The new toolchain added here can use QtMultimedia to access the camera,
and then feed that image into zbar. When used this way, zbar needs
fewer dependencies and is easier to compile, in particular it can be
compiled for macOS.

The new toolchain works on all three platforms, with some caveats
(see code comments in related commits) -- so we also keep the end-to-end
zbar toolchain; but at least we can drop CalinsQRReader.

The related changes in Electron-Cash are spread over 50+ commits (several PRs and direct
pushes to master), but see in particular:
https://github.com/Electron-Cash/Electron-Cash/pull/1376

some other interesting links:
b2b737001c
163224cf1f
3b31e0fcb1
eda015908e
https://github.com/Electron-Cash/Electron-Cash/pull/1545
052aa06c23
2021-06-25 16:51:58 +02:00
SomberNight
f1e77b6e43 build: update zbar to fix build issue with autoconf 2.70
see https://github.com/Electron-Cash/Electron-Cash/pull/2143
see https://github.com/mchehab/zbar/issues/132
2021-06-25 16:44:35 +02:00
ThomasV
4380f68564 contrib/osx/package.sh: fix paths, add link to issue regarding GCC 10.1 2021-06-24 11:45:29 +02:00
ThomasV
a99e0d9e17 build tools: set ZERO_AR_DATE to have deterministic timestamps on macOS 2021-06-23 15:46:45 +02:00
ghost43
b828627dc6 Merge pull request #6917 from andrewkozlik/slip39
SLIP-0039 wallet recovery
2021-06-22 19:44:02 +02:00
SomberNight
e54e6e4e09 build: extend release.sh so that all builders can use it 2021-06-21 19:29:56 +02:00
SomberNight
0e2d147afd windows build: fix build.sh "cp" cmd
was exiting with non-zero error code due to trying to copy directory

```
9cf9cdda331b565dd95b105d3fe987beefa113ac2c594d83783998017ad52d70  dist/electrum-4.1.4-16-g648fac709-portable.exe
020ceacb3a6fc5986d3ec271985c22c8646d2bb534536b8e2ab774924b21d58f  dist/electrum-4.1.4-16-g648fac709-setup.exe
e65dbbe24fe01e8635d4def088667e65d4e9763e2ab74cbc1aec616b3f2834bc  dist/electrum-4.1.4-16-g648fac709.exe
💬 INFO:  Done.
cp: -r not specified; omitting directory '/home/user/wspace/electrum/contrib/build-wine/../../contrib/build-wine/fresh_clone/electrum/contrib/build-wine/dist/electrum'
```
2021-06-21 19:29:52 +02:00
SomberNight
9d46fe775a build: try to consolidate instructions and decr codedupe in release.sh 2021-06-18 17:10:15 +02:00
SomberNight
91c913dc0b build/release.sh: add some comments 2021-06-18 16:29:13 +02:00
SomberNight
47ebc49c4c (trivial) build/release.sh: convert indents to spaces
was mixed tabs/spaces
2021-06-18 16:29:08 +02:00
SomberNight
3df1c3bbf7 build: rename some scripts
also, merge sdist/build.sh and sdist/make_tgz into sdist/make_sdist.sh
2021-06-18 16:29:03 +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