unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Neil Jerram <neil@ossau.uklinux.net>
Cc: guile-user@gnu.org
Subject: Re: Where to install files?
Date: Mon, 10 Oct 2005 23:54:06 +0100	[thread overview]
Message-ID: <873bn9t241.fsf@ossau.uklinux.net> (raw)
In-Reply-To: <87wtkl6oq7.fsf@zip.com.au> (Kevin Ryde's message of "Tue, 11 Oct 2005 07:34:08 +1000")

Kevin Ryde <user42@zip.com.au> writes:

> Neil Jerram <neil@ossau.uklinux.net> writes:
>>
>> Can someone tell me the Makefile.am incantations for determining where
>> a package should install Scheme and Elisp files?
>
> For the lisp bits, AM_PATH_LISPDIR in configure.ac then
>
> 	dist_lisp_LISP = foo.el
>
> or if you don't want it byte-compiled,
>
> 	dist_lisp_DATA = foo-autoloads.el foo-devel.el

Thanks.  I realized after posting that my package already does this,
but I'd still like to probe a bit further about whether it is right,
and hence if something similar should apply to Scheme files.

With Emacs under Debian, for example, use of AM_PATH_LISPDIR means
that stuff installed by "./configure; make; make install" goes under
/usr/share/emacs (and so not somewhere like /usr/local/share/emacs).

Is that appropriate?  Do distributions like Debian have policy on
where files should go in such cases?  (i.e. files from packages for a
distribution-managed program, but where the package is not itself
distribution-managed.)

I guess you could say that AM_PATH_LISPDIR defines the policy, and
that if Debian (or other distribution) wanted such files to go under
/usr/local, they could have arranged for AM_PATH_LISPDIR to return
/usr/local/share/emacs.  (Could they in fact do this?)

If the last para is correct, and similar arguments apply to Scheme
files, I think the implications are that

- Guile's configure should allow separate specification of

  (1) overall installation prefix (e.g. /usr)

  (2) default install location for distribution-managed packages
      (e.g. /usr/share/guile, default=(1)/share/guile)

  (3) default install location for non-distribution-managed packages
      (e.g. /usr/local/share/guile, default=(2))

  (4) a location for site-local files
      (e.g. /usr/local/share/guile/site, default=(3)/site)

  (5) location of the system init file (e.g. /etc/guile/1.6/init.scm,
      default=init.scm)

- At runtime, Guile would initialize its load path using (1), (2), (3)
  and (4), and read the init file from (5).

- When a package's configure is run, guile.m4 should be able to
  provide either (2) or (3) as the value of a Makefile.am variable
  GUILE_SCHEME_DIR:

  - GUILE_SCHEME_DIR would give (2) if a package's ./configure was run
    with a --with-dist-managed-install-dir option  (as a convenience
    for distribution packagers)

  - GUILE_SCHEME_DIR would give (3) if a package's ./configure was run
    without this option  (the normal case for people building tarballs)

Guile's guile.m4 currently provides GUILE_SITE_DIR, but that feels
wrong to me both because it doesn't handle the (2)/(3) distinction
above, and because of the /site ending - I think of site as being for
code put there by the local sysadmin, not for code from packages at
all.

Thoughts?  (People commenting on this may also want to review the
thread from last year that began at
http://lists.gnu.org/archive/html/guile-devel/2004-11/msg00016.html)

      Neil



_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user


  reply	other threads:[~2005-10-10 22:54 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-10 19:29 Where to install files? Neil Jerram
2005-10-10 21:34 ` Kevin Ryde
2005-10-10 22:54   ` Neil Jerram [this message]
2005-10-11  0:18     ` Greg Troxel
2005-10-11 18:42       ` Neil Jerram
2005-10-11 19:39         ` Greg Troxel
2005-10-13 18:08           ` Neil Jerram
2005-10-12  8:29         ` Ludovic Courtès
2005-10-13 18:19           ` Neil Jerram

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=873bn9t241.fsf@ossau.uklinux.net \
    --to=neil@ossau.uklinux.net \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).