[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #736: make CHICKEN_REPOSITORY support a search pa
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #736: make CHICKEN_REPOSITORY support a search path |
Date: |
Thu, 24 Jul 2014 22:02:00 -0000 |
#736: make CHICKEN_REPOSITORY support a search path
--------------------------------+-------------------------------------------
Reporter: zbigniew | Owner: zbigniew
Type: enhancement | Status: assigned
Priority: not urgent at all | Milestone:
Component: core libraries | Version:
Resolution: | Keywords:
--------------------------------+-------------------------------------------
Comment(by alaric):
It sounds like your existing work would be sufficient to make Chicken work
nicely with the Nix package manager.
Under Nix, each installed package (which chicken itself, as well as eggs,
would count as) is installed into its own unique prefix. When the user
then requests that a certain bunch of packages be made available in their
"profile", a symlink farm is created to "merge" the per-package prefixes
together.
So Chicken as it stands would run fine - you'd have a single directory
tree with bin/ containing csi and chicken and the results of all the egg
install-program actions, and lib/ containing core and egg chicken libs, as
you'd expect.
However, chicken-install can't work as-is in this environment, as profiles
are strictly read/execute-only; new eggs can't be installed into them by
the likes of chicken-install.
The hard part, then, is building the egg packages in the first place. When
a package is built, it is passed the path it should install to, and the
paths of all of its dependencies. If we could set CHICKEN_INSTALL_PREFIX
to the output directory, leave CHICKEN_PREFIX pointing at the chicken
package (which all eggs would depend upon) so it can find csc and friends,
and set CHICKEN_REPOSITORY to a search path of all the eggs the egg being
built depends upon - I think it would then correctly compile the egg into
the output directory.
The one exception would be if an egg uses an installed program from
another egg as part of its build process, in which case we'd need to
ensure that was added to the PATH before running chicken-install.
So: Can you share your patch, so I can see if I can use it to properly
integrated Chicken with Nix?
If so, the next step would be to write a script that reads the entire egg
list, pulls out the dependencies from the meta files, and tries to make
Nix package descriptions out of them (needing me to manually declare any
external dependencies, of course...) :-)
--
Ticket URL: <http://bugs.call-cc.org/ticket/736#comment:3>
CHICKEN Scheme <http://www.call-with-current-continuation.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-janitors] #736: make CHICKEN_REPOSITORY support a search path,
Chicken Trac <=