compiling lilypond in debian stretch with self-compiled guile-1.8

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2
Hi

I'm trying to build a LilyDev container based on Debian stretch.
As guile-1.8 has been removed from stable repository, I build it when
creating the image.
However I get an error when I run make in lilypond. Don't know if this
may depend on how I compiled guile-1.8.

This is what I've done.
I've added --enable-regex after reading this:
http://thread.gmane.org/gmane.comp.gnu.lilypond.general/29832


## Compiling guile-1.8
git clone https://git.savannah.gnu.org/git/guile.git
cd guile
git checkout branch_release-1-8
./autogen.sh
./configure --disable-error-on-warning --enable-regex
--prefix=/opt/guile-1.8
make
sudo make install

# Building lilypond
GUILE_CONFIG=/opt/guile-1.8/bin/guile-config ./autogen.sh
GUILE_CONFIG=/opt/guile-1.8/bin/guile-config make


### ERRORS ###

I get an error the first time I run make, pretty quickly:

cat lilypond-invoke-editor.scm | sed -e '#'  -e '/@relocate-preamble@/r
/home/pippo/lilypond-git/python/./out/relocate-preamble.py' -e
's%@relocate-preamble@%%g' | sed -e '#'  -e 's!@BASH@!/bin/bash!g'  -e
's!@BUILD_VERSION@!1!g'  -e 's!@DATE@!19OCT17!g'  -e
's!@FONTFORGE@!/usr/bin/fontforge!g'  -e 's!@GUILE@!- echo no not
found!g'  -e 's!@MICRO_VERSION@!0!g'  -e 's!@MAJOR_VERSION@!2!g'  -e
's!@MINOR_VERSION@!21!g'  -e 's!@NCSB_DIR@!!g'  -e
's!@PACKAGE@!LILYPOND!g'  -e 's!@PATCH_LEVEL@!0!g'  -e
's!@PATHSEP@!:!g'  -e 's!@PERL@!/usr/bin/perl!g'  -e
's!@PYTHON@!/usr/bin/python -tt!g'  -e 's!@SHELL@!/bin/sh!g'  -e
's!@TARGET_PYTHON@!/usr/bin/python -tt!g'  -e
's!@TOPLEVEL_VERSION@!2.21.0!g'  -e 's!@bindir@!/usr/local/bin!g'  -e
's!@datadir@!/usr/local/share!g'  -e 's!@date@!19OCT17!g'  -e
's!@lilypond_datadir@!/usr/local/share/lilypond/2.21.0!g'  -e
's!@lilypond_docdir@!/usr/local/share/doc/lilypond!g'  -e
's!@lilypond_libdir@!/usr/local/lib/lilypond/2.21.0!g'  -e
's!@local_lilypond_datadir@!/usr/local/share/lilypond/2.21.0!g'  -e
's!@local_lilypond_libdir@!/usr/local/lib/lilypond/2.21.0!g'  -e
's!@localedir@!/usr/local/share/locale!g'  -e 's!@outdir@!./out!g'  -e
's!@package@!lilypond!g'  -e 's!@prefix@!/usr/local!g'  -e
's!@program_prefix@!!g'  -e 's!@program_suffix@!!g'  -e
's!@sharedstatedir@!/usr/local/com!g'  -e 's!@src-dir@!.!g'  -e
's!@top-src-dir@!/home/pippo/lilypond-git!g' >
out/lilypond-invoke-editor
chmod 755 out/lilypond-invoke-editor
echo /home/pippo/lilypond-git/scripts/build/out/help2man
/home/pippo/lilypond-git/scripts/build/out/help2man
/home/pippo/lilypond-git/scripts/build/out/help2man
out/lilypond-invoke-editor > out/lilypond-invoke-editor.1
help2man: can't get `--help' info from out/lilypond-invoke-editor
Try `--no-discard-stderr' if option outputs to stderr
/home/pippo/lilypond-git/stepmake/stepmake/help2man-rules.make:26:
recipe for target 'out/lilypond-invoke-editor.1' failed
make[1]: *** [out/lilypond-invoke-editor.1] Error 127
make[1]: Leaving directory '/home/pippo/lilypond-git/scripts'
/home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
recipe for target 'all' failed
make: *** [all] Error 2


Then I run make again. This time it takes a few minutes, but the final
error is still the same:

echo /home/pippo/lilypond-git/scripts/build/out/help2man
/home/pippo/lilypond-git/scripts/build/out/help2man
/home/pippo/lilypond-git/scripts/build/out/help2man out/lilypond >
out/lilypond.1
help2man: can't get `--help' info from out/lilypond
Try `--no-discard-stderr' if option outputs to stderr
/home/pippo/lilypond-git/stepmake/stepmake/help2man-rules.make:26:
recipe for target 'out/lilypond.1' failed
make[1]: *** [out/lilypond.1] Error 127
make[1]: Leaving directory '/home/pippo/lilypond-git/lily'
/home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
recipe for target 'all' failed
make: *** [all] Error 2





_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2


Il giorno gio 19 ott 2017 alle 18:21, Federico Bruni
<[hidden email]> ha scritto:

> [...]
>
> Then I run make again. This time it takes a few minutes, but the
> final error is still the same:
>
> echo /home/pippo/lilypond-git/scripts/build/out/help2man
> /home/pippo/lilypond-git/scripts/build/out/help2man
> /home/pippo/lilypond-git/scripts/build/out/help2man out/lilypond >
> out/lilypond.1
> help2man: can't get `--help' info from out/lilypond
> Try `--no-discard-stderr' if option outputs to stderr
> /home/pippo/lilypond-git/stepmake/stepmake/help2man-rules.make:26:
> recipe for target 'out/lilypond.1' failed
> make[1]: *** [out/lilypond.1] Error 127
> make[1]: Leaving directory '/home/pippo/lilypond-git/lily'
> /home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
> recipe for target 'all' failed
> make: *** [all] Error 2
>
>

I'd like to know how to avoid above error...

If I keep running make again, I get to a new error:

$ make
[...]
mkdir -p out
touch out/ly-snippets.dep
cd ./out && /home/pippo/lilypond-git/scripts/build/out/run-and-check
"/home/pippo/lilypond-git/out/bin/lilypond --verbose
/home/pippo/lilypond-git/ly/generate-documentation"
"generate-documentation.log"

Please check the logfile generate-documentation.log for errors

GNUmakefile:295: recipe for target 'out/internals.texi' failed
make[1]: *** [out/internals.texi] Error 127
make[1]: Leaving directory '/home/pippo/lilypond-git/Documentation'
/home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
recipe for target 'all' failed
make: *** [all] Error 2

$ cat ./Documentation/out/generate-documentation.log
/home/pippo/lilypond-git/out/bin/lilypond: error while loading shared
libraries: libguile.so.17: cannot open shared object file: No such file
or directory

How can I point it to the right directory?

$ find /opt/guile-1.8/ -name *.so.17
/opt/guile-1.8/lib/libguile.so.17
/opt/guile-1.8/lib/libguilereadline-v-17.so.17




_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

David Kastrup
Federico Bruni <[hidden email]> writes:

> Il giorno gio 19 ott 2017 alle 18:21, Federico Bruni
> <[hidden email]> ha scritto:
>> [...]
>>
>> Then I run make again. This time it takes a few minutes, but the
>> final error is still the same:
>>
>> echo /home/pippo/lilypond-git/scripts/build/out/help2man
>> /home/pippo/lilypond-git/scripts/build/out/help2man
>> /home/pippo/lilypond-git/scripts/build/out/help2man out/lilypond >
>> out/lilypond.1
>> help2man: can't get `--help' info from out/lilypond
>> Try `--no-discard-stderr' if option outputs to stderr
>> /home/pippo/lilypond-git/stepmake/stepmake/help2man-rules.make:26:
>> recipe for target 'out/lilypond.1' failed
>> make[1]: *** [out/lilypond.1] Error 127
>> make[1]: Leaving directory '/home/pippo/lilypond-git/lily'
>> /home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
>> recipe for target 'all' failed
>> make: *** [all] Error 2
>>
>>
>
> I'd like to know how to avoid above error...

I have my own Guile 1.8 libraries.  I use something like

GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure ...

I got the same problem.  However, this appears to be because avoiding
the check for guile-config in this manner appears to _also_ disable the
check (and any useful default) for Guile.  So I have to do

GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ...

to get this working smoothly.  /usr/bin/guile happens to be a Guile-2.0
provided by Ubuntu.  It's fine since it is used for the scripts which
run ok under Guile-2.0.

--
David Kastrup

_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2


Il giorno gio 19 ott 2017 alle 18:55, David Kastrup <[hidden email]> ha
scritto:

> Federico Bruni <[hidden email]> writes:
>
>>  Il giorno gio 19 ott 2017 alle 18:21, Federico Bruni
>>  <[hidden email]> ha scritto:
>>>  [...]
>>>
>>>  Then I run make again. This time it takes a few minutes, but the
>>>  final error is still the same:
>>>
>>>  echo /home/pippo/lilypond-git/scripts/build/out/help2man
>>>  /home/pippo/lilypond-git/scripts/build/out/help2man
>>>  /home/pippo/lilypond-git/scripts/build/out/help2man out/lilypond >
>>>  out/lilypond.1
>>>  help2man: can't get `--help' info from out/lilypond
>>>  Try `--no-discard-stderr' if option outputs to stderr
>>>  /home/pippo/lilypond-git/stepmake/stepmake/help2man-rules.make:26:
>>>  recipe for target 'out/lilypond.1' failed
>>>  make[1]: *** [out/lilypond.1] Error 127
>>>  make[1]: Leaving directory '/home/pippo/lilypond-git/lily'
>>>  /home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
>>>  recipe for target 'all' failed
>>>  make: *** [all] Error 2
>>>
>>>
>>
>>  I'd like to know how to avoid above error...
>
> I have my own Guile 1.8 libraries.  I use something like
>
> GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure ...
>
> I got the same problem.  However, this appears to be because avoiding
> the check for guile-config in this manner appears to _also_ disable
> the
> check (and any useful default) for Guile.  So I have to do
>
> GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ...
>
> to get this working smoothly.  /usr/bin/guile happens to be a
> Guile-2.0
> provided by Ubuntu.  It's fine since it is used for the scripts which
> run ok under Guile-2.0.
>
>

This did not help, unfortunately. I keep getting the same error.

Now I've removed guile-2.0.
I've built and installed guile-1.8 in /usr/local. /usr/local/bin is in
my path.

But I get this error:

checking for guile-config... no
checking guile compile flags... /usr/local/bin/guile: error while
loading shared libraries: libguile.so.17: cannot open shared object
file: No such file or directory

checking guile link flags... /usr/local/bin/guile: error while loading
shared libraries: libguile.so.17: cannot open shared object file: No
such file or directory

I've stolen these settings (put in ~/.bashrc) from a script of Knut
posted in this list last month, but it does not help:

# Settings needed to compile lilypond with guile-1.8
GUILELIBDIR=/usr/local/lib
export LDFLAGS="-Wl,-rpath,$GUILELIBDIR"




_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2


Il giorno ven 20 ott 2017 alle 18:40, Federico Bruni
<[hidden email]> ha scritto:

>
>
> Il giorno gio 19 ott 2017 alle 18:55, David Kastrup <[hidden email]> ha
> scritto:
>> Federico Bruni <[hidden email]> writes:
>>
>>>  Il giorno gio 19 ott 2017 alle 18:21, Federico Bruni
>>>  <[hidden email]> ha scritto:
>>>>  [...]
>>>>
>>>>  Then I run make again. This time it takes a few minutes, but the
>>>>  final error is still the same:
>>>>
>>>>  echo /home/pippo/lilypond-git/scripts/build/out/help2man
>>>>  /home/pippo/lilypond-git/scripts/build/out/help2man
>>>>  /home/pippo/lilypond-git/scripts/build/out/help2man out/lilypond >
>>>>  out/lilypond.1
>>>>  help2man: can't get `--help' info from out/lilypond
>>>>  Try `--no-discard-stderr' if option outputs to stderr
>>>>  /home/pippo/lilypond-git/stepmake/stepmake/help2man-rules.make:26:
>>>>  recipe for target 'out/lilypond.1' failed
>>>>  make[1]: *** [out/lilypond.1] Error 127
>>>>  make[1]: Leaving directory '/home/pippo/lilypond-git/lily'
>>>>  /home/pippo/lilypond-git/stepmake/stepmake/generic-targets.make:6:
>>>>  recipe for target 'all' failed
>>>>  make: *** [all] Error 2
>>>>
>>>>
>>>
>>>  I'd like to know how to avoid above error...
>>
>> I have my own Guile 1.8 libraries.  I use something like
>>
>> GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure
>> ...
>>
>> I got the same problem.  However, this appears to be because avoiding
>> the check for guile-config in this manner appears to _also_ disable
>> the
>> check (and any useful default) for Guile.  So I have to do
>>
>> GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ...
>>
>> to get this working smoothly.  /usr/bin/guile happens to be a
>> Guile-2.0
>> provided by Ubuntu.  It's fine since it is used for the scripts which
>> run ok under Guile-2.0.
>>
>>
>
> This did not help, unfortunately. I keep getting the same error.
>
> Now I've removed guile-2.0.
> I've built and installed guile-1.8 in /usr/local. /usr/local/bin is
> in my path.
>
> But I get this error:
>
> checking for guile-config... no
> checking guile compile flags... /usr/local/bin/guile: error while
> loading shared libraries: libguile.so.17: cannot open shared object
> file: No such file or directory
>
> checking guile link flags... /usr/local/bin/guile: error while
> loading shared libraries: libguile.so.17: cannot open shared object
> file: No such file or directory
>
> I've stolen these settings (put in ~/.bashrc) from a script of Knut
> posted in this list last month, but it does not help:
>
> # Settings needed to compile lilypond with guile-1.8
> GUILELIBDIR=/usr/local/lib
> export LDFLAGS="-Wl,-rpath,$GUILELIBDIR"
>
>

I forgot to say. Patching guile with this before compiling it:

sed -i "s|lt_dlinit ();|lt_dlinit (); lt_dlsetsearchpath
(\"$GUILELIBDIR\");|" libguile/dynl.c

did not help.

I get the same above error. And configure ends with:

configure: creating ./config.status
config.status: creating config.make
config.status: creating config.hh
config.status: config.hh is unchanged

WARNING: Please consider installing optional programs or files:  guile

ERROR: Please install required programs:  guile-config (guile-devel,
guile-dev or libguile-dev package)

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






_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

David Kastrup
Federico Bruni <[hidden email]> writes:

>>> I have my own Guile 1.8 libraries.  I use something like
>>>
>>> GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure
>>> ...
>>>
>>> I got the same problem.  However, this appears to be because avoiding
>>> the check for guile-config in this manner appears to _also_ disable
>>> the
>>> check (and any useful default) for Guile.  So I have to do
>>>
>>> GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ...
>>>
>>> to get this working smoothly.  /usr/bin/guile happens to be a
>>> Guile-2.0
>>> provided by Ubuntu.  It's fine since it is used for the scripts which
>>> run ok under Guile-2.0.
>>>
>>>
>>
>> This did not help, unfortunately. I keep getting the same error.
>>
>> Now I've removed guile-2.0.
>> I've built and installed guile-1.8 in /usr/local. /usr/local/bin is
>> in my path.
>>
>> But I get this error:
>>
>> checking for guile-config... no

If your configure script is _checking_ for guile-config, you don't have
GUILE_CONFIG set.

--
David Kastrup

_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2


Il giorno ven 20 ott 2017 alle 21:52, David Kastrup <[hidden email]> ha
scritto:

> Federico Bruni <[hidden email]> writes:
>
>>>>  I have my own Guile 1.8 libraries.  I use something like
>>>>
>>>>  GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure
>>>>  ...
>>>>
>>>>  I got the same problem.  However, this appears to be because
>>>> avoiding
>>>>  the check for guile-config in this manner appears to _also_
>>>> disable
>>>>  the
>>>>  check (and any useful default) for Guile.  So I have to do
>>>>
>>>>  GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ...
>>>>
>>>>  to get this working smoothly.  /usr/bin/guile happens to be a
>>>>  Guile-2.0
>>>>  provided by Ubuntu.  It's fine since it is used for the scripts
>>>> which
>>>>  run ok under Guile-2.0.
>>>>
>>>>
>>>
>>>  This did not help, unfortunately. I keep getting the same error.
>>>
>>>  Now I've removed guile-2.0.
>>>  I've built and installed guile-1.8 in /usr/local. /usr/local/bin is
>>>  in my path.
>>>
>>>  But I get this error:
>>>
>>>  checking for guile-config... no
>
> If your configure script is _checking_ for guile-config, you don't
> have
> GUILE_CONFIG set.
>

Ok, I thought that it was not necessary as I have now, after removing
guile-2, only one guile-config in my PATH.
I found out that there's another requirement needed: running ldconfig
after guile-1.8 installation.

For the records, these are the commands that worked well to build and
install guile-1.8 system wide on debian stretch:

git clone https://git.savannah.gnu.org/git/guile.git
cd guile
git checkout branch_release-1-8
./autogen.sh
./configure --disable-error-on-warning --prefix=/usr/local
make
sudo make install
sudo ldconfig

echo "GUILE_CONFIG=/usr/local/bin/guile-config" >> ~/.bashrc




_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2


Il giorno lun 23 ott 2017 alle 18:34, Federico Bruni
<[hidden email]> ha scritto:

>
>
> Il giorno ven 20 ott 2017 alle 21:52, David Kastrup <[hidden email]> ha
> scritto:
>> Federico Bruni <[hidden email]> writes:
>>
>>>>>  I have my own Guile 1.8 libraries.  I use something like
>>>>>
>>>>>  GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config
>>>>> ./configure
>>>>>  ...
>>>>>
>>>>>  I got the same problem.  However, this appears to be because
>>>>> avoiding
>>>>>  the check for guile-config in this manner appears to _also_
>>>>> disable
>>>>>  the
>>>>>  check (and any useful default) for Guile.  So I have to do
>>>>>
>>>>>  GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ...
>>>>>
>>>>>  to get this working smoothly.  /usr/bin/guile happens to be a
>>>>>  Guile-2.0
>>>>>  provided by Ubuntu.  It's fine since it is used for the scripts
>>>>> which
>>>>>  run ok under Guile-2.0.
>>>>>
>>>>>
>>>>
>>>>  This did not help, unfortunately. I keep getting the same error.
>>>>
>>>>  Now I've removed guile-2.0.
>>>>  I've built and installed guile-1.8 in /usr/local. /usr/local/bin
>>>> is
>>>>  in my path.
>>>>
>>>>  But I get this error:
>>>>
>>>>  checking for guile-config... no
>>
>> If your configure script is _checking_ for guile-config, you don't
>> have
>> GUILE_CONFIG set.
>>
>
> Ok, I thought that it was not necessary as I have now, after removing
> guile-2, only one guile-config in my PATH.
> I found out that there's another requirement needed: running ldconfig
> after guile-1.8 installation.
>

Actually, I ran `sudo ldconfig`, right after building guile, in a
postinst script while building a debian container.
I started the container, launched the configure in lilypond source and
got the usual error:

checking guile compile flags... /usr/local/bin/guile: error while
loading shared libraries: libguile.so.17: cannot open shared object
file: No such file or directory

So I ran `sudo ldconfig` and then the configure, which was now
successful.
Do you know why?

> For the records, these are the commands that worked well to build and
> install guile-1.8 system wide on debian stretch:
>
> git clone https://git.savannah.gnu.org/git/guile.git
> cd guile
> git checkout branch_release-1-8
> ./autogen.sh
> ./configure --disable-error-on-warning --prefix=/usr/local
> make
> sudo make install
> sudo ldconfig
>
> echo "GUILE_CONFIG=/usr/local/bin/guile-config" >> ~/.bashrc
>
>
>
>
> _______________________________________________
> lilypond-devel mailing list
> [hidden email]
> https://lists.gnu.org/mailman/listinfo/lilypond-devel


_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: compiling lilypond in debian stretch with self-compiled guile-1.8

Federico Bruni-2


Il 23 ottobre 2017 19:07:19 CEST, Federico Bruni <[hidden email]> ha scritto:

>Actually, I ran `sudo ldconfig`, right after building guile, in a
>postinst script while building a debian container.
>I started the container, launched the configure in lilypond source and
>got the usual error:
>

Stupid me, it was not a postinst script but a build script, which only copies the generated files.
I know what I have to do

_______________________________________________
lilypond-devel mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-devel