Subject: [bug#54377] [PATCH 0/3] Add 'guix home container'

From: Ludovic Courtès <[email-masked]>
Date: Sat, 19 Mar 2022 11:32:05 +0100

Hi Frank,

Frank Pursel <[email-masked]> skribis:

> This is a very exciting idea.  Entry into guix home has some wrinkles in
> it that are scary.  I know it required several iterations over
> home-configuration.scm and 'guix home reconfigure' before I was able to
> make peace with my guix home.  I see in irc that others are also
> experiencing challenges getting the environments where they want them to
> be.  This patch allows more control over the adoption of guix home while
> also cleverly leveraging improvements to guix containers.  Very cool, I
> want it!

I agree, that very well summarizes my motivation for adding it!

> I ran this patch against my current, working home configuration to see
> what happened and I ran into a problem.  My home-configuration.scm sets
> the GUIX_PACKAGE_PATH (using simple-service
> 'local-environment-variables) and then references packages that are in
> that path (in my case a package called emacs-ix).  When I executed 'guix
> home container <my-config.scm>' I received the following errors:
>
> guix home: error: emacs-ix: unknown package
> guix home: error: failed to load '/home/fpp/src/guix-home-config/home-configuration.scm':
> gnu/packages.scm:544:4: In procedure specification->package+output:
>
> IDK if this is the desired behavior.  Can the environment set in
> config.scm be set before loading the packages that may modify the
> environment?

If you want ‘home-configuration.scm’ to refer to files in that path,
then GUIX_PACKAGE_PATH needs to be set in the environment of where ‘guix
home’ itself is running.  Like so:

  export GUIX_PACKAGE_PATH=/path/to/your/packages
  guix home container …

Alternatively, you can run:

  guix home container -L /path/to/your/packages …

HTH!

Ludo’.