Subject: bug#18033: Add support for 'search-path-specifications' referring to files

From: Mark H Weaver <[email-masked]>
Date: Fri, 02 Jan 2015 18:30:45 -0500

Hi Ludovic,

[email-masked] (Ludovic Courtès) writes:

> Commit af07095 extends ‘search-path-specification’ with a ‘file-type’
> field, which can be 'regular.
>
> Then, commit 7b21fe5 adds a ‘file-pattern’ field, to look for files
> matching a pattern recursively.
>
> Lastly, commit 2a8d440 uses these features for libxml2 and
> $XML_CATALOG_FILES.
>
> Comments welcome!

Something seems to have gone wrong here.  Trying to build 'emacs' on
current 'core-updates' (bf0baaf) on i686, I get this:

--8<---------------cut here---------------start------------->8---
mhw:~/guix-core-updates$ git describe
v0.8-499-gbf0baaf
mhw:~/guix-core-updates$ ./pre-inst-env guile
GNU Guile 2.0.11
Copyright (C) 1995-2014 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> ,use (guix scripts build)
scheme@(guile-user)> (guix-build "emacs")
ERROR: In procedure concatenate:
ERROR: In procedure append: Wrong type argument in position 23 (expecting empty list): #<<search-path-specification> variable: "XML_CATALOG_FILES" files: ("xml") separator: " " file-type: regular file-pattern: "^catalog\\.xml$">

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]> ,bt
In ice-9/boot-9.scm:
   157:17 33 (catch srfi-34 #<procedure 92450a0 at guix/ui.scm:218:2 ()> #<procedure 927b2c0 at guix/ui.scm:218:2 (key c)> #)
   157:17 32 (catch system-error #<procedure 92450b0 at guix/scripts/build.scm:416:2 ()> #<procedure 927b300 at guix/ui.s…> …)
In guix/scripts/build.scm:
    420:6 31 (#<procedure 92450b0 at guix/scripts/build.scm:416:2 ()>)
    318:6 30 (options->derivations #<build-daemon 256.14 9211ae0> ((argument . "emacs") (system . "i686-linux") (# . #t) …))
In srfi/srfi-1.scm:
   664:12 29 (filter-map #<procedure 9e01a60 at guix/scripts/build.scm:318:18 (expr)> ((argument . #<package emacs-24.…>) …))
In guix/packages.scm:
   620:14 28 (cache #<package emacs-24.4 gnu/packages/emacs.scm:57 98f2060> ("i686-linux" . #t) #<procedure thunk ()>)
   869:10 27 (thunk)
    801:6 26 (bag->derivation #<build-daemon 256.14 9211ae0> #<<bag> name: "emacs-24.4" system: "i686-linux" target: #f b…> …)
In srfi/srfi-1.scm:
   578:27 25 (map #<procedure 9a5c498 at guix/packages.scm:803:30 (t-8656)> (("glib:bin" #<package glib-2.42.1 gnu/pa…>) …))
In guix/packages.scm:
   662:16 24 (expand-input #<build-daemon 256.14 9211ae0> #<package emacs-24.4 gnu/packages/emacs.scm:57 98f2060> ("gl…" …) …)
   620:14 23 (cache #<package glib-2.42.1 gnu/packages/glib.scm:120 99234e0> ("i686-linux" . #f) #<procedure thunk ()>)
   869:10 22 (thunk)
    801:6 21 (bag->derivation #<build-daemon 256.14 9211ae0> #<<bag> name: "glib-2.42.1" system: "i686-linux" target: #f …> …)
In srfi/srfi-1.scm:
   578:27 20 (map #<procedure 9a5c408 at guix/packages.scm:803:30 (t-8656)> (("source" #<origin "mirror://gnome/sourc…>) …))
In guix/packages.scm:
   662:16 19 (expand-input #<build-daemon 256.14 9211ae0> #<package glib-2.42.1 gnu/packages/glib.scm:120 99234e0> ("d…" …) …)
   620:14 18 (cache #<package dbus-1.8.12 gnu/packages/glib.scm:58 9923540> ("i686-linux" . #f) #<procedure thunk ()>)
   869:10 17 (thunk)
    801:6 16 (bag->derivation #<build-daemon 256.14 9211ae0> #<<bag> name: "dbus-1.8.12" system: "i686-linux" target: #f …> …)
In srfi/srfi-1.scm:
   578:27 15 (map #<procedure a00e390 at guix/packages.scm:803:30 (t-8656)> (("source" #<origin "http://dbus.freedesk…>) …))
In guix/packages.scm:
   662:16 14 (expand-input #<build-daemon 256.14 9211ae0> #<package dbus-1.8.12 gnu/packages/glib.scm:58 9923540> ("li…" …) …)
   620:14 13 (cache #<package libx11-1.6.2 gnu/packages/xorg.scm:4501 999ba20> ("i686-linux" . #f) #<procedure thunk ()>)
   869:10 12 (thunk)
    801:6 11 (bag->derivation #<build-daemon 256.14 9211ae0> #<<bag> name: "libx11-1.6.2" system: "i686-linux" target: #f…> …)
In srfi/srfi-1.scm:
   576:29 10 (map #<procedure a1ec390 at guix/packages.scm:803:30 (t-8656)> (("source" #<origin "mirror://xorg/indivi…>) …))
In guix/packages.scm:
   662:16  9 (expand-input #<build-daemon 256.14 9211ae0> #<package libx11-1.6.2 gnu/packages/xorg.scm:4501 999ba20> (# #) …)
   620:14  8 (cache #<package libxcb-1.11 gnu/packages/xorg.scm:4370 999bae0> ("i686-linux" . #f) #<procedure thunk ()>)
   869:10  7 (thunk)
    801:6  6 (bag->derivation #<build-daemon 256.14 9211ae0> #<<bag> name: "libxcb-1.11" system: "i686-linux" target: #f …> …)
In srfi/srfi-1.scm:
   578:27  5 (map #<procedure a388c00 at guix/packages.scm:803:30 (t-8656)> (("source" #<origin "mirror://xorg/indivi…>) …))
In guix/packages.scm:
   662:16  4 (expand-input #<build-daemon 256.14 9211ae0> #<package libxcb-1.11 gnu/packages/xorg.scm:4370 999bae0> ("…" …) …)
   620:14  3 (cache #<package libxslt-1.1.28 gnu/packages/xml.scm:106 9963c00> ("i686-linux" . #f) #<procedure thunk ()>)
   869:10  2 (thunk)
   806:26  1 (bag->derivation #<build-daemon 256.14 9211ae0> #<<bag> name: "libxslt-1.1.28" system: "i686-linux" target: …> …)
In unknown file:
           0 (concatenate (() () () () () () () () () () () () () () () () () (#<<search-path-specification> variabl…> …) …))
scheme@(guile-user) [1]>
--8<---------------cut here---------------end--------------->8---

      Mark