Now that we don't need to pass "system" arguments anymore, this thing
is *almost* obsolete. (Except for the need to handle assertion
failures, you could just do "nix-instantiate --eval-only ..." on
release.nix.)
That is, there are now distinct jobs like ‘coreutils.x86_64-linux’ and
‘coreutils.x86_64-darwin’, rather than a single job ‘coreutils’ with
multiple builds. This means that testing a job is simpler:
$ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
See https://github.com/NixOS/hydra/issues/60 for the motivation.
An aggregate is a trivial build that depends on other builds. This is
intended to provide a declarative replacement of Hydra's "view"
mechanism.
For instance, you can define an aggregate named "critical" that
depends on a selected set of jobs:
critical = releaseTools.aggregate
{ name = "foo-${tarball.version}";
members =
[ tarball
build.x86_64-linux
...
];
meta.description = "Release-critical builds";
};
The "critical" build will only succeed if all its members
(dependencies) succeed.
Without the --disable-nptl-bug-check configure option LinuxSampler
refuses to build. It seems to be a long standing bug. Despite this, I
have used LinuxSampler for over a week now and it seems OK.
libxslt has optional dependencies which may be found in /usr or
/usr/local on platforms that have a native stdenv. With those features
enabled, the build generated binaries that depend on libraries outside
of the store. In this particular case, the NixOS channel had binaries
for FreeBSD that depended on libgcrypt, apparently because that packages
happens to be installed outside of Nix on the build machine. On other
machines, however, those binaries failed with unresolvable references.
Our hard-linking code depended on md5sum, which FreeBSD doesn't have in its
system environment. To avoid that impure dependency, the hard-linking is now
done with the 'hardlink' utility from Nixpkgs.
libxslt has optional dependencies which may be found in /usr or
/usr/local on platforms that have a native stdenv. With those features
enabled, the build generated binaries that depend on libraries outside
of the store. In this particular case, the NixOS channel had binaries
for FreeBSD that depended on libgcrypt, apparently because that packages
happens to be installed outside of Nix on the build machine. On other
machines, however, those binaries failed with unresolvable references.