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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 update atop 2013-01-06 17:51:54 +01:00
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 bridge-utils: updated to version 1.5 2011-12-01 11:26:49 +00:00
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 conky: Enable weather plugins. 2012-09-10 23:54:00 +02:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 Fix dmraid build 2012-07-18 09:25:58 -04:00
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 Upstream tracking files for asymptote and fbterm 2012-12-04 14:55:19 +04:00
ffado Disable the debug option for FFADO 2012-10-07 22:33:50 +02:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 jujuutils: fix reference to non-existent version of 'linuxHeaders' 2012-10-23 18:47:31 +02:00
kbd kbd: Update to 1.15.3 2012-07-24 22:33:39 -04:00
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 Rename buildNativeInputs -> nativeBuildInputs 2012-12-28 19:20:09 +01:00
libcap-ng add libcap_ng 2013-02-24 11:19:35 +01:00
libcgroup Rename buildNativeInputs -> nativeBuildInputs 2012-12-28 19:20:09 +01:00
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 synchronize with trunk 2011-10-06 10:27:33 +00:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
module-init-tools Kernel module aggregator: Use kmod instead of module-init-tools 2013-08-09 18:48:52 +02:00
multipath-tools udev-173, patch 2011-08-18 13:04:55 +00:00
ndiswrapper Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
net-tools Fixing nettools with headers >=3.6 (no more strip) 2013-01-05 21:52:44 +00:00
netatop Update and fix kernel packages to new kernel build 2014-01-04 21:17:04 -05:00
nfs-utils Remove duplicate tcp-wrappers package 2012-11-29 15:26:13 +01:00
nss_ldap nss_ldap: fixing crash with glibc >= 2.16 2013-05-17 10:23:37 +02:00
numactl * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 pam_usb: drop hal dependency 2012-03-29 18:02:10 +00:00
pcmciautils * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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 Fix bad URLs lacking a scheme 2013-01-14 18:26:46 +01:00
policycoreutils policycoreutils: update from 2.2.4 to 2.2.5 2013-12-13 00:39:20 +02:00
pommed Pommed: find the 'eject' command in /var/setuid-wrappers:/home/shlevy/.nix-profile/bin:/home/shlevy/.nix-profile/sbin:/home/shlevy/.nix-profile/lib/kde4/libexec:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/nix/var/nix/profiles/default/lib/kde4/libexec:/var/run/current-system/sw/bin:/var/run/current-system/sw/sbin:/var/run/current-system/sw/lib/kde4/libexec 2012-03-20 18:28:32 +00:00
powertop powertop: update from 2.2 to 2.5 2013-12-23 05:22:37 +02:00
procps Making procps crossbuild. 2012-01-01 20:01:02 +00:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
regionset * Added regionset, a tool for changing the region code setting of DVD 2011-10-21 00:43:56 +00:00
reptyr Update/fix MuPDF 2012-10-04 10:37:54 +04:00
rfkill rfkill udev package. 2012-02-24 01:35:59 +00:00
rtkit * Add rtkit to the channel. 2011-08-01 13:26:00 +00:00
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 sysfsutils: Use SourceForge mirror instead of static URL. 2012-10-02 08:50:42 +02:00
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 Use /var/log/sa for statedir of sysstat, in stead of $out/var/lib/sa. This path cannot be overriden at runtime, so choosing a 'sane' default. 2012-08-14 14:14:55 +02:00
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 Remove duplicate tcp-wrappers package 2012-11-29 15:26:13 +01:00
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 * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
uclibc Clean up redundant "if condition then true else false" 2012-12-28 19:57:47 +01:00
udev Remove udev 173 2012-12-13 11:42:00 +01:00
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 Remove a bunch of unreferenced files 2012-11-29 13:43:37 +01:00
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-mtrack: Update, use pixman 2012-07-14 16:32:20 -04:00
xf86-input-multitouch * "ensureDir" -> "mkdir -p". "ensureDir" is a rather pointless 2012-01-18 20:16:00 +00:00
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