Rebase to nbdkit 1.42.0
Synch the spec file with Fedora Rawhide. nbdkit-ondemand-plugin moves into a new subpackage. New nbdkit-time-limit-filter. resolves: RHEL-78830
This commit is contained in:
parent
0b6564875e
commit
c9f4cdb07d
@ -0,0 +1,25 @@
|
||||
From 6cdc9d4a858cb9a80ad87961a6647452f9498d83 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 11 Feb 2025 13:59:45 +0000
|
||||
Subject: [PATCH] docs/nbdkit-release-notes-1.42.pod: Add release date
|
||||
|
||||
---
|
||||
docs/nbdkit-release-notes-1.42.pod | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/docs/nbdkit-release-notes-1.42.pod b/docs/nbdkit-release-notes-1.42.pod
|
||||
index 712c6027..dc4f05bc 100644
|
||||
--- a/docs/nbdkit-release-notes-1.42.pod
|
||||
+++ b/docs/nbdkit-release-notes-1.42.pod
|
||||
@@ -7,7 +7,7 @@ nbdkit-release-notes-1.42 - release notes for nbdkit 1.42
|
||||
These are the release notes for nbdkit stable release 1.42.
|
||||
This describes the major changes since 1.40.
|
||||
|
||||
-nbdkit 1.42.0 was released on B<XXX XXX 2025>.
|
||||
+nbdkit 1.42.0 was released on B<11 February 2025>.
|
||||
|
||||
=head2 Security
|
||||
|
||||
--
|
||||
2.47.1
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 9f86b51b4d8110ee82f2c67c3939c85ce0ec1ea9 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 6 Jan 2025 15:22:05 +0000
|
||||
Subject: [PATCH] vddk: Include <stdbool.h>
|
||||
|
||||
Since this file uses booleans.
|
||||
|
||||
Acked-by: Eric Blake <eblake@redhat.com>
|
||||
(cherry picked from commit fe855addae44e45e2344a33bd3857c561587f12e)
|
||||
---
|
||||
plugins/vddk/worker.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/plugins/vddk/worker.c b/plugins/vddk/worker.c
|
||||
index 467d00ca..5982fcea 100644
|
||||
--- a/plugins/vddk/worker.c
|
||||
+++ b/plugins/vddk/worker.c
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@ -0,0 +1,67 @@
|
||||
From 55bee3cc5797274d2e1ea925acc6e27572c7b5c8 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Fri, 7 Feb 2025 09:09:04 +0000
|
||||
Subject: [PATCH] build: Disable -Wunused-command-line-argument on FreeBSD
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When compiling filters/stats, FreeBSD clang++ (only) complains about:
|
||||
|
||||
c++: error: argument unused during compilation: '-pthread' [-Werror,-Wunused-command-line-argument]
|
||||
|
||||
This is because clang will ignore the -pthread argument on FreeBSD
|
||||
if code is being linked with -nostdlib. This is the case when building
|
||||
modules with libtool.
|
||||
|
||||
The warning flag must be preceeded by "-Xcompiler", otherwise libtool
|
||||
will discard the warning flag.
|
||||
|
||||
Derived-from: 433a77d06e57fd5894ada102cd21689e61f47f57
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
---
|
||||
configure.ac | 14 ++++++++++++++
|
||||
filters/stats/Makefile.am | 2 +-
|
||||
2 files changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 407b28db..fe917df3 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -238,6 +238,20 @@ AC_ARG_ENABLE([gcc-warnings],
|
||||
if test "x$gcc_warnings" = "xyes"; then
|
||||
WARNINGS_CFLAGS="-Wall -Wshadow -Wvla -Werror"
|
||||
AC_SUBST([WARNINGS_CFLAGS])
|
||||
+
|
||||
+ dnl Hack (temporary?) for FreeBSD which complains about:
|
||||
+ dnl c++: error: argument unused during compilation: '-pthread' [-Werror,-Wunused-command-line-argument]
|
||||
+ WARNINGS_MODULE_CXXFLAGS="$WARNINGS_CFLAGS"
|
||||
+ AC_MSG_CHECKING([if we should disable unused-command-line-argument warning])
|
||||
+ AS_CASE([$host_os],
|
||||
+ [freebsd*], [
|
||||
+ WARNINGS_MODULE_CXXFLAGS="$WARNINGS_MODULE_CXXFLAGS -Xcompiler -Wno-unused-command-line-argument"
|
||||
+ AC_MSG_RESULT([yes])
|
||||
+ ],
|
||||
+ [AC_MSG_RESULT([no])]
|
||||
+ )
|
||||
+ AC_SUBST([WARNINGS_MODULE_CXXFLAGS])
|
||||
+
|
||||
fi
|
||||
|
||||
dnl Check if the compiler supports -std=c90 flag. This is only used
|
||||
diff --git a/filters/stats/Makefile.am b/filters/stats/Makefile.am
|
||||
index 840805fb..c992566e 100644
|
||||
--- a/filters/stats/Makefile.am
|
||||
+++ b/filters/stats/Makefile.am
|
||||
@@ -48,7 +48,7 @@ nbdkit_stats_filter_la_CPPFLAGS = \
|
||||
-I$(top_srcdir)/common/include \
|
||||
-I$(top_srcdir)/common/utils \
|
||||
$(NULL)
|
||||
-nbdkit_stats_filter_la_CXXFLAGS = $(WARNINGS_CFLAGS) -std=c++11
|
||||
+nbdkit_stats_filter_la_CXXFLAGS = $(WARNINGS_MODULE_CXXFLAGS) -std=c++11
|
||||
nbdkit_stats_filter_la_LDFLAGS = \
|
||||
-module -avoid-version -shared $(NO_UNDEFINED_ON_WINDOWS) \
|
||||
$(NULL)
|
||||
--
|
||||
2.47.1
|
||||
|
@ -1,59 +0,0 @@
|
||||
From bfac699727ccf20757dcb5dc4ce1aff885025c9d Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 6 Jan 2025 16:47:55 +0000
|
||||
Subject: [PATCH] vddk: Cache the disk size in the handle
|
||||
|
||||
No functional change here, we're just making sure we have the disk
|
||||
size (in bytes) available in the handle.
|
||||
|
||||
Acked-by: Eric Blake <eblake@redhat.com>
|
||||
(cherry picked from commit 2ba76db4a048471e997e508715081a70356f94f3)
|
||||
---
|
||||
plugins/vddk/vddk.c | 6 +++---
|
||||
plugins/vddk/vddk.h | 3 +++
|
||||
2 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c
|
||||
index 6d242515..7a830cf9 100644
|
||||
--- a/plugins/vddk/vddk.c
|
||||
+++ b/plugins/vddk/vddk.c
|
||||
@@ -873,19 +873,19 @@ vddk_get_size (void *handle)
|
||||
{
|
||||
struct vddk_handle *h = handle;
|
||||
VixDiskLibInfo *info;
|
||||
- int64_t size;
|
||||
struct command info_cmd = { .type = INFO, .ptr = &info };
|
||||
|
||||
if (send_command_and_wait (h, &info_cmd) == -1)
|
||||
return -1;
|
||||
|
||||
- size = info->capacity * (int64_t)VIXDISKLIB_SECTOR_SIZE;
|
||||
+ /* Compute the size and cache it into the handle. */
|
||||
+ h->size = info->capacity * VIXDISKLIB_SECTOR_SIZE;
|
||||
|
||||
VDDK_CALL_START (VixDiskLib_FreeInfo, "info")
|
||||
VixDiskLib_FreeInfo (info);
|
||||
VDDK_CALL_END (VixDiskLib_FreeInfo, 0);
|
||||
|
||||
- return size;
|
||||
+ return h->size;
|
||||
}
|
||||
|
||||
/* Advertise most efficient block sizes. */
|
||||
diff --git a/plugins/vddk/vddk.h b/plugins/vddk/vddk.h
|
||||
index fb0c79a8..1d1069cc 100644
|
||||
--- a/plugins/vddk/vddk.h
|
||||
+++ b/plugins/vddk/vddk.h
|
||||
@@ -165,6 +165,9 @@ struct vddk_handle {
|
||||
command_queue commands; /* command queue */
|
||||
pthread_cond_t commands_cond; /* condition (queue size 0 -> 1) */
|
||||
uint64_t id; /* next command ID */
|
||||
+
|
||||
+ /* Cached disk size in bytes (set in get_size()). */
|
||||
+ uint64_t size;
|
||||
};
|
||||
|
||||
/* reexec.c */
|
||||
--
|
||||
2.43.0
|
||||
|
31
0003-README-New-location-for-Wine-AF_UNIX-patches.patch
Normal file
31
0003-README-New-location-for-Wine-AF_UNIX-patches.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From b55904b5e7d84358cef2ad9eb7637ee569eb52f6 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Fri, 14 Feb 2025 09:35:38 +0000
|
||||
Subject: [PATCH] README: New location for Wine AF_UNIX patches
|
||||
|
||||
---
|
||||
README.md | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index fb4d7d28..5d61e786 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -412,10 +412,10 @@ using Linux and mingw-w64. At a minimum you will need:
|
||||
* mingw-w64 gnutls (optional, but highly recommended)
|
||||
* wine (if you want to run it on Linux)
|
||||
|
||||
-You may want to patch Wine with this patch which adds support for
|
||||
-AF_UNIX sockets. It is needed to get most of the test suite to work,
|
||||
-but if you don't care about the -U option then it is not needed.
|
||||
-https://www.winehq.org/pipermail/wine-devel/2021-May/187049.html
|
||||
+You may want to patch Wine with support for `AF_UNIX` sockets. It is
|
||||
+needed to get most of the test suite to work, but if you don't care
|
||||
+about the -U option then it is not needed.
|
||||
+https://bugs.winehq.org/show_bug.cgi?id=52568
|
||||
|
||||
Other mingw-w64 libraries may be installed which will add
|
||||
functionality (see full list of requirements above), but you may end
|
||||
--
|
||||
2.47.1
|
||||
|
@ -1,34 +0,0 @@
|
||||
From dff3fc3b97aab79f6ee168a9b9dd2dff05425439 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 6 Jan 2025 15:37:54 +0000
|
||||
Subject: [PATCH] vddk: do_extents: Mark some local variables const
|
||||
|
||||
These are never changed in the code (they are fields copied out from
|
||||
the *cmd struct), so mark them as const.
|
||||
|
||||
Acked-by: Eric Blake <eblake@redhat.com>
|
||||
(cherry picked from commit 24fd7df460ae31fe3f72b5100ca3dbe138bbadbe)
|
||||
---
|
||||
plugins/vddk/worker.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/plugins/vddk/worker.c b/plugins/vddk/worker.c
|
||||
index 5982fcea..bc015d16 100644
|
||||
--- a/plugins/vddk/worker.c
|
||||
+++ b/plugins/vddk/worker.c
|
||||
@@ -388,9 +388,9 @@ add_extent (struct nbdkit_extents *extents,
|
||||
static int
|
||||
do_extents (struct command *cmd, struct vddk_handle *h)
|
||||
{
|
||||
- uint32_t count = cmd->count;
|
||||
- uint64_t offset = cmd->offset;
|
||||
- bool req_one = cmd->req_one;
|
||||
+ const uint32_t count = cmd->count;
|
||||
+ const uint64_t offset = cmd->offset;
|
||||
+ const bool req_one = cmd->req_one;
|
||||
struct nbdkit_extents *extents = cmd->ptr;
|
||||
uint64_t position, end, start_sector;
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 5f7e5399aa4b208cb6aa0c51dbea59f73fd4d5f3 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 6 Jan 2025 16:39:51 +0000
|
||||
Subject: [PATCH] vddk: do_extents: Exit the function if we hit req_one
|
||||
condition
|
||||
|
||||
No change to the functionality, since the code previously called
|
||||
'return 0' immediately following the loop.
|
||||
|
||||
Acked-by: Eric Blake <eblake@redhat.com>
|
||||
(cherry picked from commit 2f4d71f8f704d89d69cd635791c3239d2f44d631)
|
||||
---
|
||||
plugins/vddk/worker.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/plugins/vddk/worker.c b/plugins/vddk/worker.c
|
||||
index bc015d16..112111e3 100644
|
||||
--- a/plugins/vddk/worker.c
|
||||
+++ b/plugins/vddk/worker.c
|
||||
@@ -471,7 +471,7 @@ do_extents (struct command *cmd, struct vddk_handle *h)
|
||||
* overlapping the original offset we're done.
|
||||
*/
|
||||
if (req_one && position > offset)
|
||||
- break;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,202 +0,0 @@
|
||||
From fe65a789da92e53bfd3f3814f1c93566f69591db Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Mon, 6 Jan 2025 15:45:35 +0000
|
||||
Subject: [PATCH] vddk: do_extents: Avoid reading partial chunk beyond the end
|
||||
of the disk
|
||||
|
||||
The QueryAllocatedBlocks API has (another) frustrating feature. It
|
||||
can only query whole "chunks" (128 sectors). If the disk size is not
|
||||
aligned to the chunk size (say the size was 129 sectors) then there's
|
||||
a bit at the end which cannot be queried. Furthermore, the API gives
|
||||
an error in this case instead of being helpful:
|
||||
|
||||
VixDiskLib_QueryAllocatedBlocks: One of the parameters was invalid
|
||||
|
||||
Fixes: https://issues.redhat.com/browse/RHEL-71694
|
||||
Reported-by: Ming Xie <mxie@redhat.com>
|
||||
Acked-by: Eric Blake <eblake@redhat.com>
|
||||
(cherry picked from commit fd918f3d1a185fd996999766c75acb9d6e22395d)
|
||||
---
|
||||
plugins/vddk/worker.c | 29 ++++++++-
|
||||
tests/Makefile.am | 5 +-
|
||||
tests/test-vddk-real-unaligned-chunk.sh | 82 +++++++++++++++++++++++++
|
||||
3 files changed, 113 insertions(+), 3 deletions(-)
|
||||
create mode 100755 tests/test-vddk-real-unaligned-chunk.sh
|
||||
|
||||
diff --git a/plugins/vddk/worker.c b/plugins/vddk/worker.c
|
||||
index 112111e3..8a91250a 100644
|
||||
--- a/plugins/vddk/worker.c
|
||||
+++ b/plugins/vddk/worker.c
|
||||
@@ -392,10 +392,9 @@ do_extents (struct command *cmd, struct vddk_handle *h)
|
||||
const uint64_t offset = cmd->offset;
|
||||
const bool req_one = cmd->req_one;
|
||||
struct nbdkit_extents *extents = cmd->ptr;
|
||||
- uint64_t position, end, start_sector;
|
||||
+ uint64_t position, start_sector, size_sectors, last_queryable_sector, end;
|
||||
|
||||
position = offset;
|
||||
- end = offset + count;
|
||||
|
||||
/* We can only query whole chunks. Therefore start with the
|
||||
* first chunk before offset.
|
||||
@@ -403,6 +402,21 @@ do_extents (struct command *cmd, struct vddk_handle *h)
|
||||
start_sector =
|
||||
ROUND_DOWN (offset, VIXDISKLIB_MIN_CHUNK_SIZE * VIXDISKLIB_SECTOR_SIZE)
|
||||
/ VIXDISKLIB_SECTOR_SIZE;
|
||||
+
|
||||
+ /* Calculate the end byte + 1 that we're going to query, normally
|
||||
+ * this is offset + count.
|
||||
+ *
|
||||
+ * However since chunks are larger than sectors, for a disk which
|
||||
+ * has size which is not aligned to the chunk size there is a part
|
||||
+ * of the disk at the end that we can never query. Reduce 'end' to
|
||||
+ * the maximum possible queryable part of the disk, and we'll deal
|
||||
+ * with the unaligned bit after the loop (RHEL-71694).
|
||||
+ */
|
||||
+ end = offset + count;
|
||||
+ size_sectors = h->size / VIXDISKLIB_SECTOR_SIZE;
|
||||
+ last_queryable_sector = ROUND_DOWN (size_sectors, VIXDISKLIB_MIN_CHUNK_SIZE);
|
||||
+ end = MIN (end, last_queryable_sector * VIXDISKLIB_SECTOR_SIZE);
|
||||
+
|
||||
while (start_sector * VIXDISKLIB_SECTOR_SIZE < end) {
|
||||
VixError err;
|
||||
uint32_t i;
|
||||
@@ -474,6 +488,17 @@ do_extents (struct command *cmd, struct vddk_handle *h)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ /* If 'end' spanned beyond the last chunk of the disk, then we
|
||||
+ * reduced it above to avoid reading a chunk that extends beyond the
|
||||
+ * end of the underlying disk. We have to synthesize an allocated
|
||||
+ * block here, which is what VDDK's example code does
|
||||
+ * (doc/samples/diskLib/vixDiskLibSample.cpp: DoGetAllocatedBlocks).
|
||||
+ */
|
||||
+ if (end < offset + count) {
|
||||
+ if (add_extent (extents, &position, offset + count, false) == -1)
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index c0d1bdcc..94d4a219 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -188,7 +188,8 @@ if HAVE_VDDK
|
||||
check-vddk:
|
||||
$(MAKE) check TESTS="test-vddk-real.sh \
|
||||
test-vddk-real-dump-plugin.sh \
|
||||
- test-vddk-real-create.sh"
|
||||
+ test-vddk-real-create.sh \
|
||||
+ test-vddk-real-unaligned-chunk.sh"
|
||||
endif HAVE_VDDK
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
@@ -1172,6 +1173,7 @@ TESTS += \
|
||||
test-vddk-password-interactive.sh \
|
||||
test-vddk-real-create.sh \
|
||||
test-vddk-real-dump-plugin.sh \
|
||||
+ test-vddk-real-unaligned-chunk.sh \
|
||||
test-vddk-real.sh \
|
||||
test-vddk-reexec.sh \
|
||||
test-vddk-run.sh \
|
||||
@@ -1204,6 +1206,7 @@ EXTRA_DIST += \
|
||||
test-vddk-password-interactive.sh \
|
||||
test-vddk-real-create.sh \
|
||||
test-vddk-real-dump-plugin.sh \
|
||||
+ test-vddk-real-unaligned-chunk.sh \
|
||||
test-vddk-real.sh \
|
||||
test-vddk-reexec.sh \
|
||||
test-vddk-run.sh \
|
||||
diff --git a/tests/test-vddk-real-unaligned-chunk.sh b/tests/test-vddk-real-unaligned-chunk.sh
|
||||
new file mode 100755
|
||||
index 00000000..28fccd6c
|
||||
--- /dev/null
|
||||
+++ b/tests/test-vddk-real-unaligned-chunk.sh
|
||||
@@ -0,0 +1,82 @@
|
||||
+#!/usr/bin/env bash
|
||||
+# nbdkit
|
||||
+# Copyright Red Hat
|
||||
+#
|
||||
+# Redistribution and use in source and binary forms, with or without
|
||||
+# modification, are permitted provided that the following conditions are
|
||||
+# met:
|
||||
+#
|
||||
+# * Redistributions of source code must retain the above copyright
|
||||
+# notice, this list of conditions and the following disclaimer.
|
||||
+#
|
||||
+# * Redistributions in binary form must reproduce the above copyright
|
||||
+# notice, this list of conditions and the following disclaimer in the
|
||||
+# documentation and/or other materials provided with the distribution.
|
||||
+#
|
||||
+# * Neither the name of Red Hat nor the names of its contributors may be
|
||||
+# used to endorse or promote products derived from this software without
|
||||
+# specific prior written permission.
|
||||
+#
|
||||
+# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
|
||||
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
+# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
|
||||
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||||
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
+# SUCH DAMAGE.
|
||||
+
|
||||
+# Regression test for https://issues.redhat.com/browse/RHEL-71694
|
||||
+
|
||||
+source ./functions.sh
|
||||
+set -e
|
||||
+set -x
|
||||
+
|
||||
+requires_run
|
||||
+requires test "x$vddkdir" != "x"
|
||||
+requires test -d "$vddkdir"
|
||||
+requires test -f "$vddkdir/lib64/libvixDiskLib.so"
|
||||
+requires qemu-img --version
|
||||
+requires_nbdinfo
|
||||
+requires $TRUNCATE --version
|
||||
+requires dd --version
|
||||
+requires test -r /dev/urandom
|
||||
+skip_if_valgrind "because setting LD_LIBRARY_PATH breaks valgrind"
|
||||
+
|
||||
+# VDDK > 5.1.1 only supports x86_64.
|
||||
+if [ `uname -m` != "x86_64" ]; then
|
||||
+ echo "$0: unsupported architecture"
|
||||
+ exit 77
|
||||
+fi
|
||||
+
|
||||
+d=vddk-real-unaligned-chunk.d
|
||||
+cleanup_fn rm -rf $d
|
||||
+rm -rf $d
|
||||
+mkdir $d
|
||||
+
|
||||
+# Create a vmdk disk which is partially sparse and the size is NOT
|
||||
+# aligned to 128 sectors (chunk size).
|
||||
+dd if=/dev/urandom of=$d/test.raw bs=512 count=$(( 3*128 ))
|
||||
+$TRUNCATE -s $(( (4*128 + 3) * 512)) $d/test.raw
|
||||
+qemu-img convert -f raw $d/test.raw -O vmdk $d/test.vmdk
|
||||
+
|
||||
+# Read the map using VDDK.
|
||||
+export d
|
||||
+nbdkit -rfv vddk libdir="$vddkdir" \
|
||||
+ $PWD/$d/test.vmdk \
|
||||
+ --run 'nbdinfo --map "$uri" > $d/map'
|
||||
+cat $d/map
|
||||
+
|
||||
+# Note a few features of the expected map. The first 3 chunks (3*128
|
||||
+# sectors) are allocated, followed by a single hole chunk. Then the
|
||||
+# last 3 unaligned sectors appear allocated (even though they are not)
|
||||
+# because we could not read them using the QueryAllocatedBlocks API so
|
||||
+# we had to assume allocated.
|
||||
+test "$(cat $d/map)" = "\
|
||||
+ 0 196608 0 data
|
||||
+ 196608 65536 3 hole,zero
|
||||
+ 262144 1536 0 data"
|
||||
--
|
||||
2.43.0
|
||||
|
@ -6,7 +6,7 @@ set -e
|
||||
# directory. Use it like this:
|
||||
# ./copy-patches.sh
|
||||
|
||||
rhel_version=10.0
|
||||
rhel_version=10.1
|
||||
|
||||
# Check we're in the right directory.
|
||||
if [ ! -f nbdkit.spec ]; then
|
||||
|
66
nbdkit.spec
66
nbdkit.spec
@ -51,11 +51,11 @@
|
||||
%global verify_tarball_signature 1
|
||||
|
||||
# The source directory.
|
||||
%global source_directory 1.40-stable
|
||||
%global source_directory 1.42-stable
|
||||
|
||||
Name: nbdkit
|
||||
Version: 1.40.4
|
||||
Release: 3%{?dist}
|
||||
Version: 1.42.0
|
||||
Release: 1%{?dist}
|
||||
Summary: NBD server
|
||||
|
||||
License: BSD-3-Clause
|
||||
@ -77,14 +77,12 @@ Source2: libguestfs.keyring
|
||||
Source3: copy-patches.sh
|
||||
|
||||
# Patches come from the upstream repository:
|
||||
# https://gitlab.com/nbdkit/nbdkit/-/commits/rhel-10.0/
|
||||
# https://gitlab.com/nbdkit/nbdkit/-/commits/rhel-10.1/
|
||||
|
||||
# Patches.
|
||||
Patch0001: 0001-vddk-Include-stdbool.h.patch
|
||||
Patch0002: 0002-vddk-Cache-the-disk-size-in-the-handle.patch
|
||||
Patch0003: 0003-vddk-do_extents-Mark-some-local-variables-const.patch
|
||||
Patch0004: 0004-vddk-do_extents-Exit-the-function-if-we-hit-req_one-.patch
|
||||
Patch0005: 0005-vddk-do_extents-Avoid-reading-partial-chunk-beyond-t.patch
|
||||
Patch0001: 0001-docs-nbdkit-release-notes-1.42.pod-Add-release-date.patch
|
||||
Patch0002: 0002-build-Disable-Wunused-command-line-argument-on-FreeB.patch
|
||||
Patch0003: 0003-README-New-location-for-Wine-AF_UNIX-patches.patch
|
||||
|
||||
# For automatic RPM Provides generation.
|
||||
# See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html
|
||||
@ -103,6 +101,7 @@ BuildRequires: git
|
||||
BuildRequires: autoconf, automake, libtool
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: libxcrypt-devel
|
||||
BuildRequires: gcc, gcc-c++
|
||||
BuildRequires: %{_bindir}/pod2man
|
||||
BuildRequires: pkgconfig(gnutls)
|
||||
@ -168,6 +167,9 @@ BuildRequires: glibc-utils
|
||||
BuildRequires: /usr/bin/hexdump
|
||||
BuildRequires: /usr/sbin/ip
|
||||
BuildRequires: jq
|
||||
%if !0%{?rhel}
|
||||
BuildRequires: /usr/bin/lzip
|
||||
%endif
|
||||
BuildRequires: /usr/bin/nbdcopy
|
||||
BuildRequires: /usr/bin/nbdinfo
|
||||
BuildRequires: /usr/bin/nbdsh
|
||||
@ -286,8 +288,6 @@ nbdkit-info-plugin Serve client and server information.
|
||||
|
||||
nbdkit-memory-plugin A virtual memory plugin.
|
||||
|
||||
nbdkit-ondemand-plugin Create filesystems on demand.
|
||||
|
||||
nbdkit-ones-plugin Fill disk with repeated 0xff or other bytes.
|
||||
|
||||
nbdkit-pattern-plugin Fixed test pattern.
|
||||
@ -465,6 +465,21 @@ This package lets you write OCaml plugins for %{name}.
|
||||
%endif
|
||||
|
||||
|
||||
%package ondemand-plugin
|
||||
Summary: Create filesystems on demand for %{name}
|
||||
Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
# For mkfs and mke2fs (defaults).
|
||||
Requires: util-linux, e2fsprogs
|
||||
# For other filesystems.
|
||||
Suggests: xfsprogs
|
||||
%if !0%{?rhel}
|
||||
Suggests: ntfsprogs, dosfstools
|
||||
%endif
|
||||
|
||||
%description ondemand-plugin
|
||||
This package is a plugin to create filesystems on demand for %{name}.
|
||||
|
||||
|
||||
%if !0%{?rhel}
|
||||
%package perl-plugin
|
||||
Summary: Perl plugin for %{name}
|
||||
@ -648,6 +663,8 @@ nbdkit-spinning-filter Add seek delays to simulate a spinning hard disk.
|
||||
|
||||
nbdkit-swab-filter Filter for swapping byte order.
|
||||
|
||||
nbdkit-time-limit-filter Set an overall time limit for each connection.
|
||||
|
||||
nbdkit-tls-fallback-filter TLS protection filter.
|
||||
|
||||
nbdkit-truncate-filter Truncate, expand, round up or round down size.
|
||||
@ -690,11 +707,11 @@ This package is a tar archive filter for %{name}.
|
||||
|
||||
|
||||
%package xz-filter
|
||||
Summary: XZ filter for %{name}
|
||||
Summary: XZ and lzip filters for %{name}
|
||||
Requires: %{name}-server%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description xz-filter
|
||||
This package is the xz filter for %{name}.
|
||||
This package contains the xz and lzip filters for %{name}.
|
||||
|
||||
|
||||
%package devel
|
||||
@ -884,10 +901,7 @@ bzip2 -9 %{modulename}.pp
|
||||
popd
|
||||
|
||||
%if 0%{?have_mingw}
|
||||
# MC=no is a temporary hack until this bug is fixed in binutils:
|
||||
# https://sourceware.org/bugzilla/show_bug.cgi?id=31283
|
||||
%mingw_configure \
|
||||
MC=no \
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
--with-extra='%{name}-%{version}-%{release}' \
|
||||
@ -1089,7 +1103,6 @@ fi
|
||||
%{_libdir}/%{name}/plugins/nbdkit-full-plugin.so
|
||||
%{_libdir}/%{name}/plugins/nbdkit-info-plugin.so
|
||||
%{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so
|
||||
%{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so
|
||||
%{_libdir}/%{name}/plugins/nbdkit-ones-plugin.so
|
||||
%{_libdir}/%{name}/plugins/nbdkit-partitioning-plugin.so
|
||||
%{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so
|
||||
@ -1105,7 +1118,6 @@ fi
|
||||
%{_mandir}/man1/nbdkit-full-plugin.1*
|
||||
%{_mandir}/man1/nbdkit-info-plugin.1*
|
||||
%{_mandir}/man1/nbdkit-memory-plugin.1*
|
||||
%{_mandir}/man1/nbdkit-ondemand-plugin.1*
|
||||
%{_mandir}/man1/nbdkit-ones-plugin.1*
|
||||
%{_mandir}/man1/nbdkit-partitioning-plugin.1*
|
||||
%{_mandir}/man1/nbdkit-pattern-plugin.1*
|
||||
@ -1233,6 +1245,13 @@ fi
|
||||
%endif
|
||||
|
||||
|
||||
%files ondemand-plugin
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{_libdir}/%{name}/plugins/nbdkit-ondemand-plugin.so
|
||||
%{_mandir}/man1/nbdkit-ondemand-plugin.1*
|
||||
|
||||
|
||||
%if !0%{?rhel}
|
||||
%files perl-plugin
|
||||
%doc README.md
|
||||
@ -1344,6 +1363,7 @@ fi
|
||||
%{_libdir}/%{name}/filters/nbdkit-scan-filter.so
|
||||
%{_libdir}/%{name}/filters/nbdkit-spinning-filter.so
|
||||
%{_libdir}/%{name}/filters/nbdkit-swab-filter.so
|
||||
%{_libdir}/%{name}/filters/nbdkit-time-limit-filter.so
|
||||
%{_libdir}/%{name}/filters/nbdkit-tls-fallback-filter.so
|
||||
%{_libdir}/%{name}/filters/nbdkit-truncate-filter.so
|
||||
%{_mandir}/man1/nbdkit-blocksize-filter.1*
|
||||
@ -1388,6 +1408,7 @@ fi
|
||||
%{_mandir}/man1/nbdkit-scan-filter.1*
|
||||
%{_mandir}/man1/nbdkit-spinning-filter.1*
|
||||
%{_mandir}/man1/nbdkit-swab-filter.1*
|
||||
%{_mandir}/man1/nbdkit-time-limit-filter.1*
|
||||
%{_mandir}/man1/nbdkit-tls-fallback-filter.1*
|
||||
%{_mandir}/man1/nbdkit-truncate-filter.1*
|
||||
|
||||
@ -1425,7 +1446,9 @@ fi
|
||||
%files xz-filter
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{_libdir}/%{name}/filters/nbdkit-lzip-filter.so
|
||||
%{_libdir}/%{name}/filters/nbdkit-xz-filter.so
|
||||
%{_mandir}/man1/nbdkit-lzip-filter.1*
|
||||
%{_mandir}/man1/nbdkit-xz-filter.1*
|
||||
|
||||
|
||||
@ -1502,6 +1525,13 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Feb 24 2025 Richard W.M. Jones <rjones@redhat.com> - 1.42.0-1
|
||||
- Rebase to nbdkit 1.42.0
|
||||
- Synch the spec file with Fedora Rawhide.
|
||||
- nbdkit-ondemand-plugin moves into a new subpackage.
|
||||
- New nbdkit-time-limit-filter.
|
||||
- resolves: RHEL-78830
|
||||
|
||||
* Mon Jan 06 2025 Richard W.M. Jones <rjones@redhat.com> - 1.40.4-3
|
||||
- vddk: Avoid reading partial chunk beyond the end of the disk
|
||||
resolves: RHEL-71697
|
||||
|
4
sources
4
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (nbdkit-1.40.4.tar.gz) = 043de0b6b686425d28b1410ac6ea75667eb189173648e78047174a45a76ce11137ca336d05af128314f5234b47e334d32dd6d196bdeb2b91da4688ee2c6bc273
|
||||
SHA512 (nbdkit-1.40.4.tar.gz.sig) = 9ae8e4cbdd9c6495ccbef6d71869e76951e2e72803fbbff4e9c2b66cd630874dd8fe5577be44c296c7b98936ddbe77c83fba3c92e8037e82d98a0503d378c49e
|
||||
SHA512 (nbdkit-1.42.0.tar.gz) = c8360fc2d9e6806ab241dcd61da82f52a881dd394d2e6c8c5372d4920f0751fe20dfe9bf45ff35c34cd1e12fd35d2b7dcf17374387805ff6cdec599c543c6bdc
|
||||
SHA512 (nbdkit-1.42.0.tar.gz.sig) = df2e05eb46c78c2ecdc16b6b1ba37cbcbf001cfd5f7c3b9206da7100e4499ddb7f35ed75786d109767f2e9bf4a2baf02994ce5684910fd9cfc8bfccc9dd6dce7
|
||||
|
Loading…
Reference in New Issue
Block a user