Make nbdkit a metapackage.

Package server in nbdkit-server subpackage.
Rename all nbdkit-plugin-FOO to nbdkit-FOO-plugin to match upstream.
This commit is contained in:
Richard W.M. Jones 2018-08-14 12:08:45 +01:00
parent d8bb7c2fa0
commit b772c3dfae
1 changed files with 179 additions and 82 deletions

View File

@ -27,7 +27,7 @@
Name: nbdkit Name: nbdkit
Version: 1.5.5 Version: 1.5.5
Release: 1%{?dist} Release: 2%{?dist}
Summary: NBD server Summary: NBD server
License: BSD License: BSD
@ -94,6 +94,13 @@ BuildRequires: /usr/bin/qemu-img
BuildRequires: /usr/bin/socat BuildRequires: /usr/bin/socat
BuildRequires: /usr/sbin/ss 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 %description
NBD is a protocol for accessing block devices (hard disks and NBD is a protocol for accessing block devices (hard disks and
disk-like things) over the network. disk-like things) over the network.
@ -110,17 +117,29 @@ The key features are:
* Liberal license (BSD) allows nbdkit to be linked to proprietary * Liberal license (BSD) allows nbdkit to be linked to proprietary
libraries or included in proprietary code. libraries or included in proprietary code.
You probably want to install one of more plugins (%{name}-plugin-*). In Fedora, '%{name}' is a meta-package which pulls in the core server
and a useful subset of plugins and filters.
To develop plugins, install the %{name}-devel package and start by 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. 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 %package basic-plugins
Summary: Basic plugins for %{name} Summary: Basic plugins for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove these in Fedora 30. # For upgrade path, remove these in Fedora 30.
Obsoletes: %{name}-plugin-file < 1.1.19-1 Obsoletes: %{name}-plugin-file < 1.1.19-1
@ -184,7 +203,7 @@ trivial dependencies.
Summary: Example plugins for %{name} Summary: Example plugins for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 30. # For upgrade path, remove this in Fedora 30.
Obsoletes: %{name}-plugin-examples < 1.1.19-1 Obsoletes: %{name}-plugin-examples < 1.1.19-1
@ -197,217 +216,286 @@ This package contains example plugins for %{name}.
# The plugins below have non-trivial dependencies are so are # The plugins below have non-trivial dependencies are so are
# packaged separately. # packaged separately.
%package plugin-curl %package curl-plugin
Summary: HTTP/FTP/SSH (cURL) plugin for %{name} Summary: HTTP/FTP/SSH (cURL) plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-curl %description curl-plugin
This package contains cURL (HTTP/FTP/SSH) support for %{name}. This package contains cURL (HTTP/FTP/SSH) support for %{name}.
%package plugin-ext2 %package ext2-plugin
Summary: ext2, ext3 and ext4 filesystem support for %{name} Summary: ext2, ext3 and ext4 filesystem support for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-ext2 %description ext2-plugin
This package contains ext2, ext3 and ext4 filesystem support for This package contains ext2, ext3 and ext4 filesystem support for
%{name}. %{name}.
%if 0%{?have_libguestfs} %if 0%{?have_libguestfs}
%package plugin-guestfs %package guestfs-plugin
Summary: libguestfs plugin for %{name} Summary: libguestfs plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-guestfs %description guestfs-plugin
This package is a libguestfs plugin for %{name}. This package is a libguestfs plugin for %{name}.
%endif %endif
%package plugin-gzip %package gzip-plugin
Summary: GZip file serving plugin for %{name} Summary: GZip file serving plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-gzip %description gzip-plugin
This package is a gzip file serving plugin for %{name}. This package is a gzip file serving plugin for %{name}.
%package plugin-libvirt %package libvirt-plugin
Summary: Libvirt plugin for %{name} Summary: Libvirt plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-libvirt %description libvirt-plugin
This package is a libvirt plugin for %{name}. It lets you access This package is a libvirt plugin for %{name}. It lets you access
libvirt guest disks readonly. It is implemented using the libvirt libvirt guest disks readonly. It is implemented using the libvirt
virDomainBlockPeek API. virDomainBlockPeek API.
%package plugin-lua %package lua-plugin
Summary: Lua plugin for %{name} Summary: Lua plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-lua %description lua-plugin
This package lets you write Lua plugins for %{name}. This package lets you write Lua plugins for %{name}.
%ifarch %{ocaml_native_compiler} %ifarch %{ocaml_native_compiler}
%package plugin-ocaml %package ocaml-plugin
Summary: OCaml plugin for %{name} Summary: OCaml plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-ocaml %description ocaml-plugin
This package lets you run OCaml plugins for %{name}. This package lets you run OCaml plugins for %{name}.
To compile OCaml plugins you will also need to install To compile OCaml plugins you will also need to install
%{name}-plugin-ocaml-devel. %{name}-ocaml-plugin-devel.
%package plugin-ocaml-devel %package ocaml-plugin-devel
Summary: OCaml development environment for %{name} Summary: OCaml development environment for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-ocaml%{?_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 plugin-ocaml-devel %description ocaml-plugin-devel
This package lets you write OCaml plugins for %{name}. This package lets you write OCaml plugins for %{name}.
%endif %endif
%package plugin-perl %package perl-plugin
Summary: Perl plugin for %{name} Summary: Perl plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-perl %description perl-plugin
This package lets you write Perl plugins for %{name}. This package lets you write Perl plugins for %{name}.
%package plugin-python-common %package python-plugin-common
Summary: Python 2 and 3 plugin common files for %{name} Summary: Python 2 and 3 plugin common files for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-python-common %description python-plugin-common
This package contains common files shared between Python 2 This package contains common files shared between Python 2
and Python 3 %{name} plugins. and Python 3 %{name} plugins.
You should not install this package directly. Instead install You should not install this package directly. Instead install
either %{name}-plugin-python2 or %{name}-plugin-python3. either %{name}-python2-plugin or %{name}-python3-plugin.
%package plugin-python2 %package python2-plugin
Summary: Python 2 plugin for %{name} Summary: Python 2 plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-python-common = %{version}-%{release} Requires: %{name}-python-plugin-common = %{version}-%{release}
# For upgrade path, remove this in Fedora 30.
Provides: %{name}-plugin-python = %{version}-%{release} Provides: %{name}-plugin-python = %{version}-%{release}
Obsoletes: %{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 plugin-python2
%description python2-plugin
This package lets you write Python 2 plugins for %{name}. This package lets you write Python 2 plugins for %{name}.
%if 0%{?have_python3} %if 0%{?have_python3}
%package plugin-python3 %package python3-plugin
Summary: Python 3 plugin for %{name} Summary: Python 3 plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-python-common = %{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 plugin-python3 %description python3-plugin
This package lets you write Python 3 plugins for %{name}. This package lets you write Python 3 plugins for %{name}.
%endif %endif
%package plugin-ruby %package ruby-plugin
Summary: Ruby plugin for %{name} Summary: Ruby plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-ruby %description ruby-plugin
This package lets you write Ruby plugins for %{name}. This package lets you write Ruby plugins for %{name}.
%package plugin-tar %package tar-plugin
Summary: Tar archive plugin for %{name} Summary: Tar archive plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
# XXX This dependency should be autogenerated. # XXX This dependency should be autogenerated.
Requires: %{name}-plugin-perl 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 plugin-tar %description tar-plugin
This package is a tar archive plugin for %{name}. This package is a tar archive plugin for %{name}.
%package plugin-tcl %package tcl-plugin
Summary: Tcl plugin for %{name} Summary: Tcl plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-tcl %description tcl-plugin
This package lets you write Tcl plugins for %{name}. This package lets you write Tcl plugins for %{name}.
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64
%package plugin-vddk %package vddk-plugin
Summary: VMware VDDK plugin for %{name} Summary: VMware VDDK plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-vddk %description vddk-plugin
This package is a plugin for %{name} which connects to This package is a plugin for %{name} which connects to
VMware VDDK for accessing VMware disks and servers. VMware VDDK for accessing VMware disks and servers.
%endif %endif
%package plugin-xz %package xz-plugin
Summary: XZ file serving plugin for %{name} Summary: XZ file serving plugin for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} 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 plugin-xz %description xz-plugin
This package is a xz file serving plugin for %{name}. This package is a xz file serving plugin for %{name}.
@ -415,7 +503,7 @@ This package is a xz file serving plugin for %{name}.
Summary: Basic filters for %{name} Summary: Basic filters for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description basic-filters %description basic-filters
@ -471,7 +559,7 @@ trivial dependencies.
Summary: Development files and documentation for %{name} Summary: Development files and documentation for %{name}
License: BSD License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: pkgconfig Requires: pkgconfig
@ -485,7 +573,7 @@ plugins for %{name}.
Summary: Bash tab-completion for %{name} Summary: Bash tab-completion for %{name}
BuildArch: noarch BuildArch: noarch
Requires: bash-completion >= 2.0 Requires: bash-completion >= 2.0
Requires: %{name} = %{version}-%{release} Requires: %{name}-server = %{version}-%{release}
%description bash-completion %description bash-completion
@ -606,6 +694,10 @@ popd
%files %files
# metapackage so empty
%files server
%doc README %doc README
%license LICENSE %license LICENSE
%{_sbindir}/nbdkit %{_sbindir}/nbdkit
@ -652,14 +744,14 @@ popd
%{_mandir}/man1/nbdkit-example*-plugin.1* %{_mandir}/man1/nbdkit-example*-plugin.1*
%files plugin-curl %files curl-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so %{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so
%{_mandir}/man1/nbdkit-curl-plugin.1* %{_mandir}/man1/nbdkit-curl-plugin.1*
%files plugin-ext2 %files ext2-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so %{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so
@ -667,7 +759,7 @@ popd
%if 0%{?have_libguestfs} %if 0%{?have_libguestfs}
%files plugin-guestfs %files guestfs-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so %{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so
@ -675,21 +767,21 @@ popd
%endif %endif
%files plugin-gzip %files gzip-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so %{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so
%{_mandir}/man1/nbdkit-gzip-plugin.1* %{_mandir}/man1/nbdkit-gzip-plugin.1*
%files plugin-libvirt %files libvirt-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so %{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so
%{_mandir}/man1/nbdkit-libvirt-plugin.1* %{_mandir}/man1/nbdkit-libvirt-plugin.1*
%files plugin-lua %files lua-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so %{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so
@ -697,57 +789,57 @@ popd
%ifarch %{ocaml_native_compiler} %ifarch %{ocaml_native_compiler}
%files plugin-ocaml %files ocaml-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/libnbdkitocaml.so.* %{_libdir}/libnbdkitocaml.so.*
%files plugin-ocaml-devel %files ocaml-plugin-devel
%{_libdir}/libnbdkitocaml.so %{_libdir}/libnbdkitocaml.so
%{_libdir}/ocaml/NBDKit.* %{_libdir}/ocaml/NBDKit.*
%{_mandir}/man3/nbdkit-ocaml-plugin.3* %{_mandir}/man3/nbdkit-ocaml-plugin.3*
%endif %endif
%files plugin-perl %files perl-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so %{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so
%{_mandir}/man3/nbdkit-perl-plugin.3* %{_mandir}/man3/nbdkit-perl-plugin.3*
%files plugin-python-common %files python-plugin-common
%doc README %doc README
%license LICENSE %license LICENSE
%{_mandir}/man3/nbdkit-python-plugin.3* %{_mandir}/man3/nbdkit-python-plugin.3*
%files plugin-python2 %files python2-plugin
%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so %{_libdir}/%{name}/plugins/nbdkit-python-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so %{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so
%if 0%{?have_python3} %if 0%{?have_python3}
%files plugin-python3 %files python3-plugin
%{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so %{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so
%endif %endif
%files plugin-ruby %files ruby-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so %{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so
%{_mandir}/man3/nbdkit-ruby-plugin.3* %{_mandir}/man3/nbdkit-ruby-plugin.3*
%files plugin-tar %files tar-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-tar-plugin %{_libdir}/%{name}/plugins/nbdkit-tar-plugin
%{_mandir}/man1/nbdkit-tar-plugin.1* %{_mandir}/man1/nbdkit-tar-plugin.1*
%files plugin-tcl %files tcl-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so %{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so
@ -755,7 +847,7 @@ popd
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64
%files plugin-vddk %files vddk-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so %{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so
@ -763,7 +855,7 @@ popd
%endif %endif
%files plugin-xz %files xz-plugin
%doc README %doc README
%license LICENSE %license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so %{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so
@ -823,6 +915,11 @@ popd
%changelog %changelog
* 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 * Mon Aug 13 2018 Richard W.M. Jones <rjones@redhat.com> - 1.5.5-1
- New upstream version 1.5.5. - New upstream version 1.5.5.
- New plugin: data. - New plugin: data.