diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/gitian-descriptors/README | 31 | ||||
-rw-r--r-- | contrib/gitian-descriptors/gitian-win32.yml | 38 | ||||
-rw-r--r-- | contrib/gitian-descriptors/gitian.yml | 35 | ||||
-rw-r--r-- | contrib/gitian-descriptors/qt-win32.yml | 41 | ||||
-rw-r--r-- | contrib/gitian-descriptors/wxwidgets-win32.yml | 40 | ||||
-rw-r--r-- | contrib/gitian-descriptors/wxwidgets.yml | 42 |
6 files changed, 101 insertions, 126 deletions
diff --git a/contrib/gitian-descriptors/README b/contrib/gitian-descriptors/README new file mode 100644 index 0000000000..a2d902e210 --- /dev/null +++ b/contrib/gitian-descriptors/README @@ -0,0 +1,31 @@ +Gavin's notes on getting gitian builds up and running: + +You need the right hardware: you need a 64-bit-capable CPU with hardware virtualization support (Intel VT-x or AMD-V). Not all modern CPUs support hardware virtualization. + +You probably need to enable hardware virtualization in your machine's BIOS. + +You need to be running a recent version of 64-bit-Ubuntu, and you need to install several prerequisites: + sudo apt-get install apache2 git apt-cacher-ng python-vm-builder qemu-kvm + +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 + wget 'http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.6.tar.gz' -O gitian-builder/inputs/miniupnpc-1.6.tar.gz + + cd gitian-builder + bin/make-base-vm --arch i386 + bin/make-base-vm --arch amd64 + cd .. + + # To build + cd bitcoin + git pull + cd ../gitian-builder + git pull + ./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian.yml diff --git a/contrib/gitian-descriptors/gitian-win32.yml b/contrib/gitian-descriptors/gitian-win32.yml index 52b10bc33f..4e224ce135 100644 --- a/contrib/gitian-descriptors/gitian-win32.yml +++ b/contrib/gitian-descriptors/gitian-win32.yml @@ -16,26 +16,18 @@ remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" files: -- "wxwidgets-win32-2.9.2-gitian.zip" +- "qt-win32-4.7.4-gitian.zip" - "boost-win32-1.47.0-gitian.zip" -- "openssl-1.0.0d.tar.gz" +- "openssl-1.0.0e.tar.gz" - "db-4.8.30.NC.tar.gz" - "miniupnpc-1.6.tar.gz" script: | # - mkdir wxWidgets-2.9.2 - cd wxWidgets-2.9.2 - mkdir lib - unzip ../wxwidgets-win32-2.9.2-gitian.zip - cd bin/$GBUILD_BITS - for lib in wx_mswu; do - i586-mingw32msvc-ar rc ../../lib/lib${lib}-2.9-i586-mingw32msvc.a $lib/*.o - i586-mingw32msvc-ranlib ../../lib/lib${lib}-2.9-i586-mingw32msvc.a - done - cp -a wx ../../lib - cd ../.. - mv include/wx-2.9/wx include - cd .. + mkdir $HOME/qt + cd $HOME/qt + unzip ../build/qt-win32-4.7.4-gitian.zip + cd $HOME/build/ + export PATH=$PATH:$HOME/qt/bin/ # mkdir boost_1_47_0 cd boost_1_47_0 @@ -50,8 +42,8 @@ script: | mv include/boost . cd .. # - tar xzf openssl-1.0.0d.tar.gz - cd openssl-1.0.0d + tar xzf openssl-1.0.0e.tar.gz + cd openssl-1.0.0e ./Configure --cross-compile-prefix=i586-mingw32msvc- mingw make cd .. @@ -74,19 +66,23 @@ script: | mkdir -p $OUTDIR/src cp -a . $OUTDIR/src rm -rf $OUTDIR/src/.git - cp -a $OUTDIR/src/locale $OUTDIR cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt cp $OUTDIR/src/COPYING $OUTDIR/license.txt + export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 + export FAKETIME=$REFERENCE_DATETIME + export TZ=UTC + $HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_47_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_47_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.0e OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.0e/include INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin QMAKE_LFLAGS=-frandom-seed=bitcoin + make $MAKEOPTS + cp release/bitcoin-qt.exe $OUTDIR/ + # cd src sed 's/$(DEBUGFLAGS)/-frandom-seed=bitcoin/' -i makefile.linux-mingw export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME export TZ=UTC - make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoin.exe USE_UPNP=1 make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0 - i586-mingw32msvc-strip bitcoin.exe i586-mingw32msvc-strip bitcoind.exe makensis ../share/setup.nsi - cp bitcoin.exe ../share/bitcoin-*-win32-setup.exe $OUTDIR/ + cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/ mkdir $OUTDIR/daemon cp bitcoind.exe $OUTDIR/daemon diff --git a/contrib/gitian-descriptors/gitian.yml b/contrib/gitian-descriptors/gitian.yml index 7e0d174810..4e1da912d9 100644 --- a/contrib/gitian-descriptors/gitian.yml +++ b/contrib/gitian-descriptors/gitian.yml @@ -7,9 +7,12 @@ architectures: - "amd64" packages: - "libdb4.8++-dev" -- "libxxf86vm-dev" -- "libgtk2.0-dev" -- "libboost-all-dev" +- "qt4-qmake" +- "libqt4-dev" +- "libboost-system-dev" +- "libboost-filesystem-dev" +- "libboost-program-options-dev" +- "libboost-thread-dev" - "libssl-dev" - "git-core" - "unzip" @@ -18,8 +21,6 @@ remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" files: -- "wxWidgets-2.9.2-x64-gitian.zip" -- "wxWidgets-2.9.2-x32-gitian.zip" - "miniupnpc-1.6.tar.gz" script: | INSTDIR="$HOME/install" @@ -30,30 +31,18 @@ script: | INSTALLPREFIX=$INSTDIR make $MAKEOPTS install cd .. # - mkdir -p $INSTDIR/bin $INSTDIR/lib/wx $INSTDIR/include - mkdir wxWidgets-2.9.2 - cd wxWidgets-2.9.2 - unzip ../wxWidgets-2.9.2-x32-gitian.zip - unzip -o ../wxWidgets-2.9.2-x64-gitian.zip - cp -a bin/$GBUILD_BITS/wx/config/gtk2-unicode-static-2.9 $INSTDIR/bin/wx-config - for lib in wx_gtk2u wxregexu wxtiff; do - ar rc $INSTDIR/lib/lib${lib}-2.9.a bin/$GBUILD_BITS/$lib/*.o - ranlib $INSTDIR/lib/lib${lib}-2.9.a - done - cp -a include/wx-2.9/* $INSTDIR/include - cp -a bin/$GBUILD_BITS/wx/include $INSTDIR/lib/wx - cd .. - # cd bitcoin mkdir -p $OUTDIR/src cp -a . $OUTDIR/src rm -rf $OUTDIR/src/.git - mv $OUTDIR/src/locale $OUTDIR cp $OUTDIR/src/doc/README $OUTDIR cp $OUTDIR/src/COPYING $OUTDIR cd src sed 's/$(DEBUGFLAGS)//' -i makefile.unix - PATH=$INSTDIR/bin:$PATH make -f makefile.unix STATIC=1 CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoin USE_UPNP=1 - PATH=$INSTDIR/bin:$PATH make -f makefile.unix STATIC=1 CXX="g++ -I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0 + make -f makefile.unix STATIC=1 DEFS="-I$INSTDIR/include -L$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0 mkdir -p $OUTDIR/bin/$GBUILD_BITS - install -s bitcoin bitcoind $OUTDIR/bin/$GBUILD_BITS + install -s bitcoind $OUTDIR/bin/$GBUILD_BITS + cd .. + qmake INCLUDEPATH="$INSTDIR/include" LIBS="-L$INSTDIR/lib" + make $MAKEOPTS + install bitcoin-qt $OUTDIR/bin/$GBUILD_BITS diff --git a/contrib/gitian-descriptors/qt-win32.yml b/contrib/gitian-descriptors/qt-win32.yml new file mode 100644 index 0000000000..05f81dee66 --- /dev/null +++ b/contrib/gitian-descriptors/qt-win32.yml @@ -0,0 +1,41 @@ +--- +name: "qt" +suites: +- "lucid" +architectures: +- "i386" +packages: +- "mingw32" +- "zip" +- "faketime" +reference_datetime: "2011-01-30 00:00:00" +remotes: [] +files: +- "qt-everywhere-opensource-src-4.7.4.tar.gz" +script: | + INSTDIR="$HOME/qt/" + mkdir $INSTDIR + SRCDIR="$INSTDIR/src/" + mkdir $SRCDIR + # + tar xzf qt-everywhere-opensource-src-4.7.4.tar.gz + cd qt-everywhere-opensource-src-4.7.4 + sed 's/i686-pc-mingw32-/i586-mingw32msvc-/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + sed --posix 's|QMAKE_CFLAGS\t\t= -pipe|QMAKE_CFLAGS\t\t= -pipe -isystem /usr/i586-mingw32msvc/include/|' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + sed 's/QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads/QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + sed 's/QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads/QMAKE_LFLAGS_EXCEPTIONS_ON = -lmingwthrd/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + sed --posix 's/QMAKE_MOC\t\t= i586-mingw32msvc-moc/QMAKE_MOC\t\t= moc/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + sed --posix 's/QMAKE_RCC\t\t= i586-mingw32msvc-rcc/QMAKE_RCC\t\t= rcc/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + sed --posix 's/QMAKE_UIC\t\t= i586-mingw32msvc-uic/QMAKE_UIC\t\t= uic/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf + export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 + export FAKETIME=$REFERENCE_DATETIME + export TZ=UTC + ./configure -prefix $INSTDIR -confirm-license -release -opensource -static -no-qt3support -xplatform unsupported/win32-g++-cross -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -nomake examples -nomake demos -nomake docs + find . -name *.prl | xargs -l sed 's|/\.||' -i + find . -name *.prl | xargs -l sed 's|/$||' -i + make $MAKEOPTS install + cp -a bin $SRCDIR/ + cd $INSTDIR + find . -name *.prl | xargs -l sed 's|/$||' -i + sed 's|QMAKE_PRL_LIBS.*|QMAKE_PRL_LIBS = -lQtDeclarative -lQtScript -lQtSvg -lQtSql -lQtXmlPatterns -lQtGui -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtNetwork -lQtCore -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32|' -i imports/Qt/labs/particles/qmlparticlesplugin.prl + zip -r $OUTDIR/qt-win32-4.7.4-gitian.zip * diff --git a/contrib/gitian-descriptors/wxwidgets-win32.yml b/contrib/gitian-descriptors/wxwidgets-win32.yml deleted file mode 100644 index 3d49d7b35e..0000000000 --- a/contrib/gitian-descriptors/wxwidgets-win32.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: "wxwidgets" -suites: -- "lucid" -architectures: -- "i386" -packages: -- "mingw32" -- "faketime" -- "zip" -reference_datetime: "2011-01-30 00:00:00" -remotes: [] -files: -- "wxWidgets-2.9.2.tar.bz2" -script: | - INSTDIR="$HOME/install" - TMPDIR="$HOME/tmpdir" - export LIBRARY_PATH="$INSTDIR/lib" - # - tar xjf wxWidgets-2.9.2.tar.bz2 - cd wxWidgets-2.9.2 - CXXFLAGS=-frandom-seed=wx1 ./configure --host=i586-mingw32msvc --build=i686-linux --prefix=$INSTDIR --disable-shared --enable-monolithic --without-libpng --disable-svg - perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h - make $MAKEOPTS install - mkdir $TMPDIR - cd $TMPDIR - cp -af $INSTDIR/include . - mkdir -p $TMPDIR/bin/$GBUILD_BITS - cd $TMPDIR/bin/$GBUILD_BITS - cp -af $INSTDIR/lib/wx . - for lib in wx_mswu; do - mkdir $lib - (cd $lib ; ar xf $INSTDIR/lib/lib${lib}-2.9-i586-mingw32msvc.a) - done - chmod -R +w $TMPDIR - cd $TMPDIR - export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 - export FAKETIME=$REFERENCE_DATETIME - zip -r wxwidgets-win32-2.9.2-gitian.zip * - cp wxwidgets-win32-2.9.2-gitian.zip $OUTDIR diff --git a/contrib/gitian-descriptors/wxwidgets.yml b/contrib/gitian-descriptors/wxwidgets.yml deleted file mode 100644 index 0509615101..0000000000 --- a/contrib/gitian-descriptors/wxwidgets.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: "wxwidgets" -suites: -- "lucid" -architectures: -- "i386" -- "amd64" -packages: -- "libxxf86vm-dev" -- "libgtk2.0-dev" -- "faketime" -- "zip" -reference_datetime: "2011-01-30 00:00:00" -remotes: [] -files: -- "wxWidgets-2.9.2.tar.bz2" -script: | - INSTDIR="$HOME/install" - TMPDIR="$HOME/tmpdir" - export LIBRARY_PATH="$INSTDIR/lib" - # - tar xjf wxWidgets-2.9.2.tar.bz2 - cd wxWidgets-2.9.2 - ./configure --prefix=$INSTDIR --enable-monolithic --disable-shared - perl -i -p -e "s/__TIME__/\"$REFERENCE_TIME\"/;s/__DATE__/\"$REFERENCE_DATE\"/" include/wx/chartype.h - make $MAKEOPTS install - mkdir $TMPDIR - cd $TMPDIR - cp -af $INSTDIR/include . - mkdir -p $TMPDIR/bin/$GBUILD_BITS - cd $TMPDIR/bin/$GBUILD_BITS - cp -af $INSTDIR/lib/wx . - for lib in wxtiff wxregexu wx_gtk2u; do - mkdir $lib - (cd $lib ; ar xf $INSTDIR/lib/lib${lib}-2.9.a) - done - chmod -R +w $TMPDIR - cd $TMPDIR - export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 - export FAKETIME=$REFERENCE_DATETIME - zip -r wxWidgets-2.9.2-x$GBUILD_BITS-gitian.zip * - cp wxWidgets-2.9.2-x$GBUILD_BITS-gitian.zip $OUTDIR |