nbdkit/nbdkit.spec

1247 lines
35 KiB
RPMSpec

%global _hardened_build 1
%ifarch aarch64 %{arm} %{ix86} x86_64 ppc %{power64}
%global have_libguestfs 1
%endif
# Architectures where the complete test suite must pass.
#
# On all other architectures, a simpler test suite must pass. This
# omits any tests that run full qemu, since running qemu under TCG is
# often broken on non-x86_64 arches.
%global complete_test_arches x86_64
# Currently everything has Python 2. RHEL 7 doesn't have Python 3.
%if 0%{?rhel} != 7
%global have_python3 1
%endif
# 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 1.5-development
Name: nbdkit
Version: 1.5.6
Release: 1%{?dist}
Summary: NBD server
License: BSD
URL: https://github.com/libguestfs/nbdkit
Source0: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name}-%{version}.tar.gz
%if 0%{verify_tarball_signature}
Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name}-%{version}.tar.gz.sig
# Keyring used to verify tarball signature.
Source2: libguestfs.keyring
%endif
%if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool
%endif
%if 0%{?rhel} == 7
# On RHEL 7, nothing in the virt stack is shipped on aarch64 and
# libguestfs was not shipped on POWER (fixed in 7.5). We could in
# theory make all of this work by having lots more conditionals, but
# for now limit this package to x86_64 on RHEL.
ExclusiveArch: x86_64
%endif
%ifnarch %{complete_test_arches}
BuildRequires: autoconf, automake, libtool
%endif
BuildRequires: /usr/bin/pod2man
BuildRequires: gnutls-devel
BuildRequires: libselinux-devel
%if 0%{?have_libguestfs}
BuildRequires: libguestfs-devel
%endif
BuildRequires: libvirt-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
BuildRequires: libcurl-devel
BuildRequires: e2fsprogs-devel
BuildRequires: bash-completion
BuildRequires: perl-devel
BuildRequires: perl(ExtUtils::Embed)
BuildRequires: python2-devel
%if 0%{?fedora} >= 29
BuildRequires: python-unversioned-command
%endif
%if 0%{?have_python3}
BuildRequires: python3-devel
%endif
%ifarch %{ocaml_native_compiler}
# Requires OCaml 4.02.2 which contains fix for
# http://caml.inria.fr/mantis/view.php?id=6693
BuildRequires: ocaml >= 4.02.2
%endif
BuildRequires: ruby-devel
BuildRequires: tcl-devel
BuildRequires: lua-devel
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
%endif
# Only for running the test suite:
BuildRequires: /usr/bin/certtool
BuildRequires: /usr/bin/qemu-img
BuildRequires: /usr/bin/socat
BuildRequires: /usr/sbin/ss
# nbdkit is a metapackage pulling the server and a useful subset
# of the plugins and filters.
Requires: nbdkit-server
Requires: nbdkit-basic-plugins
Requires: nbdkit-basic-filters
%description
NBD is a protocol for accessing block devices (hard disks and
disk-like things) over the network.
'nbdkit' is a toolkit for creating NBD servers.
The key features are:
* Multithreaded NBD server written in C with good performance.
* Well-documented, simple plugin API with a stable ABI guarantee.
Allows you to export "unconventional" block devices easily.
* Liberal license (BSD) allows nbdkit to be linked to proprietary
libraries or included in proprietary code.
In Fedora, '%{name}' is a meta-package which pulls in the core server
and a useful subset of plugins and filters.
If you want just the server, install '%{name}-server'.
To develop plugins, install the '%{name}-devel' package and start by
reading the nbdkit(1) and nbdkit-plugin(3) manual pages.
%package server
Summary: The %{name} server
License: BSD
%description server
This package contains the %{name} server with no plugins or filters.
%package basic-plugins
Summary: Basic plugins for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove these in Fedora 30.
Obsoletes: %{name}-plugin-file < 1.1.19-1
Obsoletes: %{name}-plugin-nbd < 1.1.19-1
Obsoletes: %{name}-plugin-streaming < 1.1.19-1
%description basic-plugins
This package contains some basic plugins for %{name} which have only
trivial dependencies.
* nbdkit-data-plugin
Serve small files directly from the command line.
* nbdkit-file-plugin
A file serving plugin.
* nbdkit-memory-plugin
A virtual memory plugin.
* nbdkit-nbd-plugin
An NBD forwarding plugin.
It provides an NBD server that forwards all traffic as a client to
another existing NBD server. A primary usage of this setup is to
alter the set of features available to the ultimate end client,
without having to change the original server (for example, to
convert between oldstyle and newtyle, or to add TLS support where
the original server lacks it).
* nbdkit-null-plugin
A null (bitbucket) plugin.
* nbdkit-pattern-plugin
Fixed test pattern.
* nbdkit-random-plugin
Random content plugin for testing.
* nbdkit-split-plugin
Concatenate one or more files into a single virtual disk.
* nbdkit-streaming-plugin
A streaming file serving plugin.
* nbdkit-zero-plugin
Zero-length plugin for testing.
%package example-plugins
Summary: Example plugins for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 30.
Obsoletes: %{name}-plugin-examples < 1.1.19-1
%description example-plugins
This package contains example plugins for %{name}.
# The plugins below have non-trivial dependencies are so are
# packaged separately.
%package curl-plugin
Summary: HTTP/FTP/SSH (cURL) plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-curl = %{version}-%{release}
Obsoletes: %{name}-plugin-curl <= %{version}-%{release}
%description curl-plugin
This package contains cURL (HTTP/FTP/SSH) support for %{name}.
%package ext2-plugin
Summary: ext2, ext3 and ext4 filesystem support for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-ext2 = %{version}-%{release}
Obsoletes: %{name}-plugin-ext2 <= %{version}-%{release}
%description ext2-plugin
This package contains ext2, ext3 and ext4 filesystem support for
%{name}.
%if 0%{?have_libguestfs}
%package guestfs-plugin
Summary: libguestfs plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-guestfs = %{version}-%{release}
Obsoletes: %{name}-plugin-guestfs <= %{version}-%{release}
%description guestfs-plugin
This package is a libguestfs plugin for %{name}.
%endif
%package gzip-plugin
Summary: GZip file serving plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-gzip = %{version}-%{release}
Obsoletes: %{name}-plugin-gzip <= %{version}-%{release}
%description gzip-plugin
This package is a gzip file serving plugin for %{name}.
%package libvirt-plugin
Summary: Libvirt plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-libvirt = %{version}-%{release}
Obsoletes: %{name}-plugin-libvirt <= %{version}-%{release}
%description libvirt-plugin
This package is a libvirt plugin for %{name}. It lets you access
libvirt guest disks readonly. It is implemented using the libvirt
virDomainBlockPeek API.
%package lua-plugin
Summary: Lua plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-lua = %{version}-%{release}
Obsoletes: %{name}-plugin-lua <= %{version}-%{release}
%description lua-plugin
This package lets you write Lua plugins for %{name}.
%ifarch %{ocaml_native_compiler}
%package ocaml-plugin
Summary: OCaml plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-ocaml = %{version}-%{release}
Obsoletes: %{name}-plugin-ocaml <= %{version}-%{release}
%description ocaml-plugin
This package lets you run OCaml plugins for %{name}.
To compile OCaml plugins you will also need to install
%{name}-ocaml-plugin-devel.
%package ocaml-plugin-devel
Summary: OCaml development environment for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-ocaml-devel = %{version}-%{release}
Obsoletes: %{name}-plugin-ocaml-devel <= %{version}-%{release}
%description ocaml-plugin-devel
This package lets you write OCaml plugins for %{name}.
%endif
%package perl-plugin
Summary: Perl plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-perl = %{version}-%{release}
Obsoletes: %{name}-plugin-perl <= %{version}-%{release}
%description perl-plugin
This package lets you write Perl plugins for %{name}.
%package python-plugin-common
Summary: Python 2 and 3 plugin common files for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-python-common = %{version}-%{release}
Obsoletes: %{name}-plugin-python-common <= %{version}-%{release}
%description python-plugin-common
This package contains common files shared between Python 2
and Python 3 %{name} plugins.
You should not install this package directly. Instead install
either %{name}-python2-plugin or %{name}-python3-plugin.
%package python2-plugin
Summary: Python 2 plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-python-plugin-common = %{version}-%{release}
# For upgrade path, remove this in Fedora 30.
Provides: %{name}-plugin-python = %{version}-%{release}
Obsoletes: %{name}-plugin-python <= %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-python2 = %{version}-%{release}
Obsoletes: %{name}-plugin-python2 <= %{version}-%{release}
%description python2-plugin
This package lets you write Python 2 plugins for %{name}.
%if 0%{?have_python3}
%package python3-plugin
Summary: Python 3 plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-python-plugin-common = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-python3 = %{version}-%{release}
Obsoletes: %{name}-plugin-python3 <= %{version}-%{release}
%description python3-plugin
This package lets you write Python 3 plugins for %{name}.
%endif
%package ruby-plugin
Summary: Ruby plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-ruby = %{version}-%{release}
Obsoletes: %{name}-plugin-ruby <= %{version}-%{release}
%description ruby-plugin
This package lets you write Ruby plugins for %{name}.
%package tar-plugin
Summary: Tar archive plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# XXX This dependency should be autogenerated.
Requires: %{name}-perl-plugin
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-tar = %{version}-%{release}
Obsoletes: %{name}-plugin-tar <= %{version}-%{release}
%description tar-plugin
This package is a tar archive plugin for %{name}.
%package tcl-plugin
Summary: Tcl plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-tcl = %{version}-%{release}
Obsoletes: %{name}-plugin-tcl <= %{version}-%{release}
%description tcl-plugin
This package lets you write Tcl plugins for %{name}.
%ifarch %{ix86} x86_64
%package vddk-plugin
Summary: VMware VDDK plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-vddk = %{version}-%{release}
Obsoletes: %{name}-plugin-vddk <= %{version}-%{release}
%description vddk-plugin
This package is a plugin for %{name} which connects to
VMware VDDK for accessing VMware disks and servers.
%endif
%package xz-plugin
Summary: XZ file serving plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 31.
Provides: %{name}-plugin-xz = %{version}-%{release}
Obsoletes: %{name}-plugin-xz <= %{version}-%{release}
%description xz-plugin
This package is a xz file serving plugin for %{name}.
%package basic-filters
Summary: Basic filters for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description basic-filters
This package contains some basic filters for %{name} which have only
trivial dependencies.
* nbdkit-blocksize-filter
Adjust block size of requests sent to plugins.
* nbdkit-cache-filter
Server-side cache.
* nbdkig-cow-filter
Copy-on-write overlay for read-only plugins.
* nbdkit-delay-filter
Inject read and write delays.
* nbdkit-error-filter
Inject errors.
* nbdkit-fua-filter
Modify flush behaviour in plugins.
* nbdkit-log-filter
Log all transactions to a file.
* nbdkit-nozero-filter
Adjust handling of zero requests by plugins.
* nbdkit-offset-filter
Serve an offset and range.
* nbdkit-partition-filter
Serve a single partition.
* nbdkit-truncate-filter
Truncate, expand, round up or round down a plugin size.
%package devel
Summary: Development files and documentation for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: pkgconfig
%description devel
This package contains development files and documentation
for %{name}. Install this package if you want to develop
plugins for %{name}.
%package bash-completion
Summary: Bash tab-completion for %{name}
BuildArch: noarch
Requires: bash-completion >= 2.0
Requires: %{name}-server = %{version}-%{release}
%description bash-completion
Install this package if you want intelligent bash tab-completion
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
%ifnarch %{complete_test_arches}
# Simplify the test suite so it doesn't require qemu.
sed -i -e '/^if HAVE_LIBGUESTFS/,/^endif HAVE_LIBGUESTFS/d' tests/Makefile.am
sed -i -e '/^if HAVE_GUESTFISH/,/^endif HAVE_GUESTFISH/d' tests/Makefile.am
autoreconf -i
%endif
%build
# Force immediate binding for hardened build for plugins.
# https://bugzilla.redhat.com/show_bug.cgi?id=977446#c13
export LDFLAGS="$LDFLAGS -Wl,-z,now"
# Build for Python 3 in a separate subdirectory. Upstream does not
# support srcdir!=builddir so copy the whole source.
copy="$(mktemp -d)"
cp -a . "$copy"
mv "$copy" python3
%configure --disable-static --with-tls-priority=@NBDKIT,SYSTEM
make %{?_smp_mflags}
%if 0%{?have_python3}
pushd python3
export PYTHON=%{_bindir}/python3
%configure --disable-static --disable-lua --disable-perl --disable-ocaml --disable-ruby --disable-tcl
# Verify that it picked the correct version of Python
# to avoid RHBZ#1404631 happening again silently.
grep '^PYTHON_VERSION = 3' Makefile
make %{?_smp_mflags}
unset PYTHON
popd
%endif
%install
# Install for Python 2 and Python 3 separately.
# We do the Python 3 install first since that build is
# incomplete.
%if 0%{?have_python3}
pushd python3
%make_install
popd
pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/
mv nbdkit-python-plugin.so nbdkit-python3-plugin.so
popd
%endif
%make_install
pushd $RPM_BUILD_ROOT%{_libdir}/nbdkit/plugins/
mv nbdkit-python-plugin.so nbdkit-python2-plugin.so
# For backwards compatibility, "the" python plugin is Python 2.
# Probably we will change this in future if Fedora switches
# exclusively to Python 3.
ln -s nbdkit-python2-plugin.so nbdkit-python-plugin.so
popd
# Delete libtool crap.
find $RPM_BUILD_ROOT -name '*.la' -delete
# Delete the VDDK plugin on !x86 architectures since it is not
# applicable there.
%ifnarch %{ix86} x86_64
rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so
rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-vddk-plugin.1*
%endif
%check
# Workaround for broken libvirt (RHBZ#1138604).
mkdir -p $HOME/.cache/libvirt
# Make sure we can see the debug messages (RHBZ#1230160).
export LIBGUESTFS_DEBUG=1
export LIBGUESTFS_TRACE=1
make check -j1 || {
cat tests/test-suite.log
exit 1
}
%ifarch %{complete_test_arches}
%if 0%{?have_libguestfs}
%if 0%{?have_python3}
pushd python3
make check -j1 -C tests TESTS=test-python || {
cat tests/test-suite.log
exit 1
}
popd
%endif
%endif
%endif
%ifarch %{ocaml_native_compiler}
%ldconfig_scriptlets plugin-ocaml
%endif
%files
# metapackage so empty
%files server
%doc README
%license LICENSE
%{_sbindir}/nbdkit
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/filters
%{_mandir}/man1/nbdkit.1*
%{_mandir}/man1/nbdkit-captive.1*
%{_mandir}/man1/nbdkit-probing.1*
%{_mandir}/man1/nbdkit-service.1*
%{_mandir}/man1/nbdkit-tls.1*
%files basic-plugins
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-data-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-file-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-nbd-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-null-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-random-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-split-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so
%{_mandir}/man1/nbdkit-data-plugin.1*
%{_mandir}/man1/nbdkit-file-plugin.1*
%{_mandir}/man1/nbdkit-memory-plugin.1*
%{_mandir}/man1/nbdkit-nbd-plugin.1*
%{_mandir}/man1/nbdkit-null-plugin.1*
%{_mandir}/man1/nbdkit-pattern-plugin.1*
%{_mandir}/man1/nbdkit-random-plugin.1*
%{_mandir}/man1/nbdkit-split-plugin.1*
%{_mandir}/man1/nbdkit-streaming-plugin.1*
%{_mandir}/man1/nbdkit-zero-plugin.1*
%files example-plugins
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-example4-plugin
%{_mandir}/man1/nbdkit-example*-plugin.1*
%files curl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so
%{_mandir}/man1/nbdkit-curl-plugin.1*
%files ext2-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so
%{_mandir}/man1/nbdkit-ext2-plugin.1*
%if 0%{?have_libguestfs}
%files guestfs-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so
%{_mandir}/man1/nbdkit-guestfs-plugin.1*
%endif
%files gzip-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so
%{_mandir}/man1/nbdkit-gzip-plugin.1*
%files libvirt-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so
%{_mandir}/man1/nbdkit-libvirt-plugin.1*
%files lua-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so
%{_mandir}/man3/nbdkit-lua-plugin.3*
%ifarch %{ocaml_native_compiler}
%files ocaml-plugin
%doc README
%license LICENSE
%{_libdir}/libnbdkitocaml.so.*
%files ocaml-plugin-devel
%{_libdir}/libnbdkitocaml.so
%{_libdir}/ocaml/NBDKit.*
%{_mandir}/man3/nbdkit-ocaml-plugin.3*
%endif
%files perl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so
%{_mandir}/man3/nbdkit-perl-plugin.3*
%files python-plugin-common
%doc README
%license LICENSE
%{_mandir}/man3/nbdkit-python-plugin.3*
%files python2-plugin
%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so
%if 0%{?have_python3}
%files python3-plugin
%{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so
%endif
%files ruby-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so
%{_mandir}/man3/nbdkit-ruby-plugin.3*
%files tar-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-tar-plugin
%{_mandir}/man1/nbdkit-tar-plugin.1*
%files tcl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so
%{_mandir}/man3/nbdkit-tcl-plugin.3*
%ifarch %{ix86} x86_64
%files vddk-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so
%{_mandir}/man1/nbdkit-vddk-plugin.1*
%endif
%files xz-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so
%{_mandir}/man1/nbdkit-xz-plugin.1*
%files basic-filters
%doc README
%license LICENSE
%{_libdir}/%{name}/filters/nbdkit-blocksize-filter.so
%{_libdir}/%{name}/filters/nbdkit-cache-filter.so
%{_libdir}/%{name}/filters/nbdkit-cow-filter.so
%{_libdir}/%{name}/filters/nbdkit-delay-filter.so
%{_libdir}/%{name}/filters/nbdkit-error-filter.so
%{_libdir}/%{name}/filters/nbdkit-fua-filter.so
%{_libdir}/%{name}/filters/nbdkit-log-filter.so
%{_libdir}/%{name}/filters/nbdkit-nozero-filter.so
%{_libdir}/%{name}/filters/nbdkit-offset-filter.so
%{_libdir}/%{name}/filters/nbdkit-partition-filter.so
%{_libdir}/%{name}/filters/nbdkit-truncate-filter.so
%{_mandir}/man1/nbdkit-blocksize-filter.1*
%{_mandir}/man1/nbdkit-cache-filter.1*
%{_mandir}/man1/nbdkit-cow-filter.1*
%{_mandir}/man1/nbdkit-delay-filter.1*
%{_mandir}/man1/nbdkit-error-filter.1*
%{_mandir}/man1/nbdkit-fua-filter.1*
%{_mandir}/man1/nbdkit-log-filter.1*
%{_mandir}/man1/nbdkit-nozero-filter.1*
%{_mandir}/man1/nbdkit-offset-filter.1*
%{_mandir}/man1/nbdkit-partition-filter.1*
%{_mandir}/man1/nbdkit-truncate-filter.1*
%files devel
%doc OTHER_PLUGINS README TODO
%license LICENSE
# Include the source of the example plugins in the documentation.
%doc plugins/example*/*.c
%doc plugins/example4/nbdkit-example4-plugin
%doc plugins/lua/example.lua
%doc plugins/perl/example.pl
%doc plugins/python/example.py
%doc plugins/ruby/example.rb
%doc plugins/tcl/example.tcl
%{_includedir}/nbdkit-common.h
%{_includedir}/nbdkit-filter.h
%{_includedir}/nbdkit-plugin.h
%{_mandir}/man3/nbdkit-filter.3*
%{_mandir}/man3/nbdkit-plugin.3*
%{_libdir}/pkgconfig/nbdkit.pc
%files bash-completion
%license LICENSE
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/nbdkit
%changelog
* Thu Aug 16 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.6-1
- New upstream version 1.5.6.
* Tue Aug 14 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-2
- Make nbdkit a metapackage.
- Package server in nbdkit-server subpackage.
- Rename all nbdkit-plugin-FOO to nbdkit-FOO-plugin to match upstream.
* Mon Aug 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-1
- New upstream version 1.5.5.
- New plugin: data.
* Mon Aug 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.4-1
- New upstream version 1.5.4.
- Add topic man pages.
* Mon Aug 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.3-1
- New upstream version 1.5.3.
- New filter: error.
* Wed Aug 1 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.2-1
- New upstream version 1.5.2.
- Remove patches which are all upstream.
- New filter: truncate.
* Tue Jul 24 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-2
- Enable VDDK plugin on x86-64 only.
* Fri Jul 20 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.1-1
- New upstream version 1.5.1.
- Remove patches, all upstream in this version.
- Small refactorings in the spec file.
* Sun Jul 15 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.0-3
- Add all upstream patches since 1.5.0.
- New pattern plugin.
- Add fixes for 32 bit platforms i686 and armv7.
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sat Jul 7 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.0-1
- New upstream version 1.5.0.
- Add Lua plugin and nbdkit-plugin-lua subpackage.
- Make python-unversioned-command dependent on Fedora >= 29.
* Fri Jul 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.4.0-1
- New upstream version 1.4.0.
- Add nbdkit-plugin-tcl subpackage.
- +BR python-unversioned-command
* Tue Jul 03 2018 Petr Pisar <ppisar@redhat.com> - 1.3.4-4
- Perl 5.28 rebuild
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 1.3.4-3
- Rebuilt for Python 3.7
* Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.3.4-2
- Perl 5.28 rebuild
* Sat Jun 23 2018 Richard W.M. Jones <rjones@redhat.com> - 1.3.4-1
- New upstream version 1.3.4.
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.3.3-2
- Rebuilt for Python 3.7
* Mon Jun 11 2018 Richard W.M. Jones <rjones@redhat.com> - 1.3.3-1
- New upstream version 1.3.3.
- New plugins: nbdkit-zero-plugin, nbdkit-random-plugin.
- Remove upstream patches.
* Sat Jun 9 2018 Richard W.M. Jones <rjones@redhat.com> - 1.3.2-2
- New upstream version 1.3.2.
- Remove patches now upstream.
- New ext2 plugin and subpackage, requires e2fsprogs-devel to build.
- Enable tarball signatures.
- Add upstream patch to fix tests when guestfish not available.
- Enable bash tab completion.
* Wed Jun 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.3.1-1
- New upstream version 1.3.1.
- Add patch to work around libvirt problem with relative socket paths.
- Add patch to fix the xz plugin test with recent guestfish.
* Fri Apr 6 2018 Richard W.M. Jones <rjones@redhat.com> - 1.3.0-1
- Move to development branch version 1.3.0.
- New filters: blocksize, fua, log, nozero.
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.1.28-5
- Escape macros in %%changelog
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.28-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jan 31 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.1.28-3
- Switch to %%ldconfig_scriptlets
* Fri Jan 26 2018 Richard W.M. Jones <rjones@redhat.com> - 1.1.28-2
- Run a simplified test suite on all arches.
* Mon Jan 22 2018 Richard W.M. Jones <rjones@redhat.com> - 1.1.28-1
- New upstream version 1.1.28.
- Add two new filters to nbdkit-basic-filters.
* Sat Jan 20 2018 Björn Esser <besser82@fedoraproject.org> - 1.1.27-2
- Rebuilt for switch to libxcrypt
* Sat Jan 20 2018 Richard W.M. Jones <rjones@redhat.com> - 1.1.27-1
- New upstream version 1.1.27.
- Add new subpackage nbdkit-basic-filters containing new filters.
* Thu Jan 11 2018 Richard W.M. Jones <rjones@redhat.com> - 1.1.26-2
- Rebuild against updated Ruby.
* Sat Dec 23 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.26-1
- New upstream version 1.1.26.
- Add new pkg-config file and dependency.
* Wed Dec 06 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.25-1
- New upstream version 1.1.25.
* Tue Dec 05 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.24-1
- New upstream version 1.1.24.
- Add tar plugin (new subpackage nbdkit-plugin-tar).
* Tue Dec 05 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.23-1
- New upstream version 1.1.23.
- Add example4 plugin.
- Python3 tests require libguestfs so disable on s390x.
* Sun Dec 03 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.22-1
- New upstream version 1.1.22.
- Enable tests on Fedora.
* Sat Dec 02 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.20-1
- New upstream version 1.1.20.
- Add nbdkit-split-plugin to basic plugins.
* Sat Dec 02 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.19-2
- OCaml 4.06.0 rebuild.
* Thu Nov 30 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.19-1
- New upstream version 1.1.19.
- Combine all the simple plugins in %%{name}-basic-plugins.
- Add memory and null plugins.
- Rename the example plugins subpackage.
- Use %%license instead of %%doc for license file.
- Remove patches now upstream.
* Wed Nov 29 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.18-4
- Fix Python 3 builds / RHEL macros (RHBZ#1404631).
* Tue Nov 21 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.18-3
- New upstream version 1.1.18.
- Add NBD forwarding plugin.
- Add libselinux-devel so that SELinux support is enabled in the daemon.
- Apply all patches from upstream since 1.1.18.
* Fri Oct 20 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.16-2
- New upstream version 1.1.16.
- Disable python3 plugin on RHEL/EPEL <= 7.
- Only ship on x86_64 in RHEL/EPEL <= 7.
* Wed Sep 27 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.15-1
- New upstream version 1.1.15.
- Enable TLS support.
* Fri Sep 01 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.14-1
- New upstream version 1.1.14.
* Fri Aug 25 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.13-1
- New upstream version 1.1.13.
- Remove patches which are all upstream.
- Remove grubby hack, should not be needed with modern supermin.
* Sat Aug 19 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-13
- Rebuild for OCaml 4.05.0.
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.12-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.12-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Jun 27 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-10
- Rebuild for OCaml 4.04.2.
* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 1.1.12-9
- Perl 5.26 rebuild
* Mon May 15 2017 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-8
- Rebuild for OCaml 4.04.1.
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.12-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Jan 12 2017 Vít Ondruch <vondruch@redhat.com> - 1.1.12-6
- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.4
* Fri Dec 23 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-5
- Rebuild for Python 3.6 update.
* Wed Dec 14 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-4
- Fix python3 subpackage so it really uses python3 (RHBZ#1404631).
* Sat Nov 05 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-3
- Rebuild for OCaml 4.04.0.
* Mon Oct 03 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-2
- Compile Python 2 and Python 3 versions of the plugin.
* Wed Jun 08 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.12-1
- New upstream version 1.1.12
- Enable Ruby plugin.
- Disable tests on Rawhide because libvirt is broken again (RHBZ#1344016).
* Wed May 25 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.11-10
- Add another upstream patch since 1.1.11.
* Mon May 23 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.11-9
- Add all patches upstream since 1.1.11 (fixes RHBZ#1336758).
* Tue May 17 2016 Jitka Plesnikova <jplesnik@redhat.com> - 1.1.11-7
- Perl 5.24 rebuild
* Wed Mar 09 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.11-6
- When tests fail, dump out test-suite.log so we can debug it.
* Fri Feb 05 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.11-5
- Don't run tests on x86, because kernel is broken there
(https://bugzilla.redhat.com/show_bug.cgi?id=1302071)
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.11-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Mon Jan 11 2016 Richard W.M. Jones <rjones@redhat.com> - 1.1.11-3
- Add support for newstyle NBD protocol (RHBZ#1297100).
* Sat Oct 31 2015 Richard W.M. Jones <rjones@redhat.com> - 1.1.11-1
- New upstream version 1.1.11.
* Thu Jul 30 2015 Richard W.M. Jones <rjones@redhat.com> - 1.1.10-3
- OCaml 4.02.3 rebuild.
* Sat Jun 20 2015 Richard W.M. Jones <rjones@redhat.com> - 1.1.10-2
- Enable libguestfs plugin on aarch64.
* Fri Jun 19 2015 Richard W.M. Jones <rjones@redhat.com> - 1.1.10-1
- New upstream version.
- Enable now working OCaml plugin (requires OCaml >= 4.02.2).
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.9-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu Jun 11 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.1.9-5
- Perl 5.22 rebuild
* Wed Jun 10 2015 Richard W.M. Jones <rjones@redhat.com> - 1.1.9-4
- Enable debugging messages when running make check.
* Sat Jun 06 2015 Jitka Plesnikova <jplesnik@redhat.com> - 1.1.9-3
- Perl 5.22 rebuild
* Tue Oct 14 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.9-2
- New upstream version 1.1.9.
- Add the streaming plugin.
- Include fix for streaming plugin in 1.1.9.
* Wed Sep 10 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.8-4
- Rebuild for updated Perl in Rawhide.
- Workaround for broken libvirt (RHBZ#1138604).
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 21 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.8-1
- New upstream version 1.1.8.
- Add support for cURL, and new nbdkit-plugin-curl package.
* Fri Jun 20 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.7-1
- New upstream version 1.1.7.
- Remove patches which are now all upstream.
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu Mar 06 2014 Dan Horák <dan[at]danny.cz> - 1.1.6-4
- libguestfs is available only on selected arches
* Fri Feb 21 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.6-3
- Backport some upstream patches, fixing a minor bug and adding more tests.
- Enable the tests since kernel bug is fixed.
* Sun Feb 16 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.6-1
- New upstream version 1.1.6.
* Sat Feb 15 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.5-2
- New upstream version 1.1.5.
- Enable the new Python plugin.
- Perl plugin man page moved to section 3.
- Perl now requires ExtUtils::Embed.
* Mon Feb 10 2014 Richard W.M. Jones <rjones@redhat.com> - 1.1.4-1
- New upstream version 1.1.4.
- Enable the new Perl plugin.
* Sun Aug 4 2013 Richard W.M. Jones <rjones@redhat.com> - 1.1.3-1
- New upstream version 1.1.3 which fixes some test problems.
- Disable tests because Rawhide kernel is broken (RHBZ#991808).
- Remove a single quote from description which confused emacs.
- Remove patch, now upstream.
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sun Jul 21 2013 Richard W.M. Jones <rjones@redhat.com> - 1.1.2-3
- Fix segfault when IPv6 client is used (RHBZ#986601).
* Tue Jul 16 2013 Richard W.M. Jones <rjones@redhat.com> - 1.1.2-2
- New development version 1.1.2.
- Disable the tests on Fedora <= 18.
* Tue Jun 25 2013 Richard W.M. Jones <rjones@redhat.com> - 1.1.1-1
- New development version 1.1.1.
- Add libguestfs plugin.
- Run the test suite.
* Mon Jun 24 2013 Richard W.M. Jones <rjones@redhat.com> - 1.0.0-4
- Initial release.