Commit Graph

64 Commits

Author SHA1 Message Date
ThomasV 9b7f9219a3 fix travis builds (update openssl) 2021-02-19 15:49:37 +01:00
SomberNight 3d640dfc1f windows binaries: bump python version (3.7.9->3.8.7)
Had to also bump ubuntu version 18.04->20.04,
as was getting errors running the self-compiled pyinstaller otherwise (weird...):

```
from .utils.git import get_repo_revision
ModuleNotFoundError: No module named 'PyInstaller.utils'
```
(similar to https://github.com/pyinstaller/pyinstaller/issues/4403 )

-----

Note re appimage: when trying to compile python 3.8.x on ubuntu 16.04, I am getting:

./Modules/posixmodule.c: In function ‘os_copy_file_range_impl’:
./Modules/posixmodule.c:10351:15: error: implicit declaration of function ‘copy_file_range’ [-Werror=implicit-function-declaration]
         ret = copy_file_range(src, p_offset_src, dst, p_offset_dst, count, flags);

This is because ubuntu 16.04 has too old glibc.
2021-01-12 02:28:35 +01:00
SomberNight 19f806ddf4 build: don't allow setuptools to sneakily install build-time deps
see https://pip.pypa.io/en/stable/reference/pip_install/#controlling-setup-requires
> Setuptools offers the setup_requires setup() keyword for specifying
> dependencies that need to be present in order for the setup.py
> script to run. Internally, Setuptools uses easy_install to
> fulfill these dependencies.
> pip has no way to control how these dependencies are located.
> None of the package index options have an effect.

With these changes, we will now instead hard fail if this were to happen.

related: https://github.com/spesmilo/electrum/issues/5859#issuecomment-743621898
2020-12-12 02:52:38 +01:00
SomberNight 4ca2a5cf3e appimage build: build most of our python dependencies from source
instead of using pre-built binary wheels from PyPI
2020-12-09 16:38:03 +01:00
SomberNight 37a124fa1c appimage: update package in dockerfile 2020-12-09 15:00:42 +01:00
SomberNight a4e342ac58 requirements: rename some files 2020-11-14 04:30:48 +01:00
Jin Eguchi 56f380a62c appimage: update openssl & libudev-dev (#6599) 2020-09-17 14:39:20 +00:00
SomberNight 9204102663 binaries: pip install build requirements first
I no longer trust pip to install packages from a requirements.txt file in the correct order.
For reproducibility, let's install pip/setuptools/wheels/cython first.

see https://github.com/pypa/pip/issues/2362#issuecomment-418423458
see #5859 and #6382
2020-09-08 16:44:35 +02:00
SomberNight 4f46741c52 binaries: bump python version (3.7.7->3.7.9) 2020-09-08 16:44:24 +02:00
SomberNight 995250948a appimage build: pin glibc version in docker image, for reproducibility
fixes #6357
2020-07-08 23:54:54 +02:00
SomberNight 3c6b049f9a appimage: update package in dockerfile 2020-06-17 00:33:36 +02:00
SomberNight f5f3394552 git sanity: enforce "git checkout commithash" actually pulls commit
If there is a collision between a branch name and a commit hash, git
will choose the branch, even if the full 40-hex-long commit hash is
given. GitHub disallows branches/tags with such a name but git itself
does not. By adding the `^{commit}` syntax sugar after a ref name,
we can tell git that we want the commit hash to be preferred,
and hence we don't need to trust GitHub (only git).

see https://security.stackexchange.com/questions/225411/
2020-06-16 19:55:17 +02:00
SomberNight e12bc4817a attempt at reproducible tarballs (sdist) 2020-06-12 19:48:15 +02:00
SomberNight b0230f6a4b build: fix win/appimage binaries following jsonrpc dep-removal
follow-up #6220
2020-06-11 05:37:52 +02:00
SomberNight 2dfef9dde6 appimage: update package in dockerfile
Ubuntu no longer serves old version
2020-06-11 02:52:09 +02:00
Jin Eguchi 6339afee3b appimage: update openssl (#6186) 2020-05-29 00:30:20 +00:00
SomberNight 587f8df8ad binaries: update base docker image for wine/appimage 2020-05-14 20:24:17 +02:00
SomberNight 7143e9199f binaries: bump python version (3.7.6->3.7.7) 2020-05-14 20:24:07 +02:00
ThomasV 594f13b6f7 appimage: update libudev-dev in Dockerfile 2020-05-13 10:55:08 +02:00
Jin Eguchi 1846154ca3 build: update git in dockerfiles (#6107) 2020-04-21 22:48:01 +00:00
SomberNight c2d6a902dd build: update some packages in dockerfiles
Ubuntu no longer serves old version
2020-04-15 18:06:59 +02:00
SomberNight e5e512df8c appimage: update package in dockerfile
Ubuntu no longer serves old version
2020-03-10 18:20:46 +01:00
SomberNight 4cec098d2d build: create a standalone build script for libsecp256k1
heavily based on Electron-Cash/Electron-Cash@eda015908e
2020-02-11 16:48:24 +01:00
Jin Eguchi 4313bde4c2 appimage: update libudev-dev (#5936) 2020-02-07 11:41:04 +00:00
wakiyamap 1237134339 Fix travis appimage 2020-01-29 12:55:23 +09:00
SomberNight a5cd34dc08 follow-up prev (oops, only committed part of the changes) 2020-01-22 18:26:29 +01:00
Axel Gembe d3385e49bb Build: Install libxkbcommon-x11 in AppImage
Newer distributions do not install libxkbcommon-x11 by default
anymore and Qt depends on it.

-----

taken from https://github.com/Electron-Cash/Electron-Cash/commit/ca3e4501cdc42332f4d7079ef9392c529c9d97b8
2020-01-22 18:16:53 +01:00
Axel Gembe 4406eebbfe Build: Uninstall Cython from AppImage
Cython is not needed at runtime.

-----

taken from https://github.com/Electron-Cash/Electron-Cash/commit/c64910055dad6bdcbd01b01121352d2fa3fedb40

related #5859
2020-01-22 12:27:17 +01:00
SomberNight 80025a3af4 requirements-hw: re-add Cython
this reverts ec496a8222
Cython must be pinned down for reproducible builds
related #5859
2020-01-22 12:08:30 +01:00
SomberNight 1c4728ecc6 appimage binary: bump python version (3.6.8->3.7.6) 2020-01-16 19:12:24 +01:00
SomberNight 7c090f92ce binaries: use "--no-dependencies" option for pip install
All (incl indirect) dependencies are already listed in deterministic-build/requirements*.txt.
This option makes it easier to manually rm a dependency from that list for e.g. testing.
2020-01-10 19:01:32 +01:00
SomberNight b3c0231b2b appimage build: add notes re investigating reproducibility failure 2019-12-24 03:30:26 +01:00
Axel Gembe 880bd16883 AppImage: Improve binary stripping
Slightly reduces file size, improves build speed and makes build more
reproducible.

The .comment section contained GCC version information which could cause
different build output from just a minor update in GCC. The information is not
needed so we strip this.

The strip command was invoked using xargs, spawning a new process for each file.
This is inefficient as xargs can correctly run the strip command with multiple
file names.

-----

taken from https://github.com/Electron-Cash/Electron-Cash/commit/43aaf9572f822b977ecffe68f9cce428e5d27c18
2019-12-17 21:41:17 +01:00
SomberNight 255bf7caf4 build: update some packages in dockerfiles
Ubuntu no longer serves old version
2019-12-10 23:54:45 +01:00
SomberNight 9f9b0954e2 appimage: update package in dockerfile
Ubuntu no longer serves old version
2019-12-06 22:02:17 +01:00
SomberNight 69720946c1 appimage: update package in dockerfile
Ubuntu no longer serves old version
2019-12-04 20:53:48 +01:00
SomberNight b381fd84fb build: when building libsecp256k1, patch Makefile.am before autogen.sh
apparently this could have caused issues on MacOS

based on Electron-Cash/Electron-Cash@69f6cd0aa0
2019-09-08 18:47:30 +02:00
SomberNight 3d7cb935ff appimage: don't rm jsonschema-*.dist-info as pkg needs it 2019-09-02 19:21:53 +02:00
SomberNight fc5248550c appimage build: change base to ubuntu 16.04
ubuntu 14.04 is EOL
2019-08-09 20:56:20 +02:00
SomberNight 249e3d496b appimage build: rm "build" folder if present as it makes build non-reproducible
AFAICT the "build" is created if you "python setup.py install" electrum,
which is now deprecated in any case.
2019-07-19 04:52:26 +02:00
SomberNight c67705e116 appimage build: build was failing on some host systems
On Ubuntu host, build succeeded; but e.g. on Manjaro host, it failed with:
```
./build.sh: line 233: /opt/electrum/contrib/build-linux/appimage/../../../contrib/build-linux/appimage/.cache/appimage/appimagetool: No such file or directory
```
2019-07-10 20:26:25 +02:00
Axel Gembe 69b673b8a1 AppImage: Bundle more binaries to increase compatibility
This slightly increases the AppImage size but allows us to be more
compatible with older distributions.

-----

taken from Electron-Cash/Electron-Cash@96644acd6f
2019-07-04 23:35:52 +02:00
Axel Gembe 0d1a473bb0 AppImage: Disable pip warnings about script install locations
It warns about scripts being installed in a location that is not on the
path, but that is inconsequential as they are not used.

-----

taken from Electron-Cash/Electron-Cash@9a29017c5d
2019-07-04 22:31:56 +02:00
SomberNight 194bf84418 build readme nits
sudo is needed to rm FRESH_CLONE as docker is running as sudo.
the proper fix would be to have docker not run as sudo...
2019-07-03 21:09:11 +02:00
SomberNight 7bf6786bf5 build: note whether binary is reproducible in each case 2019-06-26 04:18:24 +02:00
SomberNight 9f28f8bcc6 Appimage: follow-up b69249f6c3
libsecp256k1.a needs to be deleted as it's not reproducible...
2019-06-23 04:17:46 +02:00
SomberNight 266484e0fd Appimage: nits. use "fail"
somewhat based on same script in Electron-Cash/Electron-Cash
2019-06-23 04:13:28 +02:00
Axel Gembe bb59a1298a AppImage: Patch Python sysconfigdata
When building in docker on macOS, python builds with .exe extension
because the case insensitive file system of macOS leaks into docker.
This causes the build to result in a different output on macOS compared
to Linux. We simply patch sysconfigdata to remove the extension.

Some more info: https://bugs.python.org/issue27631
2019-06-23 04:13:23 +02:00
SomberNight ec496a8222 requirements-hw: rm Cython
not actually needed
based on Electron-Cash/Electron-Cash@70de1a2b53
2019-06-23 03:06:36 +02:00
Axel Gembe b69249f6c3 AppImage: Remove unused binaries
There are a lot of dupliacted files, testing files and unused libraries
present in the AppImage. Removing these reduces the AppImage size
significantly.

-----

taken from Electron-Cash/Electron-Cash@cff5fb1289
2019-06-23 02:56:33 +02:00