]> git.pld-linux.org Git - packages/QtSingleApplication.git/blobdiff - QtSingleApplication.spec
- fix specs for qt5
[packages/QtSingleApplication.git] / QtSingleApplication.spec
index ac049a052e9543ddfb6c61a48aabd1433393a366..cc21813b5ad127aae8d72741b25d96325493d422 100644 (file)
@@ -1,19 +1,49 @@
-# TODO
-# - rename as QtSingleApplication ?
-# - subpackage for non-gui once any package appears needing so (QtSingleCoreApplication)
+#
+# Conditional build:
+%bcond_without qt4             # build Qt4
+%bcond_without qt5             # build Qt5
+
+# last commit to qtsingleapplication subdir in
+# https://qt.gitorious.org/qt-solutions/qt-solutions/
+%define        commit  ad9bc4600ce769a8b3ad10910803cd555811b70c
 Summary:       Qt library to start applications only once per user
-Name:          qtsingleapplication
-Version:       2.6
-Release:       1
+Name:          QtSingleApplication
+Version:       2.6.1
+Release:       4
 License:       GPL v3 or LGPL v2 with exceptions
 Group:         Libraries
-URL:           http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Utilities/qtsingleapplication
-Source0:       http://get.qt.nokia.com/qt/solutions/lgpl/%{name}-%{version}_1-opensource.tar.gz
-# Source0-md5: 902795eb13ecedbdc112f00d7ec22949
-Patch0:                %{name}-build.diff
+Source0:       https://github.com/qtproject/qt-solutions/archive/%{commit}/%{name}-%{commit}.tar.gz
+# Source0-md5: 07f01898ad475c5cded2968d25bee85c
+Source1:       qtsingleapplication.prf
+Source2:       qtsinglecoreapplication.prf
+Patch0:                qtsingleapplication-build.diff
+Patch1:                qtlockedfile.patch
+Patch2:                clementine.patch
+Patch3:                version.patch
+URL:           http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.html
+BuildRequires: glibc-misc
+BuildRequires: libstdc++-devel
+%if %{with qt4}
+BuildRequires: QtGui-devel
+BuildRequires: QtLockedFile-devel
+BuildRequires: QtNetwork-devel
 BuildRequires: qt4-build
+BuildRequires: qt4-qmake
+%endif
+%if %{with qt5}
+BuildRequires: Qt5Core-devel
+BuildRequires: Qt5Gui-devel
+BuildRequires: Qt5LockedFile-devel
+BuildRequires: Qt5Network-devel
+BuildRequires: Qt5Widgets-devel
+BuildRequires: qt5-build
+BuildRequires: qt5-qmake >= 5.4
+%endif
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                qt4dir  %{_datadir}/qt4
+%define                qt5dir  %{_libdir}/qt5
+
 %description
 For some applications it is useful or even critical that they are
 started only once by any user. Future attempts to start the
@@ -26,43 +56,115 @@ running instance, and to send command strings to that instance.
 For console (non-GUI) applications, the QtSingleCoreApplication
 variant is provided, which avoids dependency on QtGui.
 
-%package       devel
-Summary:       Development files for %{name}
+%package devel
+Summary:       Development files for QtSingleApplication
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
-Requires:      qt4-build
 
-%description   devel
+%description devel
 This package contains libraries and header files for developing
-applications that use QtSingleCoreApplication.
+applications that use QtSingleApplication.
+
+%package -n Qt5SingleApplication
+Summary:       Qt library to start applications only once per user
+Group:         Libraries
+
+%description -n Qt5SingleApplication
+For some applications it is useful or even critical that they are
+started only once by any user. Future attempts to start the
+application should activate any already running instance, and possibly
+perform requested actions, e.g. loading a file, in that instance.
+
+The QtSingleApplication class provides an interface to detect a
+running instance, and to send command strings to that instance.
+
+For console (non-GUI) applications, the QtSingleCoreApplication
+variant is provided, which avoids dependency on QtGui.
+
+%package -n Qt5SingleApplication-devel
+Summary:       Development files for Qt5SingleApplication library
+Group:         Development/Libraries
+Requires:      Qt5SingleApplication = %{version}-%{release}
+
+%description -n Qt5SingleApplication-devel
+This package contains libraries and header files for developing
+applications that use Qt5SingleApplication.
 
 %prep
