# maybe TODO:
-# Qt5Location (BR: Qt3d)
# plugins/position/simulator (BR: Qt5Simulator)
#
# Conditional build:
-%bcond_without qch # documentation in QCH format
+%bcond_with bootstrap # disable features to able to build without installed qt5
+# -- build targets
+%bcond_without doc # Documentation
+%bcond_without qm # QM translations
+
+%if %{with bootstrap}
+%undefine with_doc
+%undefine with_qm
+%endif
%define qtbase_ver %{version}
%define qtdeclarative_ver %{version}
-%define qttools_ver %{version}
+%define qttools_ver 5.8
%define orgname qtlocation
Summary: The Qt5 Location library
Summary(pl.UTF-8): Biblioteka Qt5 Location
Name: qt5-%{orgname}
-Version: 5.3.0
-Release: 1
+Version: 5.12.2
+Release: 2
License: LGPL v2.1 with Digia Qt LGPL Exception v1.1 or GPL v3.0
Group: Libraries
-Source0: http://download.qt-project.org/official_releases/qt/5.3/%{version}/submodules/%{orgname}-opensource-src-%{version}.tar.xz
-# Source0-md5: bfc7678bfe7d78f12fb20a54ac54e610
-URL: http://qt-project.org/
+Source0: http://download.qt.io/official_releases/qt/5.12/%{version}/submodules/%{orgname}-everywhere-src-%{version}.tar.xz
+# Source0-md5: cd4b62e31d33c7f0d68bec523af828b8
+Source1: http://download.qt.io/official_releases/qt/5.12/%{version}/submodules/qttranslations-everywhere-src-%{version}.tar.xz
+# Source1-md5: 298e993499be31ab95162b61456a4b25
+URL: http://www.qt.io/
BuildRequires: GConf2-devel >= 2.0
+BuildRequires: Qt5Concurrent-devel >= %{qtbase_ver}
BuildRequires: Qt5Core-devel >= %{qtbase_ver}
+BuildRequires: Qt5DBus-devel >= %{qtbase_ver}
+BuildRequires: Qt5Gui-devel >= %{qtbase_ver}
BuildRequires: Qt5Network-devel >= %{qtbase_ver}
BuildRequires: Qt5Qml-devel >= %{qtdeclarative_ver}
BuildRequires: Qt5Quick-devel >= %{qtdeclarative_ver}
-BuildRequires: geoclue-devel
+BuildRequires: Qt5SerialPort-devel >= %{qtdeclarative_ver}
+BuildRequires: Qt5Sql-devel >= %{qtdeclarative_ver}
BuildRequires: gypsy-devel
BuildRequires: pkgconfig
-%if %{with qch}
+%if %{with doc}
BuildRequires: qt5-assistant >= %{qttools_ver}
%endif
BuildRequires: qt5-build >= %{qtbase_ver}
+%{?with_qm:BuildRequires: qt5-linguist >= %{qttools_ver}}
BuildRequires: qt5-qmake >= %{qtbase_ver}
BuildRequires: rpmbuild(macros) >= 1.654
BuildRequires: tar >= 1:1.22
write web-enabled applications once and deploy them across desktop,
mobile and embedded systems without rewriting the source code.
-This package contains Qt5 Location (Qt5Positioning) library.
+This package contains Qt5 Location and Positioning libraries.
%description -l pl.UTF-8
Qt to wieloplatformowy szkielet aplikacji i interfejsów użytkownika.
systemach biurkowych, przenośnych i wbudowanych bez przepisywania kodu
źródłowego.
-Ten pakiet zawiera biblioteki Qt5 Location (Qt5Positioning).
+Ten pakiet zawiera biblioteki Qt5 Location i Positioning.
+
+%package -n Qt5Location
+Summary: The Qt5 Location library
+Summary(pl.UTF-8): Biblioteka Qt5 Location
+Group: Libraries
+Requires: Qt5Core >= %{qtbase_ver}
+Requires: Qt5Gui >= %{qtbase_ver}
+Requires: Qt5Positioning = %{version}-%{release}
+Requires: Qt5Quick >= %{qtdeclarative_ver}
+Obsoletes: qt5-qtlocation
+
+%description -n Qt5Location
+Qt5 Location library provides mapping, navigation and place search via
+QML and C++ interfaces.
+
+%description -n Qt5Location -l pl.UTF-8
+Biblioteka Qt5 Location udostępnia mapy, nawigowanie oraz wyszukiwanie
+miejsc poprzez interfejsy QML i C++.
+
+%package -n Qt5Location-devel
+Summary: Qt5 Location library - development files
+Summary(pl.UTF-8): Biblioteka Qt5 Location - pliki programistyczne
+Group: Development/Libraries
+Requires: Qt5Core-devel >= %{qtbase_ver}
+Requires: Qt5Gui-devel >= %{qtbase_ver}
+Requires: Qt5Location = %{version}-%{release}
+Requires: Qt5Positioning-devel = %{version}-%{release}
+Requires: Qt5Quick-devel >= %{qtdeclarative_ver}
+Obsoletes: qt5-qtlocation-devel
+
+%description -n Qt5Location-devel
+Qt5 Location library - development files.
+
+%description -n Qt5Location-devel -l pl.UTF-8
+Biblioteka Qt5 Location - pliki programistyczne.
%package -n Qt5Positioning
Summary: The Qt5 Positioning library
Summary(pl.UTF-8): Biblioteka Qt5 Positioning
Group: Libraries
Requires: Qt5Core >= %{qtbase_ver}
+# for plugins
Requires: Qt5Network >= %{qtbase_ver}
Requires: Qt5Qml >= %{qtdeclarative_ver}
Requires: Qt5Quick >= %{qtdeclarative_ver}
Biblioteka Qt5 Positioning - pliki programistyczne.
%package doc
-Summary: Qt5 Location (Qt5Positioning) documentation in HTML format
-Summary(pl.UTF-8): Dokumentacja do biblioteki Qt5 Location (Qt5Positioning) w formacie HTML
+Summary: Qt5 Location and Positioning documentation in HTML format
+Summary(pl.UTF-8): Dokumentacja do bibliotek Qt5 Location i Positioning w formacie HTML
Group: Documentation
Requires: qt5-doc-common >= %{qtbase_ver}
%if "%{_rpmversion}" >= "5"
%endif
%description doc
-Qt5 Location (Qt5Positioning) documentation in HTML format.
+Qt5 Location and Positioning documentation in HTML format.
%description doc -l pl.UTF-8
-Dokumentacja do biblioteki Qt5 Location (Qt5Positioning) w formacie
-HTML.
+Dokumentacja do bibliotek Qt5 Location i Positioning w formacie HTML.
%package doc-qch
-Summary: Qt5 Location (Qt5Positioning) documentation in QCH format
-Summary(pl.UTF-8): Dokumentacja do biblioteki Qt5 Location (Qt5Positioning) w formacie QCH
+Summary: Qt5 Location and Positioning documentation in QCH format
+Summary(pl.UTF-8): Dokumentacja do bibliotek Qt5 Location i Positioning w formacie QCH
Group: Documentation
Requires: qt5-doc-common >= %{qtbase_ver}
%if "%{_rpmversion}" >= "5"
%endif
%description doc-qch
-Qt5 Location (Qt5Positioning) documentation in QCH format.
+Qt5 Location and Positioning documentation in QCH format.
%description doc-qch -l pl.UTF-8
-Dokumentacja do biblioteki Qt5 Location (Qt5Positioning) w formacie
-QCH.
+Dokumentacja do bibliotek Qt5 Location i Positioning w formacie QCH.
%package examples
-Summary: Qt5 Location (Qt5Positioning) examples
-Summary(pl.UTF-8): Przykłady do biblioteki Qt5 Location (Qt5Positioning)
+Summary: Qt5 Location and Positioning examples
+Summary(pl.UTF-8): Przykłady do bibliotek Qt5 Location i Positioning
Group: X11/Development/Libraries
%if "%{_rpmversion}" >= "5"
BuildArch: noarch
%endif
%description examples
-Qt5 Location (Qt5Positioning) examples.
+Qt5 Location and Positioning examples.
%description examples -l pl.UTF-8
-Przykłady do biblioteki Qt5 Location (Qt5Positioning).
+Przykłady do bibliotek Qt5 Location i Positioning.
%prep
-%setup -q -n %{orgname}-opensource-src-%{version}
+%setup -q -n %{orgname}-everywhere-src-%{version} %{?with_qm:-a1}
%build
qmake-qt5
%{__make}
-%{__make} %{!?with_qch:html_}docs
+%{?with_doc:%{__make} docs}
+
+%if %{with qm}
+cd qttranslations-everywhere-src-%{version}
+qmake-qt5
+%{__make}
+cd ..
+%endif
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install \
INSTALL_ROOT=$RPM_BUILD_ROOT
-%{__make} install_%{!?with_qch:html_}docs \
+%if %{with doc}
+%{__make} install_docs \
INSTALL_ROOT=$RPM_BUILD_ROOT
+%endif
+
+%if %{with qm}
+%{__make} -C qttranslations-everywhere-src-%{version} install \
+ INSTALL_ROOT=$RPM_BUILD_ROOT
+# keep only qtlocation
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/qt5/translations/{assistant,designer,linguist,qt,qtbase,qtconnectivity,qtdeclarative,qtmultimedia,qtquickcontrols,qtquickcontrols2,qtserialport,qtscript,qtwebengine,qtwebsockets,qtxmlpatterns}_*.qm
+%endif
+
+# kill unnecessary -L%{_libdir} from *.la, *.prl, *.pc
+%{__sed} -i -e "s,-L%{_libdir} \?,,g" \
+ $RPM_BUILD_ROOT%{_libdir}/*.{la,prl} \
+ $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
# useless symlinks
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.so.5.?
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.so.5.??
# actually drop *.la, follow policy of not packaging them when *.pc exist
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libQt5*.la
}
echo "%defattr(644,root,root,755)" > examples.files
-ifecho_tree examples %{_examplesdir}/qt5/qtpositioning
+ifecho_tree examples %{_examplesdir}/qt5/location
ifecho_tree examples %{_examplesdir}/qt5/positioning
+# find_lang --with-qm supports only PLD qt3/qt4 specific %{_datadir}/locale/*/LC_MESSAGES layout
+find_qt5_qm()
+{
+ name="$1"
+ find $RPM_BUILD_ROOT%{_datadir}/qt5/translations -name "${name}_*.qm" | \
+ sed -e "s:^$RPM_BUILD_ROOT::" \
+ -e 's:\(.*/'$name'_\)\([a-z][a-z][a-z]\?\)\(_[A-Z][A-Z]\)\?\(\.qm\)$:%lang(\2\3) \1\2\3\4:'
+}
+
+echo '%defattr(644,root,root,755)' > qtlocation.lang
+%if %{with qm}
+find_qt5_qm qtlocation >> qtlocation.lang
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
+%post -n Qt5Location -p /sbin/ldconfig
+%postun -n Qt5Location -p /sbin/ldconfig
+
%post -n Qt5Positioning -p /sbin/ldconfig
%postun -n Qt5Positioning -p /sbin/ldconfig
+%files -n Qt5Location -f qtlocation.lang
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libQt5Location.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Location.so.5
+%dir %{qt5dir}/plugins/geoservices
+%attr(755,root,root) %{qt5dir}/plugins/geoservices/libqtgeoservices_esri.so
+%attr(755,root,root) %{qt5dir}/plugins/geoservices/libqtgeoservices_itemsoverlay.so
+%attr(755,root,root) %{qt5dir}/plugins/geoservices/libqtgeoservices_mapbox.so
+%attr(755,root,root) %{qt5dir}/plugins/geoservices/libqtgeoservices_mapboxgl.so
+%attr(755,root,root) %{qt5dir}/plugins/geoservices/libqtgeoservices_nokia.so
+%attr(755,root,root) %{qt5dir}/plugins/geoservices/libqtgeoservices_osm.so
+%dir %{qt5dir}/qml/QtLocation
+%attr(755,root,root) %{qt5dir}/qml/QtLocation/libdeclarative_location.so
+%{qt5dir}/qml/QtLocation/plugins.qmltypes
+%{qt5dir}/qml/QtLocation/qmldir
+%dir %{_libdir}/qt5/qml/Qt/labs/location
+%attr(755,root,root) %{_libdir}/qt5/qml/Qt/labs/location/liblocationlabsplugin.so
+%{_libdir}/qt5/qml/Qt/labs/location/plugins.qmltypes
+%{_libdir}/qt5/qml/Qt/labs/location/qmldir
+
+%files -n Qt5Location-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libQt5Location.so
+%{_libdir}/libQt5Location.prl
+%{_includedir}/qt5/QtLocation
+%{_pkgconfigdir}/Qt5Location.pc
+%{_libdir}/cmake/Qt5Location
+%{qt5dir}/mkspecs/modules/qt_lib_location.pri
+%{qt5dir}/mkspecs/modules/qt_lib_location_private.pri
+
%files -n Qt5Positioning
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libQt5Positioning.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libQt5Positioning.so.5
+%attr(755,root,root) %{_libdir}/libQt5PositioningQuick.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5PositioningQuick.so.5
%dir %{qt5dir}/plugins/position
%attr(755,root,root) %{qt5dir}/plugins/position/libqtposition_geoclue.so
+%attr(755,root,root) %{qt5dir}/plugins/position/libqtposition_geoclue2.so
%attr(755,root,root) %{qt5dir}/plugins/position/libqtposition_gypsy.so
%attr(755,root,root) %{qt5dir}/plugins/position/libqtposition_positionpoll.so
+%attr(755,root,root) %{qt5dir}/plugins/position/libqtposition_serialnmea.so
%dir %{qt5dir}/qml/QtPositioning
%attr(755,root,root) %{qt5dir}/qml/QtPositioning/libdeclarative_positioning.so
%{qt5dir}/qml/QtPositioning/plugins.qmltypes
%files -n Qt5Positioning-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libQt5Positioning.so
+%attr(755,root,root) %{_libdir}/libQt5PositioningQuick.so
%{_libdir}/libQt5Positioning.prl
+%{_libdir}/libQt5PositioningQuick.prl
%{_includedir}/qt5/QtPositioning
+%{_includedir}/qt5/QtPositioningQuick
%{_pkgconfigdir}/Qt5Positioning.pc
+%{_pkgconfigdir}/Qt5PositioningQuick.pc
%{_libdir}/cmake/Qt5Positioning
+%{_libdir}/cmake/Qt5PositioningQuick
%{qt5dir}/mkspecs/modules/qt_lib_positioning.pri
%{qt5dir}/mkspecs/modules/qt_lib_positioning_private.pri
+%{qt5dir}/mkspecs/modules/qt_lib_positioningquick.pri
+%{qt5dir}/mkspecs/modules/qt_lib_positioningquick_private.pri
+%if %{with doc}
%files doc
%defattr(644,root,root,755)
+%{_docdir}/qt5-doc/qtlocation
%{_docdir}/qt5-doc/qtpositioning
-%if %{with qch}
%files doc-qch
%defattr(644,root,root,755)
+%{_docdir}/qt5-doc/qtlocation.qch
%{_docdir}/qt5-doc/qtpositioning.qch
%endif