lilypond-devel
[Top][All Lists]
Advanced

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

Re: GUILE_CONFIG


From: David Kastrup
Subject: Re: GUILE_CONFIG
Date: Tue, 08 Jun 2021 16:55:29 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Jonas Hahnfeld <hahnjo@hahnjo.de> writes:

> Am Dienstag, dem 08.06.2021 um 11:08 +0200 schrieb David Kastrup:
>> Jonas Hahnfeld <hahnjo@hahnjo.de> writes:
>> 
>> > Am Montag, dem 07.06.2021 um 16:03 +0200 schrieb David Kastrup:
>> > 
>> > > The options correspond in non-obvious ways to calls of guile-config, and
>> > > there is no obvious or documented way to adjust pkgconfig paths in a
>> > > manner where it would detect a local guile installation without breaking
>> > > all other package configuration on the way.
>> > 
>> > From ./configure --help:
>> >   GUILE_FLAVOR
>> >               pkgconfig name for Guile, like guile-1.8 or guile-2.2 . If 
>> > the
>> >               respective .pc file cannot be found by pkgconfig, add its 
>> > path
>> >               to PKG_CONFIG_PATH
>> >   PKG_CONFIG  path to pkg-config utility
>> >   PKG_CONFIG_PATH
>> >               directories to add to pkg-config's search path
>> >   PKG_CONFIG_LIBDIR
>> >               path overriding pkg-config's built-in search path
>> > 
>> > That's as obvious as it can get, and any search on the internet should
>> > have pointed you to these variables. (GUILE_FLAVOR defaults to guile-
>> > 1.8 so you don't need to specify it; I'm just including its output
>> > above to show that it already points to PKG_CONFIG_PATH)
>> 
>> You did get the part about "where it would detect a local guile
>> installation without breaking all other package configuration on the way"?
>
> PKG_CONFIG_PATH *adds* to the path (while _LIBDIR overrides), so if you
> set PKG_CONFIG_PATH=/usr/local/tmp/guile-1.8/lib/pkgconfig/ how does
> this break other package configuration?

Didn't save the log file.  Now it works.  Doesn't change that

a) guile-config is not deprecated for Guile-1.8, still for most purposes
   the preferred platform
b) INSTALL.txt does not mention any of the above variables/options but
   merely states that pkg-config is a dependency
c) actually no documentation at all mentions any of the pkg-config
   considerations, you just get the above sketch in the ./configure
   --help output

Here are all places where .pc files are mentioned in the source tree:

Documentation/misc/ChangeLog-2.10:      (configure): Comment-out fontforge for 
lack of fontforge.pc .
aclocal.m4:                                   guile-2.2 .  If the respective 
.pc file
aclocal.m4:dnl should install pkg-config .pc files. By default the directory is
aclocal.m4:dnl module should install arch-independent pkg-config .pc files. By

Here are all places where pkg-config is mentioned in the source tree:

Documentation/en/included/compile.itexi:@uref{https://www.freedesktop.org/wiki/Software/pkg-config,
Documentation/en/included/compile.itexi:pkg-config}
Documentation/misc/ChangeLog-2.10:      * SConstruct: Require pkg-config.
Documentation/misc/ChangeLog-2.10:      * SConstruct (test_lib): New function.  
Update pkg-config and some
Documentation/misc/ChangeLog-2.10:      * configure.in: Require pkg-config.  
Enforce REQUIRE and version for
aclocal.m4:# pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf 
-*-
aclocal.m4:# serial 12 (pkg-config-0.29.2)
aclocal.m4:dnl Verify that the version of the pkg-config macros are at least
aclocal.m4:dnl installed version of pkg-config, this checks the developer's 
version
aclocal.m4:dnl     [m4_fatal([must install pkg-config 0.29 or later before 
running autoconf/autogen])])
aclocal.m4:dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
aclocal.m4:dnl first found in the path. Checks that the version of pkg-config 
found
aclocal.m4:dnl pkg-config existed.
aclocal.m4:AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
aclocal.m4:AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's 
search path])
aclocal.m4:AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's 
built-in search path])
aclocal.m4:        AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
aclocal.m4:        AC_MSG_CHECKING([pkg-config is at least version 
$_pkg_min_version])
aclocal.m4:dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
aclocal.m4:dnl Internal check to see if pkg-config supports short errors.
aclocal.m4:AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding 
pkg-config])dnl
aclocal.m4:AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding 
pkg-config])dnl
aclocal.m4:and $1[]_LIBS to avoid the need to call pkg-config.
aclocal.m4:See the pkg-config man page for more details.])
aclocal.m4:[The pkg-config script could not be found or is too old.  Make sure 
it
aclocal.m4:path to pkg-config.
aclocal.m4:To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
aclocal.m4:dnl should install pkg-config .pc files. By default the directory is
aclocal.m4:    [pkg-config installation directory @<:@]pkg_default[@:>@])
aclocal.m4:dnl module should install arch-independent pkg-config .pc files. By
aclocal.m4:    [pkg-config arch-independent installation directory 
@<:@]pkg_default[@:>@])
aclocal.m4:dnl Retrieves the value of the pkg-config variable for the given 
module.
aclocal.m4:AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
configure.ac:STEPMAKE_PROGS(PKG_CONFIG, pkg-config, REQUIRED, 0.9.0)
docker/ci/Dockerfile.ubuntu-18.04:        pkg-config \

Particularly when compiling Guile-1.8.8 in a local tree (basically still
the preferred way of creating a distribution), the state is "go figure
it out on your own".  It's not that the previous state was all that much
better (it wasn't).  But swapping one undocumented method for another
(and doing so silently, without any phase where you'd get an error
message and a proposal how to likely achieve the same goal in a
different manner, instead slipping in a different undocumented system
that just puts in a default you don't want if you keep using the same
options) means that those people who previously figured out how to get
LilyPond to work/compile with Guile-1.8 (by setting a single variable,
by the way) are again back to square one.

And that may well end with "never mind, let's just drop LilyPond if they
don't want it to be used".

-- 
David Kastrup



reply via email to

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