Hi (, thanks a lot. Nope, that's not quite correct. Your ARGUMENTS should look like this: > > (arguments > (list #:phases > #~(modify-phases %standard-phases > (add-after 'unpack 'unpack-extra-sources > (lambda _ > (copy-recursively #+xenomai-origin > "extra-source-directory")))))) > > You can think of ARGUMENTS as a bunch of keyword arguments to pass to the > procedure that runs the build. >
With this modification it almost works ;-) The tar.bz2 file is downloaded in the store as file, and then copied in the build directory with the name "extra-source-directory" (but it is not a directory) You've seen a ``.drv'' path being printed out by the CLI, right? They > contain > instructions to build a store item. Packages are /lowered/ into > DERIVATIONs, > but so are ORIGINs, LOCAL-FILEs, COMPUTED-FILEs, and any other kind of > "file-like object" or "lowerable object", such as the object you create > with > FILE-APPEND. The thing they all have it common is that they all have a > lowering > procedure defined using DEFINE-GEXP-COMPILER; you can see a few examples > of that > in ``guix/gexp.scm'' and ``guix/packages.scm''. So, you can use UNGEXP and > UNGEXP-NATIVE on anything that has been DEFINE-GEXP-COMPILERed, and its > derivation will be built and its store path substituted. > > -- ( > Now it's a little bit more clear, but for sure I have to practice more before fully understand the type of "things" I'm using in the code. Regards
