unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
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

  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

  List information: https://guix.gnu.org/

* 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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).