Hello, phodina <phod...@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