From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Marusich Subject: bug#29774: Compilation error on git master: `gzip: unbound variable` Date: Sun, 28 Jan 2018 02:12:50 -0800 Message-ID: <874ln6s34t.fsf@garuda.local.i-did-not-set--mail-host-address--so-tickle-me> References: Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1efjyQ-0001vR-1n for bug-guix@gnu.org; Sun, 28 Jan 2018 05:14:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1efjyM-0006ca-N4 for bug-guix@gnu.org; Sun, 28 Jan 2018 05:14:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:37817) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1efjyM-0006cM-IY for bug-guix@gnu.org; Sun, 28 Jan 2018 05:14:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1efjyM-0007uM-7I for bug-guix@gnu.org; Sun, 28 Jan 2018 05:14:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: (pkill9@runbox.com's message of "Thu, 28 Dec 2017 23:15:34 +0000 (GMT)") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: pkill9@runbox.com Cc: 29774@debbugs.gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable writes: >> Compiling Scheme modules... >> >> ... >> >> LOAD guix/scripts/pack.scm >> Backtrace: >> In ice-9/r4rs.scm: >> 90: 19 [dynamic-wind # = ...] >> 90: 18 [dynamic-wind # = ...] >> In ice-9/eval.scm: >> 432: 17 [eval # #] >> 432: 16 [eval # #] >> 481: 15 [lp (#) (#)] >> In ice-9/boot-9.scm: >> 2864: 14 [resolve-interface (guix scripts pack) #:select ...] >> 2789: 13 [# # ...] >> 3065: 12 [try-module-autoload (guix scripts pack) #f] >> 2401: 11 [save-module-excursion #] >> 3085: 10 [#] >> In unknown file: >> ?: 9 [primitive-load-path "guix/scripts/pack" ...] >> In ice-9/eval.scm: >> 453: 8 [eval # ()] >> 387: 7 [eval # ()] >> 387: 6 [eval # ()] >> 387: 5 [eval # ()] >> 387: 4 [eval # ()] >> 387: 3 [eval # ()] >> 387: 2 [eval # ()] >> 393: 1 [eval # ()] >> In unknown file: >> ?: 0 [memoize-variable-access! # #] >>=20=20 >> ERROR: In procedure memoize-variable-access!: >> ERROR: gzip: unbound variable I can reproduce this error when attempting to build Guix 0.14.0 from source, using system-provided and custom built dependencies. I cannot reproduce it when using Guix-provided dependencies (e.g., by running 'guix environment guix' and then manually building it). I may have a work-around for you. Let me know if it works. Please try the following: 1) Run a command like "make V=3D1". Because Guix uses GNU Automake, you can get verbose output by adding "V=3D1" to the command ((automake) Automake Silent Rules). This will cause make to print the commands that are being run. 2) Find the exact "compile-all.scm" invocation being used (it should appear right after the string "Compiling Scheme modules..." in the build output). Copy it and run it manually from the root of the build directory (i.e., the directory containing the "configure" script), but instead of passing it all the .scm files, only pass it the single file guix/scripts/pack.scm. 3) If (2) succeeds in building the pack.go file, try running "make" again. Because the pack.go file is newer than the pack.scm file, it won't need to be built again, which should allow you to bypass this specific problem. This worked for me, so I hope it works for you. Why does it work? Well, the problem you observed occurs when running the make-go target of the Makefile, which does the following (this is from the Makefile.am file, which is used to produce the Makefile): =2D-8<---------------cut here---------------start------------->8--- make-go: $(MODULES) guix/config.scm $(dist_noinst_DATA) $(AM_V_at)echo "Compiling Scheme modules..." ; \ unset GUILE_LOAD_COMPILED_PATH ; \ XDG_CACHE_HOME=3D/nowhere \ host=3D$(host) srcdir=3D"$(top_srcdir)" = \ $(top_builddir)/pre-inst-env \ $(GUILE) -L "$(top_builddir)" -L "$(top_srcdir)" \ --no-auto-compile \ -s "$(top_srcdir)"/build-aux/compile-all.scm $^ =2D-8<---------------cut here---------------end--------------->8--- Here, we are running build-aux/compile-all.scm on all the modules in a single invocation. The script compile-all.scm compiles all the .scm files it receives as arguments into .go files. When it runs, it only compiles a .go file if the .go file doesn't exist or the corresponding .scm file is newer. It seems this problem has something to do with memoizing the gzip variable while compiling many different modules in one run. By only running compile-all.scm on the single module pack.scm, it seems that we can avoid whatever condition is causing the problem to occur. As for what the actual issue is... I don't know. If somebody could create a minimal reproduction of the issue, it would help. The information above gives us an idea of where the issue is probably occurring, but it will require more work to narrow it down further. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAlptoiIACgkQ3UCaFdgi Rp1CExAAyY41xYeb8RrcDbzuAyvuJhXjZzsZJrnBqQDNkzh3gRwJqW0gSCnk7+d+ htBb9hgcQKznvg+f6oMJxMjSqv0KI5impVzkpErRwtQMKn5P3nuKx6gf9vmHasBJ QkhruoIqfN8BnTUYLxliG4Cdnh1i4ewkJA4iEfb/0/ng24YzbTcTBCaPec/PRgk6 jLeKed4EePyzVStJhRjPJgC2fIBN/sCLoGu84kd8fm5FcG8s/odJ+smWTs+hCpfd jYjELL4vHD3kE8GFW6dhyy+JXTb+uTEZZmhK4r9QzYSxYYl+YS76WMHDWXHY8pwM LzYQMxEjzvAo2xR/M5jNoEycm2QKzOlS0spqtyLDrQF4gDOUf1yD4HoMBZZKSDYS mWgoIXVD/LP+ELwPn8JmxCTnss8SQbgGptMQuGPbfnB7g/Kvlf7DM+hT/vSsZdgz mW7BOJyfVUzAfQxoW/Yzz0JJPv6ouoRIeegrCJHj5n4BoEkmipD2lFDH/pqa4H1u 1fEdBIcsNoUYWSjlTnlsS2HeHnScqKAJgDWtF7UWYi39PbctVsb9vhKrsbeMP4H4 LueSbwp0vWq1Zm76b0BafC7fExNMovDNdQYX1eJTyyAb7dcl2Ij0O5cBOA/4d67p SG4dDoogeD5NgfzKgFIDj7tGL2LWsCBkaS1gYPuDgtZ7GxwrMNs= =pP5W -----END PGP SIGNATURE----- --=-=-=--