[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pkg-config support
From: |
Ludovic Courtès |
Subject: |
Re: pkg-config support |
Date: |
Sun, 04 May 2008 22:06:58 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux) |
Hi,
Thien-Thi Nguyen <address@hidden> writes:
> () address@hidden (Ludovic Courtès)
> () Wed, 30 Apr 2008 13:49:14 +0200
>
> Having a package that installs its modules to $(GUILE_SITE) instead
> of $prefix/something is Bad(tm) as it breaks user expectations and
> the GCS (see "Variables for Installation Directories")
>
> I guess i will disagree on user expectations. I'm a (strange, granted)
> user and when i install Emacs Lisp, i expect there to be a `lispdir'
> (with defaults under Emacs' tree, but customizable, of course), and
> likewise for both .scm and .so files, under GUILE_SITE and
> GUILE_LIBSITE, respectively.
What I meant by "it breaks user expectations and the GCS" is that, if a
package installs its modules to GUILE_SITE regardless of the
user-provided $prefix, then it breaks the expectation that everything
the package installs falls under $prefix unless explicitly asked to do
otherwise.
> This is because Emacs advertizes its "site" directory and nicely handles
> third-party files installed there. Likewise Guile w/ its "site". In
> Guile 1.4.x (and, as you may know, also for Guile 1.6.x), specially
> crafted shared object files somewhere under %load-path (either "site" or
> "libsite") can be handled just as well as scheme files, w/o any libtool
> hassles.
Sure, but that's the same problem if one installs a library under /foo
instead of /lib or /usr/lib: the linker/loader search path has to be
upgraded accordingly, and Libtool actually warns you about it at
installation time. In several `configure.ac', I have this:
if test "$guilemoduledir" != "$GUILE_SITE"; then
# Guile won't be able to locate the module "out of the box", so
# warn the user.
AC_MSG_WARN([`guilemoduledir' ($guilemoduledir) is different from
`GUILE_SITE' ($GUILE_SITE).])
AC_MSG_WARN([Make sure to adjust the `GUILE_LOAD_PATH' environment
variable accordingly,])
AC_MSG_WARN([or re-run `configure' with
`--with-guilemoduledir=$GUILE_SITE'.])
fi
> and it makes it impossible to run `distcheck' anyway.
>
> Could you please explain this (or point me to some relevant docs)?
Often, installing to GUILE_SITE requires root privileges, which prevents
`distcheck' from working when run as a user.
I hope this clarifies my position.
Thanks,
Ludovic.