Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 913928 - media-sound/lilypond-2.24.0 - ERROR: Please install required programs: .../fontforge >= 20110222 (installed: 20230101) (bug in app-shells/mksh?)
Summary: media-sound/lilypond-2.24.0 - ERROR: Please install required programs: .../fo...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Scheme Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: nonbash
  Show dependency tree
 
Reported: 2023-09-10 09:01 UTC by Toralf Förster
Modified: 2024-04-23 18:03 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,17.29 KB, text/plain)
2023-09-10 09:01 UTC, Toralf Förster
Details
emerge-history.txt (emerge-history.txt,141.48 KB, text/plain)
2023-09-10 09:01 UTC, Toralf Förster
Details
environment (environment,120.23 KB, text/plain)
2023-09-10 09:01 UTC, Toralf Förster
Details
etc.clang.tar.xz (etc.clang.tar.xz,784 bytes, application/x-xz)
2023-09-10 09:01 UTC, Toralf Förster
Details
etc.portage.tar.xz (etc.portage.tar.xz,32.01 KB, application/x-xz)
2023-09-10 09:01 UTC, Toralf Förster
Details
logs.tar.xz (logs.tar.xz,7.55 KB, application/x-xz)
2023-09-10 09:01 UTC, Toralf Förster
Details
media-sound:lilypond-2.24.0:20230910-031245.log (media-sound:lilypond-2.24.0:20230910-031245.log,8.07 KB, text/plain)
2023-09-10 09:01 UTC, Toralf Förster
Details
temp.tar.xz (temp.tar.xz,30.27 KB, application/x-xz)
2023-09-10 09:01 UTC, Toralf Förster
Details
Upstream patch (2301.patch,2.94 KB, patch)
2024-04-23 18:03 UTC, Felix Janda
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2023-09-10 09:01:05 UTC
configure: creating ./config.status
config.status: creating config.make
config.status: creating config.hh

WARNING: Please consider installing optional programs or files:  extractpdfmark (Using GhostScript >= 9.20 together with extractpdfmark can significantly reduce the size of the final PDF files.) texi2html dblatex lh CTAN package (texlive-lang-cyrillic or texlive-texmf-fonts) convert

ERROR: Please install required programs:  /usr/bin/fontforge >= 20110222 (installed: 20230101)

See INSTALL.txt for more information on how to build LilyPond

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 23.0_desktop_gnome_systemd-20230908-015505

  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-10
 [2] x86_64-pc-linux-gnu-13 *
clang/llvm (if any):
clang version 16.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/16/bin
Configuration file: /etc/clang/clang.cfg
/usr/lib/llvm/16
16.0.6
Python 3.11.5
Available Ruby profiles:
  [1]   ruby31 (with Rubygems) *
Available Rust versions:
  [1]   rust-1.72.0 *
The following VMs are available for generation-2:
*)	Eclipse Temurin JRE 11.0.19_p7 [openjdk-jre-bin-11]
2)	Eclipse Temurin JRE 17.0.7_p7 [openjdk-jre-bin-17]
Available Java Virtual Machines:
  [1]   openjdk-jre-bin-11  system-vm
  [2]   openjdk-jre-bin-17 

php cli (if any):
go version go1.21.1 linux/amd64

  HEAD of ::gentoo
commit bd50b573a835e03e73ccab0d5e6407cf27d24829
Author: Repository mirror & CI <repomirrorci@gentoo.org>
Date:   Sun Sep 10 02:17:16 2023 +0000

    2023-09-10 02:17:16 UTC

emerge -qpvO media-sound/lilypond
[ebuild  N    ] media-sound/lilypond-2.24.0  USE="-debug -doc -emacs -profile" L10N="-ca -cs -de -en -fr -hu -it -ja -nl -pt -zh" PYTHON_SINGLE_TARGET="python3_11 -python3_10"
Comment 1 Toralf Förster gentoo-dev 2023-09-10 09:01:06 UTC
Created attachment 870234 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2023-09-10 09:01:07 UTC
Created attachment 870235 [details]
emerge-history.txt
Comment 3 Toralf Förster gentoo-dev 2023-09-10 09:01:08 UTC
Created attachment 870236 [details]
environment
Comment 4 Toralf Förster gentoo-dev 2023-09-10 09:01:09 UTC
Created attachment 870237 [details]
etc.clang.tar.xz
Comment 5 Toralf Förster gentoo-dev 2023-09-10 09:01:10 UTC
Created attachment 870238 [details]
etc.portage.tar.xz
Comment 6 Toralf Förster gentoo-dev 2023-09-10 09:01:11 UTC
Created attachment 870239 [details]
logs.tar.xz
Comment 7 Toralf Förster gentoo-dev 2023-09-10 09:01:12 UTC
Created attachment 870240 [details]
media-sound:lilypond-2.24.0:20230910-031245.log
Comment 8 Toralf Förster gentoo-dev 2023-09-10 09:01:13 UTC
Created attachment 870241 [details]
temp.tar.xz
Comment 9 Violet Purcell 2023-10-04 20:30:23 UTC
This seems to be a bug in mksh's test builtin. test 20230101000000 -lt 20110222000000 returns 0 when it should not.
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-10-08 03:58:31 UTC
ccing app-shells/mksh maintainers then
Comment 11 mirabilos 2023-10-08 19:35:47 UTC
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.
Comment 12 mirabilos 2023-10-09 00:20:13 UTC
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 ;-)
Comment 13 mirabilos 2023-10-09 00:21:01 UTC
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 ;-)
Comment 14 Violet Purcell 2023-10-10 03:19:48 UTC
Thanks a lot for the clarification + detailed explanation!
Comment 15 Felix Janda 2024-04-18 00:47:37 UTC
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.
Comment 16 Felix Janda 2024-04-23 18:03:52 UTC
Created attachment 891570 [details, diff]
Upstream patch

This is now fixed in upstream.