libqt5-qtbase/libqt5-qtbase.spec

457 lines
14 KiB
RPMSpec
Raw Normal View History

#
# spec file for package libqt5-qtbase
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: libqt5-qtbase
BuildRequires: alsa-devel
BuildRequires: at-spi2-core-devel
BuildRequires: cups-devel
BuildRequires: fdupes
BuildRequires: freetype2-devel
BuildRequires: gcc-c++
BuildRequires: libjpeg-devel
BuildRequires: libmng-devel
BuildRequires: libmysqlclient-devel
BuildRequires: libpng-devel
BuildRequires: libtiff-devel
BuildRequires: openssl-devel
BuildRequires: pcre-devel
BuildRequires: pkgconfig
BuildRequires: postgresql-devel
BuildRequires: sqlite3-devel
BuildRequires: unixODBC-devel
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gl)
%ifarch %arm
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(glesv2)
%endif
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(xkbcommon) >= 0.2.0
BuildRequires: xcb-util-image-devel
BuildRequires: xcb-util-keysyms-devel
BuildRequires: xcb-util-renderutil-devel
BuildRequires: xcb-util-wm-devel
Version: 5.1.1
Release: 0
License: GPL-3.0 or SUSE-LGPL-2.1-with-digia-exception-1.1
Summary: C++ Program Library, Core Components
Url: http://qt.digia.com
Group: System/Libraries
%define base_name libqt5
%define real_version 5.1.1
%define tar_version qtbase-opensource-src-%{real_version}
Source: %{tar_version}.tar.xz
Source2: macros.qt5
Source3: baselibs.conf
# PATCH-FIX-UPSTREAM qt-never-strip.diff -- for creating debug packages
Patch2: qt-never-strip.diff
# PATCH-FIX-UPSTREAM libqt5-libtool-nodate.diff -- for ommiting date/time on build
Patch109: libqt5-libtool-nodate.diff
# PATCH-FIX-UPSTREAM qmake-add-usr-include.diff -- explicitly include /usr/include path
Patch131: qmake-add-usr-include.diff
BuildRequires: clucene-core-devel
BuildRequires: gstreamer-0_10-plugins-base-devel
BuildRequires: libicu-devel
BuildRequires: libpulse-devel
BuildRequires: libudev-devel
BuildRequires: xorg-x11-devel
BuildRequires: xz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Qt is a set of libraries for developing applications.
This package contains base tools, like string, xml, and network
handling.
%define libqt5_prefix %{_prefix}
%define libqt5_libdir %{_libdir}
%define libqt5_archdatadir %{_libdir}/qt5
%define libqt5_bindir %{libqt5_archdatadir}/bin
%define libqt5_datadir %{_datadir}/qt5
%define libqt5_docdir %{_docdir}/qt5
%define libqt5_examplesdir %{libqt5_archdatadir}/examples
%define libqt5_includedir %{_includedir}/qt5
%define libqt5_importdir %{libqt5_archdatadir}/imports
%define libqt5_libexecdir %{libqt5_archdatadir}/libexec
%define libqt5_plugindir %{libqt5_archdatadir}/plugins
%define libqt5_sysconfdir %{_sysconfdir}/xdg
%define libqt5_translationdir %{_datadir}/qt5/translations
%prep
%setup -q -n qtbase-opensource-src-%{real_version}
%patch2 -p1
%patch109 -p1
%patch131 -p1
# be sure not to use them
rm -r src/3rdparty/{libjpeg,freetype,libpng,zlib}
#rm -r qtimageformats/src/3rdparty/{libtiff,libmng}
%package devel
Summary: Qt Development Kit
Group: Development/Libraries/X11
Requires: %{name} = %{version}
Requires: alsa-devel
Requires: at-spi2-core-devel
Requires: c++_compiler
Requires: cups-devel
Requires: freetype2-devel
Requires: libQt5Gui5 = %{version}
Requires: libQt5Test5 = %{version}
Requires: libQt5Widgets5 = %{version}
Requires: libjpeg-devel
Requires: libmng-devel
Requires: libpng-devel
Requires: libqt5-sql-sqlite >= %{version}
Requires: libtiff-devel
Requires: make
Requires: openssl-devel
Requires: pcre-devel
Requires: pkgconfig
Requires: sqlite3-devel
Requires: pkgconfig(dbus-1)
Requires: pkgconfig(gl)
%ifarch %arm
Requires: pkgconfig(gbm)
Requires: pkgconfig(glesv2)
%endif
Requires: pkgconfig(glib-2.0)
Requires: pkgconfig(xkbcommon) >= 0.2.0
Requires: xcb-util-image-devel
Requires: xcb-util-keysyms-devel
Requires: xcb-util-renderutil-devel
Requires: xcb-util-wm-devel
Requires: gstreamer-0_10-plugins-base-devel
Requires: libicu-devel
Requires: libpulse-devel
Requires: libudev-devel
Requires: xorg-x11-devel
Requires: zlib-devel
%description devel
You need this package, if you want to compile programs with Qt. It
contains the "Qt Crossplatform Development Kit". It does contain
include files and development applications like GUI designers,
translator tools and code generators.
%package -n libQt5Test5
Summary: Qt 5 Test Library
Group: Development/Libraries/X11
%description -n libQt5Test5
Qt 5 library for testing.
%package -n libQt5Widgets5
Summary: Qt 5 Test Library
Group: Development/Libraries/X11
%description -n libQt5Widgets5
Qt 5 library to display widgets.
%package -n libqt5-sql-sqlite
Summary: Qt 5 sqlite plugin
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-sqlite
Qt 5 sqlite plugin to be able to use database functionality with Qt
applications without the need to setup a SQL server.
%package -n libqt5-sql-unixODBC
Summary: Qt 5 unixODBC plugin
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-unixODBC
Qt unixODBC plugin to support databases via unixODBC within Qt
applications.
%package -n libqt5-sql-postgresql
Summary: Qt 5 PostgreSQL plugin
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-postgresql
Qt SQL plugin to support PostgreSQL servers in Qt applications.
%package -n libqt5-sql-mysql
Summary: Qt 5 MySQL support
Group: Development/Libraries/C and C++
Requires: libQt5Sql5 = %{version}
Provides: libqt5_sql_backend = %{version}
%description -n libqt5-sql-mysql
A plugin to support MySQL server in Qt applications.
%package -n libQt5Gui5
Summary: Qt 5 GUI related libraries
Group: Development/Libraries/C and C++
Recommends: libqt5-qtimageformats = %{version}
%description -n libQt5Gui5
Qt 5 libraries which are depending on X11.
%package -n libQt5Sql5
Summary: Qt 5 SQL related libraries
Group: Development/Libraries/C and C++
Recommends: libqt5_sql_backend = %{version}
Suggests: libqt5-sql-sqlite
%description -n libQt5Sql5
Qt 5 libraries which are used for connection with an SQL server. You
will need also a plugin package for a supported SQL server.
%package private-headers-devel
Summary: Non-ABI stable experimental API
Group: Development/Libraries/C and C++
Requires: libqt5-qtbase-devel = %{version}
%description private-headers-devel
This package provides private headers of libqt5-qtbase-devel that are normally
not used by application development and that do not have any ABI or
API guarantees. The packages that build against these have to require
the exact Qt version.
%build
export QMAKESPEC=$PWD/mkspecs/linux-g++
%ifarch ppc64
RPM_OPT_FLAGS="%{optflags} -mminimal-toc"
%endif
export CXXFLAGS="$CXXFLAGS %{optflags} -DOPENSSL_LOAD_CONF"
export CFLAGS="$CFLAGS %{optflags} -DOPENSSL_LOAD_CONF"
export MAKEFLAGS="%{?_smp_mflags}"
%ifarch sparc64
platform="-platform linux-g++-64"
%else
platform=""
%endif
# Record mtime of changes file instead of build time
CHANGES=`stat --format="%y" %{SOURCE1}|cut --characters=1-10`
sed -i -e "s/qt_instdate=\$TODAY/qt_instdate=$CHANGES/" configure
echo yes | ./configure $platform \
-prefix %{_prefix} \
-L %{libqt5_libdir} \
-libdir %{libqt5_libdir} \
-archdatadir %{libqt5_archdatadir} \
-bindir %{libqt5_bindir} \
-datadir %{libqt5_datadir} \
-docdir %{libqt5_docdir} \
-examplesdir %{libqt5_examplesdir} \
-headerdir %{libqt5_includedir} \
-importdir %{libqt5_importdir} \
-libexecdir %{libqt5_libexecdir} \
-plugindir %{libqt5_plugindir} \
-sysconfdir %{libqt5_sysconfdir} \
-translationdir %{libqt5_translationdir} \
-verbose \
-reduce-relocations \
-optimized-qmake \
-accessibility \
-opensource \
-no-separate-debug-info \
-shared \
-xkb \
-xrender \
-xcursor \
-dbus-linked \
-xfixes \
-xrandr \
-xinerama \
-sm \
-no-rpath \
-system-libjpeg \
-openssl-linked \
-system-libpng \
-cups \
-nis \
-system-zlib \
-iconv \
-sysconfdir /etc/settings \
-no-pch \
-glib \
-system-sqlite \
-no-sql-mysql \
-xsync \
-xinput \
-gtkstyle \
-javascript-jit \
-xcb \
-no-eglfs \
-opengl desktop \
%ifarch %arm
-eglfs -kms \
-opengl es2 \
%else
-no-eglfs \
-opengl desktop \
%endif
-release \
%ifarch %arm
-no-neon \
%endif
-plugin-sql-sqlite -nomake examples \
-plugin-sql-psql -I/usr/include -I/usr/include/pgsql/ -I/usr/include/pgsql/server \
-plugin-sql-odbc \
-plugin-sql-mysql -I/usr/include/mysql/ -I/usr/include -v
make %{?_smp_mflags}
%install
make INSTALL_ROOT=%{buildroot} install
install -D -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/rpm/macros.qt5
# argggh, qmake is such a piece of <censored>
find %{buildroot}/%{libqt5_libdir} -type f -name '*prl' -exec perl -pi -e "s, -L$RPM_BUILD_DIR/\S+,,g" {} \;
find %{buildroot}/%{libqt5_libdir} -type f -name '*prl' -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \;
find %{buildroot}/%{libqt5_libdir} -type f -name '*la' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \;
# insanity ...
find %{buildroot}/%{libqt5_libdir} -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} \; -exec sed -i -e "s,^moc_location=.*,moc_location=%libqt5_bindir/moc," -e "s,uic_location=.*,uic_location=%libqt5_bindir/uic," {} \;
find %{buildroot}/%{libqt5_libdir}/ -name 'lib*.a' -exec chmod -x -- {} \;
mkdir -p %{buildroot}/%{libqt5_plugindir}/sqldrivers
# put all the binaries to %{_bindir}, add -qt5 suffix, and symlink them back to %_qt5_bindir
mkdir %{buildroot}%{_bindir}
pushd %{buildroot}%{libqt5_bindir}
for i in * ; do
mv $i ../../../bin/${i}-qt5
ln -s ../../../bin/${i}-qt5 .
ln -s ../../../bin/${i}-qt5 $i
done
popd
pushd %{buildroot}%{libqt5_docdir}/global/template/images
chmod -R 644 *.png
popd
%fdupes %{buildroot}/%{libqt5_includedir}
%fdupes %{buildroot}/%{libqt5_archdatadir}/mkspecs
%clean
rm -rf %{buildroot}
%post -p /sbin/ldconfig
%post -n libQt5Gui5 -p /sbin/ldconfig
%post -n libQt5Sql5 -p /sbin/ldconfig
%post -n libQt5Test5 -p /sbin/ldconfig
%post -n libQt5Widgets5 -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%postun -n libQt5Gui5 -p /sbin/ldconfig
%postun -n libQt5Sql5 -p /sbin/ldconfig
%postun -n libQt5Test5 -p /sbin/ldconfig
%postun -n libQt5Widgets5 -p /sbin/ldconfig
%files
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%dir %{libqt5_libdir}/qt5
%dir %{libqt5_plugindir}
%{libqt5_libdir}/libQt5Core.so.*
%{libqt5_libdir}/libQt5Concurrent.so.*
%{libqt5_libdir}/libQt5DBus.so.*
%{libqt5_libdir}/libQt5Network.so.*
%{libqt5_libdir}/libQt5Xml.so.*
%{libqt5_plugindir}/bearer
%files -n libQt5Test5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Test.so.*
%files -n libQt5Widgets5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Widgets.so.*
%{libqt5_libdir}/libQt5PrintSupport.so.*
%{libqt5_libdir}/libQt5OpenGL.so.*
%{libqt5_plugindir}/accessible
%{libqt5_plugindir}/printsupport
%files -n libQt5Gui5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Gui.so.*
%{libqt5_plugindir}/generic
%{libqt5_plugindir}/imageformats
%{libqt5_plugindir}/platforminputcontexts
%{libqt5_plugindir}/platforms
%{libqt5_plugindir}/platformthemes
%files devel
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{_bindir}/*
%libqt5_bindir/*
%dir %libqt5_bindir
%exclude %{libqt5_includedir}/*/5.1.1
%{libqt5_includedir}/
%{libqt5_libdir}/cmake
%{libqt5_libdir}/libQt5*.la
%{libqt5_libdir}/libQt5*.prl
%{libqt5_libdir}/libQt5*.so
%{libqt5_libdir}/libQt5*.a
%{libqt5_libdir}/pkgconfig/Qt5*.pc
%{libqt5_archdatadir}/mkspecs
%{libqt5_docdir}
%{_sysconfdir}/rpm/macros.qt5
%files private-headers-devel
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_includedir}/*/5.1.1
%files -n libQt5Sql5
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_libdir}/libQt5Sql.so.*
%dir %{libqt5_plugindir}/sqldrivers
%files -n libqt5-sql-sqlite
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlite*.so
%files -n libqt5-sql-unixODBC
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlodbc*.so
%files -n libqt5-sql-postgresql
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlpsql*.so
%files -n libqt5-sql-mysql
%defattr(-,root,root,755)
%doc *.txt LICENSE.LGPL LICENSE.FDL
%{libqt5_plugindir}/sqldrivers/libqsqlmysql*.so
%changelog