all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: installing python 2 and python 3 in the same profile
Date: Tue, 13 Mar 2018 22:52:51 +0100	[thread overview]
Message-ID: <87muzbzlqk.fsf@gnu.org> (raw)
In-Reply-To: <87y3j4l3xj.fsf@mdc-berlin.de> (Ricardo Wurmus's message of "Wed, 7 Mar 2018 08:50:48 +0100")

Hello!

Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:

> with the introduction of the collision avoidance feature that prevents
> you from installing different variants of the same package into a
> profile we made it impossible to install “python” and “python@2” into
> the same profile.
>
> It still works with ad-hoc environments,

That’s because we explicitly disable the check in ‘guix environment’
(commit afd06f605bf88a796acefc7ed598b43879346a6b).

> but manifests containing both Python versions cannot be instantiated
> any more.  This is too strict, because we know that these two variants
> don’t cause conflicts.

More or less: ‘PYTHONPATH’ is version-independent, which I suppose could
be problematic.

> What can we do to make this feature a little smarter?
>
> How about a package property that defines a “conflicts?” predicate that
> takes two packages of the same name and determines (e.g. by checking the
> major version) if these two packages are conflicting?  If no such
> predicate is provided we assume that packages with the same name cause a
> conflict and prevent installation.

Unfortunately it wouldn’t work in the general case where some profile
entries may be coming from ~/.guix-profile/manifest, as is the case when
you do:

  guix package -i python@2
  guix package -i python@3

I would suggest short-term solutions, which are not exclusive:

  1. Add a ‘--allow-collisions’ flag to ‘guix profile’ (we discussed it
     before but didn’t get around to doing it apparently!).

  2. Use different package names when we know things can be
     parallel-installed: “python2” vs. “python” (I’m talking about the
     package name, not its version string.)  That’s what distros usually
     do, and I think it’s good enough.

A longer-term solution would be to add a property like you suggest,
except that it should be serializable (a regexp, an sexp, or something),
such that we can keep it in ~/.guix-profile/manifest and honor it later.
That adds complexity for something we could easily address through
conventions.

Thoughts?

Ludo’.

  parent reply	other threads:[~2018-03-13 21:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-07  7:50 installing python 2 and python 3 in the same profile Ricardo Wurmus
2018-03-10  8:34 ` Pjotr Prins
2018-03-11  9:11   ` Konrad Hinsen
2018-03-11 11:10   ` Ricardo Wurmus
2018-03-11 12:42     ` Pjotr Prins
2018-03-11 13:30       ` Hartmut Goebel
2018-03-11 13:36         ` Pjotr Prins
2018-03-12  7:07     ` Konrad Hinsen
2018-03-12  8:37       ` Ricardo Wurmus
2018-03-11 13:00   ` Hartmut Goebel
2018-03-11 13:27     ` Pjotr Prins
2018-03-13 21:52 ` Ludovic Courtès [this message]
2018-03-14  8:40   ` Ricardo Wurmus
2018-03-14 11:39   ` Hartmut Goebel
2018-03-14 14:30     ` Konrad Hinsen
2018-03-15  9:11       ` Ludovic Courtès
2018-03-15  9:37         ` Konrad Hinsen
2018-03-16 20:59         ` Ricardo Wurmus

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=87muzbzlqk.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=ricardo.wurmus@mdc-berlin.de \
    /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.