Hi, elaexuo...@wilsonb.com skribis:
> In an attempt to tar up the *build* environment for a package to share with a > colleague, I encountered this: > > [env]$ guix pack -m $GUIX_ENVIRONMENT/manifest > (manifest ...): Wrong number of arguments > > From playing around a bit, my guess is that the `<profile>/manifest' files are > just human-readable serializations of <manifest> objects and don't deserialize > back: > > $ guix environment -m ~/.guix-profile/manifest > (manifest ...): Wrong number of arguments > > Asking around on #guix, user leoprikler suggested a workaround by putting this > in a file: > > (call-with-input-file > "/path/to/manifest" > (@@ (guix profiles) read-manifest)) > > and feeding that file to --manifest. This works as intended. > > First, am I missing something? Is there a better/preferred way to make use of > the `manifest' files in profiles? You’re not missing anything: it’s a longstanding source of confusion that these ‘manifest’ files are not like the ‘manifest.scm’ files. These ‘manifest’ files are meant for internal consumption. I think Pierre Neidhardt started looking at ways to address it from different angles, but that hasn’t materialized yet. One thing we discussed was to add an ‘--export-manifest’ (or similar) option that would export a ‘manifest.scm’ file for a profile, where the ‘manifest.scm’ file could be an approximation of what the profile contains, in some cases. > If not, does it seem reasonable to make the `manifest' files automatically > deserialize into the objects they describe? I think this could be a fun, > simple > project for a Guix newbie like me, but before I start figuring out how to do > this, I just want to sanity check the idea. Yup! Thanks, Ludo’.