From 84cf3f3de784a1092addcecaf668b202e674800e Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 31 Jul 2014 12:28:35 +0200 Subject: [PATCH 01/56] Agda: drop obsolete version 2.3.2.2 --- pkgs/development/compilers/agda/2.3.2.2.nix | 29 ----------------- .../agda/{2.4.0.2.nix => default.nix} | 0 .../development/compilers/agda/stdlib-0.7.nix | 31 ------------------- .../agda/{stdlib-0.8.nix => stdlib.nix} | 0 pkgs/top-level/haskell-packages.nix | 13 ++------ 5 files changed, 2 insertions(+), 71 deletions(-) delete mode 100644 pkgs/development/compilers/agda/2.3.2.2.nix rename pkgs/development/compilers/agda/{2.4.0.2.nix => default.nix} (100%) delete mode 100644 pkgs/development/compilers/agda/stdlib-0.7.nix rename pkgs/development/compilers/agda/{stdlib-0.8.nix => stdlib.nix} (100%) diff --git a/pkgs/development/compilers/agda/2.3.2.2.nix b/pkgs/development/compilers/agda/2.3.2.2.nix deleted file mode 100644 index 5a1f00a995c..00000000000 --- a/pkgs/development/compilers/agda/2.3.2.2.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ cabal, alex, binary, deepseq, emacs, filepath, geniplate, happy -, hashable, hashtables, haskeline, haskellSrcExts, mtl, parallel -, QuickCheck, text, time, unorderedContainers, xhtml, zlib -}: - -cabal.mkDerivation (self: { - pname = "Agda"; - version = "2.3.2.2"; - sha256 = "0zr2rg2yvq6pqg69c6h7hqqpc5nj8prfhcvj5p2alkby0vs110qc"; - isLibrary = true; - isExecutable = true; - buildDepends = [ - binary deepseq filepath geniplate hashable hashtables haskeline - haskellSrcExts mtl parallel QuickCheck text time - unorderedContainers xhtml zlib - ]; - buildTools = [ alex emacs happy ]; - jailbreak = true; - postInstall = '' - $out/bin/agda-mode compile - ''; - meta = { - homepage = "http://wiki.portal.chalmers.se/agda/"; - description = "A dependently typed functional programming language and proof assistant"; - license = "unknown"; - platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.andres ]; - }; -}) diff --git a/pkgs/development/compilers/agda/2.4.0.2.nix b/pkgs/development/compilers/agda/default.nix similarity index 100% rename from pkgs/development/compilers/agda/2.4.0.2.nix rename to pkgs/development/compilers/agda/default.nix diff --git a/pkgs/development/compilers/agda/stdlib-0.7.nix b/pkgs/development/compilers/agda/stdlib-0.7.nix deleted file mode 100644 index c07b3e7c7dd..00000000000 --- a/pkgs/development/compilers/agda/stdlib-0.7.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ cabal, fetchurl, filemanip, Agda }: - -cabal.mkDerivation (self: { - pname = "Agda-stdlib"; - version = "0.7"; - - src = fetchurl { - url = "http://www.cse.chalmers.se/~nad/software/lib-0.7.tar.gz"; - sha256 = "1ynjgqk8hhnm6rbngy8fjsrd6i4phj2hlan9bk435bbywbl366k3"; - }; - - buildDepends = [ filemanip Agda ]; - - preConfigure = "cd ffi"; - - postInstall = '' - mkdir -p $out/share - cd .. - runhaskell GenerateEverything - agda -i . -i src Everything.agda - cp -pR src $out/share/agda - ''; - - meta = { - homepage = "http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary"; - description = "A standard library for use with the Agda compiler."; - license = "unknown"; - platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.jwiegley ]; - }; -}) \ No newline at end of file diff --git a/pkgs/development/compilers/agda/stdlib-0.8.nix b/pkgs/development/compilers/agda/stdlib.nix similarity index 100% rename from pkgs/development/compilers/agda/stdlib-0.8.nix rename to pkgs/development/compilers/agda/stdlib.nix diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 509c2067ec0..c049f5cda8d 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2759,17 +2759,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # Compilers. - Agda_2_3_2_2 = callPackage ../development/compilers/agda/2.3.2.2.nix {}; - Agda_2_4_0_2 = callPackage ../development/compilers/agda/2.4.0.2.nix {}; - Agda = self.Agda_2_4_0_2; - - AgdaStdlib_0_7 = callPackage ../development/compilers/agda/stdlib-0.7.nix { - Agda = self.Agda_2_3_2_2; - }; - AgdaStdlib_0_8 = callPackage ../development/compilers/agda/stdlib-0.8.nix { - Agda = self.Agda_2_4_0_2; - }; - AgdaStdlib = self.AgdaStdlib_0_8; + Agda = callPackage ../development/compilers/agda {}; + AgdaStdlib = callPackage ../development/compilers/agda/stdlib.nix {}; uhc = callPackage ../development/compilers/uhc {}; From d2d4b8477f0cb46aca666fb02f204d406613f3a9 Mon Sep 17 00:00:00 2001 From: Paul Colomiets Date: Tue, 5 Aug 2014 15:56:02 +0300 Subject: [PATCH 02/56] beanstalkd: upgrade to v1.10 --- pkgs/servers/beanstalkd/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/beanstalkd/default.nix b/pkgs/servers/beanstalkd/default.nix index 717ea6306cf..264e6ff749a 100644 --- a/pkgs/servers/beanstalkd/default.nix +++ b/pkgs/servers/beanstalkd/default.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - version = "1.9"; + version = "1.10"; name = "beanstalkd-${version}"; installPhase=''make install "PREFIX=$out"''; src = fetchurl { url = "https://github.com/kr/beanstalkd/archive/v${version}.tar.gz"; - sha256 = "158e6d6090c0afac7ee17b9f22713506b3e870dc04a738517282e2e262afb9eb"; + sha256 = "0n9dlmiddcfl7i0f1lwfhqiwyvf26493fxfcmn8jm30nbqciwfwj"; }; meta = with stdenv.lib; { From 0652ee16e4ad122853dfd3dfa9dd14a80c8910b7 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 5 Aug 2014 16:00:10 -0500 Subject: [PATCH 03/56] unifi: Add derivation --- pkgs/servers/unifi/default.nix | 31 +++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/servers/unifi/default.nix diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix new file mode 100644 index 00000000000..43162e4ca29 --- /dev/null +++ b/pkgs/servers/unifi/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, unzip }: + +stdenv.mkDerivation rec { + name = "unifi-controller-${version}"; + version = "3.2.1"; + + src = fetchurl { + url = "http://dl.ubnt.com/unifi/${version}/UniFi.unix.zip"; + sha256 = "0x7s5k9wxkw0rcs4c2mdrmmjpcfmbh5pvvpj8brrwnkgx072n53c"; + }; + + buildInputs = [ unzip ]; + + doConfigure = false; + + buildPhase = '' + rm -rf bin conf readme.txt + ''; + + installPhase = '' + mkdir -p $out + cp -ar * $out + ''; + + meta = with stdenv.lib; { + homepage = http://www.ubnt.com/; + description = "Controller for Ubiquiti UniFi accesspoints"; + license = licenses.unfree; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 463027b2ac5..3568e4a638d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7015,6 +7015,8 @@ let axis2 = callPackage ../servers/http/tomcat/axis2 { }; + unifi = callPackage ../servers/unifi { }; + virtuoso6 = callPackage ../servers/sql/virtuoso/6.x.nix { }; virtuoso7 = callPackage ../servers/sql/virtuoso/7.x.nix { }; From dfb596b49b24e09a6123ab901ded50210d322b17 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 5 Aug 2014 16:00:30 -0500 Subject: [PATCH 04/56] nixos/unifi: Add service module --- nixos/modules/misc/ids.nix | 1 + nixos/modules/module-list.nix | 1 + nixos/modules/services/networking/unifi.nix | 87 +++++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 nixos/modules/services/networking/unifi.nix diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 4ba81dadb31..853efcc09dc 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -138,6 +138,7 @@ znc = 128; polipo = 129; mopidy = 130; + unifi = 131; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 2cbda50ba29..ea647b43c9d 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -233,6 +233,7 @@ ./services/networking/teamspeak3.nix ./services/networking/tftpd.nix ./services/networking/unbound.nix + ./services/networking/unifi.nix ./services/networking/vsftpd.nix ./services/networking/wakeonlan.nix ./services/networking/websockify.nix diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix new file mode 100644 index 00000000000..cc9e2b93471 --- /dev/null +++ b/nixos/modules/services/networking/unifi.nix @@ -0,0 +1,87 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.services.unifi; + stateDir = "/var/lib/unifi"; + cmd = "@${pkgs.icedtea7_jre}/bin/java java -jar ${stateDir}/lib/ace.jar"; +in +{ + + options = { + + services.unifi.enable = mkOption { + type = types.uniq types.bool; + default = false; + description = '' + Whether or not to enable the unifi controller service. + ''; + }; + + }; + + config = mkIf cfg.enable { + + users.extraUsers.unifi = { + uid = config.ids.uids.unifi; + description = "UniFi controller daemon user"; + home = "${stateDir}"; + }; + + systemd.mounts = [ + { + unitConfig.StopWhenUnneeded = true; + requiredBy = [ "unifi.service" ]; + what = "${pkgs.unifi}/dl"; + where = "${stateDir}/dl"; + options = "bind"; + } + { + unitConfig.StopWhenUnneeded = true; + requiredBy = [ "unifi.service" ]; + what = "${pkgs.unifi}/lib"; + where = "${stateDir}/lib"; + options = "bind"; + } + { + unitConfig.StopWhenUnneeded = true; + requiredBy = [ "unifi.service" ]; + what = "${pkgs.mongodb}/bin"; + where = "${stateDir}/bin"; + options = "bind"; + } + ]; + + systemd.services.unifi = { + description = "UniFi controller daemon"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + + preStart = '' + # Ensure privacy of state + chown unifi "${stateDir}" + chmod 0700 "${stateDir}" + + # Create the volatile webapps + mkdir -p "${stateDir}/webapps" + chown unifi "${stateDir}/webapps" + ln -s "${pkgs.unifi}/webapps/ROOT.war" "${stateDir}/webapps/ROOT.war" + ''; + + postStop = '' + rm "${stateDir}/webapps/ROOT.war" + ''; + + serviceConfig = { + Type = "simple"; + ExecStart = "${cmd} start"; + ExecStop = "${cmd} stop"; + User = "unifi"; + PermissionsStartOnly = true; + UMask = "0077"; + WorkingDirectory = "${stateDir}"; + }; + }; + + }; + +} From ede3e60a3c0b01b50d8a9ecc3c991f8f0208e8f0 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 5 Aug 2014 21:47:55 -0500 Subject: [PATCH 05/56] unifi: Add wkennington as a maintainer --- lib/maintainers.nix | 1 + pkgs/servers/unifi/default.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index a4386b067b5..9c81ef6a37e 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -108,6 +108,7 @@ winden = "Antonio Vargas Gonzalez "; wizeman = "Ricardo M. Correia "; wjlroe = "William Roe "; + wkennington = "William A. Kennington III "; wmertens = "Wout Mertens "; z77z = "Marco Maggesi "; zef = "Zef Hemel "; diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix index 43162e4ca29..8aa15ee9f82 100644 --- a/pkgs/servers/unifi/default.nix +++ b/pkgs/servers/unifi/default.nix @@ -27,5 +27,6 @@ stdenv.mkDerivation rec { description = "Controller for Ubiquiti UniFi accesspoints"; license = licenses.unfree; platforms = platforms.unix; + maintainers = with maintainers; [ wkennington ]; }; } From 12ad29226c4186e1e3a8633061e61a651a36a4a5 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 5 Aug 2014 22:09:15 -0500 Subject: [PATCH 06/56] nixos/unifi: Fix ordering of mount rules --- nixos/modules/services/networking/unifi.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix index cc9e2b93471..b6f957ddde8 100644 --- a/nixos/modules/services/networking/unifi.nix +++ b/nixos/modules/services/networking/unifi.nix @@ -29,22 +29,25 @@ in systemd.mounts = [ { - unitConfig.StopWhenUnneeded = true; + bindsTo = [ "unifi.service" ]; requiredBy = [ "unifi.service" ]; + before = [ "unifi.service" ]; what = "${pkgs.unifi}/dl"; where = "${stateDir}/dl"; options = "bind"; } { - unitConfig.StopWhenUnneeded = true; + bindsTo = [ "unifi.service" ]; requiredBy = [ "unifi.service" ]; + before = [ "unifi.service" ]; what = "${pkgs.unifi}/lib"; where = "${stateDir}/lib"; options = "bind"; } { - unitConfig.StopWhenUnneeded = true; + bindsTo = [ "unifi.service" ]; requiredBy = [ "unifi.service" ]; + before = [ "unifi.service" ]; what = "${pkgs.mongodb}/bin"; where = "${stateDir}/bin"; options = "bind"; From 377454ff0ef8f2e643f37edb953760e0dc1503f4 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 5 Aug 2014 23:15:49 -0500 Subject: [PATCH 07/56] nixos/unifi: Explain and simplify the bind mount configuration --- nixos/modules/services/networking/unifi.nix | 42 ++++++++++----------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix index b6f957ddde8..634f760328f 100644 --- a/nixos/modules/services/networking/unifi.nix +++ b/nixos/modules/services/networking/unifi.nix @@ -27,32 +27,30 @@ in home = "${stateDir}"; }; - systemd.mounts = [ - { + # We must create the binary directories as bind mounts instead of symlinks + # This is because the controller resolves all symlinks to absolute paths + # to be used as the working directory. + systemd.mounts = map ({ what, where }: { bindsTo = [ "unifi.service" ]; requiredBy = [ "unifi.service" ]; before = [ "unifi.service" ]; - what = "${pkgs.unifi}/dl"; - where = "${stateDir}/dl"; options = "bind"; - } - { - bindsTo = [ "unifi.service" ]; - requiredBy = [ "unifi.service" ]; - before = [ "unifi.service" ]; - what = "${pkgs.unifi}/lib"; - where = "${stateDir}/lib"; - options = "bind"; - } - { - bindsTo = [ "unifi.service" ]; - requiredBy = [ "unifi.service" ]; - before = [ "unifi.service" ]; - what = "${pkgs.mongodb}/bin"; - where = "${stateDir}/bin"; - options = "bind"; - } - ]; + what = what; + where = where; + }) [ + { + what = "${pkgs.unifi}/dl"; + where = "${stateDir}/dl"; + } + { + what = "${pkgs.unifi}/lib"; + where = "${stateDir}/lib"; + } + { + what = "${pkgs.mongodb}/bin"; + where = "${stateDir}/bin"; + } + ]; systemd.services.unifi = { description = "UniFi controller daemon"; From d958692420a686b8b03e03eba3edff67b80e52f4 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Wed, 6 Aug 2014 12:08:41 +0200 Subject: [PATCH 08/56] riemann-c-client: Update from 1.1.1 to 1.2.0 --- pkgs/tools/misc/riemann-c-client/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/riemann-c-client/default.nix b/pkgs/tools/misc/riemann-c-client/default.nix index d3f18b1353c..00eaa8aad76 100644 --- a/pkgs/tools/misc/riemann-c-client/default.nix +++ b/pkgs/tools/misc/riemann-c-client/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "riemann-c-client-${version}"; - version = "1.1.1"; + version = "1.2.0"; src = fetchurl { url = "https://github.com/algernon/riemann-c-client/archive/${name}.tar.gz"; - sha256 = "10nz20svf1nb6kymwp0x49nvwnxakby33r6jsadish1fjcvzki88"; + sha256 = "1w3rx0hva605d5vzlhhm4pb43ady0m3s4mz8ix1ycn4b8cq9jsjs"; }; buildInputs = [ autoconf automake libtool pkgconfig file protobufc ]; From f4cd161e9b02d7fd52cf2b45e071d3a91196fb15 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Wed, 6 Aug 2014 12:09:08 +0200 Subject: [PATCH 09/56] syslog-ng-incubator: Update from 0.3.1 to 0.3.3 --- pkgs/tools/system/syslog-ng-incubator/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/syslog-ng-incubator/default.nix b/pkgs/tools/system/syslog-ng-incubator/default.nix index 93cc7fa7c5d..34a0f15ec1d 100644 --- a/pkgs/tools/system/syslog-ng-incubator/default.nix +++ b/pkgs/tools/system/syslog-ng-incubator/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { name = "syslog-ng-incubator-${version}"; - version = "0.3.1"; + version = "0.3.3"; src = fetchurl { url = "https://github.com/balabit/syslog-ng-incubator/archive/${name}.tar.gz"; - sha256 = "0zr0vlp7cq3qfhqhalf7rdyd54skswxnc9j9wi8sfmz3psy3vd4y"; + sha256 = "1yx2gdq1vhrcp113hxgl66z5df4ya9nznvq00nvy4v9yn8wf9fb8"; }; buildInputs = [ From 0dd155180617dcc7ea978f6adc83b4d80d95f611 Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Wed, 6 Aug 2014 12:10:07 +0200 Subject: [PATCH 10/56] syslog-ng: Update from 3.5.4.1 to 3.5.6 --- pkgs/tools/system/syslog-ng/default.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/tools/system/syslog-ng/default.nix b/pkgs/tools/system/syslog-ng/default.nix index 89bf0688651..a62f81052ba 100644 --- a/pkgs/tools/system/syslog-ng/default.nix +++ b/pkgs/tools/system/syslog-ng/default.nix @@ -1,11 +1,13 @@ { stdenv, fetchurl, eventlog, pkgconfig, glib, python, systemd, perl }: -stdenv.mkDerivation { - name = "syslog-ng-3.5.4.1"; +stdenv.mkDerivation rec { + name = "syslog-ng-${version}"; + + version = "3.5.6"; src = fetchurl { - url = "http://www.balabit.com/downloads/files?path=/syslog-ng/sources/3.5.4.1/source/syslog-ng_3.5.4.1.tar.gz"; - sha256 = "0rkgrmnyx1x6m3jw5n49k7r1dcg79lxh900g74rgvd3j86g9dilj"; + url = "http://www.balabit.com/downloads/files?path=/syslog-ng/sources/${version}/source/syslog-ng_${version}.tar.gz"; + sha256 = "19i1idklpgn6mz0mg7194by5fjgvvh5n4v2a0rr1z0778l2038kc"; }; buildInputs = [ eventlog pkgconfig glib python systemd perl ]; @@ -16,9 +18,10 @@ stdenv.mkDerivation { "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ]; - meta = { + meta = with stdenv.lib; { homepage = "http://www.balabit.com/network-security/syslog-ng/"; description = "Next-generation syslogd with advanced networking and filtering capabilities"; - license = stdenv.lib.licenses.gpl2; + license = licenses.gpl2; + maintainers = [ maintainers.rickynils ]; }; } From 8efdaa0aa2486942f3bfe888a0cd13b67130b147 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Tue, 5 Aug 2014 15:37:56 +0200 Subject: [PATCH 11/56] Add the Pharo language and IDE package http://pharo.org I'm one of the developers of Pharo and the creator and maintainer of the Ubuntu PPA : https://launchpad.net/~pharo/+archive/stable. --- pkgs/development/pharo/vm/default.nix | 79 ++++++++++++++++ .../vm/patches/fix-cmake-root-directory.patch | 84 ++++++++++++++++++ .../vm/patches/fix-executable-name.patch | 14 +++ .../vm/patches/pharo-is-not-squeak.patch | 23 +++++ .../share/applications/pharo-vm.desktop | 11 +++ .../share/icons/hicolor/16x16/apps/pharo.png | Bin 0 -> 902 bytes .../icons/hicolor/256x256/apps/pharo.png | Bin 0 -> 52181 bytes .../share/icons/hicolor/32x32/apps/pharo.png | Bin 0 -> 2368 bytes .../share/icons/hicolor/48x48/apps/pharo.png | Bin 0 -> 4602 bytes .../share/mime/packages/pharo-image.xml | 9 ++ pkgs/top-level/all-packages.nix | 2 + 11 files changed, 222 insertions(+) create mode 100644 pkgs/development/pharo/vm/default.nix create mode 100644 pkgs/development/pharo/vm/patches/fix-cmake-root-directory.patch create mode 100644 pkgs/development/pharo/vm/patches/fix-executable-name.patch create mode 100644 pkgs/development/pharo/vm/patches/pharo-is-not-squeak.patch create mode 100644 pkgs/development/pharo/vm/resources/share/applications/pharo-vm.desktop create mode 100644 pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.png create mode 100644 pkgs/development/pharo/vm/resources/share/icons/hicolor/256x256/apps/pharo.png create mode 100644 pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.png create mode 100644 pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.png create mode 100644 pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml diff --git a/pkgs/development/pharo/vm/default.nix b/pkgs/development/pharo/vm/default.nix new file mode 100644 index 00000000000..939ff8ec750 --- /dev/null +++ b/pkgs/development/pharo/vm/default.nix @@ -0,0 +1,79 @@ +{ stdenv, fetchurl, cmake, bash, unzip, glibc, openssl, gcc, mesa, freetype, xlibs, alsaLib }: + +stdenv.mkDerivation rec { + name = "pharo-vm-core-i386-2014.06.25"; + system = "x86_32-linux"; + src = fetchurl { + url = http://files.pharo.org/vm/src/vm-unix-sources/pharo-vm-2014.06.25.tar.bz2; + md5 = "4d80d8169c2f2f0355c43ee90bbad23f"; + }; + + sources10Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV10.sources.zip; + md5 = "3476222a0345a6f8f8b6093b5e3b30fb"; + }; + + sources20Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV20.sources.zip; + md5 = "a145b0733f9d68d9ce6a76270b6b9ec8"; + }; + + sources30Zip = fetchurl { + url = http://files.pharo.org/sources/PharoV30.sources.zip; + md5 = "bb0a66b8968ef7d0da97ec86331f68c8"; + }; + + # Building + preConfigure = '' + cd build/ + ''; + resources = ./resources; + installPhase = '' + echo Current directory $(pwd) + echo Creating prefix "$prefix" + mkdir -p "$prefix/lib/pharo-vm" + + cd ../../results + + mv vm-display-null vm-display-null.so + mv vm-display-X11 vm-display-X11.so + mv vm-sound-null vm-sound-null.so + mv vm-sound-ALSA vm-sound-ALSA.so + mv pharo pharo-vm + + cp * "$prefix/lib/pharo-vm" + + cp -R "$resources"/* "$prefix/" + + mkdir $prefix/bin + + chmod u+w $prefix/bin + cat > $prefix/bin/pharo-vm-x < $prefix/bin/pharo-vm-nox < +Subject: Fix use of absolute paths in cmake files + +* build/directories.cmake +* build/CMakeLists.txt +* build/vm-sound-ALSA/CMakeLists.txt +* build/vm-sound-null/CMakeLists.txt +* build/vm-display-null/CMakeLists.txt +* build/vm-display-X11/CMakeLists.txt +--- a/build/CMakeLists.txt ++++ b/build/CMakeLists.txt +@@ -71,7 +71,7 @@ + list(APPEND LINKLIBS m) + list(APPEND LINKLIBS dl) + list(APPEND LINKLIBS pthread) +-set(EXECUTABLE_OUTPUT_PATH "/builds/workspace/Pharo-vm-unix-sources/cog/results") ++set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/../results") + add_subdirectory("vm-display-null") + add_subdirectory("vm-display-X11") + add_subdirectory("vm-sound-ALSA") +--- a/build/directories.cmake ++++ b/build/directories.cmake +@@ -1,12 +1,12 @@ +-set(topDir "/builds/workspace/Pharo-vm-unix-sources/cog") +-set(buildDir "/builds/workspace/Pharo-vm-unix-sources/cog/build") ++set(topDir "${CMAKE_SOURCE_DIR}/..") ++set(buildDir "${CMAKE_SOURCE_DIR}/../build") + set(thirdpartyDir "${buildDir}/thirdParty") +-set(platformsDir "/builds/workspace/Pharo-vm-unix-sources/cog/platforms") +-set(srcDir "/builds/workspace/Pharo-vm-unix-sources/cog/src") ++set(platformsDir "${CMAKE_SOURCE_DIR}/../platforms") ++set(srcDir "${CMAKE_SOURCE_DIR}/../src") + set(srcPluginsDir "${srcDir}/plugins") + set(srcVMDir "${srcDir}/vm") + set(platformName "unix") + set(targetPlatform ${platformsDir}/${platformName}) + set(crossDir "${platformsDir}/Cross") + set(platformVMDir "${targetPlatform}/vm") +-set(outputDir "/builds/workspace/Pharo-vm-unix-sources/cog/results") ++set(outputDir "${CMAKE_SOURCE_DIR}/../results") +--- a/build/vm-display-X11/CMakeLists.txt ++++ b/build/vm-display-X11/CMakeLists.txt +@@ -11,7 +11,7 @@ + include_directories(${crossDir}/plugins/FilePlugin) + include_directories(${targetPlatform}/plugins/B3DAcceleratorPlugin) + include_directories(${crossDir}/plugins/B3DAcceleratorPlugin) +-set(LIBRARY_OUTPUT_PATH "/builds/workspace/Pharo-vm-unix-sources/cog/results") ++set(LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/../results") + list(APPEND LINKLIBS SM) + list(APPEND LINKLIBS ICE) + list(APPEND LINKLIBS GL) +--- a/build/vm-display-null/CMakeLists.txt ++++ b/build/vm-display-null/CMakeLists.txt +@@ -11,7 +11,7 @@ + include_directories(${crossDir}/plugins/FilePlugin) + include_directories(${targetPlatform}/plugins/B3DAcceleratorPlugin) + include_directories(${crossDir}/plugins/B3DAcceleratorPlugin) +-set(LIBRARY_OUTPUT_PATH "/builds/workspace/Pharo-vm-unix-sources/cog/results") ++set(LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/../results") + target_link_libraries(vm-display-null ${LINKLIBS}) + set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" + LINK_FLAGS -m32) +--- a/build/vm-sound-ALSA/CMakeLists.txt ++++ b/build/vm-sound-ALSA/CMakeLists.txt +@@ -11,7 +11,7 @@ + include_directories(${crossDir}/plugins/FilePlugin) + include_directories(${targetPlatform}/plugins/B3DAcceleratorPlugin) + include_directories(${crossDir}/plugins/B3DAcceleratorPlugin) +-set(LIBRARY_OUTPUT_PATH "/builds/workspace/Pharo-vm-unix-sources/cog/results") ++set(LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/../results") + target_link_libraries(vm-sound-ALSA ${LINKLIBS}) + set_target_properties(vm-sound-ALSA PROPERTIES PREFIX "" SUFFIX "" + LINK_FLAGS -m32) +--- a/build/vm-sound-null/CMakeLists.txt ++++ b/build/vm-sound-null/CMakeLists.txt +@@ -11,7 +11,7 @@ + include_directories(${crossDir}/plugins/FilePlugin) + include_directories(${targetPlatform}/plugins/B3DAcceleratorPlugin) + include_directories(${crossDir}/plugins/B3DAcceleratorPlugin) +-set(LIBRARY_OUTPUT_PATH "/builds/workspace/Pharo-vm-unix-sources/cog/results") ++set(LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/../results") + target_link_libraries(vm-sound-null ${LINKLIBS}) + set_target_properties(vm-sound-null PROPERTIES PREFIX "" SUFFIX "" + LINK_FLAGS -m32) diff --git a/pkgs/development/pharo/vm/patches/fix-executable-name.patch b/pkgs/development/pharo/vm/patches/fix-executable-name.patch new file mode 100644 index 00000000000..b32ed7a32d2 --- /dev/null +++ b/pkgs/development/pharo/vm/patches/fix-executable-name.patch @@ -0,0 +1,14 @@ +Change the name of the executable file from Squeak to Pharo +--- a/platforms/unix/vm-display-X11/sqUnixX11.c ++++ b/platforms/unix/vm-display-X11/sqUnixX11.c +@@ -153,8 +153,8 @@ + /*** Variables -- X11 Related ***/ + + /* name of Squeak windows in Xrm and the WM */ +-#define xResClass "Squeak" +-#define xResName "squeak" ++#define xResClass "pharo-vm" ++#define xResName "Pharo" + + char *displayName= 0; /* name of display, or 0 for $DISPLAY */ + Display *stDisplay= null; /* Squeak display */ diff --git a/pkgs/development/pharo/vm/patches/pharo-is-not-squeak.patch b/pkgs/development/pharo/vm/patches/pharo-is-not-squeak.patch new file mode 100644 index 00000000000..c06916c96ee --- /dev/null +++ b/pkgs/development/pharo/vm/patches/pharo-is-not-squeak.patch @@ -0,0 +1,23 @@ +pharo --help must talk about Pharo and not about Squeak +--- a/platforms/unix/vm-display-X11/sqUnixX11.c ++++ b/platforms/unix/vm-display-X11/sqUnixX11.c +@@ -7075,8 +7075,8 @@ + printf(" -lazy go to sleep when main window unmapped\n"); + printf(" -mapdelbs map Delete key onto Backspace\n"); + printf(" -nointl disable international keyboard support\n"); +- printf(" -notitle disable the Squeak window title bar\n"); +- printf(" -title use t as the Squeak window title instead of the image name\n"); ++ printf(" -notitle disable the Pharo window title bar\n"); ++ printf(" -title use t as the Pharo window title instead of the image name\n"); + printf(" -ldtoms launch drop timeout milliseconds\n"); + printf(" -noxdnd disable X drag-and-drop protocol support\n"); + printf(" -optmod map Mod to the Option key\n"); +@@ -7095,7 +7095,7 @@ + static void display_printUsageNotes(void) + { + printf(" Using `unix:0' for may improve local display performance.\n"); +- printf(" -xshm only works when Squeak is running on the X server host.\n"); ++ printf(" -xshm only works when Pharo is running on the X server host.\n"); + } + + diff --git a/pkgs/development/pharo/vm/resources/share/applications/pharo-vm.desktop b/pkgs/development/pharo/vm/resources/share/applications/pharo-vm.desktop new file mode 100644 index 00000000000..9061ec9b8e5 --- /dev/null +++ b/pkgs/development/pharo/vm/resources/share/applications/pharo-vm.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Pharo VM +GenericName=Pharo Virtual Machine +Exec=pharo-vm-x %F +Icon=pharo +Terminal=false +Type=Application +StartupNotify=false +Categories=Development; +MimeType=application/x-pharo-image; +NoDisplay=true diff --git a/pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.png b/pkgs/development/pharo/vm/resources/share/icons/hicolor/16x16/apps/pharo.png new file mode 100644 index 0000000000000000000000000000000000000000..7910e17ebc49ab5b0f4404ca5afd661747589b19 GIT binary patch literal 902 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 literal 0 HcmV?d00001 diff --git a/pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.png b/pkgs/development/pharo/vm/resources/share/icons/hicolor/32x32/apps/pharo.png new file mode 100644 index 0000000000000000000000000000000000000000..ec8a5f95c6c4103616e68eb4186bbe36cea6e5f6 GIT binary patch literal 2368 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_B)&${1);b+)qU^FmRmpba4!cIDB?`^_0+1 z+2i*6YtPl55q@TSz~Hbn*BRDl21|Z;Y-Zvt<_WnMw@cQ&PlVaTiS69!9{P^>u`rNBmt{iFOm6kBi zlhM`Heb4*nX7zRE4_}YR%`ZJ(e@m{qpnAF8&h_E*b6;NG%Kqz4Hv8|=;%cYuk-1Nq~~I!xj`|BN2oW`Gjiz?+1p|Jc0ImyThIRY+Ml1F zC$F9Q?pDHcmHzudUgM~%)eJ|oBK#be>~%0WNRg>)fjv-!aXW+!~Xf7QmmIB z5BAaKkO+Su5iFD%;@NX?siBsyLdlj%R<}%(FIF0Vzqh~ezW=o~kzBPN@p*68iomX#X8lt=9$ha*3z=RQyb1`tqIoUyisrG; zCzf2cSl;1KZq#gF#q_@9%i3K?lhgxvOJpX*H!wI3xzpZ}B?|gUWSL=JJ zHt|2DzeCx-zlpkQ@c2tLoAc_(<&z5gN*+X5xUJC9JkoJcxY@ADknJPSJVS-1_dhH4 zosT`g=j7kl-vsn^4q3V(IO#H1E%Yy2cCR#5>fEqnbpVmT%?q5y8Q2LHphQ7rFEUwx_Kq?@D$D7CB~6C z5*zfTua;zP{Zn-GvFXRQ%T{JO^X4Wm`1>wDFg(1xTg!T_yruQ)32R!ngr-f^x}5Fx zv1j__7@lLNdCyn;nAiTi+C@oFX`_a`bW2yc(hvQuhMO19Eivm}by)Mt#0f5DSM=j+ z4(^o}JI{82eMQ8t0G-)>^0I-}WtD0nUypKXNQUZ3#y2T-Fa|mX&M8)}n6TnO!3~#5 zviJW>1_g9%R-E}PO)Y1qfOvm$uGIPOD`nnH`giCQYiju4Ri9oko0m#92#Ti8x4Lxg z+a%L_GkQW#ws{>pbjNG{rbQOVo@_Cl=lE%x`J~_C6YpG?NV*!@a&>XRKL1T`6;wYz zOHM9y%Iuk*BtBDw75j-=FZ->>FwiUf#(J19?cQzbj$d_ma1^U@-S0N zmXz?a1sk_oFFqS9dFwaRq=lb4Z#5++9OL<4{cMJS^Zg26(dW5!Q{P2sx-VY(rFX@m z+xlt8wDlF|&FA+$XtmTPZ`n7sVD>iFfQcnGkF1qF5*9ADS1_H>=%M2Nz3_oE`^=gb zl7^M#0$o|zA7-C>*b(mZ@uzsfzsvnXntE1=^E(1koqo-^f98#=axKH-YTIT%wMIVo z=O=cs|7678AVXz5KwYllEpx0SRh5773iGZ_(${MS9vggb{!>MABTV;EG z@2-CJuzXkN_IT5_Q-M#_1uYiXRr8g-eY@xNFK0{PBV6vcN;WY+`l;M{-P(v}rpu>u zi{1xqb7u8_F!Af}%12L~E0%_yv0gmu{294cD{p~0H#AMv=X!tn@`l~ye1nbt4U1

