unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Greg Troxel <gdt@ir.bbn.com>
Cc: Guile Users <guile-user@gnu.org>
Subject: Re: Modified load-path proposal
Date: 15 Oct 2005 11:40:39 -0400	[thread overview]
Message-ID: <rmi7jcedc08.fsf@fnord.ir.bbn.com> (raw)
In-Reply-To: <8764rzj8py.fsf@ossau.uklinux.net>

before deciding about tags and descriptions, I think we need to be
clearer on the semantics of these directories and why they'd be used.
Let me take a stab at it, and I'm sure I'll leave out other's use
cases.

$(guileprefix)/share/guile

    top-level place within guile's prefix.  currently has slib on
    NetBSD pkgsrc (symlink to /usr/pkg/share/slib) and slibcat file.

$(guileprefix)/share/guile/site

    unclear why this is used rather than above, unless it's for
    sysadmin-managed stuff within guile's prefix rather than
    pkg-managed.  On NetBSD pkgsrc database (ttn's guile-pg) lives
    here.

$(guileprefix)/share/guile/1.6

    Currently, stuff that is actually part of guile; I haven't seen
    other packages install stuff here.

$(otherprefix)/share/guile

   probably where to put generic non-pkg-managed stuff, although that
   raises the issue of why a different prefix was used, but pkg
   systems may want to do this

$(otherprefix)/share/guile/site

   non-pkg-managed stuff, done by group sysadmin.  But, it seems
   likely that the use of otherprefix serves the purpose of site.

A related point is whether it is ok to install two versions of guile
in the same prefix.  It seems that at least some things conflict, and
this really doesn't work.  NetBSD pkgsrc has support for 1.4 and 1.6
at the moment, with 1.6 default and 1.4 as guile14.  guile14 is built
with /usr/pkg/guile/1.4, so it's in a totally different place, and
things that use it (not too many now) link there.

So, if we can't install two guiles in the same prefix (which is fine;
prefixes are fairly cheap), then it makes sense to declare that the
1.6 subdir is for things that are part of guile (meaning built from
the distribution).  Packages built against 1.6 would record a
dependency, and you'd expect to have to rebuild them or get a version
built against 1.8 later, just like packages built against anything
else with a possibly changing ABI.

Also, it could well be that the whole 'site' notion is outdated.  This
made sense back in the days of 4.3BSD, but with packaging systems
doesn't so much, especially since the right thing to do is to have a
separate prefix from the packaging system.

So, my proposal is:

  $(guileprefix)/share/guile

     This is where pkg-managed modules should go.

     Those that think it is reasonable for programs configured with
     other prefixes should put them here, unless their package system
     says they should somehow keep non-pkg-managed stuff separate.

  $(guileprefix)/share/guile/site

      Historic/deprecated.  Created by guile, but nothing put in it.

      If someone is using non-pkg-managed stuff across multiple
      machines, perhaps they should put it here.

      If someone is using non-pkg-managed programs, but using the 'put
      in guile's prefix' approach, perhaps all that stuff can go here
      so the non-managed stuff (viewed as turds by things like
      pkg_admin check to find unregistered files) will all be in one
      place.  Thus this should perhaps be the default for macros
      called to ask for guile's prefix.

  $(guileprefix)/share/guile/1.6

      As it is now: files that are part of guile.  Others are strongly
      discouraged from putting anything there.


  $(guileprefix)/share/guile/local

      This would be like the old local vs. site.  There seems to be
      little need.  The 'add arbitrary dirs' scheme would support
      this, but guile should just ignore this and not mention it or
      put it in my default.

  $(otherprefix)/share/guile

      This is where I'd put modules installed aftetr configuring for
      another prefix.  Whether this is site or local can be encoded in
      otherprefix.  Adding a 1.6/1.8 dir won't fully solve the API/ABI
      compat issue, and doing it halfway will lead to trouble


Then, the GUILE_SCHEME_DIR macro should take a token which is either

  guile-prefix
  own-prefix

