Subject: [bug#49149] [PATCH 0/7] Add deb format for guix pack.

From: Ludovic Courtès <[email-masked]>
Date: Wed, 30 Jun 2021 11:15:31 +0200

Howdy!

Maxim Cournoyer <[email-masked]> skribis:

> Ludovic Courtès <[email-masked]> writes:

[...]

>> Apparently, dpkg will happily overwrite them when you install (and
>> that’s fine, if they have the same name, they’re identical), but what
>> happens when you remove one of them?  Does it, for instance, remove
>> /gnu/store/…-glibc just because it “belongs” to that package, without
>> noticing that it also belongs to other installed packages?
>
> Actually, dpkg will error with a conflict message if two distinct
> packages try to install the same file.  Only a package with the same
> name can overwrite itself.

Ah OK.

Also, what happens if you do:

  sudo apt install guix
  guix install stuff …
  sudo apt install ./guix-pack-generated.deb

?

Will that overwrite things in /gnu/store?

Admittedly it makes little sense to do something like this, but that’s
something one could do.

>> If dpkg cannot deal with that, it’s equivalent to a tarball pack for all
>> practical purposes, except you’d run “sudo apt” instead of “sudo tar”.
>
> Given you can't install two conflicting packages, the issue of removing
> the files of another package cannot arise.  In practice that means that
> the current implementation of 'guix pack -f deb' would only allow
> installing *one* such .deb package on a system at a time (most
> applications will carry the glibc and thus conflict for example).

I see.  So the main value over “sudo tar xf” is that dpkg knows which
files were installed, right?

> For a multi deb-pack scenario, we could have each .deb install their own
> files under for example /opt/guix/deb-packs/$name/gnu/store... via the
> relocatable option.

Hmm yeah, though it doesn’t sound pretty.

Thanks,
Ludo’.