diff options
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/alsa-lib/default.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kbd/default.nix | 15 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel-headers/2.6.28.nix | 1 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel-headers/2.6.32.nix | 1 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/builder.sh | 143 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/generic.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix | 241 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix | 241 | ||||
-rw-r--r-- | pkgs/os-specific/linux/klibc/default.nix | 35 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/default.nix | 2 | ||||
-rw-r--r-- | pkgs/os-specific/linux/pam/default.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/uclibc/default.nix | 13 | ||||
-rw-r--r-- | pkgs/os-specific/linux/util-linux-ng/default.nix | 6 |
13 files changed, 625 insertions, 89 deletions
diff --git a/pkgs/os-specific/linux/alsa-lib/default.nix b/pkgs/os-specific/linux/alsa-lib/default.nix index 727db1c9642..aaa714d8d59 100644 --- a/pkgs/os-specific/linux/alsa-lib/default.nix +++ b/pkgs/os-specific/linux/alsa-lib/default.nix @@ -14,6 +14,12 @@ stdenv.mkDerivation rec { postPatch = '' sed -i -e 's|//int snd_pcm_mixer_element(snd_pcm_t \*pcm, snd_mixer_t \*mixer, snd_mixer_elem_t \*\*elem);|/\*int snd_pcm_mixer_element(snd_pcm_t \*pcm, snd_mixer_t \*mixer, snd_mixer_elem_t \*\*elem);\*/|' include/pcm.h ''; + + crossAttrs = { + patchPhase = '' + sed -i s/extern/static/g include/iatomic.h + ''; + }; meta = { description = "ALSA, the Advanced Linux Sound Architecture libraries"; diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix index 77d53adeb81..c9618bf07e6 100644 --- a/pkgs/os-specific/linux/kbd/default.nix +++ b/pkgs/os-specific/linux/kbd/default.nix @@ -1,19 +1,22 @@ { stdenv, fetchurl, bison, flex, autoconf, automake }: stdenv.mkDerivation rec { - name = "kbd-1.15.1"; + name = "kbd-1.15.2"; src = fetchurl { url = "ftp://ftp.altlinux.org/pub/people/legion/kbd/${name}.tar.gz"; - sha256 = "1klrxas8vjikx6jm6m2lcpmn88lhxb6p3whwgdwq9d9flf1qrf4i"; + sha256 = "19pb44m5m0mcgjkmgkjx4fn8j2m4xwqx4g7w2y1nlypg3qcjsq5k"; }; buildInputs = [ bison flex autoconf automake ]; - # We get a warning in armv5tel-linux, so we disable -Werror in it - patchPhase = if (stdenv.system == "armv5tel-linux") then '' - sed -i s/-Werror// src/Makefile.am - '' else ""; + # We get a warning in armv5tel-linux and the fuloong2f, + # so we disable -Werror in it + patchPhase = if (stdenv.system == "armv5tel-linux" || + stdenv.system == "ict_loongson-2_v0.3_fpu_v0.1-linux") + then '' + sed -i s/-Werror// src/Makefile.am + '' else ""; # Grrr, kbd 1.15.1 doesn't include a configure script. preConfigure = "autoreconf"; diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix index 82840f8a51f..a85e6f79bf1 100644 --- a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix +++ b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix @@ -20,6 +20,7 @@ stdenv.mkDerivation { if stdenv.system == "x86_64-linux" then "x86_64" else if stdenv.system == "powerpc-linux" then "powerpc" else if stdenv.system == "armv5tel-linux" then "arm" else + if stdenv.system == "mips64-linux" then "mips" else abort "don't know what the kernel include directory is called for this platform"; buildInputs = [perl]; diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix index 936ef5ec40d..a4e86658193 100644 --- a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix +++ b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix @@ -26,6 +26,7 @@ stdenv.mkDerivation { if stdenv.system == "x86_64-linux" then "x86_64" else if stdenv.system == "powerpc-linux" then "powerpc" else if stdenv.system == "armv5tel-linux" then "arm" else + if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else abort "don't know what the kernel include directory is called for this platform"; buildInputs = [perl]; diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh index e7d25e86883..bb030abaa6c 100644 --- a/pkgs/os-specific/linux/kernel/builder.sh +++ b/pkgs/os-specific/linux/kernel/builder.sh @@ -68,81 +68,88 @@ installPhase() { if test "$arch" = um; then ensureDir $out/bin cp linux $out/bin - else + elif test "$kernelTarget" != "vmlinux"; then + # In any case we copy the 'vmlinux' ELF in the next lines cp arch/$archDir/boot/$kernelTarget $out fi cp vmlinux $out - # Install the modules in $out/lib/modules with matching paths - # in modules.dep (i.e., refererring to $out/lib/modules, not - # /lib/modules). The depmod_opts= is to prevent the kernel - # from passing `-b PATH' to depmod. - export MODULE_DIR=$out/lib/modules/ - substituteInPlace Makefile --replace '-b $(INSTALL_MOD_PATH)' '' - make modules_install \ - DEPMOD=$module_init_tools/sbin/depmod depmod_opts= \ - $makeFlags "${makeFlagsArray[@]}" \ - $installFlags "${installFlagsArray[@]}" - - if test -z "$dontStrip"; then - # Strip the kernel modules. - echo "Stripping kernel modules..." - if [ -z "$crossConfig" ]; then - find $out -name "*.ko" -print0 | xargs -0 strip -S - else - find $out -name "*.ko" -print0 | xargs -0 $crossConfig-strip -S - fi + if grep -q "CONFIG_MODULES=y" .config; then + # Install the modules in $out/lib/modules with matching paths + # in modules.dep (i.e., refererring to $out/lib/modules, not + # /lib/modules). The depmod_opts= is to prevent the kernel + # from passing `-b PATH' to depmod. + export MODULE_DIR=$out/lib/modules/ + substituteInPlace Makefile --replace '-b $(INSTALL_MOD_PATH)' '' + make modules_install \ + DEPMOD=$module_init_tools/sbin/depmod depmod_opts= \ + $makeFlags "${makeFlagsArray[@]}" \ + $installFlags "${installFlagsArray[@]}" + + if test -z "$dontStrip"; then + # Strip the kernel modules. + echo "Stripping kernel modules..." + if [ -z "$crossConfig" ]; then + find $out -name "*.ko" -print0 | xargs -0 strip -S + else + find $out -name "*.ko" -print0 | xargs -0 $crossConfig-strip -S + fi + fi + + # move this to install later on + # largely copied from early FC3 kernel spec files + version=$(cd $out/lib/modules && ls -d *) + + # remove symlinks and create directories + rm -f $out/lib/modules/$version/build + rm -f $out/lib/modules/$version/source + mkdir $out/lib/modules/$version/build + + # copy config + cp .config $out/lib/modules/$version/build/.config + ln -s $out/lib/modules/$version/build/.config $out/config + + if test "$arch" != um; then + # copy all Makefiles and Kconfig files + ln -s $out/lib/modules/$version/build $out/lib/modules/$version/source + cp --parents `find -type f -name Makefile -o -name "Kconfig*"` $out/lib/modules/$version/build + cp Module.symvers $out/lib/modules/$version/build + + if test "$dontStrip" = "1"; then + # copy any debugging info that can be found + cp --parents -rv `find -name \*.debug -o -name debug.a` \ + "$out/lib/modules/$version/build" + fi + + # weed out unneeded stuff + rm -rf $out/lib/modules/$version/build/Documentation + rm -rf $out/lib/modules/$version/build/scripts + rm -rf $out/lib/modules/$version/build/include + + # copy architecture dependent files + cp -a arch/$archDir/scripts $out/lib/modules/$version/build/ || true + cp -a arch/$archDir/*lds $out/lib/modules/$version/build/ || true + cp -a arch/$archDir/Makefile*.cpu $out/lib/modules/$version/build/arch/$archDir/ || true + cp -a --parents arch/$archDir/kernel/asm-offsets.s $out/lib/modules/$version/build/arch/$archDir/kernel/ || true + + # copy scripts + rm -f scripts/*.o + rm -f scripts/*/*.o + cp -a scripts $out/lib/modules/$version/build + + # copy include files + includeDir=$out/lib/modules/$version/build/include + mkdir -p $includeDir + (cd include && cp -a * $includeDir) + (cd arch/$archDir/include && cp -a * $includeDir || true) + (cd arch/$archDir/include && cp -a asm/* $includeDir/asm/ || true) + (cd arch/$archDir/include/asm/mach-generic && cp -a * $includeDir/ || true) + fi fi - # move this to install later on - # largely copied from early FC3 kernel spec files - version=$(cd $out/lib/modules && ls -d *) - - # remove symlinks and create directories - rm -f $out/lib/modules/$version/build - rm -f $out/lib/modules/$version/source - mkdir $out/lib/modules/$version/build - - # copy config - cp .config $out/lib/modules/$version/build/.config - ln -s $out/lib/modules/$version/build/.config $out/config - - if test "$arch" != um; then - # copy all Makefiles and Kconfig files - ln -s $out/lib/modules/$version/build $out/lib/modules/$version/source - cp --parents `find -type f -name Makefile -o -name "Kconfig*"` $out/lib/modules/$version/build - cp Module.symvers $out/lib/modules/$version/build - - if test "$dontStrip" = "1"; then - # copy any debugging info that can be found - cp --parents -rv `find -name \*.debug -o -name debug.a` \ - "$out/lib/modules/$version/build" - fi - - # weed out unneeded stuff - rm -rf $out/lib/modules/$version/build/Documentation - rm -rf $out/lib/modules/$version/build/scripts - rm -rf $out/lib/modules/$version/build/include - - # copy architecture dependent files - cp -a arch/$archDir/scripts $out/lib/modules/$version/build/ || true - cp -a arch/$archDir/*lds $out/lib/modules/$version/build/ || true - cp -a arch/$archDir/Makefile*.cpu $out/lib/modules/$version/build/arch/$archDir/ || true - cp -a --parents arch/$archDir/kernel/asm-offsets.s $out/lib/modules/$version/build/arch/$archDir/kernel/ || true - - # copy scripts - rm -f scripts/*.o - rm -f scripts/*/*.o - cp -a scripts $out/lib/modules/$version/build - - # copy include files - includeDir=$out/lib/modules/$version/build/include - mkdir -p $includeDir - (cd include && cp -a * $includeDir) - (cd arch/$archDir/include && cp -a * $includeDir || true) - (cd arch/$archDir/include && cp -a asm/* $includeDir/asm/ || true) - (cd arch/$archDir/include/asm/mach-generic && cp -a * $includeDir/ || true) + if test -n "$postInstall"; then + eval "$postInstall"; fi } diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 40860384122..f5dd09a2ccc 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -37,11 +37,12 @@ , preConfigure ? "" , extraMeta ? {} , ubootChooser ? null +, postInstall ? "" , ... }: assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" - || stdenv.system == "armv5tel-linux"; + || stdenv.system == "armv5tel-linux" || stdenv.system == "ict_loongson-2_v0.3_fpu_v0.1-linux"; assert stdenv.platform.name == "sheevaplug" -> stdenv.platform.uboot != null; @@ -72,7 +73,7 @@ stdenv.mkDerivation { generateConfig = ./generate-config.pl; - inherit preConfigure src module_init_tools localVersion; + inherit preConfigure src module_init_tools localVersion postInstall; patches = map (p: p.patch) kernelPatches; @@ -98,6 +99,7 @@ stdenv.mkDerivation { if stdenv.system == "i686-linux" then "i386" else if stdenv.system == "x86_64-linux" then "x86_64" else if stdenv.system == "armv5tel-linux" then "arm" else + if stdenv.system == "ict_loongson-2_v0.3_fpu_v0.1-linux" then "mips" else abort "Platform ${stdenv.system} is not supported."; crossAttrs = let diff --git a/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix b/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix new file mode 100644 index 00000000000..0eb291d5b55 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix @@ -0,0 +1,241 @@ +args @ { stdenv, fetchurl, fetchsvn, userModeLinux ? false, extraConfig ? "" +, ... }: + +let + configWithPlatform = kernelPlatform : + '' + # Don't include any debug features. + DEBUG_KERNEL n + + # Support drivers that need external firmware. + STANDALONE n + + # Make /proc/config.gz available. + IKCONFIG_PROC y + + # Optimize with -O2, not -Os. + CC_OPTIMIZE_FOR_SIZE n + + # Enable the kernel's built-in memory tester. + MEMTEST y + + # Include the CFQ I/O scheduler in the kernel, rather than as a + # module, so that the initrd gets a good I/O scheduler. + IOSCHED_CFQ y + + # Disable some expensive (?) features. + FTRACE n + KPROBES n + NUMA? n + PM_TRACE_RTC n + + # Enable various subsystems. + ACCESSIBILITY y # Accessibility support + AUXDISPLAY y # Auxiliary Display support + DONGLE y # Serial dongle support + HIPPI y + MTD_COMPLEX_MAPPINGS y # needed for many devices + NET_POCKET y # enable pocket and portable adapters + SCSI_LOWLEVEL y # enable lots of SCSI devices + SCSI_LOWLEVEL_PCMCIA y + SPI y # needed for many devices + SPI_MASTER y + WAN y + + # Networking options. + IP_PNP n + IPV6_PRIVACY y + NETFILTER_ADVANCED y + IP_VS_PROTO_TCP y + IP_VS_PROTO_UDP y + IP_VS_PROTO_ESP y + IP_VS_PROTO_AH y + IP_DCCP_CCID3 n # experimental + CLS_U32_PERF y + CLS_U32_MARK y + + # Wireless networking. + IPW2100_MONITOR y # support promiscuous mode + IPW2200_MONITOR y # support promiscuous mode + IWL4965 y # Intel Wireless WiFi 4965AGN + IWL5000 y # Intel Wireless WiFi 5000AGN + HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver + HOSTAP_FIRMWARE_NVRAM y + + # Some settings to make sure that fbcondecor works - in particular, + # disable tileblitting and the drivers that need it. + + # Enable various FB devices. + FB y + FB_EFI y + FB_NVIDIA_I2C y # Enable DDC Support + FB_RIVA_I2C y + FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support + FB_ATY_GX y # Mach64 GX support + FB_SAVAGE_I2C y + FB_SAVAGE_ACCEL y + FB_SIS_300 y + FB_SIS_315 y + FB_3DFX_ACCEL y + FB_GEODE y + + # Video configuration + # The intel drivers already require KMS + DRM_I915_KMS y + + # Sound. + SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode + SND_HDA_INPUT_BEEP y # Support digital beep via input layer + SND_USB_CAIAQ_INPUT y + PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible) + + # USB serial devices. + USB_SERIAL_GENERIC y # USB Generic Serial Driver + USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices + USB_SERIAL_KEYSPAN_USA28 y + USB_SERIAL_KEYSPAN_USA28X y + USB_SERIAL_KEYSPAN_USA28XA y + USB_SERIAL_KEYSPAN_USA28XB y + USB_SERIAL_KEYSPAN_USA19 y + USB_SERIAL_KEYSPAN_USA18X y + USB_SERIAL_KEYSPAN_USA19W y + USB_SERIAL_KEYSPAN_USA19QW y + USB_SERIAL_KEYSPAN_USA19QI y + USB_SERIAL_KEYSPAN_USA49W y + USB_SERIAL_KEYSPAN_USA49WLC y + + # Filesystem options - in particular, enable extended attributes and + # ACLs for all filesystems that support them. + EXT2_FS_XATTR y # Ext2 extended attributes + EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists + EXT2_FS_SECURITY y # Ext2 Security Labels + EXT2_FS_XIP y # Ext2 execute in place support + EXT4_FS_POSIX_ACL y + EXT4_FS_SECURITY y + REISERFS_FS_XATTR y + REISERFS_FS_POSIX_ACL y + REISERFS_FS_SECURITY y + JFS_POSIX_ACL y + JFS_SECURITY y + XFS_QUOTA y + XFS_POSIX_ACL y + XFS_RT y # XFS Realtime subvolume support + OCFS2_DEBUG_MASKLOG n + BTRFS_FS_POSIX_ACL y + UBIFS_FS_XATTR y + UBIFS_FS_ADVANCED_COMPR y + NFSD_V2_ACL y + NFSD_V3 y + NFSD_V3_ACL y + NFSD_V4 y + CIFS_XATTR y + CIFS_POSIX y + + # Security related features. + STRICT_DEVMEM y # Filter access to /dev/mem + SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default + + # Misc. options. + 8139TOO_8129 y + 8139TOO_PIO n # PIO is slower + AIC79XX_DEBUG_ENABLE n + AIC7XXX_DEBUG_ENABLE n + AIC94XX_DEBUG n + B43_PCMCIA y + BLK_DEV_BSG n + BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support + BLK_DEV_IDEACPI y # IDE ACPI support + BLK_DEV_INTEGRITY y + BSD_PROCESS_ACCT_V3 y + BT_HCIUART_BCSP y + BT_HCIUART_H4 y # UART (H4) protocol support + BT_HCIUART_LL y + BT_RFCOMM_TTY y # RFCOMM TTY support + CPU_FREQ_DEBUG n + CRASH_DUMP n + DMAR? n # experimental + DVB_DYNAMIC_MINORS y # we use udev + FUSION y # Fusion MPT device support + IDE_GD_ATAPI y # ATAPI floppy support + IRDA_ULTRA y # Ultra (connectionless) protocol + JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels + JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels + JOYSTICK_XPAD_FF y # X-Box gamepad rumble support + JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED + KALLSYMS_EXTRA_PASS n + LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support + LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger + LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback + LOGO n # not needed + MEDIA_ATTACH y + MEGARAID_NEWGEN y + MICROCODE_AMD y + MODVERSIONS y + MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension + MTRR_SANITIZER y + NET_FC y # Fibre Channel driver support + PPP_MULTILINK y # PPP multilink support + REGULATOR y # Voltage and Current Regulator Support + SCSI_LOGGING y # SCSI logging facility + SERIAL_8250 y # 8250/16550 and compatible serial support + SLIP_COMPRESSED y # CSLIP compressed headers + SLIP_SMART y + THERMAL_HWMON y # Hardware monitoring support + USB_DEBUG n + USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators + X86_CHECK_BIOS_CORRUPTION y + X86_MCE y + + ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""} + ${extraConfig} + ''; +in + +import ./generic.nix ( + + rec { + version = "qi_lb60-2.6.34.1-openwrt-22513"; + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.34.1.tar.bz2"; + sha256 = "0v78yvkwr100v7bnrkkabxmpv5hjg1ngrjbr5d0kkzsw4d7bmm5x"; + }; + + srcPatch = fetchsvn { + url = "svn://svn.openwrt.org/openwrt/trunk/target/linux"; + rev = 22513; + sha256 = "0b7wzgqnbq8sq32z9ik08n1b7fnc9v9d91zwvb6qz7vj3dlrxw3g"; + }; + + preConfigure = '' + cp -R ${srcPatch}/generic/files/* . + chmod +w -R * + GLOBIGNORE='.:..:*preinit_as_init*' + for a in ${srcPatch}/generic/patches-2.6.34/* ${srcPatch}/xburst/patches-2.6.34/* ; do + echo applying patch $a + patch -p1 < $a + done + unset GLOBIGNORE + cat ${srcPatch}/generic/config-2.6.34 ${srcPatch}/xburst/config-2.6.34 \ + ${srcPatch}/xburst/qi_lb60/config-2.6.34 > arch/mips/configs/qi_lb60_defconfig + ''; + + postInstall = '' + set -x + gzip -9 -c $out/vmlinux.bin > $out/vmlinux.bin.gz + KERNEL_ENTRY="0x`$crossConfig-nm $out/vmlinux 2>/dev/null | + grep " kernel_entry" | cut -f1 -d ' '`" + mkimage -A mips -O linux -T kernel -a 0x80010000 -C gzip \ + -e $KERNEL_ENTRY -n "MIPS Nix Linux-2.6.34" \ + -d $out/vmlinux.bin.gz $out/uImage + set +x + ''; + + config = configWithPlatform stdenv.platform; + configCross = configWithPlatform stdenv.cross.platform; + + features.iwlwifi = true; + } + + // removeAttrs args ["extraConfig"] +) diff --git a/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix b/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix new file mode 100644 index 00000000000..ac0b000f9cd --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix @@ -0,0 +1,241 @@ +args @ { stdenv, fetchurl, fetchsvn, userModeLinux ? false, extraConfig ? "" +, ... }: + +let + configWithPlatform = kernelPlatform : + '' + # Don't include any debug features. + DEBUG_KERNEL n + + # Support drivers that need external firmware. + STANDALONE n + + # Make /proc/config.gz available. + IKCONFIG_PROC y + + # Optimize with -O2, not -Os. + CC_OPTIMIZE_FOR_SIZE n + + # Enable the kernel's built-in memory tester. + MEMTEST y + + # Include the CFQ I/O scheduler in the kernel, rather than as a + # module, so that the initrd gets a good I/O scheduler. + IOSCHED_CFQ y + + # Disable some expensive (?) features. + FTRACE n + KPROBES n + NUMA? n + PM_TRACE_RTC n + + # Enable various subsystems. + ACCESSIBILITY y # Accessibility support + AUXDISPLAY y # Auxiliary Display support + DONGLE y # Serial dongle support + HIPPI y + MTD_COMPLEX_MAPPINGS y # needed for many devices + NET_POCKET y # enable pocket and portable adapters + SCSI_LOWLEVEL y # enable lots of SCSI devices + SCSI_LOWLEVEL_PCMCIA y + SPI y # needed for many devices + SPI_MASTER y + WAN y + + # Networking options. + IP_PNP n + IPV6_PRIVACY y + NETFILTER_ADVANCED y + IP_VS_PROTO_TCP y + IP_VS_PROTO_UDP y + IP_VS_PROTO_ESP y + IP_VS_PROTO_AH y + IP_DCCP_CCID3 n # experimental + CLS_U32_PERF y + CLS_U32_MARK y + + # Wireless networking. + IPW2100_MONITOR y # support promiscuous mode + IPW2200_MONITOR y # support promiscuous mode + IWL4965 y # Intel Wireless WiFi 4965AGN + IWL5000 y # Intel Wireless WiFi 5000AGN + HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver + HOSTAP_FIRMWARE_NVRAM y + + # Some settings to make sure that fbcondecor works - in particular, + # disable tileblitting and the drivers that need it. + + # Enable various FB devices. + FB y + FB_EFI y + FB_NVIDIA_I2C y # Enable DDC Support + FB_RIVA_I2C y + FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support + FB_ATY_GX y # Mach64 GX support + FB_SAVAGE_I2C y + FB_SAVAGE_ACCEL y + FB_SIS_300 y + FB_SIS_315 y + FB_3DFX_ACCEL y + FB_GEODE y + + # Video configuration + # The intel drivers already require KMS + DRM_I915_KMS y + + # Sound. + SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode + SND_HDA_INPUT_BEEP y # Support digital beep via input layer + SND_USB_CAIAQ_INPUT y + PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible) + + # USB serial devices. + USB_SERIAL_GENERIC y # USB Generic Serial Driver + USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices + USB_SERIAL_KEYSPAN_USA28 y + USB_SERIAL_KEYSPAN_USA28X y + USB_SERIAL_KEYSPAN_USA28XA y + USB_SERIAL_KEYSPAN_USA28XB y + USB_SERIAL_KEYSPAN_USA19 y + USB_SERIAL_KEYSPAN_USA18X y + USB_SERIAL_KEYSPAN_USA19W y + USB_SERIAL_KEYSPAN_USA19QW y + USB_SERIAL_KEYSPAN_USA19QI y + USB_SERIAL_KEYSPAN_USA49W y + USB_SERIAL_KEYSPAN_USA49WLC y + + # Filesystem options - in particular, enable extended attributes and + # ACLs for all filesystems that support them. + EXT2_FS_XATTR y # Ext2 extended attributes + EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists + EXT2_FS_SECURITY y # Ext2 Security Labels + EXT2_FS_XIP y # Ext2 execute in place support + EXT4_FS_POSIX_ACL y + EXT4_FS_SECURITY y + REISERFS_FS_XATTR y + REISERFS_FS_POSIX_ACL y + REISERFS_FS_SECURITY y + JFS_POSIX_ACL y + JFS_SECURITY y + XFS_QUOTA y + XFS_POSIX_ACL y + XFS_RT y # XFS Realtime subvolume support + OCFS2_DEBUG_MASKLOG n + BTRFS_FS_POSIX_ACL y + UBIFS_FS_XATTR y + UBIFS_FS_ADVANCED_COMPR y + NFSD_V2_ACL y + NFSD_V3 y + NFSD_V3_ACL y + NFSD_V4 y + CIFS_XATTR y + CIFS_POSIX y + + # Security related features. + STRICT_DEVMEM y # Filter access to /dev/mem + SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default + + # Misc. options. + 8139TOO_8129 y + 8139TOO_PIO n # PIO is slower + AIC79XX_DEBUG_ENABLE n + AIC7XXX_DEBUG_ENABLE n + AIC94XX_DEBUG n + B43_PCMCIA y + BLK_DEV_BSG n + BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support + BLK_DEV_IDEACPI y # IDE ACPI support + BLK_DEV_INTEGRITY y + BSD_PROCESS_ACCT_V3 y + BT_HCIUART_BCSP y + BT_HCIUART_H4 y # UART (H4) protocol support + BT_HCIUART_LL y + BT_RFCOMM_TTY y # RFCOMM TTY support + CPU_FREQ_DEBUG n + CRASH_DUMP n + DMAR? n # experimental + DVB_DYNAMIC_MINORS y # we use udev + FUSION y # Fusion MPT device support + IDE_GD_ATAPI y # ATAPI floppy support + IRDA_ULTRA y # Ultra (connectionless) protocol + JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels + JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels + JOYSTICK_XPAD_FF y # X-Box gamepad rumble support + JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED + KALLSYMS_EXTRA_PASS n + LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support + LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger + LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback + LOGO n # not needed + MEDIA_ATTACH y + MEGARAID_NEWGEN y + MICROCODE_AMD y + MODVERSIONS y + MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension + MTRR_SANITIZER y + NET_FC y # Fibre Channel driver support + PPP_MULTILINK y # PPP multilink support + REGULATOR y # Voltage and Current Regulator Support + SCSI_LOGGING y # SCSI logging facility + SERIAL_8250 y # 8250/16550 and compatible serial support + SLIP_COMPRESSED y # CSLIP compressed headers + SLIP_SMART y + THERMAL_HWMON y # Hardware monitoring support + USB_DEBUG n + USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators + X86_CHECK_BIOS_CORRUPTION y + X86_MCE y + + ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""} + ${extraConfig} + ''; +in + +import ./generic.nix ( + + rec { + version = "qi_lb60-2.6.35-openwrt-22513"; + + src = fetchurl { + url = "mirror://kernel/linux/kernel/v2.6/linux-2.6.35.tar.bz2"; + sha256 = "1kxz87nwksx4hvq1i45i9w1zq1fb09rvf8i6jin3cbh36v1y5chq"; + }; + + srcPatch = fetchsvn { + url = "svn://svn.openwrt.org/openwrt/trunk/target/linux"; + rev = 22530; + sha256 = "1j5ls7dg0pvdxh6isczmq4r0lkwhz1c1s46mvdkcjsm3qq633fpc"; + }; + + preConfigure = '' + cp -R ${srcPatch}/generic/files/* . + chmod +w -R * + GLOBIGNORE='.:..:*preinit_as_init*' + for a in ${srcPatch}/generic/patches-2.6.35/* ${srcPatch}/xburst/patches-2.6.35/* ; do + echo applying patch $a + patch -p1 < $a + done + unset GLOBIGNORE + cat ${srcPatch}/generic/config-2.6.35 ${srcPatch}/xburst/config-2.6.35 \ + ${srcPatch}/xburst/qi_lb60/config-2.6.35 > arch/mips/configs/qi_lb60_defconfig + ''; + + postInstall = '' + set -x + gzip -9 -c $out/vmlinux.bin > $out/vmlinux.bin.gz + KERNEL_ENTRY="0x`$crossConfig-nm $out/vmlinux 2>/dev/null | + grep " kernel_entry" | cut -f1 -d ' '`" + mkimage -A mips -O linux -T kernel -a 0x80010000 -C gzip \ + -e $KERNEL_ENTRY -n "MIPS Nix Linux-2.6.35" \ + -d $out/vmlinux.bin.gz $out/uImage + set +x + ''; + + config = configWithPlatform stdenv.platform; + configCross = configWithPlatform stdenv.cross.platform; + + features.iwlwifi = true; + } + + // removeAttrs args ["extraConfig"] +) diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix index c3967f4f1ab..5a27816472d 100644 --- a/pkgs/os-specific/linux/klibc/default.nix +++ b/pkgs/os-specific/linux/klibc/default.nix @@ -1,26 +1,47 @@ -{stdenv, fetchurl, perl, bison, mktemp, linuxHeaders}: +{stdenv, fetchurl, perl, bison, mktemp, linuxHeaders, linuxHeadersCross}: assert stdenv.isLinux; -let version = "1.5.15"; in +let + version = "1.5.18"; + baseMakeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"]; +in stdenv.mkDerivation { name = "klibc-${version}"; src = fetchurl { - url = "mirror://kernel/linux/libs/klibc/klibc-${version}.tar.bz2"; - sha256 = "1x401wmjca6zkyikf9xz45b3wb1hnj0m2s9in1sg6xdhi3pk8lwb"; + url = "mirror://kernel/linux/libs/klibc/1.5/klibc-${version}.tar.bz2"; + sha256 = "0ik4ddkfzjrrhpb50i31f2zihqlcnm82yqnl5ci59wx56j5ly474"; }; - makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"]; + makeFlags = baseMakeFlags; + + inherit linuxHeaders; + + crossAttrs = { + makeFlags = baseMakeFlags ++ [ "CROSS_COMPILE=${stdenv.cross.config}-" + "KLIBCARCH=${stdenv.cross.arch}" ]; + + patchPhase = '' + sed -i 's/-fno-pic -mno-abicalls/& -mabi=32/' usr/klibc/arch/mips/MCONFIG + sed -i /KLIBCKERNELSRC/d scripts/Kbuild.install + # Wrong check for __mips64 in klibc + sed -i s/__mips64__/__mips64/ usr/include/fcntl.h + ''; + + linuxHeaders = linuxHeadersCross; + }; + # The AEABI option concerns only arm systems, and does not affect the build for + # other systems. preBuild = '' sed -i /CONFIG_AEABI/d defconfig echo "CONFIG_AEABI=y" >> defconfig makeFlags=$(eval "echo $makeFlags") mkdir linux - cp -prsd ${linuxHeaders}/include linux/ + cp -prsd $linuxHeaders/include linux/ chmod -R u+w linux/include/ ''; # */ @@ -32,5 +53,5 @@ stdenv.mkDerivation { cp usr/dash/sh $dir/ ''; - buildInputs = [perl bison mktemp]; + buildNativeInputs = [ perl bison mktemp ]; } diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix index cffb7e8353d..9a2dc2d28ac 100644 --- a/pkgs/os-specific/linux/lvm2/default.nix +++ b/pkgs/os-specific/linux/lvm2/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation { src = fetchurl { url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz"; - sha256 = "2a4157b91b7ad5ea84359e8548b64947611beea01862e010be71f54b649e7ad1"; + sha256 = "1lbskrj4pxbipq8f0qhql3p1nqa796v4i1cy6n2fmmbs3fwmfh9a"; }; configureFlags = "--disable-readline --enable-udev_rules --enable-udev_sync"; diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix index f27c6af31bb..0053d89b605 100644 --- a/pkgs/os-specific/linux/pam/default.nix +++ b/pkgs/os-specific/linux/pam/default.nix @@ -9,7 +9,9 @@ stdenv.mkDerivation { }; buildInputs = [ flex cracklib ] - ++ stdenv.lib.optional (stdenv.system != "armv5tel-linux") libxcrypt; + ++ stdenv.lib.optional + (stdenv.system != "armv5tel-linux" && stdenv.system != "ict_loongson-2_v0.3_fpu_v0.1-linux") + libxcrypt; postInstall = '' mv -v $out/sbin/unix_chkpwd{,.orig} diff --git a/pkgs/os-specific/linux/uclibc/default.nix b/pkgs/os-specific/linux/uclibc/default.nix index 83de2ae38ef..5c941f06410 100644 --- a/pkgs/os-specific/linux/uclibc/default.nix +++ b/pkgs/os-specific/linux/uclibc/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, linuxHeaders, cross ? null, gccCross ? null}: +{stdenv, fetchurl, linuxHeaders, libiconv, cross ? null, gccCross ? null}: assert stdenv.isLinux; assert cross != null -> gccCross != null; @@ -31,15 +31,21 @@ stdenv.mkDerivation { sha256 = "0f1fpdwampbw7pf79i64ipj0azk4kbc9wl81ynlp19p92k4klz0h"; }; + # 'ftw' needed to build acl, a coreutils dependency configurePhase = '' make defconfig ${archMakeFlag} sed -e s@/usr/include@${linuxHeaders}/include@ \ -e 's@^RUNTIME_PREFIX.*@RUNTIME_PREFIX="/"@' \ -e 's@^DEVEL_PREFIX.*@DEVEL_PREFIX="/"@' \ -e 's@.*UCLIBC_HAS_WCHAR.*@UCLIBC_HAS_WCHAR=y@' \ + -e 's@.*UCLIBC_HAS_FTW.*@UCLIBC_HAS_FTW=y@' \ -e 's@.*UCLIBC_HAS_RPC.*@UCLIBC_HAS_RPC=y@' \ -e 's@.*DO_C99_MATH.*@DO_C99_MATH=y@' \ -e 's@.*UCLIBC_HAS_PROGRAM_INVOCATION_NAME.*@UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y@' \ + -e 's@.*CONFIG_MIPS_ISA_1.*@#CONFIG_MIPS_ISA_1=y@' \ + -e 's@.*CONFIG_MIPS_ISA_3.*@CONFIG_MIPS_ISA_3=y@' \ + -e 's@.*CONFIG_MIPS_O32_ABI.*@#CONFIG_MIPS_O32_ABI=y@' \ + -e 's@.*CONFIG_MIPS_N32_ABI.*@CONFIG_MIPS_N32_ABI=y@' \ ${configArmEABI} \ ${configBigEndian} \ -i .config @@ -59,6 +65,11 @@ stdenv.mkDerivation { (cd $out/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .) sed -i s@/lib/@$out/lib/@g $out/lib/libc.so ''; + + passthru = { + # Derivations may check for the existance of this attribute, to know what to link to. + inherit libiconv; + }; meta = { homepage = http://www.uclibc.org/; diff --git a/pkgs/os-specific/linux/util-linux-ng/default.nix b/pkgs/os-specific/linux/util-linux-ng/default.nix index ca21deb6489..60ffeb70737 100644 --- a/pkgs/os-specific/linux/util-linux-ng/default.nix +++ b/pkgs/os-specific/linux/util-linux-ng/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, ncurses ? null }: stdenv.mkDerivation rec { - name = "util-linux-ng-2.17.2"; + name = "util-linux-ng-2.18"; src = fetchurl { - url = "mirror://kernel/linux/utils/util-linux-ng/v2.17/${name}.tar.bz2"; - sha256 = "13qifk3i1x59q45fpdz8qnnm7vrhd2zshy5295vhpcjsd8dq1bn9"; + url = "mirror://kernel/linux/utils/util-linux-ng/v2.18/${name}.tar.bz2"; + sha256 = "1k1in1ba9kvh0kplri9765wh0yk68qrkk1a55dqsm21qfryc1idq"; }; configureFlags = '' |