all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Greg Hogan <code@greghogan.com>
Cc: 54393@debbugs.gnu.org
Subject: [bug#54393] [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests
Date: Wed, 16 Mar 2022 10:58:16 +0100	[thread overview]
Message-ID: <87sfrigqx3.fsf@gnu.org> (raw)
In-Reply-To: <CA+3U0Z=C1uH19MP5Rfi8SS4VJtAJfYJyKZkGnkzT6a8a_Fb3_Q@mail.gmail.com> (Greg Hogan's message of "Tue, 15 Mar 2022 12:50:06 -0400")

Hi,

Greg Hogan <code@greghogan.com> skribis:

> I would find this quite helpful. The current "basic setup with manifests"
> only documents the trivial case. It would be quite nice to document best
> practices for custom UTF-8 profiles, system-dependent inclusion (should we
> silently skip packages on unsupported systems?), and updating package
> versions, inputs, and/or toolchain.

OK.

> And for the latter, what are the limits of the manifest as compared
> with cloning, modifying, building, and executing with "./pre-inst-env
> guix ..." (which loses reproducibility)?
>
> Some background on that last thought: as Guix grows it becomes
> increasingly difficult to upgrade popular dependencies. I looked at
> upgrading 'fmt' and there was one dependent package that could not be
> upgraded, though not a package I needed. I'd like to be able to define an
> upgraded version of 'fmt' or 'boost' in my manifest and have it apply to
> the entire installation (profile or pack) rather than needing to modify
> specific packages with a with-input. Same for the toolchain, I think it
> would be nice to simply say "create this installation using gcc-toolchain"
> (the user default @11 rather than the system default @10) without needing
> any package transformations. And could one specify global build flags such
> as "-march=native"? Can one reach down into and modify commencement
> packages?

This—switching compiler tool chains and tuning for a CPU—is available as
package transformations:

  https://guix.gnu.org/manual/devel/en/html_node/Package-Transformation-Options.html

You can take advantage of those in your manifest using
‘option->transformations’:

  https://guix.gnu.org/manual/devel/en/html_node/Defining-Package-Variants.html#index-options_002d_003etransformation

The tentative ‘guix manifest’ and ‘guix package --export-manifest’
create that code snippet for you, as in this example:

  https://issues.guix.gnu.org/54393#2-lineno134

That’s the kind of thing I’d like to show in the “Writing Manifests”
section.

Tuning and switching tool chains will always happen through package
transformations.  In Guix, things have to be specified explicitly;
there’s no way you can stealthily change the meaning of the dependency
graph without changing it—unlike other tools in this area.  But that’s a
strength!  Now, we have to make it so that such changes can be done
conveniently, and package transformation options were introduced in this
spirit.

I hope that makes sense!

Ludo’.




      reply	other threads:[~2022-03-16 10:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14 21:50 [bug#54393] [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests Ludovic Courtès
2022-03-14 21:51 ` [bug#54393] [PATCH 1/2] packages: Add 'package-unique-version-prefix' Ludovic Courtès
2022-03-14 21:51   ` [bug#54393] [PATCH 2/2] Add 'guix manifest' Ludovic Courtès
2022-03-15  7:18 ` [bug#54393] [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests Liliana Marie Prikler
2022-03-15  9:27   ` Ludovic Courtès
2022-03-15  9:53     ` Liliana Marie Prikler
2022-03-15 15:17       ` Ludovic Courtès
2022-03-15  9:00 ` zimoun
2022-03-15  9:23   ` Ludovic Courtès
2022-03-15 10:21     ` zimoun
2022-03-15 19:38       ` Ludovic Courtès
2022-03-31 11:09         ` [bug#54393] [PATCH v2 1/3] packages: Add 'package-unique-version-prefix' Ludovic Courtès
2022-03-31 11:09           ` [bug#54393] [PATCH v2 2/3] environment: Export 'load-manifest' Ludovic Courtès
2022-03-31 11:09           ` [bug#54393] [PATCH v2 3/3] shell: Add '--export-manifest' Ludovic Courtès
2022-04-04 14:37             ` [bug#54393] [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests Maxim Cournoyer
2022-04-04 21:16               ` bug#54393: " Ludovic Courtès
2022-04-05  5:48                 ` [bug#54393] " zimoun
2022-04-06  8:08                   ` Ludovic Courtès
2022-03-31 11:10         ` [bug#54393] [PATCH v2 0/3] Add '--export-manifest' to 'guix shell' Ludovic Courtès
2022-03-15 16:50 ` [bug#54393] [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests Greg Hogan
2022-03-16  9:58   ` Ludovic Courtès [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sfrigqx3.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=54393@debbugs.gnu.org \
    --cc=code@greghogan.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.