[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#42164: Combining file-append with gexps results in incomprehensible
From: |
Jakub Kądziołka |
Subject: |
bug#42164: Combining file-append with gexps results in incomprehensible errors |
Date: |
Thu, 2 Jul 2020 14:00:29 +0200 |
Consider this minimal operating-system definition:
(use-modules (gnu))
(use-package-modules gcc)
(operating-system
(host-name "test")
(timezone "UTC")
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")))
(file-systems (cons*
(file-system
(device (file-system-label "root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))
(packages '())
(services (cons*
(service special-files-service-type
`(("/lib64" ,(directory-union "rustup-libs"
(list
(file-append glibc "/lib")
(file-append #~#$gcc:lib "/lib"))))))
%base-services)))
I would expect this way of specifying a specific output of a package to
work, but it results in the following error:
ice-9/boot-9.scm:1515:18: object is not an exception of the right type
#<&gexp-input-error input: #<gexp #<gexp-input #<package gcc@7.5.0
gnu/packages/gcc.scm:520 7f06c996c960>:lib> 7f06c6b06990>> #<record-type
&package-input-error>
This also happens when I omit the directory-union:
(service special-files-service-type
`(("/lib64" ,(file-append #~#$gcc:lib "/lib"))))
What *does* work, is this variant with string-append:
(service special-files-service-type
`(("/lib64" ,#~(string-append #$gcc:lib "/lib"))))
However, using it in the directory-union breaks again:
(service special-files-service-type
`(("/lib64" ,(directory-union "rustup-libs"
(list
(file-append glibc "/lib")
#~(string-append #$gcc:lib "/lib"))))))
ERROR: In procedure opendir:
Wrong type (expecting string): (string-append
"/gnu/store/mdxmdhrlkgdik6ay9pzmmy8mjcbibpwb-gcc-7.5.0-lib" "/lib")
builder for `/gnu/store/p5hf7hqxn35fgsb75s5i7326vyzb8jkr-rustup-libs.drv'
failed with exit code 1
I have figured out that the following does work:
(service special-files-service-type
`(("/lib64" ,#~(directory-union "rustup-libs"
(list
(string-append #$glibc "/lib")
(string-append #$gcc:lib "/lib"))))))
However, I would expect the other variants to work as well. The
documentation and error messages are lacking in this regard.
Regards,
Jakub Kądziołka
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#42164: Combining file-append with gexps results in incomprehensible errors,
Jakub Kądziołka <=