unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Managing user environments
@ 2019-07-29 15:13 Julien Lepiller
  2019-07-29 16:04 ` Ricardo Wurmus
  0 siblings, 1 reply; 4+ messages in thread
From: Julien Lepiller @ 2019-07-29 15:13 UTC (permalink / raw)
  To: guix-devel

Hi Guix!

A few months ago, I created a new channel called the guix home manager whose purpose is to allow to manage user environments in a similar way to services.

The channel is about managing dotfiles. I think configuration should be managed in a stateless fashion, and that's what guix is good at. Ricardo encouraged me today to thare it and maybe work on integrating it in Guix proper. What do you think?

You can find the current code here: https://framagit.org/tyreunom/guix-home-manager

This channel currently works by building a guix profile, so it provides roll-back and atomicity in general. The profile corresponds to the whole home directory, which makes it read-only. There are ways to "punch holes", especially for the XDG cache and data directories, but also for any unsupported application. Supported applications are configured with a record-type, like system services.

I still have some doubts about it, whether it's in the scope for guix or not, whether it actually scales, and such. Any opinion is welcome. Again, would you like to see it, or a modified version of it,in guix itself or should it be kept in a separate channel?

Thanks!

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Managing user environments
  2019-07-29 15:13 Managing user environments Julien Lepiller
@ 2019-07-29 16:04 ` Ricardo Wurmus
  2019-07-30  8:46   ` Pierre Neidhardt
  0 siblings, 1 reply; 4+ messages in thread
From: Ricardo Wurmus @ 2019-07-29 16:04 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: guix-devel


Hi Julien,

> A few months ago, I created a new channel called the guix home manager
> whose purpose is to allow to manage user environments in a similar way
> to services.
>
> The channel is about managing dotfiles. I think configuration should
> be managed in a stateless fashion, and that's what guix is good at.

I think this is a very good idea and I’d love to see more integration
with Guix.

> You can find the current code here: https://framagit.org/tyreunom/guix-home-manager

I’m not convinced that a package definition is the most appropriate
abstraction to use here, because we only really care about the builder.
Using a profile is probably a good idea, though, because of roll-backs
etc.  Much like “guix pull” builds a profile under the hood, the home
manager could do the same.

Other ideas I mentioned on IRC were:

- integration with “guix system” and/or manifests; running “guix package
  --profile…” is probably not the most convenient interface.

- storage of secrets.  Can we (or: does it make sense to) encrypt the
  generated configuration files and use a PAM service to automatically
  unlock and relocate them upon login?

> I still have some doubts about it, whether it's in the scope for guix
> or not, whether it actually scales, and such. Any opinion is
> welcome. Again, would you like to see it, or a modified version of
> it,in guix itself or should it be kept in a separate channel?

I’d love to see a variant of this become part of Guix proper in the
future.  It shouldn’t be forced upon users, of course, but I think it
would be great to offer this as an opt-in feature, much like stricter
package management with manifests is opt-in.

Thank you for sharing this!

--
Ricardo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Managing user environments
  2019-07-29 16:04 ` Ricardo Wurmus
@ 2019-07-30  8:46   ` Pierre Neidhardt
  2019-07-30  9:32     ` Ricardo Wurmus
  0 siblings, 1 reply; 4+ messages in thread
From: Pierre Neidhardt @ 2019-07-30  8:46 UTC (permalink / raw)
  To: Ricardo Wurmus, Julien Lepiller; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 650 bytes --]

This looks fantastic!

I can see quite some overlap with Shepherd User Services:
https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00128.html

What do you think?

If we implement shepherd user services, we would essentially be able to
declare most (all?) of a user home folder.

The main difference I can see with Julien's approach is that the
declarativeness is not enforced since home would not be read-only.
Home would be initialized declaratively, but then the user or any
program is able to overwrite files in home.  Which may or may not be the
desired behaviour.

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Managing user environments
  2019-07-30  8:46   ` Pierre Neidhardt
@ 2019-07-30  9:32     ` Ricardo Wurmus
  0 siblings, 0 replies; 4+ messages in thread
From: Ricardo Wurmus @ 2019-07-30  9:32 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: guix-devel


Pierre Neidhardt <mail@ambrevar.xyz> writes:

> I can see quite some overlap with Shepherd User Services:
> https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00128.html
>
> What do you think?

Yes, I felt reminded of Shepherd User Services as well.

> The main difference I can see with Julien's approach is that the
> declarativeness is not enforced since home would not be read-only.

This could still be done as part of the service actions if desired.

--
Ricardo

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-07-30  9:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-29 15:13 Managing user environments Julien Lepiller
2019-07-29 16:04 ` Ricardo Wurmus
2019-07-30  8:46   ` Pierre Neidhardt
2019-07-30  9:32     ` Ricardo Wurmus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).