2014-11-22 01:26:45 +01:00
|
|
|
---
|
2015-04-05 23:56:58 +02:00
|
|
|
name: "dash-dmg-signer"
|
2019-03-16 13:24:26 +01:00
|
|
|
distro: "ubuntu"
|
2014-11-22 01:26:45 +01:00
|
|
|
suites:
|
partial merge #21036: gitian: Bump descriptors to Focal for 22.0
2ecaf214331b506ebfac4f4922241744357d652b gitian: remove execstack workaround for ricv64 & powerpc64le (fanquake)
5baff2b31840bdbc465f55b875aa6e9480288215 build: use focal in gitian descriptors (fanquake)
Pull request description:
This PR changes the gitian descriptors to use Ubuntu Focal (20.04), over Bionic (18.04), moving from GCC 7.5 to GCC 8.4 for native Linux builds, mingw-w64 GCC 7.3 to mingw-w64 GCC 9.3 for Windows builds, while continuing to use GCC 8.4 for all cross builds and Clang 8.0.0 for macOS builds.
It also drops the `-Wl,-z,noexecstack` workaround we've been using for the riscv64 and powerpc64le hosts, as it's no-longer needed. One new package is installed in the osx build, `libtinfo5`, as libtinfo5.so is required by our downloaded Clang 8.
A bump to Focal will at least be required if we want to update to a newer Qt (5.15, #19716) for 22.0, as we need a newer version of [`g++-mingw-w64`](https://packages.ubuntu.com/focal/g++-mingw-w64-x86-64) and the [`mingw-w64`](https://mingw-w64.org/doku.php) headers. This can still be done while continuing to use GCC 8.4 for Linux builds (see below), however the newer `g++-mingw-w64` will be based off of GCC 9.3.
**Some considerations**
GCC 9 is affected by #20005 "memcmp with constants that contain zero bytes are broken in GCC", and the newer `g++-mingw-w64` will be based off of GCC 9.3.
The `--no-*` variants of the Windows linker flags (i.e `--no-dynamicbase`) we use to [test our `security-check.py` script](https://github.com/bitcoin/bitcoin/blob/16b784d953365bb2d7ae65acd2b20a79ef8ba7b6/contrib/devtools/test-security-check.py#L53) are not patched into the mingw binutils in Focal (they have been re-added in Groovy (20.10)). This isn't currently an issue, however, we might add a call to `test-security-check` for Guix (#20980), and if we wanted to do the same for gitian, it would not work. Note how it's quite "easy" for us to apply the `--no-*` variant patch to our Guix build; it would be quite a bit harder to do in Gitian.
Gitian Builds @ 2ecaf214331b506ebfac4f4922241744357d652b
#### Linux
```bash
8882ea78486fbae4fac574b9089eb1107c6372d0dd7dfcda4f0f930576f9d6c1 bitcoin-2ecaf214331b-aarch64-linux-gnu-debug.tar.gz
50a9e30943b4eee5163edff3331241e745ff32a2c4463c21a6fdc5986e2d0383 bitcoin-2ecaf214331b-aarch64-linux-gnu.tar.gz
ec4e55a447fddf033fee33cd5f22bfeda3c3612f059194bcf6238859f7989d7a bitcoin-2ecaf214331b-arm-linux-gnueabihf-debug.tar.gz
444fe1b3b933c00bcbd4a9d86888cff3b61c1215b1debccd2843e842d1224777 bitcoin-2ecaf214331b-arm-linux-gnueabihf.tar.gz
88e486ff465980dc1a4aab9687d142ec6f727ed2c52cf539f69db2877dee83b2 bitcoin-2ecaf214331b-powerpc64-linux-gnu-debug.tar.gz
66144ac264c65cada9d86446e6026c85b04fb88198b8f41b42840f6031db3e6c bitcoin-2ecaf214331b-powerpc64-linux-gnu.tar.gz
34bcc13d78d929d575e34e77a6672f23ca7ea23230b28ec2eed563889352ba86 bitcoin-2ecaf214331b-powerpc64le-linux-gnu-debug.tar.gz
b4c5f959664f3063df4330edfe343c17120eb6b556ee1c15c4aeb2c1c54ffd49 bitcoin-2ecaf214331b-powerpc64le-linux-gnu.tar.gz
918fa72ab6f6ebce4e9663c93f72fe26651c260477cbb54749f7eb61438b5cc1 bitcoin-2ecaf214331b-riscv64-linux-gnu-debug.tar.gz
f704f9f8c053ffe37d854e2e81e0f4c0614c435dad7f5d82518c681b73a76ae6 bitcoin-2ecaf214331b-riscv64-linux-gnu.tar.gz
b59e3a62f1df9d79f30e916b3c9655f654036fe3a420040c53acc8dd9f4162c5 bitcoin-2ecaf214331b-x86_64-linux-gnu-debug.tar.gz
a4dc9ca877cc97544e65db11be38406d16f15d74fcdcd2318bb92474729bc60d bitcoin-2ecaf214331b-x86_64-linux-gnu.tar.gz
b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af src/bitcoin-2ecaf214331b.tar.gz
af6ebc91147778e4e6705eade62608dde4d6e60522d79087fa9129bdb7c01199 bitcoin-core-linux-22-res.yml
```
#### Windows
```bash
121a3970a6911cb8c453b2ce37d03f6cbb43333e29db8fa516c68563fb367f43 bitcoin-2ecaf214331b-win-unsigned.tar.gz
6294e9efebe935092f9ba119dc60ad4094f18b51c4181324e54d3057524d6101 bitcoin-2ecaf214331b-win64-debug.zip
5b5a236b63e67f5f6c07ad9aa716aa7b72fb63722c96798b332c6d164738f9cf bitcoin-2ecaf214331b-win64-setup-unsigned.exe
c1fa5894c5e02a201637567c80b9bde9024f44673dcd06fd4d489c1709179279 bitcoin-2ecaf214331b-win64.zip
b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af src/bitcoin-2ecaf214331b.tar.gz
665fd7eb61aed368150db58a254f15fb5efb51a4efa5abcc52571cb7a1a5de22 bitcoin-core-win-22-res.yml
```
#### macOS
```bash
6a1deae7662aa782baa82a42590f862c6bcdc4f4e38daa9b8c2a9eed1fbb5397 bitcoin-2ecaf214331b-osx-unsigned.dmg
1ee843266e84928a4323fa255c833528c2617a2c9fd2f98fb26ba19bbfc1227b bitcoin-2ecaf214331b-osx-unsigned.tar.gz
097b64dadc167d8e5b733421bf1541a40760ad952990f7cf3f35adc6ae2616d0 bitcoin-2ecaf214331b-osx64.tar.gz
b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af src/bitcoin-2ecaf214331b.tar.gz
6e378fb543928e40c7119b96be6ff773d38506a9a888f8b02c7f1b8a0801a80e bitcoin-core-osx-22-res.yml
```
ACKs for top commit:
laanwj:
Build script changes review ACK 2ecaf214331b506ebfac4f4922241744357d652b
Tree-SHA512: 975d5830b787d2e08988f43cbc6e839294171c1d94c8219636308b05f9b77041421612ae67be24a631674670cfc9c2d96d8177f2b3158a78fc3deea19631febf
2021-02-08 10:42:08 +01:00
|
|
|
- "focal"
|
2014-11-22 01:26:45 +01:00
|
|
|
architectures:
|
2020-01-22 15:50:19 +01:00
|
|
|
- "amd64"
|
2014-11-22 01:26:45 +01:00
|
|
|
packages:
|
|
|
|
- "faketime"
|
2020-09-26 03:18:01 +02:00
|
|
|
- "xorriso"
|
2021-01-18 22:04:23 +01:00
|
|
|
- "python3-pip"
|
2015-06-10 19:59:41 +02:00
|
|
|
remotes:
|
2016-02-02 16:28:56 +01:00
|
|
|
- "url": "https://github.com/dashpay/dash-detached-sigs.git"
|
2015-06-10 19:59:41 +02:00
|
|
|
"dir": "signature"
|
2021-01-18 22:04:23 +01:00
|
|
|
- "url": "https://github.com/achow101/signapple.git"
|
|
|
|
"dir": "signapple"
|
2022-08-17 17:35:47 +02:00
|
|
|
"commit": "8a945a2e7583be2665cf3a6a89d665b70ecd1ab6"
|
2014-11-22 01:26:45 +01:00
|
|
|
files:
|
2018-05-31 17:31:00 +02:00
|
|
|
- "dashcore-osx-unsigned.tar.gz"
|
2014-11-22 01:26:45 +01:00
|
|
|
script: |
|
2019-03-09 06:45:09 +01:00
|
|
|
set -e -o pipefail
|
|
|
|
|
2014-11-22 01:26:45 +01:00
|
|
|
WRAP_DIR=$HOME/wrapped
|
|
|
|
mkdir -p ${WRAP_DIR}
|
2021-08-25 17:01:44 +02:00
|
|
|
export PATH="$PWD":$PATH
|
2020-09-26 03:18:01 +02:00
|
|
|
FAKETIME_PROGS="dmg xorrisofs"
|
2014-11-22 01:26:45 +01:00
|
|
|
|
|
|
|
# Create global faketime wrappers
|
|
|
|
for prog in ${FAKETIME_PROGS}; do
|
2018-06-24 16:41:58 +02:00
|
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${prog}
|
2014-11-22 01:26:45 +01:00
|
|
|
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
|
2019-11-13 10:20:25 +01:00
|
|
|
echo "export LD_PRELOAD='/usr/\$LIB/faketime/libfaketime.so.1'" >> ${WRAP_DIR}/${prog}
|
2014-11-22 01:26:45 +01:00
|
|
|
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
|
2023-05-29 18:14:59 +02:00
|
|
|
echo "exec \"\$REAL\" \"\$@\"" >> $WRAP_DIR/${prog}
|
2014-11-22 01:26:45 +01:00
|
|
|
chmod +x ${WRAP_DIR}/${prog}
|
|
|
|
done
|
|
|
|
|
2021-01-18 22:04:23 +01:00
|
|
|
# Install signapple
|
|
|
|
cd signapple
|
|
|
|
python3 -m pip install -U pip setuptools
|
|
|
|
python3 -m pip install .
|
|
|
|
export PATH="$HOME/.local/bin":$PATH
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
UNSIGNED_TARBALL=dashcore-osx-unsigned.tar.gz
|
|
|
|
UNSIGNED_APP=dist/Dash-Qt.app
|
2018-05-31 17:31:00 +02:00
|
|
|
SIGNED=dashcore-osx-signed.dmg
|
2014-11-22 01:26:45 +01:00
|
|
|
|
2021-01-18 22:04:23 +01:00
|
|
|
tar -xf ${UNSIGNED_TARBALL}
|
2016-02-04 13:41:58 +01:00
|
|
|
OSX_VOLNAME="$(cat osx_volname)"
|
2021-01-18 22:04:23 +01:00
|
|
|
./detached-sig-apply.sh ${UNSIGNED_APP} signature/osx/dist
|
2020-09-26 03:18:01 +02:00
|
|
|
${WRAP_DIR}/xorrisofs -D -l -V "${OSX_VOLNAME}" -no-pad -r -dir-mode 0755 -o uncompressed.dmg signed-app
|
2014-11-22 01:26:45 +01:00
|
|
|
${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED}
|