diff --git a/doc/manual/installation.xml b/doc/manual/installation.xml index 3234efc7..4717bb0d 100644 --- a/doc/manual/installation.xml +++ b/doc/manual/installation.xml @@ -14,13 +14,13 @@ To install and use Hydra you need to have installed the following dependencies: - Nix - either PostgreSQL or SQLite - many Perl packages, notably Catalyst, EmailSender, + Nix + either PostgreSQL or SQLite + many Perl packages, notably Catalyst, EmailSender, and NixPerl (see the Hydra expression in Nixpkgs for the complete - list). + list) At the moment, Hydra runs only on GNU/Linux @@ -46,13 +46,13 @@ - Of course we think it is a good idea to use the NixOS GNU/Linux distribution - for your buildfarm server. But this is not a requirement. The - Nix software deployment system can be installed on any GNU/Linux - distribution in parallel to the regular package management - system. Thus, you can use Hydra on a Debian, Fedora, SuSE, or - Ubuntu system. + Of course we think it is a good idea to use the NixOS GNU/Linux + distribution for your buildfarm server. But this is not a + requirement. The Nix software deployment system can be + installed on any GNU/Linux distribution in parallel to the + regular package management system. Thus, you can use Hydra on a + Debian, Fedora, SuSE, or Ubuntu system. diff --git a/doc/manual/projects.xml b/doc/manual/projects.xml index 5e876fb2..b2479046 100644 --- a/doc/manual/projects.xml +++ b/doc/manual/projects.xml @@ -30,9 +30,9 @@ Here's what we fill in for the patchelf project: - - Identifier: patchelf - + +Identifier: patchelf + The identifier is the identity of the project. It is used in URLs and in the names of build results. @@ -54,27 +54,27 @@ DBIx::Class::ResultSet::create(): DBI Exception: DBD::SQLite::st execute failed: Job sets can be added once the project has been created. - Display name: Patchelf +Display name: Patchelf The display name is used in menus. - Description: A tool for modifying ELF binaries +Description: A tool for modifying ELF binaries The description is used as short documentation of the nature of the project. - Owner: eelco +Owner: eelco The owner of a project can create and edit job sets. - Enabled: Yes +Enabled: Yes Only if the project is enabled are builds @@ -102,9 +102,9 @@ DBIx::Class::ResultSet::create(): DBI Exception: DBD::SQLite::st execute failed: the following "Information": - Identifier: trunk - Description: Trunk - Nix expression: release.nix in input patchelfSrc +Identifier: trunk +Description: Trunk +Nix expression: release.nix in input patchelfSrc This states that in order to build the trunk @@ -122,14 +122,14 @@ DBIx::Class::ResultSet::create(): DBI Exception: DBD::SQLite::st execute failed: be added. For patchelf we declare the following inputs. - patchelfSrc - 'Subversion checkout' https://svn.nixos.org/repos/nix/patchelf/trunk +patchelfSrc + 'Subversion checkout' https://svn.nixos.org/repos/nix/patchelf/trunk - nixpkgs 'Subversion checkout' https://svn.nixos.org/repos/nix/nixpkgs/trunk +nixpkgs 'Subversion checkout' https://svn.nixos.org/repos/nix/nixpkgs/trunk - officialRelease Boolean false +officialRelease Boolean false - system String value "i686-linux" +system String value "i686-linux" @@ -207,7 +207,7 @@ let let pkgs = import nixpkgs { inherit system; }; in pkgs.releaseTools.nixBuild { - name = "hello" ; + name = "hello"; src = tarball; configureFlags = [ "--disable-silent-rules" ]; }; @@ -375,16 +375,16 @@ in To evaluate the tarball jobset of , 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 nixpkgs argument of the Nix expression. @@ -407,15 +407,15 @@ in $HOME/src/nixpkgs, the 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 tarball job, rebuilding it only if it needs to. @@ -443,18 +443,19 @@ in produces an HTML code coverage report directly readable from the corresponding Hydra build page: - - coverage = - { tarball ? jobs.tarball {} - , system ? builtins.currentSystem - }: + +coverage = + { tarball ? jobs.tarball {} + , system ? builtins.currentSystem + }: - let pkgs = import nixpkgs { inherit system; }; in - pkgs.releaseTools.coverageAnalysis { - name = "hello" ; - src = tarball; - configureFlags = [ "--disable-silent-rules" ]; - }; + let pkgs = import nixpkgs { inherit system; }; in + pkgs.releaseTools.coverageAnalysis { + name = "hello"; + src = tarball; + configureFlags = [ "--disable-silent-rules" ]; + }; + As can be seen, the only difference compared to build is the use of @@ -479,22 +480,23 @@ in overrides the relevant arguments passed to nixBuild: - - build_exotic = - { tarball ? jobs.tarball {} - , system ? builtins.currentSystem - }: + +build_exotic = + { tarball ? jobs.tarball {} + , system ? builtins.currentSystem + }: - let - pkgs = import nixpkgs { inherit system; }; - build = jobs.build { inherit tarball system; }; - in - pkgs.lib.overrideDerivation build (attrs: { - buildInputs = [ pkgs.gcc33 ]; - preConfigure = "gcc --version"; - configureFlags = - attrs.configureFlags ++ [ "--disable-nls" ]; - }); + let + pkgs = import nixpkgs { inherit system; }; + build = jobs.build { inherit tarball system; }; + in + pkgs.lib.overrideDerivation build (attrs: { + buildInputs = [ pkgs.gcc33 ]; + preConfigure = "gcc --version"; + configureFlags = + attrs.configureFlags ++ [ "--disable-nls" ]; + }); + The build_exotic job reuses build and overrides some of its arguments: it