unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Tobias Geerinckx-Rice <me@tobias.gr>
To: amirouche@hypermove.net
Cc: help-guix@gnu.org
Subject: Re: What about dependency resolution à la apt?
Date: Thu, 16 Mar 2017 23:45:03 +0100	[thread overview]
Message-ID: <8cbaa186-6ee3-0e44-1a6e-13b5ebd440ba@tobias.gr> (raw)
In-Reply-To: <380423bd-fa6e-8e2b-978f-11ffdd79088c@hypermove.net>


[-- Attachment #1.1: Type: text/plain, Size: 2964 bytes --]

Amirouche,

On 16/03/17 21:56, Amirouche wrote:
> Le 16/03/2017 à 21:28, Tobias Geerinckx-Rice a écrit :
>> [...] I'm mainly curious and slightly puzzled as to why
>> this question keeps popping up.
> 
> Sorry!

Not at all. Thanks for making me think about this some more and put my
thoughts into words.

You're the poor sod who has to read them.

>> I hope others will join in, since I fear
>> this hints at some fundamental misunderstandings about Guix that might
>> hurt world d^W^W adoption.
> 
> Maybe patch the FAQ?

I don't even grok the question! :-)

Nor did I know that Guix had a FAQ. Also, the rest of this e-mail should
illustrate why I am not the person to concisely and clearly answer anything.

>> It takes some getting used to when you're used to old-school package
>> managers where the resolver is A Big Deal, or even The Biggest Deal:
>> Gentoo, anyone?
> 
> Yes.. But autoconf does the same, it specify some dependency
> that can match patch or minor version number.

...yyyes. That is true? But...?

I'm afraid I still can't see how this relates to Guix.

Build systems like autotools and package managers like apt and npm hail
from a hostile and fragile world: in general, packages are installed
into a single, shared root filesystem, from constantly updating global
repository.

Oh, and you can hardly ever install more than one version of a package
at a time. And some packages flatly refuse to coexist with others.

In this world, dependencies do indeed need to be ‘resolved’: “Yo, apt,
go fetch a libfoo from the pile that's at least this new (but not part
of the 2.x series!) without breaking these 463 other packages.”

The[1] correct solution may involve up- or downgrading many other
packages, or even removing conflicting ones. All nicely taken care of by
the package manager. Until it breaks. I call it ‘Ubuntu’.

In Guix, installing one package doesn't touch any other package. There
are no conflicts. Package specifications aren't secretly queries with 0
or more matches like in apt, but unambiguous identifiers.

Guix doesn't play fetch. It can't. You tell it exactly which package to
use — and that's a feature.

Perhaps this is where the confusion arises: ‘exactly which packages’
does not mean ‘libfoo == 1.4’. It means ‘this store entry containing
exactly this build of libfoo.’ Maybe it is libfoo 1.4. Maybe it's
patched to hell. It doesn't even matter: the resulting system either
works, or it doesn't.

Phew. Sorry. I warned you.

>> Guix already does ‘equal to’ better than anyone. Bit-identical, even.
> 
> That's is off topic?

Not at all. When you suggest ‘dependency resolution’, you have to think
carefully about what that means and how it would affect this key property.

Anyway, I'll leave the floor to others now.

Kind regards,

T G-R

[1]: ‘A’. This stuff is insanely non-deterministic.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 476 bytes --]

  reply	other threads:[~2017-03-16 22:44 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16 18:52 What about dependency resolution à la apt? Amirouche
2017-03-16 20:28 ` Tobias Geerinckx-Rice
2017-03-16 20:29   ` Thompson, David
2017-03-16 20:31   ` Tobias Geerinckx-Rice
2017-03-16 20:56   ` Amirouche
2017-03-16 22:45     ` Tobias Geerinckx-Rice [this message]
2017-03-16 22:53     ` Ludovic Courtès
2017-03-17  9:07       ` Chris Marusich

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=8cbaa186-6ee3-0e44-1a6e-13b5ebd440ba@tobias.gr \
    --to=me@tobias.gr \
    --cc=amirouche@hypermove.net \
    --cc=help-guix@gnu.org \
    /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.
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).