[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43585: Order in manifest and command-line differs
From: |
zimoun |
Subject: |
bug#43585: Order in manifest and command-line differs |
Date: |
Thu, 24 Sep 2020 16:08:06 +0200 |
Hi Mathieu,
On Thu, 24 Sep 2020 at 15:08, Mathieu Othacehe <othacehe@gnu.org> wrote:
> The order of what appears in "bin" depends on both the name of the
> binaries provided by both packages and also how the "ls" command decides
> to sort its output. I'm not sure that much can be done here.
I have badly worded. The point is that "diffutils" and "busybox"
provide both the 'diff' binary. Therefore, depending on the order,
'diff' is provided by one or the other. Compare:
guix package -i busybox diffutils -p /tmp/busybox-diffutils
/tmp/busybox-diffutils/bin/diff
and
guix package -i diffutils busybox -p /tmp/diffutils-busybox
/tmp/diffutils-busybox/bin/diff
In the same time, compare the manifest.scm files:
--8<---------------cut here---------------start------------->8---
;;; busybox-diffutils.scm
(specifications->manifest '("busybox" "diffutils"))
;;; diffutils-busybox.scm
(specifications->manifest '("diffutils" "busybox"))
--8<---------------cut here---------------end--------------->8---
then
guix package -m busybox-diffutils.scm -p /tmp/busybox-diffutils-m
/tmp/busybox-diffutils-m/bin/diff
and
guix package -m diffutils-busybox.scm -p /tmp/diffutils-busybox-m
/tmp/diffutils-busybox-m/bin/diff
Concretely, "guix package" processes command-line arguments from right
to left. And the manifest.scm file read the list in order (so from
left to right).
All the best,
simon
PS:
For another example not related:
$ guix package --show=diffutils --show=busybox | recsel -C -p name
name: busybox
name: diffutils
and "guix show" corrects that, processing from left to right.
$ guix show diffutils busybox | recsel -C -p name
name: diffutils
name: busybox