lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: I cannot run make check since Issue 5450: relocate.cc: Introduce new


From: Knut Petersen
Subject: Re: I cannot run make check since Issue 5450: relocate.cc: Introduce new command `set?'
Date: Wed, 23 Jan 2019 12:54:29 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0

Hi everybody!

Below an analysis of lilypond-test problems. strace still is our friend ;-).


Lets start investigation ...
============================

        address@hidden:~/sources/gub> rm -f STRACE/* ; strace -v -f -ff -s 1024 
-o STRACE/TP  bin/gub linux-64::lilypond-test
        calculating dependencies
        Checking for mf ... /usr/bin/mf
        Checking for xetex ... /usr/bin/xetex
        Checking for gcc ... /usr/bin/gcc
        Checking for mpost ... /usr/bin/mpost
        Checking for xelatex ... /usr/bin/xelatex
        Checking for g++ ... /usr/bin/g++
        must rebuild[linux-64]: system::gcc system::g++ system::mf 
system::mpost system::xetex system::xelatex lilypond-test
         *** Stage: pkg_install (cross/gcc-core, linux-64)
          cross/gcc conflicts with cross/gcc-core
            non-core cross/gcc already installed
              skipping request to install cross/gcc-core
          cross/gcc-doc conflicts with cross/gcc-core
            non-core cross/gcc already installed
              skipping request to install cross/gcc-core
          cross/gcc-runtime conflicts with cross/gcc-core
            non-core cross/gcc already installed
              skipping request to install cross/gcc-core

         *** Stage: pkg_install (glibc-core, linux-64)
          glibc conflicts with glibc-core
            non-core glibc already installed
              skipping request to install glibc-core
          glibc-doc conflicts with glibc-core
            non-core glibc already installed
              skipping request to install glibc-core

        building package: linux-64::lilypond-test
         *** Stage: download (lilypond-test, linux-64)
         *** Stage: compile (lilypond-test, linux-64)
        Command barfed: cd /home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master && ulimit -m 1048576 && ulimit -d 1048576 && ulimit -v 3145728 && LILYPOND_EXTERNAL_BINARY=/home/knut/sources/gub/target/linux-64/root/usr/bin/lilypond PATH=/home/knut/sources/gub/target/tools/root/usr/bin:/home/knut/sources/gub/target/linux-64/root/usr/bin:$PATH MALLOC_CHECK_=2 LD_LIBRARY_PATH=/home/knut/sources/gub/target/tools/root/usr/lib:/home/knut/sources/gub/target/linux-64/root/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} GS_FONTPATH=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/fonts:/home/knut/sources/gub/target/linux-64/root/usr/share/gs/fonts GS_LIB=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource/Init:/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource FONTCONFIG_FILE=/home/knut/sources/gub/target/linux-64/root/usr/etc/fonts-gub/fonts.conf FONTCONFIG_PATH=/home/knut/sources/gub/target/tools/root/usr/etc/fonts-gub make -j16  CPU_COUNT=8 MISSING_OPTIONAL=dblatex   test

        Tail of target/linux-64/log/lilypond-test.log >>>>>>>>
            -lilypond.git-master && ulimit -m 1048576 && ulimit -d 1048576 && ulimit -v 3145728 && LILYPOND_EXTERNAL_BINARY=/home/knut/sources/gub/target/linux-64/root/usr/bin/lilypond PATH=/home/knut/sources/gub/target/tools/root/usr/bin:/home/knut/sources/gub/target/linux-64/root/usr/bin:$PATH MALLOC_CHECK_=2 LD_LIBRARY_PATH=/home/knut/sources/gub/target/tools/root/usr/lib:/home/knut/sources/gub/target/linux-64/root/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} GS_FONTPATH=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/fonts:/home/knut/sources/gub/target/linux-64/root/usr/share/gs/fonts GS_LIB=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource/Init:/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource FONTCONFIG_FILE=/home/knut/sources/gub/target/linux-64/root/usr/etc/fonts-gub/fonts.conf FONTCONFIG_PATH=/home/knut/sources/gub/target/tools/root/usr/etc/fonts-gub make -j16  CPU_COUNT=8 MISSING_OPTIONAL=dblatex   test
        <<<<<<<< Tail of target/linux-64/log/lilypond-test.log

        *** Failed target: linux-64::lilypond-test

Let's have a look at target/linux-64/log/lilypond-test.log. That ends with
====================================================================================

        command failed: /home/knut/sources/gub/target/linux-64/root/usr/bin/lilypond -dbackend=eps --formats=ps,png,pdf -djob-count=8 -dinclude-eps-fonts -dgs-load-fonts --header=doctitle --header=doctitleca --header=doctitlecs --header=doctitlede --header=doctitlees --header=doctitlefr --header=doctitlehu --header=doctitleit --header=doctitleja --header=doctitlenl --header=doctitlezh --header=texidoc --header=texidocca --header=texidoccs --header=texidocde --header=texidoces --header=texidocfr --header=texidochu --header=texidocit --header=texidocja --header=texidocnl --header=texidoczh -dcheck-internal-types -ddump-signatures -danti-alias-factor=2 -dfont-export-dir=/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/out-fonts -O TeX-GS -I  "./"  -I "/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/input/regression/lilypond-book" -I "/home/knut/sources/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypond.git-master/input/regression/lilypond-book" -deps-box-padding=3.000000  -dread-file-list -dno-strip-output-dir "/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/out/lybook-testdb/snippet-names--3368173372264547087.ly"
        Child returned 1
        Error ignored by lilylib
        Error trapped by lilypond-book

        Please see 
/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/out/lybook-testdb/snippet-names--3368173372264547087.log

        make[2]: *** [out-test/html-include-space-after-tag.html] Error 1
        make[2]: Leaving directory 
`/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/input/regression/lilypond-book'
        make[1]: *** [local-test] Error 2
        make[1]: Leaving directory 
