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
Version: 1.5.5
Release: 1%{?dist}
Release: 2%{?dist}
Summary: NBD server
License: BSD
@ -94,6 +94,13 @@ 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.
@ -110,17 +117,29 @@ The key features are:
* Liberal license (BSD) allows nbdkit to be linked to proprietary
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.
%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}%{?_isa} = %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove these in Fedora 30.
Obsoletes: %{name}-plugin-file < 1.1.19-1
@ -184,7 +203,7 @@ trivial dependencies.
Summary: Example plugins for %{name}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For upgrade path, remove this in Fedora 30.
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
# packaged separately.
%package plugin-curl
%package curl-plugin
Summary: HTTP/FTP/SSH (cURL) plugin for %{name}
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}.
%package plugin-ext2
%package ext2-plugin
Summary: ext2, ext3 and ext4 filesystem support for %{name}
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
%{name}.
%if 0%{?have_libguestfs}
%package plugin-guestfs
%package guestfs-plugin
Summary: libguestfs plugin for %{name}
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}.
%endif
%package plugin-gzip
%package gzip-plugin
Summary: GZip file serving plugin for %{name}
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}.
%package plugin-libvirt
%package libvirt-plugin
Summary: Libvirt plugin for %{name}
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
libvirt guest disks readonly. It is implemented using the libvirt
virDomainBlockPeek API.
%package plugin-lua
%package lua-plugin
Summary: Lua plugin for %{name}
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}.
%ifarch %{ocaml_native_compiler}
%package plugin-ocaml
%package ocaml-plugin
Summary: OCaml plugin for %{name}
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}.
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}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-ocaml%{?_isa} = %{version}-%{release}
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 plugin-ocaml-devel
%description ocaml-plugin-devel
This package lets you write OCaml plugins for %{name}.
%endif
%package plugin-perl
%package perl-plugin
Summary: Perl plugin for %{name}
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}.
%package plugin-python-common
%package python-plugin-common
Summary: Python 2 and 3 plugin common files for %{name}
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
and Python 3 %{name} plugins.
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}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-python-common = %{version}-%{release}
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 plugin-python2
%description python2-plugin
This package lets you write Python 2 plugins for %{name}.
%if 0%{?have_python3}
%package plugin-python3
%package python3-plugin
Summary: Python 3 plugin for %{name}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-plugin-python-common = %{version}-%{release}
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 plugin-python3
%description python3-plugin
This package lets you write Python 3 plugins for %{name}.
%endif
%package plugin-ruby
%package ruby-plugin
Summary: Ruby plugin for %{name}
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}.
%package plugin-tar
%package tar-plugin
Summary: Tar archive plugin for %{name}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
# 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}.
%package plugin-tcl
%package tcl-plugin
Summary: Tcl plugin for %{name}
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}.
%ifarch %{ix86} x86_64
%package plugin-vddk
%package vddk-plugin
Summary: VMware VDDK plugin for %{name}
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
VMware VDDK for accessing VMware disks and servers.
%endif
%package plugin-xz
%package xz-plugin
Summary: XZ file serving plugin for %{name}
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}.
@ -415,7 +503,7 @@ This package is a xz file serving plugin for %{name}.
Summary: Basic filters for %{name}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description basic-filters
@ -471,7 +559,7 @@ trivial dependencies.
Summary: Development files and documentation for %{name}
License: BSD
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: pkgconfig
@ -485,7 +573,7 @@ plugins for %{name}.
Summary: Bash tab-completion for %{name}
BuildArch: noarch
Requires: bash-completion >= 2.0
Requires: %{name} = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release}
%description bash-completion
@ -606,6 +694,10 @@ popd
%files
# metapackage so empty
%files server
%doc README
%license LICENSE
%{_sbindir}/nbdkit
@ -652,14 +744,14 @@ popd
%{_mandir}/man1/nbdkit-example*-plugin.1*
%files plugin-curl
%files curl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so
%{_mandir}/man1/nbdkit-curl-plugin.1*
%files plugin-ext2
%files ext2-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so
@ -667,7 +759,7 @@ popd
%if 0%{?have_libguestfs}
%files plugin-guestfs
%files guestfs-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so
@ -675,21 +767,21 @@ popd
%endif
%files plugin-gzip
%files gzip-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so
%{_mandir}/man1/nbdkit-gzip-plugin.1*
%files plugin-libvirt
%files libvirt-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so
%{_mandir}/man1/nbdkit-libvirt-plugin.1*
%files plugin-lua
%files lua-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so
@ -697,57 +789,57 @@ popd
%ifarch %{ocaml_native_compiler}
%files plugin-ocaml
%files ocaml-plugin
%doc README
%license LICENSE
%{_libdir}/libnbdkitocaml.so.*
%files plugin-ocaml-devel
%files ocaml-plugin-devel
%{_libdir}/libnbdkitocaml.so
%{_libdir}/ocaml/NBDKit.*
%{_mandir}/man3/nbdkit-ocaml-plugin.3*
%endif
%files plugin-perl
%files perl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so
%{_mandir}/man3/nbdkit-perl-plugin.3*
%files plugin-python-common
%files python-plugin-common
%doc README
%license LICENSE
%{_mandir}/man3/nbdkit-python-plugin.3*
%files plugin-python2
%files python2-plugin
%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-python2-plugin.so
%if 0%{?have_python3}
%files plugin-python3
%files python3-plugin
%{_libdir}/%{name}/plugins/nbdkit-python3-plugin.so
%endif
%files plugin-ruby
%files ruby-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so
%{_mandir}/man3/nbdkit-ruby-plugin.3*
%files plugin-tar
%files tar-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-tar-plugin
%{_mandir}/man1/nbdkit-tar-plugin.1*
%files plugin-tcl
%files tcl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so
@ -755,7 +847,7 @@ popd
%ifarch %{ix86} x86_64
%files plugin-vddk
%files vddk-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so
@ -763,7 +855,7 @@ popd
%endif
%files plugin-xz
%files xz-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so
@ -823,6 +915,11 @@ popd
%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
- New upstream version 1.5.5.
- New plugin: data.