Summary: | media-libs/libsdl2 with app-shells/dash that supports LINENO: Makefile:413: *** multiple target patterns. Stop. | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Lars Wendler (Polynomial-C) (RETIRED) <polynomial-c> |
Component: | Current packages | Assignee: | Gentoo Games <games> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | alexander, awkravchuk, coppens.matthias.abc, gentoo+bugs, gentoo, kfm, lssndrbarbieri, marien.zwart |
Priority: | Normal | Keywords: | PATCH |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://bugzilla.libsdl.org/show_bug.cgi?id=4261 | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=727562 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 714092 | ||
Attachments: |
build.log
dash-bug-workaround.patch configure-posix-conformance.patch |
Description
Lars Wendler (Polynomial-C) (RETIRED)
2020-03-23 18:44:46 UTC
caused by this eye-gouging shell scripting: https://hg.libsdl.org/SDL/file/tip/configure.ac#l4184 could be patched out, but probably easier to switch to cmake. This was reported upstream in $URL but the maintainer wasn't able to reproduce it because Debian cripples their /bin/dash just like we used to. Waiting on bugzilla credentials to explain. Workaround: # mkdir -p /etc/portage/env/media-libs # echo 'CONFIG_SHELL=/bin/bash' >/etc/portage/env/media-libs/libsdl2-2.0.12-r1 I solved this issue by changing /bin/sh from dash to bash. The installation should be patched to use bash and not sh. (In reply to depsterr from comment #4) > I solved this issue by changing /bin/sh from dash to bash. The installation > should be patched to use bash and not sh. No, this needs to be fixed by upstream. Ideally someone should attach a patch to the upstream bug report. Perhaps that way we can speed up the process a bit. Created attachment 640832 [details, diff] dash-bug-workaround.patch While libsdl2's configure.ac does have POSIX conformance issues (use of 'echo -n'; passing arguments containing embedded backslashes to 'echo'), the specific failures observed here ("objects: not found") are actually caused by a Dash bug, which I have reported here: https://www.mail-archive.com/dash@vger.kernel.org/msg01935.html Attached here is a patch (based on the tree after applying ${FILESDIR}/libsdl2-2.0.12-static-libs.patch) that works around the bug in Dash and, along with the forthcoming POSIX conformance patch, allows media-libs/libsdl2-2.0.12-r1 to configure and build successfully with /bin/sh->dash. Created attachment 640834 [details, diff]
configure-posix-conformance.patch
This patch resolves some of the POSIX conformance issues in libsdl2's configure.ac:
* use of 'echo -n'
* passing arguments containing embedded backslashes to 'echo'
POSIX leaves both of the above cases implementation-defined and specifies that XSI-conformant systems shall have behavior that differs from Bash's behavior.
The portable way of outputting literal strings containing embedded backslashes and/or without appending a newline character is by means of 'printf'. This patch makes the necessary changes.
(In reply to Matt Whitlock from comment #7) > Created attachment 640834 [details, diff] [details, diff] > configure-posix-conformance.patch > > This patch resolves some of the POSIX conformance issues in libsdl2's > configure.ac: > > * use of 'echo -n' > * passing arguments containing embedded backslashes to 'echo' > > POSIX leaves both of the above cases implementation-defined and specifies > that XSI-conformant systems shall have behavior that differs from Bash's > behavior. > > The portable way of outputting literal strings containing embedded > backslashes and/or without appending a newline character is by means of > 'printf'. This patch makes the necessary changes. Can you post these upstream too? Thank you! (In reply to Sam James (sec padawan) from comment #8) > Can you post these upstream too? Thank you! Done. See URL. The Dash bug is fixed[1] in app-shells/dash-0.5.11, and dash-bug-workaround.patch is no longer needed when configuring libsdl2 using the newer version of Dash. It does not hurt to retain the workaround for now, but it will no longer be needed once Dash 0.5.11 has been stabilized. ____________ [1] https://git.kernel.org/pub/scm/utils/dash/dash.git/commit/?id=e8e29001ad1cdeb68a5c617db149830e676c32c8 I have got the same issue and I am not using dash admin@gentoo ~ $ echo $SHELL /bin/bash admin@gentoo ~ $ In my case the package is a dependency of qemu admin@gentoo ~ $ equery d libsdl2 * These packages depend on libsdl2: app-emulation/qemu-5.0.0-r1 (sdl ? media-libs/libsdl2[video]) (sdl ? media-libs/libsdl2) (sdl ? media-libs/libsdl2[static-libs(+)]) media-video/ffmpeg-4.2.4 (sdl ? media-libs/libsdl2[sound,video,abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]) x11-libs/wxGTK-3.0.4-r2 (sdl ? media-libs/libsdl2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]) x11-libs/wxGTK-3.0.4-r302 (sdl ? media-libs/libsdl2[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_riscv_lp64d(-)?,abi_riscv_lp64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]) admin@gentoo ~ $ *** Bug 738010 has been marked as a duplicate of this bug. *** |