[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] Making chicken-install amenable to automation

From: Alaric Snell-Pym
Subject: [Chicken-hackers] Making chicken-install amenable to automation
Date: Mon, 8 Jun 2009 13:07:49 +0100


My NetBSD-using non-chicken-using pal Gavan is keen on getting Ugarit
(which is a chicken egg) into pkgsrc, NetBSD's packaging system, which
has led to us discussing what would be required to do this.

Mainly, when pkgsrc installs something, it likes to perform several
distinct phases:

1) Fetch, which downloads a small number of files that can have their
checksums checked against what's on file. This means the ability to
get a specific version of an egg into a file. Now, the eggs manual
talks about .egg files as being gzipped tarballs, but what
henrietta.cgi actually outputs seems to be a different format,
involving plain text headers. What's the deal there? I see that
henrietta can be asked to produce a specific version of an egg, which
is cool, meaning pkgsrc packages can target a stable version with a
fixed checksum.

2) Extract, which turns what was downloaded into a working directory
tree. For tarballs, pkgsrc can do that itself, but it can also happily
ask chicken-install to turn a henrietta egg file into a directory
tree, if we expose that functionality.

3) Patch, whereby any NetBSD-specific patches are applied to the
extracted result; ideally there should be none, as we'll make sure our
eggs are portable, right? :-)

4) Build

5) Install

And, of course, pkgsrc likes to manage its own dependencies by
recursing within itself, so it knows what's installed and what isn't.

As I see it, we could easily make the internal stages of chicken-
install more accessible - we already have a sort of fetch&extract vs.
build&install separation, so it'd just be a few more command line
flags to separate those phases, and to enable missing dependencies to
be reflected with an error rather than an automatic fetch, thereby not
affecting normal operation of chicken-setup; just finer-grained
control of stages by specifying some extra flags.

What do people think about this? I'd be happy to do the work on
chicken-install, as it'd support ugarit by making it more widely
available, which is probably no bad thing for chicken either, and I
think Gavan would then be happy to write pkgsrc packages for ugarit
and all the eggs it depends upon, and to maintain them.

But I'm always nervous of suggesting improvements to something based
on a single use case. What other uses might benefit from this? apt?
rpm? Can I make sure I do it in ways that are compatible with them,
too, while I'm at it?


Alaric Snell-Pym

reply via email to

[Prev in Thread] Current Thread [Next in Thread]