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 library to start applications only once per user
10 Name: QtSingleApplication
13 License: GPL v3 or LGPL v2 with exceptions
15 Source0: https://github.com/qtproject/qt-solutions/archive/%{commit}/%{name}-%{commit}.tar.gz
16 # Source0-md5: 07f01898ad475c5cded2968d25bee85c
17 Source1: qtsingleapplication.prf
18 Source2: qtsinglecoreapplication.prf
19 Patch0: qtsingleapplication-build.diff
20 Patch1: qtlockedfile.patch
21 Patch2: clementine.patch
23 URL: http://doc.qt.digia.com/solutions/4/qtsingleapplication/qtsingleapplication.html
24 BuildRequires: glibc-misc
25 BuildRequires: libstdc++-devel
27 BuildRequires: QtGui-devel
28 BuildRequires: QtLockedFile-devel
29 BuildRequires: QtNetwork-devel
30 BuildRequires: qt4-build
31 BuildRequires: qt4-qmake
34 BuildRequires: Qt5Core-devel
35 BuildRequires: Qt5Gui-devel
36 BuildRequires: Qt5LockedFile-devel
37 BuildRequires: Qt5Network-devel
38 BuildRequires: Qt5Widgets-devel
39 BuildRequires: qt5-build
40 BuildRequires: qt5-qmake >= 5.4
42 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
44 %define qt4dir %{_datadir}/qt4
45 %define qt5dir %{_libdir}/qt5
48 For some applications it is useful or even critical that they are
49 started only once by any user. Future attempts to start the
50 application should activate any already running instance, and possibly
51 perform requested actions, e.g. loading a file, in that instance.
53 The QtSingleApplication class provides an interface to detect a
54 running instance, and to send command strings to that instance.
56 For console (non-GUI) applications, the QtSingleCoreApplication
57 variant is provided, which avoids dependency on QtGui.
60 Summary: Development files for QtSingleApplication
61 Group: Development/Libraries
62 Requires: %{name} = %{version}-%{release}
65 This package contains libraries and header files for developing
66 applications that use QtSingleApplication.
68 %package -n Qt5SingleApplication
69 Summary: Qt library to start applications only once per user
72 %description -n Qt5SingleApplication
73 For some applications it is useful or even critical that they are
74 started only once by any user. Future attempts to start the
75 application should activate any already running instance, and possibly
76 perform requested actions, e.g. loading a file, in that instance.
78 The QtSingleApplication class provides an interface to detect a
79 running instance, and to send command strings to that instance.
81 For console (non-GUI) applications, the QtSingleCoreApplication
82 variant is provided, which avoids dependency on QtGui.
84 %package -n Qt5SingleApplication-devel
85 Summary: Development files for Qt5SingleApplication library
86 Group: Development/Libraries
87 Requires: Qt5SingleApplication = %{version}-%{release}
89 %description -n Qt5SingleApplication-devel
90 This package contains libraries and header files for developing
91 applications that use Qt5SingleApplication.
95 mv qt-solutions-* .qtsolutions
96 mv .qtsolutions/qtsingleapplication/* .
102 # We already disabled bundling this external library.
103 # But just to make sure:
104 rm src/{QtLocked,qtlocked}*
107 install -d build-qt{4,5}
108 cp -al "$@" build-qt4
109 cp -al "$@" build-qt5
114 # Does not use GNU configure
119 # ensure the it links to right version of LockedFile
120 for l in SingleApplication SingleCoreApplication; do
121 f=libQtSolutions_$l-2.6.so
122 ldd lib/$f | grep libQtSolutions_LockedFile
130 # XXX fix QtLockedFile package?
131 qmake-qt5 INCLUDEPATH+=%{_includedir}/qt5/QtSolutions
133 # XXX: relink with proper version
134 %{__sed} -i -e 's/QtSolutions/Qt5Solutions/' buildlib/Makefile*
138 # ensure the it links to right version of LockedFile
139 for l in SingleApplication SingleCoreApplication; do
140 f=libQt5Solutions_$l-2.6.so
141 ldd lib/$f | grep libQt5Solutions_LockedFile
147 rm -rf $RPM_BUILD_ROOT
150 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/qt4/QtSolutions,%{qt4dir}/mkspecs/features}
151 cp -a lib/* $RPM_BUILD_ROOT%{_libdir}
152 rm $RPM_BUILD_ROOT%{_libdir}/lib*.so.1.0
153 cp -p src/qtsingle*application.h src/QtSingle*Application $RPM_BUILD_ROOT%{_includedir}/qt4/QtSolutions
154 cp -p %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{qt4dir}/mkspecs/features
160 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/qt5/QtSolutions,%{qt5dir}/mkspecs/features}
161 cp -a lib/* $RPM_BUILD_ROOT%{_libdir}
162 rm $RPM_BUILD_ROOT%{_libdir}/lib*.so.1.0
163 cp -p src/qtsingle*application.h src/QtSingle*Application $RPM_BUILD_ROOT%{_includedir}/qt5/QtSolutions
164 cp -p %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{qt5dir}/mkspecs/features
170 rm -rf $RPM_BUILD_ROOT
172 %post -p /sbin/ldconfig
173 %postun -p /sbin/ldconfig
175 %post -n Qt5SingleApplication -p /sbin/ldconfig
176 %postun -n Qt5SingleApplication -p /sbin/ldconfig
180 %defattr(644,root,root,755)
182 %attr(755,root,root) %{_libdir}/libQtSolutions_SingleApplication-2.6.so.*.*.*
183 %attr(755,root,root) %ghost %{_libdir}/libQtSolutions_SingleApplication-2.6.so.1
184 %attr(755,root,root) %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so.*.*.*
185 %attr(755,root,root) %ghost %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so.1
188 %defattr(644,root,root,755)
190 %{_libdir}/libQtSolutions_SingleApplication-2.6.so
191 %{_libdir}/libQtSolutions_SingleCoreApplication-2.6.so
192 %{_includedir}/qt4/QtSolutions/QtSingleApplication
193 %{_includedir}/qt4/QtSolutions/QtSingleCoreApplication
194 %{_includedir}/qt4/QtSolutions/qtsingleapplication.h
195 %{_includedir}/qt4/QtSolutions/qtsinglecoreapplication.h
196 %{qt4dir}/mkspecs/features/qtsingleapplication.prf
197 %{qt4dir}/mkspecs/features/qtsinglecoreapplication.prf
201 %files -n Qt5SingleApplication
202 %defattr(644,root,root,755)
204 %attr(755,root,root) %{_libdir}/libQt5Solutions_SingleApplication-2.6.so.*.*.*
205 %attr(755,root,root) %ghost %{_libdir}/libQt5Solutions_SingleApplication-2.6.so.1
206 %attr(755,root,root) %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so.*.*.*
207 %attr(755,root,root) %ghost %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so.1
209 %files -n Qt5SingleApplication-devel
210 %defattr(644,root,root,755)
212 %{_libdir}/libQt5Solutions_SingleApplication-2.6.so
213 %{_libdir}/libQt5Solutions_SingleCoreApplication-2.6.so
214 %{_includedir}/qt5/QtSolutions/QtSingleApplication
215 %{_includedir}/qt5/QtSolutions/QtSingleCoreApplication
216 %{_includedir}/qt5/QtSolutions/qtsingleapplication.h
217 %{_includedir}/qt5/QtSolutions/qtsinglecoreapplication.h
218 %{qt5dir}/mkspecs/features/qtsingleapplication.prf
219 %{qt5dir}/mkspecs/features/qtsinglecoreapplication.prf