~ruther/guix-local

67a6828b2bb821274757f686f7c685b664339a96 — Ludovic Courtès 3 years ago 270e1b9
pull: Create a version 3 manifest.

This makes the profile readable by older Guix instances.  This is a
followup to c9fbd40785a99e13a59d8e530830ce85220a9871.

Fixes <https://issues.guix.gnu.org/57306>.
Reported by Arun Isaac <arunisaac@systemreboot.net>.

* guix/profiles.scm (%manifest-format-version): Export.
* guix/scripts/package.scm (build-and-use-profile): Add #:format-version
and pass it to 'profile-derivation'.
* guix/scripts/pull.scm (build-and-install): Pass #:format-version 3.
3 files changed, 6 insertions(+), 0 deletions(-)

M guix/profiles.scm
M guix/scripts/package.scm
M guix/scripts/pull.scm
M guix/profiles.scm => guix/profiles.scm +1 -0
@@ 128,6 128,7 @@
            packages->manifest
            ca-certificate-bundle
            %default-profile-hooks
            %manifest-format-version
            profile-derivation
            profile-search-paths
            load-profile

M guix/scripts/package.scm => guix/scripts/package.scm +2 -0
@@ 145,6 145,7 @@ denote ranges as interpreted by 'matching-generations'."
                                dry-run?
                                (hooks %default-profile-hooks)
                                allow-collisions?
                                (format-version %manifest-format-version)
                                bootstrap?)
  "Build a new generation of PROFILE, a file name, using the packages
specified in MANIFEST, a manifest object.  When ALLOW-COLLISIONS? is true,


@@ 154,6 155,7 @@ hooks\" run when building the profile."
                     (profile-derivation manifest
                                         #:allow-collisions? allow-collisions?
                                         #:hooks (if bootstrap? '() hooks)
                                         #:format-version format-version
                                         #:locales? (not bootstrap?))))
         (prof     (derivation->output-path prof-drv)))


M guix/scripts/pull.scm => guix/scripts/pull.scm +3 -0
@@ 452,6 452,9 @@ true, display what would be built without actually building it."
  (mlet %store-monad ((manifest (channel-instances->manifest instances)))
    (mbegin %store-monad
      (update-profile profile manifest
                      ;; Create a version 3 profile so that it is readable by
                      ;; old instances of Guix.
                      #:format-version 3
                      #:hooks %channel-profile-hooks)

      (return