Subject: [bug#39049] guix-install.sh: Create an init profile for better out-of-the-box experience on foreign distros

From: Prafulla Giri <[email-masked]>
Date: Sun, 19 Jan 2020 22:39:13 +0545

Wow. Mr. Courtes, it is an honour, sir. Thank you very much.

/etc/profile.d/*.sh seems to be the norm these days. All the debian-based
distros that I have used seem to have it (Mint, Elementary, Ubuntu, etc.)
and even Alpine Linux's docker containers support them.

I didn't  really think this patch will get merged in one go. I did find
another thing that I could add to this patch  the other day but had not
gotten around to updating this. It is regarding the infopath: setting it to
contain _GUIX_PROFILE/share/info seems to be a good default to have, esp.
because it isn't exported by `guix package --search-paths`. I ran into this
issue just the other day, myself. I wish I had made haste to send in an
update.

Should I send in a patch, sir? And do I send it in this thread or should I
do it in another one, please?

On Fri, Jan 17, 2020 at 10:14 PM Ludovic Courtès <[email-masked]> wrote:

> Hello Prafulla,
>
> Prafulla Giri <[email-masked]> skribis:
>
> > Attached is a patch that I think improves the guix user experience on a
> > foreign distro. It creates a guix.sh init profile at /etc/profile.d (in
> the
> > same vein as flatpak with it's /etc/profile.d/flatpak.sh). I have been
> > using the init file on few of my friends computers with no regressions.
>
> That’s a great idea!  Do you know how common the /etc/profile.d/*.sh
> convention is?
>
> > I have tried my best to emulate the commit-logs as seen from `git log
> > etc/guix-install.sh`. Please do let me know if I am doing anything wrong.
> > This is my first real contribution to a GNU project, ever. I am still a
> > n00b, and only have had experiences with GitHub based PRs so far, and
> still
> > have a lot to learn. Please forgive my klutzes.
>
> You did very well, no worries!  (And it’s normal to need some time to
> discover a project’s conventions when one joins it.)
>
> > From 527d82c66a1e80779f75a16cfdd65634d55f32c1 Mon Sep 17 00:00:00 2001
> > From: Prafulla Giri <[email-masked]>
> > Date: Sat, 28 Dec 2019 12:48:52 +0545
> > Subject: [PATCH] guix-install.sh: Create an init profile during
> installation
> >
> > Create an init profile (/etc/profile.d/guix.sh) during installation for
> > better integration with foreign distros. This file, read by login-shells
> > sets a few environment variables (PATH, GUIX_PROFILE, GUIX_LOCALE, along
> > with XDG_DATA_DIRS) and makes guix-installed packages readily available
> > for the users. Other environment variables, as listed by `guix package
> > --search-paths=prefix`, are also exported.
> >
> > Checks are in place to prevent the init profile from needlessly polluting
> > the user's environment.
> >
> > * etc/guix-install.sh (sys_create_init_profile): New function to create
> > /etc/profile.d/guix.sh init profile.
>
> Applied, thanks!
>
> Ludo’.
>