[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#53210: [WIP PATCH 3/4] gnu: current-guix: Support when running outsi
From: |
Ludovic Courtès |
Subject: |
bug#53210: [WIP PATCH 3/4] gnu: current-guix: Support when running outside a checkout. |
Date: |
Mon, 14 Feb 2022 18:15:14 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Josselin Poiret <dev@jpoiret.xyz> skribis:
> * guix/channels.scm (channel-build-system): Add build system that
> turns a channel record into a package.
> * gnu/packages/package-management.scm (current-guix): Use
> channel-build-system.
[...]
> (define-public current-guix
> - (let* ((repository-root (delay (canonicalize-path
> - (string-append (current-source-directory)
> - "/../.."))))
> - (select? (delay (or (git-predicate (force repository-root))
> - source-file?))))
> - (lambda ()
> - "Return a package representing Guix built from the current source tree.
> -This works by adding the current source tree to the store (after filtering it
> -out) and returning a package that uses that as its 'source'."
> + (lambda ()
> + "Return a package representing Guix built from the currently used one.
> +This works by either looking up profile or build metadata, and building from
> +the current Guix channel. If that metadata is missing, assume we are running
> +from a Git checkout, so add the current source tree to the store (after
> +filtering it out) and return a package that uses that as its 'source'."
> + (let* ((guix-channel (find guix-channel? (current-channels)))
> + (repository-root (canonicalize-path
> + (string-append (current-source-directory)
> + "/../..")))
> + (select? (or (git-predicate repository-root)
> + source-file?)))
We should keep these two variables as promises in the closure, to make
sure we don’t recompute them over and over… unless ‘lambda’ is changed
to ‘mlambda’ in the same commit, which is probably the best course of
action.
- bug#53210: [WIP PATCH 0/4] Make current-guix work when run outside a Git checkout, Josselin Poiret, 2022/02/14
- bug#53210: [WIP PATCH 1/4] gnu: ci: Move generic channel building code., Josselin Poiret, 2022/02/14
- bug#53210: [WIP PATCH 3/4] gnu: current-guix: Support when running outside a checkout., Josselin Poiret, 2022/02/14
- bug#53210: [WIP PATCH 3/4] gnu: current-guix: Support when running outside a checkout.,
Ludovic Courtès <=
- bug#53210: [WIP PATCH 2/4] gnu: Rename channel-build-system and channel-source->package., Josselin Poiret, 2022/02/14
- bug#53210: [WIP PATCH 4/4] gnu: package-management: Memoize current-guix., Josselin Poiret, 2022/02/14
- bug#53210: [WIP PATCH 0/4] Make current-guix work when run outside a Git checkout, Ludovic Courtès, 2022/02/14