Import from AlmaLinux stable repository

This commit is contained in:
eabdullin 2024-05-15 07:56:10 +00:00
parent 5520e421fe
commit 8db3831443
17 changed files with 490 additions and 306 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/libguestfs.keyring SOURCES/libguestfs.keyring
SOURCES/nbdkit-1.32.5.tar.gz SOURCES/nbdkit-1.36.2.tar.gz

View File

@ -1,2 +1,2 @@
cc1b37b9cfafa515aab3eefd345ecc59aac2ce7b SOURCES/libguestfs.keyring cc1b37b9cfafa515aab3eefd345ecc59aac2ce7b SOURCES/libguestfs.keyring
c8260e2f6fb16a16cefe0cf670fc5a0f41dd7110 SOURCES/nbdkit-1.32.5.tar.gz ca7c103dc96a65bfa5f6263bb5df8478f8038948 SOURCES/nbdkit-1.36.2.tar.gz

View File

@ -0,0 +1,44 @@
From ac87babe2d1652e3f37715efe9f29ad6f16eb9df Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 4 Dec 2023 10:23:29 +0000
Subject: [PATCH] configure: Fix initialization from incompatible pointer type
With GCC 14:
configure:20816: checking if environ is declared in header files
configure:20833: gcc -c -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grec
ord-gcc-switches -pipe -Wall -Werror=format-security
-Werror=implicit-function-declaration -Werror=implicit-int
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer conftest.c >&5
conftest.c: In function 'test':
conftest.c:62:22: error: initialization of 'const char **' from incompatible p
ointer type 'char **'
62 | const char **env = environ;
| ^~~~~~~
Thanks: Florian Weimer
(cherry picked from commit 32a9ee6650654469cd591a3ae26842c54f898392)
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 3b12e357..beab4674 100644
--- a/configure.ac
+++ b/configure.ac
@@ -335,7 +335,7 @@ AC_LANG_SOURCE([[
static int
test (void)
{
- const char **env = environ;
+ char **env = environ;
return env ? 1 : 0; // this just forces env to be used
}
]])
--
2.39.3

View File

@ -1,31 +0,0 @@
From e0e592775911ebe2178b04b4b20f95fea2f2fe9c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 5 Jan 2023 16:05:33 +0000
Subject: [PATCH] ssh: Remove left over comment
This comment was left over from when I copied the libssh example code.
It adds no value so remove it.
(cherry picked from commit c93a8957efcc26652b31f5bc359dfd3c4019b4f8)
---
plugins/ssh/ssh.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/plugins/ssh/ssh.c b/plugins/ssh/ssh.c
index 6cf40c26..aaa7c2b9 100644
--- a/plugins/ssh/ssh.c
+++ b/plugins/ssh/ssh.c
@@ -356,10 +356,6 @@ authenticate (struct ssh_handle *h)
if (rc == SSH_AUTH_SUCCESS) return 0;
}
- /* Example code tries keyboard-interactive here, but we cannot use
- * that method from a server.
- */
-
if (password != NULL && (method & SSH_AUTH_METHOD_PASSWORD)) {
rc = authenticate_password (h->session, password);
if (rc == SSH_AUTH_SUCCESS) return 0;
--
2.31.1

View File

@ -0,0 +1,58 @@
From 054798ca11b9f0b71fbad302edf66b52519f5aa2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 14 Dec 2023 17:47:10 +0000
Subject: [PATCH] file: Rework documentation for dir= parameter
The existing documentation tended towards jargon and lacked examples.
(cherry picked from commit 7cbd49ced6414e49fcf4ff1a967929a2b83ab44e)
---
plugins/file/nbdkit-file-plugin.pod | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/plugins/file/nbdkit-file-plugin.pod b/plugins/file/nbdkit-file-plugin.pod
index 857ad21e..e47eae97 100644
--- a/plugins/file/nbdkit-file-plugin.pod
+++ b/plugins/file/nbdkit-file-plugin.pod
@@ -64,13 +64,23 @@ symbolic links. Other special files in the directory (such as
subdirectories, pipes, or Unix sockets) are ignored.
When this mode is used, the file to be served is chosen by the export
-name passed by the client, where the client can request a list of
-available exports using NBD_OPT_LIST. A client that requests the
-default export (C<"">) will be rejected. However, you can use
-L<nbdkit-exportname-filter(1)> to adjust what export names the client
-sees or uses as a default. For security, when using directory mode,
+name passed by the client. For security, when using directory mode,
this plugin will not accept export names containing slash (C</>).
+To list exports, use L<nbdinfo(1)> I<--list> option, for example:
+
+ nbdinfo --list nbd://localhost
+
+An NBD client can request a list of available exports using
+C<NBD_OPT_LIST>.
+
+A client that requests the default export (C<"">) will be rejected.
+However, you can use L<nbdkit-exportname-filter(1)> to adjust what
+export names the client sees, and which one the client uses as a
+default. For example to make F</dir/file> be the default export:
+
+ nbdkit file dir=/dir --filter=exportname default-export=file
+
=item B<dirfd=>FILE_DESCRIPTOR
(nbdkit E<ge> 1.34, not Windows)
@@ -262,7 +272,8 @@ L<nbdkit-tmpdisk-plugin(1)>,
L<nbdkit-exportname-filter(1)>,
L<nbdkit-fua-filter(1)>,
L<nbdkit-luks-filter(1)>,
-L<nbdkit-noextents-filter(1)>.
+L<nbdkit-noextents-filter(1)>,
+L<nbdinfo(1)>.
=head1 AUTHORS
--
2.39.3

View File

@ -1,68 +0,0 @@
From 916f90972af60576591dea4a4f1d07e4dae6d9cf Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 5 Jan 2023 11:29:32 +0000
Subject: [PATCH] ssh: Improve the error message when all authentication
methods fail
The current error message:
nbdkit: ssh[1]: error: all possible authentication methods failed
is confusing and non-actionable. It's hard even for experts to
understand the relationship between the authentication methods offered
by a server and what we require.
Try to improve the error message in some common situations, especially
where password authentication on the server side is disabled but the
client supplied a password=... parameter. After this change, you will
see an actionable error:
nbdkit: ssh[1]: error: the server does not offer password
authentication but you tried to use a password; if you have root
access to the server, try editing 'sshd_config' and setting
'PasswordAuthentication yes'; otherwise try setting up public key
authentication
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2158300
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
(cherry picked from commit bea88cff5ac9c42f1a068ad24d43d5ed0506edaa)
---
plugins/ssh/ssh.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/plugins/ssh/ssh.c b/plugins/ssh/ssh.c
index aaa7c2b9..5a132d8f 100644
--- a/plugins/ssh/ssh.c
+++ b/plugins/ssh/ssh.c
@@ -361,6 +361,28 @@ authenticate (struct ssh_handle *h)
if (rc == SSH_AUTH_SUCCESS) return 0;
}
+ /* All compatible methods were tried and none worked. Come up with
+ * an actionable diagnostic message if we recognise the problem.
+ */
+ if (!(method & SSH_AUTH_METHOD_PUBLICKEY) && password == NULL) {
+ nbdkit_error ("the server does not offer public key authentication; "
+ "try using the password=... parameter");
+ return -1;
+ }
+ if ((method & SSH_AUTH_METHOD_PASSWORD) && password != NULL) {
+ nbdkit_error ("password authentication failed, "
+ "is the username and password correct?");
+ return -1;
+ }
+ if (!(method & SSH_AUTH_METHOD_PASSWORD) && password != NULL) {
+ nbdkit_error ("the server does not offer password authentication "
+ "but you tried to use a password; if you have root access "
+ "to the server, try editing 'sshd_config' and setting "
+ "'PasswordAuthentication yes'; otherwise try setting up "
+ "public key authentication");
+ return -1;
+ }
+
nbdkit_error ("all possible authentication methods failed");
return -1;
}
--
2.31.1

