NixOS/nixpkgs — pull request #1343 by bjornfor (2013-12-08 20:15:11+00:00)
Title: ncurses: fix includedir setting

${out} in configureFlags isn't expanded, so ncursesw5-config ends up
expanding ${out} at *runtime*. Here is the relevant ncursesw5-config
snippet showing how includedir gets its value at runtime.

bindir="${exec_prefix}/bin"
includedir="${out}/include"
libdir="${exec_prefix}/lib"
datadir="${prefix}/share"
mandir="${prefix}/man"

When running in a plain shell you get this:
$ ncursesw5-config --cflags
-I/include/ncursesw -I/include

And when run in a nix-build shell for e.g. gpsd:
$ ncursesw5-config --cflags
-I/nix/store/HASH-gpsd-3.10/include/ncursesw -I/nix/store/HASH-gpsd-3.10/include

This is clearly wrong.

Q: How come this has gone undetected for years?
A: It seems not all packages use ncursesw5-config to get the compiler
flags. For example, our python curses module builds its own compiler
flags.

Fix this by moving the --includedir setting to preConfigure where shell
variables are expanded.