Subject: reference to inferior causing recursive guix repl call overloading machine

From: Martin Flack <[email-masked]>
Date: Sat, 9 Mar 2019 19:39:57 -0800

I'm attempting to work around Bug 34426 locally, temporarily, until it is
fixed. From Björn's comment, it seemed that the inferiors feature could get
xmlsec functional again.

I attempted this to include this file in GUIX_PACKAGE_PATH:

```
;;; per https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34426
;;; refer to older gnutls in xmlsec build and gnucash should pick it up

(define-module (my-gnucash)
  #:use-module (guix inferior)
  #:use-module (guix channels)
  #:use-module (srfi srfi-1))

(define channels
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git")
         (commit "cc2e0566be1c2fa632fc3cc4e6cf705c665aa0d2"))))

(define inferior
  (inferior-for-channels channels))

(define-public gnutls-works
  (first (lookup-inferior-packages inferior "gnutls")))

(define-public xmlsec
  (package
    (name "xmlsec")
    (version "1.2.27")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://www.aleksey.com/xmlsec/download/"
                                  "xmlsec1-" version ".tar.gz"))
              (sha256
               (base32
                "1dlf263mvxj9n4lnhhjawc2hv45agrwjf8kxk7k8h9g9v2x5dmwp"))))
    (build-system gnu-build-system)
    (propagated-inputs                  ; according to xmlsec1.pc
     `(("libxml2" ,libxml2)
       ("libxslt" ,libxslt)))
    (inputs
     `(("gnutls" ,gnutls-works)
       ("libgcrypt" ,libgcrypt)
       ("libltdl" ,libltdl)))
    (native-inputs
     `(("pkg-config" ,pkg-config)))
    (home-page "https://www.aleksey.com/xmlsec/")
    (synopsis "XML Security Library")
    (description
     "The XML Security Library is a C library based on Libxml2.  It
supports XML security standards such as XML Signature, XML Encryption,
Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
Libxml2).")
    (license (license:x11-style "file://COPYING"
                                "See 'COPYING' in the distribution."))))
```

I then executed a guix pull but needed to break it, due to massive RAM
usage.

```
Updating channel 'guix' from Git repository at '
https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git 2b613a1
;;; note: source file /home/mflack/src/guix/fixes/my-gnucash.scm
;;;       newer than compiled
/home/mflack/.cache/guile/ccache/2.2-LE-8-3.A/home/mflack/src/guix/fixes/my-gnucash.scm.go
Updating channel 'guix' from Git repository at '
https://git.savannah.gnu.org/git/guix.git'...
^C
```

A ps command showed things were going recursively out of hand:

```
  PID TTY      STAT   TIME COMMAND
...
13012 pts/1    Ss     0:00      \_ -zsh
13173 pts/1    Sl+    0:01      |   \_
/gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4/bin/guile
--no-auto-compile
/gnu/store/b4khxdizs6d865mrplbjvr22dz86mra3-profile/bin/guix pull
13187 pts/1    Sl+    0:00      |       \_
/gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4/bin/guile
--no-auto-compile
/home/mflack/.cache/guix/inferiors/spq524ihiy7puxwygqgkxc5x5cxigodu4tl7zbwdznu6osps5g7a/bin/guix
repl -t machine
13204 pts/1    Sl+    0:00      |           \_
/gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4/bin/guile
--no-auto-compile
/home/mflack/.cache/guix/inferiors/spq524ihiy7puxwygqgkxc5x5cxigodu4tl7zbwdznu6osps5g7a/bin/guix
repl -t machine
13214 pts/1    Sl+    0:00      |               \_
/gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4/bin/guile
--no-auto-compile
/home/mflack/.cache/guix/inferiors/spq524ihiy7puxwygqgkxc5x5cxigodu4tl7zbwdznu6osps5g7a/bin/guix
repl -t machine
[... 593 further nesting lines ending in repl -t machine ...]
```

```
$ guix --version
guix (GNU Guix) 2b613a1a5d4d41b0b5d1f6ea7254585be0c209fa
Copyright (C) 2019 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
```

Thanks!

-- 

Martin