`/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/input/regression/lilypond-book'
        make: *** [test] Error 2
        Command barfed: cd /home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master && ulimit -m 1048576 && ulimit -d 1048576 && ulimit -v 3145728 && LILYPOND_EXTERNAL_BINARY=/home/knut/sources/gub/target/linux-64/root/usr/bin/lilypond PATH=/home/knut/sources/gub/target/tools/root/usr/bin:/home/knut/sources/gub/target/linux-64/root/usr/bin:$PATH MALLOC_CHECK_=2 LD_LIBRARY_PATH=/home/knut/sources/gub/target/tools/root/usr/lib:/home/knut/sources/gub/target/linux-64/root/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} GS_FONTPATH=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/fonts:/home/knut/sources/gub/target/linux-64/root/usr/share/gs/fonts GS_LIB=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource/Init:/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource FONTCONFIG_FILE=/home/knut/sources/gub/target/linux-64/root/usr/etc/fonts-gub/fonts.conf FONTCONFIG_PATH=/home/knut/sources/gub/target/tools/root/usr/etc/fonts-gub make -j16  CPU_COUNT=8 MISSING_OPTIONAL=dblatex   test
        Traceback (most recent call last):
          File "bin/gub", line 233, in exceptional_build
            build (settings, options, files)
          File "bin/gub", line 229, in build
            b.build_source_packages (names)
          File "bin/../gub/buildrunner.py", line 334, in build_source_packages
            self.spec_build (spec_name)
          File "bin/../gub/buildrunner.py", line 262, in spec_build
            deferred_runner.execute_deferred_commands ()
          File "bin/../gub/runner.py", line 167, in execute_deferred_commands
            cmd.execute (self.logger)
          File "bin/../gub/commands.py", line 75, in execute
            ignore_errors=self.ignore_errors)
          File "bin/../gub/loggedos.py", line 93, in system
            raise misc.SystemFailed (m)
        SystemFailed: Command barfed: cd /home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master && ulimit -m 1048576 && ulimit -d 1048576 && ulimit -v 3145728 && LILYPOND_EXTERNAL_BINARY=/home/knut/sources/gub/target/linux-64/root/usr/bin/lilypond PATH=/home/knut/sources/gub/target/tools/root/usr/bin:/home/knut/sources/gub/target/linux-64/root/usr/bin:$PATH MALLOC_CHECK_=2 LD_LIBRARY_PATH=/home/knut/sources/gub/target/tools/root/usr/lib:/home/knut/sources/gub/target/linux-64/root/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} GS_FONTPATH=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/fonts:/home/knut/sources/gub/target/linux-64/root/usr/share/gs/fonts GS_LIB=/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource/Init:/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource FONTCONFIG_FILE=/home/knut/sources/gub/target/linux-64/root/usr/etc/fonts-gub/fonts.conf FONTCONFIG_PATH=/home/knut/sources/gub/target/tools/root/usr/etc/fonts-gub make -j16  CPU_COUNT=8 MISSING_OPTIONAL=dblatex   test

Have a look at 
/home/knut/sources/gub/target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/out/lybook-testdb/snippet-names--3368173372264547087.log
==================================================================================================================================================================

        GNU LilyPond 2.21.0
        Processing `./snippet-map--3368173372264547087.ly'
        Parsing...
        Processing `./65/lily-bab68f98.ly'
        Parsing...
        Renaming input to: `include.ly'
        Interpreting music...
        Preprocessing graphical objects...
        Calculating line breaks...
        Drawing systems...
        Writing ./65/lily-bab68f98-1.signature
        Layout output to `./65/lily-bab68f98.eps'...
        Converting to `./65/lily-bab68f98.pdf'...
        warning: `(gs -q -dNOSAFER -dEPSCrop -dCompatibilityLevel=1.4 -dNOPAUSE 
-dBATCH -r1200 -sDEVICE=pdfwrite -dAutoRotatePages=/None -dPrinted=false 
-sOutputFile=./65/lily-bab68f98.pdf -c.setpdfwrite -f./65/lily-bab68f98.eps)' 
failed (256)

        fatal error: failed files: "65/lily-bab68f98.ly"

So lilypond fails because gs failed to convert 65/lily-bab68f98.ly. Search the 
relevant strace log using a reasonable pattern from the file above:
==================================================================================================================================================

        address@hidden:~/sources/gub> grep "Writing 
./65/lily-bab68f98-1.signature" STRACE/*
        STRACE/TP.26267:write(2, "Writing ./65/lily-bab68f98-1.signature", 38) 
= 38

Ok, its STRACE/TP.26267 ... have a look at the lilypond strace log
==================================================================

As we execute gs we look for a clone() system call that is a required part of 
execution of a child process ...

        address@hidden:~/sources/gub> grep -A 10000 'clone(' STRACE/TP.26267
        clone(child_stack=NULL, 
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x148c3ed5de50) = 26268
        close(8)                                = 0
        close(10)                               = 0
        close(12)                               = 0
        read(7, "", 8)                          = 0
        close(7)                                = 0
        select(12, [9 11], NULL, NULL, NULL)    = 1 (in [11])
        read(11, "gs: /home/knut/sources/gub/target/tools/root/usr/lib/libz.so: no version information available (required by /usr/lib64/libcups.so.2)\ngs: /home/knut/sources/gub/target/tools/root/usr/lib/libz.so: no version information available (required by /usr/lib64/libpng16.so.16)\ngs: /home/knut/sources/gub/target/tools/root/usr/lib/libz.so: no version information available (required by /usr/lib64/libpng16.so.16)\n", 4096) = 403
        select(12, [9 11], NULL, NULL, NULL)    = 1 (in [11])
        read(11, "gs: /home/knut/sources/gub/target/tools/root/usr/lib/liblzma.so.5: 
no version information available (required by /usr/lib64/libsystemd.so.0)\n", 4096) 
= 141
        select(12, [9 11], NULL, NULL, NULL)    = 1 (in [9])
        read(9, "gs: Interpreter revision (926) does not match gs_init.ps revision 
(921).\n", 4096) = 73
        select(12, [9 11], NULL, NULL, NULL)    = 2 (in [9 11])
        --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=26268, 
si_uid=1000, si_status=1, si_utime=0, si_stime=0} ---
        read(9, "", 4096)                       = 0
        close(9)                                = 0
        read(11, "", 4096)                      = 0
        close(11)                               = 0
        wait4(26268, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 26268
        write(2, "warning: `(gs -q -dNOSAFER -dEPSCrop -dCompatibilityLevel=1.4 
-dNOPAUSE -dBATCH -r1200 -sDEVICE=pdfwrite -dAutoRotatePages=/None -dPrinted=false 
-sOutputFile=./65/lily-bab68f98.pdf -c.setpdfwrite -f./65/lily-bab68f98.eps)' failed 
(256)\n\n", 237) = 237
        times({tms_utime=31, tms_stime=5, tms_cutime=1, tms_cstime=0}) = 
