diff --git a/0005-copy-Add-blkhash-option.patch b/0001-copy-Add-blkhash-option.patch similarity index 97% rename from 0005-copy-Add-blkhash-option.patch rename to 0001-copy-Add-blkhash-option.patch index c80c1a5..1ed32d3 100644 --- a/0005-copy-Add-blkhash-option.patch +++ b/0001-copy-Add-blkhash-option.patch @@ -1,4 +1,4 @@ -From 782f779854de0665be8fd80af820091634985fa4 Mon Sep 17 00:00:00 2001 +From de3038e45dde22cf85961966bfe9bcf6b45e2b14 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 29 Mar 2025 11:46:52 +0000 Subject: [PATCH] copy: Add --blkhash option @@ -36,20 +36,20 @@ Thanks: Nir Soffer create mode 100755 copy/copy-blkhash-randfile.sh diff --git a/copy/Makefile.am b/copy/Makefile.am -index c42accab..403f98ba 100644 +index 0ca76450..c7e37058 100644 --- a/copy/Makefile.am +++ b/copy/Makefile.am -@@ -18,6 +18,9 @@ - include $(top_srcdir)/subdir-rules.mk - - EXTRA_DIST = \ +@@ -22,6 +22,9 @@ EXTRA_DIST = \ + copy-allocated-synch.sh \ + copy-allocated-destination-zero-asynch.sh \ + copy-allocated-destination-zero-synch.sh \ + copy-blkhash-known.sh \ + copy-blkhash-pattern.sh \ + copy-blkhash-randfile.sh \ copy-block-to-nbd.sh \ - copy-file-to-file.sh \ - copy-file-to-nbd.sh \ -@@ -65,6 +68,7 @@ TESTS = + copy-destination-zero-asynch.sh \ + copy-destination-zero-synch.sh \ +@@ -72,6 +75,7 @@ TESTS = nbdcopy_SOURCES = \ nbdcopy.h \ @@ -57,7 +57,7 @@ index c42accab..403f98ba 100644 file-ops.c \ main.c \ multi-thread-copying.c \ -@@ -82,8 +86,10 @@ nbdcopy_CPPFLAGS = \ +@@ -89,8 +93,10 @@ nbdcopy_CPPFLAGS = \ nbdcopy_CFLAGS = \ $(WARNINGS_CFLAGS) \ $(PTHREAD_CFLAGS) \ @@ -68,7 +68,7 @@ index c42accab..403f98ba 100644 $(PTHREAD_LIBS) \ $(top_builddir)/common/utils/libutils.la \ $(top_builddir)/lib/libnbd.la \ -@@ -150,6 +156,12 @@ TESTS += \ +@@ -164,6 +170,12 @@ TESTS += \ endif if HAVE_GNUTLS @@ -773,7 +773,7 @@ index 00000000..029237c4 + +$VG nbdcopy --blkhash=md5/512 $randfile null: diff --git a/copy/main.c b/copy/main.c -index 447dc948..1a854d5f 100644 +index 3886a528..8f943b30 100644 --- a/copy/main.c +++ b/copy/main.c @@ -32,12 +32,15 @@ @@ -956,7 +956,7 @@ index a75fb265..89588e6e 100644 /* If sparseness detection (see below) is turned off then we write * the whole command. diff --git a/copy/nbdcopy.h b/copy/nbdcopy.h -index 1b082f63..b107b72f 100644 +index 7c54463d..91289c32 100644 --- a/copy/nbdcopy.h +++ b/copy/nbdcopy.h @@ -25,6 +25,10 @@ @@ -1079,10 +1079,10 @@ index 940e37ad..3efe2b1b 100644 =head1 AUTHORS diff --git a/copy/synch-copying.c b/copy/synch-copying.c -index 200c97f6..4c65c86d 100644 +index 5d21423d..09f05be2 100644 --- a/copy/synch-copying.c +++ b/copy/synch-copying.c -@@ -49,6 +49,7 @@ synch_copying (void) +@@ -83,6 +83,7 @@ synch_copying (void) size_t r; while ((r = src->ops->synch_read (src, buf, request_size, offset)) > 0) { @@ -1090,15 +1090,15 @@ index 200c97f6..4c65c86d 100644 dst->ops->synch_write (dst, buf, r, offset); offset += r; progress_bar (offset, src->size); -@@ -82,6 +83,7 @@ synch_copying (void) +@@ -116,6 +117,7 @@ synch_copying (void) assert (exts.ptr[i].length <= count); if (exts.ptr[i].zero) { + update_blkhash (NULL, offset, exts.ptr[i].length); - if (!dst->ops->synch_zero (dst, offset, exts.ptr[i].length, false) && - !dst->ops->synch_zero (dst, offset, exts.ptr[i].length, true)) { - /* If efficient zeroing (punching a hole or allocating -@@ -103,6 +105,7 @@ synch_copying (void) + fill_dst_range_with_zeroes(offset, exts.ptr[i].length, buf); + offset += exts.ptr[i].length; + } +@@ -130,6 +132,7 @@ synch_copying (void) exit (EXIT_FAILURE); } diff --git a/0001-info-Use-magenta-for-export-headings-instead-of-blac.patch b/0001-info-Use-magenta-for-export-headings-instead-of-blac.patch deleted file mode 100644 index e9cd1c9..0000000 --- a/0001-info-Use-magenta-for-export-headings-instead-of-blac.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 7e75a5666bf4078030a7334def14c67c2eeab1f6 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 10 Mar 2025 15:18:06 +0000 -Subject: [PATCH] info: Use magenta for export headings, instead of black - -Use of black foreground text makes the text invisible when using a -dark theme. Use a magenta colour instead which works on both light -and dark background. - -Reported-by: Ming Xie -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2221199 -Fixes: https://issues.redhat.com/browse/RHEL-7119 ---- - info/main.c | 2 -- - info/show.c | 6 ++---- - 2 files changed, 2 insertions(+), 6 deletions(-) - -diff --git a/info/main.c b/info/main.c -index 8aa6cb74..1ee9e329 100644 ---- a/info/main.c -+++ b/info/main.c -@@ -358,7 +358,6 @@ main (int argc, char *argv[]) - - if (!json_output) { - if (protocol) { -- ansi_colour (ANSI_FG_GREY, fp); - fprintf (fp, "protocol: %s", protocol); - if (tls_negotiated >= 0) - fprintf (fp, " %s TLS", tls_negotiated ? "with" : "without"); -@@ -367,7 +366,6 @@ main (int argc, char *argv[]) - eh_negotiated ? "extended" : - sr_negotiated ? "structured" : "simple"); - fprintf (fp, "\n"); -- ansi_restore (fp); - } - } - else { -diff --git a/info/show.c b/info/show.c -index 1596eb77..4886dad5 100644 ---- a/info/show.c -+++ b/info/show.c -@@ -131,7 +131,7 @@ show_one_export (struct nbd_handle *nbd, const char *desc, - content = get_content (nbd, size); - - if (!json_output) { -- ansi_colour (ANSI_FG_BOLD_BLACK, fp); -+ ansi_colour (ANSI_FG_BRIGHT_MAGENTA, fp); - fprintf (fp, "export="); - /* Might as well use the JSON function to get an escaped string here ... */ - print_json_string (export_name); -@@ -148,10 +148,9 @@ show_one_export (struct nbd_handle *nbd, const char *desc, - fprintf (fp, "\texport-size: %s\n", size_str); - if (content) - fprintf (fp, "\tcontent: %s\n", content); -+ ansi_restore (fp); - if (uri) - fprintf (fp, "\turi: %s\n", uri); -- ansi_restore (fp); -- ansi_colour (ANSI_FG_GREY, fp); - if (show_context) { - fprintf (fp, "\tcontexts:\n"); - for (i = 0; i < contexts.len; ++i) -@@ -160,7 +159,6 @@ show_one_export (struct nbd_handle *nbd, const char *desc, - if (is_rotational >= 0) - fprintf (fp, "\t%s: %s\n", "is_rotational", - is_rotational ? "true" : "false"); -- ansi_restore (fp); - if (is_read_only >= 0) - fprintf (fp, "\t%s: %s\n", "is_read_only", - is_read_only ? "true" : "false"); --- -2.47.1 - diff --git a/0006-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch b/0002-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch similarity index 91% rename from 0006-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch rename to 0002-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch index 3e9a905..53f1b23 100644 --- a/0006-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch +++ b/0002-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch @@ -1,4 +1,4 @@ -From bf2babeaea87958f587e67ff73b27e9bfe7544a1 Mon Sep 17 00:00:00 2001 +From 2dd76033ddf81ac21fc1113e1b99ff9c8c354ee5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 7 Apr 2025 11:35:25 +0100 Subject: [PATCH] copy: Fix crash when blkhash size is not a power of 2 @@ -16,7 +16,7 @@ Fixes: https://issues.redhat.com/browse/RHEL-85513 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/copy/main.c b/copy/main.c -index 1a854d5f..07897e79 100644 +index 8f943b30..9afb627c 100644 --- a/copy/main.c +++ b/copy/main.c @@ -220,7 +220,7 @@ main (int argc, char *argv[]) diff --git a/0002-copy-progress-Add-a-comment-about-size-and-pipes.patch b/0002-copy-progress-Add-a-comment-about-size-and-pipes.patch deleted file mode 100644 index dfdf00b..0000000 --- a/0002-copy-progress-Add-a-comment-about-size-and-pipes.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6e95cddb80399429569a02c29479cb96175f0291 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 29 Mar 2025 13:56:36 +0000 -Subject: [PATCH] copy: progress: Add a comment about size and pipes - -I think this is a bug of sorts, although the progress_bar subfunctions -happen to handle it fine. Add a comment so I remember to do something -about this later. - -(cherry picked from commit 363437af152d037b909de6b1ef7f91da921e073c) ---- - copy/progress.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/copy/progress.c b/copy/progress.c -index cc0910d6..3c010320 100644 ---- a/copy/progress.c -+++ b/copy/progress.c -@@ -100,6 +100,11 @@ progress_bar (off_t pos, int64_t size) - if (size == 0) - return; - -+ /* XXX Synchronous mode, when the source is a pipe, passes size == -+ * -1 here. We should deal with this by displaying some sort of -+ * spinner. -+ */ -+ - pthread_mutex_lock (&lock); - if (progress_fd == -1) - do_progress_bar (pos, size); --- -2.47.1 - diff --git a/0007-copy-Define-block_type-outside-of-block-struct.patch b/0003-copy-Define-block_type-outside-of-block-struct.patch similarity index 97% rename from 0007-copy-Define-block_type-outside-of-block-struct.patch rename to 0003-copy-Define-block_type-outside-of-block-struct.patch index 0b776aa..a825abc 100644 --- a/0007-copy-Define-block_type-outside-of-block-struct.patch +++ b/0003-copy-Define-block_type-outside-of-block-struct.patch @@ -1,4 +1,4 @@ -From acc2ec1028879327dde9874b2969c20cd5f50842 Mon Sep 17 00:00:00 2001 +From d6518adef678ac1676d30f2b6fa9297b6f32db73 Mon Sep 17 00:00:00 2001 From: Nir Soffer Date: Sun, 13 Apr 2025 14:51:09 +0000 Subject: [PATCH] copy: Define block_type outside of block struct diff --git a/0003-copy-Set-the-total-size-in-bytes-copied.patch b/0003-copy-Set-the-total-size-in-bytes-copied.patch deleted file mode 100644 index 004b048..0000000 --- a/0003-copy-Set-the-total-size-in-bytes-copied.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f2f54e2dc61c7d7fbfc7ee53d70629937967e84a Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 29 Mar 2025 14:00:39 +0000 -Subject: [PATCH] copy: Set the total size in bytes copied - -Ensure that src->size contains the total size in bytes copied. There -is (only) one place where this is not known in advance, which is when -we are reading from a pipe. - -(cherry picked from commit afe4f390a65a0d1b9f3625bf90c73726866e0a64) ---- - copy/main.c | 3 +++ - copy/synch-copying.c | 6 ++++++ - 2 files changed, 9 insertions(+) - -diff --git a/copy/main.c b/copy/main.c -index 200b7756..447dc948 100644 ---- a/copy/main.c -+++ b/copy/main.c -@@ -479,6 +479,9 @@ main (int argc, char *argv[]) - /* Always set the progress bar to 100% at the end of the copy. */ - progress_bar (1, 1); - -+ /* We should always know the total size copied here. */ -+ assert (src->size >= 0); -+ - /* Shut down the source side. */ - src->ops->close (src); - -diff --git a/copy/synch-copying.c b/copy/synch-copying.c -index 2f6627bf..200c97f6 100644 ---- a/copy/synch-copying.c -+++ b/copy/synch-copying.c -@@ -53,6 +53,12 @@ synch_copying (void) - offset += r; - progress_bar (offset, src->size); - } -+ -+ /* Record the total amount of data that was copied. In all other -+ * cases, src->size will already be set to the true size, so here -+ * is the only place we have to set this. -+ */ -+ src->size = offset; - } - - /* Otherwise we know how much we're copying, so we can copy in whole --- -2.47.1 - diff --git a/0008-copy-Shrink-struct-block.patch b/0004-copy-Shrink-struct-block.patch similarity index 98% rename from 0008-copy-Shrink-struct-block.patch rename to 0004-copy-Shrink-struct-block.patch index aa71650..bff83f7 100644 --- a/0008-copy-Shrink-struct-block.patch +++ b/0004-copy-Shrink-struct-block.patch @@ -1,4 +1,4 @@ -From d2a40df593c1f3ebd9d61277c1c4d336e27f1596 Mon Sep 17 00:00:00 2001 +From 7546ba20ec4ddf7e4b1137b294873c4c49b52c99 Mon Sep 17 00:00:00 2001 From: Nir Soffer Date: Sun, 13 Apr 2025 14:54:31 +0000 Subject: [PATCH] copy: Shrink struct block diff --git a/0004-info-info-uri-nbds.sh-Fix-test-if-compiled-without-G.patch b/0004-info-info-uri-nbds.sh-Fix-test-if-compiled-without-G.patch deleted file mode 100644 index 54640e1..0000000 --- a/0004-info-info-uri-nbds.sh-Fix-test-if-compiled-without-G.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3a4305f0f26e9a0257256fa2326ff8976cb005d0 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Sat, 29 Mar 2025 21:30:26 +0000 -Subject: [PATCH] info/info-uri-nbds.sh: Fix test if compiled without GnuTLS - -Fixes: commit 37ee81ea12eec0dafd677c439710d63579652586 -(cherry picked from commit 35683f8236adead4c76f268a67528df634394dce) ---- - info/info-uri-nbds.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/info/info-uri-nbds.sh b/info/info-uri-nbds.sh -index 4fbfc64c..9b618fb8 100755 ---- a/info/info-uri-nbds.sh -+++ b/info/info-uri-nbds.sh -@@ -28,6 +28,10 @@ requires $NBDKIT null --version - requires $NBDKIT --tls-verify-peer -U - null --run 'exit 0' - requires jq --version - -+# Requires that this build has TLS. -+requires nbdsh --version -+requires nbdsh -c 'exit(not h.supports_tls())' -+ - # Requires that the test certificates were created. - pki=../tests/pki - requires test -f $pki/stamp-pki --- -2.47.1 - diff --git a/0009-copy-Enable-zero-optimization-for-allocated-extents.patch b/0005-copy-Enable-zero-optimization-for-allocated-extents.patch similarity index 97% rename from 0009-copy-Enable-zero-optimization-for-allocated-extents.patch rename to 0005-copy-Enable-zero-optimization-for-allocated-extents.patch index 14a6d94..d7edf10 100644 --- a/0009-copy-Enable-zero-optimization-for-allocated-extents.patch +++ b/0005-copy-Enable-zero-optimization-for-allocated-extents.patch @@ -1,4 +1,4 @@ -From c92dab9825cc4234777583d56dbd11e27b61637f Mon Sep 17 00:00:00 2001 +From 46d67e16fd65aad6f9f795dfcefcfc19a0e419eb Mon Sep 17 00:00:00 2001 From: Nir Soffer Date: Sun, 13 Apr 2025 23:39:15 +0000 Subject: [PATCH] copy: Enable zero optimization for allocated extents diff --git a/0010-copy-Fix-corrupted-hash-on-incomplete-read.patch b/0006-copy-Fix-corrupted-hash-on-incomplete-read.patch similarity index 90% rename from 0010-copy-Fix-corrupted-hash-on-incomplete-read.patch rename to 0006-copy-Fix-corrupted-hash-on-incomplete-read.patch index 2b0ad28..a53f2ea 100644 --- a/0010-copy-Fix-corrupted-hash-on-incomplete-read.patch +++ b/0006-copy-Fix-corrupted-hash-on-incomplete-read.patch @@ -1,4 +1,4 @@ -From 692d28fd6dc3a74855b25173b39d5e2ad6ddc30f Mon Sep 17 00:00:00 2001 +From a15fc80c4fd558509a3a8b5cf96bec27c483e656 Mon Sep 17 00:00:00 2001 From: Nir Soffer Date: Mon, 14 Apr 2025 21:40:16 +0000 Subject: [PATCH] copy: Fix corrupted hash on incomplete read @@ -22,10 +22,10 @@ the code. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/copy/synch-copying.c b/copy/synch-copying.c -index 4c65c86d..b030a85a 100644 +index 09f05be2..2aa67df6 100644 --- a/copy/synch-copying.c +++ b/copy/synch-copying.c -@@ -49,7 +49,7 @@ synch_copying (void) +@@ -83,7 +83,7 @@ synch_copying (void) size_t r; while ((r = src->ops->synch_read (src, buf, request_size, offset)) > 0) { diff --git a/libnbd.spec b/libnbd.spec index 01afab5..64cd0d9 100644 --- a/libnbd.spec +++ b/libnbd.spec @@ -20,8 +20,8 @@ %global source_directory 1.22-stable Name: libnbd -Version: 1.22.1 -Release: 4%{?dist} +Version: 1.22.2 +Release: 1%{?dist} Summary: NBD client library in userspace License: LGPL-2.0-or-later AND BSD-3-Clause @@ -41,16 +41,12 @@ Source3: copy-patches.sh # https://gitlab.com/nbdkit/libnbd/-/commits/rhel-10.1/ # Patches. -Patch0001: 0001-info-Use-magenta-for-export-headings-instead-of-blac.patch -Patch0002: 0002-copy-progress-Add-a-comment-about-size-and-pipes.patch -Patch0003: 0003-copy-Set-the-total-size-in-bytes-copied.patch -Patch0004: 0004-info-info-uri-nbds.sh-Fix-test-if-compiled-without-G.patch -Patch0005: 0005-copy-Add-blkhash-option.patch -Patch0006: 0006-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch -Patch0007: 0007-copy-Define-block_type-outside-of-block-struct.patch -Patch0008: 0008-copy-Shrink-struct-block.patch -Patch0009: 0009-copy-Enable-zero-optimization-for-allocated-extents.patch -Patch0010: 0010-copy-Fix-corrupted-hash-on-incomplete-read.patch +Patch0001: 0001-copy-Add-blkhash-option.patch +Patch0002: 0002-copy-Fix-crash-when-blkhash-size-is-not-a-power-of-2.patch +Patch0003: 0003-copy-Define-block_type-outside-of-block-struct.patch +Patch0004: 0004-copy-Shrink-struct-block.patch +Patch0005: 0005-copy-Enable-zero-optimization-for-allocated-extents.patch +Patch0006: 0006-copy-Fix-corrupted-hash-on-incomplete-read.patch %if 0%{verify_tarball_signature} BuildRequires: gnupg2 @@ -391,8 +387,8 @@ make %{?_smp_mflags} check || { %changelog -* Tue Apr 15 2025 Richard W.M. Jones - 1.22.1-4 -- Rebase to libnbd 1.22.1 +* Tue Apr 22 2025 Richard W.M. Jones - 1.22.2-1 +- Rebase to libnbd 1.22.2 - Synch spec file with Fedora Rawhide. resolves: RHEL-78831 - Fix nbdinfo with dark theme diff --git a/sources b/sources index 98368e0..381c18a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (libnbd-1.22.1.tar.gz) = 3f265ed59020c394c5e1f46c51d0ae7f3e7e54461739da964ac92b5c4c8bc98ea9813b93342e025f5f770b688d16d155d6e74d715beab482a040115df6be5afa -SHA512 (libnbd-1.22.1.tar.gz.sig) = fd56b7ff28c3c8ecc39dc8433fe8b8e3852b2ce66fe003cb614957f3d6f09850c042f820098fe4a3039863320faf037657cfbafbc3a902ecc0849f771ea544c4 +SHA512 (libnbd-1.22.2.tar.gz) = 5ece4cdc41cafefbe27ddaeafc2b6b390b0cf25f38f80c1b10ec2e17ee1dcda92964891faf4abca4c8aa5827c9eec6e0b38162871e8c72b2af8e769287cd603d +SHA512 (libnbd-1.22.2.tar.gz.sig) = 0b0d6cd4e5b900aef73820f53dc87e3d7dbd80a056efbb8c6236750c91fc570b529a3bddcbb446ebbb517f279daf90d6fa7e9ffca16901b5568ac395c1b6eda2