You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
264 lines
8.4 KiB
264 lines
8.4 KiB
--- |
|
name: "qt-linux" |
|
suites: |
|
- "precise" |
|
architectures: |
|
- "i386" |
|
- "amd64" |
|
packages: |
|
- "zip" |
|
- "unzip" |
|
- "faketime" |
|
- "unzip" |
|
- "libxext-dev" |
|
reference_datetime: "2011-01-30 00:00:00" |
|
remotes: [] |
|
files: |
|
- "qt-everywhere-opensource-src-4.6.4.tar.gz" |
|
script: | |
|
export FAKETIME=$REFERENCE_DATETIME |
|
export TZ=UTC |
|
if [ "x$GBUILD_BITS" = "x32" ]; then |
|
ARCH='i386-linux-gnu' |
|
else |
|
ARCH='x86_64-linux-gnu' |
|
fi |
|
# The purpose of this gitian build is not to actually build Qt, but to export |
|
# the headers as well as pkgconfig files in a useable format so that we can |
|
# pretend to link against an older version. The goal is to link to the |
|
# system version of Qt 4. |
|
# Also build development tools. |
|
INSTALLPREFIX="$HOME/install" |
|
# Integrity Check |
|
echo "9ad4d46c721b53a429ed5a2eecfd3c239a9ab566562f183f99d3125f1a234250 qt-everywhere-opensource-src-4.6.4.tar.gz" | sha256sum -c |
|
# Make install directories |
|
mkdir -p $INSTALLPREFIX |
|
mkdir -p $INSTALLPREFIX/include |
|
PKGCONFIGDIR=$INSTALLPREFIX/lib/pkgconfig |
|
mkdir -p $PKGCONFIGDIR |
|
# |
|
tar xzf qt-everywhere-opensource-src-4.6.4.tar.gz |
|
cd qt-everywhere-opensource-src-4.6.4 |
|
QTBUILDDIR=$(pwd) |
|
sed 's/TODAY=`date +%Y-%m-%d`/TODAY=2011-01-30/' -i configure |
|
|
|
# Need to build 4.6-versioned host utilities as well (lrelease/qrc/lupdate/...) |
|
./configure -prefix $INSTALLPREFIX -confirm-license -release -opensource -no-qt3support -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 -no-opengl -nomake examples -nomake demos -nomake docs |
|
# |
|
make $MAKEOPTS -C src/tools install # (rcc, uic, moc) |
|
make $MAKEOPTS -C tools/linguist/lrelease install # (lrelease) |
|
# install includes and pkgconfig files |
|
for DIR in src/corelib src/gui src/testlib src/dbus src/network; do |
|
( |
|
cd $DIR |
|
# extract module (QtCore/QtNetwork/...) from Makefile |
|
MODULE=$(grep "QMAKE_TARGET *=" Makefile | cut -d = -f 2 | xargs) |
|
# patch makefile so that not everything is build first |
|
sed -i 's/first: all/first:/g' Makefile |
|
make install_flat_headers install_class_headers install_targ_headers |
|
# create and install pkgconfig descriptor |
|
make ../../lib/pkgconfig/$MODULE.pc |
|
sed -e "s,$QTBUILDDIR,$INSTALLPREFIX,g" ../../lib/pkgconfig/$MODULE.pc > $PKGCONFIGDIR/$MODULE.pc |
|
# create links to existing Qt libraries |
|
ln -sf /usr/lib/${ARCH}/lib${MODULE}.so.4 ${INSTALLPREFIX}/lib/lib${MODULE}.so |
|
) |
|
done |
|
|
|
# Write our own configuration header, same as Ubuntu |
|
# When we don't do this, the configuration will be without STL support (the QString from/to stdString methods) |
|
QCONFIG=$INSTALLPREFIX/include/Qt/qconfig.h |
|
echo ' |
|
/* Qt Edition */ |
|
#ifndef QT_EDITION |
|
# define QT_EDITION QT_EDITION_OPENSOURCE |
|
#endif |
|
' > $QCONFIG |
|
|
|
if [ "x$GBUILD_BITS" = "x32" ]; then |
|
echo ' |
|
/* Machine byte-order */ |
|
#define Q_BIG_ENDIAN 4321 |
|
#define Q_LITTLE_ENDIAN 1234 |
|
#define QT_BUILD_KEY "i386 linux g++-4 full-config" |
|
#define QT_BUILD_KEY_COMPAT "i686 Linux g++-4 full-config" |
|
|
|
#ifdef QT_BOOTSTRAPPED |
|
#define Q_BYTE_ORDER Q_LITTLE_ENDIAN |
|
#else |
|
#define Q_BYTE_ORDER Q_LITTLE_ENDIAN |
|
#endif |
|
/* Machine Architecture */ |
|
#ifndef QT_BOOTSTRAPPED |
|
# define QT_ARCH_I386 |
|
#else |
|
# define QT_ARCH_I386 |
|
#endif |
|
/* Compile time features */ |
|
#define QT_LARGEFILE_SUPPORT 64 |
|
#define QT_POINTER_SIZE 4 |
|
' >> $QCONFIG |
|
else |
|
echo ' |
|
/* Machine byte-order */ |
|
#define Q_BIG_ENDIAN 4321 |
|
#define Q_LITTLE_ENDIAN 1234 |
|
#define QT_BUILD_KEY "x86_64 linux g++-4 full-config" |
|
#define QT_BUILD_KEY_COMPAT "x86_64 Linux g++-4 full-config" |
|
|
|
#ifdef QT_BOOTSTRAPPED |
|
#define Q_BYTE_ORDER Q_LITTLE_ENDIAN |
|
#else |
|
#define Q_BYTE_ORDER Q_LITTLE_ENDIAN |
|
#endif |
|
/* Machine Architecture */ |
|
#ifndef QT_BOOTSTRAPPED |
|
# define QT_ARCH_X86_64 |
|
#else |
|
# define QT_ARCH_X86_64 |
|
#endif |
|
/* Compile time features */ |
|
#define QT_LARGEFILE_SUPPORT 64 |
|
#define QT_POINTER_SIZE 8 |
|
' >> $QCONFIG |
|
fi |
|
|
|
echo ' |
|
#ifndef QT_BOOTSTRAPPED |
|
|
|
#if defined(QT_NO_EGL) && defined(QT_EGL) |
|
# undef QT_NO_EGL |
|
#elif !defined(QT_NO_EGL) && !defined(QT_EGL) |
|
# define QT_NO_EGL |
|
#endif |
|
|
|
#if defined(QT_NO_GSTREAMER) && defined(QT_GSTREAMER) |
|
# undef QT_NO_GSTREAMER |
|
#elif !defined(QT_NO_GSTREAMER) && !defined(QT_GSTREAMER) |
|
# define QT_NO_GSTREAMER |
|
#endif |
|
|
|
#if defined(QT_NO_ICD) && defined(QT_ICD) |
|
# undef QT_NO_ICD |
|
#elif !defined(QT_NO_ICD) && !defined(QT_ICD) |
|
# define QT_NO_ICD |
|
#endif |
|
|
|
#if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) |
|
# undef QT_NO_IMAGEFORMAT_JPEG |
|
#elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) |
|
# define QT_NO_IMAGEFORMAT_JPEG |
|
#endif |
|
|
|
#if defined(QT_NO_IMAGEFORMAT_MNG) && defined(QT_IMAGEFORMAT_MNG) |
|
# undef QT_NO_IMAGEFORMAT_MNG |
|
#elif !defined(QT_NO_IMAGEFORMAT_MNG) && !defined(QT_IMAGEFORMAT_MNG) |
|
# define QT_NO_IMAGEFORMAT_MNG |
|
#endif |
|
|
|
#if defined(QT_NO_IMAGEFORMAT_TIFF) && defined(QT_IMAGEFORMAT_TIFF) |
|
# undef QT_NO_IMAGEFORMAT_TIFF |
|
#elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) |
|
# define QT_NO_IMAGEFORMAT_TIFF |
|
#endif |
|
|
|
#if defined(QT_NO_MULTIMEDIA) && defined(QT_MULTIMEDIA) |
|
# undef QT_NO_MULTIMEDIA |
|
#elif !defined(QT_NO_MULTIMEDIA) && !defined(QT_MULTIMEDIA) |
|
# define QT_NO_MULTIMEDIA |
|
#endif |
|
|
|
#if defined(QT_NO_OPENVG) && defined(QT_OPENVG) |
|
# undef QT_NO_OPENVG |
|
#elif !defined(QT_NO_OPENVG) && !defined(QT_OPENVG) |
|
# define QT_NO_OPENVG |
|
#endif |
|
|
|
#if defined(QT_NO_PHONON) && defined(QT_PHONON) |
|
# undef QT_NO_PHONON |
|
#elif !defined(QT_NO_PHONON) && !defined(QT_PHONON) |
|
# define QT_NO_PHONON |
|
#endif |
|
|
|
#if defined(QT_NO_PULSEAUDIO) && defined(QT_PULSEAUDIO) |
|
# undef QT_NO_PULSEAUDIO |
|
#elif !defined(QT_NO_PULSEAUDIO) && !defined(QT_PULSEAUDIO) |
|
# define QT_NO_PULSEAUDIO |
|
#endif |
|
|
|
#if defined(QT_NO_S60) && defined(QT_S60) |
|
# undef QT_NO_S60 |
|
#elif !defined(QT_NO_S60) && !defined(QT_S60) |
|
# define QT_NO_S60 |
|
#endif |
|
|
|
#if defined(QT_NO_STYLE_S60) && defined(QT_STYLE_S60) |
|
# undef QT_NO_STYLE_S60 |
|
#elif !defined(QT_NO_STYLE_S60) && !defined(QT_STYLE_S60) |
|
# define QT_NO_STYLE_S60 |
|
#endif |
|
|
|
#if defined(QT_NO_SXE) && defined(QT_SXE) |
|
# undef QT_NO_SXE |
|
#elif !defined(QT_NO_SXE) && !defined(QT_SXE) |
|
# define QT_NO_SXE |
|
#endif |
|
|
|
#if defined(QT_NO_WEBKIT) && defined(QT_WEBKIT) |
|
# undef QT_NO_WEBKIT |
|
#elif !defined(QT_NO_WEBKIT) && !defined(QT_WEBKIT) |
|
# define QT_NO_WEBKIT |
|
#endif |
|
|
|
#if defined(QT_NO_ZLIB) && defined(QT_ZLIB) |
|
# undef QT_NO_ZLIB |
|
#elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) |
|
# define QT_NO_ZLIB |
|
#endif |
|
|
|
#if defined(QT_RUNTIME_XCURSOR) && defined(QT_NO_RUNTIME_XCURSOR) |
|
# undef QT_RUNTIME_XCURSOR |
|
#elif !defined(QT_RUNTIME_XCURSOR) && !defined(QT_NO_RUNTIME_XCURSOR) |
|
# define QT_RUNTIME_XCURSOR |
|
#endif |
|
|
|
#if defined(QT_RUNTIME_XFIXES) && defined(QT_NO_RUNTIME_XFIXES) |
|
# undef QT_RUNTIME_XFIXES |
|
#elif !defined(QT_RUNTIME_XFIXES) && !defined(QT_NO_RUNTIME_XFIXES) |
|
# define QT_RUNTIME_XFIXES |
|
#endif |
|
|
|
#if defined(QT_RUNTIME_XINERAMA) && defined(QT_NO_RUNTIME_XINERAMA) |
|
# undef QT_RUNTIME_XINERAMA |
|
#elif !defined(QT_RUNTIME_XINERAMA) && !defined(QT_NO_RUNTIME_XINERAMA) |
|
# define QT_RUNTIME_XINERAMA |
|
#endif |
|
|
|
#if defined(QT_RUNTIME_XINPUT) && defined(QT_NO_RUNTIME_XINPUT) |
|
# undef QT_RUNTIME_XINPUT |
|
#elif !defined(QT_RUNTIME_XINPUT) && !defined(QT_NO_RUNTIME_XINPUT) |
|
# define QT_RUNTIME_XINPUT |
|
#endif |
|
|
|
#if defined(QT_RUNTIME_XRANDR) && defined(QT_NO_RUNTIME_XRANDR) |
|
# undef QT_RUNTIME_XRANDR |
|
#elif !defined(QT_RUNTIME_XRANDR) && !defined(QT_NO_RUNTIME_XRANDR) |
|
# define QT_RUNTIME_XRANDR |
|
#endif |
|
|
|
#if defined(QT_USE_MATH_H_FLOATS) && defined(QT_NO_USE_MATH_H_FLOATS) |
|
# undef QT_USE_MATH_H_FLOATS |
|
#elif !defined(QT_USE_MATH_H_FLOATS) && !defined(QT_NO_USE_MATH_H_FLOATS) |
|
# define QT_USE_MATH_H_FLOATS |
|
#endif |
|
|
|
#endif // QT_BOOTSTRAPPED |
|
|
|
#define QT_VISIBILITY_AVAILABLE |
|
' >> $QCONFIG |
|
cp $QCONFIG $INSTALLPREFIX/include/QtCore/qconfig.h |
|
|
|
cd $INSTALLPREFIX |
|
# 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 |
|
# Create a .tar.gz because .zip has problems with symbolic links |
|
find | sort | tar --no-recursion -cT /dev/stdin --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 --mtime="$REFERENCE_DATETIME" | gzip -n > $OUTDIR/qt-linux${GBUILD_BITS}-4.6.4-gitian-r1.tar.gz
|
|
|