* Guile 2.2 packages
@ 2016-09-07 16:52 Ludovic Courtès
2016-09-07 17:02 ` Ricardo Wurmus
2016-09-07 17:45 ` Danny Milosavljevic
0 siblings, 2 replies; 7+ messages in thread
From: Ludovic Courtès @ 2016-09-07 16:52 UTC (permalink / raw)
To: guix-devel
Hello!
The Guile 2.2 series is becoming a reality, so time has come to provide
packages built with/for Guile 2.2 (aka. 2.1, aka. ‘guile-next’).
Commit 947a5d47a50252cb0b87b78a8f83f274dec593e2 adds a
‘package-for-guile-2.2’ procedure similar in spirit to
‘package-with-python2’. It provides a simple way to define 2.2-using
package variants, equivalent to:
guix build something --with-input=guile=guile-next
You can install 2.0 and 2.2 variants of Guile packages side by side:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package -p foo -i guile-minikanren guile2.2-minikanren guile guile-next
The following packages will be installed:
guile-minikanren 20150424.e844d85 /gnu/store/xib2gmbs0pgy572c8k7a658kph76yjra-guile-minikanren-20150424.e844d85
guile2.2-minikanren 20150424.e844d85 /gnu/store/8y3cqkrqhg9v3f0cvzcrhv7fcq7rz2yz-guile2.2-minikanren-20150424.e844d85
guile 2.0.11 /gnu/store/95x5fxvcggyaa8ymjjgv5q0dnzkrign9-guile-2.0.11
guile-next 2.1.3 /gnu/store/kqq37w4xnl1q21g6vz93qq1rdb2y7ayc-guile-next-2.1.3
4 packages in profile
The following environment variable definitions may be needed:
export PATH="foo/bin${PATH:+:}$PATH"
export GUILE_LOAD_PATH="foo/share/guile/site/2.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.0/ccache:foo/share/guile/site/2.0${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
export GUILE_LOAD_PATH="foo/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.2/ccache:foo/share/guile/site/2.2${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
--8<---------------cut here---------------end--------------->8---
The main difficulty is that upstream build systems and some of our
recipes hard-code “/2.0” in the name of the module installation
directories. I’ve fixed that in a few packages in the commits preceding
the one above. I’m afraid there’s no simple automated way to fix that,
other than telling upstream developers to do the right thing.
Anyway, have fun!
Ludo’.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile 2.2 packages
2016-09-07 16:52 Guile 2.2 packages Ludovic Courtès
@ 2016-09-07 17:02 ` Ricardo Wurmus
2016-09-07 17:45 ` Danny Milosavljevic
1 sibling, 0 replies; 7+ messages in thread
From: Ricardo Wurmus @ 2016-09-07 17:02 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
Ludovic Courtès <ludo@gnu.org> writes:
> Hello!
>
> The Guile 2.2 series is becoming a reality, so time has come to provide
> packages built with/for Guile 2.2 (aka. 2.1, aka. ‘guile-next’).
[...]
>
> The main difficulty is that upstream build systems and some of our
> recipes hard-code “/2.0” in the name of the module installation
> directories. I’ve fixed that in a few packages in the commits preceding
> the one above. I’m afraid there’s no simple automated way to fix that,
> other than telling upstream developers to do the right thing.
This is very timely! In a project that I’m working on I’ve just defined
guile-next versions of guile-json and guile-redis, both of which
hardcode “2.0” in a snippet.
Thanks!
~~ Ricardo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile 2.2 packages
2016-09-07 16:52 Guile 2.2 packages Ludovic Courtès
2016-09-07 17:02 ` Ricardo Wurmus
@ 2016-09-07 17:45 ` Danny Milosavljevic
2016-09-07 20:49 ` Ludovic Courtès
1 sibling, 1 reply; 7+ messages in thread
From: Danny Milosavljevic @ 2016-09-07 17:45 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
Hi Ludo,
does that mean we can fix guile-emacs?
I've just updated to the latest version that is in Guix and I get:
Throw to key system-error with args ("load-thunk-from-memory" "A" ("No such file or directory") (2))Threads explicit registering is not previously enabled.
The same problem existed some time in the past, too. It was because of such a 2.0 vs. 2.2 module version mismatch.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile 2.2 packages
2016-09-07 17:45 ` Danny Milosavljevic
@ 2016-09-07 20:49 ` Ludovic Courtès
2016-09-07 21:15 ` Danny Milosavljevic
0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2016-09-07 20:49 UTC (permalink / raw)
To: Danny Milosavljevic; +Cc: guix-devel
Hello,
Danny Milosavljevic <dannym@scratchpost.org> skribis:
> does that mean we can fix guile-emacs?
I don’t know. What you describe sounds a lot like a search path issue.
This works well (albeit slowly):
guix environment --ad-hoc --pure guile-emacs -- emacs -q
Ludo’.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile 2.2 packages
2016-09-07 20:49 ` Ludovic Courtès
@ 2016-09-07 21:15 ` Danny Milosavljevic
2016-09-07 22:13 ` Danny Milosavljevic
2016-09-09 9:27 ` Ludovic Courtès
0 siblings, 2 replies; 7+ messages in thread
From: Danny Milosavljevic @ 2016-09-07 21:15 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
Hi,
On Wed, 07 Sep 2016 22:49:12 +0200
ludo@gnu.org (Ludovic Courtès) wrote:
> I don’t know.
>What you describe sounds a lot like a search path issue.
It is a search path issue.
Does package-for-guile-2.2 take it into account?
Your E-mail contains:
The following environment variable definitions may be needed:
export PATH="foo/bin${PATH:+:}$PATH"
export GUILE_LOAD_PATH="foo/share/guile/site/2.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.0/ccache:foo/share/guile/site/2.0${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
export GUILE_LOAD_PATH="foo/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.2/ccache:foo/share/guile/site/2.2${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
This is setting the same environment variables twice, overwriting them.
I get (for a long time already, so it's not breakage introduced by your commit here):
$ emacs
...
open("/home/dannym/.guix-profile/lib/guile/2.0/ccache/ice-9/eval.go", O_RDONLY|O_CLOEXEC) = 6
^^^
$ set |grep 2.0
...
GUILE_LOAD_COMPILED_PATH=/home/dannym/.guix-profile/lib/guile/2.0/ccache:/home/dannym/.guix-profile/share/guile/site/2.0:/run/current-system/profile/lib/guile/2.0/ccache:/run/current-system/profile/share/guile/site/2.0
GUILE_LOAD_PATH=/home/dannym/.guix-profile/share/guile/site/2.0:/run/current-system/profile/share/guile/site/2.0
$ unset GUILE_LOAD_PATH
$ export GUILE_LOAD_PATH
$ unset GUILE_LOAD_COMPILED_PATH
$ export GUILE_LOAD_COMPILED_PATH
$ emacs
<okay>
> This works well (albeit slowly):
>
> guix environment --ad-hoc --pure guile-emacs -- emacs -q
It does. I can do many things to make it temporarily work. But a normal user probably can't.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile 2.2 packages
2016-09-07 21:15 ` Danny Milosavljevic
@ 2016-09-07 22:13 ` Danny Milosavljevic
2016-09-09 9:27 ` Ludovic Courtès
1 sibling, 0 replies; 7+ messages in thread
From: Danny Milosavljevic @ 2016-09-07 22:13 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
On Wed, 7 Sep 2016 23:15:22 +0200
Danny Milosavljevic <dannym@scratchpost.org> wrote:
> export PATH="foo/bin${PATH:+:}$PATH"
> export GUILE_LOAD_PATH="foo/share/guile/site/2.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
> export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.0/ccache:foo/share/guile/site/2.0${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
> export GUILE_LOAD_PATH="foo/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
> export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.2/ccache:foo/share/guile/site/2.2${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
Hmm... or not really overwriting them. So it should work?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile 2.2 packages
2016-09-07 21:15 ` Danny Milosavljevic
2016-09-07 22:13 ` Danny Milosavljevic
@ 2016-09-09 9:27 ` Ludovic Courtès
1 sibling, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2016-09-09 9:27 UTC (permalink / raw)
To: Danny Milosavljevic; +Cc: guix-devel
Danny Milosavljevic <dannym@scratchpost.org> skribis:
> On Wed, 07 Sep 2016 22:49:12 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>> I don’t know.
>
>>What you describe sounds a lot like a search path issue.
>
> It is a search path issue.
>
> Does package-for-guile-2.2 take it into account?
>
> Your E-mail contains:
>
> The following environment variable definitions may be needed:
> export PATH="foo/bin${PATH:+:}$PATH"
> export GUILE_LOAD_PATH="foo/share/guile/site/2.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
> export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.0/ccache:foo/share/guile/site/2.0${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
> export GUILE_LOAD_PATH="foo/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
> export GUILE_LOAD_COMPILED_PATH="foo/lib/guile/2.2/ccache:foo/share/guile/site/2.2${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
>
> This is setting the same environment variables twice, overwriting them.
Yes, but that’s fine. However, the example I gave is ridiculous in that
you can’t have guile@2 and guile-next in the same profile since you
can’t have two ‘guile’ programs in the same profile. What you can do,
though, is have both guile-json and guile2.2-json in the same profile.
> I get (for a long time already, so it's not breakage introduced by your commit here):
>
> $ emacs
> ...
> open("/home/dannym/.guix-profile/lib/guile/2.0/ccache/ice-9/eval.go", O_RDONLY|O_CLOEXEC) = 6
This one was fixed by Alex Kost in
ca408580946d5a8be872f3da755112f5559a054d (in core-updates), and I pushed
a similar fix for 2.2 in master.
Hopefully that’ll solve this and similar issues.
Ludo’.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-09-09 9:28 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-07 16:52 Guile 2.2 packages Ludovic Courtès
2016-09-07 17:02 ` Ricardo Wurmus
2016-09-07 17:45 ` Danny Milosavljevic
2016-09-07 20:49 ` Ludovic Courtès
2016-09-07 21:15 ` Danny Milosavljevic
2016-09-07 22:13 ` Danny Milosavljevic
2016-09-09 9:27 ` Ludovic Courtès
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).