bsN^JZG7%XFuOFFNbK z?#Qavs#vC>^fK>&OV%;rGTA@9KQ=z{IPzt}`|pchRlIq7#9+s&XFd*mH5GL)N>7RU zn#NRznF=;4dmiu2p1dZLxtW>uxyb7Y?6VI4jy0QWu~5dpa!2W2-{o;K5?}JSH6CSU zyg1|h!K1>3m22DEin~@RZ{VA(fB2lH;MO-%1%DFPCp)(2u7%^6wR1ypCz{O<%-%@nL|^7rsxs&3{jLeBi3)6KTQtPlqO4 z&U>ks_)u&BXaliE}GH9Z1uB>?Ik(h5&cuy`7wbth~-ITIG-{yL& z*lgaD7RQ&Z_e~4xG|%}RBU#4N*46GD^0R#U<72S`t3JHsIvu(-^3`I-nFkW*s&46f zpXd4i+s^f8Vt&ob{W)bS`?nHVFQ35K!UtLzr>3^P*|Uss`GYyqX3fFvXTLM|%LT=~ z6wI49W9gNMO^JRdE<{-woth+@_E~zm|19CPvz@l(zF#@}lBRaF=bf^r?%t=9^H<27 z?rOjN`{%J+a!OAQFwZu2ej&2B@7|1&tM}izD_;y|hl)pR3|lF0Jt5Xe_att*5x2ApB${eZLn=0S&)y#f|?VU}3Kg>1XvVZ;Ti%;64DqeRL`s~U7 zoyyGlGr0b^gQuRn(n7A%#ojv$k_<0vFY3`2)NyJ}uUzH4plg#M&ETf zzghRbW%<#at9HE;X?<#|ueNHZ)8!AxW$pcVcBG!1mr^I>D7sugQ&YuwMsZg1TCrY@ z1w}q5>v%8eFDc85DSI(3d)Cn(E4c0d+%3p>d&E9}zm1{58UD@d0u6;lJ{Cz{v<$rc wNb;^o|L670*UjyCQi4~BbbYA*`$s(B#_}Em^^boU7#J8lUHx3vIVCg!01gy=a{vGU literal 0 HcmV?d00001 diff --git a/pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.png b/pkgs/development/pharo/vm/resources/share/icons/hicolor/48x48/apps/pharo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f206cf8b18cf18ae1597a0472d3147f24c7d885 GIT binary patch literal 4602 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 C42%W< literal 0 HcmV?d00001 diff --git a/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml b/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml new file mode 100644 index 00000000000..927514dd215 --- /dev/null +++ b/pkgs/development/pharo/vm/resources/share/mime/packages/pharo-image.xml @@ -0,0 +1,9 @@ + + + + Pharo image file + Fichier d'image Pharo + + + + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 463027b2ac5..0489a953966 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3719,6 +3719,8 @@ let guile-xcb = callPackage ../development/guile-modules/guile-xcb { }; + pharo-vm = callPackage_i686 ../development/pharo/vm { }; + srecord = callPackage ../development/tools/misc/srecord { }; windowssdk = ( From c59a602465aba4be3980d4f029456999bc820e7b Mon Sep 17 00:00:00 2001 From: Rickard Nilsson Date: Wed, 6 Aug 2014 14:08:08 +0200 Subject: [PATCH 12/56] chrony: Update from 1.29.1 to 1.30 --- pkgs/tools/networking/chrony/default.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix index ac7055e20f2..d42d0712455 100644 --- a/pkgs/tools/networking/chrony/default.nix +++ b/pkgs/tools/networking/chrony/default.nix @@ -1,18 +1,23 @@ -{ stdenv, fetchurl, libcap, readline }: +{ stdenv, fetchurl, libcap, readline, texinfo }: assert stdenv.isLinux -> libcap != null; stdenv.mkDerivation rec { - name = "chrony-1.29.1"; + name = "chrony-${version}"; + + version = "1.30"; src = fetchurl { url = "http://download.tuxfamily.org/chrony/${name}.tar.gz"; - sha256 = "09xgcmh9yrprsazsrm3bm0xl3y75csi9lhh815yyrn68v2s9p335"; + sha256 = "1pa6629nigcv95x2q9dnmzlrwhicxizq9z7ggy2c9cmyl1bakb23"; }; - buildInputs = [ readline ] ++ stdenv.lib.optional stdenv.isLinux libcap; + buildInputs = [ readline texinfo ] ++ stdenv.lib.optional stdenv.isLinux libcap; - configureFlags = [ "--sysconfdir=\$(out)/etc" "--chronyvardir=\$(out)/var/lib/chrony" ]; + configureFlags = [ + "--sysconfdir=$(out)/etc" + "--chronyvardir=$(out)/var/lib/chrony" + ]; meta = with stdenv.lib; { description = "Sets your computer's clock from time servers on the Net"; @@ -20,6 +25,7 @@ stdenv.mkDerivation rec { repository.git = git://git.tuxfamily.org/gitroot/chrony/chrony.git; license = licenses.gpl2; platforms = platforms.unix; + maintainers = [ maintainers.rickynils ]; longDescription = '' Chronyd is a daemon which runs in background on the system. It obtains measurements via the network of the system clock’s offset relative to time servers on other systems and adjusts the system time accordingly. For isolated systems, the user can periodically enter the correct time by hand (using Chronyc). In either case, Chronyd determines the rate at which the computer gains or loses time, and compensates for this. Chronyd implements the NTP protocol and can act as either a client or a server. From 0d3b3bd01bb4dc89fef477920afaf3c8e56dfde6 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Aug 2014 13:44:07 +0200 Subject: [PATCH 13/56] systemd: Use the default log target ("journal-or-kmsg") This ensures that early systemd messages end up in the journal (via the kmsg buffer). --- nixos/modules/system/boot/stage-2-init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh index bfc3c9b5da3..fcefdfa88a3 100644 --- a/nixos/modules/system/boot/stage-2-init.sh +++ b/nixos/modules/system/boot/stage-2-init.sh @@ -180,4 +180,4 @@ echo "starting systemd..." PATH=/run/current-system/systemd/lib/systemd \ MODULE_DIR=/run/booted-system/kernel-modules/lib/modules \ LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \ - exec systemd --log-target=journal # --log-level=debug --log-target=console --crash-shell + exec systemd From eab25b104ad12b75a8b9a41ce3ac8b3b931144ef Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Aug 2014 13:54:17 +0200 Subject: [PATCH 14/56] test-instrumentation.nix: Improve logging In particular, don't clobber the serial console with duplicate output from systemd and the journal, and increase the log level. --- nixos/modules/testing/test-instrumentation.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix index 9100a433cd6..9e3bc780f5b 100644 --- a/nixos/modules/testing/test-instrumentation.nix +++ b/nixos/modules/testing/test-instrumentation.nix @@ -66,13 +66,22 @@ let kernel = config.boot.kernelPackages.kernel; in # Panic if an error occurs in stage 1 (rather than waiting for # user intervention). boot.kernelParams = - [ "console=tty1" "console=ttyS0" "panic=1" "boot.panic_on_fail" ]; + [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ]; # `xwininfo' is used by the test driver to query open windows. environment.systemPackages = [ pkgs.xorg.xwininfo ]; # Log everything to the serial console. - services.journald.console = "/dev/console"; + services.journald.extraConfig = + '' + ForwardToConsole=yes + MaxLevelConsole=debug + ''; + + # Don't clobber the console with duplicate systemd messages. + systemd.extraConfig = "ShowStatus=no"; + + boot.consoleLogLevel = 7; # Prevent tests from accessing the Internet. networking.defaultGateway = mkOverride 150 ""; From 2b9ea7fd906b759115b76d7e0f08b92f1b316dbf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Aug 2014 13:55:02 +0200 Subject: [PATCH 15/56] test-instrumentation.nix: Set an empty root password This makes it easier to log in during interactive sessions. --- nixos/modules/testing/test-instrumentation.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix index 9e3bc780f5b..2560c1b2dae 100644 --- a/nixos/modules/testing/test-instrumentation.nix +++ b/nixos/modules/testing/test-instrumentation.nix @@ -97,6 +97,9 @@ let kernel = config.boot.kernelPackages.kernel; in networking.usePredictableInterfaceNames = false; + # Make it easy to log in as root when running the test interactively. + security.initialRootPassword = ""; + }; } From 498fb83a68525ef49c6cace963c0809bfde50be2 Mon Sep 17 00:00:00 2001 From: Jascha Geerds Date: Wed, 6 Aug 2014 16:09:57 +0200 Subject: [PATCH 16/56] Add missing runtime dependency for stevedore --- pkgs/top-level/python-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 31f0875b5f2..7df09d015d2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7184,6 +7184,8 @@ rec { buildInputs = [ pbr pip ]; + propagatedBuildInputs = [ setuptools ]; + meta = { description = "Manage dynamic plugins for Python applications"; homepage = "https://pypi.python.org/pypi/stevedore"; From 46205faf69641f81875801b3d6ef14ebe08b2f6b Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Wed, 6 Aug 2014 16:25:42 +0200 Subject: [PATCH 17/56] Fix evaluation in virtualbox-image.nix --- nixos/modules/virtualisation/virtualbox-image.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix index f7c350f9221..106b269d9e1 100644 --- a/nixos/modules/virtualisation/virtualbox-image.nix +++ b/nixos/modules/virtualisation/virtualbox-image.nix @@ -12,7 +12,7 @@ in { virtualbox = { baseImageSize = mkOption { type = types.str; - default = 10G; + default = "10G"; description = '' The size of the VirtualBox base image. The size string should be on a format the qemu-img command accepts. From d5b5d763cd5a123c02d43d1e3eaff3141609c9ea Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 6 Aug 2014 19:44:13 +0200 Subject: [PATCH 18/56] Fix evaluation --- nixos/modules/testing/test-instrumentation.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix index 2560c1b2dae..54a376c9560 100644 --- a/nixos/modules/testing/test-instrumentation.nix +++ b/nixos/modules/testing/test-instrumentation.nix @@ -98,7 +98,7 @@ let kernel = config.boot.kernelPackages.kernel; in networking.usePredictableInterfaceNames = false; # Make it easy to log in as root when running the test interactively. - security.initialRootPassword = ""; + security.initialRootPassword = mkDefault ""; }; From 297599a299353251c84b7df1a0403b5aebc9691e Mon Sep 17 00:00:00 2001 From: "Jason \\\"Don\\\" O'Conal" Date: Tue, 5 Aug 2014 21:57:20 +0000 Subject: [PATCH 19/56] bindfs: add expression --- pkgs/tools/filesystems/bindfs/default.nix | 23 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/tools/filesystems/bindfs/default.nix diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix new file mode 100644 index 00000000000..7d79eefb122 --- /dev/null +++ b/pkgs/tools/filesystems/bindfs/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, fuse, pkgconfig }: + +stdenv.mkDerivation rec { + version = "1.12.6"; + name = "bindfs-${version}"; + + src = fetchurl { + url = "http://bindfs.org/downloads/${name}.tar.gz"; + sha256 = "0s90n1n4rvpcg51ixr5wx8ixml1xnc7w28xlbnms34v19pzghm59"; + }; + + dontStrip = true; + + buildInputs = [ fuse pkgconfig ]; + + meta = { + description = "A FUSE filesystem for mounting a directory to another location"; + homepage = http://bindfs.org; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ lovek323 ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e05f8f52362..648bb6a9896 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -578,6 +578,8 @@ let bfr = callPackage ../tools/misc/bfr { }; + bindfs = callPackage ../tools/filesystems/bindfs { }; + bitbucket-cli = pythonPackages.bitbucket-cli; blockdiag = pythonPackages.blockdiag; From ba9bfd39ad2a52585659fd59f1a45a3b52cfaab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Tue, 5 Aug 2014 18:28:12 -0300 Subject: [PATCH 20/56] New packages: libgksu, gksu --- pkgs/applications/misc/gksu/default.nix | 48 +++ .../misc/gksu/gksu-2.0.2-glib-2.31.patch | 29 ++ .../development/libraries/libgksu/default.nix | 83 ++++ .../libgksu/libgksu-2.0.0-fbsd.patch | 60 +++ .../libgksu-2.0.12-automake-1.11.2.patch | 25 ++ .../libgksu-2.0.12-fix-make-3.82.patch | 19 + .../libgksu/libgksu-2.0.12-notests.patch | 26 ++ .../libgksu-2.0.12-revert-forkpty.patch | 359 ++++++++++++++++++ .../libgksu/libgksu-2.0.7-libs.patch | 76 ++++ .../libgksu/libgksu-2.0.7-polinguas.patch | 40 ++ pkgs/top-level/all-packages.nix | 4 + 11 files changed, 769 insertions(+) create mode 100644 pkgs/applications/misc/gksu/default.nix create mode 100644 pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch create mode 100644 pkgs/development/libraries/libgksu/default.nix create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.0-fbsd.patch create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.12-automake-1.11.2.patch create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.12-fix-make-3.82.patch create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.12-notests.patch create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.12-revert-forkpty.patch create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.7-libs.patch create mode 100644 pkgs/development/libraries/libgksu/libgksu-2.0.7-polinguas.patch diff --git a/pkgs/applications/misc/gksu/default.nix b/pkgs/applications/misc/gksu/default.nix new file mode 100644 index 00000000000..61fd44925b7 --- /dev/null +++ b/pkgs/applications/misc/gksu/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchurl, pkgconfig, makeWrapper, gtk, gnome3, libgksu, + intltool, libstartup_notification, gtk_doc +}: + +stdenv.mkDerivation rec { + version = "2.0.2"; + pname = "gksu"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://people.debian.org/~kov/gksu/${name}.tar.gz"; + sha256 = "0npfanlh28daapkg25q4fncxd89rjhvid5fwzjaw324x0g53vpm1"; + }; + + patches = [ + # https://savannah.nongnu.org/bugs/index.php?36127 + ./gksu-2.0.2-glib-2.31.patch + ]; + + postPatch = '' + sed -i -e 's|/usr/bin/x-terminal-emulator|-l gnome-terminal|g' gksu.desktop + ''; + + configureFlags = "--disable-nautilus-extension"; + + buildInputs = [ + pkgconfig makeWrapper gtk gnome3.gconf intltool + libstartup_notification gnome3.libgnome_keyring gtk_doc + ]; + + propagatedBuildInputs = [ + libgksu + ]; + + meta = { + description = "A graphical frontend for libgksu"; + longDescription = '' + GKSu is a library that provides a Gtk+ frontend to su and sudo. + It supports login shells and preserving environment when acting as + a su frontend. It is useful to menu items or other graphical + programs that need to ask a user's password to run another program + as another user. + ''; + homepage = "http://www.nongnu.org/gksu/"; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.romildo ]; + }; +} diff --git a/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch b/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch new file mode 100644 index 00000000000..fd711a321ac --- /dev/null +++ b/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch @@ -0,0 +1,29 @@ +From 10c7e67e11a56e2fe1acf9b085772bc995d35bc0 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +Date: Sat, 7 Apr 2012 17:57:36 -0400 +Subject: [PATCH] Fix glib includes for building with >=glib-2.31 + +glib-2.31 and newer no longer allow most glib subheaders to be included +directly. + +https://savannah.nongnu.org/bugs/index.php?36127 +--- + nautilus-gksu/libnautilus-gksu.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/nautilus-gksu/libnautilus-gksu.c b/nautilus-gksu/libnautilus-gksu.c +index 8e44d29..4acf3f8 100644 +--- a/nautilus-gksu/libnautilus-gksu.c ++++ b/nautilus-gksu/libnautilus-gksu.c +@@ -5,7 +5,7 @@ + #include + #include + +-#include ++#include + #include + #include + #include +-- +1.7.8.5 + diff --git a/pkgs/development/libraries/libgksu/default.nix b/pkgs/development/libraries/libgksu/default.nix new file mode 100644 index 00000000000..e3d64994fe2 --- /dev/null +++ b/pkgs/development/libraries/libgksu/default.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, pkgconfig, makeWrapper, gtk, gnome, gnome3, + libstartup_notification, libgtop, perl, perlXMLParser, autoconf, + automake, libtool, intltool, gtk_doc, docbook_xsl, xauth, sudo +}: + +stdenv.mkDerivation rec { + version = "2.0.12"; + pname = "libgksu"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://people.debian.org/~kov/gksu/${name}.tar.gz"; + sha256 = "1brz9j3nf7l2gd3a5grbp0s3nksmlrp6rxmgp5s6gjvxcb1wzy92"; + }; + + patches = [ + # Patches from the gentoo ebuild + + # Fix compilation on bsdc + ./libgksu-2.0.0-fbsd.patch + + # Fix wrong usage of LDFLAGS, gentoo bug #226837 + ./libgksu-2.0.7-libs.patch + + # Use po/LINGUAS + ./libgksu-2.0.7-polinguas.patch + + # Don't forkpty; gentoo bug #298289 + ./libgksu-2.0.12-revert-forkpty.patch + + # Make this gmake-3.82 compliant, gentoo bug #333961 + ./libgksu-2.0.12-fix-make-3.82.patch + + # Do not build test programs that are never executed; also fixes gentoo bug #367397 (underlinking issues). + ./libgksu-2.0.12-notests.patch + + # Fix automake-1.11.2 compatibility, gentoo bug #397411 + ./libgksu-2.0.12-automake-1.11.2.patch + ]; + + postPatch = '' + # gentoo bug #467026 + sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac + + # Fix some binary paths + sed -i -e 's|/usr/bin/xauth|${xauth}/bin/xauth|g' libgksu/gksu-run-helper.c libgksu/libgksu.c + sed -i -e 's|/usr/bin/sudo|${sudo}/bin/sudo|g' libgksu/libgksu.c + sed -i -e 's|/bin/su\([^d]\)|/var/setuid-wrappers/su\1|g' libgksu/libgksu.c + + touch NEWS README + ''; + + preConfigure = '' + intltoolize --force --copy --automake + autoreconf -vfi + ''; + + buildInputs = [ + pkgconfig makeWrapper gtk gnome.GConf libstartup_notification + gnome3.libgnome_keyring libgtop gnome.libglade perl perlXMLParser + autoconf automake libtool intltool gtk_doc docbook_xsl + ]; + + preFixup = '' + wrapProgram "$out/bin/gksu-properties" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" + ''; + + enableParallelBuilding = true; + + meta = { + description = "A library for integration of su into applications"; + longDescription = '' + This library comes from the gksu program. It provides a simple API + to use su and sudo in programs that need to execute tasks as other + user. It provides X authentication facilities for running + programs in an X session. + ''; + homepage = "http://www.nongnu.org/gksu/"; + license = stdenv.lib.licenses.lgpl2; + maintainers = [ stdenv.lib.maintainers.romildo ]; + }; +} diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.0-fbsd.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.0-fbsd.patch new file mode 100644 index 00000000000..5c007be5b4b --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.0-fbsd.patch @@ -0,0 +1,60 @@ +diff --exclude-from=/home/dang/.diffrc -up -ruN libgksu-2.0.0.orig/libgksu/libgksu.c libgksu-2.0.0/libgksu/libgksu.c +--- libgksu-2.0.0.orig/libgksu/libgksu.c 2006-09-14 22:35:51.000000000 -0400 ++++ libgksu-2.0.0/libgksu/libgksu.c 2006-12-12 11:28:01.000000000 -0500 +@@ -23,7 +23,12 @@ + #include + #include + #include ++#ifdef __FreeBSD__ ++#include ++#include ++#else + #include ++#endif + #include + #include + #include +diff --exclude-from=/home/dang/.diffrc -up -ruN libgksu-2.0.0.orig/libgksu/Makefile.am libgksu-2.0.0/libgksu/Makefile.am +--- libgksu-2.0.0.orig/libgksu/Makefile.am 2006-09-14 22:35:52.000000000 -0400 ++++ libgksu-2.0.0/libgksu/Makefile.am 2006-12-12 11:28:01.000000000 -0500 +@@ -30,6 +30,6 @@ gksu_run_helper_SOURCES = gksu-run-helpe + noinst_PROGRAMS = test-gksu + test_gksu_SOURCES = test-gksu.c + test_gksu_LDADD = libgksu2.la +-test_gksu_LDFLAGS = `pkg-config --libs glib-2.0` ++test_gksu_LDFLAGS = `pkg-config --libs glib-2.0 gthread-2.0` + + EXTRA_DIST = libgksu.ver +diff --exclude-from=/home/dang/.diffrc -up -ruN libgksu-2.0.0.orig/libgksu/Makefile.in libgksu-2.0.0/libgksu/Makefile.in +--- libgksu-2.0.0.orig/libgksu/Makefile.in 2006-09-23 15:37:44.000000000 -0400 ++++ libgksu-2.0.0/libgksu/Makefile.in 2006-12-12 11:30:09.000000000 -0500 +@@ -283,7 +283,7 @@ gksu_run_helper_LDFLAGS = `pkg-config -- + gksu_run_helper_SOURCES = gksu-run-helper.c + test_gksu_SOURCES = test-gksu.c + test_gksu_LDADD = libgksu2.la +-test_gksu_LDFLAGS = `pkg-config --libs glib-2.0` ++test_gksu_LDFLAGS = `pkg-config --libs glib-2.0 gthread-2.0` + EXTRA_DIST = libgksu.ver + all: all-am + +diff --exclude-from=/home/dang/.diffrc -up -ruN libgksu-2.0.0.orig/libgksuui/Makefile.am libgksu-2.0.0/libgksuui/Makefile.am +--- libgksu-2.0.0.orig/libgksuui/Makefile.am 2006-09-14 22:35:31.000000000 -0400 ++++ libgksu-2.0.0/libgksuui/Makefile.am 2006-12-12 11:28:01.000000000 -0500 +@@ -12,4 +12,4 @@ includedir = ${prefix}/include/$(PACKAGE + noinst_PROGRAMS = test-gksuui + test_gksuui_SOURCES = test-gksuui.c + test_gksuui_LDADD = libgksuui1.0.la +-test_gksuui_LDFLAGS = `pkg-config --libs glib-2.0` ++test_gksuui_LDFLAGS = `pkg-config --libs glib-2.0 gthread-2.0` +diff --exclude-from=/home/dang/.diffrc -up -ruN libgksu-2.0.0.orig/libgksuui/Makefile.in libgksu-2.0.0/libgksuui/Makefile.in +--- libgksu-2.0.0.orig/libgksuui/Makefile.in 2006-09-23 15:37:44.000000000 -0400 ++++ libgksu-2.0.0/libgksuui/Makefile.in 2006-12-12 11:30:22.000000000 -0500 +@@ -250,7 +250,7 @@ libgksuui1_0_la_LDFLAGS = -Wl,-O1 `pkg-c + noinst_HEADERS = defines.h gksuui.h gksuui-dialog.h + test_gksuui_SOURCES = test-gksuui.c + test_gksuui_LDADD = libgksuui1.0.la +-test_gksuui_LDFLAGS = `pkg-config --libs glib-2.0` ++test_gksuui_LDFLAGS = `pkg-config --libs glib-2.0 gthread-2.0` + all: all-am + + .SUFFIXES: diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.12-automake-1.11.2.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.12-automake-1.11.2.patch new file mode 100644 index 00000000000..0f22166fb8b --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.12-automake-1.11.2.patch @@ -0,0 +1,25 @@ +Due to the following change, pkglib_PROGRAMS is invalid: + http://git.savannah.gnu.org/cgit/automake.git/commit/?id=9ca632642b006ac6b0fc4ce0ae5b34023faa8cbf + +https://savannah.nongnu.org/bugs/index.php?35241 +https://bugs.gentoo.org/show_bug.cgi?id=397411 + +--- + libgksu/Makefile.am | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgksu/Makefile.am b/libgksu/Makefile.am +index 49362f9..3cb1090 100644 +--- a/libgksu/Makefile.am ++++ b/libgksu/Makefile.am +@@ -22,8 +22,8 @@ includedir = ${prefix}/include/${PACKAGE} + pkgconfigdir = ${libdir}/pkgconfig + pkgconfig_DATA = libgksu2.pc + +-pkglibdir = ${libdir}/${PACKAGE} +-pkglib_PROGRAMS = gksu-run-helper ++gksulibdir = ${libdir}/${PACKAGE} ++gksulib_PROGRAMS = gksu-run-helper + gksu_run_helper_LDADD = ${GLIB_LIBS} + gksu_run_helper_SOURCES = gksu-run-helper.c + diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.12-fix-make-3.82.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.12-fix-make-3.82.patch new file mode 100644 index 00000000000..dd52b8247fa --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.12-fix-make-3.82.patch @@ -0,0 +1,19 @@ +--- libgksu/Makefile.am-orig 2010-08-22 16:11:19.872577459 -0500 ++++ libgksu/Makefile.am 2010-08-22 16:11:55.289599110 -0500 +@@ -17,11 +17,11 @@ + + if GCONF_SCHEMAS_INSTALL + install-data-local: +- if test -z "$(DESTDIR)" ; then \ +- for p in $(schemas_DATA) ; do \ +- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$$p ; \ +- done \ +- fi ++ if test -z "$(DESTDIR)" ; then \ ++ for p in $(schemas_DATA) ; do \ ++ GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$$p ; \ ++ done \ ++ fi + else + install-data-local: + endif diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.12-notests.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.12-notests.patch new file mode 100644 index 00000000000..3787ef6bfc1 --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.12-notests.patch @@ -0,0 +1,26 @@ +Index: libgksu-2.0.12/libgksu/Makefile.am +=================================================================== +--- libgksu-2.0.12.orig/libgksu/Makefile.am ++++ libgksu-2.0.12/libgksu/Makefile.am +@@ -27,7 +27,7 @@ pkglib_PROGRAMS = gksu-run-helper + gksu_run_helper_LDFLAGS = `pkg-config --libs glib-2.0` + gksu_run_helper_SOURCES = gksu-run-helper.c + +-noinst_PROGRAMS = test-gksu ++EXTRA_PROGRAMS = test-gksu + test_gksu_SOURCES = test-gksu.c + test_gksu_LDADD = libgksu2.la + test_gksu_LDFLAGS = `pkg-config --libs glib-2.0` +Index: libgksu-2.0.12/libgksuui/Makefile.am +=================================================================== +--- libgksu-2.0.12.orig/libgksuui/Makefile.am ++++ libgksu-2.0.12/libgksuui/Makefile.am +@@ -9,7 +9,7 @@ libgksuui1_0_la_LDFLAGS = -Wl,-O1 `pkg-c + noinst_HEADERS = defines.h gksuui.h gksuui-dialog.h + includedir = ${prefix}/include/$(PACKAGE) + +-noinst_PROGRAMS = test-gksuui ++EXTRA_PROGRAMS = test-gksuui + test_gksuui_SOURCES = test-gksuui.c + test_gksuui_LDADD = libgksuui1.0.la + test_gksuui_LDFLAGS = `pkg-config --libs glib-2.0` diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.12-revert-forkpty.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.12-revert-forkpty.patch new file mode 100644 index 00000000000..2c3a8cc786b --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.12-revert-forkpty.patch @@ -0,0 +1,359 @@ +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN libgksu-2.0.12.orig/libgksu/libgksu.c libgksu-2.0.12/libgksu/libgksu.c +--- libgksu-2.0.12.orig/libgksu/libgksu.c 2009-06-29 13:48:24.000000000 -0400 ++++ libgksu-2.0.12/libgksu/libgksu.c 2010-01-12 07:32:10.450657456 -0500 +@@ -1,7 +1,6 @@ + /* + * Gksu -- a library providing access to su functionality + * Copyright (C) 2004-2009 Gustavo Noronha Silva +- * Portions Copyright (C) 2009 VMware, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -56,9 +55,6 @@ + static void + gksu_context_launch_complete (GksuContext *context); + +-static void +-read_line (int fd, gchar *buffer, int n); +- + GType + gksu_error_get_type (void) + { +@@ -2009,8 +2005,6 @@ gksu_su_fuller (GksuContext *context, + for (i = 0 ; cmd[i] != NULL ; i++) + g_free (cmd[i]); + g_free(cmd); +- +- _exit(1); + } + else if (pid == -1) + { +@@ -2125,10 +2119,10 @@ gksu_su_fuller (GksuContext *context, + /* drop the \n echoed on password entry if su did request + a password */ + if (password_needed) +- read_line (fdpty, buf, 255); ++ read (fdpty, buf, 255); + if (context->debug) + fprintf (stderr, "DEBUG (run:post-after-pass) buf: -%s-\n", buf); +- read_line (fdpty, buf, 255); ++ read (fdpty, buf, 255); + if (context->debug) + fprintf (stderr, "DEBUG (run:post-after-pass) buf: -%s-\n", buf); + } +@@ -2142,9 +2136,7 @@ gksu_su_fuller (GksuContext *context, + { + int retval = 0; + +- /* Red Hat's su shows the full path to su in its error messages. */ +- if (!strncmp (buf, "su:", 3) || +- !strncmp (buf, "/bin/su:", 7)) ++ if (!strncmp (buf, "su", 2)) + { + gchar **strings; + +@@ -2155,11 +2147,7 @@ gksu_su_fuller (GksuContext *context, + } + + strings = g_strsplit (buf, ":", 2); +- +- /* Red Hat and Fedora use 'incorrect password'. */ +- if (strings[1] && +- (g_str_has_prefix(strings[1], " Authentication failure") || +- g_str_has_prefix(strings[1], " incorrect password"))) ++ if (strings[1] && !strncmp (strings[1], " Authentication failure", 23)) + { + if (used_gnome_keyring) + g_set_error (error, gksu_quark, +@@ -2473,12 +2461,6 @@ gksu_sudo_fuller (GksuContext *context, + { + char **cmd; + char buffer[256] = {0}; +- char *child_stderr = NULL; +- /* This command is used to gain a token */ +- char *const verifycmd[] = +- { +- "/usr/bin/sudo", "-p", "GNOME_SUDO_PASS", "-v", NULL +- }; + int argcount = 8; + int i, j; + +@@ -2489,8 +2471,9 @@ gksu_sudo_fuller (GksuContext *context, + + pid_t pid; + int status; +- FILE *fdfile = NULL; +- int fdpty = -1; ++ FILE *infile, *outfile; ++ int parent_pipe[2]; /* For talking to the parent */ ++ int child_pipe[2]; /* For talking to the child */ + + context->sudo_mode = TRUE; + +@@ -2565,10 +2548,6 @@ gksu_sudo_fuller (GksuContext *context, + cmd[argcount] = g_strdup("-S"); + argcount++; + +- /* Make sudo noninteractive (we should already have a token) */ +- cmd[argcount] = g_strdup("-n"); +- argcount++; +- + /* Make sudo use next arg as prompt */ + cmd[argcount] = g_strdup("-p"); + argcount++; +@@ -2647,21 +2626,26 @@ gksu_sudo_fuller (GksuContext *context, + fprintf (stderr, "cmd[%d]: %s\n", i, cmd[i]); + } + +- pid = forkpty(&fdpty, NULL, NULL, NULL); +- if (pid == 0) ++ if ((pipe(parent_pipe)) == -1) + { +- // Child +- setsid(); // make us session leader +- +- execv(verifycmd[0], verifycmd); ++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE, ++ _("Error creating pipe: %s"), ++ strerror(errno)); ++ sudo_reset_xauth (context, xauth, xauth_env); ++ return FALSE; ++ } + +- g_set_error (error, gksu_quark, GKSU_ERROR_EXEC, +- _("Failed to exec new process: %s"), ++ if ((pipe(child_pipe)) == -1) ++ { ++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE, ++ _("Error creating pipe: %s"), + strerror(errno)); + sudo_reset_xauth (context, xauth, xauth_env); + return FALSE; + } +- else if (pid == -1) ++ ++ pid = fork(); ++ if (pid == -1) + { + g_set_error (error, gksu_quark, GKSU_ERROR_FORK, + _("Failed to fork new process: %s"), +@@ -2669,26 +2653,56 @@ gksu_sudo_fuller (GksuContext *context, + sudo_reset_xauth (context, xauth, xauth_env); + return FALSE; + } ++ else if (pid == 0) ++ { ++ // Child ++ setsid(); // make us session leader ++ close(child_pipe[1]); ++ dup2(child_pipe[0], STDIN_FILENO); ++ dup2(parent_pipe[1], STDERR_FILENO); + ++ execv(cmd[0], cmd); ++ ++ g_set_error (error, gksu_quark, GKSU_ERROR_EXEC, ++ _("Failed to exec new process: %s"), ++ strerror(errno)); ++ sudo_reset_xauth (context, xauth, xauth_env); ++ return FALSE; ++ } + else + { + gint counter = 0; + gchar *cmdline = NULL; +- struct termios tio; + + // Parent +- fdfile = fdopen(fdpty, "w+"); ++ close(parent_pipe[1]); + +- /* make sure we notice that ECHO is turned off, if it gets +- turned off */ +- tcgetattr (fdpty, &tio); +- for (counter = 0; (tio.c_lflag & ECHO) && counter < 15; counter++) +- { +- usleep (1000); +- tcgetattr (fdpty, &tio); +- } ++ infile = fdopen(parent_pipe[0], "r"); ++ if (!infile) ++ { ++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE, ++ _("Error opening pipe: %s"), ++ strerror(errno)); ++ sudo_reset_xauth (context, xauth, xauth_env); ++ return FALSE; ++ } + +- fcntl (fdpty, F_SETFL, O_NONBLOCK); ++ outfile = fdopen(child_pipe[1], "w"); ++ if (!outfile) ++ { ++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE, ++ _("Error opening pipe: %s"), ++ strerror(errno)); ++ sudo_reset_xauth (context, xauth, xauth_env); ++ return FALSE; ++ } ++ ++ /* ++ we are expecting to receive a GNOME_SUDO_PASS ++ if we don't there are two possibilities: an error ++ or a password is not needed ++ */ ++ fcntl (parent_pipe[0], F_SETFL, O_NONBLOCK); + + { /* no matter if we can read, since we're using + O_NONBLOCK; this is just to avoid the prompt +@@ -2697,11 +2711,11 @@ gksu_sudo_fuller (GksuContext *context, + struct timeval tv; + + FD_ZERO(&rfds); +- FD_SET(fdpty, &rfds); ++ FD_SET(parent_pipe[0], &rfds); + tv.tv_sec = 1; + tv.tv_usec = 0; + +- select (fdpty + 1, &rfds, NULL, NULL, &tv); ++ select (parent_pipe[0] + 1, &rfds, NULL, NULL, &tv); + } + + /* Try hard to find the prompt; it may happen that we're +@@ -2713,7 +2727,7 @@ gksu_sudo_fuller (GksuContext *context, + if (strncmp (buffer, "GNOME_SUDO_PASS", 15) == 0) + break; + +- read_line (fdpty, buffer, 256); ++ read_line (parent_pipe[0], buffer, 256); + + if (context->debug) + fprintf (stderr, "buffer: -%s-\n", buffer); +@@ -2747,17 +2761,18 @@ gksu_sudo_fuller (GksuContext *context, + + usleep (1000); + +- write (fdpty, password, strlen(password) + 1); +- write (fdpty, "\n", 1); ++ fprintf (outfile, "%s\n", password); ++ fclose (outfile); + + nullify_password (password); + +- fcntl(fdpty, F_SETFL, fcntl(fdpty, F_GETFL) & ~O_NONBLOCK); ++ /* turn NONBLOCK off */ ++ fcntl(parent_pipe[0], F_SETFL, fcntl(parent_pipe[0], F_GETFL) & ~O_NONBLOCK); + /* ignore the first newline that comes right after sudo receives + the password */ +- fgets (buffer, 255, fdfile); +- /* this is the status we are interested in */ +- fgets (buffer, 255, fdfile); ++ fgets (buffer, 255, infile); ++ /* this is the status we are interessted in */ ++ fgets (buffer, 255, infile); + } + else + { +@@ -2766,7 +2781,7 @@ gksu_sudo_fuller (GksuContext *context, + fprintf (stderr, "No password prompt found; we'll assume we don't need a password.\n"); + + /* turn NONBLOCK off, also if have no prompt */ +- fcntl(fdpty, F_SETFL, fcntl(fdpty, F_GETFL) & ~O_NONBLOCK); ++ fcntl(parent_pipe[0], F_SETFL, fcntl(parent_pipe[0], F_GETFL) & ~O_NONBLOCK); + + should_display = gconf_client_get_bool (context->gconf_client, + BASE_PATH "display-no-pass-info", NULL); +@@ -2785,9 +2800,14 @@ gksu_sudo_fuller (GksuContext *context, + fprintf (stderr, "%s", buffer); + } + +- if (g_str_has_prefix (buffer, "Sorry, try again.")) ++ if (!strcmp (buffer, "Sorry, try again.\n")) + g_set_error (error, gksu_quark, GKSU_ERROR_WRONGPASS, + _("Wrong password.")); ++ else if (!strncmp (buffer, "Sorry, user ", 12)) ++ g_set_error (error, gksu_quark, GKSU_ERROR_NOT_ALLOWED, ++ _("The underlying authorization mechanism (sudo) " ++ "does not allow you to run this program. Contact " ++ "the system administrator.")); + else + { + gchar *haystack = buffer; +@@ -2805,10 +2825,6 @@ gksu_sudo_fuller (GksuContext *context, + } + } + +- /* If we have an error, let's just stop sudo right there. */ +- if (error) +- close(fdpty); +- + cmdline = g_strdup("sudo"); + /* wait for the child process to end or become something other + than sudo */ +@@ -2825,23 +2841,17 @@ gksu_sudo_fuller (GksuContext *context, + if (context->sn_context) + gksu_context_launch_complete (context); + ++ while (read (parent_pipe[0], buffer, 255) > 0) ++ { ++ fprintf (stderr, "%s", buffer); ++ bzero(buffer, 256); ++ } ++ + /* if the process is still active waitpid() on it */ + if (pid_exited != pid) + waitpid(pid, &status, 0); + sudo_reset_xauth (context, xauth, xauth_env); + +- /* +- * Did token acquisition succeed? If so, spawn sudo in +- * non-interactive mode. It should either succeed or die +- * immediately if you're not allowed to run the command. +- */ +- if (WEXITSTATUS(status) == 0) +- { +- g_spawn_sync(NULL, cmd, NULL, 0, NULL, NULL, +- NULL, &child_stderr, &status, +- error); +- } +- + if (exit_status) + { + if (WIFEXITED(status)) { +@@ -2853,13 +2863,6 @@ gksu_sudo_fuller (GksuContext *context, + + if (WEXITSTATUS(status)) + { +- if (g_str_has_prefix(child_stderr, "Sorry, user ")) +- { +- g_set_error (error, gksu_quark, GKSU_ERROR_NOT_ALLOWED, +- _("The underlying authorization mechanism (sudo) " +- "does not allow you to run this program. Contact " +- "the system administrator.")); +- } + if(cmdline) + { + /* sudo already exec()ed something else, don't report +@@ -2868,7 +2871,6 @@ gksu_sudo_fuller (GksuContext *context, + if (!g_str_has_suffix (cmdline, "sudo")) + { + g_free (cmdline); +- g_free (child_stderr); + return FALSE; + } + g_free (cmdline); +@@ -2881,11 +2883,11 @@ gksu_sudo_fuller (GksuContext *context, + } + } + +- fprintf(stderr, child_stderr); +- g_free(child_stderr); +- + /* if error is set we have found an error condition */ +- return (error == NULL); ++ if (error) ++ return FALSE; ++ ++ return TRUE; + } + + /** diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.7-libs.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.7-libs.patch new file mode 100644 index 00000000000..b9fb77f2714 --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.7-libs.patch @@ -0,0 +1,76 @@ +# https://savannah.nongnu.org/bugs/?25362 +# https://bugs.gentoo.org/show_bug.cgi?id=226837 +diff -Nura a/configure.ac b/configure.ac +--- a/configure.ac 2009-01-19 22:15:30.000000000 +0100 ++++ b/configure.ac 2009-01-19 22:18:10.000000000 +0100 +@@ -43,6 +43,9 @@ + PKG_CHECK_MODULES(LIBGKSU, [gtk+-2.0 >= 2.4.0, gconf-2.0, libstartup-notification-1.0, gnome-keyring-1, libgtop-2.0]) + PKG_CHECK_MODULES(GKSU_PROPERTIES, [gtk+-2.0 >= 2.4.0, gconf-2.0, libglade-2.0]) + ++PKG_CHECK_MODULES(GLIB, [glib-2.0 gthread-2.0]) ++PKG_CHECK_MODULES(GTK, [gtk+-2.0 gconf-2.0]) ++ + # Checks for library functions. + ALL_LINGUAS="ca cs da de es eu fr hu it ko lt pl pt_BR ro ru sk sv nb nl zh_CN" + +diff -Nura a/gksu-properties/Makefile.am b/gksu-properties/Makefile.am +--- a/gksu-properties/Makefile.am 2009-01-19 22:15:59.000000000 +0100 ++++ b/gksu-properties/Makefile.am 2009-01-19 22:19:13.000000000 +0100 +@@ -3,7 +3,7 @@ + AM_CPPFLAGS = -DLOCALEDIR=\"$(datadir)/locale\" -DDATA_DIR=\"$(datadir)\" -DPREFIX=\"$(prefix)\" + + bin_PROGRAMS = gksu-properties +-gksu_properties_LDFLAGS = ${GKSU_PROPERTIES_LIBS} ++gksu_properties_LDADD = ${GKSU_PROPERTIES_LIBS} + gksu_properties_SOURCES = gksu-properties.c + + gladedir = ${prefix}/share/${PACKAGE} +diff -Nura a/libgksu/Makefile.am b/libgksu/Makefile.am +--- a/libgksu/Makefile.am 2009-01-19 22:15:59.000000000 +0100 ++++ b/libgksu/Makefile.am 2009-01-19 22:18:25.000000000 +0100 +@@ -8,8 +8,8 @@ + # major -> breaks backward compatibility (changes to existing ABI) + # minor -> keeps compatibility (additions to the API) + # micro -> no change to the API/ABI +-libgksu2_la_LIBADD = ../libgksuui/libgksuui1.0.la +-libgksu2_la_LDFLAGS = -version-info 0:2:0 -Wl,-O1 -lutil ${LIBGKSU_LIBS} ++libgksu2_la_LIBADD = ../libgksuui/libgksuui1.0.la -lutil ${LIBGKSU_LIBS} ++libgksu2_la_LDFLAGS = -version-info 0:2:0 -Wl,-O1 + if USE_VERSION_SCRIPT + libgksu2_la_LDFLAGS += -Wl,--version-script=libgksu.ver + endif +@@ -24,12 +24,11 @@ + + pkglibdir = ${libdir}/${PACKAGE} + pkglib_PROGRAMS = gksu-run-helper +-gksu_run_helper_LDFLAGS = `pkg-config --libs glib-2.0` ++gksu_run_helper_LDADD = ${GLIB_LIBS} + gksu_run_helper_SOURCES = gksu-run-helper.c + + noinst_PROGRAMS = test-gksu + test_gksu_SOURCES = test-gksu.c +-test_gksu_LDADD = libgksu2.la +-test_gksu_LDFLAGS = `pkg-config --libs glib-2.0 gthread-2.0` ++test_gksu_LDADD = libgksu2.la ${GLIB_LIBS} + + EXTRA_DIST = libgksu.ver +diff -Nura a/libgksuui/Makefile.am b/libgksuui/Makefile.am +--- a/libgksuui/Makefile.am 2009-01-19 22:15:59.000000000 +0100 ++++ b/libgksuui/Makefile.am 2009-01-19 22:18:54.000000000 +0100 +@@ -4,12 +4,13 @@ + + noinst_LTLIBRARIES = libgksuui1.0.la + libgksuui1_0_la_SOURCES = gksuui-dialog.c +-libgksuui1_0_la_LDFLAGS = -Wl,-O1 `pkg-config --libs gtk+-2.0 gconf-2.0` ++libgksuui1_0_la_LDFLAGS = -Wl,-O1 ++libgksuui1_0_la_LIBADD = ${GTK_LIBS} + + noinst_HEADERS = defines.h gksuui.h gksuui-dialog.h + includedir = ${prefix}/include/$(PACKAGE) + + noinst_PROGRAMS = test-gksuui + test_gksuui_SOURCES = test-gksuui.c +-test_gksuui_LDADD = libgksuui1.0.la +-test_gksuui_LDFLAGS = `pkg-config --libs glib-2.0 gthread-2.0` ++test_gksuui_LDADD = libgksuui1.0.la ${GLIB_LIBS} ++ diff --git a/pkgs/development/libraries/libgksu/libgksu-2.0.7-polinguas.patch b/pkgs/development/libraries/libgksu/libgksu-2.0.7-polinguas.patch new file mode 100644 index 00000000000..e423af16b44 --- /dev/null +++ b/pkgs/development/libraries/libgksu/libgksu-2.0.7-polinguas.patch @@ -0,0 +1,40 @@ +# https://savannah.nongnu.org/bugs/?25360 +diff -Nura a/configure.ac b/configure.ac +--- a/configure.ac 2009-01-19 21:50:57.000000000 +0100 ++++ b/configure.ac 2009-01-19 21:53:21.000000000 +0100 +@@ -50,7 +50,7 @@ + GETTEXT_PACKAGE=AC_PACKAGE_NAME + AC_SUBST(GETTEXT_PACKAGE) + +-IT_PROG_INTLTOOL ++IT_PROG_INTLTOOL([0.35.5]) + AM_GLIB_GNU_GETTEXT + + ################################################## +diff -Nura a/po/LINGUAS b/po/LINGUAS +--- a/po/LINGUAS 1970-01-01 01:00:00.000000000 +0100 ++++ b/po/LINGUAS 2009-01-19 21:54:24.000000000 +0100 +@@ -0,0 +1,23 @@ ++# please keep this list sorted alphabetically ++# http://live.gnome.org/GnomeGoals/PoLinguas ++# ++ca ++cs ++da ++de ++es ++eu ++fr ++hu ++it ++ko ++lt ++pl ++pt_BR ++ro ++ru ++sk ++sv ++nb ++nl ++zh_CN diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 648bb6a9896..6b52b3f0747 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5207,6 +5207,8 @@ let libgdiplus = callPackage ../development/libraries/libgdiplus { }; + libgksu = callPackage ../development/libraries/libgksu { }; + libgpgerror = callPackage ../development/libraries/libgpg-error { }; libgphoto2 = callPackage ../development/libraries/libgphoto2 { }; @@ -8617,6 +8619,8 @@ let geany = callPackage ../applications/editors/geany { }; + gksu = callPackage ../applications/misc/gksu { }; + gnuradio = callPackage ../applications/misc/gnuradio { inherit (pythonPackages) lxml numpy scipy matplotlib pyopengl; fftw = fftwFloat; From 5c0982a19b634dd231fee4a349ed706b39ed20a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= Date: Wed, 6 Aug 2014 18:34:16 -0300 Subject: [PATCH 21/56] liferea: update from 1.10.9 to 1.10.10 --- pkgs/applications/networking/newsreaders/liferea/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix index caad542ebac..e38d5188dc2 100644 --- a/pkgs/applications/networking/newsreaders/liferea/default.nix +++ b/pkgs/applications/networking/newsreaders/liferea/default.nix @@ -6,14 +6,14 @@ }: let pname = "liferea"; - version = "1.10.9"; + version = "1.10.10"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2"; - sha256 = "0s6rg30xwdxzh2r1n4m9ns4pbq0p428h4nh72bcrcf9m0mdcg0ai"; + sha256 = "0y01lhw0fn5m0j9ykz8x7i0wchjqbxp33cvvprsfxfwzz4x31jm4"; }; buildInputs = with gst_all_1; [ From 9e9e628417d2cdb583524f464f43b4236ddb2c00 Mon Sep 17 00:00:00 2001 From: NOTtheMessiah Date: Tue, 5 Aug 2014 03:22:41 -0400 Subject: [PATCH 22/56] Added gcolor2 --- .../applications/graphics/gcolor2/default.nix | 29 ++++++++++++ .../graphics/gcolor2/gcolor2-amd64.patch | 46 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 77 insertions(+) create mode 100644 pkgs/applications/graphics/gcolor2/default.nix create mode 100644 pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch diff --git a/pkgs/applications/graphics/gcolor2/default.nix b/pkgs/applications/graphics/gcolor2/default.nix new file mode 100644 index 00000000000..673cf626a54 --- /dev/null +++ b/pkgs/applications/graphics/gcolor2/default.nix @@ -0,0 +1,29 @@ +{stdenv, fetchurl, gtk, perl, perlXMLParser, pkgconfig } : + +let version = "0.4"; in +stdenv.mkDerivation { + name = "gcolor2-${version}"; + arch = if stdenv.system == "x86_64-linux" then "amd64" else "386"; + + src = fetchurl { + url = "mirror://sourceforge/project/gcolor2/gcolor2/${version}/gcolor2-${version}.tar.bz2"; + sha1 = "e410a52dcff3d5c6c3d448b68a026d04ccd744be"; + + }; + + preConfigure = '' + sed -i 's/\[:space:\]/[&]/g' configure + ''; + + # from https://github.com/PhantomX/slackbuilds/tree/master/gcolor2/patches + patches = if stdenv.system == "x86_64-linux" then + [ ./gcolor2-amd64.patch ] else + [ ]; + +buildInputs = [ gtk perl perlXMLParser pkgconfig ]; + + meta = { + description = "Simple GTK+2 color selector"; + homepage = http://gcolor2.sourceforge.net/; + }; +} diff --git a/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch b/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch new file mode 100644 index 00000000000..cd06a8315f9 --- /dev/null +++ b/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch @@ -0,0 +1,46 @@ +diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/callbacks.c gcolor2-0.4/src/callbacks.c +--- gcolor2-0.4.orig/src/callbacks.c 2005-07-12 14:06:12.000000000 -0400 ++++ gcolor2-0.4/src/callbacks.c 2007-02-17 19:19:38.000000000 -0500 +@@ -4,6 +4,9 @@ + + #include + #include ++#include ++#include ++#include + + #include "callbacks.h" + #include "interface.h" +@@ -172,6 +175,9 @@ void on_copy_color_to_clipboard_activate + gtk_clipboard_set_text (cb, hex, strlen (hex)); + } + ++void add_rgb_file (gchar *filename, gchar *type); ++gchar* get_system_file (void); ++ + void on_show_system_colors_activate (GtkMenuItem *menuitem, gpointer user_data) + { + if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem))) +@@ -266,6 +272,8 @@ void on_save_button_clicked (GtkButton * + gtk_widget_destroy (savedialog); + } + ++void add_list_color (gchar *spec, gchar *name, gchar *type, gboolean is_new_color); ++ + void add_color_to_treeview () + { + GtkTreeView *treeview; +diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/main.c gcolor2-0.4/src/main.c +--- gcolor2-0.4.orig/src/main.c 2005-07-11 10:55:49.000000000 -0400 ++++ gcolor2-0.4/src/main.c 2007-02-17 19:18:23.000000000 -0500 +@@ -4,6 +4,10 @@ + + #include + #include ++#include ++#include ++#include ++#include + + #include "interface.h" + #include "support.h" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6b52b3f0747..dcc0173ac0e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8737,6 +8737,8 @@ let fuze = callPackage ../applications/networking/instant-messengers/fuze {}; + gcolor2 = callPackage ../applications/graphics/gcolor2 { }; + get_iplayer = callPackage ../applications/misc/get_iplayer {}; gimp_2_8 = callPackage ../applications/graphics/gimp/2.8.nix { From 682f215084abb41256dcbc955ee77d187392666f Mon Sep 17 00:00:00 2001 From: NOTtheMessiah Date: Tue, 5 Aug 2014 10:55:55 -0400 Subject: [PATCH 23/56] Update default.nix --- pkgs/applications/graphics/gcolor2/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/graphics/gcolor2/default.nix b/pkgs/applications/graphics/gcolor2/default.nix index 673cf626a54..0af750ec989 100644 --- a/pkgs/applications/graphics/gcolor2/default.nix +++ b/pkgs/applications/graphics/gcolor2/default.nix @@ -25,5 +25,7 @@ buildInputs = [ gtk perl perlXMLParser pkgconfig ]; meta = { description = "Simple GTK+2 color selector"; homepage = http://gcolor2.sourceforge.net/; + license = stdenv.lib.licenses.gpl2Plus; + maintainers = with stdenv.lib.maintainers; [ notthemessiah ]; }; } From 127441813b473a2633cfab6aa32938b73f4cf42a Mon Sep 17 00:00:00 2001 From: NOTtheMessiah Date: Tue, 5 Aug 2014 10:58:24 -0400 Subject: [PATCH 24/56] added license for gcolor2 and myself to maintainers --- lib/maintainers.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 9c81ef6a37e..8ca8a2bcf4b 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -65,6 +65,7 @@ modulistic = "Pablo Costa "; mornfall = "Petr Ročkai "; msackman = "Matthew Sackman "; + notthemessiah = "Brian Cohen "; ocharles = "Oliver Charles "; offline = "Jaka Hudoklin "; orbitz = "Malcolm Matalka "; From 420f18ef5b2eb51b8bbd4cd16bb78f037c26baa6 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 5 Aug 2014 08:50:24 -0400 Subject: [PATCH 25/56] xscruiser: initial package expression http://xcruiser.sourceforge.net/ --- pkgs/applications/misc/xcruiser/default.nix | 30 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/applications/misc/xcruiser/default.nix diff --git a/pkgs/applications/misc/xcruiser/default.nix b/pkgs/applications/misc/xcruiser/default.nix new file mode 100644 index 00000000000..15202a1e90c --- /dev/null +++ b/pkgs/applications/misc/xcruiser/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, gccmakedep, xlibs }: + +stdenv.mkDerivation { + name = "xcruiser-0.30"; + + src = fetchurl { + url = mirror://sourceforge/xcruiser/xcruiser/xcruiser-0.30/xcruiser-0.30.tar.gz; + sha256 = "1r8whva38xizqdh7jmn6wcmfmsndc67pkw22wzfzr6rq0vf6hywi"; + }; + + buildInputs = with xlibs; [ gccmakedep imake libXt libXaw libXpm libXext ]; + + configurePhase = "xmkmf -a"; + + preBuild = '' + makeFlagsArray=( BINDIR=$out/bin XAPPLOADDIR=$out/etc/X11/app-defaults) + ''; + + meta = with stdenv.lib; + { description = "Filesystem visualization utility"; + longDescription = '' + XCruiser, formerly known as XCruise, is a filesystem visualization utility. + It constructs a virtually 3-D formed universe from a directory + tree and allows you to "cruise" within a visualized filesystem. + ''; + homepage = http://xcruiser.sourceforge.net/; + license = licenses.gpl2; + maintainers = with maintainers; [ emery ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dcc0173ac0e..793b1f13f8a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2364,6 +2364,8 @@ let xarchiver = callPackage ../tools/archivers/xarchiver { }; + xcruiser = callPackage ../applications/misc/xcruiser { }; + unarj = callPackage ../tools/archivers/unarj { }; unshield = callPackage ../tools/archivers/unshield { }; From 5ea8192704d68e88c9bb60683ef326dba90517a5 Mon Sep 17 00:00:00 2001 From: William Roe Date: Mon, 4 Aug 2014 13:35:09 +0100 Subject: [PATCH 26/56] Bump pythonPackages.boto to 2.32.0 Amongst other things, this brings the ability to assign public IP addresses to EC2 instances booted up inside a VPC/subnet. --- pkgs/top-level/python-packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9e4114d44d0..86afc76f897 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -895,11 +895,11 @@ rec { boto = buildPythonPackage rec { name = "boto-${version}"; - version = "2.9.9"; + version = "2.32.0"; src = fetchurl { url = "https://github.com/boto/boto/archive/${version}.tar.gz"; - sha256 = "18wqpzd1zf8nivcn2rl1wnladf7hhyy5p75b5l6kafynm4l9j6jq"; + sha256 = "0bl5y7m0m84rz4q7hx783kxpj1n9wcm7dhv54bnx8cnanyd13cxn"; }; # The tests seem to require AWS credentials. From 462146dbc522ec1c454e5070d717fced4343dd1c Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 4 Aug 2014 01:19:52 -0500 Subject: [PATCH 27/56] libva: 1.1.1 -> 1.3.2 --- pkgs/development/libraries/libva/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix index 95299cb3fd7..e9b7ae4e46c 100644 --- a/pkgs/development/libraries/libva/default.nix +++ b/pkgs/development/libraries/libva/default.nix @@ -1,20 +1,21 @@ -{ stdenv, fetchurl, libX11, pkgconfig, libXext, mesa, libdrm, libXfixes }: +{ stdenv, fetchurl, libX11, pkgconfig, libXext, mesa, libdrm, libXfixes, wayland, libffi }: stdenv.mkDerivation rec { - name = "libva-1.1.1"; + name = "libva-1.3.1"; src = fetchurl { url = "http://www.freedesktop.org/software/vaapi/releases/libva/${name}.tar.bz2"; - sha256 = "0kfdcrzcr82g15l0vvmm6rqr0f0604d4dgrza78gn6bfx7rppby0"; + sha256 = "15y27jdnfvf9krg4s3a1c29rn9pvyp43wckpwhd2rg4wrbqv32c7"; }; - buildInputs = [ libX11 libXext pkgconfig mesa libdrm libXfixes ]; + buildInputs = [ libX11 libXext pkgconfig mesa libdrm libXfixes wayland libffi ]; configureFlags = [ "--enable-glx" ]; - meta = { + meta = with stdenv.lib; { homepage = http://www.freedesktop.org/wiki/Software/vaapi; - license = stdenv.lib.licenses.mit; + license = licenses.mit; description = "VAAPI library: Video Acceleration API"; + platforms = platforms.unix; }; } From f1abc8f8ba8854dcf2eb0dba62d75e54c5d0e85c Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 4 Aug 2014 01:21:33 -0500 Subject: [PATCH 28/56] intelgen4asm: Remove obsolete package --- .../development/misc/intelgen4asm/default.nix | 21 ------------------- pkgs/top-level/all-packages.nix | 1 - 2 files changed, 22 deletions(-) delete mode 100644 pkgs/development/misc/intelgen4asm/default.nix diff --git a/pkgs/development/misc/intelgen4asm/default.nix b/pkgs/development/misc/intelgen4asm/default.nix deleted file mode 100644 index c7365f944e9..00000000000 --- a/pkgs/development/misc/intelgen4asm/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchgit, autoconf, automake, libtool, bison, flex }: - -stdenv.mkDerivation rec { - name = "intel-g4asm-20110416"; - - src = fetchgit { - url = http://anongit.freedesktop.org/git/xorg/app/intel-gen4asm.git; - rev = "2450ff752642d116eb789a35393b9828133c7d31"; - sha256 = "a24c054a7c5ae335b72523fd2f51cae7f07a2885ef3c7a04d07a85e39f0c053f"; - }; - - buildInputs = [ autoconf automake libtool bison flex ]; - - preConfigure = "sh autogen.sh"; - - meta = { - homepage = http://cgit.freedesktop.org/xorg/app/intel-gen4asm/; - license = stdenv.lib.licenses.mit; - description = "Program to compile an assembly language for the Intel 965 Express Chipset"; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 793b1f13f8a..21c1421f134 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3994,7 +3994,6 @@ let inotifyTools = callPackage ../development/tools/misc/inotify-tools { }; - intelgen4asm = callPackage ../development/misc/intelgen4asm { }; ired = callPackage ../development/tools/analysis/radare/ired.nix { }; From 0450b0ad0ad54593889587fd5647ef6fc3182dcb Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 4 Aug 2014 01:21:59 -0500 Subject: [PATCH 29/56] intel-gpu-tools: Add derivation --- .../tools/misc/intel-gpu-tools/default.nix | 21 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/tools/misc/intel-gpu-tools/default.nix diff --git a/pkgs/development/tools/misc/intel-gpu-tools/default.nix b/pkgs/development/tools/misc/intel-gpu-tools/default.nix new file mode 100644 index 00000000000..14bfe74821d --- /dev/null +++ b/pkgs/development/tools/misc/intel-gpu-tools/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, libdrm, libpciaccess, cairo, dri2proto, udev, libX11, libXext, libXv, libXrandr, glib, bison }: + +stdenv.mkDerivation rec { + name = "intel-gpu-tools-1.7"; + + src = fetchurl { + url = "http://xorg.freedesktop.org/archive/individual/app/${name}.tar.bz2"; + sha256 = "0yi0024kr1xzglkkhyjpxr081bmwvdakb61az6wiidfrpd1j6q92"; + }; + + configureFlags = [ "--disable-tests" ]; + + buildInputs = [ pkgconfig libdrm libpciaccess cairo dri2proto udev libX11 libXext libXv libXrandr glib bison ]; + + meta = with stdenv.lib; { + homepage = https://01.org/linuxgraphics/; + description = "Tools for development and testing of the Intel DRM driver"; + license = licenses.mit; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 21c1421f134..ce8664b1dab 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3994,6 +3994,9 @@ let inotifyTools = callPackage ../development/tools/misc/inotify-tools { }; + intel-gpu-tools = callPackage ../development/tools/misc/intel-gpu-tools { + inherit (xorg) libpciaccess dri2proto libX11 libXext libXv libXrandr; + }; ired = callPackage ../development/tools/analysis/radare/ired.nix { }; From 7619096b986a27a91b5704b4b63d3e47ba4de06b Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 4 Aug 2014 01:22:16 -0500 Subject: [PATCH 30/56] vaapi-intel: 1.0.20 -> 1.3.2 --- .../libraries/vaapi-intel/default.nix | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix index 6f1cb572b9b..2c553aeded3 100644 --- a/pkgs/development/libraries/vaapi-intel/default.nix +++ b/pkgs/development/libraries/vaapi-intel/default.nix @@ -1,23 +1,27 @@ -{ stdenv, fetchurl, autoconf, automake, libtool, mesa, libva, libdrm, libX11, pkgconfig -, intelgen4asm }: +{ stdenv, fetchurl, pkgconfig, libdrm, libva, libX11, intel-gpu-tools, mesa_noglu, wayland, python, gnum4 }: stdenv.mkDerivation rec { - name = "libva-intel-driver-1.0.20"; + name = "libva-intel-driver-1.3.2"; src = fetchurl { url = "http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver/${name}.tar.bz2"; - sha256 = "1jfl8909j3a3in6m8b5bx3dn7pzr8a1sw3sk4vzm7h3j2dkgpzhj"; + sha256 = "1l8897plk74zcik6snk7hb5s4ga0d2vypccfkh0bp1fb2775dn8i"; }; - buildInputs = [ pkgconfig libdrm libva libX11 ]; + prePatch = '' + sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' src/shaders/gpp.py + ''; + + buildInputs = [ pkgconfig libdrm libva libX11 intel-gpu-tools mesa_noglu wayland gnum4 ]; preConfigure = '' sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure ''; - meta = { + meta = with stdenv.lib; { homepage = http://cgit.freedesktop.org/vaapi/intel-driver/; - license = stdenv.lib.licenses.mit; + license = licenses.mit; description = "Intel driver for the VAAPI library"; + platforms = platforms.unix; }; } From 74ce1a016f036ccbc3c485ba0a5bc4e547fd1ee0 Mon Sep 17 00:00:00 2001 From: taku0 Date: Sun, 3 Aug 2014 22:26:06 +0900 Subject: [PATCH 31/56] add peco: Simplistic interactive filtering tool --- pkgs/tools/text/peco/default.nix | 63 ++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/tools/text/peco/default.nix diff --git a/pkgs/tools/text/peco/default.nix b/pkgs/tools/text/peco/default.nix new file mode 100644 index 00000000000..be49ba50920 --- /dev/null +++ b/pkgs/tools/text/peco/default.nix @@ -0,0 +1,63 @@ +{ stdenv, go, fetchgit }: + +let + go-flags = fetchgit { + url = "git://github.com/jessevdk/go-flags"; + rev = "4f0ca1e2d1349e9662b633ea1b8b8d48e8a32533"; + sha256 = "5f22f4c5a0529ff0da8e507462ad910bb73c513fde49d58dd4baf7332787ca3d"; + }; + go-runewidth = fetchgit { + url = "git://github.com/mattn/go-runewidth"; + rev = "36f63b8223e701c16f36010094fb6e84ffbaf8e0"; + sha256 = "718e9e04659441744b8d43bd3d7e806836194cf322962712a6e019311d407ecf"; + }; + termbox-go = fetchgit { + url = "git://github.com/nsf/termbox-go"; + rev = "4e63c3a917c197694cb4fef6c55582500b3741e3"; + sha256 = "00ecc0dcf0919a42ea06fe3bd93480a17241160c434ff3872b6f5e418eb18069"; + }; +in stdenv.mkDerivation rec { + name = "peco-${version}"; + version = "0.2.3"; + + src = fetchgit { + url = "git://github.com/peco/peco"; + rev = "b8e0c8f37d3eed68e64c931b0edb77728f3723f9"; + sha256 = "f178e01ab0536770b17eddcefd863e68c2d65b527b5da1fc3fb9efb19c12635f"; + }; + + buildInputs = [ go ]; + + sourceRoot = "."; + + buildPhase = '' + mkdir -p src/github.com/jessevdk/go-flags/ + ln -s ${go-flags}/* src/github.com/jessevdk/go-flags + + mkdir -p src/github.com/mattn/go-runewidth/ + ln -s ${go-runewidth}/* src/github.com/mattn/go-runewidth + + mkdir -p src/github.com/nsf/termbox-go/ + ln -s ${termbox-go}/* src/github.com/nsf/termbox-go + + mkdir -p src/github.com/peco/peco + ln -s ${src}/* src/github.com/peco/peco + + export GOPATH=$PWD + go build -v -o peco src/github.com/peco/peco/cmd/peco/peco.go + ''; # */ + + installPhase = '' + ensureDir $out/bin + cp peco $out/bin + ''; + + meta = with stdenv.lib; { + description = "Simplistic interactive filtering tool"; + homepage = https://github.com/peco/peco; + license = licenses.mit; + # peco should work on Windows or other POSIX platforms, but the go package + # declares only linux and darwin. + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ce8664b1dab..f556b775e1b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1831,6 +1831,8 @@ let pdnsd = callPackage ../tools/networking/pdnsd { }; + peco = callPackage ../tools/text/peco { }; + pg_top = callPackage ../tools/misc/pg_top { }; pdsh = callPackage ../tools/networking/pdsh { From 61121203c228fa1c421df7622e3a4d0f8b04460b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 31 Jul 2014 19:52:22 +0200 Subject: [PATCH 32/56] qt5: remove references to /usr/{share,lib}/X11/locale/ Qt5 currently hardcodes /usr/{share,lib}/X11/locale/. Fix it to use paths from the nix store. Qt4 is unaffected. This fixes a startup warning for applications built with qt5 (e.g. qtcreator, shotcut): Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable. --- pkgs/development/libraries/qt-5/default.nix | 3 +++ pkgs/development/libraries/qt-5/qt-5.3.nix | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pkgs/development/libraries/qt-5/default.nix b/pkgs/development/libraries/qt-5/default.nix index e03f4ec88c7..fe290fd69fc 100644 --- a/pkgs/development/libraries/qt-5/default.nix +++ b/pkgs/development/libraries/qt-5/default.nix @@ -38,6 +38,9 @@ stdenv.mkDerivation rec { substituteInPlace configure --replace /bin/pwd pwd substituteInPlace qtbase/configure --replace /bin/pwd pwd substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls + substituteInPlace qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ + --replace /usr/share/X11/locale ${libX11}/share/X11/locale \ + --replace /usr/lib/X11/locale ${libX11}/share/X11/locale sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf ''; diff --git a/pkgs/development/libraries/qt-5/qt-5.3.nix b/pkgs/development/libraries/qt-5/qt-5.3.nix index fdda7559d7a..1722a1e52a1 100644 --- a/pkgs/development/libraries/qt-5/qt-5.3.nix +++ b/pkgs/development/libraries/qt-5/qt-5.3.nix @@ -38,6 +38,9 @@ stdenv.mkDerivation rec { substituteInPlace configure --replace /bin/pwd pwd substituteInPlace qtbase/configure --replace /bin/pwd pwd substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls + substituteInPlace qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ + --replace /usr/share/X11/locale ${libX11}/share/X11/locale \ + --replace /usr/lib/X11/locale ${libX11}/share/X11/locale sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf ''; From f3739e2aca6068901bbfcd1b6ed21788b16988f2 Mon Sep 17 00:00:00 2001 From: System administrator Date: Sat, 2 Aug 2014 15:40:51 +0200 Subject: [PATCH 33/56] added astromenace: Hardcore 3D space shooter --- pkgs/games/astromenace/default.nix | 36 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/games/astromenace/default.nix diff --git a/pkgs/games/astromenace/default.nix b/pkgs/games/astromenace/default.nix new file mode 100644 index 00000000000..a2897a795e8 --- /dev/null +++ b/pkgs/games/astromenace/default.nix @@ -0,0 +1,36 @@ +{ fetchurl, stdenv, cmake, x11, mesa, SDL, openal, freealut, libogg, libvorbis }: + +stdenv.mkDerivation rec { + version = "1.3.2"; + name = "astromenace-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/openastromenace/astromenace-src-${version}.tar.bz2"; + sha256 = "1rkz6lwjcd5mwv72kf07ghvx6z46kf3xs250mjbmnmjpn7r5sxwv"; + }; + + buildInputs = [ cmake x11 mesa SDL openal freealut libogg libvorbis ]; + + buildPhase = '' + cmake ./ + make + ./AstroMenace --pack --rawdata=../RAW_VFS_DATA + ''; + installPhase = '' + mkdir -p $out/bin + cp AstroMenace $out + cp gamedata.vfs $out + cat > $out/bin/AstroMenace << EOF + #!/bin/bash + $out/AstroMenace --dir=$out + EOF + chmod 755 $out/bin/AstroMenace + ''; + + meta = { + description = "Hardcore 3D space shooter with spaceship upgrade possibilities."; + homepage = http://www.viewizard.com/; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f556b775e1b..8590aa74742 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10183,6 +10183,8 @@ let libsigcxx = libsigcxx12; }; + astromenace = callPackage ../games/astromenace { }; + atanks = callPackage ../games/atanks {}; ballAndPaddle = callPackage ../games/ball-and-paddle { From 83f78fa82d5a78809aae64611def88afabf5b630 Mon Sep 17 00:00:00 2001 From: Christoph Hrdinka Date: Thu, 10 Jul 2014 09:58:52 +0200 Subject: [PATCH 34/56] mcomix: add sqlite3 dependency --- pkgs/applications/graphics/mcomix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/mcomix/default.nix b/pkgs/applications/graphics/mcomix/default.nix index c997f5c343f..cc1fe8c3a22 100644 --- a/pkgs/applications/graphics/mcomix/default.nix +++ b/pkgs/applications/graphics/mcomix/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, buildPythonPackage, pygtk, pil }: +{ stdenv, fetchurl, buildPythonPackage, pygtk, pil, python27Packages }: buildPythonPackage rec { namePrefix = ""; @@ -11,7 +11,7 @@ buildPythonPackage rec { doCheck = false; - pythonPath = [ pygtk pil ]; + pythonPath = [ pygtk pil python27Packages.sqlite3 ]; meta = { description = "Image viewer designed to handle comic books"; From 5355d3d30bccc6ec3881c2468234378e5e06bd57 Mon Sep 17 00:00:00 2001 From: System administrator Date: Thu, 10 Jul 2014 13:11:35 +0200 Subject: [PATCH 35/56] logrotate: use systemd instead of cron --- nixos/modules/services/logging/logrotate.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix index 804f9a0847f..6887ab1e805 100644 --- a/nixos/modules/services/logging/logrotate.nix +++ b/nixos/modules/services/logging/logrotate.nix @@ -8,10 +8,6 @@ let configFile = pkgs.writeText "logrotate.conf" cfg.config; - cronJob = '' - 5 * * * * root ${pkgs.logrotate}/sbin/logrotate ${configFile} - ''; - in { options = { @@ -33,6 +29,16 @@ in }; config = mkIf cfg.enable { - services.cron.systemCronJobs = [ cronJob ]; + systemd.services.logrotate = { + description = "Logrotate Service"; + wantedBy = [ "multi-user.target" ]; + startAt = "*-*-* *:05:00"; + + serviceConfig.Restart = "no"; + serviceConfig.User = "root"; + script = '' + exec ${pkgs.logrotate}/sbin/logrotate ${configFile} + ''; + }; }; } From c2760bbb03441992ad708ba3b0929dd856b5d18c Mon Sep 17 00:00:00 2001 From: Nicolas Dietrich Date: Sat, 26 Jul 2014 23:06:53 +0200 Subject: [PATCH 36/56] pythonPackages.meld3: Update to 1.0.0 license change from ZPL to Repoze (BSD-style) --- pkgs/top-level/python-packages.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 86afc76f897..2bf34a0623b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4256,11 +4256,11 @@ rec { meld3 = buildPythonPackage rec { - name = "meld3-0.6.10"; + name = "meld3-1.0.0"; src = fetchurl { - url = https://pypi.python.org/packages/source/m/meld3/meld3-0.6.10.tar.gz; - md5 = "42e58624e9d427be7659d7a28e2b0b6f"; + url = https://pypi.python.org/packages/source/m/meld3/meld3-1.0.0.tar.gz; + md5 = "ca270506dd4ecb20ae26fa72fbd9b0be"; }; doCheck = false; @@ -4268,7 +4268,7 @@ rec { meta = { description = "An HTML/XML templating engine used by supervisor"; homepage = https://github.com/supervisor/meld3; - license = "ZPL"; + license = "free-non-copyleft"; }; }; From 98ef9a942d31880ac114138a829df240952b20e0 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:38:50 +0200 Subject: [PATCH 37/56] haskell-generics-sop: re-generate with cabal2nix --- pkgs/development/libraries/haskell/generics-sop/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/haskell/generics-sop/default.nix b/pkgs/development/libraries/haskell/generics-sop/default.nix index 01ff07e2a30..ba3d8a5686c 100644 --- a/pkgs/development/libraries/haskell/generics-sop/default.nix +++ b/pkgs/development/libraries/haskell/generics-sop/default.nix @@ -1,3 +1,5 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + { cabal, tagged }: cabal.mkDerivation (self: { From c6d3075d692d71ca0d6c9730b451219c4b90ab1d Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:41:15 +0200 Subject: [PATCH 38/56] haskell-attoparsec: update to version 0.12.1.1 --- .../haskell/attoparsec/{0.12.1.0.nix => 0.12.1.1.nix} | 4 ++-- pkgs/top-level/haskell-packages.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename pkgs/development/libraries/haskell/attoparsec/{0.12.1.0.nix => 0.12.1.1.nix} (88%) diff --git a/pkgs/development/libraries/haskell/attoparsec/0.12.1.0.nix b/pkgs/development/libraries/haskell/attoparsec/0.12.1.1.nix similarity index 88% rename from pkgs/development/libraries/haskell/attoparsec/0.12.1.0.nix rename to pkgs/development/libraries/haskell/attoparsec/0.12.1.1.nix index e17fd13741a..a038ad0e12f 100644 --- a/pkgs/development/libraries/haskell/attoparsec/0.12.1.0.nix +++ b/pkgs/development/libraries/haskell/attoparsec/0.12.1.1.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "attoparsec"; - version = "0.12.1.0"; - sha256 = "1y7sikk5hg9yj3mn21k026ni6lznsih0lx03rgdz4gmb6aqh54bn"; + version = "0.12.1.1"; + sha256 = "0whj2wscw9pdf6avnhnqiapsllh6228j4hifyfvr4v0w663plh7p"; buildDepends = [ deepseq scientific text ]; testDepends = [ deepseq QuickCheck scientific testFramework diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index eccb9ceb579..934d5e78ce3 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -200,8 +200,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in attoparsec_0_10_4_0 = callPackage ../development/libraries/haskell/attoparsec/0.10.4.0.nix {}; attoparsec_0_11_3_1 = callPackage ../development/libraries/haskell/attoparsec/0.11.3.1.nix {}; attoparsec_0_11_3_4 = callPackage ../development/libraries/haskell/attoparsec/0.11.3.4.nix {}; - attoparsec_0_12_1_0 = callPackage ../development/libraries/haskell/attoparsec/0.12.1.0.nix {}; - attoparsec = self.attoparsec_0_12_1_0; + attoparsec_0_12_1_1 = callPackage ../development/libraries/haskell/attoparsec/0.12.1.1.nix {}; + attoparsec = self.attoparsec_0_12_1_1; attoparsecBinary = callPackage ../development/libraries/haskell/attoparsec-binary {}; From 09ea413e1789b81873e1ae99d53845171d2015cc Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:41:55 +0200 Subject: [PATCH 39/56] haskell-sloane: update to version 1.9.1 --- pkgs/applications/science/math/sloane/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/science/math/sloane/default.nix b/pkgs/applications/science/math/sloane/default.nix index 72c2028e63c..b3bde7874ca 100644 --- a/pkgs/applications/science/math/sloane/default.nix +++ b/pkgs/applications/science/math/sloane/default.nix @@ -1,18 +1,18 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, ansiTerminal, filepath, HTTP, network, optparseApplicative -, terminalSize, text, time, zlib +{ cabal, ansiTerminal, cereal, downloadCurl, filepath, HTTP +, network, optparseApplicative, terminalSize, text, zlib }: cabal.mkDerivation (self: { pname = "sloane"; - version = "1.8.2"; - sha256 = "0kdznrvyrax1gihqxxw36jfbmjri808ii827fa71v2ijlm416hk1"; + version = "1.9.1"; + sha256 = "0scnvir7il8ldy3g846xmrdkk2rxnlsiyqak0jvcarf2qi251x5i"; isLibrary = false; isExecutable = true; buildDepends = [ - ansiTerminal filepath HTTP network optparseApplicative terminalSize - text time zlib + ansiTerminal cereal downloadCurl filepath HTTP network + optparseApplicative terminalSize text zlib ]; postInstall = '' mkdir -p $out/share/man/man1 From 06a5267b8e6b327cd30670a81e6796adf3d1ef88 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:41:57 +0200 Subject: [PATCH 40/56] haskell-DAV: update to version 0.8 --- pkgs/development/libraries/haskell/DAV/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/DAV/default.nix b/pkgs/development/libraries/haskell/DAV/default.nix index c75b82dcf15..b8f6fbf3401 100644 --- a/pkgs/development/libraries/haskell/DAV/default.nix +++ b/pkgs/development/libraries/haskell/DAV/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { pname = "DAV"; - version = "0.6.2"; - sha256 = "1alnjm0rfr7kwj6jax10bg8rcs8523n5dxyvw0mm65qykf78cprl"; + version = "0.8"; + sha256 = "0khjid5jaaf4c3xn9cbph8ay4ibqr7pg3b3w7d0kfvci90ksc08r"; isLibrary = true; isExecutable = true; buildDepends = [ From 8b6c8b7b6b8af365437633cfe4ef7df50dfd8ff8 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:00 +0200 Subject: [PATCH 41/56] haskell-GLFW: update to version 0.5.2.2 --- pkgs/development/libraries/haskell/GLFW/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/GLFW/default.nix b/pkgs/development/libraries/haskell/GLFW/default.nix index 4abea15c51d..a687f709018 100644 --- a/pkgs/development/libraries/haskell/GLFW/default.nix +++ b/pkgs/development/libraries/haskell/GLFW/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "GLFW"; - version = "0.5.2.0"; - sha256 = "06vps929dmk9yimfv7jj12m0p0bf4ih0ssf6rbcq2j6i9wbhpxq3"; + version = "0.5.2.2"; + sha256 = "0yqvfkg9p5h5bv3ak6b89am9kan9lbcq26kg1wk53xl6mz1aaijf"; buildDepends = [ OpenGL ]; extraLibraries = [ libX11 mesa ]; meta = { From 5d921c465eceb62a9ea93b7fde80124edd57b746 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:03 +0200 Subject: [PATCH 42/56] haskell-MFlow: update to version 0.4.5.7 --- pkgs/development/libraries/haskell/MFlow/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/MFlow/default.nix b/pkgs/development/libraries/haskell/MFlow/default.nix index bfefa0bead2..0c426a3bf4c 100644 --- a/pkgs/development/libraries/haskell/MFlow/default.nix +++ b/pkgs/development/libraries/haskell/MFlow/default.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { pname = "MFlow"; - version = "0.4.5.6"; - sha256 = "12rgp4x2in3r1hf4j1fr5ih0x0mb54x1rdr1mjllbh8c09ricrah"; + version = "0.4.5.7"; + sha256 = "0faw082z8yyzf0k1vrgpqa8kvwb2zwmasy1p1vvj3a7lhhnlr20s"; buildDepends = [ blazeHtml blazeMarkup caseInsensitive clientsession conduit conduitExtra extensibleExceptions httpTypes monadloc mtl parsec From 7063c8af89508ab52503de401e607c37f313abc4 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:05 +0200 Subject: [PATCH 43/56] haskell-Vec: update to version 1.0.5 --- pkgs/development/libraries/haskell/Vec/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/Vec/default.nix b/pkgs/development/libraries/haskell/Vec/default.nix index bc4b7eb1454..20def8db154 100644 --- a/pkgs/development/libraries/haskell/Vec/default.nix +++ b/pkgs/development/libraries/haskell/Vec/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "Vec"; - version = "1.0.1"; - sha256 = "1v0v0ph881vynx8q8xwmn9da6qrd16g83q5i132nxys3ynl5s76m"; + version = "1.0.5"; + sha256 = "0hyk553pdn72zc1i82njz3md8ycmzfiwi799y08qr3fg0i8r88zm"; meta = { homepage = "http://github.net/sedillard/Vec"; description = "Fixed-length lists and low-dimensional linear algebra"; From f027629158411b2976ded40cf8f04493060dc60e Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:08 +0200 Subject: [PATCH 44/56] haskell-auto-update: update to version 0.1.1.0 --- pkgs/development/libraries/haskell/auto-update/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/auto-update/default.nix b/pkgs/development/libraries/haskell/auto-update/default.nix index 96096e73be2..da80caa6364 100644 --- a/pkgs/development/libraries/haskell/auto-update/default.nix +++ b/pkgs/development/libraries/haskell/auto-update/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "auto-update"; - version = "0.1.0.0"; - sha256 = "000aaccwpi373fnnmnq08d3128ncgv3w6pj25px25c2kp56z4c0l"; + version = "0.1.1.0"; + sha256 = "0nag7x41fbi8ic0f9kr14vllk7nyzd47364fpirkydjqp48qfv3j"; testDepends = [ hspec ]; meta = { homepage = "https://github.com/yesodweb/wai"; From a7961a8e2c6855d18babeeae8ad705bed5a5ea9f Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:11 +0200 Subject: [PATCH 45/56] haskell-cgrep: update to version 6.4.6 --- pkgs/development/libraries/haskell/cgrep/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/haskell/cgrep/default.nix b/pkgs/development/libraries/haskell/cgrep/default.nix index 3563abb0a85..e19cac2b2ec 100644 --- a/pkgs/development/libraries/haskell/cgrep/default.nix +++ b/pkgs/development/libraries/haskell/cgrep/default.nix @@ -1,18 +1,18 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, ansiTerminal, cmdargs, dlist, filepath, regexPosix, safe -, split, stm, stringsearch, unorderedContainers +{ cabal, ansiTerminal, cmdargs, dlist, either, filepath, mtl +, regexPosix, safe, split, stm, stringsearch, unorderedContainers }: cabal.mkDerivation (self: { pname = "cgrep"; - version = "6.4.5"; - sha256 = "0pp3gfy8dvdbv40vfy3dhqymjp0knnbzv9hmbc18f3s8zpy4lis0"; + version = "6.4.6"; + sha256 = "13plsh6411k273qllpkcrkakwxcdmw0p6arj0j3gdqa7bbxii99s"; isLibrary = false; isExecutable = true; buildDepends = [ - ansiTerminal cmdargs dlist filepath regexPosix safe split stm - stringsearch unorderedContainers + ansiTerminal cmdargs dlist either filepath mtl regexPosix safe + split stm stringsearch unorderedContainers ]; meta = { homepage = "http://awgn.github.io/cgrep/"; From 3c8c8333a5a5fe4f3c68916e1e0ae9662c708356 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:14 +0200 Subject: [PATCH 46/56] haskell-cookie: update to version 0.4.1.3 --- pkgs/development/libraries/haskell/cookie/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/cookie/default.nix b/pkgs/development/libraries/haskell/cookie/default.nix index 1427b17756c..1728c70c94e 100644 --- a/pkgs/development/libraries/haskell/cookie/default.nix +++ b/pkgs/development/libraries/haskell/cookie/default.nix @@ -7,8 +7,8 @@ cabal.mkDerivation (self: { pname = "cookie"; - version = "0.4.1.2"; - sha256 = "1dxga56m4mza3annhb48ryb31kf0kxr3w99c4mwh9w9l77xhcq3i"; + version = "0.4.1.3"; + sha256 = "184ymp1pbi49fm4jl9s04dfyrgdbc9vlmqahqha4yncppr5s1sdw"; buildDepends = [ blazeBuilder dataDefault deepseq text time ]; testDepends = [ blazeBuilder HUnit QuickCheck testFramework testFrameworkHunit From b54eaa1156df606953642e603165763de927156a Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:16 +0200 Subject: [PATCH 47/56] haskell-hsshellscript: update to version 3.3.2 --- pkgs/development/libraries/haskell/hsshellscript/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/hsshellscript/default.nix b/pkgs/development/libraries/haskell/hsshellscript/default.nix index b6fdac69544..221d3079d2b 100644 --- a/pkgs/development/libraries/haskell/hsshellscript/default.nix +++ b/pkgs/development/libraries/haskell/hsshellscript/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "hsshellscript"; - version = "3.3.1"; - sha256 = "0z3afp3r1j1in03fv2yb5sfbzgcrhdig6gay683bzgh85glwxhlp"; + version = "3.3.2"; + sha256 = "0rc78yx82gy7a3dxl1mn9hrj1cqhq51zq6w4nf11rzgn6106zdln"; buildDepends = [ parsec random ]; buildTools = [ c2hs ]; meta = { From 221bdc4217473c3aeb9d078a1de422a416944102 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:19 +0200 Subject: [PATCH 48/56] haskell-network-metrics: update to version 0.4 --- .../development/libraries/haskell/network-metrics/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/network-metrics/default.nix b/pkgs/development/libraries/haskell/network-metrics/default.nix index 024192a06a8..c9df88a41c9 100644 --- a/pkgs/development/libraries/haskell/network-metrics/default.nix +++ b/pkgs/development/libraries/haskell/network-metrics/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "network-metrics"; - version = "0.3.2"; - sha256 = "14yf9di909443gkgaw7n262453d60pp9mw8vncmd6q7pywhdz9hh"; + version = "0.4"; + sha256 = "0dvrjf84pdm42pxwc7fm4gvswc5nzmdsq7cr7ab8jyzvjqb8684c"; buildDepends = [ binary dataDefault network random time ]; meta = { homepage = "http://github.com/brendanhay/network-metrics"; From 59be6a9f501e8cceb2abe2f8ea7be602abd410dd Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:22 +0200 Subject: [PATCH 49/56] haskell-pandoc-types: update to version 1.12.4.1 --- pkgs/development/libraries/haskell/pandoc-types/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/pandoc-types/default.nix b/pkgs/development/libraries/haskell/pandoc-types/default.nix index ee44d908c49..6b84a53e0c2 100644 --- a/pkgs/development/libraries/haskell/pandoc-types/default.nix +++ b/pkgs/development/libraries/haskell/pandoc-types/default.nix @@ -4,8 +4,8 @@ cabal.mkDerivation (self: { pname = "pandoc-types"; - version = "1.12.4"; - sha256 = "10vlw8iabaay0xqlshagl45ksawlanlg6fyqwv9d448qm32ngvdn"; + version = "1.12.4.1"; + sha256 = "1wbgm0s45smi8gix0byapkiarbb416fv765fc329qsvl295xlyqq"; buildDepends = [ aeson deepseqGenerics syb ]; meta = { homepage = "http://johnmacfarlane.net/pandoc"; From 9ca4d6308c988cfce5cee9e145467cdb9a8e70bc Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:25 +0200 Subject: [PATCH 50/56] haskell-persistent-template: update to version 1.3.2.1 --- .../libraries/haskell/persistent-template/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix index a1dfa4fcc29..882ebcc7d25 100644 --- a/pkgs/development/libraries/haskell/persistent-template/default.nix +++ b/pkgs/development/libraries/haskell/persistent-template/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "persistent-template"; - version = "1.3.1.4"; - sha256 = "1ys5s1vb9w3nrv9kwvzgjwfs2j09pslpplz05idpfn02xx03hcfk"; + version = "1.3.2.1"; + sha256 = "1i7jlp16bwxrfbbln1izjmjjicgqw5i6hsylfjmh622vri2rxi31"; buildDepends = [ aeson monadControl monadLogger persistent text transformers unorderedContainers From 7562fabc635e32a0bff47821de86730c6a991500 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:27 +0200 Subject: [PATCH 51/56] haskell-statistics: update to version 0.13.2.1 --- pkgs/development/libraries/haskell/statistics/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix index 42c88f97391..9bed0331a50 100644 --- a/pkgs/development/libraries/haskell/statistics/default.nix +++ b/pkgs/development/libraries/haskell/statistics/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { pname = "statistics"; - version = "0.13.2.0"; - sha256 = "0xxi0w7jxgj31zgwppvjx1iw80plrq2fxz6vaa9mr9ijqqi36xad"; + version = "0.13.2.1"; + sha256 = "0giibqpnjndnhvxqsr8ikcxxfhz3ws0mk3ckykq2sfwz7gkipvva"; buildDepends = [ aeson binary deepseq erf mathFunctions monadPar mwcRandom primitive vector vectorAlgorithms vectorBinaryInstances From d2957a7348132081c82b50c5681c2233af9db3ce Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:33 +0200 Subject: [PATCH 52/56] haskell-wai-logger: update to version 2.2.1 --- .../libraries/haskell/wai-logger/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/haskell/wai-logger/default.nix b/pkgs/development/libraries/haskell/wai-logger/default.nix index d824355b131..2eca7d3c1c3 100644 --- a/pkgs/development/libraries/haskell/wai-logger/default.nix +++ b/pkgs/development/libraries/haskell/wai-logger/default.nix @@ -1,16 +1,16 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! { cabal, autoUpdate, blazeBuilder, byteorder, caseInsensitive -, doctest, fastLogger, httpTypes, network, unixTime, wai +, doctest, easyFile, fastLogger, httpTypes, network, unixTime, wai }: cabal.mkDerivation (self: { pname = "wai-logger"; - version = "2.2.0"; - sha256 = "0dl4c9b1yl22df421p6yw405bv1skvh6dk5rgybxz1sspvb94gvy"; + version = "2.2.1"; + sha256 = "0210phkadr5ndpx6ppmygir0mxnpjffvccjb4lnpjnwy2ydf0lzy"; buildDepends = [ - autoUpdate blazeBuilder byteorder caseInsensitive fastLogger - httpTypes network unixTime wai + autoUpdate blazeBuilder byteorder caseInsensitive easyFile + fastLogger httpTypes network unixTime wai ]; testDepends = [ doctest ]; doCheck = false; From 91d649ff5ccfac6e8eb3ce058dfce68c7010fe6b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:36 +0200 Subject: [PATCH 53/56] haskell-warp: update to version 3.0.0.6 --- .../libraries/haskell/warp/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix index aa910aacb22..d49e0fe7db4 100644 --- a/pkgs/development/libraries/haskell/warp/default.nix +++ b/pkgs/development/libraries/haskell/warp/default.nix @@ -1,22 +1,22 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, async, blazeBuilder, caseInsensitive, doctest, hashable -, hspec, HTTP, httpDate, httpTypes, HUnit, liftedBase, network -, QuickCheck, simpleSendfile, streamingCommons, text, time +{ cabal, async, autoUpdate, blazeBuilder, caseInsensitive, doctest +, hashable, hspec, HTTP, httpDate, httpTypes, HUnit, liftedBase +, network, QuickCheck, simpleSendfile, streamingCommons, text, time , transformers, unixCompat, void, wai }: cabal.mkDerivation (self: { pname = "warp"; - version = "3.0.0.5"; - sha256 = "1in9gnxb15np4vj47q6c07hr9iq2apbx0a1brkaqcmfq3c9wq9d5"; + version = "3.0.0.6"; + sha256 = "0085v0gnjr4yv4s341jyc8cf9l69rmj9rrnr6h2lyhq5hx1i1lw8"; buildDepends = [ - blazeBuilder caseInsensitive hashable httpDate httpTypes network - simpleSendfile streamingCommons text unixCompat void wai + autoUpdate blazeBuilder caseInsensitive hashable httpDate httpTypes + network simpleSendfile streamingCommons text unixCompat void wai ]; testDepends = [ - async blazeBuilder caseInsensitive doctest hashable hspec HTTP - httpDate httpTypes HUnit liftedBase network QuickCheck + async autoUpdate blazeBuilder caseInsensitive doctest hashable + hspec HTTP httpDate httpTypes HUnit liftedBase network QuickCheck simpleSendfile streamingCommons text time transformers unixCompat void wai ]; From 8cef5df7d325c473a128a02fb91498ea332ffa7b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:38 +0200 Subject: [PATCH 54/56] haskell-yesod-bin: update to version 1.2.12.3 --- pkgs/development/libraries/haskell/yesod-bin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/yesod-bin/default.nix b/pkgs/development/libraries/haskell/yesod-bin/default.nix index a22df50bf47..dbf98e1457b 100644 --- a/pkgs/development/libraries/haskell/yesod-bin/default.nix +++ b/pkgs/development/libraries/haskell/yesod-bin/default.nix @@ -12,8 +12,8 @@ cabal.mkDerivation (self: { pname = "yesod-bin"; - version = "1.2.12.1"; - sha256 = "03vnxpapcg1z1xk0m077wn5rly9h2j7548zd8drlb455lv7np7mj"; + version = "1.2.12.3"; + sha256 = "0pm7wwml2574fsimibhhb47s6fn19cdips4p419k7j8g62v4kfzx"; isLibrary = false; isExecutable = true; buildDepends = [ From f0a1acd88f3b8274b00ec82102d11e31c3c63695 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 12:42:41 +0200 Subject: [PATCH 55/56] haskell-yesod-form: update to version 1.3.15 --- pkgs/development/libraries/haskell/yesod-form/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix index 3ac24f87462..a5a70848dfd 100644 --- a/pkgs/development/libraries/haskell/yesod-form/default.nix +++ b/pkgs/development/libraries/haskell/yesod-form/default.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { pname = "yesod-form"; - version = "1.3.14"; - sha256 = "0a2xlar67f0y48zqml8kqjna33i474j3j04gmgglsfmk1wikr7sh"; + version = "1.3.15"; + sha256 = "1cyz39892kxa3m3wx8a3sy4fkmhaljvz72r2jq8l5qn2hd0n5b69"; buildDepends = [ aeson attoparsec blazeBuilder blazeHtml blazeMarkup byteable dataDefault emailValidate hamlet network persistent resourcet From 42da927f6ada839fb38ae180d9272964c245e635 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 7 Aug 2014 14:46:02 +0200 Subject: [PATCH 56/56] haskell-ghc-mod: Remove the 'sed' patch; it breaks the module for me (Emacs 24.x, Linux/x86_64). With that patch applied, ghc-mod's interface to hlint and GHC no longer works. After removing it, everything behaves just fine again. --- pkgs/development/libraries/haskell/ghc-mod/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/libraries/haskell/ghc-mod/default.nix b/pkgs/development/libraries/haskell/ghc-mod/default.nix index 28f1f25eb25..f876fb5aba8 100644 --- a/pkgs/development/libraries/haskell/ghc-mod/default.nix +++ b/pkgs/development/libraries/haskell/ghc-mod/default.nix @@ -23,7 +23,6 @@ cabal.mkDerivation (self: { configureFlags = "--datasubdir=${self.pname}-${self.version}"; postInstall = '' cd $out/share/$pname-$version - sed -i -e 's/"-b" "\\n" "-l"/"-l" "-b" "\\"\\\\n\\""/' ghc-process.el make rm Makefile cd ..