lib32/lib32-qt/PKGBUILD
2018-01-27 01:48:21 +01:00

145 lines
5.0 KiB
Bash

_pkgbasename=qt
pkgname="lib32-${_pkgbasename}"
pkgver=4.8.7
pkgrel=8
pkgdesc='A cross-platform application and UI framework. (ELF32)'
arch=('x86_64')
url='http://www.qt.io'
license=('GPL3' 'LGPL')
depends=(lib32-{fontconfig,sqlite3,alsa-lib,glib2,dbus-core,openssl,gstreamer,gst-plugins-base}
lib32-lib{png,tiff,mng,gl,sm,xrandr,xv,xi,xinerama,xcursor,xfixes,ffi,xml2}
"${_pkgbasename}=${pkgver}")
makedepends=('cups' lib32-{mesa,libcups,libxfixes,icu} )
_pkgfqn="${_pkgbasename}-everywhere-opensource-src-${pkgver}"
source=("http://download.qt.io/official_releases/qt/4.8/${pkgver}/${_pkgfqn}.tar.gz"
'improve-cups-support.patch'
'moc-boost-workaround.patch'
'kubuntu_14_systemtrayicon.diff'
'kde4-settings.patch'
'glib-honor-ExcludeSocketNotifiers-flag.diff'
'disable-sslv3.patch'
'l-qclipboard_fix_recursive.patch'
'l-qclipboard_delay.patch'
'qt4-gcc6.patch'
'qt4-glibc-2.25.patch'
'qt4-icu59.patch'
'qt4-openssl-1.1.patch')
md5sums=('d990ee66bf7ab0c785589776f35ba6ad'
'c439c7731c25387352d8453ca7574971'
'da387bde22ae1c446f12525d2a31f070'
'a523644faa8f98a73f55c4aa23c114a6'
'66dfea63916c8dbf47b23cb012ffdccc'
'85679531c8a7310317adfb7002d9f99a'
'1803ab6313df762d807678e58fc85f53'
'009de09b4e589a7770fba74405656c99'
'addc5e88d538ee55e17bd49ba337ca67'
'98e00c5c7e5fee12e11ecbedd03f01ff'
'296a06554222ff5839cccc41c5d3987e'
'dbd1bec8c33c27ec0ae640b25801d25b'
'543b8d1f220bfe6116c3d08584c260e6')
prepare() {
cd "${srcdir}/${_pkgfqn}"
# (FS#28381) (KDEBUG#180051)
patch -p1 -i "${srcdir}"/improve-cups-support.patch
# QTBUG#22829
patch -p1 -i "${srcdir}"/moc-boost-workaround.patch
# http://blog.martin-graesslin.com/blog/2014/06/where-are-my-systray-icons/
patch -p1 -i "${srcdir}"/kubuntu_14_systemtrayicon.diff
# FS#45106
patch -p0 -i "${srcdir}"/kde4-settings.patch
# React to OpenSSL's OPENSSL_NO_SSL3 define
patch -p1 -i "${srcdir}"/disable-sslv3.patch
sed -i "s|-O2|${CXXFLAGS} -m32|" mkspecs/common/{g++,gcc}-base.conf
sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS} -m32|g" mkspecs/common/gcc-base.conf
sed -i "/^QMAKE_LINK\s/s|g++|g++ -m32|g" mkspecs/common/g++-base.conf
sed -i "s|-Wl,-O1|-m32 -Wl,-O1|" mkspecs/common/g++-unix.conf
sed -e "s|-O2|${CXXFLAGS} -m32|" \
-e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \
-e "/^QMAKE_LINK\s/s|g++|g++ -m32|g" \
-e "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS} -m32|g" \
-i mkspecs/common/g++.conf
cp mkspecs/common/linux{,32}.conf
sed -i "/^QMAKE_LIBDIR\s/s|=|= /usr/lib32|g" mkspecs/common/linux32.conf
sed -i "s|common/linux.conf|common/linux32.conf|" mkspecs/linux-g++-32/qmake.conf
# Fix build with GCC6 (Fedora)
patch -p1 -i "$srcdir"/qt4-gcc6.patch
# Fix build of Qt4 applications with glibc 2.25 (Fedora)
patch -p1 -i "$srcdir"/qt4-glibc-2.25.patch
# Fix build with ICU 59 (pld-linux)
patch -p1 -i "$srcdir"/qt4-icu59.patch
# Fix build with OpenSSL 1.1 (Debian + OpenMandriva)
#patch -p1 -i "$srcdir"/qt4-openssl-1.1.patch
echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri
echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/plugins/accessible/qaccessiblebase.pri
}
build() {
cd "${srcdir}/${_pkgfqn}"
#export CC='clang'
#export CXX='clang++'
#export CXXFLAGS+=" -std=gnu++98"
export QT4DIR=$srcdir/$_pkgfqn
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
./configure -confirm-license -opensource -v -platform linux-g++-32 \
-prefix /usr \
-libdir /usr/lib32 \
-plugindir /usr/lib32/qt/plugins \
-importdir /usr/lib32/qt/imports \
-datadir /usr/share/qt \
-translationdir /usr/share/qt/translations \
-sysconfdir /etc \
-system-sqlite \
-no-phonon \
-no-phonon-backend \
-no-webkit \
-graphicssystem raster \
-openssl-linked \
-nomake demos \
-nomake examples \
-nomake docs \
-nomake tools \
-optimized-qmake \
-no-rpath \
-dbus-linked \
-reduce-relocations \
-no-openvg \
-xcursor
make
}
package() {
cd "${srcdir}/${_pkgfqn}"
make install INSTALL_ROOT="${pkgdir}"
# Fix wrong path in pkgconfig files
find "${pkgdir}/usr/lib32/pkgconfig" -type f -name '*.pc' \
-exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
# Fix wrong path in prl files
find "${pkgdir}/usr/lib32" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
rm -rf "${pkgdir}/usr"/{include,share,bin}
mkdir -p "${pkgdir}/usr/share/licenses"
ln -s "${_pkgbasename}" "${pkgdir}/usr/share/licenses/${pkgname}"
}