From b772c3dfaeabfdfd61591b3e416e1721dcc8fb25 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 14 Aug 2018 12:08:45 +0100 Subject: [PATCH] Make nbdkit a metapackage. Package server in nbdkit-server subpackage. Rename all nbdkit-plugin-FOO to nbdkit-FOO-plugin to match upstream. --- nbdkit.spec | 261 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 179 insertions(+), 82 deletions(-) diff --git a/nbdkit.spec b/nbdkit.spec index 49810e2..ac70136 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -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 - 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 - 1.5.5-1 - New upstream version 1.5.5. - New plugin: data.