From: Katherine Cox-Buday <cox.katherine.e@gmail.com>
To: Pierre Neidhardt <mail@ambrevar.xyz>
Cc: guix-devel@gnu.org
Subject: Re: ASDF Builder (Common Lisp) & "package-inferred-system" Packages
Date: Fri, 02 Aug 2019 15:27:46 -0500 [thread overview]
Message-ID: <87ef238g8t.fsf@gmail.com> (raw)
In-Reply-To: <874l2zv8el.fsf@ambrevar.xyz> (Pierre Neidhardt's message of "Fri, 02 Aug 2019 18:28:34 +0200")
Pierre Neidhardt <mail@ambrevar.xyz> writes:
> Hi!
>
> It's been a while, and now that I'm on the verge of releasing Next 1.3
> and a dependency is a package-inferred-system, I thought it would be the
> perfect time to dig out this issue! :)
>
> So I'm trying to package cl-dbus (https://github.com/death/dbus).
> You'll find the recipes here:
> https://gitlab.com/atlas-engineer/next-guix-channel
>
> I can package it in several ways, but the result does not work for the
> reasons mentioned in this topic.
Hello again, Pierre! I apologize for being silent on this for so long.
I'm juggling a few things at the moment and will return to Guix commits
as soon as I can.
Regarding package inferred systems: I would really like to be able to
package them into a single Guix package as we do any other library, but
I think that will require some hacking on the ASDF build system. If I'm
remembering correctly, we would have to:
- Stop rolling all code into system-fasls
- Output each file's equivalent fasl to a common directory for the
system
- Set a search path in the profile to recursively search the SBCL fasl
output tree for systems.
In the interim, an idea I had was to borrow the "base package" concept I
came across when packaging other, non package-inferred, systems. I
haven't tried it yet, but I think it should work, even if it sounds
tedious to me.
Sticking with the dbus example, it looks like we have the following
situation:
- dbus
- dbus/all
- dbus/utils
- dbus/protocols
- ...
I think what we could do is define a `dbus-base` package which is
hidden, and then start defining "sub-packages" which simply inherit from
the base package, i.e.:
- dbus-base
- dbus-utils (inherit from dbus-base)
- dbus-protocols (inherit from dbus-base)
- ...
- dbus-all (inherit from dbus-base; require dbus-utils,
dbus-protocols, etc.)
In essence we would be manually defining the dependency tree that ASDF
is inferring. We could probably lean on Common Lisp and ASDF itself to
generate these packages within a hypothetical importer.
But as I said, this seems quite tedious. We really should make our
Common Lisp packaging smarter.
--
Katherine
next prev parent reply other threads:[~2019-08-02 20:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-11 0:25 ASDF Builder (Common Lisp) & "package-inferred-system" Packages Katherine Cox-Buday
2019-01-11 9:01 ` Pierre Neidhardt
2019-01-11 15:34 ` Katherine Cox-Buday
2019-01-12 20:24 ` Katherine Cox-Buday
2019-01-13 19:14 ` Andy Patterson
2019-01-14 0:20 ` Katherine Cox-Buday
2019-08-02 16:28 ` Pierre Neidhardt
2019-08-02 16:43 ` Pierre Neidhardt
2019-08-02 17:37 ` Pierre Neidhardt
2019-08-02 20:27 ` Katherine Cox-Buday [this message]
2019-08-03 8:04 ` Pierre Neidhardt
2019-08-03 8:44 ` Pierre Neidhardt
2019-08-03 14:14 ` Katherine Cox-Buday
2019-08-06 10:41 ` Pierre Neidhardt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ef238g8t.fsf@gmail.com \
--to=cox.katherine.e@gmail.com \
--cc=guix-devel@gnu.org \
--cc=mail@ambrevar.xyz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.