!1 Package init

Merge pull request !1 from openeuler-iSula/master
This commit is contained in:
openeuler-ci-bot 2019-12-17 20:41:07 +08:00 committed by Gitee
commit 79e9b1b4ce
4 changed files with 644 additions and 0 deletions

BIN
libguestfs.keyring Normal file

Binary file not shown.

BIN
nbdkit-1.6.2.tar.gz Normal file

Binary file not shown.

16
nbdkit-1.6.2.tar.gz.sig Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIcBAABAgAGBQJboX5mAAoJEJFzj3Pht2igNiUQAJXj6AF5IaqNTVJYEe/I5Y31
vXAHTRT9ni1FDdF+xLlBa5F0Ii6ESE1SHUis5M55cvK37M0G2VhdBhqLmuMYxxfp
QTO5Khz82Of5Jj1Commdg9/yXchlXVNG/GeYaV1OcDfW+QlgQMCPApguKhF0PNf7
oaL0LhrYLXri2geR7GC/7BGNp9QuYFLhQjqS7+0x1j9kPlrzalE26o0TEO+zjXmS
TP7H5vZh7aguD9+hrbZP1wVba0UaG4bTO9+UxV5Doh+7vDZEmZwjpfI3WTZjs12S
VRuo5dMscGB91/6Tq03zPqxBBxCHXClndsdBOa8W9N4U633y9Z2uIXGmFzLeIroT
e3ZwSBktYXyMoA9wtJ0NwL21U2gqxSJEtt0nchaseiJpv7wTw+vk1Gy4CSx2Tr5k
Yzjd3UsnJog0kX37mkMxXs7ciFo9cSGWZsLoanXGWs8eXhWZNUE1mJHQFvop9GGG
RRpS8yVEIOkinXe6w9O3SXBa0aR30CMzjvpHWGtaOQY/iJ/byNyv8NGUGA5gmHFQ
7CpOSM67a9ZPL91iKWNb80emBY0aLiSlVYFkmyWsJ72Bxr02q6zg7BSN3fXgUpkU
Myr1ZQWLmIibClm5gwpFGZQAM8nEePiBHdAk3pSqs+bVoZhC3F8BmwKpRn/VkzVp
kITZyBu8RqN4mops8+F6
=1npC
-----END PGP SIGNATURE-----

628
nbdkit.spec Normal file
View File

