[packages/qt5-qtbase] - new, rel 0.1 - TODO: use rpmldflags in build process - not tested

witekfl witekfl at pld-linux.org
Sat Dec 28 18:35:37 CET 2013


commit 51df396b833ac28442462aedcf270608217142c8
Author: Witold Filipczyk <witekfl at poczta.onet.pl>
Date:   Sat Dec 28 18:34:11 2013 +0100

    - new, rel 0.1
    - TODO: use rpmldflags in build process
    - not tested

 qt5-qtbase.spec | 471 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 471 insertions(+)
---
diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec
new file mode 100644
index 0000000..4c8a875
--- /dev/null
+++ b/qt5-qtbase.spec
@@ -0,0 +1,471 @@
+# TODO:
+# - use PLD ldflags
+# - cleanup
+
+# Conditional build:
+%bcond_with	static_libs	# build static libraries
+# -- features
+%bcond_without	cups		# CUPS printing support
+%bcond_with	nas		# NAS audio support
+%bcond_without	gtk		# GTK+ theme integration
+%bcond_without	pch		# pch (pre-compiled headers) in qmake
+%bcond_without	system_phonon	# phonon libraries from phonon.spec intead of qt4.spec
+%bcond_with	wkhtml		# WKHTMLTOPDF patch (affects QtGui ABI)
+# -- databases
+%bcond_without	mysql		# MySQL plugin
+%bcond_without	odbc		# unixODBC plugin
+%bcond_without	pgsql		# PostgreSQL plugin
+%bcond_without	sqlite3		# SQLite3 plugin
+%bcond_without	sqlite		# SQLite2 plugin
+%bcond_without	ibase		# ibase (InterBase/Firebird) plugin
+# -- SIMD CPU instructions
+%bcond_with	sse		# use SSE instructions in gui/painting module
+%bcond_with	sse2		# use SSE2 instructions
+%bcond_with	sse3		# use SSE3 instructions (since: Intel middle Pentium4, AMD Athlon64)
+%bcond_with	ssse3		# use SSSE3 instructions (Intel since Core2, Via Nano)
+%bcond_with	sse41		# use SSE4.1 instructions (Intel since middle Core2)
+%bcond_with	sse42		# use SSE4.2 instructions (the same)
+%bcond_with	avx		# use AVX instructions (future Intel x86 CPUs only)
+
+%ifnarch %{ix86} %{x8664} sparc sparcv9 alpha ppc
+%undefine	with_ibase
+%endif
+%ifarch	athlon
+%define		with_3dnow	1
+%endif
+%ifarch athlon pentium3 pentium4 %{x8664}
+%define		with_mmx	1
+%endif
+%ifarch pentium3 pentium4 %{x8664}
+%define		with_sse	1
+%endif
+%ifarch pentium4 %{x8664}
+%define		with_sse2	1
+%endif
+# any SQL
+%define		_withsql	1
+%{!?with_sqlite3:%{!?with_sqlite:%{!?with_ibase:%{!?with_mysql:%{!?with_pgsql:%{!?with_odbc:%undefine _withsql}}}}}}
+
+%define		icu_abi		52
+%define		next_icu_abi	%(echo $((%{icu_abi} + 1)))
+
+%define		orgname		qtbase
+Summary:	The Qt5 application framework
+Summary(es.UTF-8):	Biblioteca para ejecutar aplicaciones Qt5
+Summary(pl.UTF-8):	Biblioteka Qt5
+Summary(pt_BR.UTF-8):	Estrutura para rodar aplicações Qt5
+Name:		qt5-%{orgname}
+Version:	5.2.0
+Release:	0.1
+License:	LGPL v2.1 or GPL v3.0
+Group:		X11/Libraries
+Source0:	http://download.qt-project.org/official_releases/qt/5.2/%{version}/submodules/%{orgname}-opensource-src-%{version}.tar.xz
+# Source0-md5:	c94bbaf1bb7f0f4a32d2caa7501416e1
+URL:		http://qt-project.org/
+%{?with_ibase:BuildRequires:	Firebird-devel}
+BuildRequires:	Mesa-libOpenVG-devel
+BuildRequires:	OpenGL-GLU-devel
+BuildRequires:	OpenGL-devel
+BuildRequires:	alsa-lib-devel
+%{?with_cups:BuildRequires:	cups-devel}
+BuildRequires:	dbus-devel >= 0.93
+BuildRequires:	fontconfig-devel
+BuildRequires:	freetds-devel
+BuildRequires:	freetype-devel >= 1:2.0.0
+%{?with_pch:BuildRequires:	gcc >= 5:4.0}
+BuildRequires:	glib2-devel >= 2.0.0
+BuildRequires:	gstreamer0.10-plugins-base-devel
+%{?with_gtk:BuildRequires:	gtk+2-devel >= 2:2.10}
+# see dependency on libicu version below
+BuildRequires:	libicu-devel >= %{icu_abi}
+BuildRequires:	libicu-devel < %{next_icu_abi}
+BuildRequires:	libjpeg-devel
+BuildRequires:	libmng-devel >= 1.0.0
+BuildRequires:	libpng-devel >= 2:1.0.8
+BuildRequires:	libstdc++-devel
+%{?with_mysql:BuildRequires:	mysql-devel}
+%{?with_nas:BuildRequires:	nas-devel}
+BuildRequires:	pkgconfig
+%{?with_pgsql:BuildRequires:	postgresql-backend-devel}
+%{?with_pgsql:BuildRequires:	postgresql-devel}
+BuildRequires:	pulseaudio-devel >= 0.9.10
+BuildRequires:	rpmbuild(macros) >= 1.654
+BuildRequires:	rsync
+BuildRequires:	sed >= 4.0
+%{?with_sqlite:BuildRequires:	sqlite-devel}
+%{?with_sqlite3:BuildRequires:	sqlite3-devel}
+%{?with_odbc:BuildRequires:	unixODBC-devel >= 2.3.0}
+BuildRequires:	xorg-lib-libSM-devel
+BuildRequires:	xorg-lib-libXcursor-devel
+BuildRequires:	xorg-lib-libXext-devel
+BuildRequires:	xorg-lib-libXfixes-devel
+BuildRequires:	xorg-lib-libXi-devel
+BuildRequires:	xorg-lib-libXinerama-devel
+BuildRequires:	xorg-lib-libXrandr-devel
+BuildRequires:	xorg-lib-libXrender-devel
+BuildRequires:	xorg-lib-libXtst-devel
+BuildRequires:	xorg-lib-libXv-devel
+BuildRequires:	zlib-devel
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define		_noautoreqdep	libGL.so.1 libGLU.so.1
+%define		_noautostrip	'.*_debug\\.so*'
+
+%define		specflags	-fno-strict-aliasing
+
+%define		_qtdir		%{_libdir}/qt5
+
+%description
+Qt5 base libraries.
+
+%package devel
+Summary:	The Qt5 application framework - development files
+Group:		X11/Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description devel
+Qt5 - development files.
+
+%package examples
+Summary:	Qt5 examples
+Group:		X11/Development/Libraries
+
+%description examples
+Qt5 - examples.
+
+%prep
+%setup -q -n %{orgname}-opensource-src-%{version}
+
+%{__sed} -i -e 's,usr/X11R6/,usr/g,' mkspecs/linux-g++-64/qmake.conf \
+	mkspecs/common/linux.conf
+
+# change QMAKE FLAGS to build
+%{__sed} -i -e '
+	s|QMAKE_CC.*=.*gcc|QMAKE_CC\t\t= %{__cc}|;
+	s|QMAKE_CXX.*=.*g++|QMAKE_CXX\t\t= %{__cxx}|;
+	s|QMAKE_LINK.*=.*g++|QMAKE_LINK\t\t= %{__cxx}|;
+	s|QMAKE_LINK_SHLIB.*=.*g++|QMAKE_LINK_SHLIB\t= %{__cxx}|;
+	s|QMAKE_CFLAGS_RELEASE.*|QMAKE_CFLAGS_RELEASE\t+= %{rpmcppflags} %{rpmcflags}|;
+	s|QMAKE_CXXFLAGS_RELEASE.*|QMAKE_CXXFLAGS_RELEASE\t+= %{rpmcppflags} %{rpmcxxflags}|;
+	s|QMAKE_CFLAGS_DEBUG.*|QMAKE_CFLAGS_DEBUG\t+= %{debugcflags}|;
+	s|QMAKE_CXXFLAGS_DEBUG.*|QMAKE_CXXFLAGS_DEBUG\t+= %{debugcflags}|;
+	' mkspecs/common/g++-base.conf
+
+#%{__sed} -i -e '
+#	s|QMAKE_INCDIR_QT.*|QMAKE_INCDIR_QT       = %{_includedir}/qt4|;
+#	' mkspecs/common/linux.conf
+
+# No -L/usr/lib.
+%{__sed} -i -e '
+	s|^QMAKE_LIBDIR_QT.*=.*|QMAKE_LIBDIR_QT       =|;
+	' mkspecs/common/linux.conf
+
+# undefine QMAKE_STRIP, so we get useful -debuginfo pkgs
+%{__sed} -i -e '
+	s|^QMAKE_STRIP.*=.*|QMAKE_STRIP             =|;
+	' mkspecs/common/linux.conf
+
+%build
+# pass OPTFLAGS to build qmake itself with optimization
+export OPTFLAGS="%{rpmcflags}"
+export PATH=$PWD/bin:$PATH
+
+##################################
+# DEFAULT OPTIONS FOR ALL BUILDS #
+##################################
+
+COMMONOPT=" \
+	-confirm-license \
+	-opensource \
+	-verbose \
+	-prefix %{_qtdir} \
+	-bindir %{_qtdir}/bin \
+	-docdir %{_docdir}/qt5-doc \
+	-headerdir %{_includedir}/qt5 \
+	-libdir %{_libdir} \
+	-plugindir %{_qtdir}/plugins \
+	-datadir %{_datadir}/qt5 \
+	-translationdir %{_localedir}/ \
+	-sysconfdir %{_sysconfdir}/qt5 \
+	-examplesdir %{_examplesdir}/qt5 \
+	-optimized-qmake \
+	-glib \
+	%{!?with_gtk:-no-gtkstyle} \
+	-%{!?with_pch:no-}pch \
+	-no-rpath \
+	%{!?with_sse:-no-sse} \
+	%{!?with_sse2:-no-sse2} \
+	%{!?with_sse3:-no-sse3} \
+	%{!?with_ssse3:-no-ssse3} \
+	%{!?with_sse41:-no-sse4.1} \
+	%{!?with_sse42:-no-sse4.2} \
+	%{!?with_avx:-no-avx} \
+	-dbus \
+	-dbus-linked \
+	-reduce-relocations \
+	-system-freetype \
+	-system-libjpeg \
+	-system-libpng \
+	-system-pcre \
+	-system-xcb \
+	-system-xkbcommon \
+	-system-zlib \
+	-openssl-linked \
+	-largefile \
+	-I/usr/include/postgresql/server \
+	-I/usr/include/mysql \
+	%{?with_cups:-cups} \
+	%{?with_nas:-system-nas-sound} \
+	%{?debug:-debug} \
+	%{!?debug:-release} \
+	-fontconfig \
+	-largefile \
+	-iconv \
+	-icu \
+	-no-separate-debug-info \
+	-xfixes \
+	-nis \
+	-sm \
+	-xcursor \
+	-xinput2 \
+	-xinerama \
+	-xrandr \
+	-xkb \
+	-xrender \
+	-xshape \
+	-continue"
+
+%if 0
+##################################
+#       STATIC MULTI-THREAD      #
+##################################
+
+%if %{with static_libs}
+OPT=" \
+	-%{!?with_mysql:no}%{?with_mysql:qt}-sql-mysql \
+	-%{!?with_odbc:no}%{?with_odbc:qt}-sql-odbc \
+	-%{!?with_pgsql:no}%{?with_pgsql:qt}-sql-psql \
+	-%{!?with_sqlite3:no}%{?with_sqlite3:qt}-sql-sqlite \
+	-%{!?with_sqlite:no}%{?with_sqlite:qt}-sql-sqlite2 \
+	-%{!?with_ibase:no}%{?with_ibase:qt}-sql-ibase \
+	-static"
+
+./configure $COMMONOPT $OPT
+
+%{__make} -C src
+%{__make} -C tools/assistant/lib
+%{__make} -C tools/designer
+if [ ! -d staticlib ]; then
+	mkdir staticlib
+	cp -a lib/*.a staticlib
+fi
+%{__make} distclean
+%endif
+%endif
+
+##################################
+#       SHARED MULTI-THREAD      #
+##################################
+
+OPT=" \
+	-%{!?with_mysql:no}%{?with_mysql:plugin}-sql-mysql \
+	-%{!?with_odbc:no}%{?with_odbc:plugin}-sql-odbc \
+	-%{!?with_pgsql:no}%{?with_pgsql:plugin}-sql-psql \
+	-%{!?with_sqlite3:no}%{?with_sqlite3:plugin}-sql-sqlite \
+	-%{!?with_sqlite:no}%{?with_sqlite:plugin}-sql-sqlite2 \
+	-%{!?with_ibase:no}%{?with_ibase:plugin}-sql-ibase \
+	-shared"
+
+./configure $COMMONOPT $OPT
+
+%{__make}
+#%{__make} \
+#	sub-tools-all-ordered \
+#	sub-demos-all-ordered \
+#	sub-examples-all-ordered
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/etc/{env.d,qt5},%{_bindir},%{_desktopdir},%{_pixmapsdir},%{_pkgconfigdir}}
+#install -d $RPM_BUILD_ROOT%{_qtdir}/plugins/{crypto,network}
+
+#echo '#QT_GRAPHICSSYSTEM=raster' > $RPM_BUILD_ROOT/etc/env.d/QT_GRAPHICSSYSTEM
+
+%{__make} install \
+	INSTALL_ROOT=$RPM_BUILD_ROOT
+
+# for qt-creator sth is messed up in the Makefile, nothing for make install
+#install bin/qdoc3 $RPM_BUILD_ROOT%{_qtdir}/bin/qdoc3
+
+# kill -L/inside/builddir from *.la and *.pc (bug #77152)
+%{__sed} -i -e "s,-L$PWD/lib,,g" $RPM_BUILD_ROOT%{_libdir}/*.{la,prl}
+%{__sed} -i -e "s,-L$PWD/lib,,g" $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
+%{__sed} -i -e '
+	s|moc_location=.*|moc_location=%{_bindir}/moc-qt5|;
+	s|uic_location=.*|uic_location=%{_bindir}/uic-qt5|;
+	' $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
+
+# libQtWebKit.la contains '-ljscore' and '-lwebcore', they come
+# from src/3rdparty/webkit/{JavaScriptCore,WebCore}} but those libs aren't installed
+#%{__sed} -i -e "s,-lwebcore,,g;s,-ljscore,,g;" $RPM_BUILD_ROOT%{_libdir}/libQtWebKit.la
+
+# install tools
+install bin/findtr	$RPM_BUILD_ROOT%{_qtdir}/bin
+
+cd $RPM_BUILD_ROOT%{_bindir}
+#ln -sf ../%{_lib}/qt5/bin/assistant assistant-qt5
+#ln -sf ../%{_lib}/qt5/bin/designer designer-qt5
+ln -sf ../%{_lib}/qt5/bin/findtr findtr-qt5
+#ln -sf ../%{_lib}/qt5/bin/linguist linguist-qt5
+#ln -sf ../%{_lib}/qt5/bin/lrelease lrelease-qt5
+#ln -sf ../%{_lib}/qt5/bin/lupdate lupdate-qt5
+ln -sf ../%{_lib}/qt5/bin/moc moc-qt5
+ln -sf ../%{_lib}/qt5/bin/qmake qmake-qt5
+#ln -sf ../%{_lib}/qt5/bin/qtconfig qtconfig-qt5
+ln -sf ../%{_lib}/qt5/bin/uic uic-qt5
+ln -sf ../%{_lib}/qt5/bin/rcc rcc-qt5
+#ln -sf ../%{_lib}/qt5/bin/pixeltool .
+#ln -sf ../%{_lib}/qt5/bin/qcollectiongenerator .
+ln -sf ../%{_lib}/qt5/bin/qdbuscpp2xml qdbuscpp2xml-qt5
+ln -sf ../%{_lib}/qt5/bin/qdbusxml2cpp qdbusxml2cpp-qt5
+ln -sf ../%{_lib}/qt5/bin/qdoc qdoc-qt5
+#ln -sf ../%{_lib}/qt5/bin/qhelpconverter .
+#ln -sf ../%{_lib}/qt5/bin/qhelpgenerator .
+#ln -sf ../%{_lib}/qt5/bin/qmlviewer .
+#ln -sf ../%{_lib}/qt5/bin/qmlplugindump .
+#ln -sf ../%{_lib}/qt5/bin/qttracereplay .
+#ln -sf ../%{_lib}/qt5/bin/qvfb .
+#ln -sf ../%{_lib}/qt5/bin/xmlpatternsvalidator .
+cd -
+
+# Prepare some files list
+ifecho() {
+	RESULT=`echo $RPM_BUILD_ROOT$2 2>/dev/null`
+	[ "$RESULT" == "" ] && return # XXX this is never true due $RPM_BUILD_ROOT being set
+	r=`echo $RESULT | awk '{ print $1 }'`
+
+	if [ -d "$r" ]; then
+		echo "%%dir $2" >> $1.files
+	elif [ -x "$r" ] ; then
+		echo "%%attr(755,root,root) $2" >> $1.files
+	elif [ -f "$r" ]; then
+		echo "$2" >> $1.files
+	else
+		echo "Error generation $1 files list!"
+		echo "$r: no such file or directory!"
+		return 1
+	fi
+}
+
+echo "%defattr(644,root,root,755)" > examples.files
+ifecho examples %{_examplesdir}/qt5
+for f in `find $RPM_BUILD_ROOT%{_examplesdir}/qt5 -printf "%%P "`; do
+	ifecho examples %{_examplesdir}/qt5/$f
+done
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post		-p /sbin/ldconfig
+%postun		-p /sbin/ldconfig
+
+%files
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Concurrent.so.?
+%attr(755,root,root) %{_libdir}/libQt5Concurrent.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Core.so.?
+%attr(755,root,root) %{_libdir}/libQt5Core.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5DBus.so.?
+%attr(755,root,root) %{_libdir}/libQt5DBus.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Gui.so.?
+%attr(755,root,root) %{_libdir}/libQt5Gui.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Network.so.?
+%attr(755,root,root) %{_libdir}/libQt5Network.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5OpenGL.so.?
+%attr(755,root,root) %{_libdir}/libQt5OpenGL.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5PrintSupport.so.?
+%attr(755,root,root) %{_libdir}/libQt5PrintSupport.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Sql.so.?
+%attr(755,root,root) %{_libdir}/libQt5Sql.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Test.so.?
+%attr(755,root,root) %{_libdir}/libQt5Test.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Widgets.so.?
+%attr(755,root,root) %{_libdir}/libQt5Widgets.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Xml.so.?
+%attr(755,root,root) %{_libdir}/libQt5Xml.so.*.*
+%{_libdir}/libQt5Bootstrap.a
+%{_libdir}/libQt5OpenGLExtensions.a
+%{_libdir}/libQt5PlatformSupport.a
+
+%dir /etc/qt5
+%dir %{_qtdir}
+%dir %{_qtdir}/bin
+%attr(755,root,root) %{_qtdir}/bin/*
+%attr(755,root,root) %{_qtdir}/plugins
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libQt5Concurrent.so
+%attr(755,root,root) %{_libdir}/libQt5Core.so
+%attr(755,root,root) %{_libdir}/libQt5DBus.so
+%attr(755,root,root) %{_libdir}/libQt5Gui.so
+%attr(755,root,root) %{_libdir}/libQt5Network.so
+%attr(755,root,root) %{_libdir}/libQt5OpenGL.so
+%attr(755,root,root) %{_libdir}/libQt5PrintSupport.so
+%attr(755,root,root) %{_libdir}/libQt5Sql.so
+%attr(755,root,root) %{_libdir}/libQt5Test.so
+%attr(755,root,root) %{_libdir}/libQt5Widgets.so
+%attr(755,root,root) %{_libdir}/libQt5Xml.so
+
+%{_libdir}/libQt5Concurrent.la
+%{_libdir}/libQt5Core.la
+%{_libdir}/libQt5DBus.la
+%{_libdir}/libQt5Gui.la
+%{_libdir}/libQt5Network.la
+%{_libdir}/libQt5OpenGL.la
+%{_libdir}/libQt5PrintSupport.la
+%{_libdir}/libQt5Sql.la
+%{_libdir}/libQt5Test.la
+%{_libdir}/libQt5Widgets.la
+%{_libdir}/libQt5Xml.la
+
+%{_libdir}/libQt5Concurrent.prl
+%{_libdir}/libQt5Core.prl
+%{_libdir}/libQt5DBus.prl
+%{_libdir}/libQt5Gui.prl
+%{_libdir}/libQt5Network.prl
+%{_libdir}/libQt5OpenGL.prl
+%{_libdir}/libQt5PrintSupport.prl
+%{_libdir}/libQt5Sql.prl
+%{_libdir}/libQt5Test.prl
+%{_libdir}/libQt5Widgets.prl
+%{_libdir}/libQt5Xml.prl
+
+%{_libdir}/libQt5Bootstrap.la
+%{_libdir}/libQt5Bootstrap.prl
+%{_libdir}/libQt5OpenGLExtensions.la
+%{_libdir}/libQt5OpenGLExtensions.prl
+%{_libdir}/libQt5PlatformSupport.la
+%{_libdir}/libQt5PlatformSupport.prl
+
+%{_includedir}/qt5
+%{_libdir}/cmake/Qt5
+%{_libdir}/cmake/Qt5Concurrent
+%{_libdir}/cmake/Qt5Core
+%{_libdir}/cmake/Qt5DBus
+%{_libdir}/cmake/Qt5Gui
+%{_libdir}/cmake/Qt5Network
+%{_libdir}/cmake/Qt5OpenGL
+%{_libdir}/cmake/Qt5OpenGLExtensions
+%{_libdir}/cmake/Qt5PrintSupport
+%{_libdir}/cmake/Qt5Sql
+%{_libdir}/cmake/Qt5Test
+%{_libdir}/cmake/Qt5Widgets
+%{_libdir}/cmake/Qt5Xml
+%{_pkgconfigdir}/*.pc
+#%{_examplesdir}/qt5
+%{_docdir}/qt5-doc
+%{_qtdir}/mkspecs
+
+%files examples -f examples.files
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/qt5-qtbase.git/commitdiff/51df396b833ac28442462aedcf270608217142c8



More information about the pld-cvs-commit mailing list