### this file is sourced not run
PKGVER=4.8.7 # final version of Qt4
PKGBUILD=1
PKGARCH=i686

# source: post BLFS 7.8 2016-01-06 + Arch patches
TARBALL=qt-everywhere-opensource-src-$PKGVER.tar.gz
MD5SUM=d990ee66bf7ab0c785589776f35ba6ad
SRC_URL=https://download.qt.io/archive/qt/4.8/$PKGVER/$TARBALL
BUNDLE=

SLACKREQ='libX11_32 alsa-lib32 mesa32 dbus32 glib32 libjpeg-turbo32 libpng32 libtiff32 openssl32 \
sqlite3_32 cups32 gtk2_32' # gst-plugins-base32 - but we don't build with gstreamer
SLACKDESC="qt4: qt $PKGVER (Qt GUI framework)  
qt4:  
qt4: Qt is a cross-platform application framework that is widely used for 
qt4: developing application software with a graphical user interface (GUI) (in 
qt4: which cases Qt is classified as a widget toolkit), and also used for 
qt4: developing non-GUI programs such as command-line tools and consoles for 
qt4: servers. One of the major users of Qt is KDE.  
qt4: 
qt4: This contains 32-bit version of the Qt4 library
qt4: 
qt4: 
"

### default pkg_download
### prepare
pkg_prepare() {
	pkg_prepare_default &&
	cd tmp/qt* &&

	srcdir=../pkg/arch-patches &&
	# (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 &&

	# fixes for LibreOffice from the upstream Qt bug tracker FS#46436, FS#41648, FS#39819
	# https://bugreports.qt.io/browse/QTBUG-37380
	patch -p1 -i "${srcdir}"/glib-honor-ExcludeSocketNotifiers-flag.diff &&
	# https://bugreports.qt.io/browse/QTBUG-34614
	patch -p0 -i "${srcdir}"/l-qclipboard_fix_recursive.patch &&
	# https://bugreports.qt.io/browse/QTBUG-38585
	patch -p0 -i "${srcdir}"/l-qclipboard_delay.patch &&

	# React to OpenSSL's OPENSSL_NO_SSL3 define
	patch -p1 -i "${srcdir}"/disable-sslv3.patch &&

	sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/g++-base.conf &&
	sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/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}|g" mkspecs/common/gcc-base.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 &&
	echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/3rdparty/webkit/Source/JavaScriptCore/JavaScriptCore.pri &&
	true	
}

### package - collect libs only
pkg_package() {
	export QT4DIR=./opt/qt4 # must be relative !!!
	rm -r $QT4DIR/include $QT4DIR/bin $QT4DIR/share
	mkdir -p $QT4DIR/bin $QT4DIR/include/QtCore $QT4DIS/include/Qt &&
	mv -v tmp/*-32 $QT4DIR/bin &&
	mv -v tmp/32-qt-qconfig.h $QT4DIR/include/QtCore/qconfig-32.h &&
	mv -v tmp/32-qtcore-qconfig.h $QT4DIR/include/QtCore/qconfig-32.h
}

### build
pkg_build() {
	cd /tmp/qt*
	export QT4DIR=/opt/qt4
	mkdir -pv /opt/qt-$PKGVER &&
	ln -sfvn qt-$PKGVER $QT4DIR &&	

	export QMAKESPEC=linux-g++-32 # CBLFS
	./configure -prefix $QT4DIR  \
			-libdir $QT4DIR/$LIBDIR \
			-plugindir $QT4DIR/$LIBDIR/plugins \
			-importdir $QT4DIR/$LIBDIR/imports \
			-headerdir $QT4DIR/include \
			-datadir $QT4DIR/$LIBDIR \
			-translationdir $QT4DIR/share/translations \
			-docdir $QT4DIR/share/doc/qt \
			-demosdir $QT4DIR/share/demos \
			-examplesdir $QT4DIR/share/examples \
			-reduce-relocations \
			-no-separate-debug-info \
			-sysconfdir /etc/xdg \
            -confirm-license     \
            -opensource          \
            -release             \
            -dbus-linked         \
            -openssl-linked      \
            -plugin-sql-sqlite   \
            -no-phonon           \
            -no-phonon-backend   \
            -no-nis              \
            -no-openvg           \
            -nomake demos        \
            -nomake examples     \
            -no-icu              \
            -no-webkit           \
            -optimized-qmake     &&

	make $MAKEFLAGS &&
	make install &&

	find $QT4DIR/$LIBDIR/pkgconfig -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \; &&
	for file in $QT4DIR/$LIBDIR/libQt*.prl; do
		 sed -r -e '/^QMAKE_PRL_BUILD_DIR/d'    \
				-e 's/(QMAKE_PRL_LIBS =).*/\1/' \
				-i $file
	done &&
	unset file &&
	rm -rf /include &&	
	
<< "UNUSED_STUFF_DISABLED"
	# desktop icons
	install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \
					  /usr/share/pixmaps/qt4logo.png       &&
	install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \
					  /usr/share/pixmaps/assistant-qt4.png &&
	install -v -Dm644 tools/designer/src/designer/images/designer.png \
					  /usr/share/pixmaps/designer-qt4.png  &&
	install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \
					  /usr/share/pixmaps/linguist-qt4.png  &&
	install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
					  /usr/share/pixmaps/qdbusviewer-qt4.png &&
	install -dm755 /usr/share/applications &&
	
	# desktop files
	install -m644 /tmp/pkg/assistant-qt4.desktop /usr/share/applications &&
	install -m644 /tmp/pkg/designer-qt4.desktop /usr/share/applications &&
	install -m644 /tmp/pkg/linguist-qt4.desktop /usr/share/applications &&
	install -m644 /tmp/pkg/qdbusviewer-qt4.desktop /usr/share/applications &&
	install -m644 /tmp/pkg/qtconfig-qt4.desktop /usr/share/applications &&
	
	# profile
	mkdir -p /etc/profile.d &&
	install -m 755 /tmp/pkg/qt4.sh /etc/profile.d &&
UNUSED_STUFF_DISABLED

	pkg_build_slackdesc &&
	
	# multilib
	mv -v $QT4DIR/bin/qmake /tmp/qmake-32 &&
	mv -v $QT4DIR/bin/uic   /tmp/uic-32   &&
	mv -v $QT4DIR/bin/uic3  /tmp/uic3-32  &&
	mv -v $QT4DIR/bin/moc   /tmp/moc-32   &&
	mv -v $QT4DIR/include/Qt/qconfig.h      /tmp/32-qt-qconfig.h &&
	mv -v $QT4DIR/include/QtCore/qconfig.h  /tmp/32-qtcore-qconfig.h
}


