`callPackage' was described here:
http://www.mail-archive.com/nix-dev@cs.uu.nl/msg02624.html
It allows all-packages.nix to be shortened significantly (from 10152
to 6980 lines) by automatically filling in package functions'
required arguments from `pkgs'. That is, a function
{ stdenv, fetchurl, libfoo, libbar }: ...
can now be called as
callPackage ./<bla>.nix { };
rather than
import ./<bla>.nix {
inherit stdenv fetchurl libfoo libbar;
};
This reduces boring typing work when adding a dependency and reduces
the number of trivial commits to all-packages.nix.
Overrides or arguments that don't exist in `pkgs' can be passed
explicitly, e.g.,
callPackage ./<bla>.nix {
libfoo = libfoo_1_2_3;
};
The conversion was done automatically with a magic Perl regexp. I
checked that `nix-env' produces the same results before and after
(except for three packages that depend on webkit, which uses
deepOverride).
`callPackage' applies `makeOverridable' automatically, so almost
every package now exports an `override' function.
There are two downsides to using callPackage:
- Evaluation is a bit slower (about 15% on `nix-env -qa --drv-path
\*').
- There can be unexpected results for functions that have default
argument values. For instance, a function
{ libfoo ? null }: ...
called using `callPackage' will be passed a `libfoo' argument
provided that `pkgs.libfoo' exists. If this is used to control
whether a package has to have a certain dependency, you need to
explicitly write:
callPackage ./<bla>.nix {
libfoo = null;
};
svn path=/nixpkgs/trunk/; revision=22885
* libdbi / libdbi-drivers: updated to 0.8.3, and make it compile with
SQLite.
* qemu-image: fix the URL.
* gdmap: make it build again (requires an older GTK+).
* rlwrap: updated to 0.37.
* smbfs-fuse -> fusesmb to match the upstream name.
* x11vnc: updated to 0.9.10.
* clearlyU: fix the URL.
* Various packages: follow the coding conventions.
svn path=/nixpkgs/trunk/; revision=22814
The package is required for the regression test suite. Adding it to
buildInputs would probably work, too, but I haven't tried it.
svn path=/nixpkgs/trunk/; revision=22792
This version seems to be an unofficial release from tahoe-lafs.org based
on the mock-0.1.0 release from python-mock.sourceforge.net. It should
probably replace the old version we have in here.
svn path=/nixpkgs/trunk/; revision=22791
The generic 'buildPythonPackage' function used to use the build/install command
"easy_install" unconditionally. That didn't work for python-numpy, for
instance, because the package wants "setup.py" run with additional parameters
to determine the fortran compiler of choice. The newly introduced function
argument 'installCommand' allows to implement this. By passing that parameter,
the default build command can be overridden.
svn path=/nixpkgs/trunk/; revision=22786
* Don't build with "-march=native", because the generated binaries
won't work reliably on systems with a different CPU. Instead,
"--march=i686" is used on x86, and "--march=nocona" an x86_64.
Otherwise, "--march" remains unset.
* Compile with -O3 instead of -O2. This code is performance-critical.
* Don't build with '-g'.
svn path=/nixpkgs/trunk/; revision=22785
| source root is setuptools_darcs-1.2.9
| patching sources
| configuring
| no configure script, doing nothing
| building
| running tests
| Download error: [Errno -3] Temporary failure in name resolution -- Some packages may not be found!
| Couldn't find index page for 'darcsver' (maybe misspelled?)
| Download error: [Errno -3] Temporary failure in name resolution -- Some packages may not be found!
| No local packages or download links found for darcsver>=1.2.0
| Traceback (most recent call last):
| File "setup.py", line 79, in <module>
| zip_safe=False, # I prefer unzipped for easier access.
| File "/nix/store/r6xlmlf0amzwhkvkv0v656jgx7r299g7-python-2.6.5/lib/python2.6/distutils/core.py", line 113, in setup
| _setup_distribution = dist = klass(attrs)
| File "build/bdist.linux-x86_64/egg/setuptools/dist.py", line 260, in __init__
| File "build/bdist.linux-x86_64/egg/setuptools/dist.py", line 284, in fetch_build_eggs
| File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 563, in resolve
| File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 799, in best_match
| File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 811, in obtain
| File "build/bdist.linux-x86_64/egg/setuptools/dist.py", line 327, in fetch_build_egg
| File "build/bdist.linux-x86_64/egg/setuptools/command/easy_install.py", line 434, in easy_install
| File "build/bdist.linux-x86_64/egg/setuptools/package_index.py", line 475, in fetch_distribution
| AttributeError: 'NoneType' object has no attribute 'clone'
| builder for `/nix/store/rkm5fzs0p6hh45mvpzv0qqphmsjnyag8-python-setuptools-darcs-1.2.9.drv' failed with exit code 1
| error: build of `/nix/store/rkm5fzs0p6hh45mvpzv0qqphmsjnyag8-python-setuptools-darcs-1.2.9.drv' failed
svn path=/nixpkgs/trunk/; revision=22780
When the regression test suite is run, it tries to compile some plug-in
code into Twisted's store path, and fails. I'm not sure how to remedy
this problem.
svn path=/nixpkgs/trunk/; revision=22767
crypto++ has an impurity that leads to test suite failures in this
module, i.e. in sha256. When that impurity has been fixed, we should try
building on top of the the pristine crypto++ library again.
svn path=/nixpkgs/trunk/; revision=22760