Summary: | media-sound/lilypond-2.24.0 - ERROR: Please install required programs: .../fontforge >= 20110222 (installed: 20230101) (bug in app-shells/mksh?) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Toralf Förster <toralf> |
Component: | Current packages | Assignee: | Scheme Project <scheme> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | contact, felix.janda, proxy-maint, vimproved |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 526268 | ||
Attachments: |
emerge-info.txt
emerge-history.txt environment etc.clang.tar.xz etc.portage.tar.xz logs.tar.xz media-sound:lilypond-2.24.0:20230910-031245.log temp.tar.xz Upstream patch |
Description
Toralf Förster
2023-09-10 09:01:05 UTC
Created attachment 870234 [details]
emerge-info.txt
Created attachment 870235 [details]
emerge-history.txt
Created attachment 870236 [details]
environment
Created attachment 870237 [details]
etc.clang.tar.xz
Created attachment 870238 [details]
etc.portage.tar.xz
Created attachment 870239 [details]
logs.tar.xz
Created attachment 870240 [details]
media-sound:lilypond-2.24.0:20230910-031245.log
Created attachment 870241 [details]
temp.tar.xz
This seems to be a bug in mksh's test builtin. test 20230101000000 -lt 20110222000000 returns 0 when it should not. ccing app-shells/mksh maintainers then Hi, mksh upstream here. 16:04 < lanodan> Eh interesting bug, `test 20230101000000 -lt 20110222000000` returns 0 (Found at https://bugs.gentoo.org/913928#c9 ) Yes, this was reported to me some time ago already, and I had to ask on the POSIX mailing list what the permitted behaviour(s) are. Currently, 32-bit wraparound is used, and that was a deliberate, but nōn-POSIX, choice. In the future, this will error out. This is not (just) a shell bug but a constraint violation by the application. If string comparisons suffice, use the (nōn-POSIX) [[ 20230101000000 < 20110222000000 ]]; otherwise, use bc(1) to compare such huge numbers. Looking further, this is a bug in lilypond’s top-level aclocal.m4 file: 130 if test "$num" -lt "$min"; then 131 STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"]) 132 fi 133 if test -n "$4"; then 134 max=`STEPMAKE_NUMERIC_VERSION($4)` 135 if test "$num" -gt "$max"; then 136 STEPMAKE_ADD_ENTRY($2, ["$r <= $4 (installed: $ver)"]) This (lines 130 and 135), as well as the extra occurrences… 677 if test -n "$2" && test "$num" -lt "$req"; then 678 python=["$r >= $2 (installed: $ver)"] 679 continue 680 else 681 if test -n "$3" && test "$num" -ge "$sup"; then … and… 712 if test "$num" -ge "$min_quiet"; then … should be reported to lilypond upstream as they are clear bugs. Even on POSIX sh, this is a constraint violation on ILP32 systems because the numbers get too high. They require awk(1) already anyway, maybe do something with that, and ideally, do *not* construct huge numbers in the first place but compare the components individually. This is easier in awk than in POSIX sh. Bonus bugs to report: test(1) has no -a/-o any more: 108 if test -n "$r" \ 109 -a "$r" != "error" \ 110 -a "$r" != "no" \ 152 if test "$BISON" = "bison" -a -n "$2"; then 645 if test -n "$4" -o -n "$5"; then 744 if test "$num" -ge "1600000" \ 745 -a "$num" -lt "1803000"; then They *do* get this right in e.g… 677 if test -n "$2" && test "$num" -lt "$req"; then … but not in the other places at least. STEPMAKE_GET_EXECUTABLE uses type but POSIX explicitly does not specify its output. They should use “command -v” instead (they note that it doesn’t work in zsh, which I cannot confirm; and if so, they should use the workaround only on zsh). 107 r="`eval echo '$'"$1"`" It is not portable to use double quotes *both* inside *and* outside of pre-POSIX sh `…` command substitutions. Use them either only outside or only inside or use $(…) command substitutions. There are likely more. Please let the media-sound/lilypond package maintainer forward all these upstream ;-) Looking further, this is a bug in lilypond’s top-level aclocal.m4 file: 130 if test "$num" -lt "$min"; then 131 STEPMAKE_ADD_ENTRY($2, ["$r >= $3 (installed: $ver)"]) 132 fi 133 if test -n "$4"; then 134 max=`STEPMAKE_NUMERIC_VERSION($4)` 135 if test "$num" -gt "$max"; then 136 STEPMAKE_ADD_ENTRY($2, ["$r <= $4 (installed: $ver)"]) This (lines 130 and 135), as well as the extra occurrences… 677 if test -n "$2" && test "$num" -lt "$req"; then 678 python=["$r >= $2 (installed: $ver)"] 679 continue 680 else 681 if test -n "$3" && test "$num" -ge "$sup"; then … and… 712 if test "$num" -ge "$min_quiet"; then … should be reported to lilypond upstream as they are clear bugs. Even on POSIX sh, this is a constraint violation on ILP32 systems because the numbers get too high. They require awk(1) already anyway, maybe do something with that, and ideally, do *not* construct huge numbers in the first place but compare the components individually. This is easier in awk than in POSIX sh. Bonus bugs to report: test(1) has no -a/-o any more: 108 if test -n "$r" \ 109 -a "$r" != "error" \ 110 -a "$r" != "no" \ 152 if test "$BISON" = "bison" -a -n "$2"; then 645 if test -n "$4" -o -n "$5"; then 744 if test "$num" -ge "1600000" \ 745 -a "$num" -lt "1803000"; then They *do* get this right in e.g… 677 if test -n "$2" && test "$num" -lt "$req"; then … but not in the other places at least. STEPMAKE_GET_EXECUTABLE uses type but POSIX explicitly does not specify its output. They should use “command -v” instead (they note that it doesn’t work in zsh, which I cannot confirm; and if so, they should use the workaround only on zsh). 107 r="`eval echo '$'"$1"`" It is not portable to use double quotes *both* inside *and* outside of pre-POSIX sh `…` command substitutions. Use them either only outside or only inside or use $(…) command substitutions. There are likely more. Please let the media-sound/lilypond package maintainer forward all these upstream ;-) Thanks a lot for the clarification + detailed explanation! I have reported the issue upstream, and they suggested this fix: https://gitlab.com/lilypond/lilypond/-/merge_requests/2301 In particular, applying the change https://gitlab.com/lilypond/lilypond/-/merge_requests/2301/diffs?commit_id=e9f188bb42ba4c94d5585eac29a980866d315371 fixes the version detection issue in the configure script for me. Created attachment 891570 [details, diff]
Upstream patch
This is now fixed in upstream.
|