View File

@ -0,0 +1,28 @@
From 596f97316e65c151741e6ee42893023f6e945c01 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 16 Dec 2023 18:08:37 +0000
Subject: [PATCH] file: Fix markup when referencing dir= option from dirfd=
docs
Fixes: commit dd28b005430d020ccd1825437937c317332d3007
(cherry picked from commit 5b8c9c49cc352e9b0fba4dde9e0f57c53c9c2457)
---
plugins/file/nbdkit-file-plugin.pod | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/file/nbdkit-file-plugin.pod b/plugins/file/nbdkit-file-plugin.pod
index e47eae97..5feb8ea9 100644
--- a/plugins/file/nbdkit-file-plugin.pod
+++ b/plugins/file/nbdkit-file-plugin.pod
@@ -85,7 +85,7 @@ default. For example to make F</dir/file> be the default export:
(nbdkit E<ge> 1.34, not Windows)
-This is like the I<dir> option, but instead of specifying the
+This is like the C<dir=> option, but instead of specifying the
directory by name, the parent process should open the directory and
pass this file descriptor by inheritance to nbdkit.
--
2.39.3

View File

@ -1,44 +0,0 @@
From dc86950fff020688a17b6ff0dbfea7bdb0d8f1b9 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 10 Jan 2023 08:39:11 +0000
Subject: [PATCH] luks: Avoid crash when image does not contain a LUKS header
We attempt to load the LUKS header in the prepare() callback. If this
fails, h->h will be NULL and we'll crash in close() when we attempt to
access and free h->h->masterkey.
This crash could have been triggered another way: if open() followed
by close() was called, without prepare() or other callbacks.
Reported-by: Ming Xie
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2159581
(cherry picked from commit cad4b96b17ed4ad7882100efa0d9073ac9d8b11c)
---
filters/luks/luks-encryption.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/filters/luks/luks-encryption.c b/filters/luks/luks-encryption.c
index 26f81e7b..6f33e76e 100644
--- a/filters/luks/luks-encryption.c
+++ b/filters/luks/luks-encryption.c
@@ -856,11 +856,13 @@ load_header (nbdkit_next *next, const char *passphrase)
void
free_luks_data (struct luks_data *h)
{
- if (h->masterkey) {
- memset (h->masterkey, 0, h->phdr.master_key_len);
- free (h->masterkey);
+ if (h) {
+ if (h->masterkey) {
+ memset (h->masterkey, 0, h->phdr.master_key_len);
+ free (h->masterkey);
+ }
+ free (h);
}
- free (h);
}
uint64_t
--
2.31.1

View File

@ -1,95 +0,0 @@
From 3f74004478d3590840d7eba97a590b7ec954957f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 2 Feb 2023 13:59:32 +0000
Subject: [PATCH] curl: Enable multi-conn for read-only connections
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Comparing before and after this commit shows approximately double the
performance. In other tests this allowed us to download files from
web servers at line speed.
Benchmark 1: nbdkit -r curl file:/var/tmp/jammy-server-cloudimg-amd64.raw --run "nbdcopy -p \$uri null:"
Time (mean ± σ): 943.8 ms ± 18.8 ms [User: 316.2 ms, System: 1029.7 ms]
Range (min … max): 923.7 ms … 989.2 ms 10 runs
Benchmark 2: ~/d/nbdkit/nbdkit -r curl file:/var/tmp/jammy-server-cloudimg-amd64.raw --run "nbdcopy -p \$uri null:"
Time (mean ± σ): 455.0 ms ± 6.2 ms [User: 542.2 ms, System: 1824.7 ms]
Range (min … max): 449.1 ms … 471.6 ms 10 runs
Summary
' ~/d/nbdkit/nbdkit -r curl file:/var/tmp/jammy-server-cloudimg-amd64.raw --run "nbdcopy -p \$uri null:" ' ran
2.07 ± 0.05 times faster than ' nbdkit -r curl file:/var/tmp/jammy-server-cloudimg-amd64.raw --run "nbdcopy -p \$uri null:" '
Multi-conn is enabled only when we know the connection is read-only:
$ ./nbdkit -r curl file:/var/tmp/jammy-server-cloudimg-amd64.raw --run ' nbdinfo $uri ' | grep can_multi_conn
can_multi_conn: true
$ ./nbdkit curl file:/var/tmp/jammy-server-cloudimg-amd64.raw --run ' nbdinfo $uri ' | grep can_multi_conn
can_multi_conn: false
See also:
https://listman.redhat.com/archives/libguestfs/2023-February/030581.html
Reviewed-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit bb0f93ad7b9de451874d0c54188bf69cd37c5409)
---
plugins/curl/curl.c | 14 ++++++++++++++
plugins/curl/curldefs.h | 1 +
2 files changed, 15 insertions(+)
diff --git a/plugins/curl/curl.c b/plugins/curl/curl.c
index e89bea99..eeba5aa4 100644
--- a/plugins/curl/curl.c
+++ b/plugins/curl/curl.c
@@ -455,6 +455,7 @@ curl_open (int readonly)
nbdkit_error ("calloc: %m");
return NULL;
}
+ h->readonly = readonly;
h->c = curl_easy_init ();
if (h->c == NULL) {
@@ -764,6 +765,18 @@ curl_get_size (void *handle)
return h->exportsize;
}
+/* Multi-conn is safe for read-only connections, but HTTP does not
+ * have any concept of flushing so we cannot use it for read-write
+ * connections.
+ */
+static int
+curl_can_multi_conn (void *handle)
+{
+ struct curl_handle *h = handle;
+
+ return !! h->readonly;
+}
+
/* NB: The terminology used by libcurl is confusing!
*
* WRITEFUNCTION / write_cb is used when reading from the remote server
@@ -907,6 +920,7 @@ static struct nbdkit_plugin plugin = {
.open = curl_open,
.close = curl_close,
.get_size = curl_get_size,
+ .can_multi_conn = curl_can_multi_conn,
.pread = curl_pread,
.pwrite = curl_pwrite,
};
diff --git a/plugins/curl/curldefs.h b/plugins/curl/curldefs.h
index f3095f92..9d4949f3 100644
--- a/plugins/curl/curldefs.h
+++ b/plugins/curl/curldefs.h
@@ -64,6 +64,7 @@ extern const char *user_agent;
/* The per-connection handle. */
struct curl_handle {
CURL *c;
+ int readonly;
bool accept_range;
int64_t exportsize;
char errbuf[CURL_ERROR_SIZE];
--
2.31.1

View File

@ -0,0 +1,108 @@
From 0d080223a8567a5ef673deb6ac49152fd67dd1b7 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 16 Dec 2023 18:03:13 +0000
Subject: [PATCH] file: Further rework documentation of dir= parameter
Move the documentation to a new section, allowing us to expand on this
topic. This also makes the HTML documentation linkable.
Updates: commit 7cbd49ced6414e49fcf4ff1a967929a2b83ab44e
(cherry picked from commit 74621ec608d0edd76c2d8de140e7d1d5626c8251)
---
plugins/file/nbdkit-file-plugin.pod | 66 +++++++++++++++++++++--------
1 file changed, 49 insertions(+), 17 deletions(-)
diff --git a/plugins/file/nbdkit-file-plugin.pod b/plugins/file/nbdkit-file-plugin.pod
index 5feb8ea9..de8fbeba 100644
--- a/plugins/file/nbdkit-file-plugin.pod
+++ b/plugins/file/nbdkit-file-plugin.pod
@@ -63,23 +63,7 @@ directory named C<DIRECTORY>, including those found by following
symbolic links. Other special files in the directory (such as
subdirectories, pipes, or Unix sockets) are ignored.
-When this mode is used, the file to be served is chosen by the export
-name passed by the client. For security, when using directory mode,
-this plugin will not accept export names containing slash (C</>).
-
-To list exports, use L<nbdinfo(1)> I<--list> option, for example:
-
- nbdinfo --list nbd://localhost
-
-An NBD client can request a list of available exports using
-C<NBD_OPT_LIST>.
-
-A client that requests the default export (C<"">) will be rejected.
-However, you can use L<nbdkit-exportname-filter(1)> to adjust what
-export names the client sees, and which one the client uses as a
-default. For example to make F</dir/file> be the default export:
-
- nbdkit file dir=/dir --filter=exportname default-export=file
+See L</Serving multiple files and block devices> below.
=item B<dirfd=>FILE_DESCRIPTOR
@@ -89,6 +73,8 @@ This is like the C<dir=> option, but instead of specifying the
directory by name, the parent process should open the directory and
pass this file descriptor by inheritance to nbdkit.
+See L</Serving multiple files and block devices> below.
+
=item B<fadvise=normal>
=item B<fadvise=random>
@@ -140,6 +126,52 @@ L<https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#win32-devi
=head1 NOTES
+=head2 Serving multiple files and block devices
+
+Using C<dir=DIRECTORY> (or C<dirfd=DIRFD>) you can serve all regular
+files and block devices located directly inside the directory named
+C<DIRECTORY>, including those found by following symbolic links.
+Other special files in the directory (such as subdirectories, pipes,
+or Unix sockets) are ignored.
+
+When this mode is used, the file to be served is chosen by the export
+name passed by the client. For security, when using directory mode,
+this plugin will not accept export names containing slash (C</>).
+
+For example:
+
+ $ ls -l /var/tmp/exports
+ total 0
+ -rw-r--r--. 1 rjones rjones 1048576 Dec 14 15:34 disk1
+ -rw-r--r--. 1 rjones rjones 2097152 Dec 14 15:34 disk2
+ lrwxrwxrwx. 1 rjones rjones 9 Dec 14 15:35 sda1 -> /dev/sda1
+ $ nbdkit file dir=/var/tmp/exports
+
+will serve three exports called C<"disk1">, C<"disk2"> and C<"sda1">.
+The first two are regular files and the last is a block device. You
+can add or remove files or symbolic links from the directory while
+nbdkit is running.
+
+To list exports, use L<nbdinfo(1)> I<--list> option, for example:
+
+ $ nbdinfo --list nbd://localhost
+ protocol: newstyle-fixed without TLS, using structured packets
+ export="disk1":
+ export-size: 1048576 (1M)
+ uri: nbd://localhost:10809/disk1
+ [etc]
+
+An NBD client can request a list of available exports using
+C<NBD_OPT_LIST>. For libnbd clients see nbd_opt_list(3).
+
+A client that requests the default export (C<"">) will be rejected.
+However, you can use L<nbdkit-exportname-filter(1)> to adjust the
+default export as well as other transformations of export names. For
+example to make F</var/tmp/exports/disk1> be the default export:
+
+ nbdkit file dir=/var/tmp/exports \
+ --filter=exportname default-export=disk1
+
=head2 Optimizing for random or sequential access
If you know in advance that the NBD client will access the file
--
2.39.3

View File

@ -0,0 +1,29 @@
From c155987ee521c2d6a163d2814dc869ec1e89fd90 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 16 Dec 2023 18:32:50 +0000
Subject: [PATCH] exportname: Fix markup for linking to other man pages
Fixes: commit 7623b2cc45078cca88fdd2d96c70c7f82a0db49d
(cherry picked from commit 6104f55f3851f3b82dc69f7e78c32e9c7a93dbc9)
---
filters/exportname/nbdkit-exportname-filter.pod | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/filters/exportname/nbdkit-exportname-filter.pod b/filters/exportname/nbdkit-exportname-filter.pod
index 1d69f7d4..f95a37be 100644
--- a/filters/exportname/nbdkit-exportname-filter.pod
+++ b/filters/exportname/nbdkit-exportname-filter.pod
@@ -10,8 +10,8 @@ nbdkit-exportname-filter - adjust export names between client and plugin
=head1 DESCRIPTION
-Some plugins (such as C<nbdkit-file-plugin(1)> and filters (such as
-C<nbdkit-ext2-filter(1)> are able to serve different content based on
+Some plugins (such as L<nbdkit-file-plugin(1)> and filters (such as
+L<nbdkit-ext2-filter(1)> are able to serve different content based on
the export name requested by the client. The NBD protocol allows a
server to advertise the set of export names it is serving. However,
the list advertised (or absent) from the plugin may not always match
--
2.39.3

View File

@ -0,0 +1,30 @@
From b8eb91e9102a2ae6cb96b0f2ffdb96b724cbb1b7 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 20 Dec 2023 10:38:27 +0000
Subject: [PATCH] partition: Don't call nbdkit_error twice on error path
Fixes: commit 7b9301a4c569456a4f96784229a2cd48e8957662
(cherry picked from commit 036b178a4affd00b8bbdb6cb140e81b62f57a374)
---
filters/partition/partition-gpt.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/filters/partition/partition-gpt.c b/filters/partition/partition-gpt.c
index 80acddb4..930e2081 100644
--- a/filters/partition/partition-gpt.c
+++ b/filters/partition/partition-gpt.c
@@ -92,10 +92,8 @@ find_gpt_partition (nbdkit_next *next,
int err;
if (get_gpt_header (header_bytes,
- &nr_partition_entries, &size_partition_entry) == -1) {
- nbdkit_error ("cannot support non-standard GPT header");
+ &nr_partition_entries, &size_partition_entry) == -1)
return -1;
- }
if (partnum > nr_partition_entries) {
nbdkit_error ("GPT partition number out of range");
--
2.39.3

View File

@ -0,0 +1,52 @@
From 3b168aa842dc80a6d95b2c1ccb52a8ef664e7aba Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 20 Dec 2023 10:34:10 +0000
Subject: [PATCH] partition: Suggest alternate partition-sectorsize
When we reach this error it means that we have failed to detect the
"EFI PART" signature (indicating GPT) and we've fallen back to parsing
MBR, but in doing so we have discovered a GPT protective MBR which
should only happen for GPT. A possible cause for missing the
signature was because we have the wrong sector size.
Therefore check for the current sector size (which should be either
512 or 4096) and suggest that the user sets the other sector size.
Also avoids the case where the user already set partition-sectorsize=4k
and we were suggesting that they set it again.
Reported-by: Ming Xie
Fixes: commit 7b9301a4c569456a4f96784229a2cd48e8957662
Fixes: https://issues.redhat.com/browse/RHEL-19815
(cherry picked from commit cd761c9bf770b23f678fd82f0d1c8d4cce2ed1b5)
---
filters/partition/partition-mbr.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/filters/partition/partition-mbr.c b/filters/partition/partition-mbr.c
index 3927c31f..6a81addb 100644
--- a/filters/partition/partition-mbr.c
+++ b/filters/partition/partition-mbr.c
@@ -87,9 +87,16 @@ find_mbr_partition (nbdkit_next *next,
!is_extended (partition.part_type_byte) &&
partnum == i+1) {
if (partition.part_type_byte == 0xEE) {
- nbdkit_error ("rejecting GPT protective entry from MBR, "
- "if the underlying storage uses 4K sectors "
- "try using partition-sectorsize=4k");
+ if (sector_size == 512)
+ nbdkit_error ("rejecting GPT protective entry from MBR, "
+ "if the underlying storage uses 4K sectors "
+ "try using partition-sectorsize=4k");
+ else if (sector_size == 4096)
+ nbdkit_error ("rejecting GPT protective entry from MBR, "
+ "if the underlying storage uses 512 byte sectors "
+ "try using partition-sectorsize=512");
+ else
+ nbdkit_error ("rejecting GPT protective entry from MBR");
return -1;
}
*offset_r = partition.start_sector * (int64_t) sector_size;
--
2.39.3

View File

@ -6,7 +6,7 @@ set -e
# directory. Use it like this: # directory. Use it like this:
# ./copy-patches.sh # ./copy-patches.sh
rhel_version=9.2 rhel_version=9.4
# Check we're in the right directory. # Check we're in the right directory.
if [ ! -f nbdkit.spec ]; then if [ ! -f nbdkit.spec ]; then

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmO0P9URHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKBj/w/+MahWvHpk6oOoif9pvshQ5ZXWWH8+4DCZ
fMPQPRuU3j64tj2kUrp87zChVPkQv27v+RuQcs5OuhfB/nvCIJiK6dSMq6KQmIv2
b3LieGAuIlhr89YIGQRi7j+R8iWiQgm+dT6BNeu3n7kbpEbJPPUHhz2YNlw1x/LJ
mfSEh+0HXKKz7HsCDwUCenq/pCPyD4p9x0UB0xqDT7PLg3qGwpHCMTuslrX3alOu
EYl+NDr9q266IQYGUh1zpSkobLNLvHI+TFyYEvytDnU4MylyslOdDIsA89E/y29r
rSMl9edDjhQ/h51In1Q8rKmlXFrcwDeRUywybn09m1gu++bxls5W1LFAZvp/YBa+
nWYv3o58epJSbhEL6NO5fl88Ea5JJYqhB+I1ezud/nJ3Uu/t9C7m69Mt96U5NhQ5
9irjO1Przz/3ft9+t7hW2u3MFNrEA/u1+e/Jnyr4+g8ZYmM1V7hQWqGwjO09zUZT
5xR41WHxG3ZbuUOv5r5Xt7Xvp1tiiWxiyEWOBydQwsnV9yZR/G2m3eWFE5H315r+
qGQXbr41mnsUAG6G8VXsNwK8cu3YQkZBHm4et4wFmvI6C1n2I7jhQBoXkdi9BKj9
Rh/h3DDmYB2Ud6G/ApWwfRFhSPM/apuUYfuYlXPKteFhtPjfbNSlHkm4hr1lFbK/
+X9eYoD9410=
=qSZX
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmVjGrARHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKD2Kw/8CQVsyhgHBZ/73IRM7hskDVwidNJ9dgaZ
5BSsgyr8DU0W3yEgwFGAOb7wzKaFBN5vewAiftBz5sDSbddo7b5kzci4Fm+t+G/5
fE5FRzyj9mwOWvympcfdIwK9lDC+0Kr7lBq7WM8QjS4kG67Dxa9hXFKRxaIHjkY7
HK2WLUEF8/GU7dE+2aj77CXOo2gwfttCaNdPEv2pqq0ox8TKajWfInsCZ4t7DxUq
EoWTuDYlIMxLN8TSA71Am+8m8zmAZQ7WUr4cB3F8Y9EP8CljaFymI+sAv/EoeHTd
At9ZrT4Pjx0eO47MrSliincxlFIkFB9Bo316NHQ0c8gjQLgLq3nkjGlmr0P5S/iI
VMl4jVp8N2X0gXc78LQy1ARXGUD7IkCm2GePADZb4L8aSewXT6lT3UkONXToZuGE
yXLOPKVnvlnRE4DHQnvDYrwZns2Xm0u+na2bFTJgRu1i+dVSCa2a+ON7s+I2g9OI
jPAw/ps9PeNEi2F6shbJPskQCHZxZUKgrWPq4elPhFDFn1OPUBHeE/qwI5PhnpcC
LL94qWsqI/iXplvcJQ28ioXrbZFygDWheoErMtzt2K36kMDRmCQo4vPf6O+Z3qsb
9JfMLO0U7yjTI7+NJOrXa/aFAD+d0/twr177ox76kngbt7Bu+Thc7gEdncgC6w0B
8gBSF4OZ0w0=
=LFMp
-----END PGP SIGNATURE-----

View File

@ -22,6 +22,8 @@
%global have_ocaml 1 %global have_ocaml 1
%endif %endif
%global have_blkio 1
# Architectures where we run the complete test suite including # Architectures where we run the complete test suite including
# the libguestfs tests. # the libguestfs tests.
# #
@ -46,17 +48,17 @@ ExclusiveArch: x86_64
%global verify_tarball_signature 1 %global verify_tarball_signature 1
# If there are patches which touch autotools files, set this to 1. # If there are patches which touch autotools files, set this to 1.
%global patches_touch_autotools %{nil} %global patches_touch_autotools 1
# The source directory. # The source directory.
%global source_directory 1.32-stable %global source_directory 1.36-stable
Name: nbdkit Name: nbdkit
Version: 1.32.5 Version: 1.36.2
Release: 4%{?dist} Release: 1%{?dist}
Summary: NBD server Summary: NBD server
License: BSD License: BSD-3-Clause
URL: https://gitlab.com/nbdkit/nbdkit URL: https://gitlab.com/nbdkit/nbdkit
%if 0%{?rhel} >= 8 %if 0%{?rhel} >= 8
@ -75,13 +77,16 @@ Source2: libguestfs.keyring
Source3: copy-patches.sh Source3: copy-patches.sh
# Patches come from the upstream repository: # Patches come from the upstream repository:
# https://gitlab.com/nbdkit/nbdkit/-/commits/rhel-9.2/ # https://gitlab.com/nbdkit/nbdkit/-/commits/rhel-9.4/
# Patches. # Patches.
Patch0001: 0001-ssh-Remove-left-over-comment.patch Patch0001: 0001-configure-Fix-initialization-from-incompatible-point.patch
Patch0002: 0002-ssh-Improve-the-error-message-when-all-authenticatio.patch Patch0002: 0002-file-Rework-documentation-for-dir-parameter.patch
Patch0003: 0003-luks-Avoid-crash-when-image-does-not-contain-a-LUKS-.patch Patch0003: 0003-file-Fix-markup-when-referencing-dir-option-from-dir.patch
Patch0004: 0004-curl-Enable-multi-conn-for-read-only-connections.patch Patch0004: 0004-file-Further-rework-documentation-of-dir-parameter.patch
Patch0005: 0005-exportname-Fix-markup-for-linking-to-other-man-pages.patch
Patch0006: 0006-partition-Don-t-call-nbdkit_error-twice-on-error-pat.patch
Patch0007: 0007-partition-Suggest-alternate-partition-sectorsize.patch
# For automatic RPM Provides generation. # For automatic RPM Provides generation.
# See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html # See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html
@ -103,6 +108,9 @@ BuildRequires: libguestfs-devel
BuildRequires: libvirt-devel BuildRequires: libvirt-devel
BuildRequires: xz-devel BuildRequires: xz-devel
BuildRequires: zlib-devel BuildRequires: zlib-devel
%if !0%{?rhel}
BuildRequires: zlib-ng-devel
%endif
BuildRequires: libzstd-devel BuildRequires: libzstd-devel
BuildRequires: libcurl-devel BuildRequires: libcurl-devel
BuildRequires: libnbd-devel >= 1.3.11 BuildRequires: libnbd-devel >= 1.3.11
@ -112,6 +120,9 @@ BuildRequires: e2fsprogs, e2fsprogs-devel
BuildRequires: xorriso BuildRequires: xorriso
BuildRequires: rb_libtorrent-devel BuildRequires: rb_libtorrent-devel
%endif %endif
%if 0%{?have_blkio}
BuildRequires: libblkio-devel
%endif
BuildRequires: bash-completion BuildRequires: bash-completion
BuildRequires: perl-devel BuildRequires: perl-devel
BuildRequires: perl(ExtUtils::Embed) BuildRequires: perl(ExtUtils::Embed)
@ -202,7 +213,6 @@ reading the nbdkit(1) and nbdkit-plugin(3) manual pages.
%package server %package server
Summary: The %{name} server Summary: The %{name} server
License: BSD
%description server %description server
This package contains the %{name} server with only the null plugin This package contains the %{name} server with only the null plugin
@ -213,7 +223,6 @@ the metapackage "nbdkit".
%package basic-plugins %package basic-plugins
Summary: Basic plugins for %{name} Summary: Basic plugins for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
@ -238,6 +247,8 @@ nbdkit-memory-plugin A virtual memory plugin.
nbdkit-ondemand-plugin Create filesystems on demand. nbdkit-ondemand-plugin Create filesystems on demand.
nbdkit-ones-plugin Fill disk with repeated 0xff or other bytes.
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.
@ -255,7 +266,6 @@ nbdkit-zero-plugin Zero-length plugin for testing.
%package example-plugins %package example-plugins
Summary: Example plugins for %{name} Summary: Example plugins for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%if !0%{?rhel} %if !0%{?rhel}
# example4 is written in Perl. # example4 is written in Perl.
@ -269,10 +279,20 @@ This package contains example plugins for %{name}.
# The plugins below have non-trivial dependencies are so are # The plugins below have non-trivial dependencies are so are
# packaged separately. # packaged separately.
%if 0%{?have_blkio}
%package blkio-plugin
Summary: libblkio NVMe, vhost-user, vDPA, VFIO plugin for %{name}
Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description blkio-plugin
This package contains libblkio (NVMe, vhost-user, vDPA, VFIO) support
for %{name}.
%endif
%if !0%{?rhel} %if !0%{?rhel}
%package cc-plugin %package cc-plugin
Summary: Write small inline C plugins and scripts for %{name} Summary: Write small inline C plugins and scripts for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: gcc Requires: gcc
Requires: %{_bindir}/cat Requires: %{_bindir}/cat
@ -287,7 +307,6 @@ in C, install %{name}-devel for that.
%if !0%{?rhel} %if !0%{?rhel}
%package cdi-plugin %package cdi-plugin
Summary: Containerized Data Import plugin for %{name} Summary: Containerized Data Import plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: jq Requires: jq
Requires: podman Requires: podman
@ -299,7 +318,6 @@ This package contains Containerized Data Import support for %{name}.
%package curl-plugin %package curl-plugin
Summary: HTTP/FTP (cURL) plugin for %{name} Summary: HTTP/FTP (cURL) plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description curl-plugin %description curl-plugin
@ -309,7 +327,6 @@ This package contains cURL (HTTP/FTP) support for %{name}.
%if !0%{?rhel} && 0%{?have_libguestfs} %if !0%{?rhel} && 0%{?have_libguestfs}
%package guestfs-plugin %package guestfs-plugin
Summary: libguestfs plugin for %{name} Summary: libguestfs plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description guestfs-plugin %description guestfs-plugin
@ -320,7 +337,6 @@ This package is a libguestfs plugin for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package iso-plugin %package iso-plugin
Summary: Virtual ISO 9660 plugin for %{name} Summary: Virtual ISO 9660 plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: xorriso Requires: xorriso
@ -332,7 +348,6 @@ This package is a virtual ISO 9660 (CD-ROM) plugin for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package libvirt-plugin %package libvirt-plugin
Summary: Libvirt plugin for %{name} Summary: Libvirt plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description libvirt-plugin %description libvirt-plugin
@ -344,7 +359,6 @@ virDomainBlockPeek API.
%package linuxdisk-plugin %package linuxdisk-plugin
Summary: Virtual Linux disk plugin for %{name} Summary: Virtual Linux disk plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
# for mke2fs # for mke2fs
Requires: e2fsprogs Requires: e2fsprogs
@ -356,7 +370,6 @@ This package is a virtual Linux disk plugin for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package lua-plugin %package lua-plugin
Summary: Lua plugin for %{name} Summary: Lua plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description lua-plugin %description lua-plugin
@ -366,7 +379,6 @@ This package lets you write Lua plugins for %{name}.
%package nbd-plugin %package nbd-plugin
Summary: NBD proxy / forward plugin for %{name} Summary: NBD proxy / forward plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description nbd-plugin %description nbd-plugin
@ -377,7 +389,6 @@ to another NBD server.
%if !0%{?rhel} && 0%{?have_ocaml} %if !0%{?rhel} && 0%{?have_ocaml}
%package ocaml-plugin %package ocaml-plugin
Summary: OCaml plugin for %{name} Summary: OCaml plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description ocaml-plugin %description ocaml-plugin
@ -389,7 +400,6 @@ To compile OCaml plugins you will also need to install
%package ocaml-plugin-devel %package ocaml-plugin-devel
Summary: OCaml development environment for %{name} Summary: OCaml development environment for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release} Requires: %{name}-ocaml-plugin%{?_isa} = %{version}-%{release}
@ -401,7 +411,6 @@ This package lets you write OCaml plugins for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package perl-plugin %package perl-plugin
Summary: Perl plugin for %{name} Summary: Perl plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description perl-plugin %description perl-plugin
@ -411,7 +420,6 @@ This package lets you write Perl plugins for %{name}.
%package python-plugin %package python-plugin
Summary: Python 3 plugin for %{name} Summary: Python 3 plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description python-plugin %description python-plugin
@ -421,7 +429,6 @@ This package lets you write Python 3 plugins for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package ruby-plugin %package ruby-plugin
Summary: Ruby plugin for %{name} Summary: Ruby plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description ruby-plugin %description ruby-plugin
@ -434,7 +441,6 @@ This package lets you write Ruby plugins for %{name}.
# which varies across architectures, RPM does not allow this. # which varies across architectures, RPM does not allow this.
%package S3-plugin %package S3-plugin
Summary: Amazon S3 and Ceph plugin for %{name} Summary: Amazon S3 and Ceph plugin for %{name}
License: BSD
Requires: %{name}-python-plugin >= 1.22 Requires: %{name}-python-plugin >= 1.22
# XXX Should not need to add this. # XXX Should not need to add this.
Requires: python3-boto3 Requires: python3-boto3
@ -447,7 +453,6 @@ or Ceph using %{name}.
%package ssh-plugin %package ssh-plugin
Summary: SSH plugin for %{name} Summary: SSH plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description ssh-plugin %description ssh-plugin
@ -457,7 +462,6 @@ This package contains SSH support for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package tcl-plugin %package tcl-plugin
Summary: Tcl plugin for %{name} Summary: Tcl plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description tcl-plugin %description tcl-plugin
@ -467,7 +471,6 @@ This package lets you write Tcl plugins for %{name}.
%package tmpdisk-plugin %package tmpdisk-plugin
Summary: Remote temporary filesystem disk plugin for %{name} Summary: Remote temporary filesystem disk plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
# For mkfs and mke2fs (defaults). # For mkfs and mke2fs (defaults).
Requires: util-linux, e2fsprogs Requires: util-linux, e2fsprogs
@ -484,7 +487,6 @@ This package is a remote temporary filesystem disk plugin for %{name}.
%if !0%{?rhel} %if !0%{?rhel}
%package torrent-plugin %package torrent-plugin
Summary: BitTorrent plugin for %{name} Summary: BitTorrent plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description torrent-plugin %description torrent-plugin
@ -495,7 +497,6 @@ This package is a BitTorrent plugin for %{name}.
%ifarch x86_64 %ifarch x86_64
%package vddk-plugin %package vddk-plugin
Summary: VMware VDDK plugin for %{name} Summary: VMware VDDK plugin for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
# https://bugzilla.redhat.com/show_bug.cgi?id=1931818 # https://bugzilla.redhat.com/show_bug.cgi?id=1931818
Requires: libxcrypt-compat Requires: libxcrypt-compat
@ -508,7 +509,6 @@ VMware VDDK for accessing VMware disks and servers.
%package basic-filters %package basic-filters
Summary: Basic filters for %{name} Summary: Basic filters for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description basic-filters %description basic-filters
@ -534,6 +534,8 @@ nbdkit-delay-filter Inject read and write delays.
nbdkit-error-filter Inject errors. nbdkit-error-filter Inject errors.
nbdkit-evil-filter Add random data corruption to reads.
nbdkit-exitlast-filter Exit on last client connection. nbdkit-exitlast-filter Exit on last client connection.
nbdkit-exitwhen-filter Exit gracefully when an event occurs. nbdkit-exitwhen-filter Exit gracefully when an event occurs.
@ -572,6 +574,10 @@ nbdkit-pause-filter Pause NBD requests.
nbdkit-protect-filter Write-protect parts of a plugin. nbdkit-protect-filter Write-protect parts of a plugin.
%if !0%{?rhel}
nbdkit-qcow2dec-filter Decode qcow2 files.
%endif
nbdkit-rate-filter Limit bandwidth by connection or server. nbdkit-rate-filter Limit bandwidth by connection or server.
nbdkit-readahead-filter Prefetch data when reading sequentially. nbdkit-readahead-filter Prefetch data when reading sequentially.
@ -592,7 +598,6 @@ nbdkit-truncate-filter Truncate, expand, round up or round down size.
%if !0%{?rhel} %if !0%{?rhel}
%package ext2-filter %package ext2-filter
Summary: ext2, ext3 and ext4 filesystem support for %{name} Summary: ext2, ext3 and ext4 filesystem support for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description ext2-filter %description ext2-filter
@ -603,7 +608,6 @@ This package contains ext2, ext3 and ext4 filesystem support for
%package gzip-filter %package gzip-filter
Summary: GZip filter for %{name} Summary: GZip filter for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description gzip-filter %description gzip-filter
@ -612,7 +616,6 @@ This package is a gzip filter for %{name}.
%package stats-filter %package stats-filter
Summary: Statistics filter for %{name} Summary: Statistics filter for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description stats-filter %description stats-filter
@ -621,7 +624,6 @@ Display statistics about operations.
%package tar-filter %package tar-filter
Summary: Tar archive filter for %{name} Summary: Tar archive filter for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: tar Requires: tar
Obsoletes: %{name}-tar-plugin < 1.23.9-3 Obsoletes: %{name}-tar-plugin < 1.23.9-3
@ -632,7 +634,6 @@ This package is a tar archive filter for %{name}.
%package xz-filter %package xz-filter
Summary: XZ filter for %{name} Summary: XZ filter for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
%description xz-filter %description xz-filter
@ -641,7 +642,6 @@ This package is the xz filter for %{name}.
%package devel %package devel
Summary: Development files and documentation for %{name} Summary: Development files and documentation for %{name}
License: BSD
Requires: %{name}-server%{?_isa} = %{version}-%{release} Requires: %{name}-server%{?_isa} = %{version}-%{release}
Requires: pkgconfig Requires: pkgconfig
@ -653,7 +653,6 @@ plugins for %{name}.
%package srpm-macros %package srpm-macros
Summary: RPM Provides rules for %{name} plugins and filters Summary: RPM Provides rules for %{name} plugins and filters
License: BSD
BuildArch: noarch BuildArch: noarch
%description srpm-macros %description srpm-macros
@ -663,7 +662,6 @@ for %{name} plugins and filters found in the plugins directory.
%package bash-completion %package bash-completion
Summary: Bash tab-completion for %{name} Summary: Bash tab-completion for %{name}
License: BSD
BuildArch: noarch BuildArch: noarch
Requires: bash-completion >= 2.0 Requires: bash-completion >= 2.0
Requires: %{name}-server = %{version}-%{release} Requires: %{name}-server = %{version}-%{release}
@ -689,35 +687,73 @@ autoreconf -i
# package into their vendor/ directory. # package into their vendor/ directory.
export PYTHON=%{__python3} export PYTHON=%{__python3}
%configure \ %configure \
--with-extra='%{name}-%{version}-%{release}' \
--disable-static \ --disable-static \
--with-extra='%{name}-%{version}-%{release}' \
--with-tls-priority=@NBDKIT,SYSTEM \
--with-bash-completions \
--with-curl \
--with-gnutls \
--with-liblzma \
--with-libnbd \
--with-manpages \
--with-selinux \
--with-ssh \
--with-zlib \
%if !0%{?rhel}
--with-zlib-ng \
%else
--without-zlib-ng \
%endif
--enable-linuxdisk \
--enable-python \
--disable-golang \ --disable-golang \
--disable-rust \ --disable-rust \
--disable-valgrind \
%if !0%{?rhel} && 0%{?have_ocaml} %if !0%{?rhel} && 0%{?have_ocaml}
--enable-ocaml \ --enable-ocaml \
%else %else
--disable-ocaml \ --disable-ocaml \
%endif %endif
%if 0%{?rhel} %if !0%{?rhel}
--enable-lua \
--enable-perl \
--enable-ruby \
--enable-tcl \
--enable-torrent \
--with-ext2 \
--with-iso \
--with-libvirt \
%else
--disable-lua \ --disable-lua \
--disable-perl \ --disable-perl \
--disable-ruby \ --disable-ruby \
--disable-tcl \ --disable-tcl \
--disable-torrent \
--without-ext2 \ --without-ext2 \
--without-iso \ --without-iso \
--without-libvirt \ --without-libvirt \
%endif %endif
%if 0%{?have_blkio}
--with-libblkio \
%else
--without-libblkio \
%endif
%ifarch x86_64
--enable-vddk \
%else
--disable-vddk \
%endif
%if !0%{?rhel} && 0%{?have_libguestfs} %if !0%{?rhel} && 0%{?have_libguestfs}
--with-libguestfs \ --with-libguestfs \
%else %else
--without-libguestfs \ --without-libguestfs \
%endif %endif
%ifarch %{complete_test_arches} %ifarch !0%{?rhel} && 0%{?have_libguestfs} && %{complete_test_arches}
--enable-libguestfs-tests \ --enable-libguestfs-tests \
%else %else
--disable-libguestfs-tests \ --disable-libguestfs-tests \
%endif %endif
--with-tls-priority=@NBDKIT,SYSTEM %{nil}
# Verify that it picked the correct version of Python # Verify that it picked the correct version of Python
# to avoid RHBZ#1404631 happening again silently. # to avoid RHBZ#1404631 happening again silently.
@ -737,13 +773,15 @@ find $RPM_BUILD_ROOT -name '*.la' -delete
rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3* rm -f $RPM_BUILD_ROOT%{_mandir}/man3/nbdkit-rust-plugin.3*
%if 0%{?rhel} %if 0%{?rhel}
# In RHEL, remove some plugins we cannot --disable. # In RHEL, remove some plugins and filters we cannot --disable.
for f in cc cdi torrent; do for f in cc cdi ; do
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-$f-plugin.so
rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.* rm -f $RPM_BUILD_ROOT%{_mandir}/man?/nbdkit-$f-plugin.*
done done
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/nbdkit-S3-plugin
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1* rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-S3-plugin.1*
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/nbdkit-qcow2dec-filter.1*
%endif %endif
# Install RPM dependency generator. # Install RPM dependency generator.
@ -841,6 +879,7 @@ export LIBGUESTFS_TRACE=1
%{_libdir}/%{name}/plugins/nbdkit-info-plugin.so %{_libdir}/%{name}/plugins/nbdkit-info-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so %{_libdir}/%{name}/plugins/nbdkit-memory-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-ondemand-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-partitioning-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so %{_libdir}/%{name}/plugins/nbdkit-pattern-plugin.so
%{_libdir}/%{name}/plugins/nbdkit-random-plugin.so %{_libdir}/%{name}/plugins/nbdkit-random-plugin.so
@ -856,6 +895,7 @@ export LIBGUESTFS_TRACE=1
%{_mandir}/man1/nbdkit-info-plugin.1* %{_mandir}/man1/nbdkit-info-plugin.1*
%{_mandir}/man1/nbdkit-memory-plugin.1* %{_mandir}/man1/nbdkit-memory-plugin.1*
%{_mandir}/man1/nbdkit-ondemand-plugin.1* %{_mandir}/man1/nbdkit-ondemand-plugin.1*
%{_mandir}/man1/nbdkit-ones-plugin.1*
%{_mandir}/man1/nbdkit-partitioning-plugin.1* %{_mandir}/man1/nbdkit-partitioning-plugin.1*
%{_mandir}/man1/nbdkit-pattern-plugin.1* %{_mandir}/man1/nbdkit-pattern-plugin.1*
%{_mandir}/man1/nbdkit-random-plugin.1* %{_mandir}/man1/nbdkit-random-plugin.1*
@ -875,6 +915,15 @@ export LIBGUESTFS_TRACE=1
%{_mandir}/man1/nbdkit-example*-plugin.1* %{_mandir}/man1/nbdkit-example*-plugin.1*
%if 0%{?have_blkio}
%files blkio-plugin
%doc README.md
%license LICENSE
%{_libdir}/%{name}/plugins/nbdkit-blkio-plugin.so
%{_mandir}/man1/nbdkit-blkio-plugin.1*
%endif
%if !0%{?rhel} %if !0%{?rhel}
%files cc-plugin %files cc-plugin
%doc README.md %doc README.md
@ -1051,6 +1100,7 @@ export LIBGUESTFS_TRACE=1
%{_libdir}/%{name}/filters/nbdkit-ddrescue-filter.so %{_libdir}/%{name}/filters/nbdkit-ddrescue-filter.so
%{_libdir}/%{name}/filters/nbdkit-delay-filter.so %{_libdir}/%{name}/filters/nbdkit-delay-filter.so
%{_libdir}/%{name}/filters/nbdkit-error-filter.so %{_libdir}/%{name}/filters/nbdkit-error-filter.so
%{_libdir}/%{name}/filters/nbdkit-evil-filter.so
%{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so %{_libdir}/%{name}/filters/nbdkit-exitlast-filter.so
%{_libdir}/%{name}/filters/nbdkit-exitwhen-filter.so %{_libdir}/%{name}/filters/nbdkit-exitwhen-filter.so
%{_libdir}/%{name}/filters/nbdkit-exportname-filter.so %{_libdir}/%{name}/filters/nbdkit-exportname-filter.so
@ -1070,6 +1120,9 @@ export LIBGUESTFS_TRACE=1
%{_libdir}/%{name}/filters/nbdkit-partition-filter.so %{_libdir}/%{name}/filters/nbdkit-partition-filter.so
%{_libdir}/%{name}/filters/nbdkit-pause-filter.so %{_libdir}/%{name}/filters/nbdkit-pause-filter.so
%{_libdir}/%{name}/filters/nbdkit-protect-filter.so %{_libdir}/%{name}/filters/nbdkit-protect-filter.so
%if !0%{?rhel}
%{_libdir}/%{name}/filters/nbdkit-qcow2dec-filter.so
%endif
%{_libdir}/%{name}/filters/nbdkit-rate-filter.so %{_libdir}/%{name}/filters/nbdkit-rate-filter.so
%{_libdir}/%{name}/filters/nbdkit-readahead-filter.so %{_libdir}/%{name}/filters/nbdkit-readahead-filter.so
%{_libdir}/%{name}/filters/nbdkit-retry-filter.so %{_libdir}/%{name}/filters/nbdkit-retry-filter.so
@ -1087,6 +1140,7 @@ export LIBGUESTFS_TRACE=1
%{_mandir}/man1/nbdkit-ddrescue-filter.1* %{_mandir}/man1/nbdkit-ddrescue-filter.1*
%{_mandir}/man1/nbdkit-delay-filter.1* %{_mandir}/man1/nbdkit-delay-filter.1*
%{_mandir}/man1/nbdkit-error-filter.1* %{_mandir}/man1/nbdkit-error-filter.1*
%{_mandir}/man1/nbdkit-evil-filter.1*
%{_mandir}/man1/nbdkit-exitlast-filter.1* %{_mandir}/man1/nbdkit-exitlast-filter.1*
%{_mandir}/man1/nbdkit-exitwhen-filter.1* %{_mandir}/man1/nbdkit-exitwhen-filter.1*
%{_mandir}/man1/nbdkit-exportname-filter.1* %{_mandir}/man1/nbdkit-exportname-filter.1*
@ -1106,6 +1160,9 @@ export LIBGUESTFS_TRACE=1
%{_mandir}/man1/nbdkit-partition-filter.1* %{_mandir}/man1/nbdkit-partition-filter.1*
%{_mandir}/man1/nbdkit-pause-filter.1* %{_mandir}/man1/nbdkit-pause-filter.1*
%{_mandir}/man1/nbdkit-protect-filter.1* %{_mandir}/man1/nbdkit-protect-filter.1*
%if !0%{?rhel}
%{_mandir}/man1/nbdkit-qcow2dec-filter.1*
%endif
%{_mandir}/man1/nbdkit-rate-filter.1* %{_mandir}/man1/nbdkit-rate-filter.1*
%{_mandir}/man1/nbdkit-readahead-filter.1* %{_mandir}/man1/nbdkit-readahead-filter.1*
%{_mandir}/man1/nbdkit-retry-filter.1* %{_mandir}/man1/nbdkit-retry-filter.1*
@ -1200,6 +1257,22 @@ export LIBGUESTFS_TRACE=1
%changelog %changelog
* Tue Dec 20 2023 Richard W.M. Jones <rjones@redhat.com> - 1.36.2-1
- Rebase to 1.36.2
resolves: RHEL-14475
- partition: Suggest alternate partition-sectorsize
resolves: RHEL-19815
* Tue Aug 01 2023 Richard W.M. Jones <rjones@redhat.com> - 1.34.2-1
- Rebase to 1.34.2
resolves: rhbz#2168629
- Backport nbdkit-curl-plugin "multi" interface support
resolves: rhbz#2228131
* Tue Apr 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1.34.1-1
- Rebase to 1.34.1
resolves: rhbz#2168629
* Fri Feb 03 2023 Richard W.M. Jones <rjones@redhat.com> - 1.32.5-4 * Fri Feb 03 2023 Richard W.M. Jones <rjones@redhat.com> - 1.32.5-4
- Rebase to new stable branch version 1.32.5 - Rebase to new stable branch version 1.32.5
resolves: rhbz#2135765 resolves: rhbz#2135765