Browse Source
0.10202c95c
devtools: have symbol check script check for exported symbols (Wladimir J. van der Laan)92e3022
gitian: don't export any symbols from executable (Wladimir J. van der Laan)3ab1664
gitian: build against Qt 4.6 (Wladimir J. van der Laan)
Wladimir J. van der Laan
11 years ago
4 changed files with 293 additions and 2 deletions
@ -0,0 +1,263 @@
@@ -0,0 +1,263 @@
|
||||
--- |
||||
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 [ "$GBUILD_BITS" == "32" ]; 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) |
||||
|
||||
# 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 [ "$GBUILD_BITS" == "32" ]; 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 |
Loading…
Reference in new issue