From 41fa6245259bb1edc226c9b49b548d23a6627fc1 Mon Sep 17 00:00:00 2001 From: Warren Togami Date: Tue, 8 Apr 2014 23:06:33 -1000 Subject: [PATCH] Litecoin: Upgrade openssl, qt, miniupnpc, zlib, libpng, qrencode --- contrib/gitian-descriptors/README | 45 +---------- contrib/gitian-descriptors/deps-win32.yml | 42 +++++----- contrib/gitian-descriptors/gitian-win32.yml | 8 +- contrib/gitian-descriptors/gitian.yml | 16 ++-- contrib/gitian-descriptors/qt-win32.yml | 14 ++-- doc/release-process.md | 85 ++++++--------------- 6 files changed, 74 insertions(+), 136 deletions(-) diff --git a/contrib/gitian-descriptors/README b/contrib/gitian-descriptors/README index 0cfc29561..a61219267 100644 --- a/contrib/gitian-descriptors/README +++ b/contrib/gitian-descriptors/README @@ -1,4 +1,8 @@ +Refer to doc/release-notes.md for directions on obtaining inputs/ and using gitian to build Litecoin. +================================================================ + Gavin's notes on getting gitian builds up and running using KVM: +----------------------------------------------- These instructions distilled from: https://help.ubuntu.com/community/KVM/Installation @@ -15,47 +19,6 @@ Sanity checks: sudo service apt-cacher-ng status # Should return apt-cacher-ng is running ls -l /dev/kvm # Should show a /dev/kvm device - -Once you've got the right hardware and software: - - git clone git://github.com/bitcoin/bitcoin.git - git clone git://github.com/devrandom/gitian-builder.git - mkdir gitian-builder/inputs - cd gitian-builder/inputs - # Inputs for Linux and Win32: - wget -O miniupnpc-1.6.tar.gz 'http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.6.tar.gz' - wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2' - # Inputs for Win32: (Linux has packages for these) - wget 'https://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2' - wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz' - wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' - wget 'https://downloads.sourceforge.net/project/libpng/zlib/1.2.6/zlib-1.2.6.tar.gz' - wget 'https://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.9/libpng-1.5.9.tar.gz' - wget 'https://download.qt-project.org/archive/qt/4.8/4.8.3/qt-everywhere-opensource-src-4.8.3.tar.gz' - cd ../.. - - cd gitian-builder - bin/make-base-vm --arch i386 - bin/make-base-vm --arch amd64 - cd .. - - # Build Linux release: - cd bitcoin - git pull - cd ../gitian-builder - git pull - ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/gitian.yml - - # Build Win32 dependencies: (only needs to be done once, or when dependency versions change) - ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/boost-win32.yml - ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/deps-win32.yml - ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/qt-win32.yml - - # Build Win32 release: - ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml - ---------------------- - gitian-builder now also supports building using LXC. See https://help.ubuntu.com/12.04/serverguide/lxc.html ... for how to get LXC up and running under Ubuntu. diff --git a/contrib/gitian-descriptors/deps-win32.yml b/contrib/gitian-descriptors/deps-win32.yml index 7ad00fcb0..5685e5e24 100644 --- a/contrib/gitian-descriptors/deps-win32.yml +++ b/contrib/gitian-descriptors/deps-win32.yml @@ -14,12 +14,12 @@ packages: reference_datetime: "2011-01-30 00:00:00" remotes: [] files: -- "openssl-1.0.1c.tar.gz" +- "openssl-1.0.1g.tar.gz" - "db-4.8.30.NC.tar.gz" -- "miniupnpc-1.6.tar.gz" -- "zlib-1.2.6.tar.gz" -- "libpng-1.5.9.tar.gz" -- "qrencode-3.2.0.tar.bz2" +- "miniupnpc-1.9.20140401.tar.gz" +- "zlib-1.2.8.tar.gz" +- "libpng-1.6.8.tar.gz" +- "qrencode-3.4.3.tar.bz2" script: | # export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 @@ -27,11 +27,19 @@ script: | export TZ=UTC export INSTALLPREFIX=$OUTDIR/staging/deps export HOST=i686-w64-mingw32 + # Integrity Check + echo "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028 openssl-1.0.1g.tar.gz" | sha256sum -c + echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c + echo "d02670112125300f7a3d61421714d99105edd90190bf12542d16785f16f017aa miniupnpc-1.9.20140401.tar.gz" | sha256sum -c + echo "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d zlib-1.2.8.tar.gz" | sha256sum -c + echo "32c7acf1608b9c8b71b743b9780adb7a7b347563dbfb4a5263761056da44cc96 libpng-1.6.8.tar.gz" | sha256sum -c + echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c + # mkdir -p $INSTALLPREFIX - tar xzf openssl-1.0.1c.tar.gz - cd openssl-1.0.1c + tar xzf openssl-1.0.1g.tar.gz + cd openssl-1.0.1g ./Configure --cross-compile-prefix=$HOST- mingw --openssldir=$INSTALLPREFIX make make install_sw @@ -44,8 +52,8 @@ script: | make install_lib install_include cd ../.. # - tar xzf miniupnpc-1.6.tar.gz - cd miniupnpc-1.6 + tar xzf miniupnpc-1.9.20140401.tar.gz + cd miniupnpc-1.9.20140401 echo " --- miniupnpc-1.6/Makefile.mingw.orig 2013-09-29 18:52:51.014087958 -1000 +++ miniupnpc-1.6/Makefile.mingw 2013-09-29 19:09:29.663318691 -1000 @@ -68,26 +76,26 @@ script: | install libminiupnpc.a $INSTALLPREFIX/lib cd .. # - tar xzf zlib-1.2.6.tar.gz - cd zlib-1.2.6 + tar xzf zlib-1.2.8.tar.gz + cd zlib-1.2.8 CROSS_PREFIX=$HOST- ./configure --prefix=$INSTALLPREFIX --static make make install cd .. # - tar xzf libpng-1.5.9.tar.gz - cd libpng-1.5.9 - CFLAGS="-I$INSTALLPREFIX/include" LDFLAGS="-L$INSTALLPREFIX/lib" ./configure --disable-shared --prefix=$INSTALLPREFIX --host=$HOST + tar xzf libpng-1.6.8.tar.gz + cd libpng-1.6.8 + CPPFLAGS="-I$INSTALLPREFIX/include" LDFLAGS="-L$INSTALLPREFIX/lib" ./configure --disable-shared --prefix=$INSTALLPREFIX --host=$HOST make $MAKEOPTS make install cd .. # - tar xjf qrencode-3.2.0.tar.bz2 - cd qrencode-3.2.0 + tar xjf qrencode-3.4.3.tar.bz2 + cd qrencode-3.4.3 png_CFLAGS="-I$INSTALLPREFIX/include" png_LIBS="-L$INSTALLPREFIX/lib -lpng" ./configure --prefix=$INSTALLPREFIX --host=$HOST make make install cd .. # cd $INSTALLPREFIX - zip -r $OUTDIR/bitcoin-deps-win32-gitian-r9.zip include lib + zip -r $OUTDIR/bitcoin08-deps-win32-gitian-r10.zip include lib diff --git a/contrib/gitian-descriptors/gitian-win32.yml b/contrib/gitian-descriptors/gitian-win32.yml index ba68d0a51..721b51e1c 100644 --- a/contrib/gitian-descriptors/gitian-win32.yml +++ b/contrib/gitian-descriptors/gitian-win32.yml @@ -16,9 +16,9 @@ remotes: - "url": "https://github.com/litecoin-project/litecoin.git" "dir": "litecoin" files: -- "qt-win32-4.8.3-gitian-r4.zip" +- "qt-win32-4.8.5-gitian-r5.zip" - "boost-win32-1.55.0-gitian-r6.zip" -- "bitcoin-deps-win32-gitian-r9.zip" +- "bitcoin08-deps-win32-gitian-r10.zip" script: | # STAGING=$HOME/staging @@ -26,9 +26,9 @@ script: | # mkdir -p $STAGING cd $STAGING - unzip ../build/qt-win32-4.8.3-gitian-r4.zip + unzip ../build/qt-win32-4.8.5-gitian-r5.zip unzip ../build/boost-win32-1.55.0-gitian-r6.zip - unzip ../build/bitcoin-deps-win32-gitian-r9.zip + unzip ../build/bitcoin08-deps-win32-gitian-r10.zip cd $HOME/build/ # cd litecoin diff --git a/contrib/gitian-descriptors/gitian.yml b/contrib/gitian-descriptors/gitian.yml index dc56f0d5b..ff9ae4641 100644 --- a/contrib/gitian-descriptors/gitian.yml +++ b/contrib/gitian-descriptors/gitian.yml @@ -23,19 +23,23 @@ remotes: - "url": "https://github.com/litecoin-project/litecoin.git" "dir": "litecoin" files: -- "miniupnpc-1.6.tar.gz" -- "qrencode-3.2.0.tar.bz2" +- "miniupnpc-1.9.20140401.tar.gz" +- "qrencode-3.4.3.tar.bz2" script: | INSTDIR="$HOME/install" export LIBRARY_PATH="$INSTDIR/lib" + # Integrity Check + echo "d02670112125300f7a3d61421714d99105edd90190bf12542d16785f16f017aa miniupnpc-1.9.20140401.tar.gz" | sha256sum -c + echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c + # - tar xzf miniupnpc-1.6.tar.gz - cd miniupnpc-1.6 + tar xzf miniupnpc-1.9.20140401.tar.gz + cd miniupnpc-1.9.20140401 INSTALLPREFIX=$INSTDIR make $MAKEOPTS install cd .. # - tar xjf qrencode-3.2.0.tar.bz2 - cd qrencode-3.2.0 + tar xjf qrencode-3.4.3.tar.bz2 + cd qrencode-3.4.3 ./configure --prefix=$INSTDIR --enable-static --disable-shared make $MAKEOPTS install cd .. diff --git a/contrib/gitian-descriptors/qt-win32.yml b/contrib/gitian-descriptors/qt-win32.yml index 0615340e2..ca2754233 100644 --- a/contrib/gitian-descriptors/qt-win32.yml +++ b/contrib/gitian-descriptors/qt-win32.yml @@ -13,22 +13,24 @@ packages: reference_datetime: "2011-01-30 00:00:00" remotes: [] files: -- "qt-everywhere-opensource-src-4.8.3.tar.gz" -- "bitcoin-deps-win32-gitian-r9.zip" +- "qt-everywhere-opensource-src-4.8.5.tar.gz" +- "bitcoin08-deps-win32-gitian-r10.zip" script: | # HOST=i686-w64-mingw32 INSTDIR="$HOME/qt/" + # Integrity Check + echo "eb728f8268831dc4373be6403b7dd5d5dde03c169ad6882f9a8cb560df6aa138 qt-everywhere-opensource-src-4.8.5.tar.gz" | sha256sum -c # mkdir $INSTDIR mkdir -p $INSTDIR/host/bin # # Need mingw-compiled openssl from bitcoin-deps: - unzip bitcoin-deps-win32-gitian-r9.zip + unzip bitcoin08-deps-win32-gitian-r10.zip DEPSDIR=`pwd` # - tar xzf qt-everywhere-opensource-src-4.8.3.tar.gz - cd qt-everywhere-opensource-src-4.8.3 + tar xzf qt-everywhere-opensource-src-4.8.5.tar.gz + cd qt-everywhere-opensource-src-4.8.5 sed 's/$TODAY/2011-01-30/' -i configure sed "s/i686-pc-mingw32-/$HOST-/" -i mkspecs/unsupported/win32-g++-cross/qmake.conf sed --posix "s|QMAKE_CFLAGS\t\t= -pipe|QMAKE_CFLAGS\t\t= -pipe -isystem /usr/$HOST/include/ -frandom-seed=qtbuild|" -i mkspecs/unsupported/win32-g++-cross/qmake.conf @@ -59,4 +61,4 @@ script: | # as zip stores file timestamps, use faketime to intercept stat calls to set dates for all files to reference date export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 - zip -r $OUTDIR/qt-win32-4.8.3-gitian-r4.zip * + zip -r $OUTDIR/qt-win32-4.8.5-gitian-r5.zip * diff --git a/doc/release-process.md b/doc/release-process.md index 20784acd6..04edaf818 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -6,7 +6,7 @@ Release Process ###update (commit) version in sources - litecoin-qt.pro + bitcoin-qt.pro contrib/verifysfbinaries/verify.sh doc/README* share/setup.nsi @@ -14,7 +14,7 @@ Release Process ###tag version in git - git tag -s v0.8.0 + git tag -s v0.8.7 ###write release notes. git shortlog helps a lot, for example: @@ -27,41 +27,41 @@ Release Process From a directory containing the litecoin source, gitian-builder and gitian.sigs export SIGNER=(your gitian key, ie bluematt, sipa, etc) - export VERSION=0.8.0 + export VERSION=0.8.7 cd ./gitian-builder Fetch and build inputs: (first time, or when dependency versions change) mkdir -p inputs; cd inputs/ - wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.6.tar.gz' -O miniupnpc-1.6.tar.gz - wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz' + wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.9.20140401.tar.gz' -O miniupnpc-1.9.20140401.tar.gz' + wget 'http://www.openssl.org/source/openssl-1.0.1g.tar.gz' wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' - wget 'http://zlib.net/zlib-1.2.6.tar.gz' - wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz' - wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2' - wget 'http://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2' - wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz' + wget 'http://zlib.net/zlib-1.2.8.tar.gz' + wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/history/libpng16/libpng-1.6.8.tar.gz' + wget 'http://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.bz2' + wget 'http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2' + wget 'http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz' cd .. ./bin/gbuild ../litecoin/contrib/gitian-descriptors/boost-win32.yml - mv build/out/boost-win32-1.50.0-gitian2.zip inputs/ - ./bin/gbuild ../litecoin/contrib/gitian-descriptors/qt-win32.yml - mv build/out/qt-win32-4.8.3-gitian-r1.zip inputs/ + mv build/out/boost-*.zip inputs/ ./bin/gbuild ../litecoin/contrib/gitian-descriptors/deps-win32.yml - mv build/out/litecoin-deps-0.0.5.zip inputs/ + mv build/out/bitcoin*.zip inputs/ + ./bin/gbuild ../litecoin/contrib/gitian-descriptors/qt-win32.yml + mv build/out/qt*.zip inputs/ Build litecoind and litecoin-qt on Linux32, Linux64, and Win32: ./bin/gbuild --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian.yml ./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../litecoin/contrib/gitian-descriptors/gitian.yml pushd build/out - zip -r litecoin-${VERSION}-linux-gitian.zip * - mv litecoin-${VERSION}-linux-gitian.zip ../../ + zip -r litecoin-${VERSION}-linux.zip * + mv litecoin-${VERSION}-linux.zip ../../ popd ./bin/gbuild --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-win32.yml ./bin/gsign --signer $SIGNER --release ${VERSION}-win32 --destination ../gitian.sigs/ ../litecoin/contrib/gitian-descriptors/gitian-win32.yml pushd build/out - zip -r litecoin-${VERSION}-win32-gitian.zip * - mv litecoin-${VERSION}-win32-gitian.zip ../../ + zip -r litecoin-${VERSION}-win32.zip * + mv litecoin-${VERSION}-win32.zip ../../ popd Build output expected: @@ -87,26 +87,23 @@ repackage gitian builds for release as stand-alone zip/tar/installer exe **Perform Mac build:** - OSX binaries are created by Gavin Andresen on a 32-bit, OSX 10.6 machine. + OSX binaries are created on a dedicated 32-bit, OSX 10.6.8 machine. + Litecoin 0.8.x is built with MacPorts. 0.9.x will be Homebrew only. - qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 litecoin-qt.pro + qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 make export QTDIR=/opt/local/share/qt4 # needed to find translations/qt_*.qm files T=$(contrib/qt_translations.py $QTDIR/translations src/qt/locale) python2.7 share/qt/clean_mac_info_plist.py - python2.7 contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist + python2.7 contrib/macdeploy/macdeployqtplus Litecoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist - Build output expected: Bitcoin-Qt.dmg + Build output expected: Litecoin-Qt.dmg ###Next steps: * Code-sign Windows -setup.exe (in a Windows virtual machine) and OSX Bitcoin-Qt.app (Note: only Gavin has the code-signing keys currently) -* upload builds to SourceForge - -* create SHA256SUMS for builds, and PGP-sign it - * update litecoin.org version make sure all OS download links go to the right versions @@ -114,8 +111,6 @@ repackage gitian builds for release as stand-alone zip/tar/installer exe * update wiki download links -* update wiki changelog: [https://en.litecoin.it/wiki/Changelog](https://en.bitcoin.it/wiki/Changelog) - Commit your signature to gitian.sigs: pushd gitian.sigs @@ -125,37 +120,3 @@ Commit your signature to gitian.sigs: git push # Assuming you can push to the gitian.sigs tree popd -------------------------------------------------------------------------- - -### After 3 or more people have gitian-built, repackage gitian-signed zips: - -From a directory containing litecoin source, gitian.sigs and gitian zips - - export VERSION=0.5.1 - mkdir litecoin-${VERSION}-linux-gitian - pushd litecoin-${VERSION}-linux-gitian - unzip ../litecoin-${VERSION}-linux-gitian.zip - mkdir gitian - cp ../litecoin/contrib/gitian-downloader/*.pgp ./gitian/ - for signer in $(ls ../gitian.sigs/${VERSION}/); do - cp ../gitian.sigs/${VERSION}/${signer}/litecoin-build.assert ./gitian/${signer}-build.assert - cp ../gitian.sigs/${VERSION}/${signer}/litecoin-build.assert.sig ./gitian/${signer}-build.assert.sig - done - zip -r litecoin-${VERSION}-linux-gitian.zip * - cp litecoin-${VERSION}-linux-gitian.zip ../ - popd - mkdir litecoin-${VERSION}-win32-gitian - pushd litecoin-${VERSION}-win32-gitian - unzip ../litecoin-${VERSION}-win32-gitian.zip - mkdir gitian - cp ../litecoin/contrib/gitian-downloader/*.pgp ./gitian/ - for signer in $(ls ../gitian.sigs/${VERSION}-win32/); do - cp ../gitian.sigs/${VERSION}-win32/${signer}/litecoin-build.assert ./gitian/${signer}-build.assert - cp ../gitian.sigs/${VERSION}-win32/${signer}/litecoin-build.assert.sig ./gitian/${signer}-build.assert.sig - done - zip -r litecoin-${VERSION}-win32-gitian.zip * - cp litecoin-${VERSION}-win32-gitian.zip ../ - popd - -- Upload gitian zips to SourceForge -- Celebrate