File tree Expand file tree Collapse file tree 5 files changed +153
-2
lines changed Expand file tree Collapse file tree 5 files changed +153
-2
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,9 @@ WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
26
26
27
27
OSX_PACKAGING = $(OSX_DEPLOY_SCRIPT ) $(OSX_FANCY_PLIST ) $(OSX_INSTALLER_ICONS ) \
28
28
$(top_srcdir ) /contrib/macdeploy/background.png \
29
- $(top_srcdir ) /contrib/macdeploy/DS_Store
29
+ $(top_srcdir ) /contrib/macdeploy/DS_Store \
30
+ $(top_srcdir ) /contrib/macdeploy/detached-sig-apply.sh \
31
+ $(top_srcdir ) /contrib/macdeploy/detached-sig-create.sh
30
32
31
33
COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
32
34
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
Original file line number Diff line number Diff line change
1
+ ---
2
+ name : " bitcoin-dmg-signer"
3
+ suites :
4
+ - " precise"
5
+ architectures :
6
+ - " amd64"
7
+ packages :
8
+ - " libc6:i386"
9
+ - " faketime"
10
+ reference_datetime : " 2013-06-01 00:00:00"
11
+ remotes : []
12
+ files :
13
+ - " bitcoin-0.9.99-osx-unsigned.tar.gz"
14
+ - " signature.tar.gz"
15
+ script : |
16
+ WRAP_DIR=$HOME/wrapped
17
+ mkdir -p ${WRAP_DIR}
18
+ export PATH=`pwd`:$PATH
19
+ FAKETIME_PROGS="dmg genisoimage"
20
+
21
+ # Create global faketime wrappers
22
+ for prog in ${FAKETIME_PROGS}; do
23
+ echo '#!/bin/bash' > ${WRAP_DIR}/${prog}
24
+ echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
25
+ echo 'export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
26
+ echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
27
+ echo "\$REAL \$@" >> $WRAP_DIR/${prog}
28
+ chmod +x ${WRAP_DIR}/${prog}
29
+ done
30
+
31
+ UNSIGNED=`echo bitcoin-*.tar.gz`
32
+ SIGNED=`echo ${UNSIGNED} | sed 's/.tar.*//' | sed 's/-unsigned//'`.dmg
33
+
34
+ tar -xf ${UNSIGNED}
35
+ ./detached-sig-apply.sh ${UNSIGNED} signature.tar.gz
36
+ ${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "Bitcoin-Qt" -no-pad -r -apple -o uncompressed.dmg signed-app
37
+ ${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED}
Original file line number Diff line number Diff line change @@ -106,8 +106,21 @@ script: |
106
106
./configure --prefix=${BASEPREFIX}/${i} --bindir=${INSTALLPATH}/bin --includedir=${INSTALLPATH}/include --libdir=${INSTALLPATH}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS}
107
107
make ${MAKEOPTS}
108
108
make install-strip
109
+
110
+ make deploydir
111
+ mkdir -p unsigned-app-${i}
112
+ cp contrib/macdeploy/detached-sig-apply.sh unsigned-app-${i}
113
+ cp contrib/macdeploy/detached-sig-create.sh unsigned-app-${i}
114
+ cp ${BASEPREFIX}/${i}/native/bin/dmg ${BASEPREFIX}/${i}/native/bin/genisoimage unsigned-app-${i}
115
+ cp ${BASEPREFIX}/${i}/native/bin/${i}-codesign_allocate unsigned-app-${i}/codesign_allocate
116
+ cp ${BASEPREFIX}/${i}/native/bin/${i}-pagestuff unsigned-app-${i}/pagestuff
117
+ mv dist unsigned-app-${i}
118
+ pushd unsigned-app-${i}
119
+ find . | sort | tar --no-recursion -czf ${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz -T -
120
+ popd
121
+
109
122
make deploy
110
- ${WRAP_DIR}/dmg dmg Bitcoin-Qt.dmg ${OUTDIR}/${DISTNAME}-osx.dmg
123
+ ${WRAP_DIR}/dmg dmg Bitcoin-Qt.dmg ${OUTDIR}/${DISTNAME}-osx-unsigned .dmg
111
124
112
125
cd installed
113
126
find . -name "lib*.la" -delete
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+ set -e
3
+
4
+ UNSIGNED=$1
5
+ SIGNATURE=$2
6
+ ARCH=x86_64
7
+ ROOTDIR=dist
8
+ BUNDLE=${ROOTDIR} /Bitcoin-Qt.app
9
+ TEMPDIR=signed.temp
10
+ OUTDIR=signed-app
11
+
12
+ if [ -z " $UNSIGNED " ]; then
13
+ echo " usage: $0 <unsigned app> <signature>"
14
+ exit 1
15
+ fi
16
+
17
+ if [ -z " $SIGNATURE " ]; then
18
+ echo " usage: $0 <unsigned app> <signature>"
19
+ exit 1
20
+ fi
21
+
22
+ rm -rf ${TEMPDIR} && mkdir -p ${TEMPDIR}
23
+ tar -C ${TEMPDIR} -xf ${UNSIGNED}
24
+ tar -C ${TEMPDIR} -xf ${SIGNATURE}
25
+
26
+ if [ -z " ${PAGESTUFF} " ]; then
27
+ PAGESTUFF=${TEMPDIR} /pagestuff
28
+ fi
29
+
30
+ if [ -z " ${CODESIGN_ALLOCATE} " ]; then
31
+ CODESIGN_ALLOCATE=${TEMPDIR} /codesign_allocate
32
+ fi
33
+
34
+ for i in ` find ${TEMPDIR} -name " *.sign" ` ; do
35
+ SIZE=` stat -c %s ${i} `
36
+ TARGET_FILE=` echo ${i} | sed ' s/\.sign$//' `
37
+
38
+ echo " Allocating space for the signature of size ${SIZE} in ${TARGET_FILE} "
39
+ ${CODESIGN_ALLOCATE} -i ${TARGET_FILE} -a ${ARCH} ${SIZE} -o ${i} .tmp
40
+
41
+ OFFSET=` ${PAGESTUFF} ${i} .tmp -p | tail -2 | grep offset | sed ' s/[^0-9]*//g' `
42
+ if [ -z ${QUIET} ]; then
43
+ echo " Attaching signature at offset ${OFFSET} "
44
+ fi
45
+
46
+ dd if=$i of=${i} .tmp bs=1 seek=${OFFSET} count=${SIZE} 2> /dev/null
47
+ mv ${i} .tmp ${TARGET_FILE}
48
+ rm ${i}
49
+ echo " Success."
50
+ done
51
+ mv ${TEMPDIR} /${ROOTDIR} ${OUTDIR}
52
+ rm -rf ${TEMPDIR}
53
+ echo " Signed: ${OUTDIR} "
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+ set -e
3
+
4
+ ROOTDIR=dist
5
+ BUNDLE=${ROOTDIR} /Bitcoin-Qt.app
6
+ CODESIGN=codesign
7
+ TEMPDIR=sign.temp
8
+ TEMPLIST=${TEMPDIR} /signatures.txt
9
+ OUT=signature.tar.gz
10
+
11
+ if [ ! -n " $1 " ]; then
12
+ echo " usage: $0 <codesign args>"
13
+ echo " example: $0 -s MyIdentity"
14
+ exit 1
15
+ fi
16
+
17
+ rm -rf ${TEMPDIR} ${TEMPLIST}
18
+ mkdir -p ${TEMPDIR}
19
+
20
+ ${CODESIGN} -f --file-list ${TEMPLIST} " $@ " " ${BUNDLE} "
21
+
22
+ for i in ` grep -v CodeResources ${TEMPLIST} ` ; do
23
+ TARGETFILE=" ${BUNDLE} /` echo ${i} | sed " s|.*${BUNDLE} /||" ` "
24
+ SIZE=` pagestuff $i -p | tail -2 | grep size | sed ' s/[^0-9]*//g' `
25
+ OFFSET=` pagestuff $i -p | tail -2 | grep offset | sed ' s/[^0-9]*//g' `
26
+ SIGNFILE=" ${TEMPDIR} /${TARGETFILE} .sign"
27
+ DIRNAME=" ` dirname ${SIGNFILE} ` "
28
+ mkdir -p " ${DIRNAME} "
29
+ echo " Adding detached signature for: ${TARGETFILE} . Size: ${SIZE} . Offset: ${OFFSET} "
30
+ dd if=$i of=${SIGNFILE} bs=1 skip=${OFFSET} count=${SIZE} 2> /dev/null
31
+ done
32
+
33
+ for i in ` grep CodeResources ${TEMPLIST} ` ; do
34
+ TARGETFILE=" ${BUNDLE} /` echo ${i} | sed " s|.*${BUNDLE} /||" ` "
35
+ RESOURCE=" ${TEMPDIR} /${TARGETFILE} "
36
+ DIRNAME=" ` dirname " ${RESOURCE} " ` "
37
+ mkdir -p " ${DIRNAME} "
38
+ echo " Adding resource for: " ${TARGETFILE} " "
39
+ cp " ${i} " " ${RESOURCE} "
40
+ done
41
+
42
+ rm ${TEMPLIST}
43
+
44
+ tar -C ${TEMPDIR} -czf ${OUT} .
45
+ rm -rf ${TEMPDIR}
46
+ echo " Created ${OUT} "
You can’t perform that action at this time.
0 commit comments