and return one of (depending on how we feel about protecting pkg
systems from people who want to install non-managed stuff in them)

  $(guileprefix)/share/guile
  $(guileprefix)/share/guile/site

or

  $(otherprefix)/share/guile


Optionally, one should be able to specify either a replacement for
share/guile or further components, perhaps when using either
guile-prefix or own-prefix, and this should then generate or enable
code to hook the dir into guile's load-path at make install time.

So, I think my cross-product idea was not so good - the current 3
places are a bit messy/historic rather than really the right thing to
do.

-- 
        Greg Troxel <gdt@ir.bbn.com>


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


  reply	other threads:[~2005-10-15 15:40 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-13 18:21 Modified load-path proposal Neil Jerram
2005-10-13 18:40 ` Greg Troxel
2005-10-13 22:08   ` Neil Jerram
2005-10-14  0:37     ` Greg Troxel
2005-10-14  1:28       ` Andreas Rottmann
2005-10-15 11:17         ` Neil Jerram
2005-10-15 15:03           ` Greg Troxel
2005-10-15 17:53             ` Neil Jerram
2005-10-22 23:16           ` Kevin Ryde
2005-10-28 17:45             ` Neil Jerram
2005-10-30 18:04               ` Neil Jerram
2005-10-30 18:15                 ` Tomas Zerolo
2005-10-30 20:37                 ` Thien-Thi Nguyen
2005-10-30 22:59                   ` Neil Jerram
2005-10-31 10:55                     ` Thien-Thi Nguyen
2005-10-31 19:22                       ` Neil Jerram
2005-11-08 12:37                         ` Thien-Thi Nguyen
2005-10-31 13:17                   ` Tomas Zerolo
2005-10-30 23:48                 ` Kevin Ryde
2005-10-31 13:20                   ` Tomas Zerolo
2005-10-31 19:20                   ` Neil Jerram
2005-10-31 23:54                     ` Kevin Ryde
2005-11-12  9:47                       ` Neil Jerram
2005-11-01 23:31                     ` Vorfeed Canal
2005-11-12 17:54                       ` Neil Jerram
2005-11-02  8:44                 ` Ludovic Courtès
2005-12-03 13:05                   ` Neil Jerram
2005-12-13  8:38                     ` Ludovic Courtès
2005-12-16  0:16                       ` Neil Jerram
2005-12-16  1:00                         ` Neil Jerram
2005-12-16  9:55                         ` Ludovic Courtès
2006-01-07 13:37                           ` Neil Jerram
2006-01-11  4:49                             ` steve tell
2006-01-12 18:01                               ` Neil Jerram
2005-10-15 11:24       ` Neil Jerram
2005-10-15 15:01         ` Greg Troxel
2005-10-15 17:49           ` Neil Jerram
2005-10-14  7:24 ` Ludovic Courtès
2005-10-15 11:55   ` Neil Jerram
2005-10-15 15:40     ` Greg Troxel [this message]
2005-10-17  8:04       ` Ludovic Courtès
2005-10-17 17:52         ` Greg Troxel
2005-10-18  8:23           ` Search path for C libraries Ludovic Courtès
2005-10-18 10:12             ` Vorfeed Canal
2005-10-17 17:54         ` Modified load-path proposal Neil Jerram
2005-10-18  7:57           ` Ludovic Courtès
2005-10-19 22:30             ` Neil Jerram
2005-10-20  7:56               ` Vorfeed Canal
2005-10-20  8:05               ` Ludovic Courtès
2005-10-20 22:23                 ` Neil Jerram
2005-10-21  7:59                   ` Ludovic Courtès
2005-10-17 18:10       ` Neil Jerram
2005-10-18 16:16         ` Greg Troxel
2005-10-18 21:24           ` Vorfeed Canal
2005-10-19 22:29           ` 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=rmi7jcedc08.fsf@fnord.ir.bbn.com \
    --to=gdt@ir.bbn.com \
    --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).