ati-drivers: fix download
platforms.nix: Separate 32-bit and 64-bit PCs

With this, stdenv.platform.kernelArch can be used by the kernel builder
for PC platforms too.

Signed-off-by: Shea Levy <shea@shealevy.com>
linux/manual-config: Cross-compiling support

With this, I was able to successfully compile a defconfig kernel for the
sheevaplug, though I didn't actually try to run it (not having a
sheevaplug myself).

For native compiles, the most significant difference is that the
platform's kernel target is built directly rather than hoping the
default make target will pull it in.

Also some stylistic improvements along the way.

Signed-off-by: Shea Levy <shea@shealevy.com>
manual-config: Always add config query functions

If the config attrset is manually specified, we still want isYes,
isModule, etc. to work. But we let the passed in config attrset take
precedence, if for some reason the caller wants to provide their own
implementation of one or more of these functions.

Signed-off-by: Shea Levy <shea@shealevy.com>
manual-config: Patch conf.c for generate-config.pl

This only affects the `oldaskconfig' make target, so it shouldn't really
affect current manual-config users, but it does make it more
straightforward to implement the generic kernel build on top of
manual-config.

Signed-off-by: Shea Levy <shea@shealevy.com>
manual-config: Put `source' before the version in the sourceRoot name

nix's version parsing treats the previous name as a package named
`linux' with version `${version}-source', when we really want a package
named `linux-source' with version `${version}'

Signed-off-by: Shea Levy <shea@shealevy.com>
manual-config: Fully general cross-compiling

In the most general case, the cross and native kernel may differ in
patches and configuration file as well as architecture, kernel target,
etc. It's probably overkill to support that case, but since it was
doable without much duplication and it will make integrating with the
existing cross-compilation support in the generic kernel I decided to
implement it anyway.

Signed-off-by: Shea Levy <shea@shealevy.com>
Implement generic kernel build via manual-config

This has three major benefits:

1. We no longer have two kernel build processes to maintain

2. The build process is (IMO) cleaner and cleaves more closely to
upstream. In partuclar, we use make install to install the kernel and
development source/build trees, eliminating the guesswork about which
files to copy.

3. The derivation has multiple outputs: the kernel and modules are in
the default `out' output, while the build and source trees are in a
`dev' output. This makes it possible for the full source and build tree
to be kept (which is expected by out-of-tree modules) without bloating
the closure of the system derivation.

In addition, if a solution for how to handle queries in the presence of
imports from derivations ever makes it into nix, a framework for
querying the full configuration of the kernel in nix expressions is
already in place.

Signed-off-by: Shea Levy <shea@shealevy.com>
kernel build: limit dev output footprint

This makes the disk usage footprint of building the kernel smaller in 3
ways:

1) There is no separate kernel source derivation
2) Rather than using the entire build tree, only the output of make
modules_prepare is kept in the $dev output (plus the module symbol
versioning file generated during the build)
3) Only the subset of the source tree known to be needed for external
builds is kept in $dev

Note that while 2) is supported by official kernel documentation, I
couldn't find any source describing what we need to keep for 3). I've
started with the bare minimum (the main Makefile is called by the
Makefile generated by make modules_prepare) and we can/should add more
as needed for kernelPackages.

Signed-off-by: Shea Levy <shea@shealevy.com>
systemtap: Remove from linuxPackagesFor

It doesn't seem to depend on the kernel in any way.

Signed-off-by: Shea Levy <shea@shealevy.com>
btrfs-progs: Don't use a non-standard meta attribute
postgresql-8.3: Remove

The 8.3 branch is no longer maintained so it shouldn't be used.
postgresql: Update to 8.4.19, 9.0.15, 9.1.11, 9.2.6

This is a critical update fixing several data corruption issues:

  http://www.postgresql.org/about/news/1492/
Merge pull request #1380 from offlinehacker/pkgs/ati-drivers/fix_download

ati-drivers: fix download
sane-backends-git: update to version 1.0.24.73-g6c4f6bc (i.e. current Git HEAD)
NetworkManager(applet): 0.9.8.4 -> 0.9.8.8 (bluez5 support)
ngrep: new package

ngrep is a command-line network packet analyzer.

http://ngrep.sourceforge.net/
Add bower2nix and update nix packages

Signed-off-by: Shea Levy <shea@shealevy.com>
Update bower2nix

Signed-off-by: Shea Levy <shea@shealevy.com>
Update Wine