guile-devel
[Top][All Lists]
Advanced

[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.





reply via email to

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