mirror of https://github.com/lukechilds/komodo.git
Browse Source
try202c95c
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 @@ |
|||
--- |
|||
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