1752530758
        munmap(0x148c3ecc8000, 159744)          = 0
        times({tms_utime=33, tms_stime=6, tms_cutime=1, tms_cstime=0}) = 
1752530762
        times({tms_utime=33, tms_stime=6, tms_cutime=1, tms_cstime=0}) = 
1752530762
        write(2, "fatal error: failed files: \"65/lily-bab68f98.ly\"\n", 49) = 
49
        close(5)                                = 0
        close(6)                                = 0
        exit_group(1)                           = ?
        +++ exited with 1 +++

Here we see the PID of the child (26268) and we see an interesting error message: 
"gs: Interpreter revision (926) does not match gs_init.ps revision (921).\n"
==============================================================================================================================================================

The gs interpreter should not be 9.26. What files are opened during the gs run?

        address@hidden:~/sources/gub> grep '^open' STRACE/TP.26268
        openat(AT_FDCWD, "/proc/self/fd", 
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 7
        open("/dev/null", O_RDONLY)             = 7
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/librestrict.so", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/tls/haswell/x86_64/libgs.so.9",
 O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/tls/haswell/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/tls/x86_64/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/tls/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/haswell/x86_64/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/haswell/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/x86_64/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgs.so.9", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, "/usr/lib64/libgs.so.9", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libc.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libtiff.so.5", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libcupsimage.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libcupsimage.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libcups.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libcups.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libpng16.so.16", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libpng16.so.16", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libjpeg.so.8", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libjpeg.so.8", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libm.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libdl.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libfontconfig.so.1", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libfreetype.so.6", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libpthread.so.0", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/liblzma.so.5", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libjpeg.so.62", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libz.so", O_RDONLY|O_CLOEXEC) 
