nixpkgs/pkgs/os-specific/linux
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
..
915resolution
acpi Update acpi from 1.6 -> 1.7 2013-11-27 23:15:37 -06:00
acpi-call Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
acpid Update acpid from 2.0.17 -> 2.0.20 2013-11-27 23:15:37 -06:00
acpitool
afuse
alienfx alienfx: also build on i686 2013-11-24 15:20:38 +01:00
alsa-lib alsa: set meta.platform for ALSA-related packages to Linux 2013-12-06 19:26:34 +01:00
alsa-oss alsa: set meta.platform for ALSA-related packages to Linux 2013-12-06 19:26:34 +01:00
alsa-plugins alsa: bump 1.0.26 -> 1.0.27 (close #1198) 2013-11-11 22:32:28 +01:00
alsa-utils alsa: set meta.platform for ALSA-related packages to Linux 2013-12-06 19:26:34 +01:00
apparmor apparmor: update from 2.8.1 to 2.8.2 2013-12-09 11:04:25 +02:00
ati-drivers Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
atop
audit Add audit 2.3.2 for the new libsemanage 2013-11-29 02:08:52 -06:00
autofs autofs: upgrade 5.0.5 -> 5.0.8 2013-11-21 21:49:47 +01:00
batman-adv Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
bbswitch Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
blcr Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
bluez bluez5: update from 5.8 to 5.12 2013-12-18 18:18:20 +02:00
bridge-utils
broadcom-sta Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
busybox Upgrade busybox from 1.20.2 -> 1.21.1 2013-11-28 00:52:10 -06:00
checkpolicy Upgrade selinux from 20100904 -> 20131030 2013-11-29 02:08:53 -06:00
cifs-utils Upgrade cifs-utils from 5.7 -> 6.2 2013-11-28 00:52:11 -06:00
conky
consoletools Update consoletools from 1.4.3 -> 1.4.6 2013-11-28 00:52:11 -06:00
conspy Add conspy Linux console proxy 2013-10-20 18:02:07 +04:00
cpufrequtils Fix src for cpufrequtils 2013-11-28 16:26:14 +04:00
cramfsswap
cryopid
cryptodev Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
cryptsetup Upgrade cryptsetup from 1.5.1 -> 1.6.2 2013-11-28 00:52:11 -06:00
dietlibc
directvnc
dmidecode dmidecode: set meta.platforms to linux 2013-12-12 00:32:31 +01:00
dmraid
dmtcp
drbd Upgrade drbd from 8.4.0 -> 8.4.4 2013-11-28 00:52:12 -06:00
dstat More description fixes 2013-10-06 12:01:38 +02:00
e3cfsprogs
e1000e Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
ebtables ebtables: Update to 2.0.10-4 and fix build 2013-01-28 17:19:01 +01:00
fbterm
ffado
firmware Install firmware in $out/lib/firmware instead of $out 2013-09-04 14:23:44 +02:00
forktty Adding forktty terminal connection/disconnection helper 2013-10-20 20:27:50 +04:00
frandom Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
fuse Upgrade fuse from 2.9.2 -> 2.9.3 2013-11-28 01:07:34 -06:00
fxload
gfxtablet Adding desktop side of GfxTablet tablet-as-input-device Android app 2013-10-22 09:30:49 +04:00
gogoclient Fix references to ifconfig and route 2013-03-22 09:41:38 +04:00
google-authenticator Adding 'google-authenticator' 2013-03-30 21:06:06 +01:00
hdparm Upgrade hdparm from 9.39 -> 9.43 2013-11-28 01:10:33 -06:00
hibernate hibernate: upgrade from 1.98.1 to 2.0 2013-11-19 21:33:43 +01:00
hostapd hostapd update: 1.0 -> 2.0 2013-09-16 23:06:51 +02:00
htop htop: update to version 1.0.2 2013-03-25 00:01:56 +01:00
hwdata Upgrade hwdata from 0.172 -> 0.249 2013-11-29 02:08:51 -06:00
i7z i7z: update to 0.27.2, cleanup build, add git repository to metadata. 2013-10-18 23:05:22 +03:00
i810switch
ifplugd
iotop iotop: Update to 0.6 2013-09-17 14:17:55 +02:00
iproute Upgrade iproute2 from 3.8.0 -> 3.12.0 2013-11-29 02:08:51 -06:00
ipsec-tools ipsec-tools: update to version 0.8.1 2013-07-22 16:29:16 +02:00
iptables Update IPTables from 1.4.16.2 -> 1.4.20 2013-11-28 00:52:12 -06:00
iputils iputils: Don't depend on both GNU TLS and OpenSSL 2013-06-04 14:57:37 +02:00
iw Update iw 3.10 -> 3.11 2013-11-28 00:52:12 -06:00
jujuutils
kbd
kernel Greatly reduce kernel closure size 2014-01-05 06:55:47 -05:00
kernel-headers Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
kernel-headers-cross
kexectools kexec-tools: Update to 2.0.4 2013-09-12 10:38:37 +02:00
keyutils Upgrade keyutils from 1.2 -> 1.5.8 2013-11-29 02:08:51 -06:00
klibc Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
kmod Upgrade kmod from 12 -> 15 2013-11-29 02:08:52 -06:00
latencytop fix bad "licence" names 2013-07-04 18:16:34 +02:00
ldm New package: LDM - Lightweight device mounter 2013-11-10 15:08:44 +01:00
libaio
libatasmart Upgrade libatasmart from 0.17 -> 0.19 2013-11-29 02:08:52 -06:00
libcap
libcap-ng add libcap_ng 2013-02-24 11:19:35 +01:00
libcgroup
libnl Adding libnl 3.2.19 to use instead of the latest with ntrack 2013-12-02 22:47:52 +04:00
libnscd
libselinux Upgrade selinux from 20100904 -> 20131030 2013-11-29 02:08:53 -06:00
libsemanage Upgrade selinux from 20100904 -> 20131030 2013-11-29 02:08:53 -06:00
libsepol Upgrade selinux from 20100904 -> 20131030 2013-11-29 02:08:53 -06:00
libsmbios
libvolume_id libvolume_id: update from 0.81.0 to 0.81.1 2013-12-13 22:41:58 +02:00
lm-sensors lm_sensors 3.3.4 update, support for many more sensors 2013-09-07 16:10:27 +02:00
lsiutil
lsscsi lsscsi: update from 0.24 to 0.27 2013-12-14 00:16:59 +02:00
lttng-modules Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
lvm2 Upgrade lvm from 2.02.100 -> 2.02.104 2013-11-28 00:52:12 -06:00
lxc lxc: update to current git HEAD 1.0.0.alpha1-92-g8111adf 2013-10-03 17:09:02 +02:00
mcelog clean up git revision handling in several packages 2013-11-13 12:46:55 +02:00
mdadm Update MDadm from 3.1.2 -> 3.3 2013-11-28 00:52:12 -06:00
microcode microcode-intel: update to 20130906 2013-10-27 06:24:48 +02:00
mingetty
module-init-tools Kernel module aggregator: Use kmod instead of module-init-tools 2013-08-09 18:48:52 +02:00
multipath-tools
ndiswrapper Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
net-tools
netatop Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
nfs-utils
nss_ldap nss_ldap: fixing crash with glibc >= 2.16 2013-05-17 10:23:37 +02:00
numactl
nvidia-x11 Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
open-iscsi Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
opengl/xorg-sys
otpw otpw: fixing the entropy source (PATH variables) 2013-03-30 21:06:06 +01:00
pam libxcrypt: Remove 2013-01-28 17:19:03 +01:00
pam_ccreds More description fixes 2013-10-06 12:01:38 +02:00
pam_console pam_console: fix version to match tarball 2013-07-14 02:08:51 +03:00
pam_devperm
pam_krb5 More description fixes 2013-10-06 12:01:38 +02:00
pam_ldap
pam_login
pam_ssh_agent_auth pam_ssh_agent_auth: fix nix eval 2013-05-23 15:24:15 +02:00
pam_usb
pcmciautils
plymouth Plymouth: works quite well with the X11 renderer and from a VT 2013-04-15 20:15:47 +02:00
pm-utils pm-utils: Set meta.platforms 2013-01-24 12:52:00 +01:00
pmount Change pmount download address and add platforms 2013-12-24 10:50:40 +01:00
pmtools
policycoreutils policycoreutils: update from 2.2.4 to 2.2.5 2013-12-13 00:39:20 +02:00
pommed
powertop powertop: update from 2.2 to 2.5 2013-12-23 05:22:37 +02:00
procps
procps-ng procps-ng: update from 3.3.6 to 3.3.9 2013-12-16 01:36:17 +02:00
psmisc psmisc: update from 22.19 to 22.21 2013-12-16 01:36:17 +02:00
psmouse-alps Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
radeontools
regionset
reptyr
rfkill
rtkit
sdparm sdparm: update from 1.03 to 1.08 2013-12-14 21:44:51 +02:00
sepolgen Upgrade selinux from 20100904 -> 20131030 2013-11-29 02:08:53 -06:00
setools Upgrade selinux from 20100904 -> 20131030 2013-11-29 02:08:53 -06:00
shadow Revert "experimental/shadow" 2013-04-23 13:04:17 +02:00
spl Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
statifier Even more mirror:// fixes 2013-07-14 04:17:07 +03:00
sysfsutils
sysklogd sysklogd: Don't remove /dev/log when syslogd exits 2013-05-09 16:28:36 +02:00
syslinux syslinux: update from 4.06 to 4.07 2013-12-31 05:44:11 +02:00
sysstat
systemd systemd: Apply a bunch of upstream fixes 2013-10-14 12:47:05 +02:00
sysvinit sysvtools: fix symlink when withoutInitTools = false 2013-05-09 15:15:04 +02:00
tcp-wrappers
tp_smapi Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
ttysnoop Fix license attribute in ttysnoop 2013-10-20 21:15:14 +04:00
tunctl
uclibc
udev
udisks udisks2: update from 2.1.0 to 2.1.1 2013-12-21 02:28:27 +02:00
udisks-glue Added udisks-glue, a tool to associate udisks-events to actions 2013-10-02 15:40:57 +00:00
untie
upower upower: fix Xfce via --enable-deprecated 2013-11-12 10:05:57 +01:00
upstart
usbutils usbutils: Update USB IDs 2013-10-14 12:47:04 +02:00
util-linux Upgrade util-linux from 2.22 -> 2.24 2013-11-28 00:52:13 -06:00
v4l-utils v4l_utils: update from 0.9.3 to 1.0.0 2013-12-21 02:28:27 +02:00
v86d Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
wireless-tools
wis-go7007 Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
wpa_supplicant Fix some meta.platforms attributes to build more stuff on Darwin 2013-11-05 10:46:59 +01:00
wvdial
x86info More description fixes 2013-10-06 12:01:38 +02:00
xf86-input-mtrack
xf86-input-multitouch
xf86-input-wacom ReRevert Merge x-updates into master 2013-05-29 23:25:02 +02:00
xf86-video-nested Tidy up: use the web interface for the git repo as the homepage 2013-03-03 19:40:17 +01:00
xf86-video-nouveau WARNING: history from now is going to change (mesa+llvm) 2013-05-16 17:16:02 +02:00
zfs Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00