mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-17 23:48:20 +00:00
Closes: https://bugs.gentoo.org/923990 Signed-off-by: Brahmajit Das <listout@listout.xyz> Part-of: https://github.com/gentoo/gentoo/pull/43192 Closes: https://github.com/gentoo/gentoo/pull/43192 Signed-off-by: Sam James <sam@gentoo.org>
51 lines
2.1 KiB
Diff
51 lines
2.1 KiB
Diff
https://github.com/ckolivas/lrzip/commit/dc6342ea6151544d1cb8d0d366a97e34ec34e9c6
|
|
From: Eli Schwartz <eschwartz@gentoo.org>
|
|
Date: Thu, 6 Feb 2025 10:53:48 -0500
|
|
Subject: [PATCH] build: fix incorrect use of shell commands in handmade
|
|
libtool file
|
|
|
|
The "echo" command was soft-deprecated from the shell programming
|
|
language in ~1992. There is no way to use it correctly if:
|
|
|
|
- the "-e" or "-n" or "-E" or any other options are used
|
|
- backslash escape sequences are used
|
|
- the printed string contains shell variables containing either of the
|
|
above
|
|
|
|
In recognition of the fact that echo was historically used in many
|
|
scripts, some of which avoided these issues and therefore succeeded when
|
|
run, the "echo" command was NOT marked as obsolescent, out of fear that
|
|
marking it as obsolescent would lead to vendors removing "echo" entirely
|
|
and breaking existing scripts (or at least, the subset of scripts which
|
|
managed to work correctly).
|
|
|
|
However, it is warned against, that after 1992 you should avoid writing
|
|
new code that uses "echo" and instead use "printf".
|
|
|
|
printf has an actual definition of its behavior, which echo did not, and
|
|
that behavior is to interpret backslash escapes in the first parameter,
|
|
which is necessary by this Makefile.am in order to embed newlines into
|
|
the generated libtool file. Simply replacing "echo -e" with "printf"
|
|
will therefore correctly and reliably do the intended functionality. We
|
|
also add one final embedded newline to avoid producing a file without an
|
|
end-of-line character on the last line of the file.
|
|
|
|
Fixes: https://github.com/ckolivas/lrzip/issues/257
|
|
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
|
|
--- a/lzma/C/Makefile.am
|
|
+++ b/lzma/C/Makefile.am
|
|
@@ -53,11 +53,12 @@ liblzma_la_LIBADD = $(ASM_7z).lo
|
|
\n\# Generated by libtool -- hack to allow asm linking\
|
|
\n\# Peter Hyman\
|
|
\npic_object='.libs/$(ASM_7z).o'\
|
|
-\nnon_pic_object='$(ASM_7z).o'
|
|
+\nnon_pic_object='$(ASM_7z).o'\
|
|
+\n
|
|
|
|
$(ASM_7z).lo: $(ASM_S)
|
|
$(ASM_PROG) $(ASM_OPT) -o $(ASM_7z).o $(ASM_S)
|
|
mkdir -p .libs
|
|
cp $(ASM_7z).o .libs/
|
|
- @echo -e "$(7ZIPASMLOFILE)" > $(ASM_7z).lo
|
|
+ @printf "$(7ZIPASMLOFILE)" > $(ASM_7z).lo
|
|
endif
|