diff --git a/doc/manual/projects.xml b/doc/manual/projects.xml index cd084666..563c5a51 100644 --- a/doc/manual/projects.xml +++ b/doc/manual/projects.xml @@ -225,16 +225,16 @@ in and non-GNU free software projects: - it uses the GNU Build System, namely GNU Autoconf, - and GNU Automake; for users, it means it can be installed - using the usual - ./configure && make install - procedure; - - it uses Gettext for internationalization; - it has a Texinfo manual, which can be rendered as PDF - with TeX. + it uses the GNU Build System, namely GNU Autoconf, + and GNU Automake; for users, it means it can be installed + using the usual + ./configure && make install + procedure; + + it uses Gettext for internationalization; + it has a Texinfo manual, which can be rendered as PDF + with TeX. The file defines a jobset consisting of two jobs: @@ -244,110 +244,110 @@ in - - - This specifies a function of one named arguments, - nixpkgs. This function and those - defined below is called by Hydra. Here the - nixpkgs argument is meant to be a - checkout of the Nixpkgs - software distribution. - - - Hydra inspects the formal argument list of the function - (here, the nixpkgs argument) and passes - it the corresponding parameter specified as a build input - on Hydra's web interface. In this case, the web interface - should show a nixpkgs build input, - which is a checkout of the Nixpkgs source code repository. - - - - - This defines a variable pkgs holding - the set of packages provided by Nixpkgs. - - + + + This specifies a function of one named arguments, + nixpkgs. This function and those + defined below is called by Hydra. Here the + nixpkgs argument is meant to be a + checkout of the Nixpkgs + software distribution. + + + Hydra inspects the formal argument list of the function + (here, the nixpkgs argument) and passes + it the corresponding parameter specified as a build input + on Hydra's web interface. In this case, the web interface + should show a nixpkgs build input, + which is a checkout of the Nixpkgs source code repository. + + + + + This defines a variable pkgs holding + the set of packages provided by Nixpkgs. + + - - - This defines a variable holding the two Hydra - jobs–an attribute set in Nix. - - + + + This defines a variable holding the two Hydra + jobs–an attribute set in Nix. + + - - - This is the definition of the first job, named - tarball. The purpose of this job is to - produce a usable source code tarball. - - - - - The tarball takes an additional - argument called helloSrc. Again, this - argument is passed by Hydra and is meant to be a checkout - of GNU Hello's source code repository. - - - - - The tarball job calls the - sourceTarball function, which (roughly) - runs autoreconf && ./configure && - make dist on the checkout. The - buildInputs attribute specifies - additional software dependencies for the job. - - + + + This is the definition of the first job, named + tarball. The purpose of this job is to + produce a usable source code tarball. + + + + + The tarball takes an additional + argument called helloSrc. Again, this + argument is passed by Hydra and is meant to be a checkout + of GNU Hello's source code repository. + + + + + The tarball job calls the + sourceTarball function, which (roughly) + runs autoreconf && ./configure && + make dist on the checkout. The + buildInputs attribute specifies + additional software dependencies for the job. + + - - - This is the definition of the build - job, whose purpose is to build Hello from the tarball - produced above. - - - - - The build function takes two additional - parameter: tarball, which is meant to - be the result of the tarball job, and - system, which should be a string - defining the Nix system type–e.g., - "x86_64-linux". - - - Again, these parameters are passed by Hydra when it calls - build. Thus, they must be defined as - build inputs in Hydra: tarball should - have type Build Output, its value being - the latest output of the tarball job, - and system should be a string. - - - The question mark after tarball and - system defines default values for these - arguments, and is only useful for debugging. - - - - - The build job calls the - nixBuild function, which unpacks the - tarball, then runs ./configure && make - && make check && make install. - - + + + This is the definition of the build + job, whose purpose is to build Hello from the tarball + produced above. + + + + + The build function takes two additional + parameter: tarball, which is meant to + be the result of the tarball job, and + system, which should be a string + defining the Nix system type–e.g., + "x86_64-linux". + + + Again, these parameters are passed by Hydra when it calls + build. Thus, they must be defined as + build inputs in Hydra: tarball should + have type Build Output, its value being + the latest output of the tarball job, + and system should be a string. + + + The question mark after tarball and + system defines default values for these + arguments, and is only useful for debugging. + + + + + The build job calls the + nixBuild function, which unpacks the + tarball, then runs ./configure && make + && make check && make install. + + - - - Finally, the set of jobs is returned to Hydra, as a Nix - attribute set. - - + + + Finally, the set of jobs is returned to Hydra, as a Nix + attribute set. + + @@ -368,14 +368,14 @@ in linkend='ex-hello' />, just run: - $ nix-build release.nix -A tarball + $ nix-build release.nix -A tarball However, doing this with as is will probably yield an error like this: - error: cannot auto-call a function that has an argument without a default value (`nixpkgs') + error: cannot auto-call a function that has an argument without a default value (`nixpkgs') This is because no value was specified for the @@ -400,13 +400,13 @@ in tarball jobset can now be evaluated by running: - $ nix-build -I ~/src release.nix -A tarball + $ nix-build -I ~/src release.nix -A tarball Similarly, the build jobset can be evaluated: - $ nix-build -I ~/src release.nix -A build + $ nix-build -I ~/src release.nix -A build The build job reuses the result of the @@ -483,9 +483,9 @@ in in pkgs.lib.overrideDerivation build (attrs: { buildInputs = [ pkgs.gcc33 ]; - preConfigure = "gcc --version"; - configureFlags = - attrs.configureFlags ++ [ "--disable-nls" ]; + preConfigure = "gcc --version"; + configureFlags = + attrs.configureFlags ++ [ "--disable-nls" ]; }); The build_exotic job reuses @@ -506,3 +506,10 @@ in + +