From: Prafulla Giri <pratheblackdiamond@gmail.com>
To: 39049@debbugs.gnu.org
Subject: [bug#39049] guix-install.sh: Create an init profile for better out-of-the-box experience on foreign distros
Date: Thu, 9 Jan 2020 13:08:36 +0545 [thread overview]
Message-ID: <CAFw+=j2HrBvUKp0WVeQMwxHyFih-azaK1zywKq9krxrN7h3bJw@mail.gmail.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 655 bytes --]
Esteemed maintainers,
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.
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.
[-- Attachment #1.2: Type: text/html, Size: 744 bytes --]
[-- Attachment #2: 0001-guix-install.sh-Create-an-init-profile-during-instal.patch --]
[-- Type: text/x-patch, Size: 2072 bytes --]
From 527d82c66a1e80779f75a16cfdd65634d55f32c1 Mon Sep 17 00:00:00 2001
From: Prafulla Giri <pratheblackdiamond@gmail.com>
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.
---
etc/guix-install.sh | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 111e25fbcb..b57d71981f 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -393,6 +393,26 @@ sys_authorize_build_farms()
done
}
+sys_create_init_profile()
+{ # Create /etc/profile.d/guix.sh for better desktop integration
+ cat <<"EOF" > /etc/profile.d/guix.sh
+# _GUIX_PROFILE: `guix pull` profile
+_GUIX_PROFILE="$HOME/.config/guix/current"
+[ -L $_GUIX_PROFILE ] && export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
+
+# GUIX_PROFILE: User's default profile
+GUIX_PROFILE="$HOME/.guix-profile"
+[ -L $GUIX_PROFILE ] || return
+GUIX_LOCPATH="$GUIX_PROFILE/lib/locale"
+export GUIX_PROFILE GUIX_LOCPATH
+
+eval `guix package --search-paths=prefix 2> /dev/null`
+
+# set XDG_DATA_DIRS to include Guix installations
+export XDG_DATA_DIRS="$GUIX_PROFILE/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"
+EOF
+}
+
welcome()
{
cat<<"EOF"
@@ -449,6 +469,7 @@ main()
sys_create_build_user
sys_enable_guix_daemon
sys_authorize_build_farms
+ sys_create_init_profile
_msg "${INF}cleaning up ${tmp_path}"
rm -r "${tmp_path}"
--
2.24.1
next reply other threads:[~2020-01-09 9:57 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-09 7:23 Prafulla Giri [this message]
2020-01-17 16:29 ` [bug#39049] guix-install.sh: Create an init profile for better out-of-the-box experience on foreign distros Ludovic Courtès
[not found] ` <CAFw+=j1GvNd0Mi1q5cB9W11gsgZ42HTMD=r_Y=_ZW7wYThfA_Q@mail.gmail.com>
2020-01-20 8:38 ` Ludovic Courtès
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAFw+=j2HrBvUKp0WVeQMwxHyFih-azaK1zywKq9krxrN7h3bJw@mail.gmail.com' \
--to=pratheblackdiamond@gmail.com \
--cc=39049@debbugs.gnu.org \
/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 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).