help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: File not found during package build


From: Sarah Morgensen
Subject: Re: File not found during package build
Date: Sat, 24 Jul 2021 14:52:18 -0700

Hello,

phodina <phodina@protonmail.com> writes:

> Hi All,
>
> during package build in the phase `check` I get a strange error regarding 
> file not found.
>
> The file in question is an executable script within the directory.
>
> It must be present there as the chmod operation succeeds.
> However, invocation of make then fails as it can't find the script.
>
> phase `build' succeeded after 0.1 seconds
> starting phase `check'
> make: Entering directory 
> '/tmp/guix-build-novaboot-20210126a.drv-0/source/tests'
> ./wvtool runall ./novaboot.wv ./parser.wv ./expect.wv ./server.wv ./uboot.wv
> make: ./wvtool: No such file or directory
> make: *** [Makefile:6: all] Error 127

The issue here is that wvtool begins with the shebang

  #!/usr/bin/env python3

so you'll need python in native-inputs.

>
> ---
> (define-public novaboot
> (package
>   (name "novaboot")
>   (version "20210126a")
>   (source (origin
>             (method git-fetch)
>             (uri
>             (git-reference
>               (url "https://github.com/wentasah/novaboot";)
>               (commit version)))
>             (sha256
>              (base32
>               "1xwgxpngjp345fg4xmacyxm21wqvx4h6n6b51wnvivvzjj9vga4z"))))
>   (build-system gnu-build-system)
>   (inputs `(("perl" ,perl) ("perl-expect" ,perl-expect)))
>   (arguments
>     '(#:phases (modify-phases %standard-phases
>               (delete 'configure)
>                (add-before 'build 'set-prefix-in-makefile
>                     (lambda* (#:key outputs #:allow-other-keys)
>                      (let ((out (assoc-ref outputs "out")))
>                         (substitute* "Makefile"
>                           (("PREFIX=.*")
>                            (string-append "PREFIX="
>                                            "\n")))
>                       (substitute* "Makefile"
>                                    (("DESTDIR=.*")
>                                     (string-append "DESTDIR=" out "\n"))))
>                     ))
>                (replace 'check
>                            (lambda* (#:key outputs #:allow-other-keys)
>                                     (chdir "tests")
>                                    (chmod "wvtool" #o555)
>                                    (invoke "make"))))))

Also, the main Makefile has a 'test' target so you can just use

  #:test-target "test"

in arguments rather than replacing the check phase.

>   (synopsis "A tool that automates booting of operating systems on target 
> hardware or in qemu")
>   (description "Novaboot is a tool that automates booting of operating 
> systems on target hardware (typically embedded boards) or in Qemu. Initially, 
> it was developed to boot NOVA Microhypervisor (hence the name), but nowadays 
> is well suited for booting Linux (and perhaps other OSes) too.")
>   (home-page "https://github.com/wentasah/novaboot";)
>   (license license:gpl2)))

Hope that helps,
Sarah



reply via email to

[Prev in Thread] Current Thread [Next in Thread]