4 %bcond_without ocaml # Ocaml bindings
5 %bcond_without ocaml_opt # native optimized binaries
7 # not yet available on x32 (ocaml 4.02.1), update when upstream will support it
8 %ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9
9 %undefine with_ocaml_opt
12 Summary: NBD client library in userspace
13 Summary(pl.UTF-8): Biblioteka klienta NBD w przestrzeni użytkownika
19 Source0: https://download.libguestfs.org/libnbd/1.8-stable/%{name}-%{version}.tar.gz
20 # Source0-md5: a3e829dc595b655c7bdf63708760cb2f
21 URL: https://github.com/libguestfs/libnbd
22 BuildRequires: bash-completion-devel >= 2.0
23 BuildRequires: glib2-devel >= 2.0
24 BuildRequires: gnutls-devel >= 3.3.0
26 BuildRequires: libfuse3-devel >= 3
27 BuildRequires: libstdc++-devel
28 BuildRequires: libxml2-devel >= 2.0
31 BuildRequires: ocaml-findlib
32 BuildRequires: ocaml-ocamldoc
34 BuildRequires: perl-tools-pod
35 BuildRequires: pkgconfig
36 BuildRequires: python3-devel >= 1:3.2
37 BuildRequires: rpm-build >= 4.6
38 BuildRequires: rpmbuild(macros) >= 1.673
39 BuildRequires: util-linux
40 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 # The Python module happens to be called lib*.so. Don't scan it and
43 # have a bogus "Provides: libnbdmod.*".
44 %define _noautoprovfiles %{py3_sitedir}/libnbdmod.*
47 NBD - Network Block Device - is a protocol for accessing Block Devices
48 (hard disks and disk-like things) over a Network.
50 This is the NBD client library in userspace, a simple library for
54 - Synchronous and asynchronous APIs, both for ease of use and for
55 writing non-blocking, multithreaded clients.
57 - Minimal dependencies for the basic library.
58 - Well-documented, stable API.
59 - Bindings in several programming languages.
61 %description -l pl.UTF-8
62 NBD - Network Block Device - to protokół pozwalający na dostęp do
63 urządzeń blokowych (dysków twardych i rzeczy dyskopodobnych) po sieci.
65 Ten pakiet zawiera bibliotekę klienta NBD w przestrzeni użytkownika -
66 prostą bibliotekę do pisania klientów NBD.
69 - API synchroniczne i asynchroniczne, zarówno w celu ułatwienia
70 użycia, jak i pisania nieblokujących, wielowątkowych klientów
72 - minimalne zależności dla podstawowej biblioteki
73 - dobrze udokumentowane, stabilne API
74 - wiązania do kilku języków programowania
77 Summary: Development headers for NBD library
78 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki NBD
79 License: LGPL v2+ and BSD
80 Group: Development/Libraries
81 Requires: %{name} = %{version}-%{release}
84 This package contains development headers for NBD library.
86 %description devel -l pl.UTF-8
87 Ten pakiet zawiera pliki nagłówkowe biblioteki NBD.
89 %package -n ocaml-%{name}
90 Summary: OCaml language bindings for NBD library
91 Summary(pl.UTF-8): Wiązania OCamla do biblioteki NBD
93 Requires: %{name} = %{version}-%{release}
95 %description -n ocaml-%{name}
96 This package contains OCaml language bindings for NBD library.
98 %description -n ocaml-%{name} -l pl.UTF-8
99 Ten pakiet zawiera wiązania OCamla do biblioteki NBD.
101 %package -n ocaml-%{name}-devel
102 Summary: OCaml language development package for NBD library
103 Summary(pl.UTF-8): Pakiet programistyczny wiązań OCamla do biblioteki NBD
104 Group: Development/Libraries
105 Requires: ocaml-%{name} = %{version}-%{release}
107 %description -n ocaml-%{name}-devel
108 This package contains OCaml language development package for NBD
109 library. Install this if you want to compile OCaml software which uses
112 %description -n ocaml-%{name}-devel -l pl.UTF-8
113 Pakiet programistyczny wiązań OCamla do biblioteki NBD. Należy go
114 zainstalować, aby móc kompilować programy w OCamlu wykorzystujące NBD.
116 %package -n python3-%{name}
117 Summary: Python 3 bindings for NBD library
118 Summary(pl.UTF-8): Wiązania Pythona 3 do biblioteki NBD
119 Group: Libraries/Python
120 Requires: %{name} = %{version}-%{release}
122 %description -n python3-%{name}
123 This package contains Python 3 bindings for NBD library.
125 %description -n python3-%{name} -l pl.UTF-8
126 Ten pakiet zawiera wiązania Pythona do biblioteki NBD.
129 Summary: FUSE support for NBD library
130 Summary(pl.UTF-8): Obsługa FUSE do biblioteki NBD
131 License: LGPL v2+ and BSD
132 Group: Applications/System
133 Requires: %{name} = %{version}-%{release}
135 %description -n nbdfuse
136 This package contains FUSE support for NBD library.
138 %description -n nbdfuse -l pl.UTF-8
139 Ten pakiet zawiera obsługę FUSE do biblioteki NBD.
141 %package -n bash-completion-%{name}
142 Summary: Bash tab-completion for NBD utilities
143 Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla narzędzi NBD
144 Group: Applications/Shells
145 Requires: %{name} = %{version}-%{release}
146 Requires: bash-completion >= 2.0
147 Obsoletes: libnbd-bash-completion < 1.6.2
150 %description -n bash-completion-%{name}
151 Install this package if you want intelligent bash tab-completion for
152 NBD utilities (nbdcopy, nbdfuse, nbdinfo, nbdsh).
154 %description -n bash-completion-%{name} -l pl.UTF
155 Ten pakiet należy zainstalować, aby uzyskać inteligentne dopełnianie
156 parametrów dla narzędzi NBD (nbdcopy, nbdfuse, nbdinfo, nbdsh).
163 PYTHON=%{__python3} \
166 %{__enable_disable ocaml} \
169 --with-python-installdir=%{py3_sitedir} \
170 --with-tls-priority=@LIBNBD,SYSTEM
175 rm -rf $RPM_BUILD_ROOT
178 DESTDIR=$RPM_BUILD_ROOT
180 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
181 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
183 # Delete libtool crap.
184 find $RPM_BUILD_ROOT -name '*.la' -delete
187 %{__rm} $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/*.owner
190 # Delete the golang man page since we're not distributing the bindings.
191 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/libnbd-golang.3*
194 rm -rf $RPM_BUILD_ROOT
196 %post -p /sbin/ldconfig
197 %postun -p /sbin/ldconfig
200 %defattr(644,root,root,755)
201 %doc README SECURITY TODO
202 %attr(755,root,root) %{_bindir}/nbdcopy
203 %attr(755,root,root) %{_bindir}/nbdinfo
204 %attr(755,root,root) %{_libdir}/libnbd.so.*.*.*
205 %ghost %{_libdir}/libnbd.so.0
206 %{_mandir}/man1/nbdcopy.1*
207 %{_mandir}/man1/nbdinfo.1*
210 %defattr(644,root,root,755)
211 %doc examples/{LICENSE-FOR-EXAMPLES,*.c}
213 %{_includedir}/libnbd.h
214 %{_pkgconfigdir}/libnbd.pc
215 %{_mandir}/man3/libnbd.3*
216 %{_mandir}/man1/libnbd-release-notes-1.*.1*
217 %{_mandir}/man3/libnbd-security.3*
218 %{_mandir}/man3/nbd_*.3*
221 %files -n ocaml-%{name}
222 %defattr(644,root,root,755)
223 %dir %{_libdir}/ocaml/nbd
224 %{_libdir}/ocaml/nbd/META
225 %{_libdir}/ocaml/nbd/NBD.cmi
226 %{_libdir}/ocaml/nbd/mlnbd.cma
227 %attr(755,root,root) %{_libdir}/ocaml/stublibs/dllmlnbd.so
229 %files -n ocaml-%{name}-devel
230 %defattr(644,root,root,755)
231 %doc ocaml/examples/{LICENSE-FOR-EXAMPLES,*.ml}
232 %{_libdir}/ocaml/nbd/NBD.mli
233 %{_libdir}/ocaml/nbd/libmlnbd.a
234 %if %{with ocaml_opt}
235 %{_libdir}/ocaml/nbd/NBD.cmx
236 %{_libdir}/ocaml/nbd/mlnbd.a
237 %{_libdir}/ocaml/nbd/mlnbd.cmxa
239 %{_mandir}/man3/libnbd-ocaml.3*
240 %{_mandir}/man3/NBD.3*
241 %{_mandir}/man3/NBD.*.3*
244 %files -n python3-%{name}
245 %defattr(644,root,root,755)
246 %attr(755,root,root) %{_bindir}/nbdsh
247 %attr(755,root,root) %{py3_sitedir}/libnbdmod.cpython-*.so
248 %{py3_sitedir}/nbd.py
249 %{py3_sitedir}/nbdsh.py
250 %{py3_sitedir}/__pycache__/nbd.cpython-*.py[co]
251 %{py3_sitedir}/__pycache__/nbdsh.cpython-*.py[co]
252 %{_mandir}/man1/nbdsh.1*
255 %defattr(644,root,root,755)
256 %attr(755,root,root) %{_bindir}/nbdfuse
257 %{_mandir}/man1/nbdfuse.1*
259 %files -n bash-completion-%{name}
260 %defattr(644,root,root,755)
261 %{bash_compdir}/nbdcopy
262 %{bash_compdir}/nbdfuse
263 %{bash_compdir}/nbdinfo
264 %{bash_compdir}/nbdsh