3 %bcond_without static_libs # static libraries
4 %bcond_without python3 # Python 3.x bindings
5 %bcond_without ruby # Ruby bindings
6 %bcond_without tcl # Tcl bindings
8 %include /usr/lib/rpm/macros.perl
9 Summary: Package dependency solver
10 Summary(pl.UTF-8): Biblioteka do rozwiązywania zależności pakietów
16 #Source0Download: https://github.com/openSUSE/libsolv/releases
17 Source0: https://github.com/openSUSE/libsolv/archive/%{version}/%{name}-%{version}.tar.gz
18 # Source0-md5: b61f8268a60086ae6fbf7a3454d669cb
20 Patch1: %{name}-python.patch
21 Patch2: %{name}-rpm5.patch
22 URL: https://github.com/openSUSE/libsolv
23 BuildRequires: bzip2-devel
24 BuildRequires: cmake >= 2.4
25 BuildRequires: db-devel
26 BuildRequires: expat-devel
27 BuildRequires: perl-devel
28 BuildRequires: pkgconfig
29 BuildRequires: python-devel >= 2
30 %{?with_python3:BuildRequires: python3-devel >= 3}
31 BuildRequires: rpm-devel >= 5
32 BuildRequires: rpm-perlprov
33 BuildRequires: rpm-pythonprov
34 BuildRequires: rpmbuild(macros) >= 1.219
35 BuildRequires: swig-perl
36 BuildRequires: swig-python
37 %{?with_tcl:BuildRequires: swig-tcl}
38 BuildRequires: tar >= 1:1.22
39 %{?with_tcl:BuildRequires: tcl-devel}
41 BuildRequires: xz-devel
42 BuildRequires: zlib-devel
44 BuildRequires: rpm-rubyprov
45 BuildRequires: ruby-devel
46 BuildRequires: swig-ruby
48 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50 %define specflags -D_GNU_SOURCE=1
53 A free package dependency solver using a satisfiability algorithm. The
54 library is based on two major, but independent, blocks:
56 - Using a dictionary approach to store and retrieve package and
57 dependency information.
59 - Using satisfiability, a well known and researched topic, for
60 resolving package dependencies.
62 %description -l pl.UTF-8
63 Wolnodostępna biblioteka do rozwiązywania zależności pakietów przy
64 użyciu algorytmu spełnialności. Biblioteka jest podzielona na dwa
65 główne, niezależne bloki:
67 - wykorzystanie podejścia słownikowego do przechowywania i odtwarzania
68 informacji o pakietach i zależnościach,
70 - wykorzystanie spełnialności - dobrze znanego i zbadanego tematu do
71 rozwiązywania zależności pakietów.
74 Summary: Header files for libsolv libraries
75 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek libsolv
76 Group: Development/Libraries
77 Requires: %{name} = %{version}-%{release}
78 Requires: rpm-devel >= 5
81 Development files for libsolv.
83 %description devel -l pl.UTF-8
84 Pliki programistyczne biblioetk libsolv.
87 Summary: Static libsolv libraries
88 Summary(pl.UTF-8): Statyczne biblioteki libsolv
89 Group: Development/Libraries
90 Requires: %{name}-devel = %{version}-%{release}
93 Static libsolv libraries.
95 %description static -l pl.UTF-8
96 Statyczne biblioteki libsolv.
99 Summary: Package dependency solver tools
100 Summary(pl.UTF-8): Narzędzia do rozwiązywania zależności pakietów
101 Group: Applications/System
102 Requires: %{name} = %{version}-%{release}
108 Package dependency solver tools.
110 %description tools -l pl.UTF-8
111 Narzędzia do rozwiązywania zależności pakietów.
113 %package -n perl-solv
114 Summary: Perl bindings for the libsolv libraries
115 Summary(pl.UTF-8): Wiązania Perla do bibliotek libsolv
116 Group: Development/Languages/Perl
117 Requires: %{name} = %{version}-%{release}
119 %description -n perl-solv
120 Perl bindings for the libsolv libraries.
122 %description -n perl-solv -l pl.UTF-8
123 Wiązania Perla do bibliotek libsolv.
125 %package -n python-solv
126 Summary: Python 2.x bindings for the libsolv library
127 Summary(pl.UTF-8): Wiązania Pythona 2.x do bibliotek libsolv
128 Group: Development/Languages/Python
129 Requires: %{name} = %{version}-%{release}
130 Requires: python-libs
132 %description -n python-solv
133 Python 2.x bindings for the libsolv library.
135 %description -n python-solv -l pl.UTF-8
136 Wiązania Pythona 2.x do bibliotek libsolv.
138 %package -n python3-solv
139 Summary: Python 3.x bindings for the libsolv library
140 Summary(pl.UTF-8): Wiązania Pythona 2.x do bibliotek libsolv
141 Group: Development/Languages/Python
142 Requires: %{name} = %{version}-%{release}
143 Requires: python-libs
145 %description -n python3-solv
146 Python 3.x bindings for the libsolv library.
148 %description -n python3-solv -l pl.UTF-8
149 Wiązania Pythona 3.x do bibliotek libsolv.
151 %package -n ruby-solv
152 Summary: Ruby bindings for the libsolv libraries
153 Summary(pl.UTF-8): Wiązania języka Ruby do bibliotek libsolv
154 Group: Development/Languages
155 Requires: %{name} = %{version}-%{release}
157 %description -n ruby-solv
158 Ruby bindings for the libsolv libraries.
160 %description -n ruby-solv -l pl.UTF-8
161 Wiązania języka Ruby do bibliotek libsolv.
164 Summary: Tcl bindings for the libsolv libraries
165 Summary(pl.UTF-8): Wiązania języka Tcl do bibliotek libsolv
166 Group: Development/Languages
167 Requires: %{name} = %{version}-%{release}
170 %description -n tcl-solv
171 Tcl bindings for the libsolv libraries.
173 %description -n tcl-solv -l pl.UTF-8
174 Wiązania języka Tcl do bibliotek libsolv.
183 %{__rm} cmake/modules/FindRuby.cmake
186 # TODO: -DENABLE_RPMDB_LIBRPM=ON -DENABLE_RPMPKG_LIBRPM=ON (rpm5 not supported)
188 %define common_opts \\\
189 -DENABLE_APPDATA=ON \\\
190 -DENABLE_BZIP2_COMPRESSION=ON \\\
191 -DENABLE_COMPLEX_DEPS=ON \\\
192 -DENABLE_HELIXREPO=ON \\\
193 -DENABLE_LZMA_COMPRESSION=ON \\\
194 -DENABLE_PUBKEY=ON \\\
195 -DENABLE_RPMDB=ON \\\
196 -DENABLE_RPMDB_BYRPMHEADER=ON \\\
197 -DENABLE_RPMMD=ON \\\
198 %{?with_static_libs:-DENABLE_STATIC=ON} \\\
202 install -d build %{?with_python3:build-py3}
208 %{?with_ruby:-DENABLE_RUBY=ON} \
209 %{?with_tcl:-DENABLE_TCL=ON} \
210 -DPythonLibs_FIND_VERSION=2 \
211 -DPythonLibs_FIND_VERSION_MAJOR=2 \
220 -DPythonLibs_FIND_VERSION=3 \
221 -DPythonLibs_FIND_VERSION_MAJOR=3
227 rm -rf $RPM_BUILD_ROOT
230 %{__make} -C build-py3/bindings/python install \
231 DESTDIR=$RPM_BUILD_ROOT
234 %{__make} -C build install \
235 DESTDIR=$RPM_BUILD_ROOT
237 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
238 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
242 rm -rf $RPM_BUILD_ROOT
244 %post -p /sbin/ldconfig
245 %postun -p /sbin/ldconfig
248 %defattr(644,root,root,755)
249 %doc BUGS CREDITS LICENSE.BSD NEWS README
250 %attr(755,root,root) %{_libdir}/libsolv.so.0
251 %attr(755,root,root) %{_libdir}/libsolvext.so.0
254 %defattr(644,root,root,755)
255 %attr(755,root,root) %{_libdir}/libsolv.so
256 %attr(755,root,root) %{_libdir}/libsolvext.so
258 %{_pkgconfigdir}/libsolv.pc
259 %{_pkgconfigdir}/libsolvext.pc
260 %{_datadir}/cmake/Modules/FindLibSolv.cmake
261 %{_mandir}/man3/libsolv*.3*
263 %if %{with static_libs}
265 %defattr(644,root,root,755)
267 %{_libdir}/libsolvext.a
271 %defattr(644,root,root,755)
272 %attr(755,root,root) %{_bindir}/appdata2solv
273 %attr(755,root,root) %{_bindir}/deltainfoxml2solv
274 %attr(755,root,root) %{_bindir}/dumpsolv
275 %attr(755,root,root) %{_bindir}/helix2solv
276 %attr(755,root,root) %{_bindir}/installcheck
277 %attr(755,root,root) %{_bindir}/mergesolv
278 %attr(755,root,root) %{_bindir}/repo2solv.sh
279 %attr(755,root,root) %{_bindir}/repomdxml2solv
280 %attr(755,root,root) %{_bindir}/rpmdb2solv
281 %attr(755,root,root) %{_bindir}/rpmmd2solv
282 %attr(755,root,root) %{_bindir}/rpms2solv
283 %attr(755,root,root) %{_bindir}/testsolv
284 %attr(755,root,root) %{_bindir}/updateinfoxml2solv
285 %{_mandir}/man1/appdata2solv.1*
286 %{_mandir}/man1/deltainfoxml2solv.1*
287 %{_mandir}/man1/dumpsolv.1*
288 %{_mandir}/man1/helix2solv.1*
289 %{_mandir}/man1/installcheck.1*
290 %{_mandir}/man1/mergesolv.1*
291 %{_mandir}/man1/repomdxml2solv.1*
292 %{_mandir}/man1/rpmdb2solv.1*
293 %{_mandir}/man1/rpmmd2solv.1*
294 %{_mandir}/man1/rpms2solv.1*
295 %{_mandir}/man1/testsolv.1*
296 %{_mandir}/man1/updateinfoxml2solv.1*
299 %defattr(644,root,root,755)
301 %attr(755,root,root) %{perl_vendorarch}/solv.so
302 %{perl_vendorarch}/solv.pm
304 %files -n python-solv
305 %defattr(644,root,root,755)
307 %attr(755,root,root) %{py_sitedir}/_solv.so
308 %{py_sitedir}/solv.py[co]
311 %files -n python3-solv
312 %defattr(644,root,root,755)
314 %attr(755,root,root) %{py3_sitedir}/_solv.so
315 %{py3_sitedir}/solv.py
320 %defattr(644,root,root,755)
322 %attr(755,root,root) %{ruby_vendorarchdir}/solv.so
327 %defattr(644,root,root,755)
328 %doc examples/tclsolv
329 %attr(755,root,root) %{_prefix}/lib/tcl8/8.*/solv-%{version}.so
330 %{_prefix}/lib/tcl8/8.*/solv-%{version}.tm