Commit graph

851 commits

Author SHA1 Message Date
Evgeny Egorochkin fc213ccfa8 linux_3_13: update from 3.13.2 to 3.13.3 2014-02-14 16:56:38 +02:00
Evgeny Egorochkin 699509db14 linux_3_10: update from 3.10.29 to 3.10.30 2014-02-14 16:55:44 +02:00
Evgeny Egorochkin ad4e2bd499 linux_3_4: update from 3.4.79 to 3.4.80 2014-02-14 16:55:44 +02:00
Evgeny Egorochkin 69f4bdac6e linux: add git repository and branch meta 2014-02-14 10:45:36 +02:00
Ricardo M. Correia b31547654d grsecurity: Update stable and test patches
stable: 3.0-3.2.54-201401191012 -> 3.0-3.2.54-201402062221
test:   3.0-3.12.8-201401191015 -> 3.0-3.13.2-201402062224
2014-02-08 16:16:58 +01:00
Ricardo M. Correia 31fa2cd52b grsecurity: Fix building grsec-3.x.0 kernels 2014-02-08 15:16:40 +00:00
Vladimír Čunát 24029ec478 linux: minor updates 3.12.10, 3.10.29, 3.4.79 2014-02-08 11:54:16 +01:00
Vladimir Still d3979b659c perf: Make build fix for 3.13 cleaner. 2014-02-07 22:53:55 +01:00
Vladimir Still 70e4f8f928 perf: Allow proceeding in build even if patch fails.
Patching fails for linux 3.13 but it builds OK.
2014-02-07 18:16:24 +01:00
William A. Kennington III 346bfc28ea kernel: Upgrade from 3.13.1 -> 3.13.2 2014-02-06 16:30:40 -06:00
William A. Kennington III f9f065a178 kernel: Upgrade from 3.13.0 -> 3.13.1 2014-01-31 15:28:50 -06:00
Eelco Dolstra b913a2eb81 linux: Update to 3.4.78 2014-01-31 18:00:13 +01:00
Vladimír Čunát 9739171cd4 Merge pull request #1567 from wizeman/u/grsec-upd-and-fix
grsecurity: Fix build and update patches
2014-01-28 03:41:05 -08:00
Vladimír Čunát a9caafa0ea linux kernel updates to 3.4.77, 3.10.28 and 3.12.9
I tested they still build on x86_64.
2014-01-26 17:07:31 +01:00
William A. Kennington III 8bc7c9f66d linux: Update from 3.12.7 -> 3.12.8 2014-01-26 15:48:18 +01:00
William A. Kennington III c47dc47083 linux: Update from 3.10.25 -> 3.10.27 2014-01-26 15:48:05 +01:00
Petr Rockai 28f0ec6540 linux-perf: Fix build (unportable shell hack broke). 2014-01-25 16:30:14 +01:00
Shea Levy cb9cc87a39 kernel.passthru: Don't include meta to be consistent with stdenv.mkDerivation
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-21 21:12:58 -05:00
Shea Levy fd999ed570 Linux: Set passthru attr to contain full passthru
This fixes #1566, thanks @wizeman

Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-21 21:06:27 -05:00
Ricardo M. Correia aeda8d63b9 grsecurity: Update stable and test patches
stable: 3.0-3.2.53-201312021727 -> 3.0-3.2.54-201401191012
test:   3.0-3.12.2-201312021733 -> 3.0-3.12.8-201401191015
2014-01-22 02:14:35 +01:00
Shea Levy d18bc25b95 Rename linuxManualConfig to buildLinux
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-21 20:05:55 -05:00
Shea Levy 3ae5e801a5 Linux 3.13
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-19 22:35:24 -05:00
Ricardo M. Correia acaadd9d2a linux: Update to 3.2.54 and 3.12.7 (close #1527) 2014-01-15 20:05:53 +01:00
Eelco Dolstra 03ad7a081c linux: Update to 3.4.76 2014-01-15 10:55:53 +01:00
Eelco Dolstra c3db56527d linux: Update to 3.4.75 2014-01-07 11:08:16 +01:00
Shea Levy 053e029ee6 Some arches have multiple Makefiles
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-05 16:07:32 -05:00
Shea Levy adb57a0cc4 kernel: Fix depmod references
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-05 10:31:16 -05:00
Shea Levy ac2035287f Greatly reduce kernel closure size
Based on access analysis with strace, I determined an essentially
minimal required set of files from the kernel source that was needed to
build all current kernel packages on 3.10, which ultimately resulted in
keeping 30M of source. Generalizing from that minimal set, which
required ad-hoc specifications of which headers outside of include/ and
arch/*/include and which files in the scripts/ directory should be kept,
to a policy of keeping all non-arch-specific headers that aren't part of
the drivers/ directory and the entire scripts/ directory added an
additional 17M, but there was nothing in the analysis that indicated
that that ad-hoc specification was at all complete so I think the extra
hit is worth the likely greater compatibility.

For reference, we now keep:

* All headers that are NOT in arch/${notTargetArch}/include or drivers/
* The scripts/ directory
* Makefile
* arch/${targetArch}/Makefile

IMO the most likely cause of future problems are the headers in
drivers/, but hopefully they won't actually be needed as they add 50M
Ideally kernel packages would only use include and
arch/${targetArch}/include, but alas this is observably not the case.

master:
  * $out
    * size: 234M
    * references-closure: linux-headers, glibc, attr, acl, zlib, gcc,
      coreutils, perl, bash
merge-kernel-builds:
  * $out
    * size: 152M
    * references-closure: none
  * $dev
    * size: 57M
    * references-closure: linux-headers, glibc, zlib, gcc

So even with the non-minimal set we still beat out master. Keeping the
drivers headers would make us only slightly bigger.

Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-05 06:55:47 -05:00
Shea Levy a589bfae17 Update and fix kernel packages to new kernel build
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>
2014-01-04 21:17:04 -05:00
Shea Levy 2c38df1c5b 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>
2014-01-01 23:56:24 -05:00
Shea Levy f95d214cfd 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>
2014-01-01 09:21:25 -05:00
Shea Levy a87b1f36e0 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>
2013-12-31 23:09:42 -05:00
Shea Levy 784c6d320c 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>
2013-12-31 22:50:41 -05:00
Shea Levy 0c5776bc0f 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>
2013-12-31 22:49:12 -05:00
Shea Levy fe185f0a18 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>
2013-12-31 22:46:43 -05:00
Shea Levy 008992619f 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>
2013-12-31 22:38:06 -05:00
William A. Kennington III 211b9a5016 linux: Update 3.10.18 -> 3.10.25 2013-12-29 07:53:23 -06:00
William A. Kennington III 811d88e94d linux: Update 3.11.8 -> 3.11.10 2013-12-29 07:53:19 -06:00
Shea Levy 76da6e6ed3 Linux 3.12.6
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-20 13:45:45 -05:00
Shea Levy 01a051292f Linux 3.12.5
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-18 12:35:07 -05:00
Eelco Dolstra 82f39bd19e linux: Fix hash 2013-12-17 13:27:03 +01:00
Eelco Dolstra acac786868 linux: Update to 3.4.74 2013-12-16 14:46:21 +01:00
Eelco Dolstra f74ca42ba6 linux: Update to 3.4.73 2013-12-11 14:28:37 +01:00
Shea Levy 9131b45db4 Linux 3.12.4
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-09 12:01:37 -05:00
Vladimír Čunát 3d3b19d767 Merge #1325: linux-3.2 and grsecurity updates 2013-12-05 23:20:18 +01:00
Shea Levy bb9caf40dd Linux 3.12.3
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-12-05 10:21:06 -05:00
Ricardo M. Correia 61adb5962c grsecurity: Update to 3.0-3.2.53-201312021727 and 3.0-3.12.2-201312021733 2013-12-04 15:28:21 +01:00
Ricardo M. Correia 60ced497f6 linux: Update to 3.2.53 2013-12-04 15:28:20 +01:00
Eelco Dolstra 3b94410d86 linux: Update to 3.4.71 2013-12-01 18:20:39 -05:00
Shea Levy c06361a1fc Linux 3.12: Bump
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-11-30 14:29:49 -05:00