found before:
- programs linked with this glibc, will be able to find its locale-archive
at LOCALE_ARCHIVE_2_11
- for any problem we forgot to mention, we also add the LOCALE_ARCHIVE
variable, checked after LOCALE_ARCHIVE_2_11. I don't know a strong reason to
have it though.
- setuid programs will expect the locale-archive in
/var/run/current-system/sw/lib/locale, usual path of the locale-archive in
nixos, and a path that a sysadmin can set pointing to the locale-archive in
case of non-nixos. setuid programs don't receive the LOCALE_ARCHIVE
variables.
- non-nixos systems will have a check for the locale-archive in /usr/lib/locale
- the glibc programs 'locale' and 'localedef' may be able to find the proper
locale-archive too.
We were also considering getting rid of the locale-archive, and using
locale files directly (like Ubuntu seems to do [1]), maybe using the LOCPATH
variable. But this would not solve the problem of localized setuid programs.
All this came after a 'meeting' with niksnut on irc about this.
[1] http://lwn.net/Articles/244204/
svn path=/nixpkgs/branches/stdenv-updates/; revision=22977
`gcc -v'). It causes build-time only dependencies to be
unnecessarily retained in the closure (e.g. PPL due to
`--with-ppl=/nix/store/...').
* Replace $out/bin/c++ with a symlink to g++.
svn path=/nixpkgs/branches/stdenv-updates/; revision=22966
`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
I removed two patches that don't apply anymore (dragonegg, softfp-hurd).
I hope this means it's all fixed upstream.
svn path=/nixpkgs/branches/stdenv-updates/; revision=22879
I tried to fix some trivial conflicts.
I don't know if I merged well some more difficult conflicts on openssl/darwin_patch
or haskell-platform.
svn path=/nixpkgs/branches/stdenv-updates/; revision=22878