Subject: [bug#35991] [PATCH 0/9] Packaging sbcl-iolib (and dbus)

From: Katherine Cox-Buday <[email-masked]>
Date: Tue, 04 Jun 2019 07:50:39 -0500

Pierre Neidhardt <[email-masked]> writes:

> I can build iolib but the dbus package fails to use it because
> iolib-multiplex, a subsystem, cannot be found.
>
> Indeed, the sbcl package only exposes iolib while the .asd in the source exposes a dozen of subsystems, including
> :iolib/multiplex.
>
> See https://github.com/sionescu/iolib/blob/master/iolib.asd.
>
> Do we support multi-system .asd files?

Hey Pierre, I apologize for taking a bit to get back.

As far as I'm aware, we don't automatically support multiple systems in
a single asd file. With ASDF now supporting package-inferred systems,
which introduces the concept of "inferred" systems which are not even
declared in an asd file, I believe we need to shore up how Guix handles
CL systems. Unfortunately I haven't had the time to check my math on my
proposal and submit it to the list. Ironically I have done more
packaging of CL systems instead (I needed them!).

However, I think this case can still be handled with our current setup.
What I would try is to define your base package, and then define all the
subsequent packages as having inherited from the base package, but
exposing the correct ASDF system. I don't think this will cause any
unecessary compilation as the ASDF systems declare which files are
required.

I'll be interested to know if this works.

-- 
Katherine