|
|
|
---
|
|
|
|
name: "bitcoin-dmg-signer"
|
|
|
|
distro: "ubuntu"
|
|
|
|
suites:
|
|
|
|
- "focal"
|
|
|
|
architectures:
|
|
|
|
- "amd64"
|
|
|
|
packages:
|
|
|
|
- "faketime"
|
build: Replace genisoimage with xorriso
xorriso and its mkisofs/genisoimage emulation alter-ego xorrisofs are
more maintained, and has the right toggles for us to achieve output
determinism without using blunt tools like faketime.
In this commit, we use xorrisofs from the build environment rather than
building it ourselves using depends. This is not necessary and can be
changed in the future.
From https://wiki.debian.org/genisoimage?action=recall&rev=11 :
> The classical command line interface for production of ISO 9660
> filesystem images is the option set established by program mkisofs.
> For reasons of licensing and other problems with its author, Debian
> ships a fork of mkisofs, called genisoimage, which was split off in
> 2006 and then developed independently.
>
> Meanwhile, genisoimage gets no new features and not even bug fixes. It
> is first choice only if its options -udf or -hfs are needed.
>
> Replacement in most uses cases, especially for bootable ISO 9660
> filesystems, archiving, and backup, is xorrisofs which starts the -as
> mkisofs emulation mode of program xorriso.
5 years ago
|
|
|
- "xorriso"
|
|
|
|
- "python3-pip"
|
|
|
|
remotes:
|
|
|
|
- "url": "https://github.com/bitcoin-core/bitcoin-detached-sigs.git"
|
|
|
|
"dir": "signature"
|
|
|
|
- "url": "https://github.com/achow101/signapple.git"
|
|
|
|
"dir": "signapple"
|
|
|
|
"commit": "c7e73aa27a7615ac9506559173f787e2906b25eb"
|
|
|
|
files:
|
|
|
|
- "bitcoin-osx-unsigned.tar.gz"
|
|
|
|
script: |
|
|
|
|
set -e -o pipefail
|
|
|
|
|
|
|
|
WRAP_DIR=$HOME/wrapped
|
|
|
|
mkdir -p ${WRAP_DIR}
|
|
|
|
export PATH="$PWD":$PATH
|
build: Replace genisoimage with xorriso
xorriso and its mkisofs/genisoimage emulation alter-ego xorrisofs are
more maintained, and has the right toggles for us to achieve output
determinism without using blunt tools like faketime.
In this commit, we use xorrisofs from the build environment rather than
building it ourselves using depends. This is not necessary and can be
changed in the future.
From https://wiki.debian.org/genisoimage?action=recall&rev=11 :
> The classical command line interface for production of ISO 9660
> filesystem images is the option set established by program mkisofs.
> For reasons of licensing and other problems with its author, Debian
> ships a fork of mkisofs, called genisoimage, which was split off in
> 2006 and then developed independently.
>
> Meanwhile, genisoimage gets no new features and not even bug fixes. It
> is first choice only if its options -udf or -hfs are needed.
>
> Replacement in most uses cases, especially for bootable ISO 9660
> filesystems, archiving, and backup, is xorrisofs which starts the -as
> mkisofs emulation mode of program xorriso.
5 years ago
|
|
|
FAKETIME_PROGS="dmg xorrisofs"
|
|
|
|
|
|
|
|
# Create global faketime wrappers
|
|
|
|
for prog in ${FAKETIME_PROGS}; do
|
|
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${prog}
|
|
|
|
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
|
|
|
|
echo "export LD_PRELOAD='/usr/\$LIB/faketime/libfaketime.so.1'" >> ${WRAP_DIR}/${prog}
|
|
|
|
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
|
|
|
|
echo "exec \"\$REAL\" \"\$@\"" >> $WRAP_DIR/${prog}
|
|
|
|
chmod +x ${WRAP_DIR}/${prog}
|
|
|
|
done
|
|
|
|
|
|
|
|
# Install signapple
|
|
|
|
cd signapple
|
|
|
|
python3 -m pip install -U pip setuptools
|
|
|
|
python3 -m pip install .
|
|
|
|
export PATH="$HOME/.local/bin":$PATH
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
UNSIGNED_TARBALL=bitcoin-osx-unsigned.tar.gz
|
|
|
|
UNSIGNED_APP=dist/Bitcoin-Qt.app
|
|
|
|
SIGNED=bitcoin-osx-signed.dmg
|
|
|
|
|
|
|
|
tar -xf ${UNSIGNED_TARBALL}
|
|
|
|
OSX_VOLNAME="$(cat osx_volname)"
|
|
|
|
./detached-sig-apply.sh ${UNSIGNED_APP} signature/osx/dist
|
build: Replace genisoimage with xorriso
xorriso and its mkisofs/genisoimage emulation alter-ego xorrisofs are
more maintained, and has the right toggles for us to achieve output
determinism without using blunt tools like faketime.
In this commit, we use xorrisofs from the build environment rather than
building it ourselves using depends. This is not necessary and can be
changed in the future.
From https://wiki.debian.org/genisoimage?action=recall&rev=11 :
> The classical command line interface for production of ISO 9660
> filesystem images is the option set established by program mkisofs.
> For reasons of licensing and other problems with its author, Debian
> ships a fork of mkisofs, called genisoimage, which was split off in
> 2006 and then developed independently.
>
> Meanwhile, genisoimage gets no new features and not even bug fixes. It
> is first choice only if its options -udf or -hfs are needed.
>
> Replacement in most uses cases, especially for bootable ISO 9660
> filesystems, archiving, and backup, is xorrisofs which starts the -as
> mkisofs emulation mode of program xorriso.
5 years ago
|
|
|
${WRAP_DIR}/xorrisofs -D -l -V "${OSX_VOLNAME}" -no-pad -r -dir-mode 0755 -o uncompressed.dmg signed-app
|
|
|
|
${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED}
|