# If we should verify tarball signature with GPGv2. %global verify_tarball_signature 1 # If there are patches which touch autotools files, set this to 1. %global patches_touch_autotools %{nil} # The source directory. %global source_directory 0.x-unstable-api Name: libnbd Version: 0.1.1 Release: 1%{?dist} Summary: NBD client library in userspace License: LGPLv2+ URL: https://github.com/libguestfs/libnbd Source0: http://libguestfs.org/download/libnbd/%{source_directory}/%{name}-%{version}.tar.gz Source1: http://libguestfs.org/download/libnbd/%{source_directory}/%{name}-%{version}.tar.gz.sig # Keyring used to verify tarball signature. This contains the single # key from here: # https://pgp.key-server.io/pks/lookup?search=rjones%40redhat.com&fingerprint=on&op=vindex Source2: libguestfs.keyring # Patches. # (none) %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif %if 0%{verify_tarball_signature} BuildRequires: gnupg2 %endif BuildRequires: gcc BuildRequires: /usr/bin/pod2man BuildRequires: gnutls-devel BuildRequires: python3-devel # Only for running the test suite. BuildRequires: gnutls-utils BuildRequires: nbdkit BuildRequires: nbd BuildRequires: qemu-img %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 devel Summary: Development headers for %{name} License: LGPLv2+ and BSD Requires: %{name}%{?_isa} = %{version}-%{release} %description devel This package contains development headers for %{name}. %package -n python3-%{name} Summary: Python 3 bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %{?python_provide:%python_provide python3-%{name}} # The Python module happens to be called lib*.so. Don't scan it and # have a bogus "Provides: libnbdmod.*". %global __provides_exclude_from ^%{python3_sitearch}/lib.*\\.so %description -n python3-%{name} python3-%{name} contains Python 3 bindings for %{name}. %prep %if 0%{verify_tarball_signature} tmphome="$(mktemp -d)" gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} %endif %autosetup -p1 %if 0%{patches_touch_autotools} autoreconf -i %endif %build %configure \ --disable-static \ --with-tls-priority=@LIBNBD,SYSTEM \ PYTHON=%{__python3} \ --enable-python make %{?_smp_mflags} %install %make_install # Delete libtool crap. find $RPM_BUILD_ROOT -name '*.la' -delete %check make %{?_smp_mflags} check || { cat tests/test-suite.log exit 1 } %files %doc README %license COPYING.LIB %{_libdir}/libnbd.so.* %files devel %doc TODO examples/*.c %license examples/LICENSE-FOR-EXAMPLES %{_includedir}/libnbd.h %{_libdir}/libnbd.so %{_libdir}/pkgconfig/libnbd.pc %{_mandir}/man3/libnbd.3* %{_mandir}/man3/libnbd-api.3* %files -n python3-%{name} %{python3_sitearch}/libnbdmod*.so %{python3_sitearch}/nbd.py %{python3_sitearch}/__pycache__/nbd*.py* %{_bindir}/nbdsh %{_mandir}/man1/nbdsh.1* %changelog * Tue May 28 2019 Richard W.M. Jones - 0.1.1-1 - Fix license in man pages and examples. - Add nbdsh(1) man page. - Include the signature and keyring even if validation is disabled. - Update devel subpackage license. - Fix old FSF address in Python tests. - Filter Python provides. - Remove executable permission on the tar.gz.sig file. - Initial release.