-%setup -q -n %{name}-%{version}_1-opensource
-%patch0 -p1
+%setup -qc
+mv qt-solutions-* .qtsolutions
+mv .qtsolutions/qtsingleapplication/* .
+%patch0 -p0
+%patch1 -p0
+%patch2 -p1
+%patch3 -p1
+
+# We already disabled bundling this external library.
+# But just to make sure:
+rm src/{QtLocked,qtlocked}*
+
+set -- *
+install -d build-qt{4,5}
+cp -al "$@" build-qt4
+cp -al "$@" build-qt5
 
 %build
-touch .licenseAccepted
+%if %{with qt4}
+cd build-qt4
 # Does not use GNU configure
 ./configure -library
 qmake-qt4
 %{__make}
 
+# ensure the it links to right version of LockedFile
+for l in SingleApplication SingleCoreApplication; do
+       f=libQtSolutions_$l-2.6.so
+       ldd lib/$f | grep libQtSolutions_LockedFile
+done
+cd ..
+%endif
+
+%if %{with qt5}
+cd build-qt5
+./configure -library
+# XXX fix QtLockedFile package?
+qmake-qt5 INCLUDEPATH+=%{_includedir}/qt5/QtSolutions
+%{__make}
+# XXX: relink with proper version
+%{__sed} -i -e 's/QtSolutions/Qt5Solutions/' buildlib/Makefile*
+rm -r lib
+%{__make}
+
+# ensure the it links to right version of LockedFile
+for l in SingleApplication SingleCoreApplication; do
+       f=libQt5Solutions_$l-2.6.so
+       ldd lib/$f | grep libQt5Solutions_LockedFile
+done
+cd ..
+%endif
+
 %install
 rm -rf $RPM_BUILD_ROOT
-
-# libraries
-install -d $RPM_BUILD_ROOT%{_libdir}
+%if %{with qt4}
+cd build-qt4
+install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/qt4/QtSolutions,%{qt4dir}/mkspecs/features}
 cp -a lib/* $RPM_BUILD_ROOT%{_libdir}
 rm $RPM_BUILD_ROOT%{_libdir}/lib*.so.1.0
+cp -p src/qtsingle*application.h src/QtSingle*Application $RPM_BUILD_ROOT%{_includedir}/qt4/QtSolutions
+cp -p %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{qt4dir}/mkspecs/features
+cd ..
+%endif
 
-# headers
-install -d $RPM_BUILD_ROOT%{_includedir}/QtSolutions
-cp -a \
-    src/qtsingleapplication.h \
-    src/QtSingleApplication \
-    src/qtsinglecoreapplication.h \
-    src/QtSingleCoreApplication \
-    $RPM_BUILD_ROOT%{_includedir}/QtSolutions
+%if %{with qt5}
+cd build-qt5
+install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/qt5/QtSolutions,%{qt5dir}/mkspecs/features}
+cp -a lib/* $RPM_BUILD_ROOT%{_libdir}
+rm $RPM_BUILD_ROOT%{_libdir}/lib*.so.1.0
+cp -p src/qtsingle*application.h src/QtSingle*Application $RPM_BUILD_ROOT%{_includedir}/qt5/QtSolutions
+%{__sed} -e s/QtSolutions_SingleApplication-2.6/Qt5Solutions_SingleApplication-2.6/g %{SOURCE1} > $RPM_BUILD_ROOT%{qt5dir}/mkspecs/features/qtsingleapplication.prf
+%{__sed} -e s/QtSolutions_SingleCoreApplication-2.6/Qt5Solutions_SingleCoreApplication-2.6/g %{SOURCE2} > $RPM_BUILD_ROOT%{qt5dir}/mkspecs/features/qtsinglecoreapplication.prf
+cd ..
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -70,14 +172,49 @@ rm -rf $RPM_BUILD_ROOT
 %post  -p /sbin/ldconfig
 %postun -p /sbin/ldconfig
 
+%post  -n Qt5SingleApplication -p /sbin/ldconfig
+%postun        -n Qt5SingleApplication -p /sbin/ldconfig
+
+%if %{with qt4}
 %files
 %defattr(644,root,root,755)
-%doc LGPL_EXCEPTION.txt LICENSE.* README.TXT
-%attr(755,root,root) %{_libdir}/libQtSolutions_SingleApplication-%{version}.so.1
-%attr(755,root,root) %{_libdir}/libQtSolutions_SingleApplication-%{version}.so.*.*.*
+%doc README.TXT
+%attr(755,root,root) %{_libdir}/libQtSolutions_SingleApplication-2.6.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQtSolutions_SingleApplication-2.6.so.1
+%attr(755,root,root) %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so.1
 
 %files devel
 %defattr(644,root,root,755)
 %doc doc examples
-%{_libdir}/libQtSolutions_SingleApplication-%{version}.so
-%{_includedir}/QtSolutions
+%{_libdir}/libQtSolutions_SingleApplication-2.6.so
+%{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so
+%{_includedir}/qt4/QtSolutions/QtSingleApplication
+%{_includedir}/qt4/QtSolutions/QtSingleCoreApplication
+%{_includedir}/qt4/QtSolutions/qtsingleapplication.h
+%{_includedir}/qt4/QtSolutions/qtsinglecoreapplication.h
+%{qt4dir}/mkspecs/features/qtsingleapplication.prf
+%{qt4dir}/mkspecs/features/qtsinglecoreapplication.prf
+%endif
+
+%if %{with qt5}
+%files -n Qt5SingleApplication
+%defattr(644,root,root,755)
+%doc README.TXT
+%attr(755,root,root) %{_libdir}/libQt5Solutions_SingleApplication-2.6.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Solutions_SingleApplication-2.6.so.1
+%attr(755,root,root) %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so.1
+
+%files -n Qt5SingleApplication-devel
+%defattr(644,root,root,755)
+%doc doc examples
+%{_libdir}/libQt5Solutions_SingleApplication-2.6.so
+%{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so
+%{_includedir}/qt5/QtSolutions/QtSingleApplication
+%{_includedir}/qt5/QtSolutions/QtSingleCoreApplication
+%{_includedir}/qt5/QtSolutions/qtsingleapplication.h
+%{_includedir}/qt5/QtSolutions/qtsinglecoreapplication.h
+%{qt5dir}/mkspecs/features/qtsingleapplication.prf
+%{qt5dir}/mkspecs/features/qtsinglecoreapplication.prf
+%endif
This page took 0.06773 seconds and 4 git commands to generate.