From 52bb7a7e1b69e7cc863621fb04958e0a39066138 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 25 Nov 2014 18:36:55 -0500 Subject: [PATCH 1/2] gitian: update descriptors to use a sane uniform output --- contrib/gitian-descriptors/gitian-linux.yml | 29 ++++++++++-------- contrib/gitian-descriptors/gitian-osx.yml | 29 +++++++++++------- contrib/gitian-descriptors/gitian-win.yml | 33 +++++++++++++-------- 3 files changed, 55 insertions(+), 36 deletions(-) diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index b57a04469..bba2104ed 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -73,13 +73,13 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - DISTNAME=`echo bitcoin-*.tar.gz` - + SOURCEDIST=`echo bitcoin-*.tar.gz` + DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp - tar xf ../$DISTNAME - find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$DISTNAME + tar xf ../$SOURCEDIST + find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -88,17 +88,22 @@ script: | export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH} mkdir -p distsrc-${i} cd distsrc-${i} - tar --strip-components=1 -xf ../$DISTNAME + INSTALLPATH=`pwd`/installed/${DISTNAME} + mkdir -p ${INSTALLPATH} + tar --strip-components=1 -xf ../$SOURCEDIST - ./configure --prefix=${BASEPREFIX}/${i} --bindir=${OUTDIR}/${i}/bin --includedir=${OUTDIR}/${i}/include --libdir=${OUTDIR}/${i}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} + ./configure --prefix=${BASEPREFIX}/${i} --bindir=${INSTALLPATH}/bin --includedir=${INSTALLPATH}/include --libdir=${INSTALLPATH}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} make ${MAKEOPTS} make install-strip - cd .. + cd installed + find . -name "lib*.la" -delete + find . -name "lib*.a" -delete + rm -rf ${DISTNAME}/lib/pkgconfig + find . | sort | tar --no-recursion -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz + cd ../../ done mkdir -p $OUTDIR/src - mv $DISTNAME $OUTDIR/src - mv ${OUTDIR}/x86_64-* ${OUTDIR}/64 - mv ${OUTDIR}/i686-* ${OUTDIR}/32 + mv $SOURCEDIST $OUTDIR/src + mv ${OUTDIR}/${DISTNAME}-x86_64-*.tar.gz ${OUTDIR}/${DISTNAME}-linux64.tar.gz + mv ${OUTDIR}/${DISTNAME}-i686-*.tar.gz ${OUTDIR}/${DISTNAME}-linux32.tar.gz - # Delete unwanted stuff - find ${OUTDIR} -name "lib*.la" -delete diff --git a/contrib/gitian-descriptors/gitian-osx.yml b/contrib/gitian-descriptors/gitian-osx.yml index 7ec0700ed..cbe28e4f3 100644 --- a/contrib/gitian-descriptors/gitian-osx.yml +++ b/contrib/gitian-descriptors/gitian-osx.yml @@ -83,13 +83,14 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - DISTNAME=`echo bitcoin-*.tar.gz` + SOURCEDIST=`echo bitcoin-*.tar.gz` + DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp - tar xf ../$DISTNAME - find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$DISTNAME + tar xf ../$SOURCEDIST + find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -98,17 +99,23 @@ script: | export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH} mkdir -p distsrc-${i} cd distsrc-${i} - tar --strip-components=1 -xf ../$DISTNAME + INSTALLPATH=`pwd`/installed/${DISTNAME} + mkdir -p ${INSTALLPATH} + tar --strip-components=1 -xf ../$SOURCEDIST - ./configure --prefix=${BASEPREFIX}/${i} --bindir=${OUTDIR}/${i}/bin --includedir=${OUTDIR}/${i}/include --libdir=${OUTDIR}/${i}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} + ./configure --prefix=${BASEPREFIX}/${i} --bindir=${INSTALLPATH}/bin --includedir=${INSTALLPATH}/include --libdir=${INSTALLPATH}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} make ${MAKEOPTS} make install-strip make deploy - ${WRAP_DIR}/dmg dmg Bitcoin-Qt.dmg ${OUTDIR}/Bitcoin-Qt.dmg - cd .. + ${WRAP_DIR}/dmg dmg Bitcoin-Qt.dmg ${OUTDIR}/${DISTNAME}-osx.dmg + + cd installed + find . -name "lib*.la" -delete + find . -name "lib*.a" -delete + rm -rf ${DISTNAME}/lib/pkgconfig + find . | sort | tar --no-recursion -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz + cd ../../ done mkdir -p $OUTDIR/src - mv $DISTNAME $OUTDIR/src - - # Delete unwanted stuff - find ${OUTDIR} -name "lib*.la" -delete + mv $SOURCEDIST $OUTDIR/src + mv ${OUTDIR}/${DISTNAME}-x86_64-*.tar.gz ${OUTDIR}/${DISTNAME}-osx64.tar.gz diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index 172807467..97c823cde 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -17,6 +17,7 @@ packages: - "mingw-w64" - "g++-mingw-w64" - "nsis" +- "zip" reference_datetime: "2013-06-01 00:00:00" remotes: - "url": "https://github.com/bitcoin/bitcoin.git" @@ -27,7 +28,7 @@ script: | HOSTS="x86_64-w64-mingw32 i686-w64-mingw32" CONFIGFLAGS="--enable-upnp-default" FAKETIME_HOST_PROGS="g++ ar ranlib nm windres strip" - FAKETIME_PROGS="date makensis" + FAKETIME_PROGS="date makensis zip" export QT_RCC_TEST=1 export GZIP="-9n" @@ -75,13 +76,14 @@ script: | ./autogen.sh ./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'` make dist - DISTNAME=`echo bitcoin-*.tar.gz` + SOURCEDIST=`echo bitcoin-*.tar.gz` + DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'` # Correct tar file order mkdir -p temp pushd temp - tar xf ../$DISTNAME - find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$DISTNAME + tar xf ../$SOURCEDIST + find bitcoin-* | sort | tar --no-recursion -c -T - | gzip -9n > ../$SOURCEDIST popd ORIGPATH="$PATH" @@ -90,19 +92,24 @@ script: | export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH} mkdir -p distsrc-${i} cd distsrc-${i} - tar --strip-components=1 -xf ../$DISTNAME + INSTALLPATH=`pwd`/installed/${DISTNAME} + mkdir -p ${INSTALLPATH} + tar --strip-components=1 -xf ../$SOURCEDIST - ./configure --prefix=${BASEPREFIX}/${i} --bindir=${OUTDIR}/${i}/bin --includedir=${OUTDIR}/${i}/include --libdir=${OUTDIR}/${i}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} + ./configure --prefix=${BASEPREFIX}/${i} --bindir=${INSTALLPATH}/bin --includedir=${INSTALLPATH}/include --libdir=${INSTALLPATH}/lib --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} make ${MAKEOPTS} make deploy make install-strip cp -f bitcoin-*setup*.exe $OUTDIR/ - cd .. + cd installed + mv ${DISTNAME}/bin/*.dll ${DISTNAME}/lib/ + find . -name "lib*.la" -delete + find . -name "lib*.a" -delete + rm -rf ${DISTNAME}/lib/pkgconfig + find . -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i}.zip + cd ../.. done mkdir -p $OUTDIR/src - mv $DISTNAME $OUTDIR/src - mv ${OUTDIR}/x86_64-* ${OUTDIR}/64 - mv ${OUTDIR}/i686-* ${OUTDIR}/32 - - # Delete unwanted stuff - find ${OUTDIR} -name "lib*.la" -delete + mv $SOURCEDIST $OUTDIR/src + mv ${OUTDIR}/${DISTNAME}-x86_64-*.zip ${OUTDIR}/${DISTNAME}-win64.zip + mv ${OUTDIR}/${DISTNAME}-i686-*.zip ${OUTDIR}/${DISTNAME}-win32.zip From dfef929bf7770176908164baf79a30285ad3ed74 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Tue, 25 Nov 2014 18:37:34 -0500 Subject: [PATCH 2/2] release: update docs to reflect new layout - Split linux32/linux64 releases - Split win32/win64 zips - Post-processing should no longer be required. The deterministic outputs are ready for consumption. --- doc/release-process.md | 46 +++++++++--------------------------------- 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/doc/release-process.md b/doc/release-process.md index c6a7266ef..df27c5829 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -54,48 +54,22 @@ Release Process ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml - pushd build/out - zip -r bitcoin-${VERSION}-linux-gitian.zip * - mv bitcoin-${VERSION}-linux-gitian.zip ../../../ - popd + mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../ ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml - pushd build/out - zip -r bitcoin-${VERSION}-win-gitian.zip * - mv bitcoin-${VERSION}-win-gitian.zip ../../../ - popd - ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml - ./bin/gsign --signer $SIGNER --release ${VERSION}-osx --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml - pushd build/out - mv Bitcoin-Qt.dmg ../../../ - popd + mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../ + ./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml + ./bin/gsign --signer $SIGNER --release ${VERSION}-osx --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml + mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../ popd Build output expected: - 1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip) - 2. windows 32-bit and 64-bit binaries + installer + source (bitcoin-${VERSION}-win-gitian.zip) - 3. OSX installer (Bitcoin-Qt.dmg) - 4. Gitian signatures (in gitian.sigs/${VERSION}-/(your gitian key)/ - -repackage gitian builds for release as stand-alone zip/tar/installer exe - -**Linux .tar.gz:** - - unzip bitcoin-${VERSION}-linux-gitian.zip -d bitcoin-${VERSION}-linux - tar czvf bitcoin-${VERSION}-linux.tar.gz bitcoin-${VERSION}-linux - rm -rf bitcoin-${VERSION}-linux - -**Windows .zip and setup.exe:** - - unzip bitcoin-${VERSION}-win-gitian.zip -d bitcoin-${VERSION}-win - mv bitcoin-${VERSION}-win/bitcoin-*-setup.exe . - zip -r bitcoin-${VERSION}-win.zip bitcoin-${VERSION}-win - rm -rf bitcoin-${VERSION}-win - -**Mac OS X .dmg:** - - mv Bitcoin-Qt.dmg bitcoin-${VERSION}-osx.dmg + 1. source tarball (bitcoin-${VERSION}.tar.gz) + 2. linux 32-bit and 64-bit binaries dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz) + 3. windows 32-bit and 64-bit installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup.exe, bitcoin-${VERSION}-win[32|64].zip) + 4. OSX installer (bitcoin-${VERSION}-osx.dmg) + 5. Gitian signatures (in gitian.sigs/${VERSION}-/(your gitian key)/ ###Next steps: