diff --git a/lib/types.nix b/lib/types.nix index bdd21f12395..afc8f80eb0e 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -132,7 +132,7 @@ rec { { inherit (def) file; value = listToAttrs ( imap (elemIdx: elem: - { name = "unnamed-${toString defIdx}.${toString elemIdx}"; + { name = "${elem.name or "unnamed"}-${toString defIdx}.${toString elemIdx}"; value = elem; }) def.value); } diff --git a/nixos/doc/manual/configuration.xml b/nixos/doc/manual/configuration.xml index e6d7dee251a..da08098ddda 100644 --- a/nixos/doc/manual/configuration.xml +++ b/nixos/doc/manual/configuration.xml @@ -1025,7 +1025,6 @@ users.extraUsers.alice = home = "/home/alice"; description = "Alice Foobar"; extraGroups = [ "wheel" ]; - isSystemUser = false; useDefaultShell = true; openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ]; }; diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index f70e8c292c4..a0fd99732bd 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -403,24 +403,21 @@ in let mkhomeUsers = filterAttrs (n: u: u.createHome) cfg.extraUsers; setpwUsers = filterAttrs (n: u: u.createUser) cfg.extraUsers; + pwFile = u: if !(isNull u.hashedPassword) + then pkgs.writeTextFile { name = "password-file"; text = u.hashedPassword; } + else if !(isNull u.password) + then pkgs.runCommand "password-file" { pw = u.password; } '' + echo -n "$pw" | ${pkgs.mkpasswd}/bin/mkpasswd -s > $out + '' else u.passwordFile; setpw = n: u: '' setpw=yes ${optionalString cfg.mutableUsers '' test "$(getent shadow '${u.name}' | cut -d: -f2)" != "x" && setpw=no ''} if [ "$setpw" == "yes" ]; then - ${if !(isNull u.hashedPassword) + ${if !(isNull (pwFile u)) then '' - echo "${u.name}:${u.hashedPassword}" | \ - ${pkgs.shadow}/sbin/chpasswd -e'' - else if u.password == "" - then "passwd -d '${u.name}' &>/dev/null" - else if !(isNull u.password) - then '' - echo "${u.name}:${u.password}" | ${pkgs.shadow}/sbin/chpasswd'' - else if !(isNull u.passwordFile) - then '' - echo -n "${u.name}:" | cat - "${u.passwordFile}" | \ + echo -n "${u.name}:" | cat - "${pwFile u}" | \ ${pkgs.shadow}/sbin/chpasswd -e '' else "passwd -l '${u.name}' &>/dev/null" diff --git a/nixos/modules/services/x11/mesa.nix b/nixos/modules/hardware/opengl.nix similarity index 89% rename from nixos/modules/services/x11/mesa.nix rename to nixos/modules/hardware/opengl.nix index 12fc7ae1178..603012cb109 100644 --- a/nixos/modules/services/x11/mesa.nix +++ b/nixos/modules/hardware/opengl.nix @@ -2,19 +2,19 @@ let inherit (pkgs.lib) mkOption types mkIf optional optionals elem optionalString optionalAttrs; - cfg = config.services.mesa; + cfg = config.hardware.opengl; kernelPackages = config.boot.kernelPackages; in { options = { - services.mesa.enable = mkOption { - description = "Whether this configuration requires mesa."; + hardware.opengl.enable = mkOption { + description = "Whether this configuration requires opengl."; type = types.bool; default = false; internal = true; }; - services.mesa.driSupport = mkOption { + hardware.opengl.driSupport = mkOption { type = types.bool; default = true; description = '' @@ -23,18 +23,18 @@ in { ''; }; - services.mesa.driSupport32Bit = mkOption { + hardware.opengl.driSupport32Bit = mkOption { type = types.bool; default = false; description = '' On 64-bit systems, whether to support Direct Rendering for 32-bit applications (such as Wine). This is currently only supported for the nvidia driver and for - mesa. + Mesa. ''; }; - services.mesa.s3tcSupport = mkOption { + hardware.opengl.s3tcSupport = mkOption { type = types.bool; default = false; description = '' @@ -47,15 +47,15 @@ in { }; - services.mesa.videoDrivers = mkOption { + hardware.opengl.videoDrivers = mkOption { type = types.listOf types.str; # !!! We'd like "nv" here, but it segfaults the X server. default = [ "ati" "cirrus" "intel" "vesa" "vmware" ]; example = [ "vesa" ]; description = '' - The names of the video drivers that the mesa should - support. Mesa will try all of the drivers listed - here until it finds one that supports your video card. + The names of the opengl video drivers the configuration + supports. They will be tried in order until one that + supports your card is found. ''; }; }; diff --git a/nixos/modules/hardware/video/bumblebee.nix b/nixos/modules/hardware/video/bumblebee.nix new file mode 100644 index 00000000000..504da2cde85 --- /dev/null +++ b/nixos/modules/hardware/video/bumblebee.nix @@ -0,0 +1,41 @@ +{ config, pkgs, ... }: + +let kernel = config.boot.kernelPackages; in +with pkgs.lib; + +{ + + options = { + hardware.bumblebee.enable = mkOption { + default = false; + type = types.bool; + description = '' + Enable the bumblebee daemon to manage Optimus hybrid video cards. + This should power off secondary GPU until its use is requested + by running an application with optirun. + + Only nvidia driver is supported so far. + ''; + }; + }; + + config = mkIf config.hardware.bumblebee.enable { + boot.blacklistedKernelModules = [ "nouveau" "nvidia" ]; + boot.kernelModules = [ "bbswitch" ]; + boot.extraModulePackages = [ kernel.bbswitch kernel.nvidia_x11 ]; + + environment.systemPackages = [ pkgs.bumblebee ]; + + systemd.services.bumblebeed = { + description = "Bumblebee Hybrid Graphics Switcher"; + wantedBy = [ "display-manager.service" ]; + script = "bumblebeed --use-syslog"; + path = [ kernel.bbswitch pkgs.bumblebee ]; + serviceConfig = { + Restart = "always"; + RestartSec = 60; + CPUSchedulingPolicy = "idle"; + }; + }; + }; +} diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix index 2a28131c28c..07c054b391a 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix @@ -36,7 +36,7 @@ with pkgs.lib; isoImage.makeEfiBootable = true; # Add Memtest86+ to the CD. - boot.loader.grub.memtest86 = true; + boot.loader.grub.memtest86.enable = true; # Get a console as soon as the initrd loads fbcon on EFI boot boot.initrd.kernelModules = [ "fbcon" ]; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index aa4bada8b28..c66cccb3975 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -29,7 +29,9 @@ ./hardware/network/intel-3945abg.nix ./hardware/network/ralink.nix ./hardware/network/rtl8192c.nix + ./hardware/opengl.nix ./hardware/pcmcia.nix + ./hardware/video/bumblebee.nix ./installer/tools/nixos-checkout.nix ./installer/tools/tools.nix ./misc/assertions.nix @@ -235,7 +237,6 @@ ./services/x11/hardware/multitouch.nix ./services/x11/hardware/synaptics.nix ./services/x11/hardware/wacom.nix - ./services/x11/mesa.nix ./services/x11/window-managers/awesome.nix #./services/x11/window-managers/compiz.nix ./services/x11/window-managers/default.nix diff --git a/nixos/modules/profiles/demo.nix b/nixos/modules/profiles/demo.nix index 396dcf6c5d3..605cc6aad1d 100644 --- a/nixos/modules/profiles/demo.nix +++ b/nixos/modules/profiles/demo.nix @@ -11,6 +11,6 @@ createHome = true; useDefaultShell = true; password = "demo"; - isSystemUser = false; + uid = 1000; }; } diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 15e05a3d675..8393b5758f3 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -119,6 +119,10 @@ in zipModules ([] ++ obsolete [ "services" "xserver" "driSupport32Bit" ] [ "services" "mesa" "driSupport32Bit" ] ++ obsolete [ "services" "xserver" "s3tcSupport" ] [ "services" "mesa" "s3tcSupport" ] ++ obsolete [ "services" "xserver" "videoDrivers" ] [ "services" "mesa" "videoDrivers" ] +++ obsolete [ "services" "mesa" "driSupport" ] [ "hardware" "opengl" "driSupport" ] +++ obsolete [ "services" "mesa" "driSupport32Bit" ] [ "hardware" "opengl" "driSupport32Bit" ] +++ obsolete [ "services" "mesa" "s3tcSupport" ] [ "hardware" "opengl" "s3tcSupport" ] +++ obsolete [ "services" "mesa" "videoDrivers" ] [ "hardware" "opengl" "videoDrivers" ] # Options that are obsolete and have no replacement. ++ obsolete' [ "boot" "loader" "grub" "bootDevice" ] diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 0b079e3567a..2db96d9cd31 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -31,7 +31,7 @@ let [modem-manager] Identity=unix-group:networkmanager - Action=org.freedesktop.ModemManager.* + Action=org.freedesktop.ModemManager* ResultAny=yes ResultInactive=no ResultActive=yes @@ -42,7 +42,7 @@ let subject.isInGroup("networkmanager") && subject.active && (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 - || action.id.indexOf("org.freedesktop.ModemManager.") == 0 + || action.id.indexOf("org.freedesktop.ModemManager") == 0 )) { return polkit.Result.YES; } }); @@ -161,6 +161,7 @@ in { networkmanager_vpnc networkmanager_openconnect networkmanager_pptp + modemmanager ]; users.extraGroups = singleton { @@ -177,7 +178,7 @@ in { description = "NetworkManager initialisation"; wantedBy = [ "network.target" ]; partOf = [ "NetworkManager.service" ]; - wants = [ "NetworkManager.service" ]; + wants = [ "ModemManager.service" ]; before = [ "NetworkManager.service" ]; script = '' mkdir -m 700 -p /etc/NetworkManager/system-connections @@ -206,6 +207,7 @@ in { networkmanager_vpnc networkmanager_openconnect networkmanager_pptp + modemmanager ]; services.udev.packages = cfg.packages; diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix index 302e660a7bf..eb68a3d95d8 100644 --- a/nixos/modules/services/ttys/kmscon.nix +++ b/nixos/modules/services/ttys/kmscon.nix @@ -73,6 +73,6 @@ in { hwaccel ''; - services.mesa.enable = mkIf cfg.hwRender true; + hardware.opengl.enable = mkIf cfg.hwRender true; }; } diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix index 423087991e1..af2e2cae797 100644 --- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix +++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix @@ -93,6 +93,10 @@ let ensureDir $out cp -r * $out cp ${mediawikiConfig} $out/LocalSettings.php + sed -i 's|/bin/bash|${pkgs.stdenv.shell}|' \ + $out/maintenance/fuzz-tester.php \ + $out/bin/ulimit.sh \ + $out/includes/GlobalFunctions.php ''; }; @@ -290,6 +294,7 @@ in echo COMMIT ) | ${pkgs.postgresql}/bin/psql -U "${config.dbUser}" "${config.dbName}" fi + ${php}/bin/php ${mediawikiRoot}/maintenance/update.php ''); robotsEntries = optionalString (config.articleUrlPrefix != "") diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 6c43112c813..ecb6706544a 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -52,6 +52,7 @@ in { gnome3.gnome_terminal gnome3.gnome_icon_theme gnome3.gnome_themes_standard + gnome3.gnome_control_center ]; }; diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 5600ce7fac1..2677f758456 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -22,7 +22,7 @@ let virtualbox = { modules = [ kernelPackages.virtualboxGuestAdditions ]; driverName = "vboxvideo"; }; }; - driverNames = config.services.mesa.videoDrivers; + driverNames = config.hardware.opengl.videoDrivers; drivers = flip map driverNames (name: { inherit name; driverName = name; } // @@ -181,7 +181,7 @@ in description = '' The name of the video driver for your graphics card. This option is obsolete; please set the - instead. + instead. ''; }; @@ -381,8 +381,8 @@ in ###### implementation config = mkIf cfg.enable { - services.mesa.enable = true; - services.mesa.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ]; + hardware.opengl.enable = true; + hardware.opengl.videoDrivers = mkIf (cfg.videoDriver != null) [ cfg.videoDriver ]; assertions = [ { assertion = !(cfg.startOpenSSHAgent && cfg.startGnuPGAgent); diff --git a/nixos/modules/system/boot/loader/grub/memtest.nix b/nixos/modules/system/boot/loader/grub/memtest.nix index 80c1a160cfd..2461d1f80c7 100644 --- a/nixos/modules/system/boot/loader/grub/memtest.nix +++ b/nixos/modules/system/boot/loader/grub/memtest.nix @@ -6,28 +6,83 @@ with pkgs.lib; let memtest86 = pkgs.memtest86plus; + cfg = config.boot.loader.grub.memtest86; + params = concatStringsSep " " cfg.params; in { options = { - boot.loader.grub.memtest86 = mkOption { - default = false; - type = types.bool; - description = '' - Make Memtest86+, a memory testing program, available from the - GRUB boot menu. - ''; + boot.loader.grub.memtest86 = { + + enable = mkOption { + default = false; + type = types.bool; + description = '' + Make Memtest86+, a memory testing program, available from the + GRUB boot menu. + ''; + }; + + params = mkOption { + default = []; + example = [ "console=ttyS0,115200" ]; + type = types.listOf types.str; + description = '' + Parameters added to the Memtest86+ command line. As of memtest86+ 5.01 + the following list of (apparently undocumented) parameters are + accepted: + + + + + console=..., set up a serial console. + Examples: + console=ttyS0, + console=ttyS0,9600 or + console=ttyS0,115200n8. + + + + btrace, enable boot trace. + + + + maxcpus=N, limit number of CPUs. + + + + onepass, run one pass and exit if there + are no errors. + + + + tstlist=..., list of tests to run. + Example: 0,1,2. + + + + cpumask=..., set a CPU mask, to select CPUs + to use for testing. + + + + + This list of command line options was obtained by reading the + Memtest86+ source code. + ''; + }; + }; }; - config = mkIf config.boot.loader.grub.memtest86 { + config = mkIf cfg.enable { boot.loader.grub.extraEntries = if config.boot.loader.grub.version == 2 then '' menuentry "Memtest86+" { - linux16 @bootRoot@/memtest.bin + linux16 @bootRoot@/memtest.bin ${params} } '' else diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index 8547682284f..117c526fcd3 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -39,153 +39,123 @@ let ${optionalString (luks.yubikeySupport && (yubikey != null)) '' rbtohex() { - od -An -vtx1 | tr -d ' \n' + ( od -An -vtx1 | tr -d ' \n' ) } hextorb() { - tr '[:lower:]' '[:upper:]' | sed -e 's|\([0-9A-F]\{2\}\)|\\\\\\x\1|gI' | xargs printf - } - - take() { - local c="$1" - shift - head -c $c "$@" - } - - drop() { - local c="$1" - shift - if [ -e "$1" ]; then - cat "$1" | ( dd of=/dev/null bs="$c" count=1 2>/dev/null ; dd 2>/dev/null ) - else - ( dd of=/dev/null bs="$c" count=1 2>/dev/null ; dd 2>/dev/null ) - fi + ( tr '[:lower:]' '[:upper:]' | sed -e 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf ) } open_yubikey() { + # Make all of these local to this function + # to prevent their values being leaked + local salt + local iterations + local k_user + local challenge + local response + local k_luks + local opened + local new_salt + local new_iterations + local new_challenge + local new_response + local new_k_luks + mkdir -p ${yubikey.storage.mountPoint} mount -t ${yubikey.storage.fsType} ${toString yubikey.storage.device} ${yubikey.storage.mountPoint} - local uuid_r - local k_user - local challenge - local k_blob - local aes_blob_decrypted - local checksum_correct - local checksum - local uuid_luks - local user_record - - uuid_luks="$(cryptsetup luksUUID ${device} | take 36 | tr -d '-')" - - ${optionalString (!yubikey.multiUser) '' - user_record="$(cat ${yubikey.storage.mountPoint}${yubikey.storage.path})" - uuid_r="$(echo -n $user_record | take 32)" - ''} + salt="$(cat ${yubikey.storage.mountPoint}${yubikey.storage.path} | sed -n 1p | tr -d '\n')" + iterations="$(cat ${yubikey.storage.mountPoint}${yubikey.storage.path} | sed -n 2p | tr -d '\n')" + challenge="$(echo -n $salt | openssl-wrap dgst -binary -sha512 | rbtohex)" + response="$(ykchalresp -${toString yubikey.slot} -x $challenge 2>/dev/null)" for try in $(seq 3); do - ${optionalString yubikey.multiUser '' - local user_id - echo -n "Enter user id: " - read -s user_id - echo - ''} - ${optionalString yubikey.twoFactor '' echo -n "Enter two-factor passphrase: " read -s k_user echo ''} - ${optionalString yubikey.multiUser '' - local user_id_hash - user_id_hash="$(echo -n $user_id | openssl-wrap dgst -binary -sha512 | rbtohex)" - - user_record="$(sed -n -e /^$user_id_hash[^$]*$/p ${yubikey.storage.mountPoint}${yubikey.storage.path} | tr -d '\n')" - - if [ ! -z "$user_record" ]; then - user_record="$(echo -n $user_record | drop 128)" - uuid_r="$(echo -n $user_record | take 32)" - ''} - - challenge="$(echo -n $k_user$uuid_r$uuid_luks | openssl-wrap dgst -binary -sha1 | rbtohex)" - - k_blob="$(ykchalresp -${toString yubikey.slot} -x $challenge 2>/dev/null)" - - aes_blob_decrypted="$(echo -n $user_record | drop 32 | hextorb | openssl-wrap enc -d -aes-256-ctr -K $k_blob -iv $uuid_r | rbtohex)" - - checksum="$(echo -n $aes_blob_decrypted | drop 168)" - if [ "$(echo -n $aes_blob_decrypted | hextorb | take 84 | openssl-wrap dgst -binary -sha512 | rbtohex)" == "$checksum" ]; then - checksum_correct=1 - break - else - checksum_correct=0 - echo "Authentication failed!" - fi - - ${optionalString yubikey.multiUser '' + if [ ! -z "$k_user" ]; then + k_luks="$(echo -n $k_user | pbkdf2-sha512 ${toString yubikey.keyLength} $iterations $response | rbtohex)" else - checksum_correct=0 + k_luks="$(echo | pbkdf2-sha512 ${toString yubikey.keyLength} $iterations $response | rbtohex)" + fi + + echo -n "$k_luks" | hextorb | cryptsetup luksOpen ${device} ${name} ${optionalString allowDiscards "--allow-discards"} --key-file=- + + if [ $? == "0" ]; then + opened=true + break + else + opened=false echo "Authentication failed!" fi - ''} done - if [ "$checksum_correct" != "1" ]; then + if [ "$opened" == false ]; then umount ${yubikey.storage.mountPoint} echo "Maximum authentication errors reached" exit 1 fi - local k_yubi - k_yubi="$(echo -n $aes_blob_decrypted | take 40)" + echo -n "Gathering entropy for new salt (please enter random keys to generate entropy if this blocks for long)..." + for i in $(seq ${toString yubikey.saltLength}); do + byte="$(dd if=/dev/random bs=1 count=1 2>/dev/null | rbtohex)"; + new_salt="$new_salt$byte"; + echo -n . + done; + echo "ok" - local k_luks - k_luks="$(echo -n $aes_blob_decrypted | drop 40 | take 128)" + new_iterations="$iterations" + ${optionalString (yubikey.iterationStep > 0) '' + new_iterations="$(($new_iterations + ${toString yubikey.iterationStep}))" + ''} - echo -n "$k_luks" | hextorb | cryptsetup luksOpen ${device} ${name} ${optionalString allowDiscards "--allow-discards"} --key-file=- + new_challenge="$(echo -n $new_salt | openssl-wrap dgst -binary -sha512 | rbtohex)" - update_failed=false + new_response="$(ykchalresp -${toString yubikey.slot} -x $new_challenge 2>/dev/null)" - local new_uuid_r - new_uuid_r="$(uuidgen)" - if [ $? != "0" ]; then - for try in $(seq 10); do - sleep 1 - new_uuid_r="$(uuidgen)" - if [ $? == "0" ]; then break; fi - if [ $try -eq 10 ]; then update_failed=true; fi - done - fi - - if [ "$update_failed" == false ]; then - new_uuid_r="$(echo -n $new_uuid_r | take 36 | tr -d '-')" - - local new_challenge - new_challenge="$(echo -n $k_user$new_uuid_r$uuid_luks | openssl-wrap dgst -binary -sha1 | rbtohex)" - - local new_k_blob - new_k_blob="$(echo -n $new_challenge | hextorb | openssl-wrap dgst -binary -sha1 -mac HMAC -macopt hexkey:$k_yubi | rbtohex)" - - local new_aes_blob - new_aes_blob=$(echo -n "$k_yubi$k_luks$checksum" | hextorb | openssl-wrap enc -e -aes-256-ctr -K "$new_k_blob" -iv "$new_uuid_r" | rbtohex) - - ${optionalString yubikey.multiUser '' - sed -i -e "s|^$user_id_hash$user_record|$user_id_hash$new_uuid_r$new_aes_blob|1" - ''} - - ${optionalString (!yubikey.multiUser) '' - echo -n "$new_uuid_r$new_aes_blob" > ${yubikey.storage.mountPoint}${yubikey.storage.path} - ''} + if [ ! -z "$k_user" ]; then + new_k_luks="$(echo -n $k_user | pbkdf2-sha512 ${toString yubikey.keyLength} $new_iterations $new_response | rbtohex)" else - echo "Warning: Could not obtain new UUID, current challenge persists!" + new_k_luks="$(echo | pbkdf2-sha512 ${toString yubikey.keyLength} $new_iterations $new_response | rbtohex)" fi + mkdir -p ${yubikey.ramfsMountPoint} + # A ramfs is used here to ensure that the file used to update + # the key slot with cryptsetup will never get swapped out. + # Warning: Do NOT replace with tmpfs! + mount -t ramfs none ${yubikey.ramfsMountPoint} + + echo -n "$new_k_luks" | hextorb > ${yubikey.ramfsMountPoint}/new_key + echo -n "$k_luks" | hextorb | cryptsetup luksChangeKey ${device} --key-file=- ${yubikey.ramfsMountPoint}/new_key + + if [ $? == "0" ]; then + echo -ne "$new_salt\n$new_iterations" > ${yubikey.storage.mountPoint}${yubikey.storage.path} + else + echo "Warning: Could not update LUKS key, current challenge persists!" + fi + + rm -f ${yubikey.ramfsMountPoint}/new_key + umount ${yubikey.ramfsMountPoint} + rm -rf ${yubikey.ramfsMountPoint} + umount ${yubikey.storage.mountPoint} } + ${optionalString (yubikey.gracePeriod > 0) '' + echo -n "Waiting ${toString yubikey.gracePeriod} seconds as grace..." + for i in $(seq ${toString yubikey.gracePeriod}); do + sleep 1 + echo -n . + done + echo "ok" + ''} + yubikey_missing=true ykinfo -v 1>/dev/null 2>&1 if [ $? != "0" ]; then @@ -336,21 +306,45 @@ in description = "Whether to use a passphrase and a Yubikey (true), or only a Yubikey (false)"; }; - multiUser = mkOption { - default = false; - type = types.bool; - description = "Whether to allow multiple users to authenticate with a Yubikey"; - }; - slot = mkOption { default = 2; type = types.int; description = "Which slot on the Yubikey to challenge"; }; + saltLength = mkOption { + default = 16; + type = types.int; + description = "Length of the new salt in byte (64 is the effective maximum)"; + }; + + keyLength = mkOption { + default = 64; + type = types.int; + description = "Length of the LUKS slot key derived with PBKDF2 in byte"; + }; + + iterationStep = mkOption { + default = 0; + type = types.int; + description = "How much the iteration count for PBKDF2 is increased at each successful authentication"; + }; + + gracePeriod = mkOption { + default = 2; + type = types.int; + description = "Time in seconds to wait before attempting to find the Yubikey"; + }; + + ramfsMountPoint = mkOption { + default = "/crypt-ramfs"; + type = types.string; + description = "Path where the ramfs used to update the LUKS key will be mounted in stage-1"; + }; + storage = mkOption { type = types.optionSet; - description = "Options related to the authentication record"; + description = "Options related to the storing the salt"; options = { device = mkOption { @@ -358,7 +352,7 @@ in type = types.path; description = '' An unencrypted device that will temporarily be mounted in stage-1. - Must contain the authentication record for this LUKS device. + Must contain the current salt to create the challenge for this LUKS device. ''; }; @@ -378,7 +372,7 @@ in default = "/crypt-storage/default"; type = types.string; description = '' - Absolute path of the authentication record on the unencrypted device with + Absolute path of the salt on the unencrypted device with that device's root directory as "/". ''; }; @@ -420,11 +414,13 @@ in cp -pdv ${pkgs.popt}/lib/libpopt*.so.* $out/lib ${optionalString luks.yubikeySupport '' - cp -pdv ${pkgs.utillinux}/bin/uuidgen $out/bin cp -pdv ${pkgs.ykpers}/bin/ykchalresp $out/bin cp -pdv ${pkgs.ykpers}/bin/ykinfo $out/bin cp -pdv ${pkgs.openssl}/bin/openssl $out/bin + cc -O3 -I${pkgs.openssl}/include -L${pkgs.openssl}/lib ${./pbkdf2-sha512.c} -o $out/bin/pbkdf2-sha512 -lcrypto + strip -s $out/bin/pbkdf2-sha512 + cp -pdv ${pkgs.libusb1}/lib/libusb*.so.* $out/lib cp -pdv ${pkgs.ykpers}/lib/libykpers*.so.* $out/lib cp -pdv ${pkgs.libyubikey}/lib/libyubikey*.so.* $out/lib @@ -444,7 +440,6 @@ EOF boot.initrd.extraUtilsCommandsTest = '' $out/bin/cryptsetup --version ${optionalString luks.yubikeySupport '' - $out/bin/uuidgen --version $out/bin/ykchalresp -V $out/bin/ykinfo -V cat > $out/bin/openssl-wrap < +#include +#include +#include + +void hextorb(uint8_t* hex, uint8_t* rb) +{ + while(sscanf(hex, "%2x", rb) == 1) + { + hex += 2; + rb += 1; + } + *rb = '\0'; +} + +int main(int argc, char** argv) +{ + uint8_t k_user[2048]; + uint8_t salt[2048]; + uint8_t key[4096]; + + uint32_t key_length = atoi(argv[1]); + uint32_t iteration_count = atoi(argv[2]); + + hextorb(argv[3], salt); + uint32_t salt_length = strlen(argv[3]) / 2; + + fgets(k_user, 2048, stdin); + uint32_t k_user_length = strlen(k_user); + if(k_user[k_user_length - 1] == '\n') { + k_user[k_user_length - 1] = '\0'; + } + + PKCS5_PBKDF2_HMAC(k_user, k_user_length, salt, salt_length, iteration_count, EVP_sha512(), key_length, key); + fwrite(key, 1, key_length, stdout); + + return 0; +} \ No newline at end of file diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 2483ee63d57..4f7f6ae8f2b 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -387,7 +387,7 @@ in # When building a regular system configuration, override whatever # video driver the host uses. services.xserver.videoDriver = mkVMOverride null; - services.mesa.videoDrivers = mkVMOverride [ "vesa" ]; + hardware.opengl.videoDrivers = mkVMOverride [ "vesa" ]; services.xserver.defaultDepth = mkVMOverride 0; services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ]; services.xserver.monitorSection = diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix index 9dda455e5d3..e4c00fe4a41 100644 --- a/nixos/modules/virtualisation/virtualbox-guest.nix +++ b/nixos/modules/virtualisation/virtualbox-guest.nix @@ -52,7 +52,7 @@ optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly... serviceConfig.ExecStart = "@${kernel.virtualboxGuestAdditions}/sbin/VBoxService VBoxService --foreground"; }; - services.mesa.videoDrivers = mkOverride 50 [ "virtualbox" ]; + hardware.opengl.videoDrivers = mkOverride 50 [ "virtualbox" ]; services.xserver.config = '' diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index dccc3acbf46..ed5c4769d0a 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -61,6 +61,7 @@ in rec { (all nixos.tests.printing) (all nixos.tests.proxy) (all nixos.tests.xfce) + (all nixos.tests.gnome3) nixpkgs.tarball (all nixpkgs.emacs) diff --git a/nixos/tests/common/user-account.nix b/nixos/tests/common/user-account.nix index 8157cf8d263..0239a3c4d08 100644 --- a/nixos/tests/common/user-account.nix +++ b/nixos/tests/common/user-account.nix @@ -7,5 +7,6 @@ createHome = true; useDefaultShell = true; password = "foobar"; + uid = 1000; }; } diff --git a/nixos/tests/default.nix b/nixos/tests/default.nix index 574e1dd2f8b..b37a0d5fa0c 100644 --- a/nixos/tests/default.nix +++ b/nixos/tests/default.nix @@ -12,6 +12,7 @@ with import ../lib/testing.nix { inherit system minimal; }; firewall = makeTest (import ./firewall.nix); installer = makeTests (import ./installer.nix); efi-installer = makeTests (import ./efi-installer.nix); + gnome3 = makeTest (import ./gnome3.nix); ipv6 = makeTest (import ./ipv6.nix); kde4 = makeTest (import ./kde4.nix); #kexec = makeTest (import ./kexec.nix); diff --git a/nixos/tests/gnome3.nix b/nixos/tests/gnome3.nix new file mode 100644 index 00000000000..98a76137842 --- /dev/null +++ b/nixos/tests/gnome3.nix @@ -0,0 +1,31 @@ +{ pkgs, ... }: + +{ + + machine = + { config, pkgs, ... }: + + { imports = [ ./common/user-account.nix ]; + + services.xserver.enable = true; + + services.xserver.displayManager.auto.enable = true; + services.xserver.displayManager.auto.user = "alice"; + services.xserver.desktopManager.gnome3.enable = true; + }; + + testScript = + '' + $machine->waitForX; + $machine->sleep(15); + + # Check that logging in has given the user ownership of devices. + $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); + + $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'"); + $machine->waitForWindow(qr/Terminal/); + $machine->sleep(10); + $machine->screenshot("screen"); + ''; + +} diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 564792a1a9d..b32012ea034 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -252,9 +252,9 @@ in { '' $machine->succeed( "parted /dev/vda mklabel msdos", - "parted /dev/vda -- mkpart primary 1M 2048M", # first PV + "parted /dev/vda -- mkpart primary 1M 2048M", # PV1 "parted /dev/vda -- set 1 lvm on", - "parted /dev/vda -- mkpart primary 2048M -1s", # second PV + "parted /dev/vda -- mkpart primary 2048M -1s", # PV2 "parted /dev/vda -- set 2 lvm on", "udevadm settle", "pvcreate /dev/vda1 /dev/vda2", diff --git a/pkgs/applications/misc/taffybar/default.nix b/pkgs/applications/misc/taffybar/default.nix new file mode 100644 index 00000000000..a92e7e32f04 --- /dev/null +++ b/pkgs/applications/misc/taffybar/default.nix @@ -0,0 +1,25 @@ +{ cabal, cairo, dbus, dyre, filepath, gtk, gtkTraymanager +, HStringTemplate, HTTP, mtl, network, parsec, split, stm, text +, time, transformers, utf8String, X11, xdgBasedir, xmonad +, xmonadContrib +}: + +cabal.mkDerivation (self: { + pname = "taffybar"; + version = "0.3.0"; + sha256 = "02vpfbwfprca997ykk746ih7id0ls3i5pnb33gj3nrfgc59fkz7v"; + isLibrary = true; + isExecutable = true; + buildDepends = [ + cairo dbus dyre filepath gtk gtkTraymanager HStringTemplate HTTP + mtl network parsec split stm text time transformers utf8String X11 + xdgBasedir xmonad xmonadContrib + ]; + pkgconfigDepends = [ gtk ]; + meta = { + homepage = "http://github.com/travitch/taffybar"; + description = "A desktop bar similar to xmobar, but with more GUI"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix index 6ad9d9090d5..ffce71ef09f 100644 --- a/pkgs/applications/networking/browsers/chromium/sources.nix +++ b/pkgs/applications/networking/browsers/chromium/sources.nix @@ -11,8 +11,8 @@ sha256 = "04n43c4vn8i7qhlybqb19c2c8kri8nc1wpa2l83vin4sqxkq519h"; }; stable = { - version = "32.0.1700.102"; - url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-32.0.1700.102.tar.xz"; - sha256 = "0jxwhd7cd60ivisrnzcglqqnmy99np1vvjqa27y42d852xjx84ys"; + version = "32.0.1700.107"; + url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-32.0.1700.107.tar.xz"; + sha256 = "1bf1gbjf4r9nf3xdn7zgq0ny1ihak21ka4rkkiadxsg8aq9vdsqz"; }; } diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix index 27363482be0..3b2911a97ac 100644 --- a/pkgs/applications/networking/browsers/firefox/default.nix +++ b/pkgs/applications/networking/browsers/firefox/default.nix @@ -17,9 +17,9 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null; rec { - firefoxVersion = "26.0"; + firefoxVersion = "27.0"; - xulVersion = "26.0"; # this attribute is used by other packages + xulVersion = "27.0"; # this attribute is used by other packages src = fetchurl { @@ -29,7 +29,7 @@ rec { # Fall back to this url for versions not available at releases.mozilla.org. "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2" ]; - sha1 = "f7c6642d6f62aea8d4eced48dd27aba0634edcd5"; + sha1 = "ec2031385237e30be829817ac79caa8e80cc2a14"; }; commonConfigureFlags = @@ -116,6 +116,7 @@ rec { for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir" done + rm -f $out/bin/run-mozilla.sh ''; # */ @@ -162,13 +163,20 @@ rec { "SYSTEM_LIBXUL=1" ]; - # Hack to work around make's idea of -lbz2 dependency + # Because preConfigure runs configure from a subdirectory. + configureScript = "../configure"; + preConfigure = '' + # Hack to work around make's idea of -lbz2 dependency find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ stdenv.lib.concatStringsSep ":" (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) }' ';' + + # Building directly in the main source directory is not allowed. + mkdir obj_dir + cd obj_dir ''; postInstall = diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix index c7ea2d135d5..c0f76602b2b 100644 --- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix +++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix @@ -1,12 +1,21 @@ -{ stdenv, fetchurl, libtool, libXext, libSM, libICE, libX11, libXft, libXau, libXdmcp, libXrender -, libxcb, libXfixes, libXcomposite, libXi, dbus, freetype, fontconfig, openssl, zlib, mesa -, libxslt, libxml2 +{ stdenv +, fetchurl +, libtool +, libXext +, libSM +, libICE +, libX11 +, libXft +, libXau +, libXdmcp +, libXrender +, freetype +, fontconfig +, openssl }: -assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; - let - version = "2.1.982"; + version = "1.94.407"; rpath = stdenv.lib.makeSearchPath "lib" [ stdenv.glibc @@ -20,29 +29,15 @@ let libXau libXdmcp libXrender - libxcb - libXfixes - libXcomposite - libXi - dbus freetype fontconfig openssl - zlib - mesa - libxslt - libxml2 ]; - src = - if stdenv.system == "i686-linux" then fetchurl { - url = "http://downloads.hipchat.com/linux/arch/i686/hipchat-${version}-i686.pkg.tar.xz"; - sha256 = "1i60fkl5hdx2p2yfsx9w8qkzn6hl8fajvfls0r0gc2bqc9whg6vn"; - } else fetchurl { - url = "http://downloads.hipchat.com/linux/arch/x86_64/hipchat-${version}-x86_64.pkg.tar.xz"; - sha256 = "12bn4la9z1grkbcnixjwhadgxa2g6qkd5x7r3l3vn1sdalgal4ks"; - }; - + src = fetchurl { + url = "http://downloads.hipchat.com/linux/arch/hipchat-${version}-i686.pkg.tar.xz"; + sha256 = "0kyjpa2ir066zqkvs1zmnx6kvl8v4jfl8h7bw110cgigwmiplk7k"; + }; in stdenv.mkDerivation { name = "hipchat-${version}"; @@ -54,8 +49,8 @@ in stdenv.mkDerivation { mv usr/share $out patchShebangs $out/bin for file in $(find $out/lib -type f); do - patchelf --set-interpreter $(cat $NIX_GCC/nix-support/dynamic-linker) $file || true - patchelf --set-rpath ${rpath}:${stdenv.lib.optionalString stdenv.is64bit "${stdenv.gcc.gcc}/lib64:"}$out/lib $file || true + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $file || true + patchelf --set-rpath ${rpath}:$out/lib $file || true done substituteInPlace $out/share/applications/hipchat.desktop \ --replace /opt/HipChat/bin $out/bin diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index 01ba8c97d98..89b437acc90 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -3,12 +3,12 @@ , pythonPackages, cacert, cmake, makeWrapper }: stdenv.mkDerivation rec { - version = "0.4.2"; + version = "0.4.3"; name = "weechat-${version}"; src = fetchurl { url = "http://weechat.org/files/src/${name}.tar.gz"; - sha256 = "03ypji34kb5yrxqyn8dbrjm3j00pc8v7wfsip7d3l63nyx79df9v"; + sha256 = "1sfx2j8xy6das0zis2nmzi9z41q96gzq61xaw4i0xbgag17s7ddz"; }; buildInputs = diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix index 08758c55a4e..3a8dab10ff2 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix @@ -12,14 +12,14 @@ enableOfficialBranding ? false }: -let version = "17.0.8"; in +let version = "17.0.11esr"; in stdenv.mkDerivation { name = "thunderbird-${version}"; src = fetchurl { url = "ftp://ftp.mozilla.org/pub/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.bz2"; - sha1 = "4bcbb33f0b3ea050e805723680b5669d80438812"; + sha256 = "1m2lph8x82kgxqzlyaxr1l1x7s4qnqfzfnqck4b777914mrv1mdp"; }; #enableParallelBuilding = true; diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix index 43fbe952b18..9d2050d10fe 100644 --- a/pkgs/applications/networking/mumble/default.nix +++ b/pkgs/applications/networking/mumble/default.nix @@ -15,11 +15,11 @@ let in stdenv.mkDerivation rec { name = "mumble-" + version; - version = "1.2.4"; + version = "1.2.5"; src = fetchurl { url = "mirror://sourceforge/mumble/${name}.tar.gz"; - sha256 = "16wwj6gwcnyjlnzh7wk0l255ldxmbwx0wi652sdp20lsv61q7kx1"; + sha256 = "1bsgains6xgpgpd1b5bq682z0kswp5fcjh2cir4c4qkndya5clci"; }; patches = optional jackSupport ./mumble-jack-support.patch; diff --git a/pkgs/applications/networking/mumble/murmur.nix b/pkgs/applications/networking/mumble/murmur.nix index 4b074b0708e..b886896c071 100644 --- a/pkgs/applications/networking/mumble/murmur.nix +++ b/pkgs/applications/networking/mumble/murmur.nix @@ -12,11 +12,11 @@ let in stdenv.mkDerivation rec { name = "murmur-" + version; - version = "1.2.4"; + version = "1.2.5"; src = fetchurl { url = "mirror://sourceforge/mumble/mumble-${version}.tar.gz"; - sha256 = "16wwj6gwcnyjlnzh7wk0l255ldxmbwx0wi652sdp20lsv61q7kx1"; + sha256 = "1bsgains6xgpgpd1b5bq682z0kswp5fcjh2cir4c4qkndya5clci"; }; patchPhase = optional iceSupport '' diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix index dad607c1462..d9d09def5ca 100644 --- a/pkgs/applications/version-management/git-and-tools/git/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git/default.nix @@ -10,7 +10,7 @@ let - version = "1.8.5.2"; + version = "1.8.5.4"; svn = subversionClient.override { perlBindings = true; }; @@ -21,7 +21,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://git-core.googlecode.com/files/git-${version}.tar.gz"; - sha256 = "12iyj6f89dmb1cn2pvym5lrf23g4m71mp9pwkbi1zscb9d998ih2"; + sha256 = "062z4j4hfhfdlvkxs2mzarsyvbqvfy4kv8j5h4c75ymb5yp8iklk"; }; patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ]; diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix index 0291e7593ea..c3b78b64d93 100644 --- a/pkgs/applications/video/gnash/default.nix +++ b/pkgs/applications/video/gnash/default.nix @@ -81,6 +81,8 @@ stdenv.mkDerivation rec { echo "\$GST_PLUGIN_PATH set to \`$GST_PLUGIN_PATH'" ''; + postConfigure = "echo '#define nullptr NULL' >> gnashconfig.h"; + # Make sure `gtk-gnash' gets `libXext' in its `RPATH'. NIX_LDFLAGS="-lX11 -lXext"; diff --git a/pkgs/data/fonts/andagii/default.nix b/pkgs/data/fonts/andagii/default.nix index 8b08708fb1d..8143d284120 100644 --- a/pkgs/data/fonts/andagii/default.nix +++ b/pkgs/data/fonts/andagii/default.nix @@ -19,6 +19,7 @@ in rec { src = a.fetchurl { url = sourceInfo.url; + curlOpts = "--user-agent 'Mozilla/5.0'"; sha256 = sourceInfo.hash; }; diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix index b73009d896d..ed9adb370d4 100644 --- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix @@ -1,11 +1,24 @@ -{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, libcanberra -, libxml2, polkit, libxslt, libgtop, libsoup, colord, pulseaudio, fontconfig }: +{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, libcanberra, accountservice +, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk, pulseaudio, fontconfig +, cracklib, python, krb5, networkmanagerapplet, libwacom, samba, libnotify, libxkbfile +, shared_mime_info, tzdata, icu, libtool, docbook_xsl, docbook_xsl_ns, makeWrapper }: # http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules -# TODO: colord_gtk +# TODO: bluetooth, networkmanager, wacom, smbclient, printers +let + libpwquality = stdenv.mkDerivation rec { + name = "libpwquality-1.2.3"; -stdenv.mkDerivation rec { + src = fetchurl { + url = "https://fedorahosted.org/releases/l/i/libpwquality/${name}.tar.bz2"; + sha256 = "0sjiabvl5277nfxyy96jdz65a0a3pmkkwrfbziwgik83gg77j75i"; + }; + + buildInputs = [ cracklib python ]; + }; + +in stdenv.mkDerivation rec { name = "gnome-control-center-3.10.2"; src = fetchurl { @@ -16,7 +29,26 @@ stdenv.mkDerivation rec { buildInputs = with gnome3; [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus - gnome_online_accounts libsoup colord pulseaudio fontconfig ]; + gnome_online_accounts libsoup colord pulseaudio fontconfig colord-gtk libpwquality + accountservice krb5 networkmanagerapplet libwacom samba libnotify libxkbfile + shared_mime_info icu libtool docbook_xsl docbook_xsl_ns makeWrapper ]; + + preBuild = '' + substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" + substituteInPlace panels/datetime/tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" + + # hack to make test-endianess happy + mkdir -p $out/share/locale + substituteInPlace panels/datetime/test-endianess.c --replace "/usr/share/locale/" "$out/share/locale/" + ''; + + postInstall = with gnome3; '' + wrapProgram $out/bin/gnome-control-center \ + --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:${gnome_settings_daemon}/share:${glib}/share:${gtk}/share:${colord}/share:$out/share" + for i in $out/share/applications/*; do + substituteInPlace $i --replace "gnome-control-center" "$out/bin/gnome-control-center" + done + ''; meta = with stdenv.lib; { platforms = platforms.linux; diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix index 92c8d2a3bc7..7dee64a8aff 100644 --- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix @@ -19,13 +19,14 @@ stdenv.mkDerivation rec { libcroco intltool libsecret pkgconfig python libsoup polkit libcanberra gdk_pixbuf librsvg clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns libXtst p11_kit networkmanagerapplet gjs mutter pulseaudio caribou evolution_data_server - libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm + libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm gnome_control_center at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger ]; configureFlags = "--disable-static"; preBuild = '' patchShebangs src/data-to-c.pl + substituteInPlace data/Makefile --replace " install-keysDATA" "" ''; postInstall = with gnome3; '' @@ -33,7 +34,7 @@ stdenv.mkDerivation rec { --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ --prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \ --set GDK_PIXBUF_MODULE_FILE ${gnome_themes_standard}/lib/gdk-pixbuf/loaders.cache \ - --prefix XDG_DATA_DIRS : "${gnome-menus}:/share:${ibus}/share:${gnome_settings_daemon}/share:${gdm}/share:${glib}/share:${gnome_themes_standard}/share:${mutter}/share:${gnome_icon_theme}/share:${gsettings_desktop_schemas}/share:${gtk}/share:$out/share" + --prefix XDG_DATA_DIRS : "${gnome-menus}:/share:${ibus}/share:${gnome_settings_daemon}/share:${gnome_control_center}/share:${gdm}/share:${glib}/share:${gnome_themes_standard}/share:${mutter}/share:${gnome_icon_theme}/share:${gsettings_desktop_schemas}/share:${gtk}/share:$out/share" wrapProgram "$out/libexec/gnome-shell-calendar-server" \ --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share" ''; diff --git a/pkgs/desktops/gnome-3/core/libqmi/default.nix b/pkgs/desktops/gnome-3/core/libqmi/default.nix deleted file mode 100644 index beb63f80b80..00000000000 --- a/pkgs/desktops/gnome-3/core/libqmi/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, glib, python }: - -stdenv.mkDerivation rec { - name = "libqmi-1.0"; - - src = fetchurl { - url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz"; - sha256 = "0w4cd7nihp73frh3sfi13fx0rkwmd581xpil54bsjc7pw7z01bd1"; - }; - - buildInputs = [ pkgconfig glib python ]; - - meta = with stdenv.lib; { - platforms = platforms.linux; - }; -} diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index e9ec7be55b9..197a135dcaa 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -70,8 +70,6 @@ rec { libpeas = callPackage ./core/libpeas {}; - libqmi = callPackage ./core/libqmi {}; - libgweather = callPackage ./core/libgweather { }; libzapojit = callPackage ./core/libzapojit { }; diff --git a/pkgs/desktops/kde-4.10/kde-workspace.nix b/pkgs/desktops/kde-4.10/kde-workspace.nix index a478dc975fe..57b2fea79b2 100644 --- a/pkgs/desktops/kde-4.10/kde-workspace.nix +++ b/pkgs/desktops/kde-4.10/kde-workspace.nix @@ -1,7 +1,8 @@ { kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies, lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate, xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi, - libjpeg, pkgconfig, libXft, libXxf86misc, kactivities, qjson, networkmanager + libjpeg, pkgconfig, libXft, libXxf86misc, kactivities, qjson, networkmanager, + fetchurl }: kde { @@ -17,6 +18,12 @@ kde { kactivities ]; + patches = [(fetchurl { + url = "https://git.reviewboard.kde.org/r/111261/diff/raw/"; + sha256 = "0g8qjna1s0imz7801k4iy2ap5z81izi4bncvks7z3n9agji4zf40"; + name = "CVE-2013-4132.patch"; + })]; + nativeBuildInputs = [ pkgconfig ]; preConfigure = diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix index 0f46b7aeb6d..ae9a202a529 100644 --- a/pkgs/development/compilers/ats2/default.nix +++ b/pkgs/development/compilers/ats2/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, gmp }: -let version = "0.0.3"; in stdenv.mkDerivation { +let version = "0.0.5"; in stdenv.mkDerivation { name = "ats2-postiats-${version}"; src = fetchurl { url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz"; - sha256 = "0hq63zrmm92j5ffnsmylhhllm8kgjpjkaj4xvzz1zlshz39lijxp"; + sha256 = "1rzcqc7fwqf0y4cc14lr282r25s66jygf6cxrnf5l8p5p550l0dl"; }; buildInputs = [ gmp ]; diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix index 5f1749f33c9..56fc15b0511 100644 --- a/pkgs/development/interpreters/elixir/default.nix +++ b/pkgs/development/interpreters/elixir/default.nix @@ -1,29 +1,30 @@ { stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils }: let - version = "0.12.0"; + version = "0.12.3"; in stdenv.mkDerivation { name = "elixir-${version}"; src = fetchurl { url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz"; - sha256 = "0cir2y36zljwphiqyz8xmq7qq0f094jmfy3qwk3wdm05c05nqnc8"; + sha256 = "1im00cki38ldsig93djlsap8zbgwv74kpgw7xg9l6ik2cbpk0131"; }; buildInputs = [ erlang rebar makeWrapper ]; preBuild = '' - substituteInPlace rebar \ - --replace "/usr/bin/env escript" ${erlang}/bin/escript + # The build process uses ./rebar. Link it to the nixpkgs rebar + rm -v rebar + ln -s ${rebar}/bin/rebar rebar + substituteInPlace Makefile \ - --replace '$(shell echo `pwd`/rebar)' ${rebar}/bin/rebar \ --replace "/usr/local" $out ''; postFixup = '' - # Elixirs binaries are shell scripts which run erl. This adds some - # stuff to PATH so the scripts run without problems. + # Elixir binaries are shell scripts which run erl. Add some stuff + # to PATH so the scripts can run without problems. for f in $out/bin/* do diff --git a/pkgs/development/interpreters/pypy/2.2/default.nix b/pkgs/development/interpreters/pypy/2.2/default.nix index b870522f629..231a0a7dfaa 100644 --- a/pkgs/development/interpreters/pypy/2.2/default.nix +++ b/pkgs/development/interpreters/pypy/2.2/default.nix @@ -58,7 +58,8 @@ let # disable shutils because it assumes gid 0 exists # disable socket because it has two actual network tests that fail # disable test_mhlib because it fails for unknown reason - ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -k '-test_socket -test_shutil -test_mhlib' lib-python + # disable test_multiprocessing due to transient errors + ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -k '-test_socket -test_shutil -test_mhlib -test_multiprocessing' lib-python ''; installPhase = '' @@ -86,7 +87,7 @@ let homepage = "http://pypy.org/"; description = "PyPy is a fast, compliant alternative implementation of the Python language (2.7.3)"; license = licenses.mit; - platforms = platforms.all; + platforms = platforms.linux; maintainers = with maintainers; [ iElectric ]; }; }; diff --git a/pkgs/development/libraries/haskell/diff3/default.nix b/pkgs/development/libraries/haskell/diff3/default.nix new file mode 100644 index 00000000000..60f27e89d58 --- /dev/null +++ b/pkgs/development/libraries/haskell/diff3/default.nix @@ -0,0 +1,19 @@ +{ cabal, Diff, QuickCheck, testFramework, testFrameworkQuickcheck2 +}: + +cabal.mkDerivation (self: { + pname = "diff3"; + version = "0.2.0.3"; + sha256 = "0zdfn1jhsq8pd23qpkhzr8wgiwbazfbq688bjnpc406i7gq88k78"; + buildDepends = [ Diff ]; + testDepends = [ + QuickCheck testFramework testFrameworkQuickcheck2 + ]; + meta = { + homepage = "http://github.com/ocharles/diff3.git"; + description = "Perform a 3-way difference of documents"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.ocharles ]; + }; +}) diff --git a/pkgs/development/libraries/haskell/gtk-traymanager/default.nix b/pkgs/development/libraries/haskell/gtk-traymanager/default.nix new file mode 100644 index 00000000000..8d319ee246e --- /dev/null +++ b/pkgs/development/libraries/haskell/gtk-traymanager/default.nix @@ -0,0 +1,15 @@ +{ cabal, glib, gtk, X11 }: + +cabal.mkDerivation (self: { + pname = "gtk-traymanager"; + version = "0.1.3"; + sha256 = "07671f3j3r07djgvrlpbdaqqnm2yc7sc5f5isjn5nczrwh8n0sj4"; + buildDepends = [ glib gtk ]; + pkgconfigDepends = [ gtk X11 ]; + meta = { + homepage = "http://github.com/travitch/gtk-traymanager"; + description = "A wrapper around the eggtraymanager library for Linux system trays"; + license = self.stdenv.lib.licenses.lgpl21; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/json-assertions/default.nix b/pkgs/development/libraries/haskell/json-assertions/default.nix new file mode 100644 index 00000000000..8797ca90029 --- /dev/null +++ b/pkgs/development/libraries/haskell/json-assertions/default.nix @@ -0,0 +1,15 @@ +{ cabal, aeson, indexed, indexedFree, lens, text }: + +cabal.mkDerivation (self: { + pname = "json-assertions"; + version = "1.0.1"; + sha256 = "0rpj300knyk602wqkqipmy54xv3pn20cd06sa8irkf2wz0xribzm"; + buildDepends = [ aeson indexed indexedFree lens text ]; + meta = { + homepage = "http://github.com/ocharles/json-assertions.git"; + description = "Test that your (Aeson) JSON encoding matches your expectations"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.ocharles ]; + }; +}) diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix new file mode 100644 index 00000000000..8207051b2a8 --- /dev/null +++ b/pkgs/development/libraries/libmbim/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, pkgconfig, glib, python, udev }: + +stdenv.mkDerivation rec { + name = "libmbim-1.6.0"; + + src = fetchurl { + url = "http://www.freedesktop.org/software/libmbim/${name}.tar.xz"; + sha256 = "10mh1b8jfxg6y6nhr7swbi9wx4acjgvx1if7nhrw1ppd5apvvvz0"; + }; + + preConfigure = '' + for f in build-aux/mbim-codegen/*; do + substituteInPlace $f --replace "/usr/bin/env python" "${python}/bin/python" + done + ''; + + buildInputs = [ pkgconfig glib udev ]; + + meta = with stdenv.lib; { + description = "talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix new file mode 100644 index 00000000000..a0292067dbb --- /dev/null +++ b/pkgs/development/libraries/libqmi/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, glib, python }: + +stdenv.mkDerivation rec { + name = "libqmi-1.8.0"; + + src = fetchurl { + url = "http://www.freedesktop.org/software/libqmi/${name}.tar.xz"; + sha256 = "03gf221yjcdzvnl4v2adwpc6cyg5mlbccn20s00fp5bgvmq81pgs"; + }; + + preBuild = '' + patchShebangs . + ''; + + buildInputs = [ pkgconfig glib python ]; + + meta = with stdenv.lib; { + description = "Modem protocol helper library"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix index b352064cee5..92cc12fe1be 100644 --- a/pkgs/development/libraries/nss/default.nix +++ b/pkgs/development/libraries/nss/default.nix @@ -5,17 +5,17 @@ let nssPEM = fetchurl { - url = http://dev.gentoo.org/~anarchy/patches/nss-3.15-pem-support-20130617.patch.xz; - sha256 = "1k1m8lsgqwxx251943hks1dd13hz1adpqqb0hxwn011by5vmi201"; + url = http://dev.gentoo.org/~polynomial-c/mozilla/nss-3.15.4-pem-support-20140109.patch.xz; + sha256 = "10ibz6y0hknac15zr6dw4gv9nb5r5z9ym6gq18j3xqx7v7n3vpdw"; }; in stdenv.mkDerivation rec { name = "nss-${version}"; - version = "3.15.3.1"; + version = "3.15.4"; src = fetchurl { - url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_3_1_RTM/src/${name}.tar.gz"; - sha1 = "4e0f81a1f770447dc5440201a579151b601463e2"; + url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_4_RTM/src/${name}.tar.gz"; + sha1 = "c164fac83fcbaff010786767e2a858ca23a89a5b"; }; buildInputs = [ nspr perl zlib sqlite ]; diff --git a/pkgs/development/python-modules/fedpkg-buildfix.diff b/pkgs/development/python-modules/fedpkg-buildfix.diff new file mode 100644 index 00000000000..b9d46d7c741 --- /dev/null +++ b/pkgs/development/python-modules/fedpkg-buildfix.diff @@ -0,0 +1,14 @@ +--- a/setup.py 2014-02-04 16:12:37.021993713 +0100 ++++ b/setup.py 2014-02-04 16:11:42.653995607 +0100 +@@ -13,8 +13,8 @@ + package_dir = {'': 'src'}, + packages = ['fedpkg'], + scripts = ['src/bin/fedpkg'], +- data_files = [('/etc/bash_completion.d', ['src/fedpkg.bash']), +- ('/etc/rpkg', ['src/fedpkg.conf']), +- ('/usr/libexec/', ['src/fedpkg-fixbranches.py']), ++ data_files = [('etc/bash_completion.d', ['src/fedpkg.bash']), ++ ('etc/rpkg', ['src/fedpkg.conf']), ++ ('libexec/', ['src/fedpkg-fixbranches.py']), + ] + ) diff --git a/pkgs/development/python-modules/rpkg-buildfix.diff b/pkgs/development/python-modules/rpkg-buildfix.diff new file mode 100644 index 00000000000..d410f09072f --- /dev/null +++ b/pkgs/development/python-modules/rpkg-buildfix.diff @@ -0,0 +1,11 @@ +--- a/setup.py 2012-03-12 23:26:16.000000000 +0100 ++++ b/setup.py 2014-02-04 14:52:02.335856975 +0100 +@@ -14,6 +14,6 @@ + package_dir = {'': 'src'}, + packages = ['pyrpkg'], + scripts = ['src/rpkg'], +- data_files = [('/etc/bash_completion.d', ['src/rpkg.bash']), +- ('/etc/rpkg', ['src/rpkg.conf'])], ++ data_files = [('etc/bash_completion.d', ['src/rpkg.bash']), ++ ('etc/rpkg', ['src/rpkg.conf'])], + ) diff --git a/pkgs/development/tools/build-managers/leiningen/builder.sh b/pkgs/development/tools/build-managers/leiningen/builder.sh index 6a66466506c..e1dd9d5a786 100644 --- a/pkgs/development/tools/build-managers/leiningen/builder.sh +++ b/pkgs/development/tools/build-managers/leiningen/builder.sh @@ -19,5 +19,5 @@ chmod -v 755 $out_bin patchShebangs $out wrapProgram $out_bin \ - --prefix PATH ":" ${rlwrap}/bin \ + --prefix PATH ":" "${rlwrap}/bin:${coreutils}/bin:${findutils}/bin" \ --set LEIN_GPG ${gnupg}/bin/gpg diff --git a/pkgs/development/tools/build-managers/leiningen/default.nix b/pkgs/development/tools/build-managers/leiningen/default.nix index a41cf69ad23..2c039b3fa0c 100644 --- a/pkgs/development/tools/build-managers/leiningen/default.nix +++ b/pkgs/development/tools/build-managers/leiningen/default.nix @@ -1,23 +1,24 @@ -{ stdenv, fetchurl, makeWrapper, jdk, rlwrap, clojure, gnupg }: +{ stdenv, fetchurl, makeWrapper +, coreutils, findutils, jdk, rlwrap, clojure, gnupg }: stdenv.mkDerivation rec { pname = "leiningen"; - version = "2.3.3"; + version = "2.3.4"; name = "${pname}-${version}"; src = fetchurl { url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg"; - sha256 = "0lc5ivgknkflk6k4a4q1r8bm3kq63p4cazfs1rdb02cfhdip52hc"; + sha256 = "1v83hpvp349pgqqiy4babc5m5b9lcwk0fif80fpv4jqvp0a8v6r7"; }; jarsrc = fetchurl { url = "https://leiningen.s3.amazonaws.com/downloads/${pname}-${version}-standalone.jar"; - sha256 = "1a8i0940ww7xqhwlaaavsgw8s9rjqdnv46hfsla41ns789bappxf"; + sha256 = "1pqc99p4vz4q3qcs90cqql6m7kc27ihx4hbqs5alxkzk7jv8s2bk"; }; patches = ./lein_2.3.0.patch; - inherit rlwrap clojure gnupg; + inherit rlwrap clojure gnupg findutils coreutils; builder = ./builder.sh; diff --git a/pkgs/development/tools/build-managers/rebar/default.nix b/pkgs/development/tools/build-managers/rebar/default.nix index ac695178541..a64360c5727 100644 --- a/pkgs/development/tools/build-managers/rebar/default.nix +++ b/pkgs/development/tools/build-managers/rebar/default.nix @@ -1,11 +1,15 @@ { stdenv, fetchurl, erlang }: + +let + version = "2.2.0"; +in stdenv.mkDerivation { - name = "rebar-2.1.0-pre"; + name = "rebar-${version}"; src = fetchurl { - url = "https://github.com/basho/rebar/archive/2.1.0-pre.tar.gz"; - sha256 = "0dsbk9ssvk1hx9275900dg4bz79kpwcid4gsz09ziiwzv0jjbrjn"; + url = "https://github.com/rebar/rebar/archive/${version}.tar.gz"; + sha256 = "0wprgzin09286v583jmlc385jqpi2lcpdql9srm4c7g39122dg43"; }; buildInputs = [ erlang ]; diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix index e039291882c..720be6fb1d2 100644 --- a/pkgs/games/anki/default.nix +++ b/pkgs/games/anki/default.nix @@ -6,13 +6,13 @@ let py = pythonPackages; + version = "2.0.22"; in - stdenv.mkDerivation rec { - name = "anki-2.0.20"; + name = "anki-${version}"; src = fetchurl { url = "http://ankisrs.net/download/mirror/${name}.tgz"; - sha256 = "1w274g7as458bfkh86635p04fimvmkn70j8qy9m6nl2xwjaq8nhm"; + sha256 = "1bnjzf8050hrs3iiaak0m07sxj07vqic677llg2g6iarg9ws8x26"; }; pythonPath = [ pyqt4 py.pysqlite py.sqlalchemy py.pyaudio ] @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { decrease your time spent studying, or greatly increase the amount you learn. Anyone who needs to remember things in their daily life can benefit from - Anki. Since it is content-agnostic and supports images, audio, videos and + Anki. Since it is content-agnostic and supports images, audio, videos and scientific markup (via LaTeX), the possibilities are endless. For example: * learning a language diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix index 4f8fe0d1974..f9d380d9cd5 100644 --- a/pkgs/games/spring/default.nix +++ b/pkgs/games/spring/default.nix @@ -1,9 +1,10 @@ { stdenv, fetchurl, cmake, lzma, boost, libdevil, zlib, p7zip , openal, libvorbis, glew, freetype, xlibs, SDL, mesa, binutils -, asciidoc, libxslt, docbook_xsl, curl +, asciidoc, libxslt, docbook_xsl, docbook_xsl_ns, curl, makeWrapper , jdk ? null, python ? null , withAI ? true # support for AI Interfaces and Skirmish AIs }: + stdenv.mkDerivation rec { name = "spring-${version}"; @@ -14,23 +15,29 @@ stdenv.mkDerivation rec { sha256 = "1axyqkxgv3a0zg0afzlc7j3lyi412zd551j317ci41yqz2qzf0px"; }; - buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL - xlibs.libX11 xlibs.libXcursor mesa glew asciidoc libxslt docbook_xsl curl ] + cmakeFlags = ["-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON" + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON" + "-DPREFER_STATIC_LIBS:BOOL=OFF"]; + + buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL + xlibs.libX11 xlibs.libXcursor mesa glew asciidoc libxslt docbook_xsl curl makeWrapper + docbook_xsl_ns ] ++ stdenv.lib.optional withAI jdk ++ stdenv.lib.optional withAI python; - prePatch = '' - substituteInPlace cont/base/make_gamedata_arch.sh --replace "#!/bin/sh" "#!${stdenv.shell}/bin/sh" \ - --replace "which" "type -p" - ''; - + # reported upstream http://springrts.com/mantis/view.php?id=4305 #enableParallelBuilding = true; # occasionally missing generated files on Hydra + postInstall = '' + wrapProgram "$out/bin/spring" \ + --prefix LD_LIBRARY_PATH : "${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib" + ''; + meta = with stdenv.lib; { homepage = http://springrts.com/; description = "A powerful real-time strategy (RTS) game engine"; license = licenses.gpl2; - maintainers = [ maintainers.phreedom maintainers.qknight ]; + maintainers = [ maintainers.phreedom maintainers.qknight maintainers.iElectric ]; platforms = platforms.mesaPlatforms; }; } diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix index f522eef8eb9..34760db7c68 100644 --- a/pkgs/games/spring/springlobby.nix +++ b/pkgs/games/spring/springlobby.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, cmake, wxGTK, openal, pkgconfig, curl, libtorrentRasterbar, libpng, libX11 -, gettext, bash, gawk, boost, libnotify, gtk, doxygen }: +, gettext, bash, gawk, boost, libnotify, gtk, doxygen, spring, makeWrapper }: stdenv.mkDerivation rec { name = "springlobby-${version}"; @@ -12,9 +12,11 @@ stdenv.mkDerivation rec { buildInputs = [ cmake wxGTK openal pkgconfig curl gettext libtorrentRasterbar boost libpng libX11 - libnotify gtk doxygen + libnotify gtk doxygen makeWrapper ]; + patches = [ ./unitsync_path_find.patch ]; + prePatch = '' substituteInPlace tools/regen_config_header.sh --replace "#!/usr/bin/env bash" "#!${bash}/bin/bash" substituteInPlace tools/test-susynclib.awk --replace "#!/usr/bin/awk" "#!${gawk}/bin/awk" @@ -26,13 +28,17 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - #buildPhase = "make VERBOSE=1"; + postInstall = '' + wrapProgram $out/bin/springlobby \ + --prefix PATH : "${spring}/bin" \ + --set SPRING_LIB_DIRS "${spring}/lib" + ''; meta = with stdenv.lib; { homepage = http://springlobby.info/; description = "Cross-platform lobby client for the Spring RTS project"; license = licenses.gpl2; - maintainers = [ maintainers.phreedom maintainers.qknight]; + maintainers = [ maintainers.phreedom maintainers.qknight maintainers.iElectric ]; platforms = platforms.linux; }; } diff --git a/pkgs/games/spring/unitsync_path_find.patch b/pkgs/games/spring/unitsync_path_find.patch new file mode 100644 index 00000000000..66257a5f52f --- /dev/null +++ b/pkgs/games/spring/unitsync_path_find.patch @@ -0,0 +1,10 @@ +--- a/src/settings.cpp 2013-12-02 10:09:19.000000000 +0000 ++++ b/src/settings.cpp-new 2014-02-10 11:39:48.265628767 +0000 +@@ -498,6 +498,7 @@ + + wxString Settings::AutoFindUnitSync(wxPathList pl) const + { ++ pl.AddEnvList( _T( "SPRING_LIB_DIRS" ) ); + wxString retpath = pl.FindValidPath( _T( "unitsync" ) + GetLibExtension() ); + if ( retpath.IsEmpty() ) + retpath = pl.FindValidPath( _T( "libunitsync" ) + GetLibExtension() ); diff --git a/pkgs/os-specific/linux/ati-drivers/default.nix b/pkgs/os-specific/linux/ati-drivers/default.nix index 518ca784d4a..0aa67dba237 100644 --- a/pkgs/os-specific/linux/ati-drivers/default.nix +++ b/pkgs/os-specific/linux/ati-drivers/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation { src = fetchurl { url = http://www2.ati.com/drivers/linux/amd-catalyst-13.12-linux-x86.x86_64.zip; - sha256 = "1jm0c4rqyjjhyj8a7axf4hz16bcvy8yhnkn45wc2l73xhks36h02"; + sha256 = "1c3fn328340by4qn99dgfj8c2q34fxdb2alcak0vnyc6bw7l5sms"; curlOpts = "--referer http://support.amd.com/en-us/download/desktop?os=Linux%20x86_64"; }; diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix index 6e22d6ed524..212e676a28f 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.10.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, ... } @ args: import ./generic.nix (args // rec { - version = "3.10.28"; + version = "3.10.29"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1blzvr3qywi8wxgl28zsn5djwgvw70yh3i6qjh2sz3zk9gnpd6mq"; + sha256 = "14g8z5g2xwf0s6r7m9586xdpd56nc810dny70cz6zq8c03kfq594"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix index 6edb3669c53..5baddbbdc7d 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.12.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, ... } @ args: import ./generic.nix (args // rec { - version = "3.12.9"; + version = "3.12.10"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1jzmcqshfgnkk4dibkxc7w06axw7c2fxdpghvm6d7amfpcd9ygka"; + sha256 = "0p30mfrf3jfp353k0fbfpbmz3sfkhlyzcispqg22dc0lzcj76aj7"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/linux-3.13.nix b/pkgs/os-specific/linux/kernel/linux-3.13.nix index 637d2935c98..a5d816b2563 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.13.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.13.nix @@ -13,4 +13,4 @@ import ./generic.nix (args // rec { features.needsCifsUtils = true; features.canDisableNetfilterConntrackHelpers = true; features.netfilterRPFilter = true; -}) +} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix index d7598b53b1b..c0006ed7348 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.2.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix @@ -9,4 +9,4 @@ import ./generic.nix (args // rec { }; features.iwlwifi = true; -}) +} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix index 14a4b64fe55..0993b0e74ee 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.4.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, ... } @ args: import ./generic.nix (args // rec { - version = "3.4.78"; + version = "3.4.79"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1n9avgjy3qpr28n1rq80kc1gn33w9nz6bvwds6i4d5z793fp7qpk"; + sha256 = "07xd01b5vl6gl4p2cs75fsn295jvwmlq2j9jw582b2ii8vsaavvv"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 8b658a6030e..5ade01014f9 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -81,22 +81,22 @@ rec { grsecurity_3_0_3_2_54 = { name = "grsecurity-3.0-3.2.54"; patch = fetchurl { - url = https://grsecurity.net/stable/grsecurity-3.0-3.2.54-201401191012.patch; - sha256 = "10kfdk46fgd1awys8f8520w7kanc4m0ckn28xg36473fi76i6snx"; + url = https://grsecurity.net/stable/grsecurity-3.0-3.2.54-201402062221.patch; + sha256 = "14x887xibl7d50a1pxmi0snnwcnh27z8bnidhxg2xfasxxp248m5"; }; features.grsecurity = true; # The grsec kernel patch seems to include the apparmor patches as of 3.0-3.2.54 features.apparmor = true; }; - grsecurity_3_0_3_12_8 = - { name = "grsecurity-3.0-3.12.8"; + grsecurity_3_0_3_13_2 = + { name = "grsecurity-3.0-3.13.2"; patch = fetchurl { - url = https://grsecurity.net/test/grsecurity-3.0-3.12.8-201401191015.patch; - sha256 = "0dy7daar873jp0afkf48l8ij1ii8cgcc9z5pn50h1fvhc9ap1j4f"; + url = https://grsecurity.net/test/grsecurity-3.0-3.13.2-201402062224.patch; + sha256 = "0w42d76bv7yzpr23bicsadf64csbmq988kmpzxg4yv5qwzhhbyh7"; }; features.grsecurity = true; - # The grsec kernel patch seems to include the apparmor patches as of 3.0-3.12.8 + # The grsec kernel patch seems to include the apparmor patches as of 3.0-3.13.2 features.apparmor = true; }; diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix index 0a92e39c153..a7337760b79 100644 --- a/pkgs/os-specific/linux/kernel/perf.nix +++ b/pkgs/os-specific/linux/kernel/perf.nix @@ -4,6 +4,9 @@ assert withGtk -> gtk != null; +let optionalString = stdenv.lib.optionalString; + versionOlder = stdenv.lib.versionOlder; +in stdenv.mkDerivation { name = "perf-linux-${kernel.version}"; @@ -12,7 +15,7 @@ stdenv.mkDerivation { preConfigure = '' cd tools/perf sed -i s,/usr/include/elfutils,$elfutils/include/elfutils, Makefile - patch -p1 < ${./perf.diff} + ${optionalString (versionOlder kernel.version "3.13") "patch -p1 < ${./perf.diff}"} [ -f bash_completion ] && sed -i 's,^have perf,_have perf,' bash_completion export makeFlags="DESTDIR=$out $makeFlags" ''; diff --git a/pkgs/tools/X11/bumblebee/config.patch b/pkgs/tools/X11/bumblebee/config.patch deleted file mode 100644 index 61b671f80c1..00000000000 --- a/pkgs/tools/X11/bumblebee/config.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- bumblebee-3.0/src/driver.c.orig 2012-02-03 14:51:10.282464426 +0100 -+++ bumblebee-3.0/src/driver.c 2012-02-04 22:26:02.715498536 +0100 -@@ -23,6 +23,7 @@ - #include "module.h" - #include "bblogger.h" - #include "driver.h" -+#include - - /** - * Check what drivers are available and autodetect if possible. Driver, module -@@ -30,6 +31,7 @@ - */ - void driver_detect(void) { - /* determine driver to be used */ -+ set_string_value(&bb_config.driver, getenv("BUMBLEBEE_DRIVER")); - if (*bb_config.driver) { - bb_log(LOG_DEBUG, "Skipping auto-detection, using configured driver" - " '%s'\n", bb_config.driver); -@@ -65,8 +67,8 @@ - } - } - -- if (strcmp(bb_config.driver, "nvidia")) { -- set_string_value(&bb_config.ld_path, CONF_LDPATH_NVIDIA); -- set_string_value(&bb_config.mod_path, CONF_MODPATH_NVIDIA); -+ if (!strcmp(bb_config.driver, "nvidia")) { -+ set_string_value(&bb_config.ld_path, getenv("BUMBLEBEE_LDPATH_NVIDIA")); -+ set_string_value(&bb_config.mod_path, getenv("BUMBLEBEE_MODPATH_NVIDIA")); - } - } diff --git a/pkgs/tools/X11/bumblebee/default.nix b/pkgs/tools/X11/bumblebee/default.nix index 74e3e7b1f82..58db0c13abb 100644 --- a/pkgs/tools/X11/bumblebee/default.nix +++ b/pkgs/tools/X11/bumblebee/default.nix @@ -8,19 +8,7 @@ # To test: make sure that the 'bbswitch' kernel module is installed, # then run 'bumblebeed' as root and 'optirun glxgears' as user. -# To use at startup, add e.g. to configuration.nix: -# jobs = { -# bumblebeed = { -# name = "bumblebeed"; -# description = "Manages the Optimus video card"; -# startOn = "started udev and started syslogd"; -# stopOn = "starting shutdown"; -# exec = "bumblebeed --use-syslog"; -# path = [ pkgs.bumblebee ]; -# environment = { MODULE_DIR = "${config.system.modulesTree}/lib/modules"; }; -# respawn = true; -# }; -# }; +# To use at startup, see hardware.bumblebee options. # This nix expression supports for now only the native nvidia driver. # It should not be hard to generalize this approach to support the @@ -34,7 +22,7 @@ }: let - version = "3.0"; + version = "3.2.1"; name = "bumblebee-${version}"; # isolated X11 environment with the nvidia module @@ -61,22 +49,15 @@ let ignoreCollisions = true; }; - # Custom X11 configuration for the additional xserver instance. - xorgConf = ./xorg.conf.nvidia; - in stdenv.mkDerivation { inherit name; src = fetchurl { - url = "http://github.com/downloads/Bumblebee-Project/Bumblebee/${name}.tar.gz"; - sha256 = "a27ddb77b282ac8b972857fdb0dc5061cf0a0982b7ac3e1cfa698b4f786e49a1"; + url = "http://bumblebee-project.org/${name}.tar.gz"; + sha256 = "03p3gvx99lwlavznrpg9l7jnl1yfg2adcj8jcjj0gxp20wxp060h"; }; - # 'config.patch' makes bumblebee read the active module and the nvidia configuration - # from the environment variables instead of the config file: - # BUMBLEBEE_DRIVER, BUMBLEBEE_LDPATH_NVIDIA, BUMBLEBEE_MODPATH_NVIDIA - # These variables must be set when bumblebeed and optirun are executed. - patches = [ ./config.patch ./xopts.patch ]; + patches = [ ./xopts.patch ]; preConfigure = '' # Substitute the path to the actual modinfo program in module.c. @@ -88,32 +69,25 @@ in stdenv.mkDerivation { # Don't use a special group, just reuse wheel. substituteInPlace configure \ --replace 'CONF_GID="bumblebee"' 'CONF_GID="wheel"' - - # Ensures that the config file ends up with a nonempty - # name of the nvidia module. This is needed, because the - # configuration handling code otherwise resets the - # data that we obtained from the environment (see config.patch) - export CONF_DRIVER_MODULE_NVIDIA=nvidia ''; # Build-time dependencies of bumblebeed and optirun. # Note that it has several runtime dependencies. buildInputs = [ stdenv makeWrapper pkgconfig help2man libX11 glib libbsd ]; + configureFlags = [ + "--with-udev-rules=$out/lib/udev/rules.d" + "CONF_DRIVER=nvidia" + "CONF_DRIVER_MODULE_NVIDIA=nvidia" + "CONF_LDPATH_NVIDIA=${commonEnv}/lib" + "CONF_MODPATH_NVIDIA=${commonEnv}/lib/xorg/modules" + ]; + # create a wrapper environment for bumblebeed and optirun postInstall = '' - # remove some entries from the configuration file that would otherwise - # cause our environment variables to be ignored. - substituteInPlace "$out/etc/bumblebee/bumblebee.conf" \ - --replace "LibraryPath=" "" \ - --replace "XorgModulePath=" "" - wrapProgram "$out/sbin/bumblebeed" \ --prefix PATH : "${commonEnv}/sbin:${commonEnv}/bin:\$PATH" \ --prefix LD_LIBRARY_PATH : "${commonEnv}/lib:\$LD_LIBRARY_PATH" \ - --set BUMBLEBEE_DRIVER "nvidia" \ - --set BUMBLEBEE_LDPATH_NVIDIA "${commonEnv}/lib" \ - --set BUMBLEBEE_MODPATH_NVIDIA "${commonEnv}/lib/xorg/modules" \ --set FONTCONFIG_FILE "/etc/fonts/fonts.conf" \ --set XKB_BINDIR "${xorg.xkbcomp}/bin" \ --set XKB_DIR "${xkeyboard_config}/etc/X11/xkb" @@ -121,16 +95,11 @@ in stdenv.mkDerivation { wrapProgram "$out/bin/optirun" \ --prefix PATH : "${commonEnv}/sbin:${commonEnv}/bin" \ --prefix LD_LIBRARY_PATH : "${commonEnv}/lib" \ - --set BUMBLEBEE_DRIVER "nvidia" \ - --set BUMBLEBEE_LDPATH_NVIDIA "${commonEnv}/lib" \ - --set BUMBLEBEE_MODPATH_NVIDIA "${commonEnv}/lib/xorg/modules" - - cp ${xorgConf} "$out/etc/bumblebee/xorg.conf.nvidia" ''; meta = { homepage = http://github.com/Bumblebee-Project/Bumblebee; description = "Daemon for managing Optimus videocards (power-on/off, spawns xservers)"; - license = "free"; + license = stdenv.lib.licenses.gpl3; }; } diff --git a/pkgs/tools/X11/bumblebee/xopts.patch b/pkgs/tools/X11/bumblebee/xopts.patch index 9e44a8e9fd1..f24b2a20562 100644 --- a/pkgs/tools/X11/bumblebee/xopts.patch +++ b/pkgs/tools/X11/bumblebee/xopts.patch @@ -5,7 +5,7 @@ "-nolisten", "tcp", "-noreset", + "-xkbdir", getenv("XKB_DIR"), -+ "-logfile", "/dev/null", ++ "-logfile", "/var/log/X.bumblebee.log", "-verbose", "3", "-isolateDevice", pci_id, "-modulepath", diff --git a/pkgs/tools/X11/bumblebee/xorg.conf.nvidia b/pkgs/tools/X11/bumblebee/xorg.conf.nvidia deleted file mode 100644 index 31c417d6971..00000000000 --- a/pkgs/tools/X11/bumblebee/xorg.conf.nvidia +++ /dev/null @@ -1,49 +0,0 @@ -Section "DRI" - Mode 0666 -EndSection - -Section "ServerLayout" - Identifier "Layout0" - Screen "Screen1" - Option "AutoAddDevices" "false" -EndSection - -Section "Module" - Load "dbe" - Load "extmod" - Load "glx" - Load "record" - Load "freetype" - Load "type1" -EndSection - -Section "Files" -EndSection - -Section "Device" - Identifier "Device1" - Driver "nvidia" - VendorName "NVIDIA Corporation" - Option "NoLogo" "true" - Option "UseEDID" "false" - Option "ConnectedMonitor" "CRT-0" -EndSection - -Section "Screen" - Identifier "Screen1" - Device "Device1" - Monitor "Monitor0" - DefaultDepth 24 - SubSection "Display" - Depth 24 - EndSubSection -EndSection - -Section "Extensions" - Option "Composite" "Enable" -EndSection - -Section "Monitor" - Identifier "Monitor0" - Option "DPMS" -EndSection diff --git a/pkgs/tools/misc/colord-gtk/default.nix b/pkgs/tools/misc/colord-gtk/default.nix new file mode 100644 index 00000000000..f46bf3ef7a4 --- /dev/null +++ b/pkgs/tools/misc/colord-gtk/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, colord, intltool, glib, gtk3, pkgconfig, lcms2 }: + +stdenv.mkDerivation rec { + name = "colord-gtk-0.1.25"; + + src = fetchurl { + url = "http://www.freedesktop.org/software/colord/releases/${name}.tar.xz"; + sha256 = "02hblw9rw24dhj0wqfw86pfq4y4icb6iaa92308a9jwa6k2923xx"; + }; + + buildInputs = [ intltool colord glib gtk3 pkgconfig lcms2 ]; + + meta = { + homepage = http://www.freedesktop.org/software/colord/intro.html; + license = stdenv.lib.licenses.lgpl2Plus; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix index bfa673eff09..3e33b845b60 100644 --- a/pkgs/tools/networking/modemmanager/default.nix +++ b/pkgs/tools/networking/modemmanager/default.nix @@ -1,19 +1,22 @@ -{ stdenv, fetchurl_gnome, udev, polkit, dbus_glib, ppp, intltool, pkgconfig }: +{ stdenv, fetchurl, udev, polkit, dbus_glib, ppp, intltool, pkgconfig, libmbim, libqmi }: stdenv.mkDerivation rec { - name = src.pkgname; + name = "ModemManager-0.7.991"; - src = fetchurl_gnome { - project = "ModemManager"; - major = "0"; minor = "5"; patchlevel = "4.0"; extension = "xz"; - sha256 = "1fdf5d5cc494825afe9f551248e00a2d91e220e88435b47f109ca2a707a40f1f"; + src = fetchurl { + url = "mirror://gnome/sources/ModemManager/0.7/${name}.tar.xz"; + sha256 = "0p8shqsbgnsazim7s52ylxjk064cbx2n1vm1jgywr7i58hsd6n4y"; }; nativeBuildInputs = [ intltool pkgconfig ]; - buildInputs = [ udev polkit dbus_glib ppp ]; + buildInputs = [ udev polkit dbus_glib ppp libmbim libqmi ]; - configureFlags = "--with-polkit --with-udev-base-dir=$(out)/lib/udev"; + configureFlags = [ + "--with-polkit" + "--with-udev-base-dir=$(out)/lib/udev" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + ]; meta = { description = "WWAN modem manager, part of NetworkManager"; diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix index 73b0ca58828..9a96baf5fe0 100644 --- a/pkgs/tools/package-management/rpm/default.nix +++ b/pkgs/tools/package-management/rpm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cpio, zlib, bzip2, file, elfutils, nspr, nss, popt, db4, xz }: +{ stdenv, fetchurl, cpio, zlib, bzip2, file, elfutils, nspr, nss, popt, db4, xz, python }: stdenv.mkDerivation rec { name = "rpm-4.7.2"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha1 = "07b90f653775329ea726ce0005c4c82f56167ca0"; }; - buildInputs = [ cpio zlib bzip2 file nspr nss popt db4 xz ]; + buildInputs = [ cpio zlib bzip2 file nspr nss popt db4 xz python ]; # Note: we don't add elfutils to buildInputs, since it provides a # bad `ld' and other stuff. @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_LINK = "-L${elfutils}/lib"; - configureFlags = "--with-external-db --without-lua"; + configureFlags = "--with-external-db --without-lua --enable-python"; meta = { homepage = http://www.rpm.org/; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7141cbdb0e6..e0e3967f740 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -684,6 +684,8 @@ let colord = callPackage ../tools/misc/colord { }; + colord-gtk = callPackage ../tools/misc/colord-gtk { }; + colordiff = callPackage ../tools/text/colordiff { }; connect = callPackage ../tools/networking/connect { }; @@ -1280,6 +1282,10 @@ let libshout = callPackage ../development/libraries/libshout { }; + libqmi = callPackage ../development/libraries/libqmi { }; + + libmbim = callPackage ../development/libraries/libmbim { }; + libtorrent = callPackage ../tools/networking/p2p/libtorrent { }; logcheck = callPackage ../tools/system/logcheck { @@ -2792,7 +2798,8 @@ let lessc = callPackage ../development/compilers/lessc { }; - llvm = llvmPackages.llvm; + llvm = if stdenv.isDarwin then llvm_33 # until someone solves build problems with _34 + else llvmPackages.llvm; llvm_34 = llvmPackages.llvm; llvm_33 = llvm_v ../development/compilers/llvm/3.3/llvm.nix; @@ -2809,7 +2816,7 @@ let inherit newScope fetchurl; isl = isl_0_12; stdenv = if stdenv.isDarwin - then stdenvAdapters.overrideGCC stdenv gccApple + then stdenvAdapters.overrideGCC stdenv gcc48 else stdenv; }); llvmPackagesSelf = import ../development/compilers/llvm/3.4 { inherit newScope fetchurl; isl = isl_0_12; stdenv = libcxxStdenv; }; @@ -6655,13 +6662,17 @@ let # config options you need (e.g. by overriding extraConfig). See list of options here: # https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options linux_3_2_grsecurity = lowPrio (lib.overrideDerivation (linux_3_2.override (args: { - modDirVersion = "${linux_3_2.version}-grsec"; kernelPatches = args.kernelPatches ++ [ kernelPatches.grsecurity_3_0_3_2_54 kernelPatches.grsec_path ]; + argsOverride = { + modDirVersion = "${linux_3_2.modDirVersion}-grsec"; + }; })) (args: grsecurityOverrider args)); - linux_3_12_grsecurity = lowPrio (lib.overrideDerivation (linux_3_12.override (args: { - modDirVersion = "${linux_3_12.version}-grsec"; - kernelPatches = args.kernelPatches ++ [ kernelPatches.grsecurity_3_0_3_12_8 kernelPatches.grsec_path ]; + linux_3_13_grsecurity = lowPrio (lib.overrideDerivation (linux_3_13.override (args: { + kernelPatches = args.kernelPatches ++ [ kernelPatches.grsecurity_3_0_3_13_2 kernelPatches.grsec_path ]; + argsOverride = { + modDirVersion = "${linux_3_13.modDirVersion}-grsec"; + }; })) (args: grsecurityOverrider args)); linux_3_2_apparmor = lowPrio (linux_3_2.override { @@ -6845,7 +6856,7 @@ let linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice; linuxPackages_3_11 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_11 linuxPackages_3_11); linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12); - linuxPackages_3_12_grsecurity = linuxPackagesFor pkgs.linux_3_12_grsecurity linuxPackages_3_12_grsecurity; + linuxPackages_3_13_grsecurity = linuxPackagesFor pkgs.linux_3_13_grsecurity linuxPackages_3_13_grsecurity; linuxPackages_3_13 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_13 linuxPackages_3_13); # Update this when adding a new version! linuxPackages_latest = pkgs.linuxPackages_3_13; @@ -8103,7 +8114,7 @@ let hexedit = callPackage ../applications/editors/hexedit { }; - hipchat = callPackage ../applications/networking/instant-messengers/hipchat { }; + hipchat = callPackage_i686 ../applications/networking/instant-messengers/hipchat { }; homebank = callPackage ../applications/office/homebank { }; @@ -9027,8 +9038,8 @@ let }; weechat = callPackage ../applications/networking/irc/weechat { - # weechat crashes on /exit when using gnutls 3.1.x. gnutls 3.2.x works. - gnutls = gnutls32; + # weechat doesn't exit with gnutls32. Use 3.1 for now. + gnutls = gnutls31; }; weston = callPackage ../applications/window-managers/weston { }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index a599b48f065..bcc738e3bce 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -944,6 +944,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x Diff = callPackage ../development/libraries/haskell/Diff {}; + diff3 = callPackage ../development/libraries/haskell/diff3 {}; + digest = callPackage ../development/libraries/haskell/digest { inherit (pkgs) zlib; }; @@ -1216,6 +1218,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x libc = pkgs.stdenv.gcc.libc; }; + gtkTraymanager = callPackage ../development/libraries/haskell/gtk-traymanager {}; + graphviz = callPackage ../development/libraries/haskell/graphviz {}; groups = callPackage ../development/libraries/haskell/groups {}; @@ -1508,6 +1512,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x json = callPackage ../development/libraries/haskell/json {}; + jsonAssertions = callPackage ../development/libraries/haskell/json-assertions { + aeson = self.aeson_0_7_0_0; + lens = self.lens_4_0_1; + }; + jsonTypes = callPackage ../development/libraries/haskell/jsonTypes {}; kansasLava = callPackage ../development/libraries/haskell/kansas-lava {}; @@ -2769,6 +2778,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x QuickCheck = self.QuickCheck2; }; + taffybar = callPackage ../applications/misc/taffybar {}; + yi = callPackage ../applications/editors/yi/yi.nix {}; yiContrib = callPackage ../applications/editors/yi/yi-contrib.nix {}; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 48d0a8c5db3..6d2605e0f98 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -417,6 +417,19 @@ pythonPackages = modules // import ./python-packages-generated.nix { }); + async = buildPythonPackage rec { + name = "async-0.6.1"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + buildInputs = [ pkgs.zlib ]; + doCheck = false; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/a/async/${name}.tar.gz"; + sha256 = "1lfmjm8apy9qpnpbq8g641fd01qxh9jlya5g2d6z60vf8p04rla1"; + }; + }; + argparse = buildPythonPackage (rec { name = "argparse-1.2.1"; @@ -795,6 +808,17 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }; + bunch = buildPythonPackage (rec { + name = "bunch-1.0.1"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/b/bunch/${name}.tar.gz"; + sha256 = "1akalx2pd1fjlvrq69plvcx783ppslvikqdm93z2sdybq07pmish"; + }; + doCheck = false; + }); + carrot = buildPythonPackage rec { name = "carrot-0.10.7"; @@ -1555,6 +1579,33 @@ pythonPackages = modules // import ./python-packages-generated.nix { buildInputs = [ fudge nose ]; }; + fedora_cert = buildPythonPackage (rec { + name = "fedora-cert-0.5.9.2"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://fedorahosted.org/releases/f/e/fedora-packager/fedora-packager-0.5.9.2.tar.bz2"; + sha256 = "105swvzshgn3g6bjwk67xd8pslnhpxwa63mdsw6cl4c7cjp2blx9"; + }; + installCommand = "make install"; + propagatedBuildInputs = [ python_fedora ]; + postInstall = "mv $out/bin/fedpkg $out/bin/fedora-cert-fedpkg"; + doCheck = false; + }); + + fedpkg = buildPythonPackage (rec { + name = "fedpkg-1.14"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://fedorahosted.org/releases/f/e/fedpkg/fedpkg-1.14.tar.bz2"; + sha256 = "0rj60525f2sv34g5llafnkmpvbwrfbmfajxjc14ldwzymp8clc02"; + }; + + patches = [ ../development/python-modules/fedpkg-buildfix.diff ]; + propagatedBuildInputs = [ rpkg offtrac urlgrabber fedora_cert ]; + }); + fudge = buildPythonPackage rec { name = "fudge-0.9.4"; src = fetchurl { @@ -1582,6 +1633,31 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }; + gitdb = buildPythonPackage rec { + name = "gitdb-0.5.4"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + doCheck = false; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/g/gitdb/${name}.tar.gz"; + sha256 = "10rpmmlln59aq44cd5vkb77hslak5pa1rbmigg6ski5f1nn2spfy"; + }; + + propagatedBuildInputs = [ smmap async ]; + }; + + GitPython = buildPythonPackage rec { + name = "GitPython-0.3.2"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/G/GitPython/GitPython-0.3.2.RC1.tar.gz"; + sha256 = "1q4lc2ps12l517mmrxc8iq6gxyhj6d77bnk1p7mxf38d99l8crzx"; + }; + + buildInputs = [ nose ]; + propagatedBuildInputs = [ gitdb ]; + }; googlecl = buildPythonPackage rec { version = "0.9.14"; @@ -1619,6 +1695,22 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }; + koji = buildPythonPackage (rec { + name = "koji-1.8"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2"; + sha256 = "10dph209h4jgajb5jmbjhqy4z4hd22i7s2d93vm3ikdf01i8iwf1"; + }; + + buildPhase = ":"; + installCommand = "make install DESTDIR=$out/ && cp -R $out/nix/store/*/* $out/ && rm -rf $out/nix"; + doCheck = false; + propagatedBuildInputs = [ pythonPackages.pycurl ]; + + }); + logilab_astng = buildPythonPackage rec { name = "logilab-astng-0.24.1"; @@ -3227,6 +3319,16 @@ pythonPackages = modules // import ./python-packages-generated.nix { [ pkgs.unzip fs gdata python_keyczar mock pyasn1 pycrypto pytest ]; }; + kitchen = buildPythonPackage (rec { + name = "kitchen-1.1.1"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/k/kitchen/kitchen-1.1.1.tar.gz"; + sha256 = "0ki840hjk1q19w6icv0dj2jxb00966nwy9b1jib0dgdspj00yrr5"; + }; + }); + pylast = buildPythonPackage rec { name = "pylast-${version}"; version = "0.5.11"; @@ -4229,6 +4331,17 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }); + offtrac = buildPythonPackage rec { + name = "offtrac-0.1.0"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/o/offtrac/${name}.tar.gz"; + sha256 = "06vd010pa1z7lyfj1na30iqzffr4kzj2k2sba09spik7drlvvl56"; + }; + doCheck = false; + }; + # optfunc = buildPythonPackage ( rec { # name = "optfunc-git"; # @@ -4293,6 +4406,23 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }); + osc = buildPythonPackage (rec { + name = "osc-0.133+git"; + + src = fetchgit { + url = git://gitorious.org/opensuse/osc.git; + rev = "6cd541967ee2fca0b89e81470f18b97a3ffc23ce"; + sha256 = "a39ce0e321e40e9758bf7b9128d316c71b35b80eabc84f13df492083bb6f1cc6"; + }; + + buildPhase = "python setup.py build"; + doCheck = false; + postInstall = "ln -s $out/bin/osc-wrapper.py $out/bin/osc"; + + propagatedBuildInputs = [ pythonPackages.m2crypto ]; + + }); + pandas = buildPythonPackage rec { name = "pandas-0.12.0"; @@ -5171,6 +5301,18 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }); + python_fedora = buildPythonPackage (rec { + name = "python-fedora-0.3.32.3"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://fedorahosted.org/releases/p/y/python-fedora/python-fedora-0.3.32.3.tar.gz"; + sha256 = "0qwmbid4pkdj6z9gwa43fzs97fr6ci2h2vj1hyk0gp0vqim4kv4l"; + }; + propagatedBuildInputs = [ kitchen requests bunch ]; + doCheck = false; + }); + python_keyczar = buildPythonPackage rec { name = "python-keyczar-0.71c"; @@ -5941,6 +6083,24 @@ pythonPackages = modules // import ./python-packages-generated.nix { }; }; + rpkg = buildPythonPackage (rec { + name = "rpkg-1.14"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://fedorahosted.org/releases/r/p/rpkg/rpkg-1.14.tar.gz"; + sha256 = "0d053hdjz87aym1sfm6c4cxmzmy5g0gkrmrczly86skj957r77a7"; + }; + + patches = [ ../development/python-modules/rpkg-buildfix.diff ]; + + # buildPhase = "python setup.py build"; + # doCheck = false; + propagatedBuildInputs = [ pycurl koji GitPython pkgs.git + pkgs.rpm pkgs.pyopenssl ]; + + }); + rtslib_fb = buildPythonPackage rec { version = "2.1.fb43"; name = "rtslib-fb-${version}"; @@ -6806,6 +6966,15 @@ pythonPackages = modules // import ./python-packages-generated.nix { # }; # }; + smmap = buildPythonPackage rec { + name = "smmap-0.8.2"; + meta.maintainers = [ stdenv.lib.maintainers.mornfall ]; + + src = fetchurl { + url = "https://pypi.python.org/packages/source/s/smmap/${name}.tar.gz"; + sha256 = "0vrdgr6npmajrv658fv8bij7zgm5jmz2yxkbv8kmbv25q1f9b8ny"; + }; + }; trac = buildPythonPackage { name = "trac-1.0.1";