@ -0,0 +1,628 @@
%global _hardened_build 1
%ifarch aarch64 x86_64
%global have_libguestfs 1
%endif
%global complete_test_arches x86_64
%if 0%{?rhel} != 7
%global have_python3 1
%endif
%ifnarch riscv64
%global have_libvirt 1
%endif
%global verify_tarball_signature 1
%global patches_touch_autotools %{nil}
Name: nbdkit
Version: 1.6.2
Release: 2
Summary: NBD server
License: BSD
URL: https://github.com/libguestfs/nbdkit
Source0: http://libguestfs.org/download/nbdkit/1.6-stable/%{name}-%{version}.tar.gz
%if 0%{verify_tarball_signature}
Source1: http://libguestfs.org/download/nbdkit/1.6-stable/%{name}-%{version}.tar.gz.sig
Source2: libguestfs.keyring
%endif
%if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool
%endif
%if 0%{?rhel} == 7
ExclusiveArch: x86_64
%endif
%ifnarch %{complete_test_arches}
BuildRequires: autoconf, automake, libtool
%endif
BuildRequires: /usr/bin/pod2man gnutls-devel libselinux-devel
%if 0%{?have_libguestfs}
BuildRequires: libguestfs-devel
%endif
%if 0%{?have_libvirt}
BuildRequires: libvirt-devel
%endif
BuildRequires: xz-devel zlib-devel libcurl-devel e2fsprogs-devel
BuildRequires: bash-completion perl-devel perl(ExtUtils::Embed) python2-devel
%if 0%{?have_python3}
BuildRequires: python3-devel
%endif
BuildRequires: ocaml >= 4.02.2 ruby-devel tcl-devel lua-devel
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
%endif
BuildRequires: /usr/bin/certtool /usr/bin/qemu-img
BuildRequires: /usr/bin/socat /usr/sbin/ss
Requires: nbdkit-server nbdkit-basic-plugins 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
braries 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}
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 plugins
Summary: Plugins set
License: BSD
Provides: %{name}-example-plugins
Obsoletes: %{name}-example-plugins %{name}-plugin-examples < 1.1.19-1
Provides: %{name}-curl-plugin %{name}-plugin-curl = %{version}-%{release}
Obsoletes: %{name}-curl-plugin %{name}-plugin-curl <= %{version}-%{release}
Provides: %{name}-ext2-plugin %{name}-plugin-ext2 = %{version}-%{release}
Obsoletes: %{name}-ext2-plugin %{name}-plugin-ext2 <= %{version}-%{release}
Provides: %{name}-gzip-plugin %{name}-plugin-gzip = %{version}-%{release}
Obsoletes: %{name}-gzip-plugin %{name}-plugin-gzip <= %{version}-%{release}
Provides: %{name}-lua-plugin %{name}-plugin-lua = %{version}-%{release}
Obsoletes: %{name}-lua-plugin %{name}-plugin-lua <= %{version}-%{release}
Provides: %{name}-ruby-plugin %{name}-plugin-ruby = %{version}-%{release}
Obsoletes: %{name}-ruby-plugin %{name}-plugin-ruby <= %{version}-%{release}
Provides: %{name}-tar-plugin %{name}-plugin-tar = %{version}-%{release}
Obsoletes: %{name}-tar-plugin %{name}-plugin-tar <= %{version}-%{release}
Provides: %{name}-tcl-plugin %{name}-plugin-tcl = %{version}-%{release}
Obsoletes: %{name}-tcl-plugin %{name}-plugin-tcl <= %{version}-%{release}
Provides: %{name}-xz-plugin %{name}-plugin-xz = %{version}-%{release}
Obsoletes: %{name}-xz-plugin %{name}-plugin-xz <= %{version}-%{release}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-perl-plugin
%description plugins
This package contains a set of plugins for %{name}.
%if 0%{?have_libguestfs}
%package guestfs-plugin
Summary: libguestfs plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
Provides: %{name}-plugin-guestfs = %{version}-%{release}
Obsoletes: %{name}-plugin-guestfs <= %{version}-%{release}
%description guestfs-plugin
This package is a libguestfs plugin for %{name}.
%endif
%if 0%{?have_libvirt}
%package libvirt-plugin
Summary: Libvirt plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
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.
%endif
%package ocaml-plugin
Summary: OCaml plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
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}
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}.
%package perl-plugin
Summary: Perl plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
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}
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}
Provides: %{name}-plugin-python = %{version}-%{release}
Provides: %{name}-plugin-python2 = %{version}-%{release}
Obsoletes: %{name}-plugin-python <= %{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}
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
%ifarch x86_64
%package vddk-plugin
Summary: VMware VDDK plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release}
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 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}.
%package help
Summary: Documents for %{name}
Buildarch: noarch
Requires: man info
%description help
Man pages and other related documents 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}
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
export LDFLAGS="$LDFLAGS -Wl,-z,now"
copy="$(mktemp -d)"
cp -a . "$copy"
mv "$copy" python3
%configure \
--disable-static \
%if 0%{?have_libguestfs}
--with-libguestfs \
%else
--without-libguestfs \
%endif
%if 0%{?have_libvirt}
--with-libvirt \
%else
--without-libvirt \
%endif
--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 \
--without-curl \
--without-ext2 \
--without-libvirt \
--without-liblzma \
--without-zlib
grep '^PYTHON_VERSION = 3' Makefile
make %{?_smp_mflags}
unset PYTHON
popd
%endif
%install
%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
ln -s nbdkit-python2-plugin.so nbdkit-python-plugin.so
popd
find $RPM_BUILD_ROOT -name '*.la' -delete
%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
mkdir -p $HOME/.cache/libvirt
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
%ldconfig_scriptlets plugin-ocaml
%files
%files server
%doc README
%license LICENSE
%{_sbindir}/nbdkit
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/filters
%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
%files plugins
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-example*-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-example4-plugin
%{_libdir}/%{name}/plugins/nbdkit-curl-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-ext2-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-lua-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-ruby-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-tar-plugin
%{_libdir}/%{name}/plugins/nbdkit-tcl-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-xz-plugin.so
%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
%if 0%{?have_libvirt}
%files libvirt-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-libvirt-plugin.so
%{_mandir}/man1/nbdkit-libvirt-plugin.1*
%endif
%files ocaml-plugin
%doc README
%license LICENSE
%{_libdir}/libnbdkitocaml.so.*
%files ocaml-plugin-devel
%{_libdir}/libnbdkitocaml.so
%{_libdir}/ocaml/NBDKit.*
%files perl-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-perl-plugin.so
%files python-plugin-common
%doc README
%license LICENSE
%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
%ifarch x86_64
%files vddk-plugin
%doc README
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-vddk-plugin.so
%{_mandir}/man1/nbdkit-vddk-plugin.1*
%endif
%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
%files devel
%doc OTHER_PLUGINS README TODO
%license LICENSE
%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
%{_libdir}/pkgconfig/nbdkit.pc
%files bash-completion
%license LICENSE
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/nbdkit
%files help
%{_mandir}/man1/nbdkit.1*
%{_mandir}/man1/nbdkit-captive.1*
%{_mandir}/man1/nbdkit-probing.1*
%{_mandir}/man1/nbdkit-protocol.1*
%{_mandir}/man1/nbdkit-service.1*
%{_mandir}/man1/nbdkit-tls.1*
%{_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*
%{_mandir}/man1/nbdkit-example*-plugin.1*
%{_mandir}/man1/nbdkit-curl-plugin.1*
%{_mandir}/man1/nbdkit-ext2-plugin.1*
%{_mandir}/man1/nbdkit-gzip-plugin.1*
%{_mandir}/man3/nbdkit-lua-plugin.3*
%{_mandir}/man3/nbdkit-perl-plugin.3*
%{_mandir}/man3/nbdkit-python-plugin.3*
%{_mandir}/man3/nbdkit-ruby-plugin.3*
%{_mandir}/man1/nbdkit-tar-plugin.1*
%{_mandir}/man3/nbdkit-tcl-plugin.3*
%{_mandir}/man1/nbdkit-xz-plugin.1*
%{_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*
%{_mandir}/man3/nbdkit-filter.3*
%{_mandir}/man3/nbdkit-plugin.3*
%{_mandir}/man3/nbdkit-ocaml-plugin.3*
%changelog
* Thu Dec 12 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.6.2-2
- Package init