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
next prev parent 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).