[PATCH] maint: Support `guix shell' in Guix's git archive with

  • Done
  • quality assurance status badge
Details
2 participants
  • Janneke Nieuwenhuizen
  • Ludovic Courtès
Owner
unassigned
Submitted by
Janneke Nieuwenhuizen
Severity
normal
J
J
Janneke Nieuwenhuizen wrote on 21 Aug 2023 21:29
(address . guix-patches@gnu.org)
87y1i48a9g.fsf@gnu.org
Hi!

A couple of months ago I stumbled upon this awesome-looking guide
finally found the time to setup direnv and emacs-envrc with Guix for my
development projects. Really should have done this sooner, it's a huge
step-up from M-x guix-set-emacs-environment (or in avoiding to do that
run make in the shell and lookup line numbers manually -- why does ffap
not respect GNU-style error messages, btw?).

Most everything worked...except for Guix; as Guix git does not support
`guix shell' ootb; you really need your own local hack or have to type
something like "guix shell -D guix".

In the attached patch I share my local hack `maintenance.scm', which
allows this generalized .envrc

Toggle snippet (12 lines)
eval $(guix shell --search-paths)
if test -d doc; then
export INFOPATH="$PWD/doc${INFOPATH:+:}$INFOPATH"
fi
if test -f pre-inst-env; then
source pre-inst-env ""
else
export GUILE_LOAD_PATH="$PWD${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH="$PWD${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
fi

to also work for Guix.

Greetings,
Janneke
From 84bb463a70bacf93e74fe6c0f14932149acd5383 Mon Sep 17 00:00:00 2001
Message-ID: <84bb463a70bacf93e74fe6c0f14932149acd5383.1692646073.git.janneke@gnu.org>
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 21 Aug 2023 20:57:12 +0200
Subject: [PATCH] maint: Support `guix shell' in Guix's git archive with
manifest.scm.

* manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
---
Makefile.am | 1 +
manifest.scm | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
create mode 100644 manifest.scm

Toggle diff (54 lines)
diff --git a/Makefile.am b/Makefile.am
index 738532f839..1237968ddd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -692,6 +692,7 @@ EXTRA_DIST += \
ROADMAP \
TODO \
bootstrap \
+ manifest.scm \
build-aux/build-self.scm \
build-aux/check-channel-news.scm \
build-aux/check-final-inputs-self-contained.scm \
diff --git a/manifest.scm b/manifest.scm
new file mode 100644
index 0000000000..14473443ed
--- /dev/null
+++ b/manifest.scm
@@ -0,0 +1,32 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;; GNU Guix development manifest. To create development environment, run
+;;
+;; guix shell
+;;
+;; or something like
+;;
+;; guix shell --pure git git:send-email openssh
+
+(use-modules (srfi srfi-1)
+ (guix packages)
+ (guix profiles)
+ (gnu packages package-management))
+
+(package->development-manifest guix)

base-commit: 4c7627dfec88350f9a1705e9527c38dd41506f8b
--
2.41.0
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 6 Sep 2023 09:13
(address . 65439@debbugs.gnu.org)
87r0nbu63p.fsf@gnu.org
Janneke Nieuwenhuizen writes:

Hi!

Toggle quote (3 lines)
> In the attached patch I share my local hack `maintenance.scm', which
> allows this generalized .envrc

For v2 I removed unnecessary includes. (Initially `maintenance.scm' was
a bit more interesting.) Also mention using it implicitly in
Contributing.texi.

[snip .envrc exapmle that runs ./pre-inst-env]

...and while I'm here; I'm using this much simpler .envrc now:

Toggle snippet (6 lines)
eval $(guix shell --search-paths)
if test -f doc/dir; then
export INFOPATH="$PWD/doc${INFOPATH:+:}$INFOPATH"
fi

I found that it's better to simply use ./pre-inst-env in the M-x compile
command instead.

