`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
* 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