[Openmcl-devel] A Debian packaging update and an outstanding issue

Faheem Mitha faheem at faheem.info
Sun Aug 12 15:12:17 PDT 2012


Hi,

This is an update on the Debian CCL packaging. You can see the
packaging files at https://bitbucket.org/faheem/ccl-debian and
https://bitbucket.org/faheem/ccl-bootstrap-debian. See
https://bitbucket.org/faheem/ccl-debian/src/fedc4cc3c2e0/README.source
for directions on building the packages. Note: if the package becomes
part of Debian, this packaging will be hosted on a Debian site; in
this case, probably hg.debian.org.

This packaging is working - I have tested it on Debian squeeze and
unstable for both i386 and amd64. This took me rather longer than
anticipated.

The next step is to upload to http://mentors.debian.net/, and then try
to get a sponsor.

However, there is a significant outstanding issue that has come up,
which I have put off asking about.

CCL is not currently in Debian. Debian's archives only consists of
software compiled by Debian on Debian. So, how can CCL initially enter
Debian? It needs to, at least initially, use software compiled outside
Debian. My current version of the packaging builds CCL using a heap
image downloaded from clozure.com. I put the heap image in a package
called ccl-bootstrap. This package may never make it into the Debian
archives, but something like it is needed to compile CCL
initially. Once 1.8 is in Debian, the package build dependencies can
be switched to use 1.8 to compile 1.8.

Some such procedure is necessary for the initial entry of CCL into
Debian. Let us suppose that CCL 1.8 enters the archive in this
fashion. What happens when we want to package CCL 1.9? It would be
greatly desirable to be able to compile CCL 1.9 with the CCL 1.8 that
is currently in the archive. The alternative is to fetch upstream
binaries *again* to compile 1.9. Though I cannot speak for Debian, I
feel reasonably sure, based on informal discussion with people on
#debian-mentors on OFTC, that Debian would be unhappy about this,
since it is expected that the distribution be self-contained,
i.e. Debian packages should be able to satisfy build dependencies with
packages only in Debian. It is true that we can do the same thing with
1.9 that we did with 1.8, namely, initially use some bootstrapping
binaries to compile 1.9, and then set up 1.9 to build with 1.9, but
this would require significant manual intervention by someone (not
me), and would be considered ugly.

In practice, what would actually happen is up to a sponsor, and the
Debian FTPmasters (http://wiki.debian.org/Teams/FTPMaster), who are
the final gatekeepers of what enters Debian. This is still
theoretical, since I have not yet uploaded packages, let alone got a
sponsor. Bear in mind, also, that if a package is at some later time
determined not to be policy compliant
(http://www.debian.org/doc/debian-policy/) it can be pulled from the
archive, unless it has already entered a release. Having said that,
I'm not aware that of any specific policy requirement that says that
having CCL version x only compilable with version x is not
permissible, but I'm not an expert.

At the beginning of Section 3 of the manual
(http://ccl.clozure.com/ccl-documentation.html#building-ccl-from-source)
is written

"Where will you get a working Lisp compiler? No worries; you can use a
precompiled copy of a (slightly older and compatible) version of
Clozure CL."

The phrase "slightly older and compatible" is vague. It would be most
helpful if the CCL developers could be more specific. For example, a
policy statement such as "CCL version x can be compiled with CCL
version x-1 for the same architecture" or similar, written somewhere
public (the manual would be a good place) would make the issue
discussed here evaporate, and make my job here easier.

If this is, unfortunately, not possible, and Debian refuses the
package. then it is still possible to host unofficial packages for
Debian. In that event, I suggest Clozure Associates consider doing
this, after an appropriate review of the package. It is trivial to set
up an apt repository which can serve over http, and the tool reprepro
is frequently used to do so. It might also make sense to host a copy
of the Debian packaging repository in that case. I would of course be
happy to assist with all of this.

I hope something can be worked out. I think the CCL community will
agree that it is better to have CCL in Debian (and Ubuntu) than not.

                                                      Regards, Faheem



More information about the Openmcl-devel mailing list