[Nix-dev] Override doesn't work as expected

Eelco Dolstra e.dolstra at tudelft.nl
Tue Aug 17 13:38:38 CEST 2010


Hi,

On 08/17/2010 12:32 PM, Peter Simons wrote:

> I use the following override in ~/.nixpkgs/config.nix:
> 
>   packageOverrides = pkgs:
>   {
>     python = pkgs.python27Full;
>     pythonBase = pkgs.python27Base;
>     pythonFull = pkgs.python27Full;
>     pythonPackages = pkgs.python27Packages;
>   };
> 
> It appears that the xorg libraries depend on python26Base despite that
> configuration, though. Is there an explanation why the override doesn't
> seem to work for those libraries?

I've fixed this in r23203.  From the commit message:

* Make sure that in an override like:

    python = pkgs.python27Full;
    pythonBase = pkgs.python27Base;

  a build of (say) Firefox doesn't depend on python26 as well as
  python27.  This happens because python27Full has this line:

    inherit (xlibs) libX11 xproto;

  which causes python27Full to use libX11 from pkgsOrig, where the
  override hasn't been applied.  The solution is to change it to

    inherit (pkgs.xlibs) libX11 xproto;

  In the future, to prevent this, we should make all-packages.nix a
  non-rec set and require all package references to explicitly go
  through pkgs.<attr>.  (Then we can also drop the ugly __overrides
  language "feature".)

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/



More information about the nix-dev mailing list