= 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgssapi_krb5.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libgssapi_krb5.so.2", O_RDONLY|O_CLOEXEC) 
= 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgnutls.so.30", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libgnutls.so.30", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libavahi-common.so.3", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libavahi-common.so.3", O_RDONLY|O_CLOEXEC) 
= 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libavahi-client.so.3", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libavahi-client.so.3", O_RDONLY|O_CLOEXEC) 
= 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libz.so.1", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libpng12.so.0", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libexpat.so.1", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libkrb5.so.3", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libkrb5.so.3", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libk5crypto.so.3", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libk5crypto.so.3", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libcom_err.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libcom_err.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libkrb5support.so.0", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libkrb5support.so.0", O_RDONLY|O_CLOEXEC) 
= 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libp11-kit.so.0", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libp11-kit.so.0", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libidn2.so.4", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libidn2.so.4", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libunistring.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libunistring.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libtasn1.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libtasn1.so.6", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libnettle.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libnettle.so.6", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libhogweed.so.4", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libhogweed.so.4", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgmp.so.10", 
O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libdbus-1.so.3", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libdbus-1.so.3", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgcc_s.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/tls/haswell/x86_64/libgcc_s.so.1",
 O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/tls/haswell/libgcc_s.so.1",
 O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/tls/x86_64/libgcc_s.so.1",
 O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/tls/libgcc_s.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/haswell/x86_64/libgcc_s.so.1",
 O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/haswell/libgcc_s.so.1",
 O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/x86_64/libgcc_s.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/../lib/libgcc_s.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgcc_s.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libkeyutils.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libkeyutils.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libresolv.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libselinux.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libffi.so.7", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libffi.so.7", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libsystemd.so.0", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libsystemd.so.0", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libpcre.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/librt.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/lib64/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/liblz4.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/liblz4.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libcap.so.2", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libmount.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgcrypt.so.20", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libgcrypt.so.20", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libblkid.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libgpg-error.so.0", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libgpg-error.so.0", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libuuid.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, "/proc/sys/crypto/fips_enabled", O_RDONLY) = -1 ENOENT 
(Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/etc/gcrypt/hwf.deny", O_RDONLY) = -1 ENOENT (Datei 
oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/proc/filesystems", O_RDONLY|O_CLOEXEC) = 3
        openat(AT_FDCWD, "/proc/sys/crypto/fips_enabled", O_RDONLY) = -1 ENOENT 
(Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/ghostscript/9.26", 
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
        openat(AT_FDCWD, "/usr/lib64/ghostscript/9.26/.", O_RDONLY|O_CLOEXEC) = 
4
        openat(AT_FDCWD, "/usr/lib64/ghostscript/9.26/..", O_RDONLY|O_CLOEXEC) 
= 4
        openat(AT_FDCWD, "/usr/lib64/ghostscript/9.26/X11.so", 
O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libXt.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, "/usr/lib64/libXt.so.6", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libSM.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libSM.so.6", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libICE.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libICE.so.6", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libXext.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libXext.so.6", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libX11.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libX11.so.6", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libxcb.so.1", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libxcb.so.1", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/tools/root/usr/lib/libXau.so.6", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
        openat(AT_FDCWD, "/usr/lib64/libXau.so.6", O_RDONLY|O_CLOEXEC) = 4
        openat(AT_FDCWD, 
"/home/knut/sources/gub/target/linux-64/root/usr/share/ghostscript/9.21/Resource/Init/gs_init.ps",
 O_RDONLY) = 3

Look at the top: here we see in which directories libgs.so.9 is searched. At 
last /usr/lib64/libgs.so.9 is used. That's wrong, gs should use it's own libgs. 
But the correct library directory is not searched.

Which gs is executed? Is there a suitable libgs.so.9?
=====================================================

        address@hidden:~/sources/gub> grep '^exec' STRACE/TP.26268
execve("/home/knut/sources/gub/target/linux-64/root/usr/bin/../bin/gs", ["gs", 
"-q" ....

        address@hidden:~/sources/gub> dir 
/home/knut/sources/gub/target/linux-64/root/usr/lib/libgs*
        lrwxrwxrwx 1 knut users       13 23. Jan 09:15 
/home/knut/sources/gub/target/linux-64/root/usr/lib/libgs.so -> libgs.so.9.21
        lrwxrwxrwx 1 knut users       13 23. Jan 09:15 
/home/knut/sources/gub/target/linux-64/root/usr/lib/libgs.so.9 -> libgs.so.9.21
        -rwxr-xr-x 1 knut users 10067128 23. Jan 09:15 
/home/knut/sources/gub/target/linux-64/root/usr/lib/libgs.so.9.21

Summary up to now:
===================

We build linux-64::lilypond-test, but target/linux-64/root/usr/bin/../bin/gs 
fails during it's initialization because it does not look for shared libraries 
in target/linux-64/root/usr/lib and uses system libraries instead.


Look at PATH and LD_* variables passed to lilypond and gs
=========================================================

In both TRACE/TP.26267 an TRACE/TP.26268 we have proper PATH and GS_LIBRARY_DIR 
entries in the environment ...


PATH=/home/knut/sources/gub/target/tools/root/usr/bin:/home/knut/sources/gub/target/linux-64/root/usr/bin:$PATH
LD_LIBRARY_PATH=/home/knut/sources/gub/target/tools/root/usr/lib:/home/knut/sources/gub/target/linux-64/root/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

Interesting.
============

According to that PATH we should have executed target/tools/root/usr/bin/gs and not target/linux-64/root/usr/bin/../bin/gs. Well, it seems lilypond does not look for a gs in PATH but executes ../bin/gs relative to the directory where its own executable is located. I'll have to verify that in the sources lates. And obviously LD_LIBRARY_PATH is not obeyed.
What a mess.

A quick diagnostic fix could be:
================================

       address@hidden:~/sources/gub> mv target/linux-64/root/usr/bin/gs 
target/linux-64/root/usr/bin/_gs
       address@hidden:~/sources/gub> echo '#!/bin/sh' > 
target/linux-64/root/usr/bin/gs
       address@hidden:~/sources/gub> echo 
'LD_LIBRARY_PATH=$(workdir_prefix)/target/linux-64/root/usr/lib 
$(workdir_prefix)/target/linux-64/root/usr/bin/_gs "$@"'>> 
target/linux-64/root/usr/bin/gs

Let's see what happens with the fix in place:
=============================================

       address@hidden:~/sources/gub> bin/gub linux-64::lilypond-test
       calculating dependencies
       Checking for mf ... /usr/bin/mf
       Checking for xetex ... /usr/bin/xetex
       Checking for gcc ... /usr/bin/gcc
       Checking for mpost ... /usr/bin/mpost
       Checking for xelatex ... /usr/bin/xelatex
       Checking for g++ ... /usr/bin/g++
       must rebuild[linux-64]: system::gcc system::g++ system::mf system::mpost 
system::xetex system::xelatex lilypond-test
        *** Stage: pkg_install (cross/gcc-core, linux-64)
         cross/gcc conflicts with cross/gcc-core
           non-core cross/gcc already installed
             skipping request to install cross/gcc-core
         cross/gcc-doc conflicts with cross/gcc-core
           non-core cross/gcc already installed
             skipping request to install cross/gcc-core
         cross/gcc-runtime conflicts with cross/gcc-core
           non-core cross/gcc already installed
             skipping request to install cross/gcc-core

        *** Stage: pkg_install (glibc-core, linux-64)
         glibc conflicts with glibc-core
           non-core glibc already installed
             skipping request to install glibc-core
         glibc-doc conflicts with glibc-core
           non-core glibc already installed
             skipping request to install glibc-core

       building package: linux-64::lilypond-test
        *** Stage: download (lilypond-test, linux-64)
        *** Stage: compile (lilypond-test, linux-64)
        *** Stage: install (lilypond-test, linux-64)
        *** Stage: package (lilypond-test, linux-64)

       done

======================
Ok. Found the problem.
======================

Try building branch master (with diagnostic fix enabled):
=============================================

        rm -rf target/*/packages/lilypond*; make LILYPOND_BRANCH=master lilypond

That succeeds!


Now try building stable/2.20 (with diagnostic fix enabled):
==============================================
        rm -rf target/*/packages/lilypond*; make LILYPOND_BRANCH=stable/2.20 
lilypond

That failed:

        invoking rm -rf 
/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1
        mkdir 
/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1
        mkdir 
/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1/v2.21.0-1
        mkdir 
/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1/v2.19.81-1
        v2.19.81-1/rest-positioning.ly -> 
/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1/v2.19.81-1/rest-positioning.ly
        v2.21.0-1/rest-positioning.ly -> 
/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1/v2.21.0-1/rest-positioning.ly
        invoking gs -sDEVICE=png16m -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -slilypond-datadir=v2.19.81-1/share/lilypond/current   -r101 -dAutoRotatePages=/None -sOutputFile=/home/knut/sources/gub/uploads/webtest/v2.21.0-1/compare-v2.19.81-1/v2.19.81-1/rest-positioning.png -dNOSAFER -dEPSCrop -q -dNOPAUSE  v2.19.81-1/rest-positioning.eps -c quit
        Error: /undefinedfilename in --file--
        Operand stack:
(share/lilypond/current/fonts/otf/emmentaler-20.otf)   (r)
        Execution stack:
           %interp_exit   .runexec2   --nostringval-- --nostringval--   --nostringval--   2   %stopped_push --nostringval--   --nostringval--   --nostringval--   false   1 %stopped_push   1999   1   3   %oparray_pop   1998   1   3 %oparray_pop   --nostringval--   1982   1   3   %oparray_pop 1868   1   3   %oparray_pop   --nostringval--   %errorexec_pop .runexec2   --nostringval--   --nostringval--   --nostringval-- 2   %stopped_push   --nostringval--
        Dictionary stack:
           --dict:1214/1684(ro)(G)--   --dict:0/20(G)-- --dict:82/200(L)--
        Current allocation mode is local
        Last OS error: No such file or directory


Now try building stable/2.20 (with diagnostic fix enabled):
==============================================

        rm -rf target/*/packages/lilypond*; make LILYPOND_BRANCH=staging 
lilypond

That succeeds.


===========
SUMMARY
===========

We have two problems.

-> I suspect that stable/2.20 fails because patch 
2c7277e0014b8d1d22ef5a1caa69a2f86bcfb964 is missing ...

-> We either need to change lilypond's code in a way that PATH is respected and 
LD_LIBRARY_PATH is passed to the gs
   or we need to implement some other kind of hack to make sure that gs uses 
the correct libraries during lilypond-test.
   LD_PRELOAD might be an option, changing (build_system)::ghostscript to 
permanently implement the diagnostic hack
  is not an option as we don't want to promote it to the distributed code.

No time left for today, TBC.

Knut



reply via email to

[Prev in Thread] Current Thread [Next in Thread]