Hi, On Sun, 10 Nov 2024 at 12:38, Ludovic Courtès <l...@gnu.org> wrote:
>> $ guix shell -m manifest.scm --export-manifest > > ‘--export-manifest’ is meant to “translate” a command line, which it can > do faithfully; there’s no way it could possibly “recreate” what > ‘manifest.scm’, which may contain arbitrary Scheme code (and someone who > already has a ‘manifest.scm’ file probably doesn’t need > ‘--export-manifest’). Yes, one might need. :-) As I explained: « That’s annoying in some context as “guix pack --save-provenance” [1]. Even, it defeats the idea of a self-contained reproducible binary container. » For sure, I understand it’s hard to capture this kind of transformation. Still, an improvement appears to me possible (see below). 1: https://hpc.guix.info/blog/2021/10/when-docker-images-become-fixed-point > It’s necessarily a lossy process. This is where I disagree. :-) I mean, yes I agree that building profile/manifest is somehow a lossy process because some Scheme is potentially evaluated on the road. However, I am proposing: Aside the profile ’manifest’ file (lossy process), we could store all the manifests provided by the command line. Something as: /gnu/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-profile/manifest /gnu/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-profile/manifest.orig1 /gnu/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-profile/manifest.orig2 … where manifest.orig1 and manifest.orig2 are the copy of files ’foo.scm’ and ’bar.scm’ from: -m foo.scm -m bar.scm This way, the option --export-manifest could be improved, eventually. In other word, I think that saving as-is the manifests costs almost nothing and it paves the way to more robust self-contained binary packs. Well, maybe this extra work could be only done when there is an option ’--save-provenance’ applied. > I would close it as not-a-bug; WDYT? I still think it’s a feature that it’s possible to improve. Cheers, simon