libnbd/libnbd.spec
Charles Arnold ca182658fe - Update to version 1.12.2:
* Version 1.12.2.
  * Fix for CVE-2022-0485 Silent data corruption when using
    nbdcopy(1).
  * New APIs
    get_pread_initialize
    set_pread_initialize
      Control whether libnbd clears the pread buffer to avoid
      leaking memory contents if the client does not properly
      handle errors. These were added as part of the fix for
      CVE-2022-0485 (Eric Blake).
    get_request_block_size
    set_request_block_size
      Control whether libnbd requests block size constraints from
      the server during negotiation (Eric Blake).
  * Error messages about incorrect URIs in nbd_connect_uri(3) have
    been improved to make common mistakes clearer for the user.
  * New syntax: nbdinfo [ CMD ... ] allowing you to query the
    properties of an NBD server directly.
  * nbdcopy(1) new --queue-size option to control the maximum
    size of the internal buffer (Nir Soffer).
  * nbdcopy(1) now names the source and destination handles to
    make it easier to understand debug output.
  * New OCaml NBD.with_handle helper which ensures that NBD.close
    is always called even if the inner code throws an exception.
  * The OCaml bindings now consistently use the correct types for
    buffer sizes everywhere (Laszlo Ersek).
  * Several improvements and fixes to the golang bindings and
    tests. The golang bindings have been relicensed to LGPLv2+
    like the rest of the library and are now published as a golang

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libnbd?expand=0&rev=13
2022-05-16 17:01:42 +00:00

188 lines
4.7 KiB
RPMSpec

#
# spec file for package libnbd
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define sover 0
Name: libnbd
Version: 1.12.2
Release: 0
Summary: NBD client library in userspace
License: LGPL-2.1-or-later
URL: https://gitlab.com/nbdkit/libnbd
Source0: %{name}-%{version}.tar.gz
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: libtool
BuildRequires: ocaml-findlib
BuildRequires: pkg-config
BuildRequires: ocaml(compiler)
BuildRequires: perl(Pod::Man)
BuildRequires: perl(Pod::Simple)
BuildRequires: pkgconfig(bash-completion)
BuildRequires: pkgconfig(fuse3)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gnutls) >= 3.3.0
BuildRequires: pkgconfig(libxml-2.0)
Requires: libnbd%{sover} = %{version}
# Only for running the test suite.
BuildRequires: gcc-c++
BuildRequires: jq
%if 0%{?suse_version} >= 1550
BuildRequires: nbd
%endif
BuildRequires: qemu-tools
%description
NBD Network Block Device is a protocol for accessing Block Devices
(hard disks and disk-like things) over a Network.
This is the NBD client library in userspace, a simple library for
writing NBD clients.
The key features are:
* Synchronous and asynchronous APIs, both for ease of use and for
writing non-blocking, multithreaded clients.
* High performance.
* Minimal dependencies for the basic library.
* Well-documented, stable API.
* Bindings in several programming languages.
%package -n libnbd%{sover}
Summary: Core library for nbd
%description -n libnbd%{sover}
This is the NBD client library in userspace, a simple library for
writing NBD clients.
%package devel
Summary: Development headers for %{name}
Requires: libnbd%{sover} = %{version}-%{release}
%description devel
This package contains development headers for %{name}.
%package -n nbdfuse
Summary: FUSE support for %{name}
Requires: libnbd%{sover} = %{version}-%{release}
%description -n nbdfuse
This package contains FUSE support for %{name}.
%package bash-completion
Summary: Bash tab-completion for %{name}
BuildArch: noarch
Requires: bash-completion >= 2.0
Requires: libnbd%{sover} = %{version}-%{release}
%description bash-completion
Install this package if you want intelligent bash tab-completion
for %{name}.
%prep
%autosetup -p1
%build
%define _lto_cflags %{nil}
autoreconf -fiv
%configure \
--with-tls-priority=@LIBNBD,SYSTEM \
--enable-fuse \
--disable-golang \
--disable-python \
--disable-static
%make_build
%install
%make_install
%fdupes %{buildroot}
# Delete libtool crap.
find "%{buildroot}" -name '*.la' -delete
# Delete the golang man page since we're not distributing the bindings.
rm %{buildroot}/%{_mandir}/man3/libnbd-golang.3*
%check
# All fuse tests fail in Koji with:
# fusermount: entry for fuse/test-*.d not found in /etc/mtab
# for unknown reasons but probably related to the Koji environment.
for f in fuse/test-*.sh; do
rm $f
touch $f
chmod +x $f
done
%make_build check || {
for f in $(find . -name test-suite.log); do
echo
echo "==== $f ===="
cat $f
done
}
%post -n libnbd%{sover} -p /sbin/ldconfig
%postun -n libnbd%{sover} -p /sbin/ldconfig
%files
%doc README
%{_bindir}/nbdcopy
%{_bindir}/nbdinfo
%{_mandir}/man1/nbdcopy.1*
%{_mandir}/man1/nbdinfo.1*
%files -n libnbd%{sover}
%license COPYING.LIB
%{_libdir}/libnbd.so.%{sover}
%{_libdir}/libnbd.so.%{sover}.*
%dir %{_libdir}/ocaml/nbd
%{_libdir}/ocaml/nbd/META
%{_libdir}/ocaml/nbd/NBD.cmi
%{_libdir}/ocaml/nbd/mlnbd.cma
%{_libdir}/ocaml/stublibs/dllmlnbd.so
%{_libdir}/ocaml/stublibs/dllmlnbd.so.owner
%files devel
%{_includedir}/libnbd.h
%{_libdir}/libnbd.so
%{_libdir}/pkgconfig/libnbd.pc
%{_libdir}/ocaml/nbd/NBD.cmx
%{_libdir}/ocaml/nbd/mlnbd.cmxa
%{_libdir}/ocaml/nbd/NBD.mli
%{_libdir}/ocaml/nbd/mlnbd.a
%{_libdir}/ocaml/nbd/libmlnbd.a
%{_mandir}/man3/libnbd.3*
%{_mandir}/man3/libnbd-ocaml.3.gz
%{_mandir}/man1/libnbd-release-notes-1.*.1*
%{_mandir}/man3/libnbd-security.3*
%{_mandir}/man3/nbd_*.3*
%files -n nbdfuse
%{_bindir}/nbdfuse
%{_mandir}/man1/nbdfuse.1*
%files bash-completion
%{_datadir}/bash-completion
%changelog