diff --git a/sharutils-4.15.2-Do-not-include-lib-md5.c-into-src-shar.c.patch b/sharutils-4.15.2-Do-not-include-lib-md5.c-into-src-shar.c.patch new file mode 100644 index 0000000..19f77cc --- /dev/null +++ b/sharutils-4.15.2-Do-not-include-lib-md5.c-into-src-shar.c.patch @@ -0,0 +1,39 @@ +From 4c47a36fb6e2e4349995376cee063bb37d4e68e3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Thu, 23 Jan 2020 15:57:05 +0100 +Subject: [PATCH 2/2] Do not include lib/md5.c into src/shar.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +lib/md5.o is part of libgnu.a that is linked to shar. There is no +point in linking md5.o twice into shar executable. Moreover SuSE +reports that this triggers a linking error with GCC 10: + +/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: +../lib/libgnu.a(md5.o): in function `md5_stream': +[ 30s] md5.c:(.text+0x15d): multiple definition of `md5_stream'; +shar.o:shar.c:(.text+0x28): first defined here + + + +Signed-off-by: Petr Písař +--- + src/shar.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/shar.c b/src/shar.c +index 11cbada..6d7ed1d 100644 +--- a/src/shar.c ++++ b/src/shar.c +@@ -53,7 +53,6 @@ static const char cright_years_z[] = + + #include "inttostr.h" + #include "liballoca.h" +-#include "md5.c" + #include "md5.h" + #include "quotearg.h" + #include "xalloc.h" +-- +2.21.1 + diff --git a/sharutils-4.15.2-Fix-building-with-GCC-10.patch b/sharutils-4.15.2-Fix-building-with-GCC-10.patch new file mode 100644 index 0000000..c423fe1 --- /dev/null +++ b/sharutils-4.15.2-Fix-building-with-GCC-10.patch @@ -0,0 +1,97 @@ +From ec4ceb632abc0d54061269bc779459e13172f264 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Thu, 23 Jan 2020 15:42:41 +0100 +Subject: [PATCH 1/2] Fix building with GCC 10 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +GCC 10 defaults to -fno-common that results into errors on multiple +global variable definitions: + +/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: +shar-opts.o:(.data.rel.ro.local+0x0): multiple definition of +`program_name'; shar.o:(.rodata+0x10): first defined here + +This patch fixes it by changing the definitions in header files into extern +declarations. + + + +Signed-off-by: Petr Písař +--- + src/shar-opts.h | 2 +- + src/shar-std.def | 2 +- + src/unshar-opts.h | 2 +- + src/uudecode-opts.h | 2 +- + src/uuencode-opts.h | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/shar-opts.h b/src/shar-opts.h +index 75dcae2..5055d1c 100644 +--- a/src/shar-opts.h ++++ b/src/shar-opts.h +@@ -352,7 +352,7 @@ extern "C" { + * global exported definitions + */ + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + extern bool initialization_done; + extern int optidx; +diff --git a/src/shar-std.def b/src/shar-std.def +index ed06b77..a28f61c 100644 +--- a/src/shar-std.def ++++ b/src/shar-std.def +@@ -41,7 +41,7 @@ no-misuse-usage; + usage-message; + die-code; + +-export = '#include "local.h"'"\nchar const * const program_name;"; ++export = '#include "local.h"'"\nextern char const * const program_name;"; + + #shell + echo "include = 'char const * const program_name = \"${progname}\";';" +diff --git a/src/unshar-opts.h b/src/unshar-opts.h +index 2c3febe..9ebe2fc 100644 +--- a/src/unshar-opts.h ++++ b/src/unshar-opts.h +@@ -192,7 +192,7 @@ extern "C" { + extern size_t separator_str_len; + + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + + /* * * * * * +diff --git a/src/uudecode-opts.h b/src/uudecode-opts.h +index 29b3b5c..5494289 100644 +--- a/src/uudecode-opts.h ++++ b/src/uudecode-opts.h +@@ -170,7 +170,7 @@ extern "C" { + * global exported definitions + */ + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + + /* * * * * * +diff --git a/src/uuencode-opts.h b/src/uuencode-opts.h +index e71c9b8..d6ec03e 100644 +--- a/src/uuencode-opts.h ++++ b/src/uuencode-opts.h +@@ -166,7 +166,7 @@ extern "C" { + * global exported definitions + */ + #include "local.h" +-char const * const program_name; ++extern char const * const program_name; + + + /* * * * * * +-- +2.21.1 + diff --git a/sharutils.spec b/sharutils.spec index acd453a..dd9663a 100644 --- a/sharutils.spec +++ b/sharutils.spec @@ -1,7 +1,7 @@ Summary: The GNU shar utilities for packaging and unpackaging shell archives Name: sharutils Version: 4.15.2 -Release: 15%{?dist} +Release: 16%{?dist} # The main code: GPLv3+ # intl/dngettext.c: LGPLv2+ # lib (gnulib): GPLv3+ @@ -26,6 +26,12 @@ Patch0: %{name}-4.14.2-Pass-compilation-with-Werror-format-security.patch Patch1: %{name}-4.15.2-Fix-a-heap-buffer-overflow-in-find_archive.patch # Adapt bundled gnulib to glibc-2.28 Patch2: %{name}-4.15.2-fflush-adjust-to-glibc-2.28-libio.h-removal.patch +# Fix building with GCC 10, +# +Patch3: %{name}-4.15.2-Fix-building-with-GCC-10.patch +# Fix building with GCC 10, +# +Patch4: %{name}-4.15.2-Do-not-include-lib-md5.c-into-src-shar.c.patch URL: http://www.gnu.org/software/%{name}/ BuildRequires: binutils BuildRequires: coreutils @@ -58,6 +64,8 @@ the shar files. %patch0 -p1 -b .format %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 # convert TODO, THANKS to UTF-8 for i in TODO THANKS; do @@ -87,6 +95,9 @@ make check %{_mandir}/man5/* %changelog +* Thu Jan 23 2020 Petr Pisar - 4.15.2-16 +- Fix building with GCC 10 + * Fri Jul 26 2019 Fedora Release Engineering - 4.15.2-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild