NXO2ZIBUSCY5RSM6IFVU2PDHM3X66F3TH6PI6DSJGUQ3DTBJEWRAC <listitem>it uses the GNU Build System, namely GNU Autoconf,and GNU Automake; for users, it means it can be installedusing the <linkxlink:href="http://www.gnu.org/prep/standards/html_node/Managing-Releases.html">usual<literal>./configure && make install</literal>procedure</link>;</listitem><listitem>it uses Gettext for internationalization;</listitem><listitem>it has a Texinfo manual, which can be rendered as PDFwith TeX.</listitem>
<listitem>it uses the GNU Build System, namely GNU Autoconf,and GNU Automake; for users, it means it can be installedusing the <linkxlink:href="http://www.gnu.org/prep/standards/html_node/Managing-Releases.html">usual<literal>./configure && make install</literal>procedure</link>;</listitem><listitem>it uses Gettext for internationalization;</listitem><listitem>it has a Texinfo manual, which can be rendered as PDFwith TeX.</listitem>
<callout arearefs='ex-hello-co-nixpkgs'><para>This specifies a function of one named arguments,<varname>nixpkgs</varname>. This function and thosedefined below is called by Hydra. Here the<varname>nixpkgs</varname> argument is meant to be acheckout of the <linkxlink:href="http://nixos.org/nixpkgs/">Nixpkgs</link>software distribution.</para><para>Hydra inspects the formal argument list of the function(here, the <varname>nixpkgs</varname> argument) and passesit the corresponding parameter specified as a build inputon Hydra's web interface. In this case, the web interfaceshould show a <varname>nixpkgs</varname> build input,which is a checkout of the Nixpkgs source code repository.</para></callout><callout arearefs='ex-hello-co-import-nixpkgs'><para>This defines a variable <varname>pkgs</varname> holdingthe set of packages provided by Nixpkgs.</para></callout>
<callout arearefs='ex-hello-co-nixpkgs'><para>This specifies a function of one named arguments,<varname>nixpkgs</varname>. This function and thosedefined below is called by Hydra. Here the<varname>nixpkgs</varname> argument is meant to be acheckout of the <linkxlink:href="http://nixos.org/nixpkgs/">Nixpkgs</link>software distribution.</para><para>Hydra inspects the formal argument list of the function(here, the <varname>nixpkgs</varname> argument) and passesit the corresponding parameter specified as a build inputon Hydra's web interface. In this case, the web interfaceshould show a <varname>nixpkgs</varname> build input,which is a checkout of the Nixpkgs source code repository.</para></callout><callout arearefs='ex-hello-co-import-nixpkgs'><para>This defines a variable <varname>pkgs</varname> holdingthe set of packages provided by Nixpkgs.</para></callout>
<callout arearefs='ex-hello-co-jobs'><para>This defines a variable holding the two Hydrajobs–an <emphasis>attribute set</emphasis> in Nix.</para></callout>
<callout arearefs='ex-hello-co-jobs'><para>This defines a variable holding the two Hydrajobs–an <emphasis>attribute set</emphasis> in Nix.</para></callout>
<callout arearefs='ex-hello-co-tarball'><para>This is the definition of the first job, named<varname>tarball</varname>. The purpose of this job is toproduce a usable source code tarball.</para></callout><callout arearefs='ex-hello-co-tarball-args'><para>The <varname>tarball</varname> takes an additionalargument called <varname>helloSrc</varname>. Again, thisargument is passed by Hydra and is meant to be a checkoutof GNU Hello's source code repository.</para></callout><callout arearefs='ex-hello-co-source-tarball'><para>The <varname>tarball</varname> job calls the<varname>sourceTarball</varname> function, which (roughly)runs <command>autoreconf && ./configure &&make dist</command> on the checkout. The<varname>buildInputs</varname> attribute specifiesadditional software dependencies for the job.</para></callout>
<callout arearefs='ex-hello-co-tarball'><para>This is the definition of the first job, named<varname>tarball</varname>. The purpose of this job is toproduce a usable source code tarball.</para></callout><callout arearefs='ex-hello-co-tarball-args'><para>The <varname>tarball</varname> takes an additionalargument called <varname>helloSrc</varname>. Again, thisargument is passed by Hydra and is meant to be a checkoutof GNU Hello's source code repository.</para></callout><callout arearefs='ex-hello-co-source-tarball'><para>The <varname>tarball</varname> job calls the<varname>sourceTarball</varname> function, which (roughly)runs <command>autoreconf && ./configure &&make dist</command> on the checkout. The<varname>buildInputs</varname> attribute specifiesadditional software dependencies for the job.</para></callout>
<callout arearefs='ex-hello-co-build'><para>This is the definition of the <varname>build</varname>job, whose purpose is to build Hello from the tarballproduced above.</para></callout><callout arearefs='ex-hello-co-build-args'><para>The <varname>build</varname> function takes two additionalparameter: <varname>tarball</varname>, which is meant tobe the result of the <varname>tarball</varname> job, and<varname>system</varname>, which should be a stringdefining the Nix system type–e.g.,<literal>"x86_64-linux"</literal>.</para><para>Again, these parameters are passed by Hydra when it calls<varname>build</varname>. Thus, they must be defined asbuild inputs in Hydra: <varname>tarball</varname> shouldhave type <literal>Build Output</literal>, its value beingthe latest output of the <varname>tarball</varname> job,and <varname>system</varname> should be a string.</para><para>The question mark after <literal>tarball</literal> and<literal>system</literal> defines default values for thesearguments, and is only useful for debugging.</para></callout><callout arearefs='ex-hello-co-nix-build'><para>The <varname>build</varname> job calls the<varname>nixBuild</varname> function, which unpacks thetarball, then runs <command>./configure && make&& make check && make install</command>.</para></callout>
<callout arearefs='ex-hello-co-build'><para>This is the definition of the <varname>build</varname>job, whose purpose is to build Hello from the tarballproduced above.</para></callout><callout arearefs='ex-hello-co-build-args'><para>The <varname>build</varname> function takes two additionalparameter: <varname>tarball</varname>, which is meant tobe the result of the <varname>tarball</varname> job, and<varname>system</varname>, which should be a stringdefining the Nix system type–e.g.,<literal>"x86_64-linux"</literal>.</para><para>Again, these parameters are passed by Hydra when it calls<varname>build</varname>. Thus, they must be defined asbuild inputs in Hydra: <varname>tarball</varname> shouldhave type <literal>Build Output</literal>, its value beingthe latest output of the <varname>tarball</varname> job,and <varname>system</varname> should be a string.</para><para>The question mark after <literal>tarball</literal> and<literal>system</literal> defines default values for thesearguments, and is only useful for debugging.</para></callout><callout arearefs='ex-hello-co-nix-build'><para>The <varname>build</varname> job calls the<varname>nixBuild</varname> function, which unpacks thetarball, then runs <command>./configure && make&& make check && make install</command>.</para></callout>
<callout arearefs='ex-hello-co-body'><para>Finally, the set of jobs is returned to Hydra, as a Nixattribute set.</para></callout>
<callout arearefs='ex-hello-co-body'><para>Finally, the set of jobs is returned to Hydra, as a Nixattribute set.</para></callout>
<!--Local Variables:indent-tabs-mode: nilispell-local-dictionary: "american"End:-->