1
0
Commit Graph

26 Commits

Author SHA1 Message Date
SomberNight
c9b6a6c01e build: fix repro builds where host userid != 1000
- repro builds to use fixed uid=1000 inside the container
  - in case the file permissions leak into the binaries, they are still reproducible
  - chown 1000:1000 fresh_clone
- repro builds to create fresh_clone dir outside git clone
  - otherwise the local dev build would still interact with the fresh_clone dir
    - due to e.g. recursive "find -exec touch",
    - and even the "docker build" cmd itself would try to stat/read it
      - see https://github.com/docker/for-linux/issues/380
  - and "rm -rf fresh_clone" needs sudo if the host uid is not 1000
  - this way the local dev build does not need sudo

to recap:
- local dev builds use the host userid inside the container, directly operate on the project dir
  - does not need sudo
- repro builds create a fresh git clone, chown it to 1000, and use userid=1000 inside the container
  - if the host userid is 1000, does not need sudo
  - otherwise, needs sudo

closes https://github.com/spesmilo/electrum/issues/8261
2023-03-20 23:32:59 +00:00
SomberNight
6e472efd5f build: follow-up prev: only use host userid for local dev builds
reproducibility probably needs a hardcoded userid

Also, move the UID arg later in the dockerfiles, for better caching.
(if local dev build and repro build set different UIDs, the build caches
will diverge at that step)
2023-03-20 02:06:54 +00:00
Sander van Grieken
ab073827cf build: use uid of user building the build containers 2023-03-20 02:06:50 +00:00
SomberNight
787dd69282 win build: clear $CONTRIB_WINE/dist between builds 2022-08-05 17:53:20 +02: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
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
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
41233a4bc7 windows build: minor clean-up 2021-03-07 22:58:44 +01:00
SomberNight
dded25f398 windows build: cache pip downloads 2021-03-07 22:12:26 +01:00
SomberNight
f1f584c4c4 windows build: separate 32/64 bit build caches
specify which architecture to target by setting WIN_ARCH env var
2021-03-07 20:02:38 +01:00
SomberNight
5337331fa0 windows build: some refactor to make building 64 bit binaries easier
related: #6598
2020-09-17 17:10:31 +02:00
ghost43
fc89c8ffa9 win binary: build zbar ourselves (#6593)
This allows bundling much newer zbar that includes many fixes.
related: #6018

This is largely based on
https://github.com/Electron-Cash/Electron-Cash/pull/1362
https://github.com/Electron-Cash/Electron-Cash/pull/1363
https://github.com/Electron-Cash/Electron-Cash/pull/1365
eda015908e
2020-09-15 15:35:57 +00: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
SomberNight
423d44bcaf build-wine: some clean-up. cache downloads. better status messages 2019-07-01 20:18:30 +02:00
Filip Gospodinov
73fee2fefa build-wine: allow local testing
Before, it was only possible to test commits that are
on Github (pull request or merged). Now, changes can be
tested locally too.

This introduces the risk that a release could be built
containing uncommitted changes which by definition breaks
deterministic builds. Fortunately, this will always be
detected because the version string is created using
`git describe --tags --dirty`.

Also, retire $TARGET variable because it decouples the
build scripts from the commit revision to be built. This
is a problem for deterministic  builds.
2018-07-10 13:33:46 +02:00
SomberNight
65601e9ec6 build and include libsecp256k1 in windows binaries 2018-05-25 16:04:29 +02:00
SomberNight
deab75fe20 windows build script: cache pip
previously pip was caching into the wine directory, which we delete and recreate on every run
2018-03-31 00:11:57 +02:00
Johann Bauer
e512e9c0e8 Simplify pyinstaller installation 2018-02-15 22:23:10 +01:00
SomberNight
0693837538 freeze hw wallet dependencies into separate file. update versions using freeze_packages.sh. introduce "hardware" setuptools extra. 2018-01-30 22:10:03 +01:00
Alexx Saver
fe54ce946c Fixed rm -rf
Notice: it is unsafe to do rm -rf ${variable}/path/* without checking the variable, quotes are also required.
2018-01-21 15:51:40 +01:00
Johann Bauer
bea62865d2 Allow to build older commits 2017-12-12 23:07:07 +01:00
Johann Bauer
4f747e78e5 Make setup.exe differ less 2017-12-10 18:51:03 +01:00
Johann Bauer
201589b1a9 Make build timezone independent 2017-11-29 23:09:59 +01:00
ThomasV
5158799689 fix windows build script: pushd and popd require bash 2017-11-29 06:52:12 +01:00
Johann Bauer
5778102acc Add script for deterministic builds 2017-11-28 00:32:38 +01:00