From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Baines Subject: Re: Using the Guile json module in a gexp Date: Tue, 12 Sep 2017 19:49:33 +0100 Message-ID: <20170912194933.15ddc035@cbaines.net> References: <20170911075841.13e75eb9@cbaines.net> <87377ta0y5.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/OT+ydDvTH9_EHWXOub.sdZ4"; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59287) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1drqFe-000571-Vs for help-guix@gnu.org; Tue, 12 Sep 2017 14:49:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1drqFb-0006IS-QF for help-guix@gnu.org; Tue, 12 Sep 2017 14:49:39 -0400 In-Reply-To: <87377ta0y5.fsf@gnu.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Ludovic =?UTF-8?B?Q291cnTDqHM=?= Cc: help-guix@gnu.org --Sig_/OT+ydDvTH9_EHWXOub.sdZ4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, 11 Sep 2017 14:12:34 +0200 ludo@gnu.org (Ludovic Court=C3=A8s) wrote: > Hello! >=20 > Christopher Baines skribis: >=20 > > So I'm having some trouble using the Guile json module in a gexp. > > I've added (with-imported-modules '((json)) ...), and the > > module-import-compiled builder crashes. > > > > Backtrace: > > 4 (primitive-load > > "/gnu/store/35zv0m9wwd2nz3agyywv09d3k5v?") In srfi/srfi-1.scm: > > 640:9 3 (for-each # > ice-9/eval.scm:333:13 ?> ?) In ice-9/eval.scm: > > 245:16 2 (_ #(#(# "/gn?") > > #)) In ice-9/boot-9.scm: > > 1519:24 1 (_ "./json.scm") > > In unknown file: > > 0 (stat "./json.scm" #) > > > > ERROR: In procedure stat: > > ERROR: In procedure stat: No such file or directory: "./json.scm" =20 >=20 > This would have the effect of importing the (json) module of the host > environment into the build environment, which is not desirable for a > couple of reasons: >=20 > 1. It would require having Guile-JSON installed in the host > environment, and the right version of it. >=20 > 2. It would hinder reproducibility since different users may have > different Guile-JSON variants installed on the host side. >=20 > To overcome this, you have to do like (guix scripts package) does: >=20 > #~(begin > (add-to-load-path #$(file-append guile-json > "/share/guile/site/" > (effective-version))) > =E2=80=A6) >=20 > It would be nice to simplify this somehow, though. Awesome, thanks Ludo. Your explaination makes lots of sense, and the approach you suggested worked perfectly :) --Sig_/OT+ydDvTH9_EHWXOub.sdZ4 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlm4LD1fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE 9XcTKg//bf0IcMEFtK773qE86tUkNwTli2saB/KY9U7eqWvgYk4svS8b6QQEdVaD zKlgwhX91dQtTYXB66rMYv2nF3SXCAShkc5/YeXWwte7zpD7CXP3qMJZXgfKyLzd W+tJvWftuMNsfBVxZj3y76M7agcZijNSfurQbCW5LjVxz4vaUsDZuUvDkcgJzNT3 UNA9D7ylfvzaAaK80n1nL51rKqa60bW6COlwV9LfuyU+5N4OHTJbLKIy6PRA+2K0 HQ4xjpBQElnp5csn5wGMF7zxg5UDv4aGGYEHKeXAZjuLiLcILFbtxVrcd5+fm2Df XvQeErn56WR0FNlE43cc3/VgH3M6WhOol0UGL5F6l/RoFQvrxA5g0c1LROX+ZYia M0AY7udv4+R/IxeyF1gEQQ7RQPDWA4bvddRsqAmvwOTt91gazcM+wdZKWHvQf/3S sg/lCpIMjeDNR24PTQgIy18+zFp+UQ74yzHhabUmlfnxhKJuhW2QQ8fozEXwlNBu P7dD3mqxXTbC7El+6qlLM3mEjuYjKcwb4gf5jPjSAb2B78trR/Ha2t7uhTvbJM9B Mfqm4oa9XCI6xpG5qY741X8uT6HfxZWKjyGOlGhkwD4xLhZKY8AyQ022eFzy4F7M JyyojLAtWdBte3iyooMTvt2fSYW4czEsjjWGMkjyyXJkAJB7K0s= =DsV+ -----END PGP SIGNATURE----- --Sig_/OT+ydDvTH9_EHWXOub.sdZ4--