Certain tools, e.g. compilers, are customarily prefixed with the name of
their target platform so that multiple builds can be used at once
without clobbering each other on the PATH. I was using identifiers named
`prefix` for this purpose, but that conflicts with the standard use of
`prefix` to mean the directory where something is installed. To avoid
conflict and confusion, I renamed those to `targetPrefix`.
The following parameters are now available:
* hardeningDisable
To disable specific hardening flags
* hardeningEnable
To enable specific hardening flags
Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.
cc-wrapper supports the following flags:
* fortify
* stackprotector
* pie (disabled by default)
* pic
* strictoverflow
* format
* relro
* bindnow
In most cases, this just meant changing kernelDev (now removed from
linuxPackagesFor) to kernel.dev. Some packages needed more work (though
whether that was because of my changes or because they were already
broken, I'm not sure). Specifics:
* psmouse-alps builds on 3.4 but not 3.10, as noted in the comments that
were already there
* blcr builds on 3.4 but not 3.10, as noted in comments that were
already there
* open-iscsi, ati-drivers, wis-go7007, and openafsClient don't build on
3.4 or 3.10 on this branch or on master, so they're marked broken
* A version-specific kernelHeaders package was added
The following packages were removed:
* atheros/madwifi is superceded by official ath*k modules
* aufs is no longer used by any of our kernels
* broadcom-sta v6 (which was already packaged) replaces broadcom-sta
* exmap has not been updated since 2011 and doesn't build
* iscis-target has not been updated since 2010 and doesn't build
* iwlwifi is part of mainline now and doesn't build
* nivida-x11-legacy-96 hasn't been updated since 2008 and doesn't build
Everything not specifically mentioned above builds successfully on 3.10.
I haven't yet tested on 3.4, but will before opening a pull request.
Signed-off-by: Shea Levy <shea@shealevy.com>
First, pass in `self' again so that overriding works properly (thanks
for pointing that out, @edolstra)
Second, instead of having linuxPackages*.kernel mean something different
inside the set and out, add a new attribute linuxPackages*.kernelDev,
which for the generic kernel is simply linuxPackages*.kernel but for the
manual-config kernel is the `dev' output (which has the build tree,
source tree, etc.)
The second change required trivial modifications in a bunch of
expressions, I verified that all of the linuxPackages* sets defined in
all-packages.nix have the same drv paths before and after the change.
Signed-off-by: Shea Levy <shea@shealevy.com>
This comes from:
svn diff ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff
patch -p0 < diff
and then adding into svn all files new from the patch.
trunk@18255 comes from the last time I updated stdenv-updates from trunk.
svn path=/nixpkgs/stdenv-updates2/; revision=18272
builders. These are redundant now.
* Inlined some trivial builders.
* Removed a few explicit setup-hook creations. This is done
automatically now if setupHook is set.
* Deleted the initscripts package. NixOS doesn't use it anymore.
svn path=/nixpkgs/branches/stdenv-updates/; revision=15276
* klibc: build against the regular kernel headers instead of depending
on a kernel build. This way we don't have to rebuild klibc every
time the kernel changes.
* splashutils 1.3: compile properly with a klibc that uses unpatched
kernel headers.
svn path=/nixpkgs/trunk/; revision=13900
library.
* Removed devicemapperStatic, e2fsprogsDiet, lvm2Static since they're
redundant (it's what you get when you use pkgsDiet/pkgsStatic).
svn path=/nixpkgs/trunk/; revision=12554
modules) together in an attribute set returned by the function
"kernelPackagesFor" that takes a kernel as argument. For instance,
kernelPackages_2_6_23 is the result of calling this function with
kernel_2_6_23.
This is necessary in NixOS to make it easier to override the kernel:
it's not enough to just specify a different kernel (via the
boot.kernel option), but you also need matching nvidiaDriver, aufs,
iwlwifi, etc. Having a single attribute set that contains all
kernel-related packages makes this much easier.
* The kernel now has a passthru attribute "features" that allows NixOS
expressions to test whether a kernel has certain features. For
instance, the externel "iwlwifi" kernel module package should only
be built on kernels < 2.6.24, as kernels >= 2.6.24 have iwlwifi
support integrated. So the NixOS expressions can do the test
"kernel.features ? iwlwifi" to see if the iwlwifi package should be
built.
Kernel patches can declare additional features. E.g., the fbsplash
patch adds a "fbSplash" feature.
svn path=/nixpkgs/trunk/; revision=11881