all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#71360: large manifests when adding packages
@ 2024-06-04 11:38 Dariqq
  2024-06-04 17:35 ` Dariqq
  0 siblings, 1 reply; 2+ messages in thread
From: Dariqq @ 2024-06-04 11:38 UTC (permalink / raw)
  To: 71360

Hi Guix,

I was trying to figure out if the "repeated" tag inside a profiles 
manifest file is reliable to detect duplicate entries in a profile. 
While it was working fine for my home and system profile for the normal 
.guix-profile it was not:

This is related to https://issues.guix.gnu.org/55499#0 resp. 
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=4ff12d1de7cd617b791996ee7ca1240660b4c20e 
which marks duplicate entries in a profiles as repeated inside the 
profile manifest file.

* Steps to reproduce

To stick with the original example: Instead of adding the r packages all 
in one add them one by one

#+begin_example
guix package -p /tmp/wrong -i r-cicero-monocle3
guix package -p /tmp/wrong -i r-monocle3
#+end_example

The resulting manifest file at /tmp/wrong/manifest has the huge tree for 
r-monocle3 twice.

So the lookup mechanism in manifest->gexp does not seem to work with the 
install mechanism of profiles. I haven't looked more deeply into it yet.

An smaller example is using zlib and glib (which propagates zlib).

* Expected Behaviour

It should not matter whether you install things in multiple transactions 
or in one.

Thanks.




^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#71360: large manifests when adding packages
  2024-06-04 11:38 bug#71360: large manifests when adding packages Dariqq
@ 2024-06-04 17:35 ` Dariqq
  0 siblings, 0 replies; 2+ messages in thread
From: Dariqq @ 2024-06-04 17:35 UTC (permalink / raw)
  To: 71360

I think (maybe part of) the problem is that inside entry->gexp in 
manifest->gexp things get compared using (the hash of) 
(manifest-entry-item entry) which will be a package object for the new 
entries but a store path "/gnu/store/*" for packages already present in 
the profile.

Also right afterwards we test if the visited previous-entry is 
'manifest-entry=?' to entry again causing a potential problem if one has 
a string and one a package as item entry.

Would this be worth fixing?


On 04.06.24 13:38, Dariqq wrote:
> Hi Guix,
> 
> I was trying to figure out if the "repeated" tag inside a profiles 
> manifest file is reliable to detect duplicate entries in a profile. 
> While it was working fine for my home and system profile for the normal 
> .guix-profile it was not:
> 
> This is related to https://issues.guix.gnu.org/55499#0 resp. 
> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=4ff12d1de7cd617b791996ee7ca1240660b4c20e which marks duplicate entries in a profiles as repeated inside the profile manifest file.
> 
> * Steps to reproduce
> 
> To stick with the original example: Instead of adding the r packages all 
> in one add them one by one
> 
> #+begin_example
> guix package -p /tmp/wrong -i r-cicero-monocle3
> guix package -p /tmp/wrong -i r-monocle3
> #+end_example
> 
> The resulting manifest file at /tmp/wrong/manifest has the huge tree for 
> r-monocle3 twice.
> 
> So the lookup mechanism in manifest->gexp does not seem to work with the 
> install mechanism of profiles. I haven't looked more deeply into it yet.
> 
> An smaller example is using zlib and glib (which propagates zlib).
> 
> * Expected Behaviour
> 
> It should not matter whether you install things in multiple transactions 
> or in one.
> 
> Thanks.




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-06-04 19:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-04 11:38 bug#71360: large manifests when adding packages Dariqq
2024-06-04 17:35 ` Dariqq

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.