[Nix-dev] Re: Tahoe-LAFS in NixOS

Ludovic Courtès ludo at gnu.org
Sat Oct 31 23:56:55 CET 2009


Hello Zooko,

Zooko Wilcox-O'Hearn <zooko at zooko.com>
writes:

> I would like to add a NixOS buildslave to our buildbot farm:
>
> http://allmydata.org/buildbot

Can you give a pointer to info on how to setup and run a buildslave?

> In a related note, how can I see the commands that the Hydra build
> executed and the output that it got from the build?  I would like to
> understand how Hydra decides if the build has succeeded.

Just in case you haven’t found them yet, there’s
http://hydra.nixos.org/job/nixpkgs/trunk/tahoe/all and now
http://hydra.nixos.org/job/nixpkgs/trunk/tahoelafs/all .

Clicking on a build allows you to see the build script output (unless
it’s been GC’d), but it doesn’t give you the exact commands that were
run.

The exact commands that were run derive from the Nix expression at [0],
which uses ‘buildPythonPackage’ from [1], which in turn uses ‘stdenv’ as
defined somewhere in [2] (depending on the system type).  In addition,
most of Tahoe’s direct dependencies are defined in [3].

[0] https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
[1] https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/development/python-modules/generic/default.nix
[2] https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/build-support/stdenv
[3] https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/top-level/python-packages.nix

Of course, if you were to analyze a build issue, I’d recommend starting
with [0], then [3], and if you need to go further, then that means
something’s really wrong.  :-)

> It would probably be good for it to decide that the build succeeded if
> "python setup.py test" exits with exit code 0.  :-)

The “doCheck = false” in [0] means that tests aren’t run.  I just
checked what prompted me to disable them; here’s the end of the log:

--8<---------------cut here---------------start------------->8---
running darcsver
setup.py darcsver: Failure from attempt to find version tags with 'darcs changes', and src/allmydata/_version.py already exists, so leaving it alone.
running develop
Checking .pth file support in support/lib/python2.5/site-packages
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 2] No such file or directory: 'support/lib/python2.5/site-packages/test-easy-install-15898.pth'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    support/lib/python2.5/site-packages

This directory does not currently exist.  Please create it and try again, or
choose a different installation directory (using the -d or --install-dir
option).

builder for `/nix/store/nglrgarfih0821rmcpwgymq4cf83cj5q-tahoe-lafs-1.5.0.drv' failed with exit code 1
--8<---------------cut here---------------end--------------->8---

It seems that ‘setuptools’ is trying to write something in a place it
isn’t allowed to.  Note that “python setup.py test” here is run before
Tahoe-LAFS is installed.  Is that a problem?  Any other idea?

(Ironically, it may be that build failure is related to the fact that
NixOS builders follow POLA whereas ‘setuptools’ expects some form of
ambient authority.)

> Also there are a couple of details that ought to be cleared up: the
> official name of the package is "tahoe-lafs", not "tahoe" (the name
> had to be changed),

OK (that wasn’t clear to me back then, and the tarball name doesn’t
actually match.)

> and the licence includes an at-your-option choice of either GPL
> version 2 or greater or TGPPL version 1 or greater. See
> http://allmydata.org/source/tahoe/trunk/docs/about.html for details
> about that.

That should be fixed now:

  https://svn.nixos.org/websvn/nix/nixpkgs/trunk/?rev=18059&sc=1

Thanks for your interest in NixOS.

Ludo’.




More information about the nix-dev mailing list