scsh-hackers
[Top] [All Lists]

[Scsh-hackers] Packaging proposal: report and questions

To: scsh-hackers@lists.sourceforge.net
Subject: [Scsh-hackers] Packaging proposal: report and questions
From: Michel Schinz <Michel.Schinz@epfl.ch>
Date: Thu Nov 27 02:23:01 2003
List-id: Discussion among the implementors <scsh-hackers.lists.sourceforge.net>
Sender: scsh-hackers-admin@lists.sourceforge.net
Dear scsh hackers,

I am unfortunately a bit late with the work I had planned to do on the packaging proposal. What I have done is a rewrite of the proposal document, which is almost ready and includes the various suggestions which were made during the discussion; I also made some additions to the install library. For now, I have put them on a Web page related to this proposal, whose address is: http://lamp.epfl.ch/~schinz/scsh_packages/ (Martin, thanks for you offer, I think that for now I'll use my web site at work, but once the proposal stabilizes, I would be glad to put it on scsh.net or something like that). I'll keep this page updated as I progress.

However, I didn't have time to work seriously on package definitions for sunet, sunterlib or SSAX (sorry Anthony, this means I have nothing to send you for Thanksgiving). But before working on them, I have two questions.

                                      --- *** ---

The first is directly related to the creation of these package definitions, especially for sunet and sunterlib. The new version of the proposal says that Scheme code should be put in a sub-directory of the package installation directory called "scheme". For example, all Scheme code related to sunet should be put in <package_root>/installed/sunet/2.0/scheme. This was suggested by Martin after I mentioned the conflict that would appear with sunet, which has some Scheme code in a directory called "lib"; this conflicts with the proposal, which reserves this directory for shared libraries. I adopted the idea because I think that it is good to put all Scheme code in a separate directory, as it helps keeping everything tidy.

Now the problem is that this requires changes to sunet's hierarchy, and to its packages.scm file (which would have to be renamed anyway, but that's a different matter). I see three ways of solving that:

1. we keep the files where they are now, both in sunet's CVS and in sunet's archive, and deal with the problem by writing a relatively complicated installation script which moves things to the correct location and updates (and rename) the "packages.scm" file,

2. we (well, that would be "the sunet developers") change the hierarchy of sunet's CVS to adapt it to the proposal, by moving all directories containing Scheme code to a "scheme" sub-directory,

3. we forget about the idea of putting Scheme code in a "scheme" sub-directory, and find another name for the directory in which to put shared libraries.

Solution 1 means that the installation script becomes relatively complex, but solution 2 might even be more painful because of CVS' inability to move files around cleanly. The sunet developers might also feel uneasy about these changes, as the proposal is not stable yet, and therefore other similar changes might arise in the future.

I would personally opt for solution 1 or 3, but I'd like to hear the opinions of other people (especially developers of sunet and sunterlib).

                                      --- *** ---

My second question is about shared libraries. The current version of the proposal says that shared libraries should be put in a sub-directory of directory "lib" and this directory should have the name of the platform for which the library was compiled, as given by "config.guess". Now the problem is that, to load these shared libraries using "dynamic-load", the package loading script has to know their complete path. To know that, it has to know the platform on which it is currently running. I don't think it is possible, at least for the long-term, to launch "config.guess" each time a package with a shared library is loaded. The best solution, IMO, would be to use the forthcoming interface providing access to configure parameters, the one we talked about some time ago. However, Martin said he would add it in scsh 0.7 only, so I'm wondering what to do until then. Or maybe this would be a good reason to add it earlier, to 0.6.6 for example (I'm really sorry I thought about this problem only after 0.6.5 was released). What do you think ?

                                      --- *** ---

Ok, so now I'll try to finish as quickly as possible what I was supposed to finish yesterday. I'll put all the data I produce on the web page mentioned above, and send messages here when I make some important changes.

I hope to have everything ready for next Monday.

In the meantime, if anybody is interested in reading and criticizing the proposal, I would be very glad. And if some of you have spare time on their hand and are interested in attempting to use the installation library for some package, I'll also be glad. Just send me a quick e-mail so that we avoid duplicating work.

Thanks, and sorry for another long mail.
Michel.



<Prev in Thread] Current Thread [Next in Thread>