unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: zimoun <zimon.toutoune@gmail.com>
To: "Pierre Neidhardt" <mail@ambrevar.xyz>, "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org, "Nicolò Balzarotti" <anothersms@gmail.com>
Subject: Re: A plan for parameterized packages
Date: Mon, 16 Nov 2020 15:05:04 +0100	[thread overview]
Message-ID: <864klps8hb.fsf@gmail.com> (raw)
In-Reply-To: <87r1otbjat.fsf@ambrevar.xyz>

Hi,

On Mon, 16 Nov 2020 at 13:03, Pierre Neidhardt <mail@ambrevar.xyz> wrote:

> See point 7. about conflicts:
>
> https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00026.html

Quoting for instance the 2 examples:

        For instance, use guile-2.2.4 instead of guile for all guile
        libraries, or use pulseaudio everywhere, including in
        dependencies that are not explicitly installed to the user
        profile.

From my understanding, the first case (guile) is now covered by the
“package rewriting” transformation (see package-input-rewriting IIUC).

The issue with the second case is below.


> and comments:
>
> https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00177.html

From my understanding of the Ludo’s patch and from the Marius’s message,
the both looks really similar. :-)


> https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00181.html

Quoting:

        To be usable, we would need something to say "build bar and all
        its inputs without pulseaudio, except for some given packages".

        While this is OK with 1 parameter, it's quickly gets much more
        complicated when packages have multiple parameters that maybe conflict
        with one another.

Is the combinatorial conflict solvable in advance?  Well, from my point
of view, it cannot be via package transformation.

For example, let’s consider the Emacs packages and #41732.  Quoting [1]:

        > Perhaps then,
        >
        > --8<---------------cut here---------------start------------->8---
        > guix build -m manifest.scm --with-input=emacs-minimal=emacs-next \
        >      --with-input=emacs=emacs-next
        > --8<---------------cut here---------------end--------------->8---

        Possibly. And then Magit uses emacs-no-x as an input, so we may
        need to also add --with-input=emacs-no-x=emacs-next to the
        command.

        I'm just pointing out that the process is not as straightforward
        as it might seem. So, it doesn't sound right to simply suggest

and [2]:

        For example, the package emacs-magit drags emacs-no-x because of
        emacs-libgit, why is emacs-minimal not enough here?

        Well, the emacs-build-system depends (implicitly) on emacs-minimal,
        only.  And the initial patch `package-with-emacs-next' was changing
        this, only.  However, the package emacs-libgit is cmake-build-system
        and the package emacs-no-x is an explicit dependency; which is another
        story. :-)

these both examples show that it is already complex enough just to
rebuild all the Emacs packages using another Emacs VM (emacs-next or
REmacs, etc.).

To be clear, I am not convinced that the current package recipes are
functional enough to be able to keep under control the combinatorial
conflict; in the general case.

1: <http://issues.guix.gnu.org/issue/41732#14>
2: <http://issues.guix.gnu.org/issue/41732>

All the best,
simon


  reply	other threads:[~2020-11-16 14:11 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-15 16:33 A plan for parameterized packages Ludovic Courtès
2020-11-15 17:30 ` Nicolò Balzarotti
2020-11-15 17:40   ` Nicolò Balzarotti
2020-11-15 17:44   ` Pierre Neidhardt
2020-11-15 18:09     ` zimoun
2020-11-16 11:50     ` Ludovic Courtès
2020-11-16 12:03       ` Pierre Neidhardt
2020-11-16 14:05         ` zimoun [this message]
2020-11-15 17:37 ` zimoun
2020-11-16 11:54   ` Ludovic Courtès
2020-11-15 18:51 ` Taylan Kammer
2020-11-15 20:46 ` Danny Milosavljevic
2020-11-15 21:16   ` zimoun
2020-11-16 11:25     ` Make mutiple packages from outputs (Was: A plan for parameterized packages) 宋文武
2020-11-16 14:53       ` Make mutiple packages from outputs Ludovic Courtès
2020-11-16 15:10       ` Make mutiple packages from outputs (Was: A plan for parameterized packages) zimoun
2020-11-15 21:24   ` A plan for parameterized packages raingloom
2020-11-16  1:54     ` Ryan Prior
2020-11-16  5:38       ` Clozure size zimoun
2020-11-18  1:30     ` A plan for parameterized packages Denis 'GNUtoo' Carikli
2020-11-20 11:39       ` Ludovic Courtès
2020-11-20 14:38         ` zimoun
2020-11-20 19:44         ` Christopher Baines
2020-11-16 14:51   ` Ludovic Courtès
  -- strict thread matches above, loose matches on Subject: below --
2020-11-17 14:25 Stephen Christie
2020-11-17 15:31 ` Ludovic Courtès
2020-11-17 18:13   ` Stephen Christie

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=864klps8hb.fsf@gmail.com \
    --to=zimon.toutoune@gmail.com \
    --cc=anothersms@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=ludo@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).