49e1501b5d
It could just as well be on either part of the gitian build, but to safely put it on the Qt side would require bumping the filename, and every gitian user rebuilding it. v0.5.3.1 put it on the Bitcoin side, and this is easier to work with and keep safe, so I'm moving it. Use `qmake MINGW_THREAD_BUGFIX=0` to disable
55 lines
3.2 KiB
YAML
55 lines
3.2 KiB
YAML
---
|
|
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/$TODAY/2011-01-30/' -i configure
|
|
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/ -frandom-seed=qtbuild|' -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
|
|
# ar adds timestamps to every object file included in the static library
|
|
# providing -D as ar argument is supposed to solve it, but doesn't work as qmake strips off the arguments and adds -M to pass a script...
|
|
# which somehow cannot be combined with other flags.
|
|
# use faketime only for ar, as it confuses make/qmake into hanging sometimes
|
|
sed --posix "s|QMAKE_LIB\t\t= i586-mingw32msvc-ar -ru|QMAKE_LIB\t\t= $HOME/ar -Dr|" -i mkspecs/unsupported/win32-g++-cross/qmake.conf
|
|
echo '#!/bin/bash' > $HOME/ar
|
|
echo 'export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1' >> $HOME/ar
|
|
echo 'i586-mingw32msvc-ar "$@"' >> $HOME/ar
|
|
chmod +x $HOME/ar
|
|
#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 -no-declarative -no-script -no-scripttools -no-javascript-jit -no-webkit -no-svg -no-xmlpatterns -no-sql-sqlite -no-nis -no-cups -no-iconv -no-dbus -no-gif -no-libtiff -opengl no -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
|
|
|
|
# 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.7.4-gitian.zip *
|