Temporary workaround for binutils bug
https://sourceware.org/bugzilla/show_bug.cgi?id=31283 Use git to apply the patches since patch 0004 contains a binary patch.
This commit is contained in:
parent
2fd0615d12
commit
d89cffce88
@ -1,7 +1,7 @@
|
||||
From 93a1538808ac7f9788336a7e35168d851e8b2c72 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 23 Jan 2024 13:24:48 +0000
|
||||
Subject: [PATCH 1/3] common/bitmaps: Fix tests when srcdir != builddir
|
||||
Subject: [PATCH 1/4] common/bitmaps: Fix tests when srcdir != builddir
|
||||
|
||||
---
|
||||
common/bitmap/Makefile.am | 1 +
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ac60163ceba1b951e1d2f0625552e6a45d85f666 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 23 Jan 2024 13:35:02 +0000
|
||||
Subject: [PATCH 2/3] tests: Fix tests to work with srcdir != builddir
|
||||
Subject: [PATCH 2/4] tests: Fix tests to work with srcdir != builddir
|
||||
|
||||
---
|
||||
tests/test-cc-cpp.sh | 2 +-
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 774465bb9e3444f23709deabeb39cc91490001a5 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Tue, 23 Jan 2024 18:08:12 +0000
|
||||
Subject: [PATCH 3/3] common/replacements/win32: Only build nbdkit-cat.mc
|
||||
Subject: [PATCH 3/4] common/replacements/win32: Only build nbdkit-cat.mc
|
||||
derived files once
|
||||
|
||||
Previously parallel builds caused multiple instances of windmc to run.
|
||||
|
192
0004-common-replacements-win32-Make-windmc-tool-optional.patch
Normal file
192
0004-common-replacements-win32-Make-windmc-tool-optional.patch
Normal file
@ -0,0 +1,192 @@
|
||||
From 617f950de1d18d5ddd146c32d700afd81470a284 Mon Sep 17 00:00:00 2001
|
||||
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||
Date: Wed, 24 Jan 2024 10:46:26 +0000
|
||||
Subject: [PATCH 4/4] common/replacements/win32: Make windmc tool optional
|
||||
|
||||
Make the windmc (mc.exe) tool option even on Windows.
|
||||
|
||||
Distribute the generated message catalogs, but regenerate them if
|
||||
windmc is found at compile time.
|
||||
|
||||
I also changed mc -> mc.exe since "mc" on Linux is a program called
|
||||
Midnight Commander and mc.exe would only be the name when compiling on
|
||||
Windows. (If there's any confusion here, you can always define the
|
||||
right binary to use by doing: ./configure MC=/path/to/mc.exe)
|
||||
---
|
||||
configure.ac | 10 ++--
|
||||
common/replacements/win32/Makefile.am | 13 +++--
|
||||
common/replacements/win32/nbdkit-cat.h | 68 ++++++++++++++++++++++++
|
||||
common/replacements/win32/MSG00001.bin | Bin 0 -> 28 bytes
|
||||
common/replacements/win32/nbdkit-cat.rc | 9 ++++
|
||||
.gitignore | 3 --
|
||||
6 files changed, 89 insertions(+), 14 deletions(-)
|
||||
create mode 100644 common/replacements/win32/nbdkit-cat.h
|
||||
create mode 100644 common/replacements/win32/MSG00001.bin
|
||||
create mode 100644 common/replacements/win32/nbdkit-cat.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 08ba6287c..03c655638 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -584,13 +584,11 @@ AC_DEFINE_UNQUOTED([DIR_SEPARATOR_STR],["$DIR_SEPARATOR_STR"],
|
||||
[String that separates path elements.])
|
||||
AM_CONDITIONAL([IS_WINDOWS],[test "x$is_windows" = "xyes"])
|
||||
|
||||
+dnl Look for the mc/windmc utility (optional).
|
||||
+AC_CHECK_TOOLS([MC],[windmc mc.exe],[no])
|
||||
+AM_CONDITIONAL([HAVE_MC],[test "x$MC" != "xno"])
|
||||
+
|
||||
AS_IF([test "x$is_windows" = "xyes"],[
|
||||
- dnl For Windows, look for the mc/windmc utility.
|
||||
- dnl XXX Do we need to check for mc.exe as well?
|
||||
- AC_CHECK_TOOLS([MC],[windmc mc],[no])
|
||||
- AS_IF([test "x$MC" = "xno"],
|
||||
- [AC_MSG_ERROR([mc/windmc utility must be available when compiling for Windows])])
|
||||
-
|
||||
dnl On Windows look for dlltool.
|
||||
AC_CHECK_TOOLS([DLLTOOL],[dlltool],[no])
|
||||
AS_IF([test "x$DLLTOOL" = "xno"],
|
||||
diff --git a/common/replacements/win32/Makefile.am b/common/replacements/win32/Makefile.am
|
||||
index b8c7c639e..45dcd6ac2 100644
|
||||
--- a/common/replacements/win32/Makefile.am
|
||||
+++ b/common/replacements/win32/Makefile.am
|
||||
@@ -29,15 +29,18 @@
|
||||
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
# SUCH DAMAGE.
|
||||
|
||||
+# The Windows message catalog.
|
||||
+
|
||||
include $(top_srcdir)/common-rules.mk
|
||||
|
||||
-EXTRA_DIST = nbdkit-cat.mc
|
||||
-
|
||||
-if IS_WINDOWS
|
||||
-
|
||||
-# Build the message catalog.
|
||||
noinst_DATA = MSG00001.bin nbdkit-cat.h nbdkit-cat.rc
|
||||
|
||||
+# We distribute the generated message catalog files to save people
|
||||
+# needing to install the windmc tool, but they are regenerated (below)
|
||||
+# if windmc is found at configure time.
|
||||
+EXTRA_DIST = nbdkit-cat.mc $(noinst_DATA)
|
||||
+
|
||||
+if HAVE_MC
|
||||
CLEANFILES += stamp-data
|
||||
|
||||
$(noinst_DATA): stamp-data
|
||||
diff --git a/common/replacements/win32/nbdkit-cat.h b/common/replacements/win32/nbdkit-cat.h
|
||||
new file mode 100644
|
||||
index 000000000..8081e453d
|
||||
--- /dev/null
|
||||
+++ b/common/replacements/win32/nbdkit-cat.h
|
||||
@@ -0,0 +1,68 @@
|
||||
+/* Do not edit this file manually.
|
||||
+ This file is autogenerated by windmc. */
|
||||
+
|
||||
+//
|
||||
+// The values are 32 bit layed out as follows:
|
||||
+//
|
||||
+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||
+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||||
+// +---+-+-+-----------------------+-------------------------------+
|
||||
+// |Sev|C|R| Facility | Code |
|
||||
+// +---+-+-+-----------------------+-------------------------------+
|
||||
+//
|
||||
+// where
|
||||
+//
|
||||
+// C - is the Customer code flag
|
||||
+//
|
||||
+// R - is a reserved bit
|
||||
+//
|
||||
+// Code - is the facility's status code
|
||||
+//
|
||||
+// Sev - is the severity code
|
||||
+//
|
||||
+// Success - 00
|
||||
+// Informational - 01
|
||||
+// Warning - 02
|
||||
+// Error - 03
|
||||
+//
|
||||
+// Facility - is the facility code
|
||||
+//
|
||||
+// System - 00ff
|
||||
+// Application - 0fff
|
||||
+//
|
||||
+
|
||||
+// 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.
|
||||
+//
|
||||
+// MessageId: NBDKIT_SYSLOG_ERROR
|
||||
+//
|
||||
+#define NBDKIT_SYSLOG_ERROR 0xc0000001
|
||||
+
|
||||
diff --git a/common/replacements/win32/MSG00001.bin b/common/replacements/win32/MSG00001.bin
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..f642ff3a4079b4b8b3b60b9ecefebe7c136a404b
|
||||
GIT binary patch
|
||||
literal 28
|
||||
dcmZQ%U|?WmU^oE60zftokf+LE$iM|;0{|fO0s#O3
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/common/replacements/win32/nbdkit-cat.rc b/common/replacements/win32/nbdkit-cat.rc
|
||||
new file mode 100644
|
||||
index 000000000..6f6ce3344
|
||||
--- /dev/null
|
||||
+++ b/common/replacements/win32/nbdkit-cat.rc
|
||||
@@ -0,0 +1,9 @@
|
||||
+/* Do not edit this file manually.
|
||||
+ This file is autogenerated by windmc. */
|
||||
+
|
||||
+
|
||||
+// Country: United States
|
||||
+// Language: English
|
||||
+#pragma code_page(1252)
|
||||
+LANGUAGE 0x9, 0x1
|
||||
+1 MESSAGETABLE "MSG00001.bin"
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index 14f816c93..cce2de79b 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -52,9 +52,6 @@ plugins/*/*.3
|
||||
/common/protocol/protostrings.c
|
||||
/common/replacements/libcompat.a
|
||||
/common/replacements/test-current-dir-name
|
||||
-/common/replacements/win32/MSG00001.bin
|
||||
-/common/replacements/win32/nbdkit-cat.h
|
||||
-/common/replacements/win32/nbdkit-cat.rc
|
||||
/common/replacements/win32/stamp-data
|
||||
/common/utils/test-quotes
|
||||
/common/utils/test-vector
|
||||
--
|
||||
2.43.0
|
||||
|
12
nbdkit.spec
12
nbdkit.spec
@ -92,13 +92,18 @@ Source8: %{modulename}.fc
|
||||
# Upstream patches to fix srcdir != builddir
|
||||
Patch: 0001-common-bitmaps-Fix-tests-when-srcdir-builddir.patch
|
||||
Patch: 0002-tests-Fix-tests-to-work-with-srcdir-builddir.patch
|
||||
# Upstream patches to fix mingw builds
|
||||
Patch: 0003-common-replacements-win32-Only-build-nbdkit-cat.mc-d.patch
|
||||
Patch: 0004-common-replacements-win32-Make-windmc-tool-optional.patch
|
||||
|
||||
# For applying the patches:
|
||||
BuildRequires: git
|
||||
|
||||
BuildRequires: make
|
||||
%if 0%{patches_touch_autotools}
|
||||
BuildRequires: autoconf, automake, libtool
|
||||
%endif
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc, gcc-c++
|
||||
BuildRequires: %{_bindir}/pod2man
|
||||
BuildRequires: gnutls-devel
|
||||
@ -755,7 +760,7 @@ development kit for 64 bit versions of Windows.
|
||||
%if 0%{verify_tarball_signature}
|
||||
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||
%endif
|
||||
%autosetup -p1
|
||||
%autosetup -p1 -S git
|
||||
%if 0%{patches_touch_autotools}
|
||||
autoreconf -i
|
||||
%endif
|
||||
@ -860,7 +865,10 @@ 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}' \
|
||||
|
Loading…
Reference in New Issue
Block a user