3 %bcond_without qt4 # build Qt4
4 %bcond_without qt5 # build Qt5
6 # last commit to qtsingleapplication subdir in
7 # https://qt.gitorious.org/qt-solutions/qt-solutions/
8 %define commit ad9bc4600ce769a8b3ad10910803cd555811b70c
9 Summary: Qt 4 library to start applications only once per user
10 Summary(pl.UTF-8): Biblioteka Qt 4 do uruchamiania pojedynczej instancji aplikacji na użytkownika
11 Name: QtSingleApplication
14 License: GPL v3 or LGPL v2 with exceptions
16 Source0: https://github.com/qtproject/qt-solutions/archive/%{commit}/%{name}-%{commit}.tar.gz
17 # Source0-md5: 07f01898ad475c5cded2968d25bee85c
18 Source1: qtsingleapplication.prf
19 Source2: qtsinglecoreapplication.prf
20 Patch0: qtsingleapplication-build.diff
21 Patch1: qtlockedfile.patch
22 Patch2: clementine.patch
24 Patch4: qtsingleapplication-install.patch
25 URL: http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.html
26 BuildRequires: glibc-misc
27 BuildRequires: libstdc++-devel
29 BuildRequires: QtGui-devel >= 4
30 BuildRequires: QtLockedFile-devel
31 BuildRequires: QtNetwork-devel >= 4
32 BuildRequires: qt4-build >= 4
33 BuildRequires: qt4-qmake >= 4
36 BuildRequires: Qt5Core-devel >= 5.4
37 BuildRequires: Qt5Gui-devel >= 5.4
38 BuildRequires: Qt5LockedFile-devel
39 BuildRequires: Qt5Network-devel >= 5.4
40 BuildRequires: Qt5Widgets-devel >= 5.4
41 BuildRequires: qt5-build >= 5.4
42 BuildRequires: qt5-qmake >= 5.4
44 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
46 %define qt4dir %{_datadir}/qt4
47 %define qt5dir %{_libdir}/qt5
50 For some applications it is useful or even critical that they are
51 started only once by any user. Future attempts to start the
52 application should activate any already running instance, and possibly
53 perform requested actions, e.g. loading a file, in that instance.
55 The QtSingleApplication class provides an interface to detect a
56 running instance, and to send command strings to that instance.
58 For console (non-GUI) applications, the QtSingleCoreApplication
59 variant is provided, which avoids dependency on QtGui.
61 %description -l pl.UTF-8
62 Dla niektórych aplikacji przydatne, lub nawet krytyczne, jest to, aby
63 uruchamiane były tylko w jednej instancji na użytkownika. Kolejne
64 próby uruchomienia powinny aktywować już działającą instancję i
65 ewentualnie wyjonywać żądane akcje, np. załadowanie pliku w tej
68 Klasa QtSingleApplication udostępnia interfejs do wykrywania
69 działającej instancji i wysyłania do niej łańcuchów poleceń.
71 Dla aplikacji konsolowych (bez GUI) udostępniony jest wariant
72 QtSingleCoreApplication, który nie ma zależności od QtGui.
75 Summary: Development files for QtSingleApplication
76 Summary(pl.UTF-8): Pliki programistyczne biblioteki QtSingleApplication
77 Group: Development/Libraries
78 Requires: %{name} = %{version}-%{release}
79 Requires: QtCore-devel >= 4
82 This package contains header files for developing applications that
83 use QtSingleApplication.
85 %description devel -l pl.UTF-8
86 Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
87 wykorzystujących QtSingleApplication.
89 %package -n Qt5SingleApplication
90 Summary: Qt 5 library to start applications only once per user
91 Summary(pl.UTF-8): Biblioteka Qt 5 do uruchamiania pojedynczej instancji aplikacji na użytkownika
94 %description -n Qt5SingleApplication
95 For some applications it is useful or even critical that they are
96 started only once by any user. Future attempts to start the
97 application should activate any already running instance, and possibly
98 perform requested actions, e.g. loading a file, in that instance.
100 The QtSingleApplication class provides an interface to detect a
101 running instance, and to send command strings to that instance.
103 For console (non-GUI) applications, the QtSingleCoreApplication
104 variant is provided, which avoids dependency on QtGui.
106 %description -n Qt5SingleApplication -l pl.UTF-8
107 Dla niektórych aplikacji przydatne, lub nawet krytyczne, jest to, aby
108 uruchamiane były tylko w jednej instancji na użytkownika. Kolejne
109 próby uruchomienia powinny aktywować już działającą instancję i
110 ewentualnie wyjonywać żądane akcje, np. załadowanie pliku w tej
113 Klasa QtSingleApplication udostępnia interfejs do wykrywania
114 działającej instancji i wysyłania do niej łańcuchów poleceń.
116 Dla aplikacji konsolowych (bez GUI) udostępniony jest wariant
117 QtSingleCoreApplication, który nie ma zależności od QtGui.
119 %package -n Qt5SingleApplication-devel
120 Summary: Development files for Qt5SingleApplication library
121 Summary(pl.UTF-8): Pliki programistyczne biblioteki Qt5SingleApplication
122 Group: Development/Libraries
123 Requires: Qt5SingleApplication = %{version}-%{release}
124 Requires: Qt5Core-devel >= 5
126 %description -n Qt5SingleApplication-devel
127 This package contains header files for developing applications that
128 use Qt5SingleApplication.
130 %description -n Qt5SingleApplication-devel -l pl.UTF-8
131 Ten pakiet zawiera pliki nagłówkowe do tworzenia aplikacji
132 wykorzystujących Qt5SingleApplication.
136 %{__mv} qt-solutions-* .qtsolutions
137 %{__mv} .qtsolutions/qtsingleapplication/* .
144 # We already disabled bundling this external library.
145 # But just to make sure:
146 %{__rm} src/{QtLocked,qtlocked}*
149 # Does not use GNU configure
155 qmake-qt4 ../qtsingleapplication.pro \
156 QMAKE_CXX="%{__cxx}" \
157 QMAKE_CXXFLAGS_RELEASE="%{rpmcxxflags}" \
158 QMAKE_LFLAGS_RELEASE="%{rpmldflags}" \
159 INSTALL_LIBDIR=%{_libdir}
162 # ensure the it links to right version of LockedFile
163 for l in SingleApplication SingleCoreApplication; do
164 f=libQtSolutions_$l-2.6.so
165 ldd ../lib/$f | grep libQtSolutions_LockedFile
173 qmake-qt5 ../qtsingleapplication.pro \
174 QMAKE_CXX="%{__cxx}" \
175 QMAKE_CXXFLAGS_RELEASE="%{rpmcxxflags}" \
176 QMAKE_LFLAGS_RELEASE="%{rpmldflags}" \
177 INSTALL_LIBDIR=%{_libdir}
180 # ensure the it links to right version of LockedFile
181 for l in SingleApplication SingleCoreApplication; do
182 f=libQt5Solutions_$l-2.6.so
183 ldd ../lib/$f | grep libQt5Solutions_LockedFile
189 rm -rf $RPM_BUILD_ROOT
192 %{__make} -C build-qt4 install \
193 INSTALL_ROOT=$RPM_BUILD_ROOT
195 install -d $RPM_BUILD_ROOT{%{_includedir}/qt4/QtSolutions,%{qt4dir}/mkspecs/features}
196 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.so.1.0
197 cp -p src/qtsingle*application.h src/QtSingle*Application $RPM_BUILD_ROOT%{_includedir}/qt4/QtSolutions
198 cp -p %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{qt4dir}/mkspecs/features
202 %{__make} -C build-qt5 install \
203 INSTALL_ROOT=$RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT{%{_includedir}/qt5/QtSolutions,%{qt5dir}/mkspecs/features}
206 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.so.1.0
207 cp -p src/qtsingle*application.h src/QtSingle*Application $RPM_BUILD_ROOT%{_includedir}/qt5/QtSolutions
208 %{__sed} -e 's/-lQtSolutions/-lQt5Solutions/g' %{SOURCE1} > $RPM_BUILD_ROOT%{qt5dir}/mkspecs/features/qtsingleapplication.prf
209 %{__sed} -e 's/-lQtSolutions/-lQt5Solutions/g' %{SOURCE2} > $RPM_BUILD_ROOT%{qt5dir}/mkspecs/features/qtsinglecoreapplication.prf
213 rm -rf $RPM_BUILD_ROOT
215 %post -p /sbin/ldconfig
216 %postun -p /sbin/ldconfig
218 %post -n Qt5SingleApplication -p /sbin/ldconfig
219 %postun -n Qt5SingleApplication -p /sbin/ldconfig
223 %defattr(644,root,root,755)
225 %attr(755,root,root) %{_libdir}/libQtSolutions_SingleApplication-2.6.so.*.*.*
226 %attr(755,root,root) %ghost %{_libdir}/libQtSolutions_SingleApplication-2.6.so.1
227 %attr(755,root,root) %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so.*.*.*
228 %attr(755,root,root) %ghost %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so.1
231 %defattr(644,root,root,755)
233 %attr(755,root,root) %{_libdir}/libQtSolutions_SingleApplication-2.6.so
234 %attr(755,root,root) %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so
235 %{_includedir}/qt4/QtSolutions/QtSingleApplication
236 %{_includedir}/qt4/QtSolutions/QtSingleCoreApplication
237 %{_includedir}/qt4/QtSolutions/qtsingleapplication.h
238 %{_includedir}/qt4/QtSolutions/qtsinglecoreapplication.h
239 %{qt4dir}/mkspecs/features/qtsingleapplication.prf
240 %{qt4dir}/mkspecs/features/qtsinglecoreapplication.prf
244 %files -n Qt5SingleApplication
245 %defattr(644,root,root,755)
247 %attr(755,root,root) %{_libdir}/libQt5Solutions_SingleApplication-2.6.so.*.*.*
248 %attr(755,root,root) %ghost %{_libdir}/libQt5Solutions_SingleApplication-2.6.so.1
249 %attr(755,root,root) %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so.*.*.*
250 %attr(755,root,root) %ghost %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so.1
252 %files -n Qt5SingleApplication-devel
253 %defattr(644,root,root,755)
255 %attr(755,root,root) %{_libdir}/libQt5Solutions_SingleApplication-2.6.so
256 %attr(755,root,root) %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so
257 %{_includedir}/qt5/QtSolutions/QtSingleApplication
258 %{_includedir}/qt5/QtSolutions/QtSingleCoreApplication
259 %{_includedir}/qt5/QtSolutions/qtsingleapplication.h
260 %{_includedir}/qt5/QtSolutions/qtsinglecoreapplication.h
261 %{qt5dir}/mkspecs/features/qtsingleapplication.prf
262 %{qt5dir}/mkspecs/features/qtsinglecoreapplication.prf