478 lines
13 KiB
RPMSpec
478 lines
13 KiB
RPMSpec
%global _hardened_build 1
|
|
|
|
%ifarch aarch64 %{arm} %{ix86} x86_64 ppc %{power64}
|
|
%global have_libguestfs 1
|
|
%endif
|
|
|
|
Name: nbdkit
|
|
Version: 1.1.11
|
|
Release: 7%{?dist}
|
|
Summary: NBD server
|
|
|
|
License: BSD
|
|
URL: https://github.com/libguestfs/nbdkit
|
|
|
|
Source0: http://libguestfs.org/download/nbdkit/%{name}-%{version}.tar.gz
|
|
|
|
# All patches are upstream since 1.1.11.
|
|
Patch1: 0001-Add-mandir-to-dump-config-output.patch
|
|
Patch2: 0002-Update-TODO.patch
|
|
Patch3: 0003-Add-support-for-newstyle-NBD-protocol-RHBZ-1297100.patch
|
|
Patch4: 0004-xz-Fix-various-printf-warnings-on-32-bit.patch
|
|
Patch5: 0005-ocaml-Avoid-race-when-building-NBDKit.cmi.patch
|
|
# Because patch3 & patch5 patches Makefile.am, we need:
|
|
BuildRequires: automake, autoconf, libtool
|
|
|
|
BuildRequires: /usr/bin/pod2man
|
|
%if 0%{?have_libguestfs}
|
|
BuildRequires: libguestfs-devel
|
|
%endif
|
|
BuildRequires: libvirt-devel
|
|
BuildRequires: xz-devel
|
|
BuildRequires: zlib-devel
|
|
BuildRequires: libcurl-devel
|
|
BuildRequires: perl-devel
|
|
BuildRequires: perl(ExtUtils::Embed)
|
|
BuildRequires: python-devel
|
|
%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
|
|
|
|
# For complicated reasons, this is required so that
|
|
# /bin/kernel-install puts the kernel directly into /boot, instead of
|
|
# into a /boot/<machine-id> subdirectory (in Fedora >= 23). Read the
|
|
# kernel-install script to understand why.
|
|
BuildRequires: grubby
|
|
|
|
|
|
%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.
|
|
|
|
You probably want to install one of more plugins (%{name}-plugin-*).
|
|
|
|
To develop plugins, install the %{name}-devel package and start by
|
|
reading the nbdkit(1) and nbdkit-plugin(3) manual pages.
|
|
|
|
|
|
%package plugin-curl
|
|
Summary: HTTP/FTP/SSH (cURL) plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-curl
|
|
This package contains cURL (HTTP/FTP/SSH) support for %{name}.
|
|
|
|
|
|
%package plugin-examples
|
|
Summary: Example plugins for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-examples
|
|
This package contains example plugins for %{name}.
|
|
|
|
|
|
%package plugin-file
|
|
Summary: File serving plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-file
|
|
This package is a file serving plugin for %{name}.
|
|
|
|
|
|
%if 0%{?have_libguestfs}
|
|
%package plugin-guestfs
|
|
Summary: libguestfs plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-guestfs
|
|
This package is a libguestfs plugin for %{name}.
|
|
%endif
|
|
|
|
|
|
%package plugin-gzip
|
|
Summary: GZip file serving plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-gzip
|
|
This package is a gzip file serving plugin for %{name}.
|
|
|
|
|
|
%package plugin-libvirt
|
|
Summary: Libvirt plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-libvirt
|
|
This package is a libvirt plugin for %{name}. It lets you access
|
|
libvirt guest disks readonly. It is implemented using the libvirt
|
|
virDomainBlockPeek API.
|
|
|
|
|
|
%ifarch %{ocaml_native_compiler}
|
|
%package plugin-ocaml
|
|
Summary: OCaml plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-ocaml
|
|
This package lets you run OCaml plugins for %{name}.
|
|
|
|
To compile OCaml plugins you will also need to install
|
|
%{name}-plugin-ocaml-devel.
|
|
|
|
|
|
%package plugin-ocaml-devel
|
|
Summary: OCaml development environment for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
Requires: %{name}-plugin-ocaml%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-ocaml-devel
|
|
This package lets you write OCaml plugins for %{name}.
|
|
%endif
|
|
|
|
|
|
%package plugin-perl
|
|
Summary: Perl plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-perl
|
|
This package lets you write Perl plugins for %{name}.
|
|
|
|
|
|
%package plugin-python
|
|
Summary: Python plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-python
|
|
This package lets you write Python plugins for %{name}.
|
|
|
|
|
|
%package plugin-streaming
|
|
Summary: Streaming file serving plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-streaming
|
|
This package is a streaming plugin for %{name}.
|
|
|
|
|
|
%package plugin-xz
|
|
Summary: XZ file serving plugin for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description plugin-xz
|
|
This package is a xz file serving plugin for %{name}.
|
|
|
|
|
|
%package devel
|
|
Summary: Development files and documentation for %{name}
|
|
License: BSD
|
|
|
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
%description devel
|
|
This package contains development files and documentation
|
|
for %{name}. Install this package if you want to develop
|
|
plugins for %{name}.
|
|
|
|
|
|
%prep
|
|
%setup -q
|
|
%autopatch -p1
|
|
|
|
|
|
%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"
|
|
%configure --disable-static
|
|
make %{?_smp_mflags}
|
|
|
|
|
|
%install
|
|
%make_install
|
|
|
|
# Delete libtool crap.
|
|
find $RPM_BUILD_ROOT -name '*.la' -delete
|
|
|
|
|
|
%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
|
|
|
|
# libguestfs 1.20 in Fedora 18 doesn't support NBD client protocol, so
|
|
# the tests cannot be run.
|
|
%if 0%{?fedora} >= 19
|
|
# Unlikely that libguestfs will work on ARM and PPC, so don't try running the
|
|
# tests there.
|
|
%ifnarch %{arm} ppc %{power64}
|
|
# Broken on i686 because of https://bugzilla.redhat.com/show_bug.cgi?id=1302071
|
|
%ifnarch %{ix86}
|
|
make check || {
|
|
cat tests/test-suite.log
|
|
exit 1
|
|
}
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
|
|
%ifarch %{ocaml_native_compiler}
|
|
%post plugin-ocaml -p /sbin/ldconfig
|
|
%postun plugin-ocaml -p /sbin/ldconfig
|
|
%endif
|
|
|
|
|
|
%files
|
|
%doc LICENSE README
|
|
%{_sbindir}/nbdkit
|
|
%dir %{_libdir}/%{name}
|
|
%dir %{_libdir}/%{name}/plugins
|
|
%{_mandir}/man1/nbdkit.1*
|
|
|
|
|
|
%files plugin-curl
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so
|
|
%{_mandir}/man1/nbdkit-curl-plugin.1*
|
|
|
|
|
|
%files plugin-examples
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so
|
|
%{_mandir}/man1/nbdkit-example*-plugin.1*
|
|
|
|
|
|
%files plugin-file
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-file-plugin.so
|
|
%{_mandir}/man1/nbdkit-file-plugin.1*
|
|
|
|
|
|
%if 0%{?have_libguestfs}
|
|
%files plugin-guestfs
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-guestfs-plugin.so
|
|
%{_mandir}/man1/nbdkit-guestfs-plugin.1*
|
|
%endif
|
|
|
|
|
|
%files plugin-gzip
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so
|
|
%{_mandir}/man1/nbdkit-gzip-plugin.1*
|
|
|
|
|
|
%files plugin-libvirt
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so
|
|
%{_mandir}/man1/nbdkit-libvirt-plugin.1*
|
|
|
|
|
|
%ifarch %{ocaml_native_compiler}
|
|
%files plugin-ocaml
|
|
%doc LICENSE README
|
|
%{_libdir}/libnbdkitocaml.so.*
|
|
|
|
%files plugin-ocaml-devel
|
|
%{_libdir}/libnbdkitocaml.so
|
|
%{_libdir}/ocaml/NBDKit.*
|
|
%{_mandir}/man3/nbdkit-ocaml-plugin.3*
|
|
%endif
|
|
|
|
|
|
%files plugin-perl
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so
|
|
%{_mandir}/man3/nbdkit-perl-plugin.3*
|
|
|
|
|
|
%files plugin-python
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-python-plugin.so
|
|
%{_mandir}/man3/nbdkit-python-plugin.3*
|
|
|
|
|
|
%files plugin-streaming
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so
|
|
%{_mandir}/man1/nbdkit-streaming-plugin.1*
|
|
|
|
|
|
%files plugin-xz
|
|
%doc LICENSE README
|
|
%{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so
|
|
%{_mandir}/man1/nbdkit-xz-plugin.1*
|
|
|
|
|
|
%files devel
|
|
%doc LICENSE README TODO
|
|
# Include the source of the example plugins in the documentation.
|
|
%doc plugins/example*/*.c
|
|
%doc plugins/perl/example.pl
|
|
%doc plugins/python/example.py
|
|
%{_includedir}/nbdkit-plugin.h
|
|
%{_mandir}/man3/nbdkit-plugin.3*
|
|
|
|
|
|
%changelog
|
|
* 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.
|