Greetings,
Janneke
From 7f36f48a4757fc2952b8140b72f1952688d0ac6b Mon Sep 17 00:00:00 2001
Message-ID: <7f36f48a4757fc2952b8140b72f1952688d0ac6b.1693984077.git.janneke@gnu.org>
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 21 Aug 2023 20:57:12 +0200
Subject: [PATCH v2] maint: Support `guix shell' in Guix's git archive with
manifest.scm.

* manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
* doc/contributing.texi (Building from Git): Mention using it.
---
Makefile.am | 1 +
doc/contributing.texi | 6 ++++++
manifest.scm | 30 ++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+)
create mode 100644 manifest.scm

Toggle diff (69 lines)
diff --git a/Makefile.am b/Makefile.am
index 922913355c..8924974e8a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -692,6 +692,7 @@ EXTRA_DIST += \
ROADMAP \
TODO \
bootstrap \
+ manifest.scm \
build-aux/build-self.scm \
build-aux/check-channel-news.scm \
build-aux/check-final-inputs-self-contained.scm \
diff --git a/doc/contributing.texi b/doc/contributing.texi
index fa9238fde8..2ee1e4aa2c 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -77,6 +77,12 @@ Building from Git
guix shell -D guix --pure
@end example
+or even, from within a Git worktree for Guix
+
+@example
+guix shell --pure
+@end example
+
@xref{Invoking guix shell}, for more information on that command.
If you are unable to use Guix when building Guix from a checkout, the
diff --git a/manifest.scm b/manifest.scm
new file mode 100644
index 0000000000..bcd94b68c5
--- /dev/null
+++ b/manifest.scm
@@ -0,0 +1,30 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;; GNU Guix development manifest. To create development environment, run
+;;
+;; guix shell
+;;
+;; or something like
+;;
+;; guix shell --pure git git:send-email openssh
+
+(use-modules (guix profiles)
+ (gnu packages package-management))
+
+(package->development-manifest guix)

base-commit: 6113e0529d61df7425f64e30a6bf77f7cfdfe5a5
--
2.41.0
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 18 Sep 2023 10:47
Re: bug#65439: [PATCH] maint: Support `guix shell' in Guix's git archive with
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)(address . 65439@debbugs.gnu.org)
8734zblvfe.fsf_-_@gnu.org
Hi,

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (11 lines)
>>From 7f36f48a4757fc2952b8140b72f1952688d0ac6b Mon Sep 17 00:00:00 2001
> Message-ID: <7f36f48a4757fc2952b8140b72f1952688d0ac6b.1693984077.git.janneke@gnu.org>
> From: Janneke Nieuwenhuizen <janneke@gnu.org>
> Date: Mon, 21 Aug 2023 20:57:12 +0200
> Subject: [PATCH v2] maint: Support `guix shell' in Guix's git archive with
> manifest.scm.
>
> * manifest.scm: New file.
> * Makefile.am (EXTRA_DIST): Add it.
> * doc/contributing.texi (Building from Git): Mention using it.

Looks great to me!

Toggle quote (7 lines)
> +++ b/doc/contributing.texi
> @@ -77,6 +77,12 @@ Building from Git
> guix shell -D guix --pure
> @end example
>
> +or even, from within a Git worktree for Guix

I’d add a colon at the end of the line. :-)

Thanks,
Ludo’.
J
J
Janneke Nieuwenhuizen wrote on 18 Sep 2023 10:47
Re: [PATCH v2] WAS [bug#65439] [PATCH] maint: Support `guix shell' in Guix's git archive with
(address . 65439@debbugs.gnu.org)
87h6nrn9zj.fsf@gnu.org
Janneke Nieuwenhuizen writes:

Hi!

Toggle quote (21 lines)
> Janneke Nieuwenhuizen writes:
>
>> In the attached patch I share my local hack `maintenance.scm', which
>> allows this generalized .envrc
>
> For v2 I removed unnecessary includes. (Initially `maintenance.scm' was
> a bit more interesting.) Also mention using it implicitly in
> Contributing.texi.
>
> [snip .envrc exapmle that runs ./pre-inst-env]
>
> ...and while I'm here; I'm using this much simpler .envrc now:
>
> eval $(guix shell --search-paths)
> if test -f doc/dir; then
> export INFOPATH="$PWD/doc${INFOPATH:+:}$INFOPATH"
> fi
>
> I found that it's better to simply use ./pre-inst-env in the M-x compile
> command instead.

It's been four weeks without comment, unless there are any objections
I'll push at the end of the day.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 18 Sep 2023 22:14
Re: bug#65439: [PATCH] maint: Support `guix shell' in Guix's git archive with
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 65439-done@debbugs.gnu.org)
87led3kzlv.fsf@gnu.org
Ludovic Courtès writes:

Hi,

Toggle quote (15 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>>>From 7f36f48a4757fc2952b8140b72f1952688d0ac6b Mon Sep 17 00:00:00 2001
>> Message-ID: <7f36f48a4757fc2952b8140b72f1952688d0ac6b.1693984077.git.janneke@gnu.org>
>> From: Janneke Nieuwenhuizen <janneke@gnu.org>
>> Date: Mon, 21 Aug 2023 20:57:12 +0200
>> Subject: [PATCH v2] maint: Support `guix shell' in Guix's git archive with
>> manifest.scm.
>>
>> * manifest.scm: New file.
>> * Makefile.am (EXTRA_DIST): Add it.
>> * doc/contributing.texi (Building from Git): Mention using it.
>
> Looks great to me!

Thanks :)

Toggle quote (9 lines)
>> +++ b/doc/contributing.texi
>> @@ -77,6 +77,12 @@ Building from Git
>> guix shell -D guix --pure
>> @end example
>>
>> +or even, from within a Git worktree for Guix
>
> I’d add a colon at the end of the line. :-)

Ah, done. Pushed to master as 7bf12820f61179900f9d1f753acf91fd33724976

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 65439@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 65439
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch