I'm having trouble installing the `bind' package declaratively. Running `guix show bind' returns the bind package, but when I add `(gnu packages dns)' to my home-configuration.scm and the bind package to `packages' like so I run into an exception during reconfiguration: > (use-modules (gnu home) > (gnu home services) > (gnu packages) > … > (gnu packages dns)) > > (home-environment > (packages (list … > bind > …))) > (services …)
After running `guix home reconfigure ~/.config/guix-config/home-configuration.scm': > … > In gnu/home/services.scm: > 167:37 8 (_ #<store-connection 256.100 7fd2ba4d7a50>) > In guix/profiles.scm: > 439:4 7 (packages->manifest _) > In srfi/srfi-1.scm: > 586:29 6 (map1 (#<package htop@3.3.0 gnu/packages/admin.scm:8…> …)) > 586:17 5 (map1 (#<procedure bind (_ _ #:optional _ . _)> #<pa…> …)) > In guix/inferior.scm: > 560:2 4 (loop #<procedure bind (_ _ #:optional _ . _)> "out" #<…>) > 540:4 3 (inferior-package-input-field #<procedure bind (_ _ #:…> …) > 484:18 2 (inferior-package-field #<procedure bind (_ _ #:option…> …) > In ice-9/boot-9.scm: > 1685:16 1 (raise-exception _ #:continuable? _) > 1685:16 0 (raise-exception _ #:continuable? _) > > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > In procedure struct-vtable: Wrong type argument in position 1 (expecting > struct): #<procedure bind (_ _ #:optional _ . _)> It looks pretty obvious that this is having some interaction with the standard Guile `bind' procedure. Is this intended behaviour? I can imagine using `specification->package' could get around this but I wanted to hear some other opinions. Also while looking into this I found this section of the info manual that talks about an `isc-bind' package I've been unable to get Guix to find; is this a former name of the current `bind' package? Relevant info section: > Globally-Visible Packages > ------------------------- > > The ‘packages’ field lists packages that will be globally visible on the > system, for all user accounts—i.e., in every user’s ‘PATH’ environment > variable—in addition to the per-user profiles (*note Invoking guix > package::). The ‘%base-packages’ variable provides all the tools one > would expect for basic user and administrator tasks—including the GNU > Core Utilities, the GNU Networking Utilities, the ‘mg’ lightweight text > editor, ‘find’, ‘grep’, etc. The example above adds GNU Screen to > those, taken from the ‘(gnu packages screen)’ module (*note Package > Modules::). The ‘(list package output)’ syntax can be used to add a > specific output of a package: > > (use-modules (gnu packages)) > (use-modules (gnu packages dns)) > > (operating-system > ;; ... > (packages (cons (list isc-bind "utils") > %base-packages)))