diff --git a/copy-patches.sh b/copy-patches.sh new file mode 100755 index 0000000..2682a17 --- /dev/null +++ b/copy-patches.sh @@ -0,0 +1,55 @@ +#!/bin/bash - + +set -e + +# Maintainer script to copy patches from the git repo to the current +# directory. Use it like this: +# ./copy-patches.sh + +rhel_version=8.3 + +# Check we're in the right directory. +if [ ! -f nbdkit.spec ]; then + echo "$0: run this from the directory containing 'nbdkit.spec'" + exit 1 +fi + +git_checkout=$HOME/d/nbdkit-rhel-$rhel_version +if [ ! -d $git_checkout ]; then + echo "$0: $git_checkout does not exist" + echo "This script is only for use by the maintainer when preparing a" + echo "nbdkit release on RHEL." + exit 1 +fi + +# Get the base version of nbdkit. +version=`grep '^Version:' nbdkit.spec | awk '{print $2}'` +tag="v$version" + +# Remove any existing patches. +git rm -f [0-9]*.patch ||: +rm -f [0-9]*.patch + +# Get the patches. +(cd $git_checkout; rm -f [0-9]*.patch; git format-patch -N $tag) +mv $git_checkout/[0-9]*.patch . + +# Remove any not to be applied. +rm -f *NOT-FOR-RPM*.patch + +# Add the patches. +git add [0-9]*.patch + +# Print out the patch lines. +echo +echo "--- Copy the following text into nbdkit.spec file" +echo + +echo "# Patches." +for f in [0-9]*.patch; do + n=`echo $f | awk -F- '{print $1}'` + echo "Patch$n: $f" +done + +echo +echo "--- End of text" diff --git a/nbdkit.spec b/nbdkit.spec index f57087e..958b6d0 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -45,7 +45,7 @@ ExclusiveArch: x86_64 %global source_directory 1.23-development Name: nbdkit -Version: 1.23.9 +Version: 1.23.10 Release: 1%{?dist} Summary: NBD server @@ -64,6 +64,9 @@ Source1: http://libguestfs.org/download/nbdkit/%{source_directory}/%{name Source2: libguestfs.keyring %endif +# Maintainer script which helps with handling patches. +Source3: copy-patches.sh + %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool %endif @@ -199,6 +202,7 @@ Provides: %{name}-pattern-plugin = %{version}-%{release} Provides: %{name}-partitioning-plugin = %{version}-%{release} Provides: %{name}-random-plugin = %{version}-%{release} Provides: %{name}-sh-plugin = %{version}-%{release} +Provides: %{name}-sparse-random-plugin = %{version}-%{release} Provides: %{name}-split-plugin = %{version}-%{release} Provides: %{name}-streaming-plugin = %{version}-%{release} Provides: %{name}-zero-plugin = %{version}-%{release} @@ -209,37 +213,39 @@ This package contains plugins for %{name} which only depend on simple C libraries: glibc, gnutls, libzstd. Other plugins for nbdkit with more complex dependencies are packaged separately. -nbdkit-data-plugin Serve small amounts of data from the command line. +nbdkit-data-plugin Serve small amounts of data from the command line. -nbdkit-eval-plugin Write a shell script plugin on the command line. +nbdkit-eval-plugin Write a shell script plugin on the command line. -nbdkit-file-plugin The normal file plugin for serving files. +nbdkit-file-plugin The normal file plugin for serving files. -nbdkit-floppy-plugin Create a virtual floppy disk from a directory. +nbdkit-floppy-plugin Create a virtual floppy disk from a directory. -nbdkit-full-plugin A virtual disk that returns ENOSPC errors. +nbdkit-full-plugin A virtual disk that returns ENOSPC errors. -nbdkit-info-plugin Serve client and server information. +nbdkit-info-plugin Serve client and server information. -nbdkit-memory-plugin A virtual memory plugin. +nbdkit-memory-plugin A virtual memory plugin. -nbdkit-null-plugin A null (bitbucket) plugin. +nbdkit-null-plugin A null (bitbucket) plugin. -nbdkit-ondemand-plugin Create filesystems on demand. +nbdkit-ondemand-plugin Create filesystems on demand. -nbdkit-pattern-plugin Fixed test pattern. +nbdkit-pattern-plugin Fixed test pattern. -nbdkit-partitioning-plugin Create virtual disks from partitions. +nbdkit-partitioning-plugin Create virtual disks from partitions. -nbdkit-random-plugin Random content plugin for testing. +nbdkit-random-plugin Random content plugin for testing. -nbdkit-sh-plugin Write plugins as shell scripts or executables. +nbdkit-sh-plugin Write plugins as shell scripts or executables. -nbdkit-split-plugin Concatenate one or more files. +nbdkit-sparse-random-plugin Make sparse random disks. -nbdkit-streaming-plugin A streaming file serving plugin. +nbdkit-split-plugin Concatenate one or more files. -nbdkit-zero-plugin Zero-length plugin for testing. +nbdkit-streaming-plugin A streaming file serving plugin. + +nbdkit-zero-plugin Zero-length plugin for testing. %package example-plugins @@ -316,17 +322,6 @@ This package is a libguestfs plugin for %{name}. %endif -%package gzip-filter -Summary: GZip filter for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} - - -%description gzip-filter -This package is a gzip filter for %{name}. - - %if 0%{?rhel} == 8 %package gzip-plugin Summary: GZip plugin for %{name} @@ -472,6 +467,7 @@ This package lets you write Ruby plugins for %{name}. %endif +%if !0%{?rhel} # In theory this is noarch, but because plugins are placed in _libdir # which varies across architectures, RPM does not allow this. %package S3-plugin @@ -486,6 +482,7 @@ Requires: python3-boto3 %description S3-plugin This package lets you open disk images stored in Amazon S3 or Ceph using %{name}. +%endif %package ssh-plugin @@ -499,18 +496,7 @@ Requires: %{name}-server%{?_isa} = %{version}-%{release} This package contains SSH support for %{name}. -%package tar-filter -Summary: Tar archive filter for %{name} -License: BSD - -Requires: %{name}-server%{?_isa} = %{version}-%{release} -Requires: tar - - -%description tar-filter -This package is a tar archive filter for %{name}. - - +%if 0%{?rhel} == 8 %package tar-plugin Summary: Tar archive plugin for %{name} License: BSD @@ -521,6 +507,7 @@ Requires: tar %description tar-plugin This package is a tar archive plugin for %{name}. +%endif %if !0%{?rhel} @@ -702,6 +689,29 @@ This package contains ext2, ext3 and ext4 filesystem support for %endif +%package gzip-filter +Summary: GZip filter for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} + + +%description gzip-filter +This package is a gzip filter for %{name}. + + +%package tar-filter +Summary: Tar archive filter for %{name} +License: BSD + +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: tar + + +%description tar-filter +This package is a tar archive filter for %{name}. + + %package xz-filter Summary: XZ filter for %{name} License: BSD @@ -807,6 +817,10 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* # Remove the deprecated gzip plugin (use gzip filter instead). rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-gzip-plugin.so rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-gzip-plugin.1* + +# Remove the deprecated tar plugin (use tar filter instead). +rm $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so +rm $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-tar-plugin.1* %endif %if 0%{?rhel} @@ -815,6 +829,8 @@ for f in cc cdi torrent; do rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* done +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* %endif @@ -891,6 +907,7 @@ export LIBGUESTFS_TRACE=1 %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-sh-plugin.so +%{_libdir}/%{name}/plugins/nbdkit-sparse-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-split-plugin.so %{_libdir}/%{name}/plugins/nbdkit-streaming-plugin.so %{_libdir}/%{name}/plugins/nbdkit-zero-plugin.so @@ -907,6 +924,7 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1* %{_mandir}/man3/nbdkit-sh-plugin.3* +%{_mandir}/man1/nbdkit-sparse-random-plugin.1* %{_mandir}/man1/nbdkit-split-plugin.1* %{_mandir}/man1/nbdkit-streaming-plugin.1* %{_mandir}/man1/nbdkit-zero-plugin.1* @@ -956,13 +974,6 @@ export LIBGUESTFS_TRACE=1 %endif -%files gzip-filter -%doc README -%license LICENSE -%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so -%{_mandir}/man1/nbdkit-gzip-filter.1* - - %if 0%{?rhel} == 8 %files gzip-plugin %doc README @@ -1052,11 +1063,13 @@ export LIBGUESTFS_TRACE=1 %endif +%if !0%{?rhel} %files S3-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-S3-plugin %{_mandir}/man1/nbdkit-S3-plugin.1* +%endif %files ssh-plugin @@ -1066,18 +1079,13 @@ export LIBGUESTFS_TRACE=1 %{_mandir}/man1/nbdkit-ssh-plugin.1* -%files tar-filter -%doc README -%license LICENSE -%{_libdir}/%{name}/filters/nbdkit-tar-filter.so -%{_mandir}/man1/nbdkit-tar-filter.1* - - +%if 0%{?rhel} == 8 %files tar-plugin %doc README %license LICENSE %{_libdir}/%{name}/plugins/nbdkit-tar-plugin.so %{_mandir}/man1/nbdkit-tar-plugin.1* +%endif %if !0%{?rhel} @@ -1188,6 +1196,20 @@ export LIBGUESTFS_TRACE=1 %endif +%files gzip-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-gzip-filter.so +%{_mandir}/man1/nbdkit-gzip-filter.1* + + +%files tar-filter +%doc README +%license LICENSE +%{_libdir}/%{name}/filters/nbdkit-tar-filter.so +%{_mandir}/man1/nbdkit-tar-filter.1* + + %files xz-filter %doc README %license LICENSE @@ -1236,6 +1258,15 @@ export LIBGUESTFS_TRACE=1 %changelog +* Tue Dec 08 2020 Richard W.M. Jones - 1.23.10-1 +- New upstream development version 1.23.10. +- New nbdkit-sparse-random-plugin. + +* Thu Dec 03 2020 Richard W.M. Jones - 1.23.9-2 +- Move gzip and tar filters with other filters. +- Remove nbdkit-tar-plugin (replaced with nbdkit-tar-filter), except RHEL 8. +- Do not ship nbdkit-S3-plugin on RHEL. + * Thu Nov 19 2020 Richard W.M. Jones - 1.23.9-1 - New upstream development version 1.23.9. - Add nbdkit-S3-plugin. diff --git a/sources b/sources index 7df2c3c..7120420 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nbdkit-1.23.9.tar.gz) = 7058f975fed858a3ae93a6b527aac14e6dba34420857d44a89a7f1f295021ca58bd1cb1ba89787be839a2de26130fa0e56b6e723b2a71e2bb26e2c6adbf11e21 -SHA512 (nbdkit-1.23.9.tar.gz.sig) = e4cc674966795f9453cc724e661aa3ce64d8adf0263b905bb5bce06b03459cd74ad12c3d33d4b2b9568a5e16e17024cd80e5736cc4c325ac3aa5d10930abc355 +SHA512 (nbdkit-1.23.10.tar.gz) = b1121dda040084e09a09af44415452f83eba1ed85f4f57c3c7386621872bc5c3914f1eb08b9f7592bff1533ae16a190f45a432a53215ea49e000f68abfd9b954 +SHA512 (nbdkit-1.23.10.tar.gz.sig) = cb252fc2058fa856672e890a233f36da71e1fe4eac4e38c83b2837ec79efb3379e8b161e7f89067c75462bcfae9a7fb1521b48eff8dfeacb9f69676171e6293a