From 2f4517697eb0882a5047faad3f8f42483f4d417e Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 4 Jun 2014 14:29:18 +0000 Subject: [PATCH 001/175] Add ssl support to snapServer package. --- pkgs/development/libraries/haskell/snap/server.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix index 4dca1dea2843..e5835948d9e3 100644 --- a/pkgs/development/libraries/haskell/snap/server.nix +++ b/pkgs/development/libraries/haskell/snap/server.nix @@ -1,7 +1,7 @@ { cabal, attoparsec, attoparsecEnumerator, blazeBuilder , blazeBuilderEnumerator, caseInsensitive, enumerator , MonadCatchIOTransformers, mtl, network, snapCore, text, time -, unixCompat +, unixCompat, HsOpenSSL, useOpenssl ? false }: cabal.mkDerivation (self: { @@ -12,7 +12,8 @@ cabal.mkDerivation (self: { attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator MonadCatchIOTransformers mtl network snapCore text time unixCompat - ]; + ] ++ self.stdenv.lib.optional useOpenssl HsOpenSSL; + configureFlags = [ ] ++ self.stdenv.lib.optional useOpenssl "-fopenssl"; meta = { homepage = "http://snapframework.com/"; description = "A fast, iteratee-based, epoll-enabled web server for the Snap Framework"; From e0b29501689922319d685c46a6258cb111e9d965 Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 28 Jun 2014 21:46:35 -0700 Subject: [PATCH 002/175] Initial work on ghcjs --- .../tools/haskell/Cabal-ghcjs/default.nix | 42 +++++++++++++ .../haskell/cabal-install-ghcjs/#default.nix# | 35 +++++++++++ .../haskell/cabal-install-ghcjs/default.nix | 36 +++++++++++ .../tools/haskell/ghcjs/default.nix | 62 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + pkgs/top-level/haskell-defaults.nix | 4 ++ pkgs/top-level/haskell-packages.nix | 18 ++++++ 7 files changed, 198 insertions(+) create mode 100644 pkgs/development/tools/haskell/Cabal-ghcjs/default.nix create mode 100644 pkgs/development/tools/haskell/cabal-install-ghcjs/#default.nix# create mode 100644 pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix create mode 100644 pkgs/development/tools/haskell/ghcjs/default.nix diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix new file mode 100644 index 000000000000..db0447030f0d --- /dev/null +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -0,0 +1,42 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "Cabal-ghcjs"; + version = "9e87d6a3"; + src = fetchgit { + url = git://github.com/ghcjs/cabal.git; + rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78"; + sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj"; + }; + preConfigure = "cd Cabal"; + configureFlags = "--program-suffix=-js"; + + # jww (2014-05-31): Why is this failing? + # BuildDeps/InternalLibrary4: + # : [Failed] + # expected: 'setup install' should succeed + # output: "/private/var/folders/8h/tky3qz1d63l05l5jp_nzwzjr0000gn/T/nix-build-haskell-Cabal-ghcjs-ghc7.8.2-9e87d6a3-shared.drv-0/git-export/Cabal/tests/Setup configure --user -w /nix/store/v1gr2sk0117ycn9bmwyp3whgxqkbd5sl-ghc-7.8.2-wrapper/bin/ghc" in PackageTests/BuildDeps/InternalLibrary4/to-install + # Configuring InternalLibrary4-0.2... + # Setup: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible with + # Cabal. Use the flag --package-db to specify a package database (it can be used + # multiple times). + doCheck = false; + + buildDepends = [ + filepath HTTP mtl network random stm time zlib QuickCheck + ]; + testDepends = [ + filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; + meta = { + homepage = "http://www.haskell.org/cabal/"; + description = "The command-line interface for Cabal and Hackage"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; + }; +}) diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/#default.nix# b/pkgs/development/tools/haskell/cabal-install-ghcjs/#default.nix# new file mode 100644 index 000000000000..f761a96bc3f3 --- /dev/null +++ b/pkgs/development/tools/haskell/cabal-install-ghcjs/#default.nix# @@ -0,0 +1,35 @@ +{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "cabal-install-ghcjs"; + version = "9e87d6a3"; + src = fetchgit { + url = git://github.com/ghcjs/cabal.git; + rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78"; + sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj"; + }; + isLibrary = true; + isExecutable = true; + preConfigure = "cd cabal-install"; + buildDepends = [ + CabalGhcjs filepath HTTP mtl network random stm time zlib + ]; + testDepends = [ + CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; + postInstall = '' + mkdir $out/etc + mv bash-completion $out/etc/bash_completion.d + ''; + meta = { + homepage = "http://www.haskell.org/cabal/"; + description = "The command-line interface for Cabal and Hackage"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; + }; +}) diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix new file mode 100644 index 000000000000..9102c77f2f68 --- /dev/null +++ b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix @@ -0,0 +1,36 @@ +{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "cabal-install-ghcjs"; + version = "9e87d6a3"; + src = fetchgit { + url = git://github.com/ghcjs/cabal.git; + rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78"; + sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj"; + }; + isLibrary = true; + isExecutable = true; + configureFlags = "--program-suffix=-js"; + preConfigure = "cd cabal-install"; + buildDepends = [ + CabalGhcjs filepath HTTP mtl network random stm time zlib + ]; + testDepends = [ + CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; + postInstall = '' + mkdir $out/etc + mv bash-completion $out/etc/bash_completion.d + ''; + meta = { + homepage = "http://www.haskell.org/cabal/"; + description = "The command-line interface for Cabal and Hackage"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; + }; +}) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix new file mode 100644 index 000000000000..cf7c49b237a9 --- /dev/null +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -0,0 +1,62 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm +, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time +, zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2 +, parallel, safe, shelly, split, stringsearch, syb, systemFileio +, systemFilepath, tar, terminfo, textBinary, unorderedContainers +, vector, wlPprintText, yaml, fetchgit, Cabal, cabalInstall +, regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch +, automake, libtool +}: + +cabal.mkDerivation (self: rec { + pname = "ghcjs"; + version = "c9ce6b9d"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs.git; + rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84"; + sha256 = "0cla5bchprc8g5n39fkssnv3lj378h948irsnr7dslaki6laaagw"; + }; + bootSrc = fetchgit { + url = git://github.com/ghcjs/ghcjs-boot.git; + rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81"; + sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8"; + }; + isLibrary = true; + isExecutable = true; + jailbreak = true; + noHaddock = true; + buildDepends = [ + filepath HTTP mtl network random stm time zlib aeson attoparsec + bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta + lens optparseApplicative_0_7_0_2 parallel safe shelly split + stringsearch syb systemFileio systemFilepath tar terminfo textBinary + unorderedContainers vector wlPprintText yaml + alex happy git gnumake gcc autoconf automake libtool patch + ]; + testDepends = [ + HUnit regexPosix testFramework testFrameworkHunit + ]; + postConfigure = '' + echo Patching ghcjs with absolute paths to the Nix store + sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \ + src/Compiler/Info.hs + sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ + src-bin/Boot.hs + ''; + postInstall = '' + cp -R ${bootSrc} ghcjs-boot + cd ghcjs-boot + chmod -R u+w . # because fetchgit made it read-only + ensureDir $out/share/ghcjs + PATH=$out/bin:${Cabal}/bin:$PATH \ + $out/bin/ghcjs-boot --init --with-cabal ${cabalInstall}/bin/cabal-js + ''; + meta = { + homepage = "https://github.com/ghcjs/ghcjs"; + description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.jwiegley ]; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 796da97595ec..8973819071a5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2956,6 +2956,7 @@ let # Reasonably current HEAD snapshot. haskellPackages_ghc782 = haskell.packages_ghc782; haskellPackages_ghcHEAD = haskell.packages_ghcHEAD; + haskellPackages_ghcjs = haskell.packages_ghcjs; haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; }); diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index a770cbdda8f7..bd447aed0652 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -214,6 +214,10 @@ }; }; + packages_ghcjs = packages_ghc782 // { + ghc = ../development/tools/haskell/ghcjs; + }; + packages_ghc782 = packages { ghcPath = ../development/compilers/ghc/7.8.2.nix; ghcBinary = ghc742Binary; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index c9071817a53a..6c091fac5814 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -843,6 +843,11 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabal = self.cabal.override { enableLibraryProfiling = false; }; # pkg cannot be built with profiling enabled }; + ghcjs = callPackage ../development/tools/haskell/ghcjs { + Cabal = self.Cabal_1_18_1_3; + cabalInstall = self.cabalInstallGhcjs; + }; + ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; @@ -2825,6 +2830,19 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalInstall_1_20_0_2 = callPackage ../tools/package-management/cabal-install/1.20.0.2.nix { Cabal = self.Cabal_1_20_0_1; }; cabalInstall = self.cabalInstall_1_20_0_2; + CabalGhcjs = callPackage ../development/tools/haskell/Cabal-ghcjs { + QuickCheck = self.QuickCheck_2_6; + testFrameworkQuickcheck2 = self.testFrameworkQuickcheck2.override { + QuickCheck = self.QuickCheck_2_6; + }; + }; + cabalInstallGhcjs = callPackage ../development/tools/haskell/cabal-install-ghcjs { + QuickCheck = self.QuickCheck_2_6; + testFrameworkQuickcheck2 = self.testFrameworkQuickcheck2.override { + QuickCheck = self.QuickCheck_2_6; + }; + }; + codex = callPackage ../development/tools/haskell/codex {}; commandQq = callPackage ../development/libraries/haskell/command-qq {}; From edcfe3cab6a9cc9ea197a9380a74b0b2b57e623e Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 31 May 2014 07:33:49 +0000 Subject: [PATCH 003/175] haskell-optparse-applicative: make 0.7.0.2 available --- .../haskell/optparse-applicative/0.7.0.2.nix | 22 +++++++++++++++++++ .../{default.nix => 0.9.0.nix} | 0 pkgs/top-level/haskell-packages.nix | 4 +++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/haskell/optparse-applicative/0.7.0.2.nix rename pkgs/development/libraries/haskell/optparse-applicative/{default.nix => 0.9.0.nix} (100%) diff --git a/pkgs/development/libraries/haskell/optparse-applicative/0.7.0.2.nix b/pkgs/development/libraries/haskell/optparse-applicative/0.7.0.2.nix new file mode 100644 index 000000000000..ae211346c90d --- /dev/null +++ b/pkgs/development/libraries/haskell/optparse-applicative/0.7.0.2.nix @@ -0,0 +1,22 @@ +{ cabal, ansiWlPprint, HUnit, QuickCheck, testFramework +, testFrameworkHunit, testFrameworkQuickcheck2 +, testFrameworkThPrime, transformers, transformersCompat +}: + +cabal.mkDerivation (self: { + pname = "optparse-applicative"; + version = "0.7.0.2"; + sha256 = "1pq620236x8fch9nkq4g4vganbzksnwj8z1bb80c2mwvf6sbg5ci"; + buildDepends = [ ansiWlPprint transformers transformersCompat ]; + testDepends = [ + HUnit QuickCheck testFramework testFrameworkHunit + testFrameworkQuickcheck2 testFrameworkThPrime + ]; + jailbreak = true; + meta = { + homepage = "https://github.com/pcapriotti/optparse-applicative"; + description = "Utilities and combinators for parsing command line options"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/optparse-applicative/default.nix b/pkgs/development/libraries/haskell/optparse-applicative/0.9.0.nix similarity index 100% rename from pkgs/development/libraries/haskell/optparse-applicative/default.nix rename to pkgs/development/libraries/haskell/optparse-applicative/0.9.0.nix diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 6c091fac5814..3fdbb2734ae1 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1644,7 +1644,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in options = callPackage ../development/libraries/haskell/options {}; - optparseApplicative = callPackage ../development/libraries/haskell/optparse-applicative {}; + optparseApplicative_0_7_0_2 = callPackage ../development/libraries/haskell/optparse-applicative/0.7.0.2.nix {}; + optparseApplicative_0_9_0 = callPackage ../development/libraries/haskell/optparse-applicative/0.9.0.nix {}; + optparseApplicative = self.optparseApplicative_0_9_0; pathPieces = callPackage ../development/libraries/haskell/path-pieces {}; From 9cc408303a23e353f3ac6a56af8ce9dc1488dd9f Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Sat, 31 May 2014 06:05:34 +0000 Subject: [PATCH 004/175] haskell-text-binary: new expression --- .../libraries/haskell/text-binary/default.nix | 14 ++++++++++++++ pkgs/top-level/haskell-packages.nix | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/development/libraries/haskell/text-binary/default.nix diff --git a/pkgs/development/libraries/haskell/text-binary/default.nix b/pkgs/development/libraries/haskell/text-binary/default.nix new file mode 100644 index 000000000000..a1d274a6362e --- /dev/null +++ b/pkgs/development/libraries/haskell/text-binary/default.nix @@ -0,0 +1,14 @@ +{ cabal, binary, text }: + +cabal.mkDerivation (self: { + pname = "text-binary"; + version = "0.1.0"; + sha256 = "0wc501j8hqspnhf4d1hyb18f1wgc4kl2qx1b5s4bkxv0dfbwrk6z"; + buildDepends = [ binary text ]; + meta = { + homepage = "https://github.com/kawu/text-binary"; + description = "Binary instances for text types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 3fdbb2734ae1..46aac09b50c7 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2260,6 +2260,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in text_1_1_1_3 = callPackage ../development/libraries/haskell/text/1.1.1.3.nix {}; text = self.text_1_1_1_3; + textBinary = callPackage ../development/libraries/haskell/text-binary {}; + textFormat = callPackage ../development/libraries/haskell/text-format {}; textIcu = callPackage ../development/libraries/haskell/text-icu {}; From 4e7aa4be874d2d0f10da4eb41ef9ec14c14b72bf Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 30 Jun 2014 00:49:35 -0400 Subject: [PATCH 005/175] Make ghcjs build. Note: In order to run ghcjs, you must set LD_LIBRARY_PATH=${ghcjs}/lib/ghc-7.8.2/ghcjs-0.1.0:$LD_LIBRARY_PATH so that it can find libHSghcjs-0.1.0-ghc7.8.2.so * ghcjs itself (as opposed to ghcjs-built libraries) must be built with the non-ghcjs version of cabal. I'm not sure whether this is strictly necessary, but it prevented an error. * CabalGhcjs and cabalInstallGhcjs must be explicitly provided to ghcjs-boot * Since ghcjs-boot writes to its home directory, we set the home directory to our working directory * To enable ghcjs-boot to find a particular .h file, we must create a symlink in ghcjs-boot/boot to its parent directory * gmp must be provided. Adding it to the LD_LIBRARY_PATH is necessary, but I am not sure whether the uses in buildDepends and the arguments to ghcjs-boot are necessary * If ghcjs-boot cannot find the shims package, it will attempt (and fail) to download it, so we must put it in place ahead of time --- .../tools/haskell/ghcjs/default.nix | 22 ++++++++++++++----- pkgs/top-level/haskell-packages.nix | 1 - 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index cf7c49b237a9..be12c31b91d3 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -4,9 +4,9 @@ , haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2 , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers -, vector, wlPprintText, yaml, fetchgit, Cabal, cabalInstall +, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch -, automake, libtool +, automake, libtool, cabalInstallGhcjs, gmp }: cabal.mkDerivation (self: rec { @@ -22,6 +22,11 @@ cabal.mkDerivation (self: rec { rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81"; sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8"; }; + shims = fetchgit { + url = git://github.com/ghcjs/shims.git; + rev = "a6dd0202dcdb86ad63201495b8b5d9763483eb35"; + sha256 = "07cd7ijw4i62iz1xjpwilriiybpqdx246w8d3j27ny1xfsj9wnax"; + }; isLibrary = true; isExecutable = true; jailbreak = true; @@ -32,7 +37,7 @@ cabal.mkDerivation (self: rec { lens optparseApplicative_0_7_0_2 parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml - alex happy git gnumake gcc autoconf automake libtool patch + alex happy git gnumake gcc autoconf automake libtool patch gmp ]; testDepends = [ HUnit regexPosix testFramework testFrameworkHunit @@ -45,12 +50,17 @@ cabal.mkDerivation (self: rec { src-bin/Boot.hs ''; postInstall = '' + export HOME=$(pwd) cp -R ${bootSrc} ghcjs-boot cd ghcjs-boot + ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only - ensureDir $out/share/ghcjs - PATH=$out/bin:${Cabal}/bin:$PATH \ - $out/bin/ghcjs-boot --init --with-cabal ${cabalInstall}/bin/cabal-js + local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 + ensureDir $GHCJS_LIBDIR + cp -R ${shims} $GHCJS_LIBDIR/shims + ${cabalInstallGhcjs}/bin/cabal-js update + PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ + env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --init --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib ''; meta = { homepage = "https://github.com/ghcjs/ghcjs"; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 46aac09b50c7..53816711893f 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -845,7 +845,6 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcjs = callPackage ../development/tools/haskell/ghcjs { Cabal = self.Cabal_1_18_1_3; - cabalInstall = self.cabalInstallGhcjs; }; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; From 50275ff2ee25dd9e9fda2cb472f6a72a97410975 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Sat, 5 Jul 2014 17:08:41 -0400 Subject: [PATCH 006/175] Make the version number match the cabal file's version number. This is necessary because otherwise the linker flags given at pkgs/build-support/cabal/default.nix:201-203 are ineffective, which causes the built binary to be unable to find its .so file at runtime. This appears to only affect executables that are built in the same cabal package as the library they require. --- pkgs/development/tools/haskell/ghcjs/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index be12c31b91d3..65d68a5089fb 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -11,7 +11,7 @@ cabal.mkDerivation (self: rec { pname = "ghcjs"; - version = "c9ce6b9d"; + version = "0.1.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84"; From df0e96175cd75f8b0490edee4519de711d9511ef Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Thu, 21 Aug 2014 14:56:04 -0400 Subject: [PATCH 007/175] ghcjs is mostly working. --- pkgs/build-support/cabal/ghcjs.nix | 279 ++++++++++++++++++ pkgs/development/compilers/ghcjs/wrapper.nix | 77 +++++ .../libraries/haskell/derive/default.nix | 4 +- .../libraries/haskell/old-time/1.1.0.2.nix | 12 + .../tools/haskell/Cabal-ghcjs/default.nix | 2 +- pkgs/development/tools/misc/cpphs/default.nix | 4 +- pkgs/top-level/haskell-defaults.nix | 91 +++++- pkgs/top-level/haskell-packages.nix | 8 +- 8 files changed, 463 insertions(+), 14 deletions(-) create mode 100644 pkgs/build-support/cabal/ghcjs.nix create mode 100644 pkgs/development/compilers/ghcjs/wrapper.nix create mode 100644 pkgs/development/libraries/haskell/old-time/1.1.0.2.nix diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix new file mode 100644 index 000000000000..346165571d75 --- /dev/null +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -0,0 +1,279 @@ +# generic builder for Cabal packages + +{ stdenv, fetchurl, lib, pkgconfig, ghcjs, ghc, Cabal, jailbreakCabal, glibcLocales +, gnugrep, coreutils, hscolour # hscolour is unused +, enableLibraryProfiling ? false +, enableSharedLibraries ? false +, enableSharedExecutables ? false +, enableStaticLibraries ? true +, enableCheckPhase ? stdenv.lib.versionOlder "7.4" ghc.version +, enableHyperlinkSource ? false +, extension ? (self : super : {}) +}: + +let + enableFeature = stdenv.lib.enableFeature; + versionOlder = stdenv.lib.versionOlder; + optional = stdenv.lib.optional; + optionals = stdenv.lib.optionals; + optionalString = stdenv.lib.optionalString; + filter = stdenv.lib.filter; +in + +builtins.trace (ghc.parent.CabalGhcjs.version or null) { + mkDerivation = + args : # arguments for the individual package, can modify the defaults + let # These attributes are removed in the end. This is in order not to spoil the build + # environment overly, but also to keep hash-backwards-compatible with the old cabal.nix. + internalAttrs = [ + "internalAttrs" "buildDepends" "buildTools" "extraLibraries" "pkgconfigDepends" + "isLibrary" "isExecutable" "testDepends" + ]; + + # Stuff happening after the user preferences have been processed. We remove + # internal attributes and strip null elements from the dependency lists, all + # in the interest of keeping hashes stable. + postprocess = + x : (removeAttrs x internalAttrs) // { + buildInputs = filter (y : ! (y == null)) x.buildInputs; + propagatedBuildInputs = filter (y : ! (y == null)) x.propagatedBuildInputs; + propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs; + doCheck = enableCheckPhase && x.doCheck; + hyperlinkSource = enableHyperlinkSource && x.hyperlinkSource; + }; + + defaults = + self : { # self is the final version of the attribute set + + # pname should be defined by the client to be the package basename + # version should be defined by the client to be the package version + + # fname is the internal full name of the package + fname = "${self.pname}-${self.version}"; + + # name is the external full name of the package; usually we prefix + # all packages with haskell- to avoid name clashes for libraries; + # if that is not desired (for applications), name can be set to + # fname. + name = if self.isLibrary then + if enableLibraryProfiling && self.enableSharedLibraries then + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}-profiling-shared" + else if enableLibraryProfiling && !self.enableSharedLibraries then + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}-profiling" + else if !enableLibraryProfiling && self.enableSharedLibraries then + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}-shared" + else + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}" + else + "${self.pname}-${self.version}"; + + # the default download location for Cabal packages is Hackage, + # you still have to specify the checksum + src = fetchurl { + url = "mirror://hackage/${self.pname}/${self.fname}.tar.gz"; + inherit (self) sha256; + }; + + # default buildInputs are just ghc, if more buildInputs are required + # buildInputs can be extended by the client by using extraBuildInputs, + # but often propagatedBuildInputs is preferable anyway + buildInputs = [ghc ghc.ghc.parent.CabalGhcjs] ++ self.extraBuildInputs; + extraBuildInputs = self.buildTools ++ + (optionals self.doCheck self.testDepends) ++ + (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++ + (if self.isLibrary then [] else self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends); + + # we make sure that propagatedBuildInputs is defined, so that we don't + # have to check for its existence + propagatedBuildInputs = if self.isLibrary then self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends else []; + + # By default, also propagate all dependencies to the user environment. This is required, otherwise packages would be broken, because + # GHC also needs all dependencies to be available. + propagatedUserEnvPkgs = if self.isLibrary then self.buildDepends else []; + + # library directories that have to be added to the Cabal files + extraLibDirs = []; + + # build-depends Cabal field + buildDepends = []; + + # target(s) passed to the cabal build phase as an argument + buildTarget = ""; + + # build-depends Cabal fields stated in test-suite stanzas + testDepends = []; + + # target(s) passed to the cabal test phase as an argument + testTarget = ""; + + # build-tools Cabal field + buildTools = []; + + # extra-libraries Cabal field + extraLibraries = []; + + # pkgconfig-depends Cabal field + pkgconfigDepends = []; + + isLibrary = ! self.isExecutable; + isExecutable = false; + + # ignore version restrictions on the build inputs that the cabal file might specify + jailbreak = false; + + # pass the '--enable-split-objs' flag to cabal in the configure stage + enableSplitObjs = false; # !stdenv.isDarwin; # http://hackage.haskell.org/trac/ghc/ticket/4013 + + # pass the '--enable-tests' flag to cabal in the configure stage + # and run any regression test suites the package might have + doCheck = false; #enableCheckPhase; + + # pass the '--hyperlink-source' flag to ./Setup haddock + hyperlinkSource = enableHyperlinkSource; + + # abort the build if the configure phase detects that the package + # depends on multiple versions of the same build input + strictConfigurePhase = true; + + # pass the '--enable-library-vanilla' flag to cabal in the + # configure stage to enable building shared libraries + inherit enableStaticLibraries; + + # pass the '--enable-shared' flag to cabal in the configure + # stage to enable building shared libraries + inherit enableSharedLibraries; + + # pass the '--enable-executable-dynamic' flag to cabal in + # the configure stage to enable linking shared libraries + inherit enableSharedExecutables; + + extraConfigureFlags = [ + (enableFeature self.enableSplitObjs "split-objs") + (enableFeature enableLibraryProfiling "library-profiling") + (enableFeature true "shared") + (optional (versionOlder "7" ghc.version) (enableFeature self.enableStaticLibraries "library-vanilla")) + (optional (versionOlder "7.4" ghc.version) (enableFeature self.enableSharedExecutables "executable-dynamic")) + (optional (versionOlder "7" ghc.version) (enableFeature self.doCheck "tests")) + ]; + + # GHC needs the locale configured during the Haddock phase. + LANG = "en_US.UTF-8"; + LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive"; + + # compiles Setup and configures + configurePhase = '' + set -x + eval "$preConfigure" + + ${optionalString self.jailbreak "${ghc.ghc.parent.jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal"} + + PATH=$PATH:${ghc.ghc.ghc}/bin + + for i in Setup.hs Setup.lhs; do + test -f $i && ghc --make $i + done + + for p in $extraBuildInputs $propagatedBuildInputs $propagatedNativeBuildInputs; do + PkgDir="$p/lib/ghcjs-${ghc.ghc.version}_ghc-${ghc.ghc.ghc.version}/package.conf.d" + if [ -f "$PkgDir/package.cache" ]; then + extraConfigureFlags+=" --package-db=$PkgDir" + continue; + fi + if [ -d "$p/include" ]; then + extraConfigureFlags+=" --extra-include-dirs=$p/include" + fi + for d in lib{,64}; do + if [ -d "$p/$d" ]; then + extraConfigureFlags+=" --extra-lib-dirs=$p/$d" + fi + done + done + + configureFlags+=" --package-db=/nix/store/a68nrd3slc39pgl4s3n485s6nfk3mnbi-haskell-ghcjs-ghc7.8.2-0.1.0-shared/share/ghcjs/x86_64-linux-0.1.0-7.8.2/package.conf.d" + + ${optionalString (self.enableSharedExecutables && self.stdenv.isLinux) '' + configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}"; + ''} + ${optionalString (self.enableSharedExecutables && self.stdenv.isDarwin) '' + configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names"; + ''} + + echo "configure flags: $extraConfigureFlags $configureFlags" + ./Setup configure --ghcjs --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \ + --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \ + ${optionalString self.strictConfigurePhase '' + | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log" + if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then + echo >&2 "*** abort because of serious configure-time warning from Cabal" + exit 1 + fi + ''} + + eval "$postConfigure" + ''; + + # builds via Cabal + buildPhase = '' + eval "$preBuild" + + ./Setup build ${self.buildTarget} + + export GHC_PACKAGE_PATH=$(${ghc.GHCPackages}) + #test -n "$noHaddock" || ./Setup haddock --html --hoogle \ + # ${optionalString self.hyperlinkSource "--hyperlink-source"} + + eval "$postBuild" + ''; + + checkPhase = optional self.doCheck '' + eval "$preCheck" + + ./Setup test ${self.testTarget} + + eval "$postCheck" + ''; + + # installs via Cabal; creates a registration file for nix-support + # so that the package can be used in other Haskell-builds; also + # adds all propagated build inputs to the user environment packages + installPhase = '' + eval "$preInstall" + + ./Setup copy + + ensureDir $out/bin # necessary to get it added to PATH + + local confDir=$out/lib/ghcjs-${ghc.ghc.version}_ghc-${ghc.ghc.ghc.version}/package.conf.d + local installedPkgConf=$confDir/${self.fname}.installedconf + local pkgConf=$confDir/${self.fname}.conf + ensureDir $confDir + ./Setup register --gen-pkg-config=$pkgConf + if test -f $pkgConf; then + echo '[]' > $installedPkgConf + GHC_PACKAGE_PATH=$installedPkgConf ghcjs-pkg --global register $pkgConf --force --package-db=$confDir || true + ghcjs-pkg recache --package-db=$confDir + fi + + if test -f $out/nix-support/propagated-native-build-inputs; then + ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages + fi + + ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) '' + for exe in $out/bin/* ; do + install_name_tool -add_rpath \ + $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe + done + ''} + + eval "$postInstall" + ''; + + # We inherit stdenv and ghc so that they can be used + # in Cabal derivations. + inherit stdenv ghc; + }; + in + stdenv.mkDerivation (postprocess (let super = defaults self // args self; + self = super // extension self super; + in self)); +} diff --git a/pkgs/development/compilers/ghcjs/wrapper.nix b/pkgs/development/compilers/ghcjs/wrapper.nix new file mode 100644 index 000000000000..fa1336fec27b --- /dev/null +++ b/pkgs/development/compilers/ghcjs/wrapper.nix @@ -0,0 +1,77 @@ +{ stdenv, ghc, makeWrapper, coreutils, writeScript }: +let + ghcjs = ghc; + packageDBFlag = "-package-db"; + + GHCGetPackages = writeScript "ghc-get-packages.sh" '' + #! ${stdenv.shell} + # Usage: + # $1: version of GHC + # $2: invocation path of GHC + # $3: prefix + version="$1" + if test -z "$3"; then + prefix="${packageDBFlag} " + else + prefix="$3" + fi + PATH="$PATH:$2" + IFS=":" + for p in $PATH; do + for i in "$p/../share/ghcjs/$system-${ghcjs.version}-${ghcjs.ghc.version}"{,/lib}"/package.conf.d" "$p/../lib/ghcjs-${ghc.version}_ghc-${ghc.ghc.version}/package.conf.d" ; do + # output takes place here + test -f $i/package.cache && echo -n " $prefix$i" + done + done + ''; + + GHCPackages = writeScript "ghc-packages.sh" '' + #! ${stdenv.shell} -e + declare -A GHC_PACKAGES_HASH # using bash4 hashs to get uniq paths + + for arg in $(${GHCGetPackages} ${ghcjs.version} "$(dirname $0)"); do # Why is ghc.version passed in from here instead of captured in the other script directly? + case "$arg" in + ${packageDBFlag}) ;; + *) + CANONICALIZED="$(${coreutils}/bin/readlink -f -- "$arg")" + GHC_PACKAGES_HASH["$CANONICALIZED"]= ;; + esac + done + + for path in ''${!GHC_PACKAGES_HASH[@]}; do + echo -n "$path:" + done + ''; +in +stdenv.mkDerivation { + name = "ghcjs-ghc${ghcjs.ghc.version}-${ghcjs.version}-wrapper"; + + buildInputs = [makeWrapper]; + propagatedBuildInputs = [ghcjs]; + + unpackPhase = "true"; + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + for prg in ghcjs ; do + makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$(${GHCGetPackages} ${ghcjs.version} \"\$(dirname \$0)\")" + done + for prg in ghcjs-pkg ; do + makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$(${GHCGetPackages} ${ghcjs.version} \"\$(dirname \$0)\" -${packageDBFlag}=)" + done + + mkdir -p $out/nix-support + ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages + + mkdir -p $out/share/doc + ln -s $ghc/lib $out/lib + ln -s $ghc/share/doc/ghc $out/share/doc/ghc-${ghcjs.version} + + runHook postInstall + ''; + + ghc = ghcjs; + inherit GHCGetPackages GHCPackages; + inherit (ghcjs) meta version; +} diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix index 5dba1b6af561..1f8584a02776 100644 --- a/pkgs/development/libraries/haskell/derive/default.nix +++ b/pkgs/development/libraries/haskell/derive/default.nix @@ -1,4 +1,4 @@ -{ cabal, filepath, haskellSrcExts, syb, transformers, uniplate }: +{ cabal, process, filepath, haskellSrcExts, syb, transformers, uniplate }: cabal.mkDerivation (self: { pname = "derive"; @@ -7,7 +7,7 @@ cabal.mkDerivation (self: { isLibrary = true; isExecutable = true; buildDepends = [ - filepath haskellSrcExts syb transformers uniplate + process filepath haskellSrcExts syb transformers uniplate ]; meta = { homepage = "http://community.haskell.org/~ndm/derive/"; diff --git a/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix b/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix new file mode 100644 index 000000000000..eab8e3e5c631 --- /dev/null +++ b/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix @@ -0,0 +1,12 @@ +{ cabal }: + +cabal.mkDerivation (self: { + pname = "old-time"; + version = "1.1.0.2"; + sha256 = "1nrqbpwxsmga13gcyn7bg25gkm61fmix07gm76d1f1i4impgqw1r"; + meta = { + description = "Time library"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix index db0447030f0d..6613adba19c6 100644 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -4,7 +4,7 @@ }: cabal.mkDerivation (self: { - pname = "Cabal-ghcjs"; + pname = "Cabal"; version = "9e87d6a3"; src = fetchgit { url = git://github.com/ghcjs/cabal.git; diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index 72a6571f3ccf..ce6042de7fa7 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -1,4 +1,4 @@ -{ cabal, polyparse }: +{ cabal, polyparse, oldTime }: cabal.mkDerivation (self: { pname = "cpphs"; @@ -6,7 +6,7 @@ cabal.mkDerivation (self: { sha256 = "0rmcq66wn7lsc5g1wk6bbsr7jiw8h6bz5cbvdywnv7vmwsx8gh51"; isLibrary = true; isExecutable = true; - buildDepends = [ polyparse ]; + buildDepends = [ oldTime polyparse ]; meta = { homepage = "http://projects.haskell.org/cpphs/"; description = "A liberalised re-implementation of cpp, the C pre-processor"; diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index bd447aed0652..6d58eee927e9 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -135,20 +135,23 @@ # Abstraction for Haskell packages collections packagesFun = makeOverridable - ({ ghcPath + ({ ghcPath ? null + , ghc ? callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs) , ghcBinary ? ghc6101Binary , prefFun , extension ? (self : super : {}) , profExplicit ? false, profDefault ? false , modifyPrio ? lowPrio , extraArgs ? {} + , cabalPackage ? import ../build-support/cabal + , ghcWrapperPackage ? import ../development/compilers/ghc/wrapper.nix } : let haskellPackagesClass = import ./haskell-packages.nix { - inherit pkgs newScope modifyPrio; + inherit pkgs newScope modifyPrio cabalPackage ghcWrapperPackage; enableLibraryProfiling = if profExplicit then profDefault else config.cabal.libraryProfiling or profDefault; - ghc = callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs); + inherit ghc; }; haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super; haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super; @@ -214,9 +217,85 @@ }; }; - packages_ghcjs = packages_ghc782 // { - ghc = ../development/tools/haskell/ghcjs; - }; + packages_ghcjs = + let parent = packages_ghc782.override { + extension = self: super: { + Cabal = packages_ghc782.CabalGhcjs; + }; + }; + in packages { + ghc = parent.ghcjs // { inherit parent; }; + cabalPackage = import ../build-support/cabal/ghcjs.nix; + ghcWrapperPackage = import ../development/compilers/ghcjs/wrapper.nix; + prefFun = self : super : super // { + # This is the list of packages that are built into a booted ghcjs installation +# Cabal_1_19_2 = null; +# Cabal = self.Cabal_1_19_2; + Cabal = packages_ghc782.CabalGhcjs; + aeson_0_7_0_4 = null; + aeson = self.aeson_0_7_0_4; + array_0_5_0_0 = null; + array = self.array_0_5_0_0; + attoparsec_0_11_3_1 = null; + attoparsec = self.attoparsec_0_11_3_1; + base_4_7_0_0 = null; + base = self.base_4_7_0_0; + bytestring_0_10_4_0 = null; + bytestring = self.bytestring_0_10_4_0; + containers_0_5_5_1 = null; + containers = self.containers_0_5_5_1; + deepseq_1_3_0_2 = null; + deepseq = self.deepseq_1_3_0_2; + directory_1_2_1_0 = null; + directory = self.directory_1_2_1_0; + dlist_0_7_1 = null; + dlist = self.dlist_0_7_1; + filepath_1_3_0_2 = null; + filepath = self.filepath_1_3_0_2; + ghcPrim_0_3_1_0 = null; + ghcPrim = self.ghcPrim_0_3_1_0; + ghcjsBase_0_1_0_0 = null; + ghcjsBase = self.ghcjsBase_0_1_0_0; + ghcjsPrim_0_1_0_0 = null; + ghcjsPrim = self.ghcjsPrim_0_1_0_0; + hashable_1_2_1_0 = null; + hashable = self.hashable_1_2_1_0; + integerGmp_0_5_1_0 = null; + integerGmp = self.integerGmp_0_5_1_0; + mtl_2_1_3_1 = null; + mtl = self.mtl_2_1_3_1; + oldLocale_1_0_0_6 = null; + oldLocale = self.oldLocale_1_0_0_6; + pretty_1_1_1_1 = null; + pretty = self.pretty_1_1_1_1; + primitive_0_5_3_0 = null; + primitive = self.primitive_0_5_3_0; + # process_1_2_0_0 = null; + # process = self.process_1_2_0_0; + scientific_0_2_0_2 = null; + scientific = self.scientific_0_2_0_2; + syb_0_4_2 = null; + syb = self.syb_0_4_2; + templateHaskell_2_9_0_0 = null; + templateHaskell = self.templateHaskell_2_9_0_0; + text_1_1_1_3 = null; + text = self.text_1_1_1_3; + time_1_4_2 = null; + time = self.time_1_4_2; + transformers_0_3_0_0 = null; + transformers = self.transformers_0_3_0_0; + unix_2_7_0_1 = null; + unix = self.unix_2_7_0_1; + unorderedContainers_0_2_5_0 = null; + unorderedContainers = self.unorderedContainers_0_2_5_0; + vector_0_10_11_0 = null; + vector = self.vector_0_10_11_0; + # These are necessary for compatibility with ghcjs's default libs + transformersCompat = self.transformersCompat_0_3_3; + oldTime = self.oldTime_1_1_0_2; + process = self.process_1_2_0_0; # ghcjs-boot seems to install process incorrectly, for some reason, so reinstall it + }; + }; packages_ghc782 = packages { ghcPath = ../development/compilers/ghc/7.8.2.nix; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 53816711893f..f0f561c9c967 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -43,7 +43,7 @@ # # For most packages, however, we keep only one version, and use default.nix. -{ pkgs, newScope, ghc, modifyPrio ? (x : x) +{ pkgs, newScope, ghc, cabalPackage, ghcWrapperPackage, modifyPrio ? (x : x) , enableLibraryProfiling ? false , enableSharedLibraries ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version , enableSharedExecutables ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version @@ -74,7 +74,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # refers to the function argument at the # top of this file. - ghc = callPackage ../development/compilers/ghc/wrapper.nix { + ghc = callPackage ghcWrapperPackage { ghc = ghc; # refers to ghcPlain }; @@ -94,7 +94,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # This is the Cabal builder, the function we use to build most Haskell # packages. It isn't the Cabal library, which is spelled "Cabal". - cabal = callPackage ../build-support/cabal { + cabal = callPackage cabalPackage { Cabal = null; # prefer the Cabal version shipped with the compiler hscolour = self.hscolourBootstrap; inherit enableLibraryProfiling enableCheckPhase @@ -2673,6 +2673,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cake3 = callPackage ../development/tools/haskell/cake3 {}; + oldTime_1_1_0_2 = callPackage ../development/libraries/haskell/old-time/1.1.0.2.nix {}; + oldTime = null; # By default, use the built-in old-time library cpphs = callPackage ../development/tools/misc/cpphs {}; DrIFT = callPackage ../development/tools/haskell/DrIFT {}; From 6142b27760b8bf1767a50ccdc398b561e824e40e Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Sat, 23 Aug 2014 15:00:13 -0400 Subject: [PATCH 008/175] ghcjs working. --- pkgs/build-support/cabal/ghcjs.nix | 2 +- pkgs/development/compilers/ghcjs/0.1.0.nix | 72 ++++++++++++ pkgs/development/compilers/ghcjs/wrapper.nix | 2 +- .../libraries/haskell/ghcjs-dom/default.nix | 11 +- .../haskell/lens/{default.nix => 4.2.nix} | 0 .../libraries/haskell/lens/4.4.nix | 32 ++++++ .../haskell/transformers-compat/0.3.3.3.nix | 14 +++ .../tools/haskell/Cabal-ghcjs/default.nix | 4 +- .../haskell/cabal-install-ghcjs/default.nix | 7 +- .../tools/haskell/ghcjs/default.nix | 57 +++++++--- pkgs/top-level/haskell-defaults.nix | 106 +++++++++++++----- pkgs/top-level/haskell-packages.nix | 11 +- 12 files changed, 260 insertions(+), 58 deletions(-) create mode 100644 pkgs/development/compilers/ghcjs/0.1.0.nix rename pkgs/development/libraries/haskell/lens/{default.nix => 4.2.nix} (100%) create mode 100644 pkgs/development/libraries/haskell/lens/4.4.nix create mode 100644 pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 346165571d75..df356b6ac991 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -189,7 +189,7 @@ builtins.trace (ghc.parent.CabalGhcjs.version or null) { done done - configureFlags+=" --package-db=/nix/store/a68nrd3slc39pgl4s3n485s6nfk3mnbi-haskell-ghcjs-ghc7.8.2-0.1.0-shared/share/ghcjs/x86_64-linux-0.1.0-7.8.2/package.conf.d" + configureFlags+=" --package-db=${ghc.ghc}/share/ghcjs/x86_64-linux-0.1.0-7.8.2/ghcjs/package.conf.d" ${optionalString (self.enableSharedExecutables && self.stdenv.isLinux) '' configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}"; diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix new file mode 100644 index 000000000000..65d68a5089fb --- /dev/null +++ b/pkgs/development/compilers/ghcjs/0.1.0.nix @@ -0,0 +1,72 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm +, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time +, zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2 +, parallel, safe, shelly, split, stringsearch, syb, systemFileio +, systemFilepath, tar, terminfo, textBinary, unorderedContainers +, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall +, regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch +, automake, libtool, cabalInstallGhcjs, gmp +}: + +cabal.mkDerivation (self: rec { + pname = "ghcjs"; + version = "0.1.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs.git; + rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84"; + sha256 = "0cla5bchprc8g5n39fkssnv3lj378h948irsnr7dslaki6laaagw"; + }; + bootSrc = fetchgit { + url = git://github.com/ghcjs/ghcjs-boot.git; + rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81"; + sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8"; + }; + shims = fetchgit { + url = git://github.com/ghcjs/shims.git; + rev = "a6dd0202dcdb86ad63201495b8b5d9763483eb35"; + sha256 = "07cd7ijw4i62iz1xjpwilriiybpqdx246w8d3j27ny1xfsj9wnax"; + }; + isLibrary = true; + isExecutable = true; + jailbreak = true; + noHaddock = true; + buildDepends = [ + filepath HTTP mtl network random stm time zlib aeson attoparsec + bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta + lens optparseApplicative_0_7_0_2 parallel safe shelly split + stringsearch syb systemFileio systemFilepath tar terminfo textBinary + unorderedContainers vector wlPprintText yaml + alex happy git gnumake gcc autoconf automake libtool patch gmp + ]; + testDepends = [ + HUnit regexPosix testFramework testFrameworkHunit + ]; + postConfigure = '' + echo Patching ghcjs with absolute paths to the Nix store + sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \ + src/Compiler/Info.hs + sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ + src-bin/Boot.hs + ''; + postInstall = '' + export HOME=$(pwd) + cp -R ${bootSrc} ghcjs-boot + cd ghcjs-boot + ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) + chmod -R u+w . # because fetchgit made it read-only + local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 + ensureDir $GHCJS_LIBDIR + cp -R ${shims} $GHCJS_LIBDIR/shims + ${cabalInstallGhcjs}/bin/cabal-js update + PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ + env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --init --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib + ''; + meta = { + homepage = "https://github.com/ghcjs/ghcjs"; + description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.jwiegley ]; + }; +}) diff --git a/pkgs/development/compilers/ghcjs/wrapper.nix b/pkgs/development/compilers/ghcjs/wrapper.nix index fa1336fec27b..751b7d9a7de7 100644 --- a/pkgs/development/compilers/ghcjs/wrapper.nix +++ b/pkgs/development/compilers/ghcjs/wrapper.nix @@ -18,7 +18,7 @@ let PATH="$PATH:$2" IFS=":" for p in $PATH; do - for i in "$p/../share/ghcjs/$system-${ghcjs.version}-${ghcjs.ghc.version}"{,/lib}"/package.conf.d" "$p/../lib/ghcjs-${ghc.version}_ghc-${ghc.ghc.version}/package.conf.d" ; do + for i in "$p/../share/ghcjs/$system-${ghcjs.version}-${ghcjs.ghc.version}"{,/lib,/ghcjs}"/package.conf.d" "$p/../lib/ghcjs-${ghc.version}_ghc-${ghc.ghc.version}/package.conf.d" ; do # output takes place here test -f $i/package.cache && echo -n " $prefix$i" done diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index 7ea85f2cb1f5..b30bd4ff18b5 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -1,9 +1,14 @@ -{ cabal, ghcjsBase, mtl }: +{ cabal, fetchgit, ghcjsBase, mtl }: cabal.mkDerivation (self: { pname = "ghcjs-dom"; - version = "0.0.10"; - sha256 = "0xffr197m6qam4q7ckgcwl0v9kwrxa5fm894c9vyxdmlcjyn38rm"; + version = "0.1.0.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs-dom.git; + rev = "81805e75ccd41501774b90c04efd9e00d52e9798"; + sha256 = "3aa56fb81974533661aa056ed080edab29bef8ab26dae61999de4452f95949f6"; + }; + buildDepends = [ ghcjsBase mtl ]; meta = { description = "DOM library that supports both GHCJS and WebKitGTK"; diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/4.2.nix similarity index 100% rename from pkgs/development/libraries/haskell/lens/default.nix rename to pkgs/development/libraries/haskell/lens/4.2.nix diff --git a/pkgs/development/libraries/haskell/lens/4.4.nix b/pkgs/development/libraries/haskell/lens/4.4.nix new file mode 100644 index 000000000000..3c05c94129eb --- /dev/null +++ b/pkgs/development/libraries/haskell/lens/4.4.nix @@ -0,0 +1,32 @@ +{ cabal, bifunctors, comonad, contravariant, deepseq, distributive +, doctest, exceptions, filepath, free, genericDeriving, hashable +, hlint, HUnit, mtl, nats, parallel, primitive, profunctors +, QuickCheck, reflection, semigroupoids, semigroups, simpleReflect +, split, tagged, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, testFrameworkTh, text, transformers +, transformersCompat, unorderedContainers, vector, void, zlib +}: + +cabal.mkDerivation (self: { + pname = "lens"; + version = "4.4"; + sha256 = "06ha4px4ywfbi0n3imy2qqjq3656snsz1b0ggkwzvdzmi550sh8w"; + buildDepends = [ + bifunctors comonad contravariant distributive exceptions filepath + free hashable mtl parallel primitive profunctors reflection + semigroupoids semigroups split tagged text transformers + transformersCompat unorderedContainers vector void zlib + ]; + testDepends = [ + deepseq doctest filepath genericDeriving hlint HUnit mtl nats + parallel QuickCheck semigroups simpleReflect split testFramework + testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text + transformers unorderedContainers vector + ]; + meta = { + homepage = "http://github.com/ekmett/lens/"; + description = "Lenses, Folds and Traversals"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix b/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix new file mode 100644 index 000000000000..c0343aa6be79 --- /dev/null +++ b/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix @@ -0,0 +1,14 @@ +{ cabal, transformers }: + +cabal.mkDerivation (self: { + pname = "transformers-compat"; + version = "0.3.3.3"; + sha256 = "18cqghf0gc97j9qnlfnwwhvfm8j4sk99rm0xv3bf6ml8slk7njx7"; + buildDepends = [ transformers ]; + meta = { + homepage = "http://github.com/ekmett/transformers-compat/"; + description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix index 6613adba19c6..16c355a5c996 100644 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { version = "9e87d6a3"; src = fetchgit { url = git://github.com/ghcjs/cabal.git; - rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78"; - sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj"; + rev = "520591876ee57dbecba1b2de602dc79f4f67ecce"; # Must be from the ghcjs branch + sha256 = "f59182661707c65a2a014aa91b5e0d53cbefb6c999c1982757f476619b6728c0"; }; preConfigure = "cd Cabal"; configureFlags = "--program-suffix=-js"; diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix index 9102c77f2f68..4fde997fc4c8 100644 --- a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix @@ -6,13 +6,10 @@ cabal.mkDerivation (self: { pname = "cabal-install-ghcjs"; version = "9e87d6a3"; - src = fetchgit { - url = git://github.com/ghcjs/cabal.git; - rev = "9e87d6a39ec63f569fea899fc1ace332ea7eea78"; - sha256 = "07bgsqzmiqzw14i91y5nmk5m9sqnxn503xzv2jan5g33z1vcwdcj"; - }; + src = CabalGhcjs.src; isLibrary = true; isExecutable = true; + doCheck = false; configureFlags = "--program-suffix=-js"; preConfigure = "cd cabal-install"; buildDepends = [ diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 65d68a5089fb..4feffcd7f4c4 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -1,44 +1,72 @@ -{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm +{ nodejs, cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time , zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2 +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch -, automake, libtool, cabalInstallGhcjs, gmp +, automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring +, cryptohash, executablePath, transformersCompat +, haddock, hspec, xhtml, primitive }: - cabal.mkDerivation (self: rec { pname = "ghcjs"; version = "0.1.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84"; - sha256 = "0cla5bchprc8g5n39fkssnv3lj378h948irsnr7dslaki6laaagw"; + rev = "fd034b7e6fb61120d22f1c314398f37a673b8b1d"; + sha256 = "0182bb706cc263a6d268eb61e243214186abae7b81dec420187c858e989c4dba"; }; +/* bootSrc = fetchgit { url = git://github.com/ghcjs/ghcjs-boot.git; - rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81"; - sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8"; + rev = "f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9"; + sha256 = "83f1706bcf7e666f6fb6dee455517e0efb019aabd1393f444c80169f04b9d3b8"; }; +*/ shims = fetchgit { url = git://github.com/ghcjs/shims.git; - rev = "a6dd0202dcdb86ad63201495b8b5d9763483eb35"; - sha256 = "07cd7ijw4i62iz1xjpwilriiybpqdx246w8d3j27ny1xfsj9wnax"; + rev = "dc5bb54778f3dbba4b463f4f7df5f830f14d1cb6"; + sha256 = "fcef2879df0735b1011a8642a7c3e0e3f39b7d395830b91a992658f4ff67c9ce"; }; isLibrary = true; isExecutable = true; jailbreak = true; noHaddock = true; + haddockInternal = cabal.mkDerivation (self: { + pname = "haddock-internal"; + version = "2.14.3"; + src = fetchgit { + url = git://github.com/ghcjs/haddock-internal.git; + rev = "47758773d6b20c395a1c76a93830070fde71dbab"; + sha256 = "df1a024631b7781fcbda09d2b33a56650959b8ab6c831151b456133226ab90b2"; + }; + buildDepends = [ QuickCheck ghcPaths haddock hspec xhtml ]; # Can't specify Cabal here, or it ends up being the wrong version + doCheck = false; + }); + ghcjsPrim = cabal.mkDerivation (self: { + pname = "ghcjs-prim"; + version = "0.1.0.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs-prim.git; + rev = "659d6ceb45b1b8ef526c7451d90afff80d76e2f5"; + sha256 = "55b64d93cdc8220042a35ea12f8c53e82f78b51bc0f87ddd12300ad56e4b7ba7"; + }; + buildDepends = [ primitive ]; + }); buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative_0_7_0_2 parallel safe shelly split + lens optparseApplicative parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp + base16Bytestring cryptohash executablePath haddockInternal + transformersCompat QuickCheck haddock hspec xhtml + ghcjsPrim ]; + buildTools = [ nodejs git ]; testDepends = [ HUnit regexPosix testFramework testFrameworkHunit ]; @@ -51,8 +79,11 @@ cabal.mkDerivation (self: rec { ''; postInstall = '' export HOME=$(pwd) - cp -R ${bootSrc} ghcjs-boot + export GIT_SSL_CAINFO=/etc/ssl/certs/ca-bundle.crt + git clone git://github.com/ghcjs/ghcjs-boot.git cd ghcjs-boot + git checkout f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9 + git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 @@ -60,7 +91,7 @@ cabal.mkDerivation (self: rec { cp -R ${shims} $GHCJS_LIBDIR/shims ${cabalInstallGhcjs}/bin/cabal-js update PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ - env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --init --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib + env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --dev --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib ''; meta = { homepage = "https://github.com/ghcjs/ghcjs"; diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 6d58eee927e9..defd7bfa54d5 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -221,6 +221,10 @@ let parent = packages_ghc782.override { extension = self: super: { Cabal = packages_ghc782.CabalGhcjs; + transformersCompat = super.transformersCompat_0_3_3_3; + haddock = super.haddock.override { + Cabal = null; + }; }; }; in packages { @@ -229,27 +233,38 @@ ghcWrapperPackage = import ../development/compilers/ghcjs/wrapper.nix; prefFun = self : super : super // { # This is the list of packages that are built into a booted ghcjs installation -# Cabal_1_19_2 = null; -# Cabal = self.Cabal_1_19_2; - Cabal = packages_ghc782.CabalGhcjs; - aeson_0_7_0_4 = null; - aeson = self.aeson_0_7_0_4; + # It can be generated with the command: + # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'" + Cabal_1_21_0_0 = null; + Cabal = self.Cabal_1_21_0_0; + aeson_0_8_0_0 = null; + aeson = self.aeson_0_8_0_0; array_0_5_0_0 = null; array = self.array_0_5_0_0; - attoparsec_0_11_3_1 = null; - attoparsec = self.attoparsec_0_11_3_1; - base_4_7_0_0 = null; - base = self.base_4_7_0_0; - bytestring_0_10_4_0 = null; - bytestring = self.bytestring_0_10_4_0; + async_2_0_1_5 = null; + async = self.async_2_0_1_5; + attoparsec_0_12_1_0 = null; + attoparsec = self.attoparsec_0_12_1_0; + base_4_7_0_1 = null; + base = self.base_4_7_0_1; + binary_0_7_2_1 = null; + binary = self.binary_0_7_2_1; + rts_1_0 = null; + rts = self.rts_1_0; + # bytestring_0_10_4_1 = null; + # bytestring = self.bytestring_0_10_4_1; + caseInsensitive_1_2_0_0 = null; + caseInsensitive = self.caseInsensitive_1_2_0_0; containers_0_5_5_1 = null; containers = self.containers_0_5_5_1; deepseq_1_3_0_2 = null; deepseq = self.deepseq_1_3_0_2; directory_1_2_1_0 = null; directory = self.directory_1_2_1_0; - dlist_0_7_1 = null; - dlist = self.dlist_0_7_1; + dlist_0_7_0_1 = null; + dlist = self.dlist_0_7_0_1; + extensibleExceptions_0_1_1_3 = null; + extensibleExceptions = self.extensibleExceptions_0_1_1_3; filepath_1_3_0_2 = null; filepath = self.filepath_1_3_0_2; ghcPrim_0_3_1_0 = null; @@ -258,42 +273,75 @@ ghcjsBase = self.ghcjsBase_0_1_0_0; ghcjsPrim_0_1_0_0 = null; ghcjsPrim = self.ghcjsPrim_0_1_0_0; - hashable_1_2_1_0 = null; - hashable = self.hashable_1_2_1_0; + hashable_1_2_2_0 = null; + hashable = self.hashable_1_2_2_0; integerGmp_0_5_1_0 = null; integerGmp = self.integerGmp_0_5_1_0; - mtl_2_1_3_1 = null; - mtl = self.mtl_2_1_3_1; + mtl_2_2_1 = null; + mtl = self.mtl_2_2_1; oldLocale_1_0_0_6 = null; oldLocale = self.oldLocale_1_0_0_6; + oldTime_1_1_0_2 = null; + oldTime = self.oldTime_1_1_0_2; + parallel_3_2_0_4 = null; + parallel = self.parallel_3_2_0_4; pretty_1_1_1_1 = null; pretty = self.pretty_1_1_1_1; primitive_0_5_3_0 = null; primitive = self.primitive_0_5_3_0; - # process_1_2_0_0 = null; - # process = self.process_1_2_0_0; - scientific_0_2_0_2 = null; - scientific = self.scientific_0_2_0_2; + process_1_2_0_0 = null; + process = self.process_1_2_0_0; + scientific_0_3_3_0 = null; + scientific = self.scientific_0_3_3_0; + stm_2_4_3 = null; + stm = self.stm_2_4_3; syb_0_4_2 = null; syb = self.syb_0_4_2; - templateHaskell_2_9_0_0 = null; - templateHaskell = self.templateHaskell_2_9_0_0; + # templateHaskell_2_9_0_0 = null; + # templateHaskell = self.templateHaskell_2_9_0_0; text_1_1_1_3 = null; text = self.text_1_1_1_3; time_1_4_2 = null; time = self.time_1_4_2; - transformers_0_3_0_0 = null; - transformers = self.transformers_0_3_0_0; + transformers_0_4_1_0 = null; + transformers = self.transformers_0_4_1_0; unix_2_7_0_1 = null; unix = self.unix_2_7_0_1; unorderedContainers_0_2_5_0 = null; unorderedContainers = self.unorderedContainers_0_2_5_0; vector_0_10_11_0 = null; vector = self.vector_0_10_11_0; - # These are necessary for compatibility with ghcjs's default libs - transformersCompat = self.transformersCompat_0_3_3; - oldTime = self.oldTime_1_1_0_2; - process = self.process_1_2_0_0; # ghcjs-boot seems to install process incorrectly, for some reason, so reinstall it + + # This is necessary because haskell-packages will refuse to generate tfRandom for this version of ghc (0.1.0) + #TODO: haskell-packages shouldn't use the ghcjs version as the ghc version + tfRandom = self.callPackage ../development/libraries/haskell/tf-random {}; + +/* + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? packages_ghc782.cabal2nix }: let + cabalExpr = pkgs.stdenv.mkDerivation ({ + name = "${name}.nix"; + + buildCommand = '' + ${cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ + | grep -v FILTERME | sed \ + -e 's/licenses.proprietary/licenses.unfree/' \ + -e 's/{ cabal/{ cabal, cabalInstall, cabalDrvArgs ? {}, src/' \ + -e 's/cabal.mkDerivation (self: {/cabal.mkDerivation (self: cabalDrvArgs \/\/ {/' \ + -e 's/buildDepends = \[/buildDepends = \[ cabalInstall/' \ + -e 's/pname = \([^\n]*\)/pname = \1\n inherit src;\n/' > $out + ''; + + } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { + LANG = "en_US.UTF-8"; + LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; + }); + in self.callPackage cabalExpr ({ inherit src cabalDrvArgs; } // args); +*/ + }; + extension = self: super: { + buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // { + cabal2nix = packages_ghc782.cabal2nix; + }); }; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index f0f561c9c967..4ca039d0d673 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -847,7 +847,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in Cabal = self.Cabal_1_18_1_3; }; - ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; + ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; @@ -1342,7 +1342,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in lazysmallcheck = callPackage ../development/libraries/haskell/lazysmallcheck {}; - lens = callPackage ../development/libraries/haskell/lens {}; + lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; + lens_4_4 = callPackage ../development/libraries/haskell/lens/4.4.nix {}; + lens = self.lens_4_4; lensDatetime = callPackage ../development/libraries/haskell/lens-datetime {}; @@ -2328,6 +2330,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in transformersBase = callPackage ../development/libraries/haskell/transformers-base {}; transformersCompat_0_3_3 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.nix {}; + transformersCompat_0_3_3_3 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.3.nix {}; transformersCompat_0_3_3_4 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.4.nix {}; transformersCompat = self.transformersCompat_0_3_3_4; @@ -2788,12 +2791,12 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabal2nix = callPackage ../development/tools/haskell/cabal2nix {}; # Build a cabal package given a local .cabal file - buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; } }: let + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix }: let cabalExpr = pkgs.stdenv.mkDerivation ({ name = "${name}.nix"; buildCommand = '' - ${self.cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ + ${cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ | grep -v FILTERME | sed \ -e 's/licenses.proprietary/licenses.unfree/' \ -e 's/{ cabal/{ cabal, cabalInstall, cabalDrvArgs ? {}, src/' \ From a5e6027ece5786f406622179ccceb43c7e83457a Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Sun, 24 Aug 2014 16:27:44 -0400 Subject: [PATCH 009/175] Get rid of debugging output. --- pkgs/build-support/cabal/ghcjs.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index df356b6ac991..d74c30180e29 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -20,7 +20,7 @@ let filter = stdenv.lib.filter; in -builtins.trace (ghc.parent.CabalGhcjs.version or null) { +{ mkDerivation = args : # arguments for the individual package, can modify the defaults let # These attributes are removed in the end. This is in order not to spoil the build @@ -162,7 +162,6 @@ builtins.trace (ghc.parent.CabalGhcjs.version or null) { # compiles Setup and configures configurePhase = '' - set -x eval "$preConfigure" ${optionalString self.jailbreak "${ghc.ghc.parent.jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal"} From 983af4a9213f75b0e8380d6e68fb7ead1f5d217f Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 25 Aug 2014 18:17:18 -0400 Subject: [PATCH 010/175] Use variables for ca-bundle.crt and GHCJS_LIBDIR. --- pkgs/development/tools/haskell/ghcjs/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 4feffcd7f4c4..55e3d5875e7b 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -8,7 +8,7 @@ , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch , automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring , cryptohash, executablePath, transformersCompat -, haddock, hspec, xhtml, primitive +, haddock, hspec, xhtml, primitive, cacert, pkgs, ghc }: cabal.mkDerivation (self: rec { pname = "ghcjs"; @@ -79,14 +79,14 @@ cabal.mkDerivation (self: rec { ''; postInstall = '' export HOME=$(pwd) - export GIT_SSL_CAINFO=/etc/ssl/certs/ca-bundle.crt + export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" git clone git://github.com/ghcjs/ghcjs-boot.git cd ghcjs-boot git checkout f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9 git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only - local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 + local GHCJS_LIBDIR=$out/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version} ensureDir $GHCJS_LIBDIR cp -R ${shims} $GHCJS_LIBDIR/shims ${cabalInstallGhcjs}/bin/cabal-js update From 1c9166f64999dc0a74c23574725bd62d4661e415 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 25 Aug 2014 18:46:52 -0400 Subject: [PATCH 011/175] Factor out ghcjs's libdir better. --- pkgs/build-support/cabal/ghcjs.nix | 2 +- pkgs/development/tools/haskell/ghcjs/default.nix | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index d74c30180e29..e6bc50f45169 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -188,7 +188,7 @@ in done done - configureFlags+=" --package-db=${ghc.ghc}/share/ghcjs/x86_64-linux-0.1.0-7.8.2/ghcjs/package.conf.d" + configureFlags+=" --package-db=${ghc.ghc}${ghc.ghc.libdir}/ghcjs/package.conf.d" ${optionalString (self.enableSharedExecutables && self.stdenv.isLinux) '' configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}"; diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 55e3d5875e7b..7602bf708115 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -77,6 +77,7 @@ cabal.mkDerivation (self: rec { sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ src-bin/Boot.hs ''; + libdir = "/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version}"; postInstall = '' export HOME=$(pwd) export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" @@ -86,7 +87,7 @@ cabal.mkDerivation (self: rec { git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only - local GHCJS_LIBDIR=$out/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version} + local GHCJS_LIBDIR=$out${libdir} ensureDir $GHCJS_LIBDIR cp -R ${shims} $GHCJS_LIBDIR/shims ${cabalInstallGhcjs}/bin/cabal-js update From 3e62d0b540c89257700c6f1dad73ad45d00316ba Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 25 Aug 2014 18:47:02 -0400 Subject: [PATCH 012/175] Fix buildLocalCabalWithArgs. --- pkgs/top-level/haskell-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 4ca039d0d673..acc04974488b 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2791,7 +2791,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabal2nix = callPackage ../development/tools/haskell/cabal2nix {}; # Build a cabal package given a local .cabal file - buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix }: let + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? self.cabal2nix }: let cabalExpr = pkgs.stdenv.mkDerivation ({ name = "${name}.nix"; From 4394858433510798decb891f2901c2a0f11a0eea Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Tue, 26 Aug 2014 13:35:29 -0400 Subject: [PATCH 013/175] Integrate ghcjs Use nixpkgs.haskellPackages_ghcjs to build packages with ghcjs. --- pkgs/build-support/cabal/ghcjs.nix | 278 ++++++++++++++++++ pkgs/development/compilers/ghcjs/0.1.0.nix | 72 +++++ pkgs/development/compilers/ghcjs/wrapper.nix | 77 +++++ .../libraries/haskell/derive/default.nix | 7 +- .../libraries/haskell/ghcjs-dom/default.nix | 13 +- .../haskell/lens/{default.nix => 4.2.nix} | 0 .../libraries/haskell/lens/4.4.nix | 32 ++ .../libraries/haskell/old-time/1.1.0.2.nix | 12 + .../libraries/haskell/text-binary/default.nix | 14 + .../haskell/transformers-compat/0.3.3.3.nix | 14 + .../tools/haskell/Cabal-ghcjs/default.nix | 42 +++ .../haskell/cabal-install-ghcjs/default.nix | 33 +++ .../tools/haskell/ghcjs/default.nix | 103 +++++++ pkgs/development/tools/misc/cpphs/default.nix | 7 +- pkgs/top-level/all-packages.nix | 1 + pkgs/top-level/haskell-defaults.nix | 139 ++++++++- pkgs/top-level/haskell-packages.nix | 38 ++- 17 files changed, 859 insertions(+), 23 deletions(-) create mode 100644 pkgs/build-support/cabal/ghcjs.nix create mode 100644 pkgs/development/compilers/ghcjs/0.1.0.nix create mode 100644 pkgs/development/compilers/ghcjs/wrapper.nix rename pkgs/development/libraries/haskell/lens/{default.nix => 4.2.nix} (100%) create mode 100644 pkgs/development/libraries/haskell/lens/4.4.nix create mode 100644 pkgs/development/libraries/haskell/old-time/1.1.0.2.nix create mode 100644 pkgs/development/libraries/haskell/text-binary/default.nix create mode 100644 pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix create mode 100644 pkgs/development/tools/haskell/Cabal-ghcjs/default.nix create mode 100644 pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix create mode 100644 pkgs/development/tools/haskell/ghcjs/default.nix diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix new file mode 100644 index 000000000000..d74c30180e29 --- /dev/null +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -0,0 +1,278 @@ +# generic builder for Cabal packages + +{ stdenv, fetchurl, lib, pkgconfig, ghcjs, ghc, Cabal, jailbreakCabal, glibcLocales +, gnugrep, coreutils, hscolour # hscolour is unused +, enableLibraryProfiling ? false +, enableSharedLibraries ? false +, enableSharedExecutables ? false +, enableStaticLibraries ? true +, enableCheckPhase ? stdenv.lib.versionOlder "7.4" ghc.version +, enableHyperlinkSource ? false +, extension ? (self : super : {}) +}: + +let + enableFeature = stdenv.lib.enableFeature; + versionOlder = stdenv.lib.versionOlder; + optional = stdenv.lib.optional; + optionals = stdenv.lib.optionals; + optionalString = stdenv.lib.optionalString; + filter = stdenv.lib.filter; +in + +{ + mkDerivation = + args : # arguments for the individual package, can modify the defaults + let # These attributes are removed in the end. This is in order not to spoil the build + # environment overly, but also to keep hash-backwards-compatible with the old cabal.nix. + internalAttrs = [ + "internalAttrs" "buildDepends" "buildTools" "extraLibraries" "pkgconfigDepends" + "isLibrary" "isExecutable" "testDepends" + ]; + + # Stuff happening after the user preferences have been processed. We remove + # internal attributes and strip null elements from the dependency lists, all + # in the interest of keeping hashes stable. + postprocess = + x : (removeAttrs x internalAttrs) // { + buildInputs = filter (y : ! (y == null)) x.buildInputs; + propagatedBuildInputs = filter (y : ! (y == null)) x.propagatedBuildInputs; + propagatedUserEnvPkgs = filter (y : ! (y == null)) x.propagatedUserEnvPkgs; + doCheck = enableCheckPhase && x.doCheck; + hyperlinkSource = enableHyperlinkSource && x.hyperlinkSource; + }; + + defaults = + self : { # self is the final version of the attribute set + + # pname should be defined by the client to be the package basename + # version should be defined by the client to be the package version + + # fname is the internal full name of the package + fname = "${self.pname}-${self.version}"; + + # name is the external full name of the package; usually we prefix + # all packages with haskell- to avoid name clashes for libraries; + # if that is not desired (for applications), name can be set to + # fname. + name = if self.isLibrary then + if enableLibraryProfiling && self.enableSharedLibraries then + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}-profiling-shared" + else if enableLibraryProfiling && !self.enableSharedLibraries then + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}-profiling" + else if !enableLibraryProfiling && self.enableSharedLibraries then + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}-shared" + else + "haskell-${self.pname}-ghcjs${ghc.ghc.version}-${self.version}" + else + "${self.pname}-${self.version}"; + + # the default download location for Cabal packages is Hackage, + # you still have to specify the checksum + src = fetchurl { + url = "mirror://hackage/${self.pname}/${self.fname}.tar.gz"; + inherit (self) sha256; + }; + + # default buildInputs are just ghc, if more buildInputs are required + # buildInputs can be extended by the client by using extraBuildInputs, + # but often propagatedBuildInputs is preferable anyway + buildInputs = [ghc ghc.ghc.parent.CabalGhcjs] ++ self.extraBuildInputs; + extraBuildInputs = self.buildTools ++ + (optionals self.doCheck self.testDepends) ++ + (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++ + (if self.isLibrary then [] else self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends); + + # we make sure that propagatedBuildInputs is defined, so that we don't + # have to check for its existence + propagatedBuildInputs = if self.isLibrary then self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends else []; + + # By default, also propagate all dependencies to the user environment. This is required, otherwise packages would be broken, because + # GHC also needs all dependencies to be available. + propagatedUserEnvPkgs = if self.isLibrary then self.buildDepends else []; + + # library directories that have to be added to the Cabal files + extraLibDirs = []; + + # build-depends Cabal field + buildDepends = []; + + # target(s) passed to the cabal build phase as an argument + buildTarget = ""; + + # build-depends Cabal fields stated in test-suite stanzas + testDepends = []; + + # target(s) passed to the cabal test phase as an argument + testTarget = ""; + + # build-tools Cabal field + buildTools = []; + + # extra-libraries Cabal field + extraLibraries = []; + + # pkgconfig-depends Cabal field + pkgconfigDepends = []; + + isLibrary = ! self.isExecutable; + isExecutable = false; + + # ignore version restrictions on the build inputs that the cabal file might specify + jailbreak = false; + + # pass the '--enable-split-objs' flag to cabal in the configure stage + enableSplitObjs = false; # !stdenv.isDarwin; # http://hackage.haskell.org/trac/ghc/ticket/4013 + + # pass the '--enable-tests' flag to cabal in the configure stage + # and run any regression test suites the package might have + doCheck = false; #enableCheckPhase; + + # pass the '--hyperlink-source' flag to ./Setup haddock + hyperlinkSource = enableHyperlinkSource; + + # abort the build if the configure phase detects that the package + # depends on multiple versions of the same build input + strictConfigurePhase = true; + + # pass the '--enable-library-vanilla' flag to cabal in the + # configure stage to enable building shared libraries + inherit enableStaticLibraries; + + # pass the '--enable-shared' flag to cabal in the configure + # stage to enable building shared libraries + inherit enableSharedLibraries; + + # pass the '--enable-executable-dynamic' flag to cabal in + # the configure stage to enable linking shared libraries + inherit enableSharedExecutables; + + extraConfigureFlags = [ + (enableFeature self.enableSplitObjs "split-objs") + (enableFeature enableLibraryProfiling "library-profiling") + (enableFeature true "shared") + (optional (versionOlder "7" ghc.version) (enableFeature self.enableStaticLibraries "library-vanilla")) + (optional (versionOlder "7.4" ghc.version) (enableFeature self.enableSharedExecutables "executable-dynamic")) + (optional (versionOlder "7" ghc.version) (enableFeature self.doCheck "tests")) + ]; + + # GHC needs the locale configured during the Haddock phase. + LANG = "en_US.UTF-8"; + LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive"; + + # compiles Setup and configures + configurePhase = '' + eval "$preConfigure" + + ${optionalString self.jailbreak "${ghc.ghc.parent.jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal"} + + PATH=$PATH:${ghc.ghc.ghc}/bin + + for i in Setup.hs Setup.lhs; do + test -f $i && ghc --make $i + done + + for p in $extraBuildInputs $propagatedBuildInputs $propagatedNativeBuildInputs; do + PkgDir="$p/lib/ghcjs-${ghc.ghc.version}_ghc-${ghc.ghc.ghc.version}/package.conf.d" + if [ -f "$PkgDir/package.cache" ]; then + extraConfigureFlags+=" --package-db=$PkgDir" + continue; + fi + if [ -d "$p/include" ]; then + extraConfigureFlags+=" --extra-include-dirs=$p/include" + fi + for d in lib{,64}; do + if [ -d "$p/$d" ]; then + extraConfigureFlags+=" --extra-lib-dirs=$p/$d" + fi + done + done + + configureFlags+=" --package-db=${ghc.ghc}/share/ghcjs/x86_64-linux-0.1.0-7.8.2/ghcjs/package.conf.d" + + ${optionalString (self.enableSharedExecutables && self.stdenv.isLinux) '' + configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}"; + ''} + ${optionalString (self.enableSharedExecutables && self.stdenv.isDarwin) '' + configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names"; + ''} + + echo "configure flags: $extraConfigureFlags $configureFlags" + ./Setup configure --ghcjs --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \ + --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \ + ${optionalString self.strictConfigurePhase '' + | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log" + if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then + echo >&2 "*** abort because of serious configure-time warning from Cabal" + exit 1 + fi + ''} + + eval "$postConfigure" + ''; + + # builds via Cabal + buildPhase = '' + eval "$preBuild" + + ./Setup build ${self.buildTarget} + + export GHC_PACKAGE_PATH=$(${ghc.GHCPackages}) + #test -n "$noHaddock" || ./Setup haddock --html --hoogle \ + # ${optionalString self.hyperlinkSource "--hyperlink-source"} + + eval "$postBuild" + ''; + + checkPhase = optional self.doCheck '' + eval "$preCheck" + + ./Setup test ${self.testTarget} + + eval "$postCheck" + ''; + + # installs via Cabal; creates a registration file for nix-support + # so that the package can be used in other Haskell-builds; also + # adds all propagated build inputs to the user environment packages + installPhase = '' + eval "$preInstall" + + ./Setup copy + + ensureDir $out/bin # necessary to get it added to PATH + + local confDir=$out/lib/ghcjs-${ghc.ghc.version}_ghc-${ghc.ghc.ghc.version}/package.conf.d + local installedPkgConf=$confDir/${self.fname}.installedconf + local pkgConf=$confDir/${self.fname}.conf + ensureDir $confDir + ./Setup register --gen-pkg-config=$pkgConf + if test -f $pkgConf; then + echo '[]' > $installedPkgConf + GHC_PACKAGE_PATH=$installedPkgConf ghcjs-pkg --global register $pkgConf --force --package-db=$confDir || true + ghcjs-pkg recache --package-db=$confDir + fi + + if test -f $out/nix-support/propagated-native-build-inputs; then + ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages + fi + + ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) '' + for exe in $out/bin/* ; do + install_name_tool -add_rpath \ + $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe + done + ''} + + eval "$postInstall" + ''; + + # We inherit stdenv and ghc so that they can be used + # in Cabal derivations. + inherit stdenv ghc; + }; + in + stdenv.mkDerivation (postprocess (let super = defaults self // args self; + self = super // extension self super; + in self)); +} diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix new file mode 100644 index 000000000000..65d68a5089fb --- /dev/null +++ b/pkgs/development/compilers/ghcjs/0.1.0.nix @@ -0,0 +1,72 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm +, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time +, zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2 +, parallel, safe, shelly, split, stringsearch, syb, systemFileio +, systemFilepath, tar, terminfo, textBinary, unorderedContainers +, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall +, regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch +, automake, libtool, cabalInstallGhcjs, gmp +}: + +cabal.mkDerivation (self: rec { + pname = "ghcjs"; + version = "0.1.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs.git; + rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84"; + sha256 = "0cla5bchprc8g5n39fkssnv3lj378h948irsnr7dslaki6laaagw"; + }; + bootSrc = fetchgit { + url = git://github.com/ghcjs/ghcjs-boot.git; + rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81"; + sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8"; + }; + shims = fetchgit { + url = git://github.com/ghcjs/shims.git; + rev = "a6dd0202dcdb86ad63201495b8b5d9763483eb35"; + sha256 = "07cd7ijw4i62iz1xjpwilriiybpqdx246w8d3j27ny1xfsj9wnax"; + }; + isLibrary = true; + isExecutable = true; + jailbreak = true; + noHaddock = true; + buildDepends = [ + filepath HTTP mtl network random stm time zlib aeson attoparsec + bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta + lens optparseApplicative_0_7_0_2 parallel safe shelly split + stringsearch syb systemFileio systemFilepath tar terminfo textBinary + unorderedContainers vector wlPprintText yaml + alex happy git gnumake gcc autoconf automake libtool patch gmp + ]; + testDepends = [ + HUnit regexPosix testFramework testFrameworkHunit + ]; + postConfigure = '' + echo Patching ghcjs with absolute paths to the Nix store + sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \ + src/Compiler/Info.hs + sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ + src-bin/Boot.hs + ''; + postInstall = '' + export HOME=$(pwd) + cp -R ${bootSrc} ghcjs-boot + cd ghcjs-boot + ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) + chmod -R u+w . # because fetchgit made it read-only + local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 + ensureDir $GHCJS_LIBDIR + cp -R ${shims} $GHCJS_LIBDIR/shims + ${cabalInstallGhcjs}/bin/cabal-js update + PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ + env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --init --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib + ''; + meta = { + homepage = "https://github.com/ghcjs/ghcjs"; + description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.jwiegley ]; + }; +}) diff --git a/pkgs/development/compilers/ghcjs/wrapper.nix b/pkgs/development/compilers/ghcjs/wrapper.nix new file mode 100644 index 000000000000..751b7d9a7de7 --- /dev/null +++ b/pkgs/development/compilers/ghcjs/wrapper.nix @@ -0,0 +1,77 @@ +{ stdenv, ghc, makeWrapper, coreutils, writeScript }: +let + ghcjs = ghc; + packageDBFlag = "-package-db"; + + GHCGetPackages = writeScript "ghc-get-packages.sh" '' + #! ${stdenv.shell} + # Usage: + # $1: version of GHC + # $2: invocation path of GHC + # $3: prefix + version="$1" + if test -z "$3"; then + prefix="${packageDBFlag} " + else + prefix="$3" + fi + PATH="$PATH:$2" + IFS=":" + for p in $PATH; do + for i in "$p/../share/ghcjs/$system-${ghcjs.version}-${ghcjs.ghc.version}"{,/lib,/ghcjs}"/package.conf.d" "$p/../lib/ghcjs-${ghc.version}_ghc-${ghc.ghc.version}/package.conf.d" ; do + # output takes place here + test -f $i/package.cache && echo -n " $prefix$i" + done + done + ''; + + GHCPackages = writeScript "ghc-packages.sh" '' + #! ${stdenv.shell} -e + declare -A GHC_PACKAGES_HASH # using bash4 hashs to get uniq paths + + for arg in $(${GHCGetPackages} ${ghcjs.version} "$(dirname $0)"); do # Why is ghc.version passed in from here instead of captured in the other script directly? + case "$arg" in + ${packageDBFlag}) ;; + *) + CANONICALIZED="$(${coreutils}/bin/readlink -f -- "$arg")" + GHC_PACKAGES_HASH["$CANONICALIZED"]= ;; + esac + done + + for path in ''${!GHC_PACKAGES_HASH[@]}; do + echo -n "$path:" + done + ''; +in +stdenv.mkDerivation { + name = "ghcjs-ghc${ghcjs.ghc.version}-${ghcjs.version}-wrapper"; + + buildInputs = [makeWrapper]; + propagatedBuildInputs = [ghcjs]; + + unpackPhase = "true"; + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + for prg in ghcjs ; do + makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$(${GHCGetPackages} ${ghcjs.version} \"\$(dirname \$0)\")" + done + for prg in ghcjs-pkg ; do + makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$(${GHCGetPackages} ${ghcjs.version} \"\$(dirname \$0)\" -${packageDBFlag}=)" + done + + mkdir -p $out/nix-support + ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages + + mkdir -p $out/share/doc + ln -s $ghc/lib $out/lib + ln -s $ghc/share/doc/ghc $out/share/doc/ghc-${ghcjs.version} + + runHook postInstall + ''; + + ghc = ghcjs; + inherit GHCGetPackages GHCPackages; + inherit (ghcjs) meta version; +} diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix index dbad9c538a92..1f8584a02776 100644 --- a/pkgs/development/libraries/haskell/derive/default.nix +++ b/pkgs/development/libraries/haskell/derive/default.nix @@ -1,6 +1,4 @@ -# This file was auto-generated by cabal2nix. Please do NOT edit manually! - -{ cabal, filepath, haskellSrcExts, syb, transformers, uniplate }: +{ cabal, process, filepath, haskellSrcExts, syb, transformers, uniplate }: cabal.mkDerivation (self: { pname = "derive"; @@ -9,12 +7,13 @@ cabal.mkDerivation (self: { isLibrary = true; isExecutable = true; buildDepends = [ - filepath haskellSrcExts syb transformers uniplate + process filepath haskellSrcExts syb transformers uniplate ]; meta = { homepage = "http://community.haskell.org/~ndm/derive/"; description = "A program and library to derive instances for data types"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; }; }) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index 8c87bcc0dc5f..b30bd4ff18b5 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -1,12 +1,15 @@ -# This file was auto-generated by cabal2nix. Please do NOT edit manually! - -{ cabal, ghcjsBase, mtl, text }: +{ cabal, fetchgit, ghcjsBase, mtl }: cabal.mkDerivation (self: { pname = "ghcjs-dom"; version = "0.1.0.0"; - sha256 = "0qm43bd4m7w14p6ag643h09pll4fp09j1mzjyqvp0dhal03dc723"; - buildDepends = [ ghcjsBase mtl text ]; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs-dom.git; + rev = "81805e75ccd41501774b90c04efd9e00d52e9798"; + sha256 = "3aa56fb81974533661aa056ed080edab29bef8ab26dae61999de4452f95949f6"; + }; + + buildDepends = [ ghcjsBase mtl ]; meta = { description = "DOM library that supports both GHCJS and WebKitGTK"; license = self.stdenv.lib.licenses.mit; diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/4.2.nix similarity index 100% rename from pkgs/development/libraries/haskell/lens/default.nix rename to pkgs/development/libraries/haskell/lens/4.2.nix diff --git a/pkgs/development/libraries/haskell/lens/4.4.nix b/pkgs/development/libraries/haskell/lens/4.4.nix new file mode 100644 index 000000000000..3c05c94129eb --- /dev/null +++ b/pkgs/development/libraries/haskell/lens/4.4.nix @@ -0,0 +1,32 @@ +{ cabal, bifunctors, comonad, contravariant, deepseq, distributive +, doctest, exceptions, filepath, free, genericDeriving, hashable +, hlint, HUnit, mtl, nats, parallel, primitive, profunctors +, QuickCheck, reflection, semigroupoids, semigroups, simpleReflect +, split, tagged, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, testFrameworkTh, text, transformers +, transformersCompat, unorderedContainers, vector, void, zlib +}: + +cabal.mkDerivation (self: { + pname = "lens"; + version = "4.4"; + sha256 = "06ha4px4ywfbi0n3imy2qqjq3656snsz1b0ggkwzvdzmi550sh8w"; + buildDepends = [ + bifunctors comonad contravariant distributive exceptions filepath + free hashable mtl parallel primitive profunctors reflection + semigroupoids semigroups split tagged text transformers + transformersCompat unorderedContainers vector void zlib + ]; + testDepends = [ + deepseq doctest filepath genericDeriving hlint HUnit mtl nats + parallel QuickCheck semigroups simpleReflect split testFramework + testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text + transformers unorderedContainers vector + ]; + meta = { + homepage = "http://github.com/ekmett/lens/"; + description = "Lenses, Folds and Traversals"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix b/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix new file mode 100644 index 000000000000..eab8e3e5c631 --- /dev/null +++ b/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix @@ -0,0 +1,12 @@ +{ cabal }: + +cabal.mkDerivation (self: { + pname = "old-time"; + version = "1.1.0.2"; + sha256 = "1nrqbpwxsmga13gcyn7bg25gkm61fmix07gm76d1f1i4impgqw1r"; + meta = { + description = "Time library"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/text-binary/default.nix b/pkgs/development/libraries/haskell/text-binary/default.nix new file mode 100644 index 000000000000..a1d274a6362e --- /dev/null +++ b/pkgs/development/libraries/haskell/text-binary/default.nix @@ -0,0 +1,14 @@ +{ cabal, binary, text }: + +cabal.mkDerivation (self: { + pname = "text-binary"; + version = "0.1.0"; + sha256 = "0wc501j8hqspnhf4d1hyb18f1wgc4kl2qx1b5s4bkxv0dfbwrk6z"; + buildDepends = [ binary text ]; + meta = { + homepage = "https://github.com/kawu/text-binary"; + description = "Binary instances for text types"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix b/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix new file mode 100644 index 000000000000..c0343aa6be79 --- /dev/null +++ b/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix @@ -0,0 +1,14 @@ +{ cabal, transformers }: + +cabal.mkDerivation (self: { + pname = "transformers-compat"; + version = "0.3.3.3"; + sha256 = "18cqghf0gc97j9qnlfnwwhvfm8j4sk99rm0xv3bf6ml8slk7njx7"; + buildDepends = [ transformers ]; + meta = { + homepage = "http://github.com/ekmett/transformers-compat/"; + description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix new file mode 100644 index 000000000000..16c355a5c996 --- /dev/null +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -0,0 +1,42 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "Cabal"; + version = "9e87d6a3"; + src = fetchgit { + url = git://github.com/ghcjs/cabal.git; + rev = "520591876ee57dbecba1b2de602dc79f4f67ecce"; # Must be from the ghcjs branch + sha256 = "f59182661707c65a2a014aa91b5e0d53cbefb6c999c1982757f476619b6728c0"; + }; + preConfigure = "cd Cabal"; + configureFlags = "--program-suffix=-js"; + + # jww (2014-05-31): Why is this failing? + # BuildDeps/InternalLibrary4: + # : [Failed] + # expected: 'setup install' should succeed + # output: "/private/var/folders/8h/tky3qz1d63l05l5jp_nzwzjr0000gn/T/nix-build-haskell-Cabal-ghcjs-ghc7.8.2-9e87d6a3-shared.drv-0/git-export/Cabal/tests/Setup configure --user -w /nix/store/v1gr2sk0117ycn9bmwyp3whgxqkbd5sl-ghc-7.8.2-wrapper/bin/ghc" in PackageTests/BuildDeps/InternalLibrary4/to-install + # Configuring InternalLibrary4-0.2... + # Setup: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible with + # Cabal. Use the flag --package-db to specify a package database (it can be used + # multiple times). + doCheck = false; + + buildDepends = [ + filepath HTTP mtl network random stm time zlib QuickCheck + ]; + testDepends = [ + filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; + meta = { + homepage = "http://www.haskell.org/cabal/"; + description = "The command-line interface for Cabal and Hackage"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; + }; +}) diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix new file mode 100644 index 000000000000..4fde997fc4c8 --- /dev/null +++ b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix @@ -0,0 +1,33 @@ +{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "cabal-install-ghcjs"; + version = "9e87d6a3"; + src = CabalGhcjs.src; + isLibrary = true; + isExecutable = true; + doCheck = false; + configureFlags = "--program-suffix=-js"; + preConfigure = "cd cabal-install"; + buildDepends = [ + CabalGhcjs filepath HTTP mtl network random stm time zlib + ]; + testDepends = [ + CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; + postInstall = '' + mkdir $out/etc + mv bash-completion $out/etc/bash_completion.d + ''; + meta = { + homepage = "http://www.haskell.org/cabal/"; + description = "The command-line interface for Cabal and Hackage"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; + }; +}) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix new file mode 100644 index 000000000000..4feffcd7f4c4 --- /dev/null +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -0,0 +1,103 @@ +{ nodejs, cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm +, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time +, zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative +, parallel, safe, shelly, split, stringsearch, syb, systemFileio +, systemFilepath, tar, terminfo, textBinary, unorderedContainers +, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall +, regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch +, automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring +, cryptohash, executablePath, transformersCompat +, haddock, hspec, xhtml, primitive +}: +cabal.mkDerivation (self: rec { + pname = "ghcjs"; + version = "0.1.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs.git; + rev = "fd034b7e6fb61120d22f1c314398f37a673b8b1d"; + sha256 = "0182bb706cc263a6d268eb61e243214186abae7b81dec420187c858e989c4dba"; + }; +/* + bootSrc = fetchgit { + url = git://github.com/ghcjs/ghcjs-boot.git; + rev = "f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9"; + sha256 = "83f1706bcf7e666f6fb6dee455517e0efb019aabd1393f444c80169f04b9d3b8"; + }; +*/ + shims = fetchgit { + url = git://github.com/ghcjs/shims.git; + rev = "dc5bb54778f3dbba4b463f4f7df5f830f14d1cb6"; + sha256 = "fcef2879df0735b1011a8642a7c3e0e3f39b7d395830b91a992658f4ff67c9ce"; + }; + isLibrary = true; + isExecutable = true; + jailbreak = true; + noHaddock = true; + haddockInternal = cabal.mkDerivation (self: { + pname = "haddock-internal"; + version = "2.14.3"; + src = fetchgit { + url = git://github.com/ghcjs/haddock-internal.git; + rev = "47758773d6b20c395a1c76a93830070fde71dbab"; + sha256 = "df1a024631b7781fcbda09d2b33a56650959b8ab6c831151b456133226ab90b2"; + }; + buildDepends = [ QuickCheck ghcPaths haddock hspec xhtml ]; # Can't specify Cabal here, or it ends up being the wrong version + doCheck = false; + }); + ghcjsPrim = cabal.mkDerivation (self: { + pname = "ghcjs-prim"; + version = "0.1.0.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs-prim.git; + rev = "659d6ceb45b1b8ef526c7451d90afff80d76e2f5"; + sha256 = "55b64d93cdc8220042a35ea12f8c53e82f78b51bc0f87ddd12300ad56e4b7ba7"; + }; + buildDepends = [ primitive ]; + }); + buildDepends = [ + filepath HTTP mtl network random stm time zlib aeson attoparsec + bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta + lens optparseApplicative parallel safe shelly split + stringsearch syb systemFileio systemFilepath tar terminfo textBinary + unorderedContainers vector wlPprintText yaml + alex happy git gnumake gcc autoconf automake libtool patch gmp + base16Bytestring cryptohash executablePath haddockInternal + transformersCompat QuickCheck haddock hspec xhtml + ghcjsPrim + ]; + buildTools = [ nodejs git ]; + testDepends = [ + HUnit regexPosix testFramework testFrameworkHunit + ]; + postConfigure = '' + echo Patching ghcjs with absolute paths to the Nix store + sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \ + src/Compiler/Info.hs + sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ + src-bin/Boot.hs + ''; + postInstall = '' + export HOME=$(pwd) + export GIT_SSL_CAINFO=/etc/ssl/certs/ca-bundle.crt + git clone git://github.com/ghcjs/ghcjs-boot.git + cd ghcjs-boot + git checkout f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9 + git submodule update --init --recursive + ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) + chmod -R u+w . # because fetchgit made it read-only + local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 + ensureDir $GHCJS_LIBDIR + cp -R ${shims} $GHCJS_LIBDIR/shims + ${cabalInstallGhcjs}/bin/cabal-js update + PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ + env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --dev --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib + ''; + meta = { + homepage = "https://github.com/ghcjs/ghcjs"; + description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.jwiegley ]; + }; +}) diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index f3a724f30399..4a732983af02 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -1,6 +1,4 @@ -# This file was auto-generated by cabal2nix. Please do NOT edit manually! - -{ cabal, polyparse }: +{ cabal, polyparse, oldTime }: cabal.mkDerivation (self: { pname = "cpphs"; @@ -8,11 +6,12 @@ cabal.mkDerivation (self: { sha256 = "0bqfz0wkfnxvv711fgmhmh6rbwffgna1pfqbj7whb6crqji9w7g7"; isLibrary = true; isExecutable = true; - buildDepends = [ polyparse ]; + buildDepends = [ oldTime polyparse ]; meta = { homepage = "http://projects.haskell.org/cpphs/"; description = "A liberalised re-implementation of cpp, the C pre-processor"; license = "LGPL"; platforms = self.ghc.meta.platforms; + maintainers = [ self.stdenv.lib.maintainers.andres ]; }; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a5fa04d8936e..87f65745b775 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2991,6 +2991,7 @@ let haskellPackages_ghc783_profiling = recurseIntoAttrs haskell.packages_ghc783.profiling; haskellPackages_ghc783 = recurseIntoAttrs haskell.packages_ghc783.highPrio; haskellPackages_ghcHEAD = haskell.packages_ghcHEAD; + haskellPackages_ghcjs = haskell.packages_ghcjs; haskellPlatformPackages = recurseIntoAttrs (import ../development/libraries/haskell/haskell-platform { inherit pkgs; }); diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 9a064212a40e..37db48d089ea 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -143,20 +143,23 @@ # Abstraction for Haskell packages collections packagesFun = makeOverridable - ({ ghcPath + ({ ghcPath ? null + , ghc ? callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs) , ghcBinary ? ghc6101Binary , prefFun , extension ? (self : super : {}) , profExplicit ? false, profDefault ? false , modifyPrio ? lowPrio , extraArgs ? {} + , cabalPackage ? import ../build-support/cabal + , ghcWrapperPackage ? import ../development/compilers/ghc/wrapper.nix } : let haskellPackagesClass = import ./haskell-packages.nix { - inherit pkgs newScope modifyPrio; + inherit pkgs newScope modifyPrio cabalPackage ghcWrapperPackage; enableLibraryProfiling = if profExplicit then profDefault else config.cabal.libraryProfiling or profDefault; - ghc = callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs); + inherit ghc; }; haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super; haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super; @@ -228,6 +231,136 @@ prefFun = ghc783Prefs; }; + packages_ghcjs = + let parent = packages_ghc783.override { + extension = self: super: { + ghcjs = super.ghcjs.override { + Cabal = packages_ghc783.CabalGhcjs; + }; + transformersCompat = super.transformersCompat_0_3_3_3; + haddock = super.haddock.override { + Cabal = null; + }; + }; + }; + in packages { + ghc = parent.ghcjs // { inherit parent; }; + cabalPackage = import ../build-support/cabal/ghcjs.nix; + ghcWrapperPackage = import ../development/compilers/ghcjs/wrapper.nix; + prefFun = self : super : super // { + # This is the list of packages that are built into a booted ghcjs installation + # It can be generated with the command: + # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'" + Cabal_1_21_0_0 = null; + Cabal = self.Cabal_1_21_0_0; + aeson_0_8_0_0 = null; + aeson = self.aeson_0_8_0_0; + array_0_5_0_0 = null; + array = self.array_0_5_0_0; + async_2_0_1_5 = null; + async = self.async_2_0_1_5; + attoparsec_0_12_1_0 = null; + attoparsec = self.attoparsec_0_12_1_0; + base_4_7_0_1 = null; + base = self.base_4_7_0_1; + binary_0_7_2_1 = null; + binary = self.binary_0_7_2_1; + rts_1_0 = null; + rts = self.rts_1_0; + # bytestring_0_10_4_1 = null; + # bytestring = self.bytestring_0_10_4_1; + caseInsensitive_1_2_0_0 = null; + caseInsensitive = self.caseInsensitive_1_2_0_0; + containers_0_5_5_1 = null; + containers = self.containers_0_5_5_1; + deepseq_1_3_0_2 = null; + deepseq = self.deepseq_1_3_0_2; + directory_1_2_1_0 = null; + directory = self.directory_1_2_1_0; + dlist_0_7_0_1 = null; + dlist = self.dlist_0_7_0_1; + extensibleExceptions_0_1_1_3 = null; + extensibleExceptions = self.extensibleExceptions_0_1_1_3; + filepath_1_3_0_2 = null; + filepath = self.filepath_1_3_0_2; + ghcPrim_0_3_1_0 = null; + ghcPrim = self.ghcPrim_0_3_1_0; + ghcjsBase_0_1_0_0 = null; + ghcjsBase = self.ghcjsBase_0_1_0_0; + ghcjsPrim_0_1_0_0 = null; + ghcjsPrim = self.ghcjsPrim_0_1_0_0; + hashable_1_2_2_0 = null; + hashable = self.hashable_1_2_2_0; + integerGmp_0_5_1_0 = null; + integerGmp = self.integerGmp_0_5_1_0; + mtl_2_2_1 = null; + mtl = self.mtl_2_2_1; + oldLocale_1_0_0_6 = null; + oldLocale = self.oldLocale_1_0_0_6; + oldTime_1_1_0_2 = null; + oldTime = self.oldTime_1_1_0_2; + parallel_3_2_0_4 = null; + parallel = self.parallel_3_2_0_4; + pretty_1_1_1_1 = null; + pretty = self.pretty_1_1_1_1; + primitive_0_5_3_0 = null; + primitive = self.primitive_0_5_3_0; + process_1_2_0_0 = null; + process = self.process_1_2_0_0; + scientific_0_3_3_0 = null; + scientific = self.scientific_0_3_3_0; + stm_2_4_3 = null; + stm = self.stm_2_4_3; + syb_0_4_2 = null; + syb = self.syb_0_4_2; + # templateHaskell_2_9_0_0 = null; + # templateHaskell = self.templateHaskell_2_9_0_0; + text_1_1_1_3 = null; + text = self.text_1_1_1_3; + time_1_4_2 = null; + time = self.time_1_4_2; + transformers_0_4_1_0 = null; + transformers = self.transformers_0_4_1_0; + unix_2_7_0_1 = null; + unix = self.unix_2_7_0_1; + unorderedContainers_0_2_5_0 = null; + unorderedContainers = self.unorderedContainers_0_2_5_0; + vector_0_10_11_0 = null; + vector = self.vector_0_10_11_0; + + # This is necessary because haskell-packages will refuse to generate tfRandom for this version of ghc (0.1.0) + #TODO: haskell-packages shouldn't use the ghcjs version as the ghc version + tfRandom = self.callPackage ../development/libraries/haskell/tf-random {}; + +/* + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? packages_ghc783.cabal2nix }: let + cabalExpr = pkgs.stdenv.mkDerivation ({ + name = "${name}.nix"; + + buildCommand = '' + ${cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ + | grep -v FILTERME | sed \ + -e 's/licenses.proprietary/licenses.unfree/' \ + -e 's/{ cabal/{ cabal, cabalInstall, cabalDrvArgs ? {}, src/' \ + -e 's/cabal.mkDerivation (self: {/cabal.mkDerivation (self: cabalDrvArgs \/\/ {/' \ + -e 's/buildDepends = \[/buildDepends = \[ cabalInstall/' \ + -e 's/pname = \([^\n]*\)/pname = \1\n inherit src;\n/' > $out + ''; + + } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { + LANG = "en_US.UTF-8"; + LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; + }); + in self.callPackage cabalExpr ({ inherit src cabalDrvArgs; } // args); +*/ + }; + extension = self: super: { + buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // { + cabal2nix = packages_ghc783.cabal2nix; + }); + }; + }; + packages_ghc763 = packages { ghcPath = ../development/compilers/ghc/7.6.3.nix; ghcBinary = ghc704Binary; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 3ddf87db53de..ef8174810a2e 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -43,7 +43,7 @@ # # For most packages, however, we keep only one version, and use default.nix. -{ pkgs, newScope, ghc, modifyPrio ? (x : x) +{ pkgs, newScope, ghc, cabalPackage, ghcWrapperPackage, modifyPrio ? (x : x) , enableLibraryProfiling ? false , enableSharedLibraries ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version , enableSharedExecutables ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version @@ -74,7 +74,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # refers to the function argument at the # top of this file. - ghc = callPackage ../development/compilers/ghc/wrapper.nix { + ghc = callPackage ghcWrapperPackage { ghc = ghc; # refers to ghcPlain }; @@ -94,7 +94,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # This is the Cabal builder, the function we use to build most Haskell # packages. It isn't the Cabal library, which is spelled "Cabal". - cabal = callPackage ../build-support/cabal { + cabal = callPackage cabalPackage { Cabal = null; # prefer the Cabal version shipped with the compiler hscolour = self.hscolourBootstrap; inherit enableLibraryProfiling enableCheckPhase @@ -895,7 +895,11 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabal = self.cabal.override { enableLibraryProfiling = false; }; # pkg cannot be built with profiling enabled }; - ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; + ghcjs = callPackage ../development/tools/haskell/ghcjs { + Cabal = self.Cabal_1_18_1_3; + }; + + ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; @@ -1455,7 +1459,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in lazysmallcheck = callPackage ../development/libraries/haskell/lazysmallcheck {}; - lens = callPackage ../development/libraries/haskell/lens {}; + lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; + lens_4_4 = callPackage ../development/libraries/haskell/lens/4.4.nix {}; + lens = self.lens_4_4; lensAeson = callPackage ../development/libraries/haskell/lens-aeson {}; @@ -2462,6 +2468,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in text_1_1_1_3 = callPackage ../development/libraries/haskell/text/1.1.1.3.nix {}; text = self.text_1_1_1_3; + textBinary = callPackage ../development/libraries/haskell/text-binary {}; + textFormat = callPackage ../development/libraries/haskell/text-format {}; textIcu = callPackage ../development/libraries/haskell/text-icu {}; @@ -2531,6 +2539,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in transformersBase = callPackage ../development/libraries/haskell/transformers-base {}; transformersCompat_0_3_3 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.nix {}; + transformersCompat_0_3_3_3 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.3.nix {}; transformersCompat_0_3_3_4 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.4.nix {}; transformersCompat = self.transformersCompat_0_3_3_4; @@ -2884,6 +2893,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cake3 = callPackage ../development/tools/haskell/cake3 {}; + oldTime_1_1_0_2 = callPackage ../development/libraries/haskell/old-time/1.1.0.2.nix {}; + oldTime = null; # By default, use the built-in old-time library cpphs = callPackage ../development/tools/misc/cpphs {}; DrIFT = callPackage ../development/tools/haskell/DrIFT {}; @@ -2997,12 +3008,12 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabal2nix = callPackage ../development/tools/haskell/cabal2nix {}; # Build a cabal package given a local .cabal file - buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; } }: let + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix }: let cabalExpr = pkgs.stdenv.mkDerivation ({ name = "${name}.nix"; buildCommand = '' - ${self.cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ + ${cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ | grep -v FILTERME | sed \ -e 's/licenses.proprietary/licenses.unfree/' \ -e 's/{ cabal/{ cabal, cabalInstall, cabalDrvArgs ? {}, src/' \ @@ -3044,6 +3055,19 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalInstall_1_20_0_3 = callPackage ../tools/package-management/cabal-install/1.20.0.3.nix { Cabal = self.Cabal_1_20_0_2; }; cabalInstall = self.cabalInstall_1_20_0_3; + CabalGhcjs = callPackage ../development/tools/haskell/Cabal-ghcjs { + QuickCheck = self.QuickCheck_2_6; + testFrameworkQuickcheck2 = self.testFrameworkQuickcheck2.override { + QuickCheck = self.QuickCheck_2_6; + }; + }; + cabalInstallGhcjs = callPackage ../development/tools/haskell/cabal-install-ghcjs { + QuickCheck = self.QuickCheck_2_6; + testFrameworkQuickcheck2 = self.testFrameworkQuickcheck2.override { + QuickCheck = self.QuickCheck_2_6; + }; + }; + codex = callPackage ../development/tools/haskell/codex {}; commandQq = callPackage ../development/libraries/haskell/command-qq {}; From 17ce6ccef028f2b6d4781823077df730ccd071f0 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 10:36:10 -0400 Subject: [PATCH 014/175] Add temporary workaround for https://github.com/NixOS/nixpkgs/issues/2689 --- pkgs/top-level/haskell-defaults.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 37db48d089ea..e79f6d9e25ee 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -25,6 +25,13 @@ codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_2; }; }; MonadRandom = self.MonadRandom_0_1_13; # requires transformers >= 0.4.x mtl = self.mtl_2_1_2; + # Temporary workaround for https://github.com/NixOS/nixpkgs/issues/2689 + cabal = if !pkgs.stdenv.isDarwin then super.cabal else super.cabal.override { + extension = self : super : { + noHaddock = true; + hyperlinkSource = false; + }; + }; }; ghc763Prefs = self : super : ghc783Prefs self super // { From 6f2b53400d293d0e3ac91d5aa6dcff8f0a5f2d34 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 11:18:22 -0400 Subject: [PATCH 015/175] Add a temporary workaround for https://github.com/NixOS/nixpkgs/issues/3540 --- pkgs/top-level/haskell-defaults.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index e79f6d9e25ee..fa71db6ae584 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -25,14 +25,24 @@ codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_2; }; }; MonadRandom = self.MonadRandom_0_1_13; # requires transformers >= 0.4.x mtl = self.mtl_2_1_2; + } // (if !pkgs.stdenv.isDarwin then {} else { # Temporary workaround for https://github.com/NixOS/nixpkgs/issues/2689 - cabal = if !pkgs.stdenv.isDarwin then super.cabal else super.cabal.override { - extension = self : super : { + cabal = super.cabal.override { + extension = self: super: { noHaddock = true; hyperlinkSource = false; }; }; - }; + + # Temporary workaround for https://github.com/NixOS/nixpkgs/issues/3540 + systemFileio = super.systemFileio.override { + cabal = super.cabal.override { + extension = self: super: { + doCheck = false; + }; + }; + }; + }); ghc763Prefs = self : super : ghc783Prefs self super // { aeson = self.aeson_0_7_0_4; From 00b108871df4361645a9d34e1b808d08ca2b53ce Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 12:14:42 -0400 Subject: [PATCH 016/175] ... --- pkgs/top-level/haskell-defaults.nix | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index fa71db6ae584..16879a174dd4 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -31,15 +31,8 @@ extension = self: super: { noHaddock = true; hyperlinkSource = false; - }; - }; - - # Temporary workaround for https://github.com/NixOS/nixpkgs/issues/3540 - systemFileio = super.systemFileio.override { - cabal = super.cabal.override { - extension = self: super: { - doCheck = false; - }; + # Temporary workaround for https://github.com/NixOS/nixpkgs/issues/3540 + doCheck = false; }; }; }); From 81a5395c230d95f6ad07a6a100fffbb9d5b4e4d5 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 12:27:42 -0400 Subject: [PATCH 017/175] Ensure regex-posix is available to build ghcjs even if tests are disabled. --- pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 4feffcd7f4c4..e3f5f29f6f94 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -64,11 +64,11 @@ cabal.mkDerivation (self: rec { alex happy git gnumake gcc autoconf automake libtool patch gmp base16Bytestring cryptohash executablePath haddockInternal transformersCompat QuickCheck haddock hspec xhtml - ghcjsPrim + ghcjsPrim regexPosix ]; buildTools = [ nodejs git ]; testDepends = [ - HUnit regexPosix testFramework testFrameworkHunit + HUnit testFramework testFrameworkHunit ]; postConfigure = '' echo Patching ghcjs with absolute paths to the Nix store From bc92dcd08c2e02610297cd607274fcd57c30c823 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 13:15:33 -0400 Subject: [PATCH 018/175] Prevent install_name_tool from causing a failure when it encounters a non-Mach-O file (e.g.: a bash script). --- pkgs/build-support/cabal/ghcjs.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index d74c30180e29..f7fc515432e3 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -259,8 +259,7 @@ in ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) '' for exe in $out/bin/* ; do - install_name_tool -add_rpath \ - $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe + install_name_tool -add_rpath $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe || true # Ignore failures, which seem to be due to hitting bash scripts rather than binaries done ''} From fa211963ed52a092836ee5bdd1423f99d620cf3c Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 13:23:10 -0400 Subject: [PATCH 019/175] Another try at fixing the install_name_tool issue. --- pkgs/build-support/cabal/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index d73b4a1f364c..9b0ed44a6e67 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -275,8 +275,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) '' for exe in "$out/bin/"* ; do - install_name_tool -add_rpath \ - $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe + install_name_tool -add_rpath $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe || true # Ignore failures, which seem to be due to hitting bash scripts rather than binaries done ''} From ebf364acfcfa4b1d8f25cf8fff6f4c87c51e379b Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 27 Aug 2014 13:39:04 -0400 Subject: [PATCH 020/175] Fix ca-bundle.crt file location. --- pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index e3f5f29f6f94..13fe5e61c2ea 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -8,7 +8,7 @@ , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch , automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring , cryptohash, executablePath, transformersCompat -, haddock, hspec, xhtml, primitive +, haddock, hspec, xhtml, primitive, cacert }: cabal.mkDerivation (self: rec { pname = "ghcjs"; @@ -79,7 +79,7 @@ cabal.mkDerivation (self: rec { ''; postInstall = '' export HOME=$(pwd) - export GIT_SSL_CAINFO=/etc/ssl/certs/ca-bundle.crt + export GIT_SSL_CAINFO=${cacert}/etc/ca-bundle.crt git clone git://github.com/ghcjs/ghcjs-boot.git cd ghcjs-boot git checkout f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9 From ceabc66ce2137ef38391ecee34e9f3e59651bd0f Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Fri, 29 Aug 2014 22:08:18 -0400 Subject: [PATCH 021/175] Add support for webkit builds to haskellPackages.ghcjsDom --- .../libraries/haskell/ghcjs-dom/default.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index b30bd4ff18b5..73fe973da025 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -1,15 +1,19 @@ -{ cabal, fetchgit, ghcjsBase, mtl }: +{ cabal, fetchgit, ghc, mtl +, buildType ? if (builtins.parseDrvName ghc.ghc.name).name == "ghcjs" then "jsffi" else "webkit" +, ghcjsBase ? null # jsffi dependencies +, glib ? null, transformers ? null, gtk ? null, webkit ? null # webkit dependencies +}: cabal.mkDerivation (self: { pname = "ghcjs-dom"; version = "0.1.0.0"; src = fetchgit { - url = git://github.com/ghcjs/ghcjs-dom.git; + url = https://github.com/ghcjs/ghcjs-dom; rev = "81805e75ccd41501774b90c04efd9e00d52e9798"; sha256 = "3aa56fb81974533661aa056ed080edab29bef8ab26dae61999de4452f95949f6"; }; - - buildDepends = [ ghcjsBase mtl ]; + buildDepends = [ mtl ] ++ (if buildType == "jsffi" then [ ghcjsBase ] else if buildType == "webkit" then [ glib transformers gtk webkit ] else throw "unrecognized buildType"); + configureFlags = if buildType == "jsffi" then [ ] else if buildType == "webkit" then [ "-f-ghcjs" "-fwebkit" "-f-gtk3" ] else throw "unrecognized buildType"; meta = { description = "DOM library that supports both GHCJS and WebKitGTK"; license = self.stdenv.lib.licenses.mit; From c1c4c85800dc185ebd74aad0df7826de02c399e4 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Sat, 30 Aug 2014 21:46:25 -0400 Subject: [PATCH 022/175] Fix ghcjsDom's compiler detection --- pkgs/development/libraries/haskell/ghcjs-dom/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index 73fe973da025..403fc8115083 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -1,5 +1,5 @@ { cabal, fetchgit, ghc, mtl -, buildType ? if (builtins.parseDrvName ghc.ghc.name).name == "ghcjs" then "jsffi" else "webkit" +, buildType ? if ghc.ghc.pname or null == "ghcjs" then "jsffi" else "webkit" , ghcjsBase ? null # jsffi dependencies , glib ? null, transformers ? null, gtk ? null, webkit ? null # webkit dependencies }: From e4ff3fd348290a09d3367af4522cead593aa13a8 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Sat, 20 Sep 2014 18:54:09 -0400 Subject: [PATCH 023/175] Add defaultSetupHs to ghcjs, and fix it in regular cabal --- pkgs/build-support/cabal/default.nix | 2 +- pkgs/build-support/cabal/ghcjs.nix | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index 9b0ed44a6e67..dd0dc669162c 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -187,7 +187,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; for i in Setup.hs Setup.lhs ${defaultSetupHs}; do test -f $i && break done - ghc --make -o Setup -odir $TMPDIR $i + ghc --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i for p in $extraBuildInputs $propagatedNativeBuildInputs; do if [ -d "$p/lib/ghc-${ghc.ghc.version}/package.conf.d" ]; then diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 761123c9f459..3c4722c214a3 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -18,6 +18,11 @@ let optionals = stdenv.lib.optionals; optionalString = stdenv.lib.optionalString; filter = stdenv.lib.filter; + + defaultSetupHs = builtins.toFile "Setup.hs" '' + import Distribution.Simple + main = defaultMain + ''; in { @@ -168,9 +173,10 @@ in PATH=$PATH:${ghc.ghc.ghc}/bin - for i in Setup.hs Setup.lhs; do - test -f $i && ghc --make $i + for i in Setup.hs Setup.lhs ${defaultSetupHs}; do + test -f $i && break done + ghc --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i for p in $extraBuildInputs $propagatedBuildInputs $propagatedNativeBuildInputs; do PkgDir="$p/lib/ghcjs-${ghc.ghc.version}_ghc-${ghc.ghc.ghc.version}/package.conf.d" From 9ec240605d71af37ff7a337dd2767740aeeb702c Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Tue, 7 Oct 2014 21:34:31 -0400 Subject: [PATCH 024/175] Use optparse-applicative 0.9.1.1; 0.10 doesn't export 'reader', which causes ghcjs to fail to build --- pkgs/development/compilers/ghcjs/0.1.0.nix | 4 ++-- pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix index 65d68a5089fb..e77569d12592 100644 --- a/pkgs/development/compilers/ghcjs/0.1.0.nix +++ b/pkgs/development/compilers/ghcjs/0.1.0.nix @@ -1,7 +1,7 @@ { cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time , zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_7_0_2 +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_9_1_1 , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall @@ -34,7 +34,7 @@ cabal.mkDerivation (self: rec { buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative_0_7_0_2 parallel safe shelly split + lens optparseApplicative_0_9_1_1 parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 19e368b84f83..e3368c007df7 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -1,7 +1,7 @@ { nodejs, cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time , zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_9_1_1 , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall @@ -58,7 +58,7 @@ cabal.mkDerivation (self: rec { buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative parallel safe shelly split + lens optparseApplicative_0_9_1_1 parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp From aa71f5ff779f0a85dbca62086ca25214239734d1 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Thu, 9 Oct 2014 10:54:27 -0400 Subject: [PATCH 025/175] Update ghcjs --- .../tools/haskell/ghcjs/default.nix | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index e3368c007df7..a3ecdf4147c5 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -7,7 +7,7 @@ , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch , automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring -, cryptohash, executablePath, transformersCompat +, cryptohash, executablePath, transformersCompat, haddockApi , haddock, hspec, xhtml, primitive, cacert, pkgs, ghc }: cabal.mkDerivation (self: rec { @@ -15,20 +15,13 @@ cabal.mkDerivation (self: rec { version = "0.1.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "fd034b7e6fb61120d22f1c314398f37a673b8b1d"; - sha256 = "0182bb706cc263a6d268eb61e243214186abae7b81dec420187c858e989c4dba"; + rev = "bd3dfe56d55fd046bfbec4d9d834af4f46595535"; + sha256 = "82c37faf725a230945d71c617be259c94a0816d240663714c3a62b85e4a2b731"; }; -/* - bootSrc = fetchgit { - url = git://github.com/ghcjs/ghcjs-boot.git; - rev = "f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9"; - sha256 = "83f1706bcf7e666f6fb6dee455517e0efb019aabd1393f444c80169f04b9d3b8"; - }; -*/ shims = fetchgit { url = git://github.com/ghcjs/shims.git; - rev = "dc5bb54778f3dbba4b463f4f7df5f830f14d1cb6"; - sha256 = "fcef2879df0735b1011a8642a7c3e0e3f39b7d395830b91a992658f4ff67c9ce"; + rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; + sha256 = "64be139022e6f662086103fca3838330006d38e6454bd3f7b66013031a47278e"; }; isLibrary = true; isExecutable = true; @@ -50,8 +43,8 @@ cabal.mkDerivation (self: rec { version = "0.1.0.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs-prim.git; - rev = "659d6ceb45b1b8ef526c7451d90afff80d76e2f5"; - sha256 = "55b64d93cdc8220042a35ea12f8c53e82f78b51bc0f87ddd12300ad56e4b7ba7"; + rev = "915f263c06b7f4a246c6e02ecdf2b9a0550ed967"; + sha256 = "34dd58b6e2d0ce780da46b509fc2701c28a7b2182f8d700b53a80981ac8bcf86"; }; buildDepends = [ primitive ]; }); @@ -64,7 +57,7 @@ cabal.mkDerivation (self: rec { alex happy git gnumake gcc autoconf automake libtool patch gmp base16Bytestring cryptohash executablePath haddockInternal transformersCompat QuickCheck haddock hspec xhtml - ghcjsPrim regexPosix + ghcjsPrim regexPosix haddockApi ]; buildTools = [ nodejs git ]; testDepends = [ @@ -83,7 +76,7 @@ cabal.mkDerivation (self: rec { export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" git clone git://github.com/ghcjs/ghcjs-boot.git cd ghcjs-boot - git checkout f9f79d0cf40212943bcc1ad2672f2e0a7af2b7c9 + git checkout f5e57f9d4d8241a78ebdbdb34262921782a27e1a git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only From ed6bfa2318c41b2dfe2d32027ebb4e7043acd269 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Mon, 17 Nov 2014 01:08:11 -0500 Subject: [PATCH 026/175] Update ghcjs --- pkgs/development/compilers/ghcjs/0.1.0.nix | 12 ++++++------ .../libraries/haskell/dependent-map/default.nix | 3 +++ .../tools/haskell/Cabal-ghcjs/default.nix | 7 ++++--- .../haskell/cabal-install-ghcjs/default.nix | 3 ++- pkgs/development/tools/haskell/ghcjs/default.nix | 16 +++------------- pkgs/top-level/haskell-defaults.nix | 1 + pkgs/top-level/haskell-packages.nix | 1 + 7 files changed, 20 insertions(+), 23 deletions(-) diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix index e77569d12592..f89cae50c169 100644 --- a/pkgs/development/compilers/ghcjs/0.1.0.nix +++ b/pkgs/development/compilers/ghcjs/0.1.0.nix @@ -14,18 +14,18 @@ cabal.mkDerivation (self: rec { version = "0.1.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "c9ce6b9d87296b1236d5ef0f7d5236b2cedcff84"; - sha256 = "0cla5bchprc8g5n39fkssnv3lj378h948irsnr7dslaki6laaagw"; + rev = "c0b8ebb3e2608fdd8dc3b74b55f281b5c24be8e1"; + sha256 = "442ebdfd426ec98a431735f72ec00c7dde54ae1f0c78dd593d33077ffdb1e2a2"; }; bootSrc = fetchgit { url = git://github.com/ghcjs/ghcjs-boot.git; - rev = "2daaf8fc0efd5b5906a7157a172ce77ca3b28d81"; - sha256 = "0kwn3lh196rp02kz2vxd0mkqyix99xqzs4vsazv0s49ari0dc4w8"; + rev = "8bf2861c0c776eec42e0a1833f220e36681e810c"; + sha256 = "1f6695f7c25e40b87621ba6ce71a8338788951fd85e88e9223c8258520fbded6"; }; shims = fetchgit { url = git://github.com/ghcjs/shims.git; - rev = "a6dd0202dcdb86ad63201495b8b5d9763483eb35"; - sha256 = "07cd7ijw4i62iz1xjpwilriiybpqdx246w8d3j27ny1xfsj9wnax"; + rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; + sha256 = "64be139022e6f662086103fca3838330006d38e6454bd3f7b66013031a47278e"; }; isLibrary = true; isExecutable = true; diff --git a/pkgs/development/libraries/haskell/dependent-map/default.nix b/pkgs/development/libraries/haskell/dependent-map/default.nix index 0270139c3831..36f42d7d8e55 100644 --- a/pkgs/development/libraries/haskell/dependent-map/default.nix +++ b/pkgs/development/libraries/haskell/dependent-map/default.nix @@ -7,6 +7,9 @@ cabal.mkDerivation (self: { version = "0.1.1.2"; sha256 = "1g8mq8189c6wr1rik70019gqrnk84c613x9cn5383p7hhfyc0rnn"; buildDepends = [ dependentSum ]; + preConfigure = '' + sed -i 's/^.*ghc-options:.*$//' *.cabal + ''; meta = { homepage = "https://github.com/mokus0/dependent-map"; description = "Dependent finite maps (partial dependent products)"; diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix index 16c355a5c996..d7ee36da9001 100644 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -5,11 +5,11 @@ cabal.mkDerivation (self: { pname = "Cabal"; - version = "9e87d6a3"; + version = "b9c90bb4"; src = fetchgit { url = git://github.com/ghcjs/cabal.git; - rev = "520591876ee57dbecba1b2de602dc79f4f67ecce"; # Must be from the ghcjs branch - sha256 = "f59182661707c65a2a014aa91b5e0d53cbefb6c999c1982757f476619b6728c0"; + rev = "b9c90bb4d6fed8c2cc8323a7e24b67f821c1ee47"; # Must be from the ghcjs branch + sha256 = "d678d8c54d82db8b4fb0d7dc72c4832025c69586da8c0f65f6d05f6f50103c62"; }; preConfigure = "cd Cabal"; configureFlags = "--program-suffix=-js"; @@ -24,6 +24,7 @@ cabal.mkDerivation (self: { # Cabal. Use the flag --package-db to specify a package database (it can be used # multiple times). doCheck = false; + noHaddock = true; buildDepends = [ filepath HTTP mtl network random stm time zlib QuickCheck diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix index 4fde997fc4c8..e15990803571 100644 --- a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix @@ -5,13 +5,14 @@ cabal.mkDerivation (self: { pname = "cabal-install-ghcjs"; - version = "9e87d6a3"; + version = CabalGhcjs.version; src = CabalGhcjs.src; isLibrary = true; isExecutable = true; doCheck = false; configureFlags = "--program-suffix=-js"; preConfigure = "cd cabal-install"; + noHaddock = true; buildDepends = [ CabalGhcjs filepath HTTP mtl network random stm time zlib ]; diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index a3ecdf4147c5..9bf87014cc91 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -27,17 +27,7 @@ cabal.mkDerivation (self: rec { isExecutable = true; jailbreak = true; noHaddock = true; - haddockInternal = cabal.mkDerivation (self: { - pname = "haddock-internal"; - version = "2.14.3"; - src = fetchgit { - url = git://github.com/ghcjs/haddock-internal.git; - rev = "47758773d6b20c395a1c76a93830070fde71dbab"; - sha256 = "df1a024631b7781fcbda09d2b33a56650959b8ab6c831151b456133226ab90b2"; - }; - buildDepends = [ QuickCheck ghcPaths haddock hspec xhtml ]; # Can't specify Cabal here, or it ends up being the wrong version - doCheck = false; - }); + doCheck = false; ghcjsPrim = cabal.mkDerivation (self: { pname = "ghcjs-prim"; version = "0.1.0.0"; @@ -55,9 +45,9 @@ cabal.mkDerivation (self: rec { stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp - base16Bytestring cryptohash executablePath haddockInternal + base16Bytestring cryptohash executablePath haddockApi transformersCompat QuickCheck haddock hspec xhtml - ghcjsPrim regexPosix haddockApi + ghcjsPrim regexPosix ]; buildTools = [ nodejs git ]; testDepends = [ diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index bb3a8b3b6d15..a5fc2d4db715 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -249,6 +249,7 @@ Cabal = packages_ghc783.CabalGhcjs; }; transformersCompat = super.transformersCompat_0_3_3_3; + network = super.network_2_6_0_2; haddock = super.haddock.override { Cabal = null; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 9f656cd0deb3..e1597fb8d70c 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -908,6 +908,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcjs = callPackage ../development/tools/haskell/ghcjs { Cabal = self.Cabal_1_18_1_3; + network = self.network_2_6_0_2; }; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; From 9182824c6a6eae356c6b514994fc170407ee925d Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 29 Nov 2014 14:23:30 +0100 Subject: [PATCH 027/175] Update ghcjs --- pkgs/development/compilers/ghcjs/0.1.0.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix index f89cae50c169..2c5d950b5f51 100644 --- a/pkgs/development/compilers/ghcjs/0.1.0.nix +++ b/pkgs/development/compilers/ghcjs/0.1.0.nix @@ -14,8 +14,8 @@ cabal.mkDerivation (self: rec { version = "0.1.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "c0b8ebb3e2608fdd8dc3b74b55f281b5c24be8e1"; - sha256 = "442ebdfd426ec98a431735f72ec00c7dde54ae1f0c78dd593d33077ffdb1e2a2"; + rev = "5c2d279982466e076223fcbe1e1096e22956e5a9"; + sha256 = "0bc37b4e8bd039208a126fea39850c99459265cb273ac7237939cdbaee6ef71f"; }; bootSrc = fetchgit { url = git://github.com/ghcjs/ghcjs-boot.git; From 35cdb19f033f94a8fb804eff008e07a9f511b49a Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 29 Nov 2014 14:24:31 +0100 Subject: [PATCH 028/175] Use mkdir -p instead of deprecated ensureDir --- pkgs/build-support/cabal/ghcjs.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 3c4722c214a3..55e10dd1f5a0 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -246,12 +246,12 @@ in ./Setup copy - ensureDir $out/bin # necessary to get it added to PATH + mkdir -p $out/bin # necessary to get it added to PATH local confDir=$out/lib/ghcjs-${ghc.ghc.version}_ghc-${ghc.ghc.ghc.version}/package.conf.d local installedPkgConf=$confDir/${self.fname}.installedconf local pkgConf=$confDir/${self.fname}.conf - ensureDir $confDir + mkdir -p $confDir ./Setup register --gen-pkg-config=$pkgConf if test -f $pkgConf; then echo '[]' > $installedPkgConf From 1af6e5037b61c1939309de22ecac6dc2c95ad0a4 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sun, 30 Nov 2014 10:12:35 +0100 Subject: [PATCH 029/175] Update ghcjs --- pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 9bf87014cc91..a5410d3c24b1 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -15,8 +15,8 @@ cabal.mkDerivation (self: rec { version = "0.1.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "bd3dfe56d55fd046bfbec4d9d834af4f46595535"; - sha256 = "82c37faf725a230945d71c617be259c94a0816d240663714c3a62b85e4a2b731"; + rev = "5c2d279982466e076223fcbe1e1096e22956e5a9"; + sha256 = "0bc37b4e8bd039208a126fea39850c99459265cb273ac7237939cdbaee6ef71f"; }; shims = fetchgit { url = git://github.com/ghcjs/shims.git; From f16e4508f4e9b7c8706875747c405041a5b8052b Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sun, 30 Nov 2014 18:08:28 +0100 Subject: [PATCH 030/175] Use optparse-applicative-0.11.0.1 in ghcjs --- pkgs/development/compilers/ghcjs/0.1.0.nix | 4 ++-- .../haskell/optparse-applicative/0.11.0.1.nix | 16 ++++++++++++++++ pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- pkgs/top-level/haskell-packages.nix | 1 + 4 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 pkgs/development/libraries/haskell/optparse-applicative/0.11.0.1.nix diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix index 2c5d950b5f51..b3e13143decd 100644 --- a/pkgs/development/compilers/ghcjs/0.1.0.nix +++ b/pkgs/development/compilers/ghcjs/0.1.0.nix @@ -1,7 +1,7 @@ { cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time , zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_9_1_1 +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_11_0_1, , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall @@ -34,7 +34,7 @@ cabal.mkDerivation (self: rec { buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative_0_9_1_1 parallel safe shelly split + lens optparseApplicative_0_11_0_1 parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp diff --git a/pkgs/development/libraries/haskell/optparse-applicative/0.11.0.1.nix b/pkgs/development/libraries/haskell/optparse-applicative/0.11.0.1.nix new file mode 100644 index 000000000000..0685a51d3b0d --- /dev/null +++ b/pkgs/development/libraries/haskell/optparse-applicative/0.11.0.1.nix @@ -0,0 +1,16 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, ansiWlPprint, transformers, transformersCompat }: + +cabal.mkDerivation (self: { + pname = "optparse-applicative"; + version = "0.11.0.1"; + sha256 = "0jdzajj9w0dghv751m59l3imzm2x9lx9cqb6094mncnx8k6cf6f9"; + buildDepends = [ ansiWlPprint transformers transformersCompat ]; + meta = { + homepage = "https://github.com/pcapriotti/optparse-applicative"; + description = "Utilities and combinators for parsing command line options"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index a5410d3c24b1..f757e63d176b 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -1,7 +1,7 @@ { nodejs, cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time , zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_9_1_1 +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_11_0_1 , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall @@ -41,7 +41,7 @@ cabal.mkDerivation (self: rec { buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative_0_9_1_1 parallel safe shelly split + lens optparseApplicative_0_11_0_1 parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index e1597fb8d70c..d139f3863201 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1835,6 +1835,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in optparseApplicative_0_9_1_1 = callPackage ../development/libraries/haskell/optparse-applicative/0.9.1.1.nix {}; optparseApplicative_0_10_0 = callPackage ../development/libraries/haskell/optparse-applicative/0.10.0.nix {}; + optparseApplicative_0_11_0_1 = callPackage ../development/libraries/haskell/optparse-applicative/0.11.0.1.nix {}; optparseApplicative = self.optparseApplicative_0_10_0; pathPieces = callPackage ../development/libraries/haskell/path-pieces {}; From 841a98e081cf29391b1c61fb41a6625a5c1ea88a Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Mon, 1 Dec 2014 11:53:38 +0100 Subject: [PATCH 031/175] Update Cabal-ghcjs and ghcjs-boot --- pkgs/development/tools/haskell/Cabal-ghcjs/default.nix | 6 +++--- pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix index d7ee36da9001..b1a6e81f9277 100644 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -5,11 +5,11 @@ cabal.mkDerivation (self: { pname = "Cabal"; - version = "b9c90bb4"; + version = "7471c95f23"; src = fetchgit { url = git://github.com/ghcjs/cabal.git; - rev = "b9c90bb4d6fed8c2cc8323a7e24b67f821c1ee47"; # Must be from the ghcjs branch - sha256 = "d678d8c54d82db8b4fb0d7dc72c4832025c69586da8c0f65f6d05f6f50103c62"; + rev = "7471c95f230170342bbdc7bcb8881d5d06145f95"; # Must be from the ghcjs branch + sha256 = "a4bbb0db43d25d73f78760ca4aa1431bf00b6dd1c43483e9b659f8b13ef9ebfc"; }; preConfigure = "cd Cabal"; configureFlags = "--program-suffix=-js"; diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index f757e63d176b..dcd5356d261d 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -66,12 +66,12 @@ cabal.mkDerivation (self: rec { export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" git clone git://github.com/ghcjs/ghcjs-boot.git cd ghcjs-boot - git checkout f5e57f9d4d8241a78ebdbdb34262921782a27e1a + git checkout 8bf2861c0c776eec42e0a1833f220e36681e810c git submodule update --init --recursive ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) chmod -R u+w . # because fetchgit made it read-only local GHCJS_LIBDIR=$out${libdir} - ensureDir $GHCJS_LIBDIR + mkdir -p $GHCJS_LIBDIR cp -R ${shims} $GHCJS_LIBDIR/shims ${cabalInstallGhcjs}/bin/cabal-js update PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ From 21566e7c56370ffc7efdff0bc44453c2690caf15 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Sun, 30 Nov 2014 12:39:02 -0500 Subject: [PATCH 032/175] Remove outdated ghcjs nix expression --- pkgs/development/compilers/ghcjs/0.1.0.nix | 72 ---------------------- 1 file changed, 72 deletions(-) delete mode 100644 pkgs/development/compilers/ghcjs/0.1.0.nix diff --git a/pkgs/development/compilers/ghcjs/0.1.0.nix b/pkgs/development/compilers/ghcjs/0.1.0.nix deleted file mode 100644 index b3e13143decd..000000000000 --- a/pkgs/development/compilers/ghcjs/0.1.0.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm -, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time -, zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_11_0_1, -, parallel, safe, shelly, split, stringsearch, syb, systemFileio -, systemFilepath, tar, terminfo, textBinary, unorderedContainers -, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall -, regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch -, automake, libtool, cabalInstallGhcjs, gmp -}: - -cabal.mkDerivation (self: rec { - pname = "ghcjs"; - version = "0.1.0"; - src = fetchgit { - url = git://github.com/ghcjs/ghcjs.git; - rev = "5c2d279982466e076223fcbe1e1096e22956e5a9"; - sha256 = "0bc37b4e8bd039208a126fea39850c99459265cb273ac7237939cdbaee6ef71f"; - }; - bootSrc = fetchgit { - url = git://github.com/ghcjs/ghcjs-boot.git; - rev = "8bf2861c0c776eec42e0a1833f220e36681e810c"; - sha256 = "1f6695f7c25e40b87621ba6ce71a8338788951fd85e88e9223c8258520fbded6"; - }; - shims = fetchgit { - url = git://github.com/ghcjs/shims.git; - rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; - sha256 = "64be139022e6f662086103fca3838330006d38e6454bd3f7b66013031a47278e"; - }; - isLibrary = true; - isExecutable = true; - jailbreak = true; - noHaddock = true; - buildDepends = [ - filepath HTTP mtl network random stm time zlib aeson attoparsec - bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative_0_11_0_1 parallel safe shelly split - stringsearch syb systemFileio systemFilepath tar terminfo textBinary - unorderedContainers vector wlPprintText yaml - alex happy git gnumake gcc autoconf automake libtool patch gmp - ]; - testDepends = [ - HUnit regexPosix testFramework testFrameworkHunit - ]; - postConfigure = '' - echo Patching ghcjs with absolute paths to the Nix store - sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \ - src/Compiler/Info.hs - sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ - src-bin/Boot.hs - ''; - postInstall = '' - export HOME=$(pwd) - cp -R ${bootSrc} ghcjs-boot - cd ghcjs-boot - ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) - chmod -R u+w . # because fetchgit made it read-only - local GHCJS_LIBDIR=$out/share/ghcjs/x86_64-linux-0.1.0-7.8.2 - ensureDir $GHCJS_LIBDIR - cp -R ${shims} $GHCJS_LIBDIR/shims - ${cabalInstallGhcjs}/bin/cabal-js update - PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ - env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --init --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib - ''; - meta = { - homepage = "https://github.com/ghcjs/ghcjs"; - description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.jwiegley ]; - }; -}) From 3b25e233ab7e13e1973b18e3d5ae4125166cfe3c Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 5 Dec 2014 07:55:27 +0100 Subject: [PATCH 033/175] Use lens-4.6.0.1 instead of lens-4.4 lens-4.4 doesn't build because it requires an old version of text. --- .../libraries/haskell/lens/4.6.0.1.nix | 34 +++++++++++++++++++ pkgs/top-level/haskell-packages.nix | 3 +- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/haskell/lens/4.6.0.1.nix diff --git a/pkgs/development/libraries/haskell/lens/4.6.0.1.nix b/pkgs/development/libraries/haskell/lens/4.6.0.1.nix new file mode 100644 index 000000000000..f82368422e4a --- /dev/null +++ b/pkgs/development/libraries/haskell/lens/4.6.0.1.nix @@ -0,0 +1,34 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, bifunctors, comonad, contravariant, deepseq, distributive +, doctest, exceptions, filepath, free, genericDeriving, hashable +, hlint, HUnit, mtl, nats, parallel, primitive, profunctors +, QuickCheck, reflection, semigroupoids, semigroups, simpleReflect +, split, tagged, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, testFrameworkTh, text, transformers +, transformersCompat, unorderedContainers, vector, void +}: + +cabal.mkDerivation (self: { + pname = "lens"; + version = "4.6.0.1"; + sha256 = "099hhkca39zxfj9xavd2rafzgm2r4nm8clngcsgcrn1qsy8knvz2"; + buildDepends = [ + bifunctors comonad contravariant distributive exceptions filepath + free hashable mtl parallel primitive profunctors reflection + semigroupoids semigroups split tagged text transformers + transformersCompat unorderedContainers vector void + ]; + testDepends = [ + deepseq doctest filepath genericDeriving hlint HUnit mtl nats + parallel QuickCheck semigroups simpleReflect split testFramework + testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text + transformers unorderedContainers vector + ]; + meta = { + homepage = "http://github.com/ekmett/lens/"; + description = "Lenses, Folds and Traversals"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index cd0ef761c63a..f9c8b332febc 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1535,7 +1535,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; lens_4_4 = callPackage ../development/libraries/haskell/lens/4.4.nix {}; - lens = self.lens_4_4; + lens_4_6_0_1 = callPackage ../development/libraries/haskell/lens/4.6.0.1.nix {}; + lens = self.lens_4_6_0_1; lensAeson = callPackage ../development/libraries/haskell/lens-aeson {}; From a2d4a415d3eb598013f4ef9fddba6630043c5787 Mon Sep 17 00:00:00 2001 From: Ryan Trinkle Date: Wed, 10 Dec 2014 11:42:38 -0500 Subject: [PATCH 034/175] Bump the version of ghcjs-dom to support newer version of text --- pkgs/development/libraries/haskell/ghcjs-dom/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index 403fc8115083..50de163b8fbd 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -9,8 +9,8 @@ cabal.mkDerivation (self: { version = "0.1.0.0"; src = fetchgit { url = https://github.com/ghcjs/ghcjs-dom; - rev = "81805e75ccd41501774b90c04efd9e00d52e9798"; - sha256 = "3aa56fb81974533661aa056ed080edab29bef8ab26dae61999de4452f95949f6"; + rev = "15414daf6d7478eb98b66a6bff76607f875684a4"; + sha256 = "a1661eb3ad58c8214f75886fbeaa43b87bb3072c3abe087ad66832906a83e95a"; }; buildDepends = [ mtl ] ++ (if buildType == "jsffi" then [ ghcjsBase ] else if buildType == "webkit" then [ glib transformers gtk webkit ] else throw "unrecognized buildType"); configureFlags = if buildType == "jsffi" then [ ] else if buildType == "webkit" then [ "-f-ghcjs" "-fwebkit" "-f-gtk3" ] else throw "unrecognized buildType"; From fb591511094c328873ba3789dd459e9cc630d356 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Thu, 11 Dec 2014 20:53:25 -0500 Subject: [PATCH 035/175] purify ghcjs --- pkgs/build-support/cabal/ghcjs.nix | 2 +- .../tools/haskell/ghcjs/default.nix | 77 +++++++++++-------- .../tools/haskell/ghcjs/ghcjs.patch | 72 +++++++++++++++++ 3 files changed, 117 insertions(+), 34 deletions(-) create mode 100644 pkgs/development/tools/haskell/ghcjs/ghcjs.patch diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 55e10dd1f5a0..81728ff63970 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -194,7 +194,7 @@ in done done - configureFlags+=" --package-db=${ghc.ghc}${ghc.ghc.libdir}/ghcjs/package.conf.d" + configureFlags+=" --package-db=${ghc.ghc}/${ghc.ghc.libDir}/package.conf.d" ${optionalString (self.enableSharedExecutables && self.stdenv.isLinux) '' configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}"; diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index dcd5356d261d..9f998b17ccd9 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -9,35 +9,44 @@ , automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring , cryptohash, executablePath, transformersCompat, haddockApi , haddock, hspec, xhtml, primitive, cacert, pkgs, ghc +, coreutils }: -cabal.mkDerivation (self: rec { - pname = "ghcjs"; +let version = "0.1.0"; - src = fetchgit { - url = git://github.com/ghcjs/ghcjs.git; - rev = "5c2d279982466e076223fcbe1e1096e22956e5a9"; - sha256 = "0bc37b4e8bd039208a126fea39850c99459265cb273ac7237939cdbaee6ef71f"; + libDir = "share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version}/ghcjs"; + ghcjsBoot = fetchgit { + url = git://github.com/ghcjs/ghcjs-boot.git; + rev = "8bf2861c0c776eec42e0a1833f220e36681e810c"; + sha256 = "0fwnng56d1y98fpp2s9yl9xy21584p7fsszr4m9d3wmjciiazcv2"; }; shims = fetchgit { url = git://github.com/ghcjs/shims.git; rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; - sha256 = "64be139022e6f662086103fca3838330006d38e6454bd3f7b66013031a47278e"; + sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; }; - isLibrary = true; - isExecutable = true; - jailbreak = true; - noHaddock = true; - doCheck = false; ghcjsPrim = cabal.mkDerivation (self: { pname = "ghcjs-prim"; version = "0.1.0.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs-prim.git; rev = "915f263c06b7f4a246c6e02ecdf2b9a0550ed967"; - sha256 = "34dd58b6e2d0ce780da46b509fc2701c28a7b2182f8d700b53a80981ac8bcf86"; + sha256 = "11ngifn822d8ac5p139g32rafa0wf319yl3blh6piknhwav5ip9l"; }; buildDepends = [ primitive ]; }); +in cabal.mkDerivation (self: rec { + pname = "ghcjs"; + inherit version; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs.git; + rev = "5c2d279982466e076223fcbe1e1096e22956e5a9"; + sha256 = "07zpdvpbmk9rg4iwffi7rdjr4icr1j2kkskg2a520ffhid77phqb"; + }; + isLibrary = true; + isExecutable = true; + jailbreak = true; + noHaddock = true; + doCheck = false; buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta @@ -53,30 +62,32 @@ cabal.mkDerivation (self: rec { testDepends = [ HUnit testFramework testFrameworkHunit ]; - postConfigure = '' - echo Patching ghcjs with absolute paths to the Nix store - sed -i -e "s|getAppUserDataDirectory \"ghcjs\"|return \"$out/share/ghcjs\"|" \ - src/Compiler/Info.hs - sed -i -e "s|str = \\[\\]|str = [\"--prefix=$out\", \"--libdir=$prefix/lib/$compiler\", \"--libsubdir=$pkgid\"]|" \ - src-bin/Boot.hs + patches = [ ./ghcjs.patch ]; + postPatch = '' + substituteInPlace Setup.hs --replace "/usr/bin/env" "${coreutils}/bin/env" + substituteInPlace src/Compiler/Info.hs --replace "@PREFIX@" "$out" + substituteInPlace src-bin/Boot.hs --replace "@PREFIX@" "$out" ''; - libdir = "/share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version}"; postInstall = '' - export HOME=$(pwd) - export GIT_SSL_CAINFO="${cacert}/etc/ca-bundle.crt" - git clone git://github.com/ghcjs/ghcjs-boot.git - cd ghcjs-boot - git checkout 8bf2861c0c776eec42e0a1833f220e36681e810c - git submodule update --init --recursive - ( cd boot ; chmod u+w . ; ln -s .. ghcjs-boot ) - chmod -R u+w . # because fetchgit made it read-only - local GHCJS_LIBDIR=$out${libdir} - mkdir -p $GHCJS_LIBDIR - cp -R ${shims} $GHCJS_LIBDIR/shims - ${cabalInstallGhcjs}/bin/cabal-js update + local topDir=$out/${libDir} + mkdir -p $topDir + + cp -r ${ghcjsBoot} $topDir/ghcjs-boot + chmod -R u+w $topDir/ghcjs-boot + + cp -r ${shims} $topDir/shims + chmod -R u+w $topDir/shims + PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ - env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot --dev --with-cabal ${cabalInstallGhcjs}/bin/cabal-js --with-gmp-includes ${gmp}/include --with-gmp-libraries ${gmp}/lib + env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \ + --dev \ + --with-cabal ${cabalInstallGhcjs}/bin/cabal-js \ + --with-gmp-includes ${gmp}/include \ + --with-gmp-libraries ${gmp}/lib ''; + passthru = { + inherit libDir; + }; meta = { homepage = "https://github.com/ghcjs/ghcjs"; description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API"; diff --git a/pkgs/development/tools/haskell/ghcjs/ghcjs.patch b/pkgs/development/tools/haskell/ghcjs/ghcjs.patch new file mode 100644 index 000000000000..053480b9bfdb --- /dev/null +++ b/pkgs/development/tools/haskell/ghcjs/ghcjs.patch @@ -0,0 +1,72 @@ +diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs +index ed348db..b102695 100644 +--- a/src-bin/Boot.hs ++++ b/src-bin/Boot.hs +@@ -510,9 +510,7 @@ initPackageDB :: B () + initPackageDB = do + msg info "creating package databases" + initDB "--global" <^> beLocations . blGlobalDB +- traverseOf_ _Just initUser <^> beLocations . blUserDBDir + where +- initUser dir = rm_f (dir "package.conf") >> initDB "--user" (dir "package.conf.d") + initDB dbName db = do + rm_rf db >> mkdir_p db + ghcjs_pkg_ ["init", toTextI db] `catchAny_` return () +@@ -536,29 +534,22 @@ installDevelopmentTree = subTop $ do + msgD info $ "preparing development boot tree" + checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do + testGit "ghcjs-boot" >>= \case +- Just False -> failWith "ghcjs-boot already exists and is not a git repository" +- Just True -> do +- msg info "ghcjs-boot repository already exists but checkpoint not reached, cleaning first, then cloning" +- rm_rf "ghcjs-boot" ++ Just _ -> do ++ msg info "ghcjs-boot repository already exists; initializing ghcjs-boot" + initGhcjsBoot + Nothing -> do + msgD info "cloning ghcjs-boot git repository" + initGhcjsBoot + checkpoint' "shims-git" "shims repository already cloned" $ do + testGit "shims" >>= \case +- Just False -> failWith "shims already exists and is not a git repository" +- Just True -> do +- msgD info "shims repository already exists but checkpoint not reached, cleaning first, then cloning" +- rm_rf "shims" +- cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev ++ Just _ -> do ++ msgD info "shims repository already exists; moving on" + Nothing -> do + msgD info "cloning shims git repository" + cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev + where + initGhcjsBoot = sub $ do +- cloneGit bootDescr "ghcjs-boot" bsrcBootDevBranch bsrcBootDev + cd "ghcjs-boot" +- git_ ["submodule", "update", "--init", "--recursive"] + mapM_ patchPackage =<< allPackages + preparePrimops + buildGenPrim +@@ -1093,7 +1084,9 @@ cabalInstallFlags parmakeGhcjs = do + , "--builddir", "dist" + , "--with-compiler", ghcjs ^. pgmLocText + , "--with-hc-pkg", ghcjsPkg ^. pgmLocText +- , "--prefix", toTextI instDir ++ , "--prefix", "@PREFIX@" ++ , "--libdir", "$prefix/lib/$compiler" ++ , "--libsubdir", "$pkgid" + , bool haddock "--enable-documentation" "--disable-documentation" + , "--haddock-html" + , "--haddock-hoogle" +diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs +index 2e19849..4c9e94d 100644 +--- a/src/Compiler/Info.hs ++++ b/src/Compiler/Info.hs +@@ -48,7 +48,7 @@ compilerInfo nativeToo dflags = do + -- | the directory to use if started without -B flag + getDefaultTopDir :: IO FilePath + getDefaultTopDir = do +- appdir <- getAppUserDataDirectory "ghcjs" ++ let appdir = "@PREFIX@/share/ghcjs" + return (appdir subdir "ghcjs") + where + targetARCH = arch From 3d821e0013ed72073a028552f013c2ffcc96279d Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Wed, 24 Dec 2014 21:58:45 -0500 Subject: [PATCH 036/175] update ghcjs --- .../tools/haskell/Cabal-ghcjs/default.nix | 4 ++-- .../tools/haskell/ghcjs/default.nix | 17 +++++++------- .../tools/haskell/ghcjs/ghcjs.patch | 23 +++++++++++++------ 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix index b1a6e81f9277..9185c75e1aab 100644 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -8,8 +8,8 @@ cabal.mkDerivation (self: { version = "7471c95f23"; src = fetchgit { url = git://github.com/ghcjs/cabal.git; - rev = "7471c95f230170342bbdc7bcb8881d5d06145f95"; # Must be from the ghcjs branch - sha256 = "a4bbb0db43d25d73f78760ca4aa1431bf00b6dd1c43483e9b659f8b13ef9ebfc"; + rev = "0a9531272ed50b4057e788005e3c6e5a7e2442bd"; # Must be from the ghcjs branch + sha256 = "212af6d134ff85b8046977c8754852e4048872d330ab2250b94cd51373328daa"; }; preConfigure = "cd Cabal"; configureFlags = "--program-suffix=-js"; diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 9f998b17ccd9..4e2cc4220b40 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -16,8 +16,8 @@ let libDir = "share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version}/ghcjs"; ghcjsBoot = fetchgit { url = git://github.com/ghcjs/ghcjs-boot.git; - rev = "8bf2861c0c776eec42e0a1833f220e36681e810c"; - sha256 = "0fwnng56d1y98fpp2s9yl9xy21584p7fsszr4m9d3wmjciiazcv2"; + rev = "28f328ae5acb7427483ee1aaca66a4ed2df38472"; + sha256 = "107sqpadbjqxs3ym23qbp141ihra0a8ijaar94dbpa69g8b0xyyl"; # no .git }; shims = fetchgit { url = git://github.com/ghcjs/shims.git; @@ -29,8 +29,8 @@ let version = "0.1.0.0"; src = fetchgit { url = git://github.com/ghcjs/ghcjs-prim.git; - rev = "915f263c06b7f4a246c6e02ecdf2b9a0550ed967"; - sha256 = "11ngifn822d8ac5p139g32rafa0wf319yl3blh6piknhwav5ip9l"; + rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; + sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; }; buildDepends = [ primitive ]; }); @@ -39,8 +39,8 @@ in cabal.mkDerivation (self: rec { inherit version; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "5c2d279982466e076223fcbe1e1096e22956e5a9"; - sha256 = "07zpdvpbmk9rg4iwffi7rdjr4icr1j2kkskg2a520ffhid77phqb"; + rev = "fa0cc146b2fbdac28136fdca621e95930e2fd035"; + sha256 = "1mvs4x0x1cv11m32n5kjil3q1jxszj6capshvgz3a7mzdm5cdqp8"; }; isLibrary = true; isExecutable = true; @@ -68,7 +68,7 @@ in cabal.mkDerivation (self: rec { substituteInPlace src/Compiler/Info.hs --replace "@PREFIX@" "$out" substituteInPlace src-bin/Boot.hs --replace "@PREFIX@" "$out" ''; - postInstall = '' + preBuild = '' local topDir=$out/${libDir} mkdir -p $topDir @@ -77,7 +77,8 @@ in cabal.mkDerivation (self: rec { cp -r ${shims} $topDir/shims chmod -R u+w $topDir/shims - + ''; + postInstall = '' PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \ --dev \ diff --git a/pkgs/development/tools/haskell/ghcjs/ghcjs.patch b/pkgs/development/tools/haskell/ghcjs/ghcjs.patch index 053480b9bfdb..f5197e46d204 100644 --- a/pkgs/development/tools/haskell/ghcjs/ghcjs.patch +++ b/pkgs/development/tools/haskell/ghcjs/ghcjs.patch @@ -1,8 +1,8 @@ diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs -index ed348db..b102695 100644 +index d2c1fb3..15bf815 100644 --- a/src-bin/Boot.hs +++ b/src-bin/Boot.hs -@@ -510,9 +510,7 @@ initPackageDB :: B () +@@ -512,9 +512,7 @@ initPackageDB :: B () initPackageDB = do msg info "creating package databases" initDB "--global" <^> beLocations . blGlobalDB @@ -12,7 +12,7 @@ index ed348db..b102695 100644 initDB dbName db = do rm_rf db >> mkdir_p db ghcjs_pkg_ ["init", toTextI db] `catchAny_` return () -@@ -536,29 +534,22 @@ installDevelopmentTree = subTop $ do +@@ -538,29 +536,22 @@ installDevelopmentTree = subTop $ do msgD info $ "preparing development boot tree" checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do testGit "ghcjs-boot" >>= \case @@ -46,7 +46,16 @@ index ed348db..b102695 100644 mapM_ patchPackage =<< allPackages preparePrimops buildGenPrim -@@ -1093,7 +1084,9 @@ cabalInstallFlags parmakeGhcjs = do +@@ -672,7 +663,7 @@ patchPackage pkg + p' <- absPath p + cd (fromText pkg') + when isWindows (git_ ["config", "core.filemode", "false"]) +- git_ ["apply", "-3", toTextI p'] ++ git_ ["apply", toTextI p'] + in sub $ cond applyPatch (msg info $ "no patch for package " <> pkgName <> " found") =<< test_f p + | otherwise = return () + +@@ -1082,7 +1073,9 @@ cabalInstallFlags parmakeGhcjs = do , "--builddir", "dist" , "--with-compiler", ghcjs ^. pgmLocText , "--with-hc-pkg", ghcjsPkg ^. pgmLocText @@ -56,12 +65,12 @@ index ed348db..b102695 100644 + , "--libsubdir", "$pkgid" , bool haddock "--enable-documentation" "--disable-documentation" , "--haddock-html" - , "--haddock-hoogle" + -- workaround for hoogle support being broken in haddock for GHC 7.10RC1 diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs -index 2e19849..4c9e94d 100644 +index 33a401f..5d09c86 100644 --- a/src/Compiler/Info.hs +++ b/src/Compiler/Info.hs -@@ -48,7 +48,7 @@ compilerInfo nativeToo dflags = do +@@ -49,7 +49,7 @@ compilerInfo nativeToo dflags = do -- | the directory to use if started without -B flag getDefaultTopDir :: IO FilePath getDefaultTopDir = do From 571af5b98878a0a213f4bf2ef2e93db035d5a4d7 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 14:27:37 -0500 Subject: [PATCH 037/175] ghcjs: clean up --- .../libraries/haskell/derive/default.nix | 5 +-- .../libraries/haskell/lens/4.4.nix | 32 ------------------- .../tools/haskell/Cabal-ghcjs/default.nix | 1 - .../tools/haskell/ghcjs/default.nix | 1 + pkgs/development/tools/misc/cpphs/default.nix | 1 - pkgs/top-level/haskell-packages.nix | 1 - 6 files changed, 4 insertions(+), 37 deletions(-) delete mode 100644 pkgs/development/libraries/haskell/lens/4.4.nix diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix index f6bbd6a4a88a..d8537024052b 100644 --- a/pkgs/development/libraries/haskell/derive/default.nix +++ b/pkgs/development/libraries/haskell/derive/default.nix @@ -1,4 +1,6 @@ -{ cabal, process, filepath, haskellSrcExts, syb, transformers, uniplate }: +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, filepath, haskellSrcExts, syb, transformers, uniplate }: cabal.mkDerivation (self: { pname = "derive"; @@ -14,6 +16,5 @@ cabal.mkDerivation (self: { description = "A program and library to derive instances for data types"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.andres ]; }; }) diff --git a/pkgs/development/libraries/haskell/lens/4.4.nix b/pkgs/development/libraries/haskell/lens/4.4.nix deleted file mode 100644 index 3c05c94129eb..000000000000 --- a/pkgs/development/libraries/haskell/lens/4.4.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ cabal, bifunctors, comonad, contravariant, deepseq, distributive -, doctest, exceptions, filepath, free, genericDeriving, hashable -, hlint, HUnit, mtl, nats, parallel, primitive, profunctors -, QuickCheck, reflection, semigroupoids, semigroups, simpleReflect -, split, tagged, testFramework, testFrameworkHunit -, testFrameworkQuickcheck2, testFrameworkTh, text, transformers -, transformersCompat, unorderedContainers, vector, void, zlib -}: - -cabal.mkDerivation (self: { - pname = "lens"; - version = "4.4"; - sha256 = "06ha4px4ywfbi0n3imy2qqjq3656snsz1b0ggkwzvdzmi550sh8w"; - buildDepends = [ - bifunctors comonad contravariant distributive exceptions filepath - free hashable mtl parallel primitive profunctors reflection - semigroupoids semigroups split tagged text transformers - transformersCompat unorderedContainers vector void zlib - ]; - testDepends = [ - deepseq doctest filepath genericDeriving hlint HUnit mtl nats - parallel QuickCheck semigroups simpleReflect split testFramework - testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text - transformers unorderedContainers vector - ]; - meta = { - homepage = "http://github.com/ekmett/lens/"; - description = "Lenses, Folds and Traversals"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix index 9185c75e1aab..c228740a4fc3 100644 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix @@ -38,6 +38,5 @@ cabal.mkDerivation (self: { description = "The command-line interface for Cabal and Hackage"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.andres ]; }; }) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 4e2cc4220b40..9cd2080f0c9b 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -24,6 +24,7 @@ let rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; }; + # TOD: move this into haskell-packages proper ghcjsPrim = cabal.mkDerivation (self: { pname = "ghcjs-prim"; version = "0.1.0.0"; diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index 4e996c3288fa..da43b1340317 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -12,6 +12,5 @@ cabal.mkDerivation (self: { description = "A liberalised re-implementation of cpp, the C pre-processor"; license = "LGPL"; platforms = self.ghc.meta.platforms; - maintainers = [ self.stdenv.lib.maintainers.andres ]; }; }) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index f9c8b332febc..6f6c30aaaf31 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -1534,7 +1534,6 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in lazysmallcheck = callPackage ../development/libraries/haskell/lazysmallcheck {}; lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; - lens_4_4 = callPackage ../development/libraries/haskell/lens/4.4.nix {}; lens_4_6_0_1 = callPackage ../development/libraries/haskell/lens/4.6.0.1.nix {}; lens = self.lens_4_6_0_1; From f36fabb389ed9eec6911f341859a8ddab9e9de88 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 16:51:39 -0500 Subject: [PATCH 038/175] ghcjs: fix build --- pkgs/development/tools/haskell/ghcjs/default.nix | 4 ++-- pkgs/top-level/haskell-defaults.nix | 9 ++++----- pkgs/top-level/haskell-packages.nix | 5 +---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 9cd2080f0c9b..0df3aecebc3b 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -1,7 +1,7 @@ { nodejs, cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck, random, stm , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, time , zlib, aeson, attoparsec, bzlib, dataDefault, ghcPaths, hashable -, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative_0_11_0_1 +, haskellSrcExts, haskellSrcMeta, lens, optparseApplicative , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers , vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall @@ -51,7 +51,7 @@ in cabal.mkDerivation (self: rec { buildDepends = [ filepath HTTP mtl network random stm time zlib aeson attoparsec bzlib dataDefault ghcPaths hashable haskellSrcExts haskellSrcMeta - lens optparseApplicative_0_11_0_1 parallel safe shelly split + lens optparseApplicative parallel safe shelly split stringsearch syb systemFileio systemFilepath tar terminfo textBinary unorderedContainers vector wlPprintText yaml alex happy git gnumake gcc autoconf automake libtool patch gmp diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 9d8177d49b8b..95520ee94af4 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -236,12 +236,11 @@ }; packages_ghcjs = - let parent = packages_ghc783.override { + let parent = packages_ghc784.override { extension = self: super: { ghcjs = super.ghcjs.override { - Cabal = packages_ghc783.CabalGhcjs; + Cabal = packages_ghc784.CabalGhcjs; }; - transformersCompat = super.transformersCompat_0_3_3_3; network = super.network_2_6_0_2; haddock = super.haddock.override { Cabal = null; @@ -338,7 +337,7 @@ tfRandom = self.callPackage ../development/libraries/haskell/tf-random {}; /* - buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? packages_ghc783.cabal2nix }: let + buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? packages_ghc784.cabal2nix }: let cabalExpr = pkgs.stdenv.mkDerivation ({ name = "${name}.nix"; @@ -361,7 +360,7 @@ }; extension = self: super: { buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // { - nativePkgs = packages_ghc783; + nativePkgs = packages_ghc784; }); }; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 1d640875212a..abfa8f931ca6 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -2652,10 +2652,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in transformersBase = callPackage ../development/libraries/haskell/transformers-base {}; - transformersCompat_0_3_3 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.nix {}; - transformersCompat_0_3_3_3 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.3.nix {}; - transformersCompat_0_3_3_4 = callPackage ../development/libraries/haskell/transformers-compat/0.3.3.4.nix {}; - transformersCompat = self.transformersCompat_0_3_3_4; + transformersCompat = callPackage ../development/libraries/haskell/transformers-compat {}; transformersFree = callPackage ../development/libraries/haskell/transformers-free {}; From 347a9674c1b7c56eba2ff1653ba46a94d56db963 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 18:48:12 -0500 Subject: [PATCH 039/175] ghcjs: cleanup --- pkgs/build-support/cabal/default.nix | 3 +- pkgs/build-support/cabal/ghcjs.nix | 2 +- .../libraries/haskell/Cabal/1.22.0.0.nix | 26 ++++++++++++ .../haskell/dependent-map/default.nix | 3 -- .../libraries/haskell/derive/default.nix | 2 +- .../libraries/haskell/ghcjs-prim/default.nix | 12 ++++++ .../haskell/lens/{4.2.nix => default.nix} | 0 .../libraries/haskell/old-time/1.1.0.2.nix | 12 ------ .../libraries/haskell/text-binary/default.nix | 2 + .../haskell/transformers-compat/0.3.3.3.nix | 14 ------- .../tools/haskell/Cabal-ghcjs/default.nix | 42 ------------------- .../tools/haskell/ghcjs/default.nix | 30 ++++++------- pkgs/development/tools/misc/cpphs/default.nix | 6 ++- .../cabal-install/1.22.0.0.nix} | 13 +++--- pkgs/top-level/haskell-defaults.nix | 8 ++-- pkgs/top-level/haskell-packages.nix | 14 +++---- 16 files changed, 78 insertions(+), 111 deletions(-) create mode 100644 pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix create mode 100644 pkgs/development/libraries/haskell/ghcjs-prim/default.nix rename pkgs/development/libraries/haskell/lens/{4.2.nix => default.nix} (100%) delete mode 100644 pkgs/development/libraries/haskell/old-time/1.1.0.2.nix delete mode 100644 pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix delete mode 100644 pkgs/development/tools/haskell/Cabal-ghcjs/default.nix rename pkgs/{development/tools/haskell/cabal-install-ghcjs/default.nix => tools/package-management/cabal-install/1.22.0.0.nix} (68%) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index c3d26db74d31..0243fcff0991 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -298,7 +298,8 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; ${optionalString (self.enableSharedExecutables && self.isExecutable && self.stdenv.isDarwin) '' for exe in "$out/bin/"* ; do - install_name_tool -add_rpath $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe || true # Ignore failures, which seem to be due to hitting bash scripts rather than binaries + install_name_tool -add_rpath \ + $out/lib/${ghc.ghc.name}/${self.pname}-${self.version} $exe done ''} diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 81728ff63970..2babcf31084e 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -82,7 +82,7 @@ in # default buildInputs are just ghc, if more buildInputs are required # buildInputs can be extended by the client by using extraBuildInputs, # but often propagatedBuildInputs is preferable anyway - buildInputs = [ghc ghc.ghc.parent.CabalGhcjs] ++ self.extraBuildInputs; + buildInputs = [ghc ghc.ghc.parent.Cabal_1_22_0_0] ++ self.extraBuildInputs; extraBuildInputs = self.buildTools ++ (optionals self.doCheck self.testDepends) ++ (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++ diff --git a/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix b/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix new file mode 100644 index 000000000000..5de766529be6 --- /dev/null +++ b/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix @@ -0,0 +1,26 @@ +{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck +, random, stm, testFramework, testFrameworkHunit +, testFrameworkQuickcheck2, time, zlib, fetchgit +}: + +cabal.mkDerivation (self: { + pname = "Cabal"; + version = "1.22.0.0"; + src = fetchgit { + url = git://github.com/haskell/cabal.git; + rev = "699d4df12e1ec75e9100b521fb3690eaa6986635"; + sha256 = "112wz0mq7b0hvlj69imnwja2n4kv75m49yy5y8924gik9801zjba"; + }; + preConfigure = "cd Cabal"; + + doCheck = false; + noHaddock = true; + + buildDepends = [ + filepath HTTP mtl network random stm time zlib QuickCheck + ]; + testDepends = [ + filepath HTTP HUnit mtl network QuickCheck stm testFramework + testFrameworkHunit testFrameworkQuickcheck2 time zlib + ]; +}) diff --git a/pkgs/development/libraries/haskell/dependent-map/default.nix b/pkgs/development/libraries/haskell/dependent-map/default.nix index 36f42d7d8e55..0270139c3831 100644 --- a/pkgs/development/libraries/haskell/dependent-map/default.nix +++ b/pkgs/development/libraries/haskell/dependent-map/default.nix @@ -7,9 +7,6 @@ cabal.mkDerivation (self: { version = "0.1.1.2"; sha256 = "1g8mq8189c6wr1rik70019gqrnk84c613x9cn5383p7hhfyc0rnn"; buildDepends = [ dependentSum ]; - preConfigure = '' - sed -i 's/^.*ghc-options:.*$//' *.cabal - ''; meta = { homepage = "https://github.com/mokus0/dependent-map"; description = "Dependent finite maps (partial dependent products)"; diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix index d8537024052b..5b8c5297316a 100644 --- a/pkgs/development/libraries/haskell/derive/default.nix +++ b/pkgs/development/libraries/haskell/derive/default.nix @@ -9,7 +9,7 @@ cabal.mkDerivation (self: { isLibrary = true; isExecutable = true; buildDepends = [ - process filepath haskellSrcExts syb transformers uniplate + filepath haskellSrcExts syb transformers uniplate ]; meta = { homepage = "http://community.haskell.org/~ndm/derive/"; diff --git a/pkgs/development/libraries/haskell/ghcjs-prim/default.nix b/pkgs/development/libraries/haskell/ghcjs-prim/default.nix new file mode 100644 index 000000000000..04d73661e600 --- /dev/null +++ b/pkgs/development/libraries/haskell/ghcjs-prim/default.nix @@ -0,0 +1,12 @@ +{ cabal, primitive, fetchgit }: + +cabal.mkDerivation (self: { + pname = "ghcjs-prim"; + version = "0.1.0.0"; + src = fetchgit { + url = git://github.com/ghcjs/ghcjs-prim.git; + rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; + sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; + }; + buildDepends = [ primitive ]; +}) diff --git a/pkgs/development/libraries/haskell/lens/4.2.nix b/pkgs/development/libraries/haskell/lens/default.nix similarity index 100% rename from pkgs/development/libraries/haskell/lens/4.2.nix rename to pkgs/development/libraries/haskell/lens/default.nix diff --git a/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix b/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix deleted file mode 100644 index eab8e3e5c631..000000000000 --- a/pkgs/development/libraries/haskell/old-time/1.1.0.2.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ cabal }: - -cabal.mkDerivation (self: { - pname = "old-time"; - version = "1.1.0.2"; - sha256 = "1nrqbpwxsmga13gcyn7bg25gkm61fmix07gm76d1f1i4impgqw1r"; - meta = { - description = "Time library"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/libraries/haskell/text-binary/default.nix b/pkgs/development/libraries/haskell/text-binary/default.nix index a1d274a6362e..9e6205b7001e 100644 --- a/pkgs/development/libraries/haskell/text-binary/default.nix +++ b/pkgs/development/libraries/haskell/text-binary/default.nix @@ -1,3 +1,5 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + { cabal, binary, text }: cabal.mkDerivation (self: { diff --git a/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix b/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix deleted file mode 100644 index c0343aa6be79..000000000000 --- a/pkgs/development/libraries/haskell/transformers-compat/0.3.3.3.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ cabal, transformers }: - -cabal.mkDerivation (self: { - pname = "transformers-compat"; - version = "0.3.3.3"; - sha256 = "18cqghf0gc97j9qnlfnwwhvfm8j4sk99rm0xv3bf6ml8slk7njx7"; - buildDepends = [ transformers ]; - meta = { - homepage = "http://github.com/ekmett/transformers-compat/"; - description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix b/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix deleted file mode 100644 index c228740a4fc3..000000000000 --- a/pkgs/development/tools/haskell/Cabal-ghcjs/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck -, random, stm, testFramework, testFrameworkHunit -, testFrameworkQuickcheck2, time, zlib, fetchgit -}: - -cabal.mkDerivation (self: { - pname = "Cabal"; - version = "7471c95f23"; - src = fetchgit { - url = git://github.com/ghcjs/cabal.git; - rev = "0a9531272ed50b4057e788005e3c6e5a7e2442bd"; # Must be from the ghcjs branch - sha256 = "212af6d134ff85b8046977c8754852e4048872d330ab2250b94cd51373328daa"; - }; - preConfigure = "cd Cabal"; - configureFlags = "--program-suffix=-js"; - - # jww (2014-05-31): Why is this failing? - # BuildDeps/InternalLibrary4: - # : [Failed] - # expected: 'setup install' should succeed - # output: "/private/var/folders/8h/tky3qz1d63l05l5jp_nzwzjr0000gn/T/nix-build-haskell-Cabal-ghcjs-ghc7.8.2-9e87d6a3-shared.drv-0/git-export/Cabal/tests/Setup configure --user -w /nix/store/v1gr2sk0117ycn9bmwyp3whgxqkbd5sl-ghc-7.8.2-wrapper/bin/ghc" in PackageTests/BuildDeps/InternalLibrary4/to-install - # Configuring InternalLibrary4-0.2... - # Setup: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible with - # Cabal. Use the flag --package-db to specify a package database (it can be used - # multiple times). - doCheck = false; - noHaddock = true; - - buildDepends = [ - filepath HTTP mtl network random stm time zlib QuickCheck - ]; - testDepends = [ - filepath HTTP HUnit mtl network QuickCheck stm testFramework - testFrameworkHunit testFrameworkQuickcheck2 time zlib - ]; - meta = { - homepage = "http://www.haskell.org/cabal/"; - description = "The command-line interface for Cabal and Hackage"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 0df3aecebc3b..b6034916a6e2 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -4,12 +4,13 @@ , haskellSrcExts, haskellSrcMeta, lens, optparseApplicative , parallel, safe, shelly, split, stringsearch, syb, systemFileio , systemFilepath, tar, terminfo, textBinary, unorderedContainers -, vector, wlPprintText, yaml, fetchgit, Cabal, CabalGhcjs, cabalInstall +, vector, wlPprintText, yaml, fetchgit, Cabal, cabalInstall , regexPosix, alex, happy, git, gnumake, gcc, autoconf, patch -, automake, libtool, cabalInstallGhcjs, gmp, base16Bytestring +, automake, libtool, gmp, base16Bytestring , cryptohash, executablePath, transformersCompat, haddockApi , haddock, hspec, xhtml, primitive, cacert, pkgs, ghc , coreutils +, ghcjsPrim }: let version = "0.1.0"; @@ -24,17 +25,16 @@ let rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; }; - # TOD: move this into haskell-packages proper - ghcjsPrim = cabal.mkDerivation (self: { - pname = "ghcjs-prim"; - version = "0.1.0.0"; - src = fetchgit { - url = git://github.com/ghcjs/ghcjs-prim.git; - rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; - sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; - }; - buildDepends = [ primitive ]; - }); + #ghcjsPrim = cabal.mkDerivation (self: { + # pname = "ghcjs-prim"; + # version = "0.1.0.0"; + # src = fetchgit { + # url = git://github.com/ghcjs/ghcjs-prim.git; + # rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; + # sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; + # }; + # buildDepends = [ primitive ]; + #}); in cabal.mkDerivation (self: rec { pname = "ghcjs"; inherit version; @@ -80,10 +80,10 @@ in cabal.mkDerivation (self: rec { chmod -R u+w $topDir/shims ''; postInstall = '' - PATH=$out/bin:${CabalGhcjs}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ + PATH=$out/bin:${Cabal}/bin:$PATH LD_LIBRARY_PATH=${gmp}/lib:${gcc.gcc}/lib64:$LD_LIBRARY_PATH \ env -u GHC_PACKAGE_PATH $out/bin/ghcjs-boot \ --dev \ - --with-cabal ${cabalInstallGhcjs}/bin/cabal-js \ + --with-cabal ${cabalInstall}/bin/cabal \ --with-gmp-includes ${gmp}/include \ --with-gmp-libraries ${gmp}/lib ''; diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix index da43b1340317..8167ae924165 100644 --- a/pkgs/development/tools/misc/cpphs/default.nix +++ b/pkgs/development/tools/misc/cpphs/default.nix @@ -1,4 +1,6 @@ -{ cabal, polyparse, oldTime }: +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, polyparse }: cabal.mkDerivation (self: { pname = "cpphs"; @@ -6,7 +8,7 @@ cabal.mkDerivation (self: { sha256 = "0ds712zabigswf3cljzh7f2ys4rl1fj2cf76lbw856adm8514gxc"; isLibrary = true; isExecutable = true; - buildDepends = [ oldTime polyparse ]; + buildDepends = [ polyparse ]; meta = { homepage = "http://projects.haskell.org/cpphs/"; description = "A liberalised re-implementation of cpp, the C pre-processor"; diff --git a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix b/pkgs/tools/package-management/cabal-install/1.22.0.0.nix similarity index 68% rename from pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix rename to pkgs/tools/package-management/cabal-install/1.22.0.0.nix index e15990803571..40a11de2b23f 100644 --- a/pkgs/development/tools/haskell/cabal-install-ghcjs/default.nix +++ b/pkgs/tools/package-management/cabal-install/1.22.0.0.nix @@ -1,23 +1,22 @@ -{ cabal, CabalGhcjs, filepath, HTTP, HUnit, mtl, network, QuickCheck +{ cabal, Cabal, filepath, HTTP, HUnit, mtl, network, QuickCheck , random, stm, testFramework, testFrameworkHunit , testFrameworkQuickcheck2, time, zlib, fetchgit }: cabal.mkDerivation (self: { - pname = "cabal-install-ghcjs"; - version = CabalGhcjs.version; - src = CabalGhcjs.src; + pname = "cabal-install"; + version = Cabal.version; + src = Cabal.src; isLibrary = true; isExecutable = true; doCheck = false; - configureFlags = "--program-suffix=-js"; preConfigure = "cd cabal-install"; noHaddock = true; buildDepends = [ - CabalGhcjs filepath HTTP mtl network random stm time zlib + Cabal filepath HTTP mtl network random stm time zlib ]; testDepends = [ - CabalGhcjs filepath HTTP HUnit mtl network QuickCheck stm testFramework + Cabal filepath HTTP HUnit mtl network QuickCheck stm testFramework testFrameworkHunit testFrameworkQuickcheck2 time zlib ]; postInstall = '' diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 95520ee94af4..777859b37fc4 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -239,9 +239,9 @@ let parent = packages_ghc784.override { extension = self: super: { ghcjs = super.ghcjs.override { - Cabal = packages_ghc784.CabalGhcjs; + Cabal = packages_ghc784.Cabal_1_22_0_0; + cabalInstall = packages_ghc784.cabalInstall_1_22_0_0; }; - network = super.network_2_6_0_2; haddock = super.haddock.override { Cabal = null; }; @@ -255,8 +255,8 @@ # This is the list of packages that are built into a booted ghcjs installation # It can be generated with the command: # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'" - Cabal_1_21_0_0 = null; - Cabal = self.Cabal_1_21_0_0; + Cabal_1_20_0_2 = null; + Cabal = self.Cabal_1_22_0_0; aeson_0_8_0_0 = null; aeson = self.aeson_0_8_0_0; array_0_5_0_0 = null; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index abfa8f931ca6..fa6dc32afa0d 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -356,6 +356,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in Cabal_1_16_0_3 = callPackage ../development/libraries/haskell/Cabal/1.16.0.3.nix {}; Cabal_1_18_1_3 = callPackage ../development/libraries/haskell/Cabal/1.18.1.3.nix {}; Cabal_1_20_0_2 = callPackage ../development/libraries/haskell/Cabal/1.20.0.2.nix {}; + Cabal_1_22_0_0 = callPackage ../development/libraries/haskell/Cabal/1.22.0.0.nix {}; Cabal = null; # core package since forever cabalCargs = callPackage ../development/libraries/haskell/cabal-cargs {}; @@ -940,13 +941,14 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcjs = callPackage ../development/tools/haskell/ghcjs { Cabal = self.Cabal_1_18_1_3; - network = self.network_2_6_0_2; }; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; ghcjsCodemirror = callPackage ../development/libraries/haskell/ghcjs-codemirror {}; + ghcjsPrim = callPackage ../development/libraries/haskell/ghcjs-prim {}; + ghcMod = callPackage ../development/libraries/haskell/ghc-mod { inherit (pkgs) emacs; }; ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {}; @@ -1543,9 +1545,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in lazysmallcheck = callPackage ../development/libraries/haskell/lazysmallcheck {}; - lens_4_2 = callPackage ../development/libraries/haskell/lens/4.2.nix {}; - lens_4_6_0_1 = callPackage ../development/libraries/haskell/lens/4.6.0.1.nix {}; - lens = self.lens_4_6_0_1; + lens = callPackage ../development/libraries/haskell/lens {}; lensAeson = callPackage ../development/libraries/haskell/lens-aeson {}; @@ -2994,8 +2994,6 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cake3 = callPackage ../development/tools/haskell/cake3 {}; - oldTime_1_1_0_2 = callPackage ../development/libraries/haskell/old-time/1.1.0.2.nix {}; - oldTime = null; # By default, use the built-in old-time library cpphs = callPackage ../development/tools/misc/cpphs {}; DrIFT = callPackage ../development/tools/haskell/DrIFT {}; @@ -3168,11 +3166,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix { Cabal = self.Cabal_1_16_0_3; }; cabalInstall_1_18_0_3 = callPackage ../tools/package-management/cabal-install/1.18.0.3.nix { Cabal = self.Cabal_1_18_1_3; }; cabalInstall_1_20_0_4 = callPackage ../tools/package-management/cabal-install/1.20.0.4.nix { Cabal = self.Cabal_1_20_0_2; }; + cabalInstall_1_22_0_0 = callPackage ../tools/package-management/cabal-install/1.22.0.0.nix { Cabal = self.Cabal_1_22_0_0; }; cabalInstall = self.cabalInstall_1_20_0_4; - CabalGhcjs = callPackage ../development/tools/haskell/Cabal-ghcjs {}; - cabalInstallGhcjs = callPackage ../development/tools/haskell/cabal-install-ghcjs {}; - codex = callPackage ../development/tools/haskell/codex {}; commandQq = callPackage ../development/libraries/haskell/command-qq {}; From bd6cbe73e4eae6c414d5c5aa0ddefb061481ae65 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 18:51:43 -0500 Subject: [PATCH 040/175] ghcjs: remove duplicated lens expression --- .../libraries/haskell/lens/4.6.0.1.nix | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 pkgs/development/libraries/haskell/lens/4.6.0.1.nix diff --git a/pkgs/development/libraries/haskell/lens/4.6.0.1.nix b/pkgs/development/libraries/haskell/lens/4.6.0.1.nix deleted file mode 100644 index f82368422e4a..000000000000 --- a/pkgs/development/libraries/haskell/lens/4.6.0.1.nix +++ /dev/null @@ -1,34 +0,0 @@ -# This file was auto-generated by cabal2nix. Please do NOT edit manually! - -{ cabal, bifunctors, comonad, contravariant, deepseq, distributive -, doctest, exceptions, filepath, free, genericDeriving, hashable -, hlint, HUnit, mtl, nats, parallel, primitive, profunctors -, QuickCheck, reflection, semigroupoids, semigroups, simpleReflect -, split, tagged, testFramework, testFrameworkHunit -, testFrameworkQuickcheck2, testFrameworkTh, text, transformers -, transformersCompat, unorderedContainers, vector, void -}: - -cabal.mkDerivation (self: { - pname = "lens"; - version = "4.6.0.1"; - sha256 = "099hhkca39zxfj9xavd2rafzgm2r4nm8clngcsgcrn1qsy8knvz2"; - buildDepends = [ - bifunctors comonad contravariant distributive exceptions filepath - free hashable mtl parallel primitive profunctors reflection - semigroupoids semigroups split tagged text transformers - transformersCompat unorderedContainers vector void - ]; - testDepends = [ - deepseq doctest filepath genericDeriving hlint HUnit mtl nats - parallel QuickCheck semigroups simpleReflect split testFramework - testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text - transformers unorderedContainers vector - ]; - meta = { - homepage = "http://github.com/ekmett/lens/"; - description = "Lenses, Folds and Traversals"; - license = self.stdenv.lib.licenses.bsd3; - platforms = self.ghc.meta.platforms; - }; -}) From dcee26642cd49857c789b7f70055d100c5253304 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 18:53:23 -0500 Subject: [PATCH 041/175] ghcjs: remove commented-out ghcjs-prim --- pkgs/development/tools/haskell/ghcjs/default.nix | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index b6034916a6e2..47bb656bc305 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -25,16 +25,6 @@ let rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; }; - #ghcjsPrim = cabal.mkDerivation (self: { - # pname = "ghcjs-prim"; - # version = "0.1.0.0"; - # src = fetchgit { - # url = git://github.com/ghcjs/ghcjs-prim.git; - # rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84"; - # sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz"; - # }; - # buildDepends = [ primitive ]; - #}); in cabal.mkDerivation (self: rec { pname = "ghcjs"; inherit version; From 83d58831bca254e48bb7e3b687f2db22cd10c945 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 19:51:21 -0500 Subject: [PATCH 042/175] ghcjs: update revisions --- pkgs/development/tools/haskell/ghcjs/default.nix | 12 ++++++------ pkgs/development/tools/haskell/ghcjs/ghcjs.patch | 13 ++----------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/tools/haskell/ghcjs/default.nix index 47bb656bc305..6b8467521492 100644 --- a/pkgs/development/tools/haskell/ghcjs/default.nix +++ b/pkgs/development/tools/haskell/ghcjs/default.nix @@ -17,21 +17,21 @@ let libDir = "share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.ghc.version}/ghcjs"; ghcjsBoot = fetchgit { url = git://github.com/ghcjs/ghcjs-boot.git; - rev = "28f328ae5acb7427483ee1aaca66a4ed2df38472"; - sha256 = "107sqpadbjqxs3ym23qbp141ihra0a8ijaar94dbpa69g8b0xyyl"; # no .git + rev = "5c7a71472d5a797e895914d3b82cea447a058793"; + sha256 = "0dp97bgbnlr3sd9yfnk27p6dfv46fi26sn6y6qv1wxs5i29kmjav"; }; shims = fetchgit { url = git://github.com/ghcjs/shims.git; - rev = "5e11d33cb74f8522efca0ace8365c0dc994b10f6"; - sha256 = "13i78wd064v0nvvx6js5wqw6s01hhf1s7z03c4465xp64a817gk4"; + rev = "7e15b992b538298c0da1de73e202d950a279cbfb"; + sha256 = "0ck7qwizrjxh9mjfqcaw083sjlwhd1kvgvdcp3plzh7g2kd1lmzn"; }; in cabal.mkDerivation (self: rec { pname = "ghcjs"; inherit version; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "fa0cc146b2fbdac28136fdca621e95930e2fd035"; - sha256 = "1mvs4x0x1cv11m32n5kjil3q1jxszj6capshvgz3a7mzdm5cdqp8"; + rev = "312a040d579133b4e251ac375e5f94e506c1a981"; + sha256 = "0c3bjaz2wwi8lxmxp9bajyhcs97aazgzfgm1fc8mggk94nr4fhrk"; }; isLibrary = true; isExecutable = true; diff --git a/pkgs/development/tools/haskell/ghcjs/ghcjs.patch b/pkgs/development/tools/haskell/ghcjs/ghcjs.patch index f5197e46d204..92f67fb72127 100644 --- a/pkgs/development/tools/haskell/ghcjs/ghcjs.patch +++ b/pkgs/development/tools/haskell/ghcjs/ghcjs.patch @@ -1,5 +1,5 @@ diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs -index d2c1fb3..15bf815 100644 +index 988955b..a55f07b 100644 --- a/src-bin/Boot.hs +++ b/src-bin/Boot.hs @@ -512,9 +512,7 @@ initPackageDB :: B () @@ -46,16 +46,7 @@ index d2c1fb3..15bf815 100644 mapM_ patchPackage =<< allPackages preparePrimops buildGenPrim -@@ -672,7 +663,7 @@ patchPackage pkg - p' <- absPath p - cd (fromText pkg') - when isWindows (git_ ["config", "core.filemode", "false"]) -- git_ ["apply", "-3", toTextI p'] -+ git_ ["apply", toTextI p'] - in sub $ cond applyPatch (msg info $ "no patch for package " <> pkgName <> " found") =<< test_f p - | otherwise = return () - -@@ -1082,7 +1073,9 @@ cabalInstallFlags parmakeGhcjs = do +@@ -1086,7 +1077,9 @@ cabalInstallFlags parmakeGhcjs = do , "--builddir", "dist" , "--with-compiler", ghcjs ^. pgmLocText , "--with-hc-pkg", ghcjsPkg ^. pgmLocText From c05ec6104d98c236bd88b3843c315047a77a5886 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 19:54:48 -0500 Subject: [PATCH 043/175] ghcjs-dom: fix expression and update to version 0.1.1.3 --- pkgs/development/libraries/haskell/ghcjs-dom/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index 63b65a1224f1..1c94d0889595 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -6,9 +6,8 @@ cabal.mkDerivation (self: { pname = "ghcjs-dom"; - version = "0.1.1.1"; - sha256 = "0fwwm658gf4fp32zmfskfayi480ddsf40y2cfla88a7l1rbacwif"; - buildDepends = [ ghcjsBase mtl text ]; + version = "0.1.1.3"; + sha256 = "0pdxb2s7fflrh8sbqakv0qi13jkn3d0yc32xhg2944yfjg5fvlly"; buildDepends = [ mtl ] ++ (if buildType == "jsffi" then [ ghcjsBase ] else if buildType == "webkit" then [ glib transformers gtk webkit ] else throw "unrecognized buildType"); configureFlags = if buildType == "jsffi" then [ ] else if buildType == "webkit" then [ "-f-ghcjs" "-fwebkit" "-f-gtk3" ] else throw "unrecognized buildType"; meta = { From d05e237cb022381da765e070a602f0d9c23634da Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 21:40:18 -0500 Subject: [PATCH 044/175] ghcjs-dom: use correct conf-flags and dependencies --- pkgs/top-level/haskell-defaults.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 777859b37fc4..be464a3d20eb 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -17,6 +17,15 @@ ghcHEADPrefs = self : super : super // { cabalInstall_1_20_0_4 = super.cabalInstall_1_20_0_4.override { Cabal = null; }; mtl = self.mtl_2_2_1; + ghcjsBase = null; + ghcjsDom = with self; super.ghcjsDom.override { + cabal = self.cabal.override { + extension = self: super: { + configureFlags = [ "-f-ghcjs" "-fwebkit" "-f-gtk3" ]; + buildDepends = [ mtl glib transformers gtk webkit ]; + }; + }; + }; }; ghc784Prefs = self : super : ghcHEADPrefs self super // { @@ -359,6 +368,14 @@ */ }; extension = self: super: { + ghcjsDom = with self; super.ghcjsDom.override { + cabal = self.cabal.override { + extension = self: super: { + configureFlags = [ ]; + buildDepends = [ mtl ghcjsBase ]; + }; + }; + }; buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // { nativePkgs = packages_ghc784; }); From 0dabcc34c3f0568893af485cbc8dd55c4c70ad46 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 21:51:30 -0500 Subject: [PATCH 045/175] ghcjs-dom: clean up --- .../libraries/haskell/ghcjs-dom/default.nix | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index 1c94d0889595..d6333b867b45 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -1,15 +1,12 @@ -{ cabal, fetchgit, ghc, mtl -, buildType ? if ghc.ghc.pname or null == "ghcjs" then "jsffi" else "webkit" -, ghcjsBase ? null # jsffi dependencies -, glib ? null, transformers ? null, gtk ? null, webkit ? null # webkit dependencies -}: +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, ghcjsBase, mtl, text, fetchgit }: cabal.mkDerivation (self: { pname = "ghcjs-dom"; version = "0.1.1.3"; sha256 = "0pdxb2s7fflrh8sbqakv0qi13jkn3d0yc32xhg2944yfjg5fvlly"; - buildDepends = [ mtl ] ++ (if buildType == "jsffi" then [ ghcjsBase ] else if buildType == "webkit" then [ glib transformers gtk webkit ] else throw "unrecognized buildType"); - configureFlags = if buildType == "jsffi" then [ ] else if buildType == "webkit" then [ "-f-ghcjs" "-fwebkit" "-f-gtk3" ] else throw "unrecognized buildType"; + buildDepends = [ ghcjsBase mtl text ]; meta = { description = "DOM library that supports both GHCJS and WebKitGTK"; license = self.stdenv.lib.licenses.mit; From 5288863ada3d3f158ce843fce61b9e52f1578e40 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 21:52:53 -0500 Subject: [PATCH 046/175] webkit (haskell package): update to 0.13.1.1 --- pkgs/development/libraries/haskell/webkit/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/haskell/webkit/default.nix b/pkgs/development/libraries/haskell/webkit/default.nix index 2c3cdb39d80d..63b8566b924b 100644 --- a/pkgs/development/libraries/haskell/webkit/default.nix +++ b/pkgs/development/libraries/haskell/webkit/default.nix @@ -6,8 +6,8 @@ cabal.mkDerivation (self: { pname = "webkit"; - version = "0.13.0.3"; - sha256 = "0l05cg6krafpcfszcka03x7gay8wg1fhd0gpbn2cchfshfkicgxc"; + version = "0.13.1.1"; + sha256 = "0652as9wq0ajaqmcx14y2svishccgrywyagrbzga7m06r3h94dz5"; buildDepends = [ cairo glib gtk mtl pango text ]; buildTools = [ gtk2hsBuildtools ]; pkgconfigDepends = [ webkit ]; From 7661626e2144edab0a7b538d635dd258a8256940 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 21:54:41 -0500 Subject: [PATCH 047/175] ghcjs-dom: remove unused fetchgit --- pkgs/development/libraries/haskell/ghcjs-dom/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix index d6333b867b45..b5e0a258fdee 100644 --- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix +++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix @@ -1,6 +1,6 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, ghcjsBase, mtl, text, fetchgit }: +{ cabal, ghcjsBase, mtl, text }: cabal.mkDerivation (self: { pname = "ghcjs-dom"; From 94aa6539ded155b86bc9077fb624a2ee6a14e7e6 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 21:57:11 -0500 Subject: [PATCH 048/175] remove ghcServer --- pkgs/top-level/haskell-packages.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index fa6dc32afa0d..5a47a16028eb 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -937,8 +937,6 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcid = callPackage ../development/tools/haskell/ghcid {}; - ghcServer = callPackage ../development/libraries/haskell/ghc-server {}; - ghcjs = callPackage ../development/tools/haskell/ghcjs { Cabal = self.Cabal_1_18_1_3; }; From a8d78dffb0c0f7d4eaca2b3d3f3478ceffa485f1 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 22:09:05 -0500 Subject: [PATCH 049/175] ghcjs: don't use extension to set Cabal --- pkgs/top-level/haskell-defaults.nix | 4 ---- pkgs/top-level/haskell-packages.nix | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index be464a3d20eb..369f52854dc2 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -247,10 +247,6 @@ packages_ghcjs = let parent = packages_ghc784.override { extension = self: super: { - ghcjs = super.ghcjs.override { - Cabal = packages_ghc784.Cabal_1_22_0_0; - cabalInstall = packages_ghc784.cabalInstall_1_22_0_0; - }; haddock = super.haddock.override { Cabal = null; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 5a47a16028eb..b1ea0b08bc32 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -938,7 +938,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcid = callPackage ../development/tools/haskell/ghcid {}; ghcjs = callPackage ../development/tools/haskell/ghcjs { - Cabal = self.Cabal_1_18_1_3; + Cabal = self.Cabal_1_22_0_0; + cabalInstall = self.cabalInstall_1_22_0_0; }; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; From dd28f5ff0a51cac40d9b5df5aa9d70c9c7ad5e15 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 22:12:31 -0500 Subject: [PATCH 050/175] ghcjs: remove (seemingly) unnecessary tfRandom workaround --- pkgs/top-level/haskell-defaults.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 369f52854dc2..8c6312b18c01 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -336,11 +336,6 @@ unorderedContainers = self.unorderedContainers_0_2_5_0; vector_0_10_11_0 = null; vector = self.vector_0_10_11_0; - - # This is necessary because haskell-packages will refuse to generate tfRandom for this version of ghc (0.1.0) - #TODO: haskell-packages shouldn't use the ghcjs version as the ghc version - tfRandom = self.callPackage ../development/libraries/haskell/tf-random {}; - /* buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? packages_ghc784.cabal2nix }: let cabalExpr = pkgs.stdenv.mkDerivation ({ From e92c65f37d8b76599fd5b0ba1ccf2ab6a699a14b Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 22:14:17 -0500 Subject: [PATCH 051/175] ghcjs: remove commented-out buildLocalCabalWithArgs --- pkgs/top-level/haskell-defaults.nix | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 8c6312b18c01..255c87768eaf 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -336,27 +336,6 @@ unorderedContainers = self.unorderedContainers_0_2_5_0; vector_0_10_11_0 = null; vector = self.vector_0_10_11_0; -/* - buildLocalCabalWithArgs = { src, name, args ? {}, cabalDrvArgs ? { jailbreak = true; }, cabal2nix ? packages_ghc784.cabal2nix }: let - cabalExpr = pkgs.stdenv.mkDerivation ({ - name = "${name}.nix"; - - buildCommand = '' - ${cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \ - | grep -v FILTERME | sed \ - -e 's/licenses.proprietary/licenses.unfree/' \ - -e 's/{ cabal/{ cabal, cabalInstall, cabalDrvArgs ? {}, src/' \ - -e 's/cabal.mkDerivation (self: {/cabal.mkDerivation (self: cabalDrvArgs \/\/ {/' \ - -e 's/buildDepends = \[/buildDepends = \[ cabalInstall/' \ - -e 's/pname = \([^\n]*\)/pname = \1\n inherit src;\n/' > $out - ''; - - } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { - LANG = "en_US.UTF-8"; - LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; - }); - in self.callPackage cabalExpr ({ inherit src cabalDrvArgs; } // args); -*/ }; extension = self: super: { ghcjsDom = with self; super.ghcjsDom.override { From 780ec20283380bf0524978d03bd67d4b4aec1250 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 22:31:56 -0500 Subject: [PATCH 052/175] ghcjs: regenerate extension --- pkgs/top-level/haskell-defaults.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 255c87768eaf..191ad7ab7636 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -260,8 +260,8 @@ # This is the list of packages that are built into a booted ghcjs installation # It can be generated with the command: # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'" - Cabal_1_20_0_2 = null; - Cabal = self.Cabal_1_22_0_0; + Cabal_1_21_1_0 = null; + Cabal = self.Cabal_1_21_1_0; aeson_0_8_0_0 = null; aeson = self.aeson_0_8_0_0; array_0_5_0_0 = null; @@ -276,8 +276,8 @@ binary = self.binary_0_7_2_1; rts_1_0 = null; rts = self.rts_1_0; - # bytestring_0_10_4_1 = null; - # bytestring = self.bytestring_0_10_4_1; + bytestring_0_10_4_1 = null; + bytestring = self.bytestring_0_10_4_1; caseInsensitive_1_2_0_0 = null; caseInsensitive = self.caseInsensitive_1_2_0_0; containers_0_5_5_1 = null; @@ -322,8 +322,8 @@ stm = self.stm_2_4_3; syb_0_4_2 = null; syb = self.syb_0_4_2; - # templateHaskell_2_9_0_0 = null; - # templateHaskell = self.templateHaskell_2_9_0_0; + templateHaskell_2_9_0_0 = null; + templateHaskell = self.templateHaskell_2_9_0_0; text_1_1_1_3 = null; text = self.text_1_1_1_3; time_1_4_2 = null; From 289e33f852d3fe02018009814850ecc3f158b533 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sat, 27 Dec 2014 23:10:07 -0500 Subject: [PATCH 053/175] ghcjs: don't use extension for haddock override --- pkgs/top-level/haskell-defaults.nix | 11 ++--------- pkgs/top-level/haskell-packages.nix | 3 +++ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 191ad7ab7636..e1edd50ade91 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -245,15 +245,8 @@ }; packages_ghcjs = - let parent = packages_ghc784.override { - extension = self: super: { - haddock = super.haddock.override { - Cabal = null; - }; - }; - }; - in packages { - ghc = parent.ghcjs // { inherit parent; }; + packages { + ghc = let parent = packages_ghc784; in parent.ghcjs // { inherit parent; }; cabalPackage = import ../build-support/cabal/ghcjs.nix; ghcWrapperPackage = import ../development/compilers/ghcjs/wrapper.nix; prefFun = self : super : super // { diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index b1ea0b08bc32..41deb8821524 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -940,6 +940,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcjs = callPackage ../development/tools/haskell/ghcjs { Cabal = self.Cabal_1_22_0_0; cabalInstall = self.cabalInstall_1_22_0_0; + haddock = self.haddock.override { + Cabal = null; + }; }; ghcjsDom = callPackage ../development/libraries/haskell/ghcjs-dom {}; From df55381b65faea5827314d5faa9cb47226e0ea3d Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Wed, 31 Dec 2014 00:03:43 -0500 Subject: [PATCH 054/175] ghcjs: restructure --- pkgs/build-support/cabal/ghcjs.nix | 2 +- .../haskell => compilers}/ghcjs/default.nix | 0 .../haskell => compilers}/ghcjs/ghcjs.patch | 0 .../haskell/Cabal/{1.22.0.0.nix => head.nix} | 2 +- .../cabal-install/{1.22.0.0.nix => head.nix} | 2 +- pkgs/top-level/haskell-defaults.nix | 147 +++++++----------- pkgs/top-level/haskell-packages.nix | 25 ++- 7 files changed, 74 insertions(+), 104 deletions(-) rename pkgs/development/{tools/haskell => compilers}/ghcjs/default.nix (100%) rename pkgs/development/{tools/haskell => compilers}/ghcjs/ghcjs.patch (100%) rename pkgs/development/libraries/haskell/Cabal/{1.22.0.0.nix => head.nix} (96%) rename pkgs/tools/package-management/cabal-install/{1.22.0.0.nix => head.nix} (97%) diff --git a/pkgs/build-support/cabal/ghcjs.nix b/pkgs/build-support/cabal/ghcjs.nix index 2babcf31084e..67c57482f3d5 100644 --- a/pkgs/build-support/cabal/ghcjs.nix +++ b/pkgs/build-support/cabal/ghcjs.nix @@ -82,7 +82,7 @@ in # default buildInputs are just ghc, if more buildInputs are required # buildInputs can be extended by the client by using extraBuildInputs, # but often propagatedBuildInputs is preferable anyway - buildInputs = [ghc ghc.ghc.parent.Cabal_1_22_0_0] ++ self.extraBuildInputs; + buildInputs = [ghc ghc.ghc.parent.Cabal_HEAD] ++ self.extraBuildInputs; extraBuildInputs = self.buildTools ++ (optionals self.doCheck self.testDepends) ++ (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++ diff --git a/pkgs/development/tools/haskell/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix similarity index 100% rename from pkgs/development/tools/haskell/ghcjs/default.nix rename to pkgs/development/compilers/ghcjs/default.nix diff --git a/pkgs/development/tools/haskell/ghcjs/ghcjs.patch b/pkgs/development/compilers/ghcjs/ghcjs.patch similarity index 100% rename from pkgs/development/tools/haskell/ghcjs/ghcjs.patch rename to pkgs/development/compilers/ghcjs/ghcjs.patch diff --git a/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix b/pkgs/development/libraries/haskell/Cabal/head.nix similarity index 96% rename from pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix rename to pkgs/development/libraries/haskell/Cabal/head.nix index 5de766529be6..c73949f74c25 100644 --- a/pkgs/development/libraries/haskell/Cabal/1.22.0.0.nix +++ b/pkgs/development/libraries/haskell/Cabal/head.nix @@ -5,7 +5,7 @@ cabal.mkDerivation (self: { pname = "Cabal"; - version = "1.22.0.0"; + version = "HEAD"; src = fetchgit { url = git://github.com/haskell/cabal.git; rev = "699d4df12e1ec75e9100b521fb3690eaa6986635"; diff --git a/pkgs/tools/package-management/cabal-install/1.22.0.0.nix b/pkgs/tools/package-management/cabal-install/head.nix similarity index 97% rename from pkgs/tools/package-management/cabal-install/1.22.0.0.nix rename to pkgs/tools/package-management/cabal-install/head.nix index 40a11de2b23f..ddad8509044f 100644 --- a/pkgs/tools/package-management/cabal-install/1.22.0.0.nix +++ b/pkgs/tools/package-management/cabal-install/head.nix @@ -5,7 +5,7 @@ cabal.mkDerivation (self: { pname = "cabal-install"; - version = Cabal.version; + version = "HEAD"; src = Cabal.src; isLibrary = true; isExecutable = true; diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index e1edd50ade91..80d850686afe 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -154,23 +154,20 @@ # Abstraction for Haskell packages collections packagesFun = makeOverridable - ({ ghcPath ? null - , ghc ? callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs) + ({ ghcPath , ghcBinary ? ghc6101Binary , prefFun , extension ? (self : super : {}) , profExplicit ? false, profDefault ? false , modifyPrio ? lowPrio , extraArgs ? {} - , cabalPackage ? import ../build-support/cabal - , ghcWrapperPackage ? import ../development/compilers/ghc/wrapper.nix } : let haskellPackagesClass = import ./haskell-packages.nix { - inherit pkgs newScope modifyPrio cabalPackage ghcWrapperPackage; + inherit pkgs newScope modifyPrio; enableLibraryProfiling = if profExplicit then profDefault else config.cabal.libraryProfiling or profDefault; - inherit ghc; + ghc = callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs); }; haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super; haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super; @@ -246,91 +243,17 @@ packages_ghcjs = packages { - ghc = let parent = packages_ghc784; in parent.ghcjs // { inherit parent; }; - cabalPackage = import ../build-support/cabal/ghcjs.nix; - ghcWrapperPackage = import ../development/compilers/ghcjs/wrapper.nix; + ghcPath = ../development/compilers/ghc/7.8.4.nix; + ghcBinary = if stdenv.isDarwin then ghc783Binary else ghc742Binary; prefFun = self : super : super // { - # This is the list of packages that are built into a booted ghcjs installation - # It can be generated with the command: - # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'" - Cabal_1_21_1_0 = null; - Cabal = self.Cabal_1_21_1_0; - aeson_0_8_0_0 = null; - aeson = self.aeson_0_8_0_0; - array_0_5_0_0 = null; - array = self.array_0_5_0_0; - async_2_0_1_5 = null; - async = self.async_2_0_1_5; - attoparsec_0_12_1_0 = null; - attoparsec = self.attoparsec_0_12_1_0; - base_4_7_0_1 = null; - base = self.base_4_7_0_1; - binary_0_7_2_1 = null; - binary = self.binary_0_7_2_1; - rts_1_0 = null; - rts = self.rts_1_0; - bytestring_0_10_4_1 = null; - bytestring = self.bytestring_0_10_4_1; - caseInsensitive_1_2_0_0 = null; - caseInsensitive = self.caseInsensitive_1_2_0_0; - containers_0_5_5_1 = null; - containers = self.containers_0_5_5_1; - deepseq_1_3_0_2 = null; - deepseq = self.deepseq_1_3_0_2; - directory_1_2_1_0 = null; - directory = self.directory_1_2_1_0; - dlist_0_7_0_1 = null; - dlist = self.dlist_0_7_0_1; - extensibleExceptions_0_1_1_3 = null; - extensibleExceptions = self.extensibleExceptions_0_1_1_3; - filepath_1_3_0_2 = null; - filepath = self.filepath_1_3_0_2; - ghcPrim_0_3_1_0 = null; - ghcPrim = self.ghcPrim_0_3_1_0; - ghcjsBase_0_1_0_0 = null; - ghcjsBase = self.ghcjsBase_0_1_0_0; - ghcjsPrim_0_1_0_0 = null; - ghcjsPrim = self.ghcjsPrim_0_1_0_0; - hashable_1_2_2_0 = null; - hashable = self.hashable_1_2_2_0; - integerGmp_0_5_1_0 = null; - integerGmp = self.integerGmp_0_5_1_0; - mtl_2_2_1 = null; - mtl = self.mtl_2_2_1; - oldLocale_1_0_0_6 = null; - oldLocale = self.oldLocale_1_0_0_6; - oldTime_1_1_0_2 = null; - oldTime = self.oldTime_1_1_0_2; - parallel_3_2_0_4 = null; - parallel = self.parallel_3_2_0_4; - pretty_1_1_1_1 = null; - pretty = self.pretty_1_1_1_1; - primitive_0_5_3_0 = null; - primitive = self.primitive_0_5_3_0; - process_1_2_0_0 = null; - process = self.process_1_2_0_0; - scientific_0_3_3_0 = null; - scientific = self.scientific_0_3_3_0; - stm_2_4_3 = null; - stm = self.stm_2_4_3; - syb_0_4_2 = null; - syb = self.syb_0_4_2; - templateHaskell_2_9_0_0 = null; - templateHaskell = self.templateHaskell_2_9_0_0; - text_1_1_1_3 = null; - text = self.text_1_1_1_3; - time_1_4_2 = null; - time = self.time_1_4_2; - transformers_0_4_1_0 = null; - transformers = self.transformers_0_4_1_0; - unix_2_7_0_1 = null; - unix = self.unix_2_7_0_1; - unorderedContainers_0_2_5_0 = null; - unorderedContainers = self.unorderedContainers_0_2_5_0; - vector_0_10_11_0 = null; - vector = self.vector_0_10_11_0; - }; - extension = self: super: { + ghc = let parent = packages_ghc784; in + callPackage ../development/compilers/ghcjs/wrapper.nix { + ghc = parent.ghcjs // { inherit parent; }; + }; + cabal = self.cabalJs; + buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // { + nativePkgs = packages_ghc784; + }); ghcjsDom = with self; super.ghcjsDom.override { cabal = self.cabal.override { extension = self: super: { @@ -339,9 +262,47 @@ }; }; }; - buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // { - nativePkgs = packages_ghc784; - }); + # This is the list of packages that are built into a booted ghcjs installation + # It can be generated with the command: + # nix-shell '' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1 = null;/'" + Cabal = null; + aeson = null; + array = null; + async = null; + attoparsec = null; + base = null; + binary = null; + rts = null; + bytestring = null; + caseInsensitive = null; + containers = null; + deepseq = null; + directory = null; + dlist = null; + extensibleExceptions = null; + filepath = null; + ghcPrim = null; + ghcjsBase = null; + ghcjsPrim = null; + hashable = null; + integerGmp = null; + mtl = null; + oldLocale = null; + oldTime = null; + parallel = null; + pretty = null; + primitive = null; + process = null; + scientific = null; + stm = null; + syb = null; + templateHaskell = null; + text = null; + time = null; + transformers = null; + unix = null; + unorderedContainers = null; + vector = null; }; }; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 41deb8821524..47e71626b311 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -43,7 +43,7 @@ # # For most packages, however, we keep only one version, and use default.nix. -{ pkgs, newScope, ghc, cabalPackage, ghcWrapperPackage, modifyPrio ? (x : x) +{ pkgs, newScope, ghc, modifyPrio ? (x : x) , enableLibraryProfiling ? false , enableSharedLibraries ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version , enableSharedExecutables ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version @@ -74,7 +74,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # refers to the function argument at the # top of this file. - ghc = callPackage ghcWrapperPackage { + ghc = callPackage ../development/compilers/ghc/wrapper.nix { ghc = ghc; # refers to ghcPlain }; @@ -94,7 +94,16 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in # This is the Cabal builder, the function we use to build most Haskell # packages. It isn't the Cabal library, which is spelled "Cabal". - cabal = callPackage cabalPackage { + cabal = callPackage ../build-support/cabal { + Cabal = null; # prefer the Cabal version shipped with the compiler + hscolour = self.hscolourBootstrap; + inherit enableLibraryProfiling enableCheckPhase + enableStaticLibraries enableSharedLibraries enableSharedExecutables; + glibcLocales = if pkgs.stdenv.isLinux then pkgs.glibcLocales else null; + extension = self : super : {}; + }; + + cabalJs = callPackage ../build-support/cabal/ghcjs.nix { Cabal = null; # prefer the Cabal version shipped with the compiler hscolour = self.hscolourBootstrap; inherit enableLibraryProfiling enableCheckPhase @@ -356,7 +365,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in Cabal_1_16_0_3 = callPackage ../development/libraries/haskell/Cabal/1.16.0.3.nix {}; Cabal_1_18_1_3 = callPackage ../development/libraries/haskell/Cabal/1.18.1.3.nix {}; Cabal_1_20_0_2 = callPackage ../development/libraries/haskell/Cabal/1.20.0.2.nix {}; - Cabal_1_22_0_0 = callPackage ../development/libraries/haskell/Cabal/1.22.0.0.nix {}; + Cabal_HEAD = callPackage ../development/libraries/haskell/Cabal/head.nix {}; Cabal = null; # core package since forever cabalCargs = callPackage ../development/libraries/haskell/cabal-cargs {}; @@ -937,9 +946,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in ghcid = callPackage ../development/tools/haskell/ghcid {}; - ghcjs = callPackage ../development/tools/haskell/ghcjs { - Cabal = self.Cabal_1_22_0_0; - cabalInstall = self.cabalInstall_1_22_0_0; + ghcjs = callPackage ../development/compilers/ghcjs { + Cabal = self.Cabal_HEAD; + cabalInstall = self.cabalInstall_HEAD; haddock = self.haddock.override { Cabal = null; }; @@ -3168,7 +3177,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix { Cabal = self.Cabal_1_16_0_3; }; cabalInstall_1_18_0_3 = callPackage ../tools/package-management/cabal-install/1.18.0.3.nix { Cabal = self.Cabal_1_18_1_3; }; cabalInstall_1_20_0_4 = callPackage ../tools/package-management/cabal-install/1.20.0.4.nix { Cabal = self.Cabal_1_20_0_2; }; - cabalInstall_1_22_0_0 = callPackage ../tools/package-management/cabal-install/1.22.0.0.nix { Cabal = self.Cabal_1_22_0_0; }; + cabalInstall_HEAD = callPackage ../tools/package-management/cabal-install/head.nix { Cabal = self.Cabal_HEAD; }; cabalInstall = self.cabalInstall_1_20_0_4; codex = callPackage ../development/tools/haskell/codex {}; From 76976398f8367e13aa7a8dae4043ea509e37c9d8 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Wed, 31 Dec 2014 00:06:20 -0500 Subject: [PATCH 055/175] ghcjs: fix whitespace --- pkgs/top-level/haskell-defaults.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix index 80d850686afe..3030c15d73f7 100644 --- a/pkgs/top-level/haskell-defaults.nix +++ b/pkgs/top-level/haskell-defaults.nix @@ -246,7 +246,7 @@ ghcPath = ../development/compilers/ghc/7.8.4.nix; ghcBinary = if stdenv.isDarwin then ghc783Binary else ghc742Binary; prefFun = self : super : super // { - ghc = let parent = packages_ghc784; in + ghc = let parent = packages_ghc784; in callPackage ../development/compilers/ghcjs/wrapper.nix { ghc = parent.ghcjs // { inherit parent; }; }; From a0d62bf978fd415990098fa17974390c5e02004e Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Wed, 31 Dec 2014 01:15:13 -0500 Subject: [PATCH 056/175] ghcjs: update to latest --- pkgs/development/compilers/ghcjs/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix index 6b8467521492..a28ae687a0fa 100644 --- a/pkgs/development/compilers/ghcjs/default.nix +++ b/pkgs/development/compilers/ghcjs/default.nix @@ -22,16 +22,16 @@ let }; shims = fetchgit { url = git://github.com/ghcjs/shims.git; - rev = "7e15b992b538298c0da1de73e202d950a279cbfb"; - sha256 = "0ck7qwizrjxh9mjfqcaw083sjlwhd1kvgvdcp3plzh7g2kd1lmzn"; + rev = "99bbd4bed584ec42bfcc5ea61c3808a2c670053d"; + sha256 = "1my3gqkln7hgm0bpy32pnhwjfza096alh0n9x9ny8xfpxhmzz4h6"; }; in cabal.mkDerivation (self: rec { pname = "ghcjs"; inherit version; src = fetchgit { url = git://github.com/ghcjs/ghcjs.git; - rev = "312a040d579133b4e251ac375e5f94e506c1a981"; - sha256 = "0c3bjaz2wwi8lxmxp9bajyhcs97aazgzfgm1fc8mggk94nr4fhrk"; + rev = "4b9461e8be646d5152a0ae7ece5b3616bf938637"; + sha256 = "19g62j1kkdwcgp0042ppmskwbvfk7qkf1fjs8bpjc6wwd19ipiar"; }; isLibrary = true; isExecutable = true; From 06e523b7e8eda671ee3a5cddc7b41ba16fd74034 Mon Sep 17 00:00:00 2001 From: Patrick Mahoney Date: Tue, 23 Dec 2014 10:06:27 -0600 Subject: [PATCH 057/175] Update skarnet.org software for 2.0 release. New build system using configure script and GNU Make 4.0, and new releases of the following using the new build system: execline 2.0.0.0 s6 2.0.0.0 s6-dns 2.0.0.0 s6-linux-utils 2.0.0.0 s6-networking 2.0.0.0 s6-portable-utils 2.0.0.0 skalibs 2.0.0.0 --- .../development/libraries/skalibs/default.nix | 22 ++++----- .../libraries/skalibs/getpeereid.patch | 28 ----------- .../tools/build-managers/skarnet/default.nix | 21 --------- .../build-managers/skarnet/setup-hook.sh | 47 ------------------- .../linux/s6-linux-utils/default.nix | 18 +++++-- pkgs/servers/s6/default.nix | 20 ++++++-- pkgs/tools/misc/execline/default.nix | 19 ++++++-- pkgs/tools/misc/s6-portable-utils/default.nix | 19 ++++---- pkgs/tools/networking/s6-dns/default.nix | 19 ++++++-- .../networking/s6-networking/default.nix | 23 +++++++-- pkgs/top-level/all-packages.nix | 2 - 11 files changed, 96 insertions(+), 142 deletions(-) delete mode 100644 pkgs/development/libraries/skalibs/getpeereid.patch delete mode 100644 pkgs/development/tools/build-managers/skarnet/default.nix delete mode 100644 pkgs/development/tools/build-managers/skarnet/setup-hook.sh diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix index 55c69b137e52..3fe8e275ea9c 100644 --- a/pkgs/development/libraries/skalibs/default.nix +++ b/pkgs/development/libraries/skalibs/default.nix @@ -1,11 +1,11 @@ { stdenv -, skarnetConfCompile , fetchurl +, gnumake40 }: let - version = "1.6.0.0"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -13,19 +13,19 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://skarnet.org/software/skalibs/${name}.tar.gz"; - sha256 = "0jz3farll9n5jvz3g6wri99s6njkgmnf0r9jqjlg03f20dzv8c8w"; + sha256 = "0cz30wqg8fnkwjlacs4s3sjs3l34sa91xgci95fmb187zhiq693n"; }; - sourceRoot = "prog/${name}"; + dontDisableStatic = true; - # See http://skarnet.org/cgi-bin/archive.cgi?1:mss:75:201405:pkmodhckjklemogbplje - patches = [ ./getpeereid.patch ]; + buildInputs = [ gnumake40 ]; - buildInputs = [ skarnetConfCompile ]; - - preInstall = '' - mkdir -p "$out/etc" - ''; + configureFlags = [ + "--enable-force-devr" # assume /dev/random works + "--libdir=\${prefix}/lib" + "--includedir=\${prefix}/include" + "--sysdepdir=\${prefix}/lib/skalibs/sysdeps" + ] ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]); meta = { homepage = http://skarnet.org/software/skalibs/; diff --git a/pkgs/development/libraries/skalibs/getpeereid.patch b/pkgs/development/libraries/skalibs/getpeereid.patch deleted file mode 100644 index c366780e2670..000000000000 --- a/pkgs/development/libraries/skalibs/getpeereid.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/src/libstddjb/getpeereid.h -+++ b/src/libstddjb/getpeereid.h -@@ -3,6 +3,14 @@ - #ifndef GETPEEREID_H - #define GETPEEREID_H - -+#include "sysdeps.h" -+ -+#ifdef HASGETPEEREID -+/* syscall exists - do nothing */ -+ -+#else -+ - extern int getpeereid (int, int *, int *) ; - - #endif -+#endif ---- a/src/libstddjb/ipc_eid.c -+++ b/src/libstddjb/ipc_eid.c -@@ -5,7 +5,7 @@ - - int ipc_eid (int s, unsigned int *u, unsigned int *g) - { -- int dummyu, dummyg ; -+ unsigned int dummyu, dummyg ; - if (getpeereid(s, &dummyu, &dummyg) < 0) return -1 ; - *u = (unsigned int)dummyu ; - *g = (unsigned int)dummyg ; diff --git a/pkgs/development/tools/build-managers/skarnet/default.nix b/pkgs/development/tools/build-managers/skarnet/default.nix deleted file mode 100644 index 5490fcabef96..000000000000 --- a/pkgs/development/tools/build-managers/skarnet/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv }: - -let - - version = "2014-11-28"; - -in stdenv.mkDerivation { - - name = "skarnet-conf-compile-${version}"; - - phases = [ "fixupPhase" ]; - - setupHook = ./setup-hook.sh; - - meta = { - homepage = http://www.skarnet.org/software/conf-compile.html; - description = "Support for configuring skarnet.org packages for nix builds"; - platforms = stdenv.lib.platforms.all; - }; - -} diff --git a/pkgs/development/tools/build-managers/skarnet/setup-hook.sh b/pkgs/development/tools/build-managers/skarnet/setup-hook.sh deleted file mode 100644 index e9cd02a4e7e6..000000000000 --- a/pkgs/development/tools/build-managers/skarnet/setup-hook.sh +++ /dev/null @@ -1,47 +0,0 @@ -# Packages from skarnet.org use a unique build system. These functions -# assist with some common configuration and shebang patching. - -skarnetConfigure() { - runHook preConfigure - - pushd conf-compile >/dev/null - - # paths - > conf-defaultpath printf "$out/bin" - > conf-etc printf "$out/etc" - > conf-install-command printf "$out/bin" - > conf-install-include printf "$out/include" - > conf-install-libexec printf "$out/libexec" - > conf-install-library printf "$out/lib" - > conf-install-library.so printf "$out/lib" - > conf-install-sysdeps printf "$out/sysdeps" - - # use generic 'cc' to support both gcc and clang (darwin) stdenvs - for file in conf-cc conf-dynld conf-ld; do - substituteInPlace $file --replace gcc cc - done - - # let nix builder strip things, cross-platform - truncate --size 0 conf-stripbins conf-striplibs - - rm -f flag-slashpackage - touch flag-allstatic - touch flag-forcedevr # only used for skalibs - - # build inputs - truncate --size 0 import path-include path-library - for input in $nativeBuildInputs; do - [[ -a "$input/sysdeps" ]] && >> import printf "$input/sysdeps" - [[ -a "$input/include" ]] && >> path-include printf "$input/include" - [[ -a "$input/lib" ]] && >> path-library printf "$input/lib" - done - - popd >/dev/null - - # patch various scripts to use stdenv shell - patchShebangs src/sys - - runHook postConfigure -} - -export configurePhase=skarnetConfigure diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix index b7a546a3ea06..76f46a32125b 100644 --- a/pkgs/os-specific/linux/s6-linux-utils/default.nix +++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix @@ -1,12 +1,12 @@ { stdenv , fetchurl +, gnumake40 , skalibs -, skarnetConfCompile }: let - version = "1.0.3.1"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -14,12 +14,20 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://www.skarnet.org/software/s6-linux-utils/${name}.tar.gz"; - sha256 = "1s17g03z5hfpiz32g001g5wyamyvn9l36fr2csk3k7r0jkqfnl0d"; + sha256 = "0lfgfwnk81vjlkvmr1gzknz9swgcrp5s7x19dfkw6shvi95fyirh"; }; - buildInputs = [ skalibs skarnetConfCompile ]; + dontDisableStatic = true; - sourceRoot = "admin/${name}"; + buildInputs = [ gnumake40 ]; + + configureFlags = [ + "--includedir=\${prefix}/include" + "--with-sysdeps=${skalibs}/lib/skalibs/sysdeps" + "--with-include=${skalibs}/include" + "--with-lib=${skalibs}/lib" + "--with-dynlib=${skalibs}/lib" + ]; meta = { homepage = http://www.skarnet.org/software/s6-linux-utils/; diff --git a/pkgs/servers/s6/default.nix b/pkgs/servers/s6/default.nix index 491dc625cf21..87235dcd696b 100644 --- a/pkgs/servers/s6/default.nix +++ b/pkgs/servers/s6/default.nix @@ -1,13 +1,13 @@ { stdenv , execline , fetchurl +, gnumake40 , skalibs -, skarnetConfCompile }: let - version = "1.1.3.2"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -15,12 +15,22 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://www.skarnet.org/software/s6/${name}.tar.gz"; - sha256 = "0djxdd3d3mlp63sjqqs0ilf8p68m86c1s98d82fl0kgaaibpsikp"; + sha256 = "14x4l3xp152c9v34zs7nzxzacizfpp0k0lzwh40rxm0w5wz4x0ls"; }; - buildInputs = [ skalibs execline skarnetConfCompile ]; + dontDisableStatic = true; - sourceRoot = "admin/${name}"; + buildInputs = [ gnumake40 ]; + + configureFlags = [ + "--with-sysdeps=${skalibs}/lib/skalibs/sysdeps" + "--with-include=${skalibs}/include" + "--with-include=${execline}/include" + "--with-lib=${skalibs}/lib" + "--with-lib=${execline}/lib" + "--with-dynlib=${skalibs}/lib" + "--with-dynlib=${execline}/lib" + ] ++ stdenv.lib.optional stdenv.isDarwin [ "--disable-shared" ]; preBuild = '' substituteInPlace "src/daemontools-extras/s6-log.c" \ diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix index 6bfb1852f870..b2bca22433cc 100644 --- a/pkgs/tools/misc/execline/default.nix +++ b/pkgs/tools/misc/execline/default.nix @@ -1,12 +1,12 @@ { stdenv , fetchurl +, gnumake40 , skalibs -, skarnetConfCompile }: let - version = "1.3.1.1"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -14,12 +14,21 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://skarnet.org/software/execline/${name}.tar.gz"; - sha256 = "1br3qzif166kbp4k813ljbyq058p7mfsp2lj88n8vi4dmj935nzg"; + sha256 = "1g5v6icxsf7p2ccj9iq85iikkm12xph65ri86ydakihv6al3jw71"; }; - buildInputs = [ skalibs skarnetConfCompile ]; + dontDisableStatic = true; - sourceRoot = "admin/${name}"; + buildInputs = [ gnumake40 ]; + + configureFlags = [ + "--libdir=\${prefix}/lib" + "--includedir=\${prefix}/include" + "--with-sysdeps=${skalibs}/lib/skalibs/sysdeps" + "--with-include=${skalibs}/include" + "--with-lib=${skalibs}/lib" + "--with-dynlib=${skalibs}/lib" + ] ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]); meta = { homepage = http://skarnet.org/software/execline/; diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix index 650886351e6b..4d871cf79118 100644 --- a/pkgs/tools/misc/s6-portable-utils/default.nix +++ b/pkgs/tools/misc/s6-portable-utils/default.nix @@ -1,12 +1,12 @@ { stdenv , fetchurl +, gnumake40 , skalibs -, skarnetConfCompile }: let - version = "1.0.3.2"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -14,16 +14,19 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz"; - sha256 = "040nmls7qbgw8yn502lym4kgqh5zxr2ks734bqajpi2ricnasvhl"; + sha256 = "1vszqaqkyhz1v69pxls3c7y1qs8wjkdylpg0yz183xlirywimwwk"; }; - buildInputs = [ skalibs skarnetConfCompile ]; + dontDisableStatic = true; - sourceRoot = "admin/${name}"; + buildInputs = [ gnumake40 ]; - preInstall = '' - mkdir -p "$out/libexec" - ''; + configureFlags = [ + "--with-sysdeps=${skalibs}/lib/skalibs/sysdeps" + "--with-include=${skalibs}/include" + "--with-lib=${skalibs}/lib" + "--with-dynlib=${skalibs}/lib" + ]; meta = { homepage = http://www.skarnet.org/software/s6-portable-utils/; diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix index 16467e84a1e7..4ffa2d931a11 100644 --- a/pkgs/tools/networking/s6-dns/default.nix +++ b/pkgs/tools/networking/s6-dns/default.nix @@ -1,12 +1,12 @@ { stdenv , fetchurl +, gnumake40 , skalibs -, skarnetConfCompile }: let - version = "0.1.0.0"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -14,12 +14,21 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://www.skarnet.org/software/s6-dns/${name}.tar.gz"; - sha256 = "1r82l5fnz2rrwm5wq2sldqp74lk9fifr0d8hyq98xdyh24hish68"; + sha256 = "07k6rzgsgcxr0bq209as79sjn2nrcjj9mlmk9vvy1hvsag0xnkcq"; }; - buildInputs = [ skalibs skarnetConfCompile ]; + dontDisableStatic = true; - sourceRoot = "web/${name}"; + buildInputs = [ gnumake40 ]; + + configureFlags = [ + "--includedir=\${prefix}/include" + "--libdir=\${prefix}/lib" + "--with-sysdeps=${skalibs}/lib/skalibs/sysdeps" + "--with-include=${skalibs}/include" + "--with-lib=${skalibs}/lib" + "--with-dynlib=${skalibs}/lib" + ] ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ]); meta = { homepage = http://www.skarnet.org/software/s6-dns/; diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix index a4482bb71c3f..87dd783636d6 100644 --- a/pkgs/tools/networking/s6-networking/default.nix +++ b/pkgs/tools/networking/s6-networking/default.nix @@ -1,14 +1,14 @@ { stdenv , execline , fetchurl +, gnumake40 , s6Dns , skalibs -, skarnetConfCompile }: let - version = "0.1.0.0"; + version = "2.0.0.0"; in stdenv.mkDerivation rec { @@ -16,12 +16,25 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "http://www.skarnet.org/software/s6-networking/${name}.tar.gz"; - sha256 = "1np9m2j1i2450mbcjvpbb56kv3wc2fbyvmv2a039q61j2lk6vjz7"; + sha256 = "0k2i0g5lsvh1gz90ixwdip1pngj9vd45d4fpmdg075vd8zhh7j37"; }; - buildInputs = [ skalibs s6Dns execline skarnetConfCompile ]; + dontDisableStatic = true; - sourceRoot = "net/${name}"; + buildInputs = [ gnumake40 ]; + + configureFlags = [ + "--with-sysdeps=${skalibs}/lib/skalibs/sysdeps" + "--with-include=${skalibs}/include" + "--with-include=${execline}/include" + "--with-include=${s6Dns}/include" + "--with-lib=${skalibs}/lib" + "--with-lib=${execline}/lib" + "--with-lib=${s6Dns}/lib" + "--with-dynlib=${skalibs}/lib" + "--with-dynlib=${execline}/lib" + "--with-dynlib=${s6Dns}/lib" + ]; meta = { homepage = http://www.skarnet.org/software/s6-networking/; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 12c382e6f557..297a983be608 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6894,8 +6894,6 @@ let skalibs = callPackage ../development/libraries/skalibs { }; - skarnetConfCompile = callPackage ../development/tools/build-managers/skarnet { }; - slang = callPackage ../development/libraries/slang { }; slibGuile = callPackage ../development/libraries/slib { From 91531adb78dfe8cb4013a9e97244195e52869dd2 Mon Sep 17 00:00:00 2001 From: codyopel Date: Fri, 26 Dec 2014 07:09:19 -0500 Subject: [PATCH 058/175] x265-hg: updated to latest commit, fixed package naming issue --- pkgs/development/libraries/x265/hg.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/x265/hg.nix b/pkgs/development/libraries/x265/hg.nix index db15e223047e..5793bd343388 100644 --- a/pkgs/development/libraries/x265/hg.nix +++ b/pkgs/development/libraries/x265/hg.nix @@ -1,7 +1,7 @@ { callPackage, ... } @ args: callPackage ./generic.nix (args // rec { - version = "hg-${rev}"; - rev = "eebb372eec893efc50e66806fcc19b1c1bd89683"; - sha256 = "03dpbjqcmbmyid45560byabybfzy2bvic0gqa6k6hxci6rvmynpi"; + version = "hg"; + rev = "5f9f7194267b76f733e9ffb0f9e8b474dfe89a71"; + sha256 = "056ng8nsadmjf6s7igbgbxmiapjcxpfy6pbayl764xbhpkv4md88"; }) \ No newline at end of file From d85bbfcce47598dcf4058d5ee59a7619e9bd1897 Mon Sep 17 00:00:00 2001 From: lostdj Date: Sat, 27 Dec 2014 11:28:38 +0300 Subject: [PATCH 059/175] SmartGitHg: update from 6.0.6 to 6.5.3. --- .../version-management/smartgithg/default.nix | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/version-management/smartgithg/default.nix b/pkgs/applications/version-management/smartgithg/default.nix index d729159316d2..2ddb1b5773f1 100644 --- a/pkgs/applications/version-management/smartgithg/default.nix +++ b/pkgs/applications/version-management/smartgithg/default.nix @@ -7,7 +7,7 @@ }: let - the_version = "6_0_6"; + the_version = "6_5_3"; in @@ -15,9 +15,9 @@ stdenv.mkDerivation rec { name = "smartgithg-${the_version}"; src = fetchurl { - url = "http://www.syntevo.com/download/smartgithg/" + - "smartgithg-generic-${the_version}.tar.gz"; - sha256 = "13e41560138ef18395fbe0bf56d4d29e8614eee004d51d7dd03381080d8426e6"; + url = "http://www.syntevo.com/download/smartgit/" + + "smartgit-generic-${the_version}.tar.gz"; + sha256 = "0hz1y29ipls58fizr27w6rbv7v7qbbc1h70xvjjd8c94k9ajmav9"; }; buildInputs = [ @@ -40,24 +40,26 @@ stdenv.mkDerivation rec { in '' tar xvzf $src mkdir -pv $out - # unpacking should have produced a dir named ${name} - cp -a ${name} $out + mkdir -pv ${pkg_path} + # unpacking should have produced a dir named 'smartgit' + cp -a smartgit/* ${pkg_path} mkdir -pv ${bin_path} [ -d ${jre}/lib/openjdk ] \ && jre=${jre}/lib/openjdk \ || jre=${jre} - makeWrapper ${pkg_path}/bin/smartgithg.sh ${bin_path}/smartgithg \ + makeWrapper ${pkg_path}/bin/smartgit.sh ${bin_path}/smartgit \ --prefix PATH : ${runtime_paths} \ --prefix LD_LIBRARY_PATH : ${runtime_lib_paths} \ --prefix JRE_HOME : ${jre} \ --prefix JAVA_HOME : ${jre} \ --prefix SMARTGITHG_JAVA_HOME : ${jre} patchShebangs $out + cp ${bin_path}/smartgit ${bin_path}/smartgithg ''; meta = with stdenv.lib; { description = "GUI for Git, Mercurial, Subversion"; - homepage = http://www.syntevo.com/smartgithg/; + homepage = http://www.syntevo.com/smartgit/; license = licenses.unfree; platforms = platforms.linux; }; From 30e21cedae481709b307e54e34f93bc58abe065c Mon Sep 17 00:00:00 2001 From: Stewart Mackenzie Date: Sat, 27 Dec 2014 21:36:50 +0800 Subject: [PATCH 060/175] hammer: version bump --- pkgs/development/tools/parsing/hammer/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/parsing/hammer/default.nix b/pkgs/development/tools/parsing/hammer/default.nix index 7dbbf10b486c..f04d773c374b 100644 --- a/pkgs/development/tools/parsing/hammer/default.nix +++ b/pkgs/development/tools/parsing/hammer/default.nix @@ -6,8 +6,8 @@ stdenv.mkDerivation rec { src = fetchgit { url = "git://github.com/UpstandingHackers/hammer"; - sha256 = "1v8f2a6bgjgdkhbqz751bqjlwb9lmqn5x63xcskwcl2b9n36vqi9"; - rev = "e7aa73446e23f4af2fce5f88572aae848f212c16"; + sha256 = "18bb0p896ch4crhcfxpbvpc17wg8gzv8696pcc51i34mza76jiz9"; + rev = "47f34b81e4de834fd3537dd71928c4f3cdb7f533"; }; buildInputs = [ glib pkgconfig python scons ]; @@ -26,4 +26,4 @@ stdenv.mkDerivation rec { license = licenses.gpl2; platforms = platforms.linux; }; -} \ No newline at end of file +} From 9c67a3bc35e1ec07ff587ffe2e4747f6eb101c74 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 15 Dec 2014 11:14:07 -0600 Subject: [PATCH 061/175] openblas: version bump to 0.2.13 --- pkgs/development/libraries/science/math/openblas/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix index 6ca1f4ccadae..a452037a235e 100644 --- a/pkgs/development/libraries/science/math/openblas/default.nix +++ b/pkgs/development/libraries/science/math/openblas/default.nix @@ -4,12 +4,12 @@ let local = config.openblas.preferLocalBuild or false; localTarget = config.openblas.target or ""; in stdenv.mkDerivation rec { - version = "0.2.11"; + version = "0.2.13"; name = "openblas-${version}"; src = fetchurl { url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}"; - sha256 = "1va4yhzgj2chcj6kaxgfbzirajp1zgvkic61959aka2xq2c5igms"; + sha256 = "1asg5mix13ipxgj5h2yj2p0r8km1di5jbcjkn5gmhb37nx7qfv6k"; name = "openblas-${version}.tar.gz"; }; From 6e46a100b45c3f47fa03bcee1fbdc13dfbd7152c Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 15 Dec 2014 11:16:46 -0600 Subject: [PATCH 062/175] atlas: fix generic options Build atlas with the generic options recommended by the upstream documentation for distributions. The expression now takes the parameter 'threads' which configures the number of threads atlas will use. The default is to build serial atlas ('threads = "0"'). The expression also takes the parameter 'cacheEdge' which is the L2 cache per core, in bytes. This reduces build time because the cache size doesn't need to be detected. It also reduces impurity, since different build nodes on Hydra may have different hardware. It is set to 256k by default, which is recommended for distributions by the upstream documentation. --- .../libraries/science/math/atlas/default.nix | 68 +++++++++++++++---- 1 file changed, 53 insertions(+), 15 deletions(-) diff --git a/pkgs/development/libraries/science/math/atlas/default.nix b/pkgs/development/libraries/science/math/atlas/default.nix index 938778734e09..3cdab4df16f4 100644 --- a/pkgs/development/libraries/science/math/atlas/default.nix +++ b/pkgs/development/libraries/science/math/atlas/default.nix @@ -1,5 +1,7 @@ { stdenv, fetchurl, gfortran, tolerateCpuTimingInaccuracy ? true, shared ? false -, cpuConfig ? if stdenv.isi686 then "-b 32 -A 18 -V 1" else "-b 64 -A 31 -V 384" +, cpuConfig ? if stdenv.isi686 then "-b 32 -A 12 -V 1" else "-b 64 -A 14 -V 384" +, cacheEdge ? "262144" +, threads ? "0" }: # Atlas detects the CPU and optimizes its build accordingly. This is great when @@ -9,27 +11,40 @@ # cannot execute. # # To avoid these issues, the build is configured using the 'cpuConfig' -# parameter as follows: +# parameter. Upstream recommends these defaults for distributions: # # | x86 CPU | x86_64 CPU | # |---------------------------------------------+------------------------| # | -b 32 | -b 64 | -# | -A 18 (Pentium II) | -A 31 (Athlon K7) | -# | -V 1 (No SIMD: Pentium II doesn't have SSE) | -V 384 (SSE1 and SSE2) | +# | -A 12 (x86x87) | -A 14 (x86SSE2) | +# | -V 1 (No SIMD) | -V 384 (SSE1 and SSE2) | # -# Users who want to compile a highly optimized version of ATLAS that's suitable -# for their local machine can override these settings accordingly. +# These defaults should give consistent performance across machines. +# Performance will be substantially lower than an optimized build, but a build +# optimized for one machine will give even worse performance on others. If you +# are a serious user of Atlas (e.g., you write code that uses it) you should +# compile an optimized version for each of your machines. +# +# The parameter 'cacheEdge' sets the L2 cache per core (in bytes). Setting this +# parameter reduces build time because some tests to detect the L2 cache size +# will not be run. It will also reduce impurity; different build nodes on Hydra +# may have different L2 cache sizes, but fixing the L2 cache size should +# account for that. This also makes the performance of binary substitutes more +# consistent. # # The -V flags can change with each release as new instruction sets are added # because upstream thinks it's a good idea to add entries at the start of an # enum, rather than the end. If the build suddenly fails with messages about # missing instruction sets, you may need to poke around in the source a bit. +# +# Upstream recommends the x86x87/x86SSE2 architectures for generic x86/x86_64 +# for distribution builds. Additionally, we set 'cacheEdge' to reduce impurity. +# Otherwise, the cache parameters will be detected by timing which will be +# highly variable on Hydra. let + inherit (stdenv.lib) optional optionalString; version = "3.10.2"; - - optionalString = stdenv.lib.optionalString; - optional = stdenv.lib.optional; in stdenv.mkDerivation { @@ -50,27 +65,50 @@ stdenv.mkDerivation { patches = optional tolerateCpuTimingInaccuracy ./disable-timing-accuracy-check.patch; # Configure outside of the source directory. - preConfigure = '' mkdir build; cd build; configureScript=../configure; ''; + preConfigure = '' + mkdir build + cd build + configureScript=../configure + ''; # * -fPIC is passed even in non-shared builds so that the ATLAS code can be # used to inside of shared libraries, like Octave does. # # * -t 0 disables use of multi-threading. It's not quite clear what the # consequences of that setting are and whether it's necessary or not. - configureFlags = "-Fa alg -fPIC -t 0 ${cpuConfig}" + optionalString shared " --shared"; + configureFlags = [ + "-Fa alg" + "-fPIC" + "-t ${threads}" + cpuConfig + ] ++ optional shared "--shared"; + + postConfigure = '' + if [[ -n "${cacheEdge}" ]]; then + echo '#define CacheEdge ${cacheEdge}' >> include/atlas_cacheedge.h + echo '#define CacheEdge ${cacheEdge}' >> include/atlas_tcacheedge.h + fi + ''; doCheck = true; + postInstall = '' + # Avoid name collision with the real lapack (ATLAS only builds a partial + # lapack). + mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a + ''; + meta = { homepage = "http://math-atlas.sourceforge.net/"; description = "Automatically Tuned Linear Algebra Software (ATLAS)"; license = stdenv.lib.licenses.bsd3; longDescription = '' - The ATLAS (Automatically Tuned Linear Algebra Software) project is an ongoing - research effort focusing on applying empirical techniques in order to provide - portable performance. At present, it provides C and Fortran77 interfaces to a - portably efficient BLAS implementation, as well as a few routines from LAPACK. + The ATLAS (Automatically Tuned Linear Algebra Software) project is an + ongoing research effort focusing on applying empirical techniques in + order to provide portable performance. At present, it provides C and + Fortran77 interfaces to a portably efficient BLAS implementation, as well + as a few routines from LAPACK. ''; maintainers = with stdenv.lib.maintainers; [ ttuegel ]; From 32ffad3e6b4a724ab32e92e9d5db4a42b8b0a869 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 15 Dec 2014 11:27:55 -0600 Subject: [PATCH 063/175] atlas: optionally build with full lapack --- .../libraries/science/math/atlas/default.nix | 12 ++++++++---- pkgs/top-level/all-packages.nix | 4 ++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/science/math/atlas/default.nix b/pkgs/development/libraries/science/math/atlas/default.nix index 3cdab4df16f4..f4bda4f47358 100644 --- a/pkgs/development/libraries/science/math/atlas/default.nix +++ b/pkgs/development/libraries/science/math/atlas/default.nix @@ -2,6 +2,7 @@ , cpuConfig ? if stdenv.isi686 then "-b 32 -A 12 -V 1" else "-b 64 -A 14 -V 384" , cacheEdge ? "262144" , threads ? "0" +, liblapack, withLapack }: # Atlas detects the CPU and optimizes its build accordingly. This is great when @@ -48,7 +49,7 @@ let in stdenv.mkDerivation { - name = "atlas-${version}"; + name = "atlas-${version}" + optionalString withLapack "-with-lapack"; src = fetchurl { url = "mirror://sourceforge/math-atlas/atlas${version}.tar.bz2"; @@ -81,7 +82,8 @@ stdenv.mkDerivation { "-fPIC" "-t ${threads}" cpuConfig - ] ++ optional shared "--shared"; + ] ++ optional shared "--shared" + ++ optional withLapack "--with-netlib-lapack-tarfile=${liblapack.src}"; postConfigure = '' if [[ -n "${cacheEdge}" ]]; then @@ -94,8 +96,10 @@ stdenv.mkDerivation { postInstall = '' # Avoid name collision with the real lapack (ATLAS only builds a partial - # lapack). - mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a + # lapack unless withLapack = true). + if ${if withLapack then "false" else "true"}; then + mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a + fi ''; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 297a983be608..9e4acb23a7c4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12173,8 +12173,12 @@ let # great feature, but it's of limited use with pre-built binaries # coming from a central build farm. tolerateCpuTimingInaccuracy = true; + liblapack = liblapack_3_5_0; + withLapack = false; }; + atlasWithLapack = atlas.override { withLapack = true; }; + blas = callPackage ../development/libraries/science/math/blas { }; content = builderDefsPackage ../applications/science/math/content { From 202acdbdaf795508dca420b0844683140a884b1f Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 15 Dec 2014 11:28:20 -0600 Subject: [PATCH 064/175] arpack: version bump to 3.2.0 --- pkgs/development/libraries/science/math/arpack/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix index 71f9ef2a2b6b..54c0bbca8db2 100644 --- a/pkgs/development/libraries/science/math/arpack/default.nix +++ b/pkgs/development/libraries/science/math/arpack/default.nix @@ -1,12 +1,13 @@ { stdenv, fetchurl, gfortran, openblas }: -let version = "3.1.5"; +let + version = "3.2.0"; in stdenv.mkDerivation { name = "arpack-${version}"; src = fetchurl { - url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_${version}.tar.gz"; - sha256 = "05fmg4m0yri47rzgsl2mnr1qbzrs7qyd557p3v9wwxxw0rwcwsd2"; + url = "https://github.com/opencollab/arpack-ng/archive/${version}.tar.gz"; + sha256 = "1fwch6vipms1ispzg2djvbzv5wag36f1dmmr3xs3mbp6imfyhvff"; }; buildInputs = [ gfortran ]; From 84553e0aa0920c601fdae6fd419a48846d761da8 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 15 Dec 2014 11:28:57 -0600 Subject: [PATCH 065/175] arpack: build against atlasWithLapack --- .../libraries/science/math/arpack/default.nix | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/science/math/arpack/default.nix b/pkgs/development/libraries/science/math/arpack/default.nix index 54c0bbca8db2..296c5f6b9202 100644 --- a/pkgs/development/libraries/science/math/arpack/default.nix +++ b/pkgs/development/libraries/science/math/arpack/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gfortran, openblas }: +{ stdenv, fetchurl, gfortran, atlasWithLapack }: let version = "3.2.0"; @@ -10,23 +10,17 @@ stdenv.mkDerivation { sha256 = "1fwch6vipms1ispzg2djvbzv5wag36f1dmmr3xs3mbp6imfyhvff"; }; - buildInputs = [ gfortran ]; - propagatedBuildInputs = [ openblas ]; - - preConfigure = '' - substituteInPlace arpack.pc.in \ - --replace "@BLAS_LIBS@" "-L${openblas}/lib @BLAS_LIBS@" - ''; + buildInputs = [ gfortran atlasWithLapack ]; # Auto-detection fails because gfortran brings in BLAS by default - configureFlags="--with-blas=-lopenblas --with-lapack=-lopenblas"; + configureFlags="--with-blas=-latlas --with-lapack=-latlas"; meta = { homepage = "http://forge.scilab.org/index.php/p/arpack-ng/"; - description = "A collection of Fortran77 subroutines to solve large scale eigenvalue problems"; - # Looks like OpenBLAS is not that easy to build - # there is a sgemm_itcopy undefined reference on 32-bit, for example - platforms = ["x86_64-linux"]; + description = '' + A collection of Fortran77 subroutines to solve large scale eigenvalue + problems. + ''; license = stdenv.lib.licenses.bsd3; maintainers = [ stdenv.lib.maintainers.ttuegel ]; }; From 53317799ec492c381f2cb930ef7a2750d0ee6b6d Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 15 Dec 2014 11:29:30 -0600 Subject: [PATCH 066/175] suitesparse: add version 4.4.1 --- .../math/suitesparse/0001-disable-metis.patch | 36 ++ .../suitesparse/0002-set-install-dir.patch | 27 ++ .../suitesparse/0003-blas-lapack-flags.patch | 27 ++ .../math/suitesparse/4.2.nix} | 0 .../math/suitesparse/SuiteSparse_config.mk | 452 ++++++++++++++++++ .../science/math/suitesparse/default.nix | 58 +++ .../math}/suitesparse/disable-metis.patch | 0 pkgs/top-level/all-packages.nix | 8 +- 8 files changed, 605 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/libraries/science/math/suitesparse/0001-disable-metis.patch create mode 100644 pkgs/development/libraries/science/math/suitesparse/0002-set-install-dir.patch create mode 100644 pkgs/development/libraries/science/math/suitesparse/0003-blas-lapack-flags.patch rename pkgs/development/libraries/{suitesparse/default.nix => science/math/suitesparse/4.2.nix} (100%) create mode 100644 pkgs/development/libraries/science/math/suitesparse/SuiteSparse_config.mk create mode 100644 pkgs/development/libraries/science/math/suitesparse/default.nix rename pkgs/development/libraries/{ => science/math}/suitesparse/disable-metis.patch (100%) diff --git a/pkgs/development/libraries/science/math/suitesparse/0001-disable-metis.patch b/pkgs/development/libraries/science/math/suitesparse/0001-disable-metis.patch new file mode 100644 index 000000000000..b0f7715f755d --- /dev/null +++ b/pkgs/development/libraries/science/math/suitesparse/0001-disable-metis.patch @@ -0,0 +1,36 @@ +From 456b26d0c9101adaa5876954baac0ca0e872dab6 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 15 Dec 2014 10:18:01 -0600 +Subject: [PATCH 1/3] disable metis + +--- + SuiteSparse_config/SuiteSparse_config.mk | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk +index ba2da23..e1514bf 100644 +--- a/SuiteSparse_config/SuiteSparse_config.mk ++++ b/SuiteSparse_config/SuiteSparse_config.mk +@@ -212,8 +212,8 @@ XERBLA = + # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc. + # You may wish to use an absolute path. METIS is optional. Compile + # CHOLMOD with -DNPARTITION if you do not wish to use METIS. +-METIS_PATH = ../../metis-4.0 +-METIS = ../../metis-4.0/libmetis.a ++# METIS_PATH = ../../metis-4.0 ++# METIS = ../../metis-4.0/libmetis.a + + #------------------------------------------------------------------------------ + # UMFPACK configuration: +@@ -273,7 +273,7 @@ UMFPACK_CONFIG = + # -DNSUNPERF for Solaris only. If defined, do not use the Sun + # Performance Library + +-CHOLMOD_CONFIG = $(GPU_CONFIG) ++CHOLMOD_CONFIG = $(GPU_CONFIG) -DNPARTITION + + # uncomment this line to compile CHOLMOD without METIS: + # CHOLMOD_CONFIG = -DNPARTITION +-- +2.1.3 + diff --git a/pkgs/development/libraries/science/math/suitesparse/0002-set-install-dir.patch b/pkgs/development/libraries/science/math/suitesparse/0002-set-install-dir.patch new file mode 100644 index 000000000000..ef861f68091a --- /dev/null +++ b/pkgs/development/libraries/science/math/suitesparse/0002-set-install-dir.patch @@ -0,0 +1,27 @@ +From e0fee492a315ce1ef8697b056af210beb1465334 Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 15 Dec 2014 10:18:12 -0600 +Subject: [PATCH 2/3] set install dir + +--- + SuiteSparse_config/SuiteSparse_config.mk | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk +index e1514bf..f1046a6 100644 +--- a/SuiteSparse_config/SuiteSparse_config.mk ++++ b/SuiteSparse_config/SuiteSparse_config.mk +@@ -95,8 +95,8 @@ F77LIB = + # LIB = -lm + + # For "make install" +-INSTALL_LIB = /usr/local/lib +-INSTALL_INCLUDE = /usr/local/include ++INSTALL_LIB = @out@/lib ++INSTALL_INCLUDE = @out@/include + + # Which version of MAKE you are using (default is "make") + # MAKE = make +-- +2.1.3 + diff --git a/pkgs/development/libraries/science/math/suitesparse/0003-blas-lapack-flags.patch b/pkgs/development/libraries/science/math/suitesparse/0003-blas-lapack-flags.patch new file mode 100644 index 000000000000..db0b1c456558 --- /dev/null +++ b/pkgs/development/libraries/science/math/suitesparse/0003-blas-lapack-flags.patch @@ -0,0 +1,27 @@ +From a99cca30cfd965683564ae024e8ecc615c61697a Mon Sep 17 00:00:00 2001 +From: Thomas Tuegel +Date: Mon, 15 Dec 2014 10:24:08 -0600 +Subject: [PATCH 3/3] blas lapack flags + +--- + SuiteSparse_config/SuiteSparse_config.mk | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk +index f1046a6..1710162 100644 +--- a/SuiteSparse_config/SuiteSparse_config.mk ++++ b/SuiteSparse_config/SuiteSparse_config.mk +@@ -119,8 +119,8 @@ INSTALL_INCLUDE = @out@/include + # naming the BLAS and LAPACK library (*.a or *.so) files. + + # This is probably slow ... it might connect to the Standard Reference BLAS: +- BLAS = -lblas -lgfortran +- LAPACK = -llapack ++ BLAS = @blasFlags@ ++ LAPACK = @lapackFlags@ + + # MKL + # BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +-- +2.1.3 + diff --git a/pkgs/development/libraries/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/4.2.nix similarity index 100% rename from pkgs/development/libraries/suitesparse/default.nix rename to pkgs/development/libraries/science/math/suitesparse/4.2.nix diff --git a/pkgs/development/libraries/science/math/suitesparse/SuiteSparse_config.mk b/pkgs/development/libraries/science/math/suitesparse/SuiteSparse_config.mk new file mode 100644 index 000000000000..157a20d7b5aa --- /dev/null +++ b/pkgs/development/libraries/science/math/suitesparse/SuiteSparse_config.mk @@ -0,0 +1,452 @@ +#=============================================================================== +# SuiteSparse_config.mk: common configuration file for the SuiteSparse +#=============================================================================== + +# This file contains all configuration settings for all packages authored or +# co-authored by Tim Davis: +# +# Package Version Description +# ------- ------- ----------- +# AMD 1.2 or later approximate minimum degree ordering +# COLAMD 2.4 or later column approximate minimum degree ordering +# CCOLAMD 1.0 or later constrained column approximate minimum degree ordering +# CAMD any constrained approximate minimum degree ordering +# UMFPACK 4.5 or later sparse LU factorization, with the BLAS +# CHOLMOD any sparse Cholesky factorization, update/downdate +# KLU 0.8 or later sparse LU factorization, BLAS-free +# BTF 0.8 or later permutation to block triangular form +# LDL 1.2 or later concise sparse LDL' +# CXSparse any extended version of CSparse (int/long, real/complex) +# SuiteSparseQR any sparse QR factorization +# RBio 2.0 or later read/write sparse matrices in Rutherford-Boeing format +# +# By design, this file is NOT included in the CSparse makefile. +# That package is fully stand-alone. CSparse is primarily for teaching; +# production code should use CXSparse. +# +# The SuiteSparse_config directory and the above packages should all appear in +# a single directory, in order for the Makefile's within each package to find +# this file. +# +# To enable an option of the form "# OPTION = ...", edit this file and +# delete the "#" in the first column of the option you wish to use. +# +# The use of METIS 4.0.1 is optional. To exclude METIS, you must compile with +# CHOLMOD_CONFIG set to -DNPARTITION. See below for details. However, if you +# do not have a metis-4.0 directory inside the SuiteSparse directory, the +# */Makefile's that optionally rely on METIS will automatically detect this +# and compile without METIS. + +#------------------------------------------------------------------------------ +# Generic configuration +#------------------------------------------------------------------------------ + +# Using standard definitions from the make environment, typically: +# +# CC cc C compiler +# CXX g++ C++ compiler +# CFLAGS [ ] flags for C and C++ compiler +# CPPFLAGS [ ] flags for C and C++ compiler +# TARGET_ARCH [ ] target architecture +# FFLAGS [ ] flags for Fortran compiler +# RM rm -f delete a file +# AR ar create a static *.a library archive +# ARFLAGS rv flags for ar +# MAKE make make itself (sometimes called gmake) +# +# You can redefine them here, but by default they are used from the +# default make environment. + +# To use OpenMP add -openmp to the CFLAGS +# If OpenMP is used, it is recommended to define CHOLMOD_OMP_NUM_THREADS +# as the number of cores per socket on the machine being used to maximize +# memory performance + CFLAGS = +# CFLAGS = -g +# for the icc compiler and OpenMP: +# CFLAGS = -openmp + +# C and C++ compiler flags. The first three are standard for *.c and *.cpp +# Add -DNTIMER if you do use any timing routines (otherwise -lrt is required). +# CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O3 -fexceptions -fPIC -DNTIMER + CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O3 -fexceptions -fPIC +# for the MKL BLAS: +# CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O3 -fexceptions -fPIC -I$(MKLROOT)/include -D_GNU_SOURCE +# with no optimization: +# CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -fexceptions -fPIC + +# ranlib, and ar, for generating libraries. If you don't need ranlib, +# just change it to RANLAB = echo +RANLIB = ranlib +ARCHIVE = $(AR) $(ARFLAGS) + +# copy and delete a file +CP = cp -f +MV = mv -f + +# Fortran compiler (not required for 'make' or 'make library') +F77 = gfortran +F77FLAGS = $(FFLAGS) -O +F77LIB = + +# C and Fortran libraries. Remove -lrt if you don't have it. + LIB = -lm -lrt +# Using the following requires CF = ... -DNTIMER on POSIX C systems. +# LIB = -lm + +# For "make install" +INSTALL_LIB = @out@/lib +INSTALL_INCLUDE = @out@/include + +# Which version of MAKE you are using (default is "make") +# MAKE = make +# MAKE = gmake + +#------------------------------------------------------------------------------ +# BLAS and LAPACK configuration: +#------------------------------------------------------------------------------ + +# UMFPACK and CHOLMOD both require the BLAS. CHOLMOD also requires LAPACK. +# See Kazushige Goto's BLAS at http://www.cs.utexas.edu/users/flame/goto/ or +# http://www.tacc.utexas.edu/~kgoto/ for the best BLAS to use with CHOLMOD. +# LAPACK is at http://www.netlib.org/lapack/ . You can use the standard +# Fortran LAPACK along with Goto's BLAS to obtain very good performance. +# CHOLMOD gets a peak numeric factorization rate of 3.6 Gflops on a 3.2 GHz +# Pentium 4 (512K cache, 4GB main memory) with the Goto BLAS, and 6 Gflops +# on a 2.5Ghz dual-core AMD Opteron. + +# These settings will probably not work, since there is no fixed convention for +# naming the BLAS and LAPACK library (*.a or *.so) files. + +# This is probably slow ... it might connect to the Standard Reference BLAS: + BLAS = -lf77blas -latlas -lcblas -lgfortran + LAPACK = -llapack -latlas -lcblas + +# MKL +# BLAS = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm +# LAPACK = + +# ACML +# BLAS = -lacml -lgfortran +# LAPACK = + +# OpenBLAS +# BLAS = -lopenblas +# LAPACK = + +# NOTE: this next option for the "Goto BLAS" has nothing to do with a "goto" +# statement. Rather, the Goto BLAS is written by Dr. Kazushige Goto. +# Using the Goto BLAS: +# BLAS = -lgoto -lgfortran -lgfortranbegin +# BLAS = -lgoto2 -lgfortran -lgfortranbegin -lpthread + +# Using non-optimized versions: +# BLAS = -lblas_plain -lgfortran -lgfortranbegin +# LAPACK = -llapack_plain + +# BLAS = -lblas_plain -lgfortran -lgfortranbegin +# LAPACK = -llapack + +# The BLAS might not contain xerbla, an error-handling routine for LAPACK and +# the BLAS. Also, the standard xerbla requires the Fortran I/O library, and +# stops the application program if an error occurs. A C version of xerbla +# distributed with this software (SuiteSparse_config/xerbla/libcerbla.a) +# includes a Fortran-callable xerbla routine that prints nothing and does not +# stop the application program. This is optional. + +# XERBLA = ../../SuiteSparse_config/xerbla/libcerbla.a + +# If you wish to use the XERBLA in LAPACK and/or the BLAS instead, +# use this option: +XERBLA = + +# If you wish to use the Fortran SuiteSparse_config/xerbla/xerbla.f instead, +# use this: + +# XERBLA = ../../SuiteSparse_config/xerbla/libxerbla.a + +#------------------------------------------------------------------------------ +# GPU configuration for CHOLMOD and SPQR +#------------------------------------------------------------------------------ + +# no cuda + CUDA_ROOT = + GPU_BLAS_PATH = + GPU_CONFIG = + CUDA_PATH = + CUDART_LIB = + CUBLAS_LIB = + CUDA_INC_PATH = + NV20 = + NV30 = + NV35 = + NVCC = echo + NVCCFLAGS = + +# with cuda for CHOLMOD +# CUDA_ROOT = /usr/local/cuda +# GPU_BLAS_PATH = $(CUDA_ROOT) +# with 4 cores (default): +# GPU_CONFIG = -I$(CUDA_ROOT)/include -DGPU_BLAS +# with 10 cores: +# GPU_CONFIG = -I$(CUDA_ROOT)/include -DGPU_BLAS -DCHOLMOD_OMP_NUM_THREADS=10 +# CUDA_PATH = $(CUDA_ROOT) +# CUDART_LIB = $(CUDA_ROOT)/lib64/libcudart.so +# CUBLAS_LIB = $(CUDA_ROOT)/lib64/libcublas.so +# CUDA_INC_PATH = $(CUDA_ROOT)/include/ +# NV20 = -arch=sm_20 -Xcompiler -fPIC +# NV30 = -arch=sm_30 -Xcompiler -fPIC +# NV35 = -arch=sm_35 -Xcompiler -fPIC +# NVCC = $(CUDA_ROOT)/bin/nvcc +# NVCCFLAGS = $(NV20) -O3 -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_35,code=sm_35 + +# was NVCC = $(CUDA_ROOT)/bin/nvcc $(NV35) $(NV30) $(NV20) + +#------------------------------------------------------------------------------ +# METIS, optionally used by CHOLMOD +#------------------------------------------------------------------------------ + +# If you do not have METIS, or do not wish to use it in CHOLMOD, you must +# compile CHOLMOD with the -DNPARTITION flag. + +# The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc. +# You may wish to use an absolute path. METIS is optional. Compile +# CHOLMOD with -DNPARTITION if you do not wish to use METIS. +# METIS_PATH = ../../metis-4.0 +# METIS = ../../metis-4.0/libmetis.a + +#------------------------------------------------------------------------------ +# UMFPACK configuration: +#------------------------------------------------------------------------------ + +# Configuration flags for UMFPACK. See UMFPACK/Source/umf_config.h for details. +# +# -DNBLAS do not use the BLAS. UMFPACK will be very slow. +# -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by +# LAPACK and the BLAS (defaults to 'int') +# -DNSUNPERF do not use the Sun Perf. Library (default is use it on Solaris) +# -DNRECIPROCAL do not multiply by the reciprocal +# -DNO_DIVIDE_BY_ZERO do not divide by zero +# -DNCHOLMOD do not use CHOLMOD as a ordering method. If -DNCHOLMOD is +# included in UMFPACK_CONFIG, then UMFPACK does not rely on +# CHOLMOD, CAMD, CCOLAMD, COLAMD, and METIS. + +UMFPACK_CONFIG = + +# uncomment this line to compile UMFPACK without CHOLMOD: +# UMFPACK_CONFIG = -DNCHOLMOD + +#------------------------------------------------------------------------------ +# CHOLMOD configuration +#------------------------------------------------------------------------------ + +# CHOLMOD Library Modules, which appear in libcholmod.a: +# Core requires: none +# Check requires: Core +# Cholesky requires: Core, AMD, COLAMD. optional: Partition, Supernodal +# MatrixOps requires: Core +# Modify requires: Core +# Partition requires: Core, CCOLAMD, METIS. optional: Cholesky +# Supernodal requires: Core, BLAS, LAPACK +# +# CHOLMOD test/demo Modules (all are GNU GPL, do not appear in libcholmod.a): +# Tcov requires: Core, Check, Cholesky, MatrixOps, Modify, Supernodal +# optional: Partition +# Valgrind same as Tcov +# Demo requires: Core, Check, Cholesky, MatrixOps, Supernodal +# optional: Partition +# +# Configuration flags: +# -DNCHECK do not include the Check module. License GNU LGPL +# -DNCHOLESKY do not include the Cholesky module. License GNU LGPL +# -DNPARTITION do not include the Partition module. License GNU LGPL +# also do not include METIS. +# -DNCAMD do not use CAMD, etc from Partition module. GNU LGPL +# -DNGPL do not include any GNU GPL Modules in the CHOLMOD library: +# -DNMATRIXOPS do not include the MatrixOps module. License GNU GPL +# -DNMODIFY do not include the Modify module. License GNU GPL +# -DNSUPERNODAL do not include the Supernodal module. License GNU GPL +# +# -DNPRINT do not print anything. +# -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by +# LAPACK and the BLAS (defaults to 'int') +# -DNSUNPERF for Solaris only. If defined, do not use the Sun +# Performance Library + +CHOLMOD_CONFIG = $(GPU_CONFIG) -DNPARTITION + +# uncomment this line to compile CHOLMOD without METIS: +# CHOLMOD_CONFIG = -DNPARTITION + +#------------------------------------------------------------------------------ +# SuiteSparseQR configuration: +#------------------------------------------------------------------------------ + +# The SuiteSparseQR library can be compiled with the following options: +# +# -DNPARTITION do not include the CHOLMOD partition module +# -DNEXPERT do not include the functions in SuiteSparseQR_expert.cpp +# -DHAVE_TBB enable the use of Intel's Threading Building Blocks (TBB) + +# default, without timing, without TBB: +SPQR_CONFIG = $(GPU_CONFIG) +# with TBB: +# SPQR_CONFIG = -DHAVE_TBB + +# This is needed for IBM AIX: (but not for and C codes, just C++) +# SPQR_CONFIG = -DBLAS_NO_UNDERSCORE + +# with TBB, you must select this: +# TBB = -ltbb +# without TBB: +TBB = + +#------------------------------------------------------------------------------ +# code formatting +#------------------------------------------------------------------------------ + +# Use "grep" only, if you do not have "indent" +# PRETTY = grep -v "^\#" +# PRETTY = grep -v "^\#" | indent -bl -nce -ss -bli0 -i4 -sob -l120 + PRETTY = grep -v "^\#" | indent -bl -nce -bli0 -i4 -sob -l120 + +#------------------------------------------------------------------------------ +# Linux +#------------------------------------------------------------------------------ + +# Using default compilers: +# CC = gcc +# CF = $(CFLAGS) -O3 -fexceptions + +# alternatives: +# CF = $(CFLAGS) -g -fexceptions \ +# -Wall -W -Wshadow -Wmissing-prototypes -Wstrict-prototypes \ +# -Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi \ +# -funit-at-a-time +# CF = $(CFLAGS) -O3 -fexceptions \ +# -Wall -W -Werror -Wshadow -Wmissing-prototypes -Wstrict-prototypes \ +# -Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi +# CF = $(CFLAGS) -O3 -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE +# CF = $(CFLAGS) -O3 +# CF = $(CFLAGS) -O3 -g -fexceptions +# CF = $(CFLAGS) -g -fexceptions \ +# -Wall -W -Wshadow \ +# -Wredundant-decls -Wdisabled-optimization -ansi + +# consider: +# -fforce-addr -fmove-all-movables -freduce-all-givs -ftsp-ordering +# -frename-registers -ffast-math -funroll-loops + +# Using the Goto BLAS: +# BLAS = -lgoto -lfrtbegin -lg2c $(XERBLA) -lpthread + +# Using Intel's icc and ifort compilers: +# (does not work for mexFunctions unless you add a mexopts.sh file) +# F77 = ifort +# CC = icc +# CF = $(CFLAGS) -O3 -xN -vec_report=0 +# CF = $(CFLAGS) -g + +# 64bit: +# F77FLAGS = -O -m64 +# CF = $(CFLAGS) -O3 -fexceptions -m64 +# BLAS = -lgoto64 -lfrtbegin -lg2c -lpthread $(XERBLA) +# LAPACK = -llapack64 + +# SUSE Linux 10.1, AMD Opteron, with GOTO Blas +# F77 = gfortran +# BLAS = -lgoto_opteron64 -lgfortran + +# SUSE Linux 10.1, Intel Pentium, with GOTO Blas +# F77 = gfortran +# BLAS = -lgoto -lgfortran + +#------------------------------------------------------------------------------ +# Mac +#------------------------------------------------------------------------------ + +# As recommended by macports, http://suitesparse.darwinports.com/ +# I've tested them myself on Mac OSX 10.6.1 and 10.6.8 (Snow Leopard), +# on my MacBook Air, and they work fine. + +# F77 = gfortran +# CF = $(CFLAGS) -O3 -fno-common -fexceptions -DNTIMER +# BLAS = -framework Accelerate +# LAPACK = -framework Accelerate +# LIB = -lm + +#------------------------------------------------------------------------------ +# Solaris +#------------------------------------------------------------------------------ + +# 32-bit +# CF = $(CFLAGS) -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil -m32 + +# 64-bit +# CF = $(CFLAGS) -fast -KPIC -xc99=%none -xlibmieee -xlibmil -m64 -Xc + +# FFLAGS = -fast -KPIC -dalign -xlibmil -m64 + +# The Sun Performance Library includes both LAPACK and the BLAS: +# BLAS = -xlic_lib=sunperf +# LAPACK = + + +#------------------------------------------------------------------------------ +# Compaq Alpha +#------------------------------------------------------------------------------ + +# 64-bit mode only +# CF = $(CFLAGS) -O2 -std1 +# BLAS = -ldxml +# LAPACK = + +#------------------------------------------------------------------------------ +# IBM RS 6000 +#------------------------------------------------------------------------------ + +# BLAS = -lessl +# LAPACK = + +# 32-bit mode: +# CF = $(CFLAGS) -O4 -qipa -qmaxmem=16384 -qproto +# F77FLAGS = -O4 -qipa -qmaxmem=16384 + +# 64-bit mode: +# CF = $(CFLAGS) -O4 -qipa -qmaxmem=16384 -q64 -qproto +# F77FLAGS = -O4 -qipa -qmaxmem=16384 -q64 + +#------------------------------------------------------------------------------ +# SGI IRIX +#------------------------------------------------------------------------------ + +# BLAS = -lscsl +# LAPACK = + +# 32-bit mode +# CF = $(CFLAGS) -O + +# 64-bit mode (32 bit int's and 64-bit long's): +# CF = $(CFLAGS) -64 +# F77FLAGS = -64 + +# SGI doesn't have ranlib +# RANLIB = echo + +#------------------------------------------------------------------------------ +# AMD Opteron (64 bit) +#------------------------------------------------------------------------------ + +# BLAS = -lgoto_opteron64 -lg2c +# LAPACK = -llapack_opteron64 + +# SUSE Linux 10.1, AMD Opteron +# F77 = gfortran +# BLAS = -lgoto_opteron64 -lgfortran +# LAPACK = -llapack_opteron64 + +#------------------------------------------------------------------------------ +# remove object files and profile output +#------------------------------------------------------------------------------ + +CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.tcov *.gcov gmon.out *.bak *.d *.gcda *.gcno diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix new file mode 100644 index 000000000000..add4ca9a08f4 --- /dev/null +++ b/pkgs/development/libraries/science/math/suitesparse/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchurl, substituteAll +, atlasWithLapack, gfortran }: + +let + name = "suitesparse-4.4.1"; +in +stdenv.mkDerivation { + inherit name; + + src = fetchurl { + url = "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.1.tar.gz"; + sha256 = "0y8i6dizrr556xggpjyc7wijjv4jbizhssmjj4jv8n1s7zxy2z0n"; + }; + + patches = [ + ./0001-disable-metis.patch + ./0002-set-install-dir.patch + (substituteAll { + src = ./0003-blas-lapack-flags.patch; + blasFlags = "-lf77blas -latlas -lcblas -lgfortran"; + lapackFlags= "-llapack -latlas -lcblas"; + }) + ]; + + preConfigure = '' + substituteAllInPlace SuiteSparse_config/SuiteSparse_config.mk + mkdir -p $out/lib + mkdir -p $out/include + ''; + + postInstall = '' + # Install documentation + outdoc=$out/share/doc/${name} + mkdir -p $outdoc + cp -r AMD/Doc $outdoc/amd + cp -r BTF/Doc $outdoc/bft + cp -r CAMD/Doc $outdoc/camd + cp -r CCOLAMD/Doc $outdoc/ccolamd + cp -r CHOLMOD/Doc $outdoc/cholmod + cp -r COLAMD/Doc $outdoc/colamd + cp -r CXSparse/Doc $outdoc/cxsparse + cp -r KLU/Doc $outdoc/klu + cp -r LDL/Doc $outdoc/ldl + cp -r RBio/Doc $outdoc/rbio + cp -r SPQR/Doc $outdoc/spqr + cp -r UMFPACK/Doc $outdoc/umfpack + ''; + + nativeBuildInputs = [ gfortran ]; + buildInputs = [ atlasWithLapack ]; + + meta = with stdenv.lib; { + homepage = http://faculty.cse.tamu.edu/davis/suitesparse.html; + description = "A suite of sparse matrix algorithms"; + license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ]; + maintainers = with maintainers; [ ttuegel ]; + }; +} diff --git a/pkgs/development/libraries/suitesparse/disable-metis.patch b/pkgs/development/libraries/science/math/suitesparse/disable-metis.patch similarity index 100% rename from pkgs/development/libraries/suitesparse/disable-metis.patch rename to pkgs/development/libraries/science/math/suitesparse/disable-metis.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9e4acb23a7c4..db8e9641bf64 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3500,13 +3500,14 @@ let liblapack = liblapack.override {shared = true;}; llvm = llvm_33; openblas = openblas_0_2_2; + suitesparse = suitesparse_4_2; }; julia033 = let liblapack = liblapack_3_5_0.override {shared = true;}; in callPackage ../development/compilers/julia/0.3.3.nix { inherit liblapack; - suitesparse = suitesparse.override { + suitesparse = suitesparse_4_2.override { inherit liblapack; }; llvm = llvm_33; @@ -6980,8 +6981,6 @@ let suil = callPackage ../development/libraries/audio/suil { }; - suitesparse = callPackage ../development/libraries/suitesparse { }; - sutils = callPackage ../tools/misc/sutils { }; sword = callPackage ../development/libraries/sword { }; @@ -12210,6 +12209,9 @@ let sage = callPackage ../applications/science/math/sage { }; + suitesparse_4_2 = callPackage ../development/libraries/science/math/suitesparse/4.2.nix { }; + suitesparse_4_4_1 = callPackage ../development/libraries/science/math/suitesparse {}; + ipopt = callPackage ../development/libraries/science/math/ipopt { }; ### SCIENCE/MOLECULAR-DYNAMICS From 1d7bdfac8e32720aa652dc563f9bf22b2df11f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 27 Dec 2014 20:58:34 +0100 Subject: [PATCH 067/175] libcaca: add another mirror The original does not work ATM. --- pkgs/development/libraries/libcaca/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix index de2ab0ff3b15..496af1be88e0 100644 --- a/pkgs/development/libraries/libcaca/default.nix +++ b/pkgs/development/libraries/libcaca/default.nix @@ -4,7 +4,10 @@ stdenv.mkDerivation rec { name = "libcaca-0.99.beta19"; src = fetchurl { - url = "http://caca.zoy.org/files/libcaca/${name}.tar.gz"; + urls = [ + "http://fossies.org/linux/privat/${name}.tar.gz" + "http://caca.zoy.org/files/libcaca/${name}.tar.gz" + ]; sha256 = "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj"; }; From 0771071cf98cd9c98965d905c1b5d66e2c75018a Mon Sep 17 00:00:00 2001 From: Eduard Bachmakov Date: Sat, 27 Dec 2014 00:18:18 +0100 Subject: [PATCH 068/175] Add photoqt-1.1.0.1 Also, add myself to maintainers. --- lib/maintainers.nix | 1 + .../applications/graphics/photoqt/default.nix | 28 +++++++++++ .../photoqt/graphicsmagick-path.patch | 46 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 4 files changed, 77 insertions(+) create mode 100644 pkgs/applications/graphics/photoqt/default.nix create mode 100644 pkgs/applications/graphics/photoqt/graphicsmagick-path.patch diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 922ec43cdce6..8f75a3330c2e 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -55,6 +55,7 @@ dmalikov = "Dmitry Malikov "; doublec = "Chris Double "; ederoyd46 = "Matthew Brown "; + eduarrrd = "Eduard Bachmakov "; edwtjo = "Edward Tjörnhammar "; eelco = "Eelco Dolstra "; eikek = "Eike Kettner "; diff --git a/pkgs/applications/graphics/photoqt/default.nix b/pkgs/applications/graphics/photoqt/default.nix new file mode 100644 index 000000000000..c16093bfec0e --- /dev/null +++ b/pkgs/applications/graphics/photoqt/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, cmake, qt5, exiv2, graphicsmagick }: + +let + version = "1.1.0.1"; +in +stdenv.mkDerivation rec { + name = "photoqt-${version}"; + src = fetchurl { + url = "http://photoqt.org/pkgs/photoqt-${version}.tar.gz"; + sha256 = "1y59ys1dgjppahs7v7kxwva7ik23s0x7j2f6glv6sn23l9cfq9rp"; + }; + + buildInputs = [ cmake qt5 exiv2 graphicsmagick ]; + + patches = [ ./graphicsmagick-path.patch ]; + + preConfigure = '' + export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick" + ''; + + meta = { + homepage = "http://photoqt.org/"; + description = "Simple, yet powerful and good looking image viewer"; + license = stdenv.lib.licenses.gpl2Plus; + platforms = stdenv.lib.platforms.unix; + maintainers = [ stdenv.lib.maintainers.eduarrrd ]; + }; +} diff --git a/pkgs/applications/graphics/photoqt/graphicsmagick-path.patch b/pkgs/applications/graphics/photoqt/graphicsmagick-path.patch new file mode 100644 index 000000000000..da9b70e31ed5 --- /dev/null +++ b/pkgs/applications/graphics/photoqt/graphicsmagick-path.patch @@ -0,0 +1,46 @@ +--- a/CMake/FindMagick.cmake 2014-10-13 19:24:30.000000000 +0200 ++++ b/CMake/FindMagick.cmake 2014-12-27 18:54:19.611759021 +0100 +@@ -19,28 +19,11 @@ + SET(MAGICK++_FOUND "NO" ) + + FIND_PATH( MAGICK_INCLUDE_DIR magick/magick.h +- "$ENV{MAGICK_LOCATION}/magick" +- "$ENV{MAGICK_LOCATION}/include/magick" +- "$ENV{MAGICK_HOME}/include/magick" +- /usr/include/magick +- /usr/include/ +- /usr/include/GraphicsMagick +- /opt/local/include/GraphicsMagick/magick +- /opt/local/include/GraphicsMagick ++ "$ENV{MAGICK_LOCATION}" + ) + + FIND_PATH( MAGICK++_INCLUDE_DIR Magick++.h +- "$ENV{MAGICK++_LOCATION}/Magick++" +- "$ENV{MAGICK++_LOCATION}/include/" +- "$ENV{MAGICK_LOCATION}/Magick++" +- "$ENV{MAGICK_LOCATION}/include/Magick++" +- "$ENV{MAGICK_LOCATION}/include/" +- "$ENV{MAGICK_HOME}/include/" +- /usr/include/Magick++ +- /usr/include/GraphicsMagick +- /usr/include/ +- /opt/local/include/GraphicsMagick/Magick++ +- /opt/local/include/GraphicsMagick ++ "$ENV{MAGICK_LOCATION}" + ) + + FIND_LIBRARY( Magick GraphicsMagick +@@ -55,12 +38,7 @@ + + FIND_LIBRARY( Magick++ GraphicsMagick++ + PATHS +- "$ENV{MAGICK++_LOCATION}/.libs" +- "$ENV{MAGICK_LOCATION}/.libs" +- "$ENV{MAGICK++_LOCATION}/lib" + "$ENV{MAGICK_LOCATION}/lib" +- "$ENV{MAGICK_HOME}/lib" +- /opt/local/lib + DOC "GraphicsMagick Magick++ library" + ) + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index db8e9641bf64..35d198f3d7d1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10548,6 +10548,8 @@ let pdftk = callPackage ../tools/typesetting/pdftk { }; pdfgrep = callPackage ../tools/typesetting/pdfgrep { }; + photoqt = callPackage ../applications/graphics/photoqt { }; + pianobar = callPackage ../applications/audio/pianobar { }; pianobooster = callPackage ../applications/audio/pianobooster { }; From 591511c554b21f92a1bfa196f35482ec22831f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 27 Dec 2014 22:07:49 +0100 Subject: [PATCH 069/175] xfce4-session: support newer upower by an Arch patch Tested. --- pkgs/desktops/xfce/core/xfce4-session.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/desktops/xfce/core/xfce4-session.nix b/pkgs/desktops/xfce/core/xfce4-session.nix index d965c296490e..ac268184ded5 100644 --- a/pkgs/desktops/xfce/core/xfce4-session.nix +++ b/pkgs/desktops/xfce/core/xfce4-session.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfce4ui, xfce4panel -, libwnck, dbus_glib, xfconf, libglade, xorg -, polkit }: +{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, gtk, polkit +, libxfce4util, libxfce4ui, xfce4panel, libwnck, dbus_glib, xfconf, libglade, xorg +}: #TODO: gnome stuff: gconf (assistive?), keyring @@ -15,6 +15,14 @@ stdenv.mkDerivation rec { }; name = "${p_name}-${ver_maj}.${ver_min}"; + patches = [(fetchpatch { + name = "suspend+hibernate-via-logind.patch"; + url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/" + + "xfce4-session-4.10.1-logind-support-for-suspend-hibernate.patch" + + "?h=packages/xfce4-session&id=f84637fa2b"; + sha256 = "1pnm1w9invyxjdbfm7p0brf9krl9jy8ab2ilwvizymp5i0vnj0xc"; + })]; + buildInputs = [ pkgconfig intltool gtk libxfce4util libxfce4ui libwnck dbus_glib xfconf xfce4panel libglade xorg.iceauth From 12c51681d322e02b4f3b9b0e77eda261720c8073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 27 Dec 2014 22:41:35 +0100 Subject: [PATCH 070/175] upower: use newer version by default Tested on KDE4, fixed with xfce, and was used with GNOME before. CC @lethalman. I did not test e19, as it won't build, probably due to #5392 @shlevy. CC maintainer @matejc. Also removed a forgotten unused patch. --- .../services/x11/desktop-managers/gnome3.nix | 1 - pkgs/desktops/gnome-3/3.12/default.nix | 1 - .../xfce/core/xfce4-session-systemd.patch | 470 ------------------ pkgs/top-level/all-packages.nix | 4 +- 4 files changed, 2 insertions(+), 474 deletions(-) delete mode 100644 pkgs/desktops/xfce/core/xfce4-session-systemd.patch diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 65bbc025bcf9..c4329cd77550 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -80,7 +80,6 @@ in { services.telepathy.enable = mkDefault true; networking.networkmanager.enable = mkDefault true; services.upower.enable = config.powerManagement.enable; - services.upower.package = gnome3.upower; fonts.fonts = [ pkgs.dejavu_fonts pkgs.cantarell_fonts ]; diff --git a/pkgs/desktops/gnome-3/3.12/default.nix b/pkgs/desktops/gnome-3/3.12/default.nix index 7a972925f667..ac5427d0e40d 100644 --- a/pkgs/desktops/gnome-3/3.12/default.nix +++ b/pkgs/desktops/gnome-3/3.12/default.nix @@ -10,7 +10,6 @@ rec { clutter-gst = pkgs.clutter-gst.override { inherit clutter; }; cogl = pkgs.cogl_1_18; - upower = pkgs.upower_99; gtk = gtk3; # just to be sure libcanberra = pkgs.libcanberra_gtk3; # just to be sure inherit (pkgs.gnome2) ORBit2; diff --git a/pkgs/desktops/xfce/core/xfce4-session-systemd.patch b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch deleted file mode 100644 index 7780491a8eda..000000000000 --- a/pkgs/desktops/xfce/core/xfce4-session-systemd.patch +++ /dev/null @@ -1,470 +0,0 @@ -From ae28aef315a7a6b90f1649ce6d1f30b842791cbf Mon Sep 17 00:00:00 2001 -From: Nick Schermer -Date: Sun, 04 Nov 2012 20:23:36 +0000 -Subject: Add shutdown/reboot functionality for systemd (bug #8729). - -Based on patch by Christian Hesse and Evangelos Foutras. ---- -diff --git a/configure.in.in b/configure.in.in -index 9aa4f8f..134d0f7 100644 ---- a/configure.in -+++ b/configure.in -@@ -96,6 +96,10 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0]) - XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84]) - XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0]) - -+dnl Check for polkit / systemd integration -+XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100], -+ [systemd], [Systemd support (through polit)]) -+ - dnl Check for debugging support - XDT_FEATURE_DEBUG([xfsm_debug_default]) - -diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am -index c015154..f748b2b 100644 ---- a/xfce4-session/Makefile.am -+++ b/xfce4-session/Makefile.am -@@ -38,8 +38,6 @@ xfce4_session_SOURCES = \ - xfsm-compat-gnome.h \ - xfsm-compat-kde.c \ - xfsm-compat-kde.h \ -- xfsm-consolekit.c \ -- xfsm-consolekit.h \ - xfsm-dns.c \ - xfsm-dns.h \ - xfsm-error.c \ -@@ -65,6 +63,16 @@ xfce4_session_SOURCES = \ - xfsm-upower.c \ - xfsm-upower.h - -+if HAVE_SYSTEMD -+xfce4_session_SOURCES += \ -+ xfsm-systemd.c \ -+ xfsm-systemd.h -+else -+xfce4_session_SOURCES += \ -+ xfsm-consolekit.c \ -+ xfsm-consolekit.h -+endif -+ - xfce4_session_CFLAGS = \ - $(LIBSM_CFLAGS) \ - $(LIBX11_CFLAGS) \ -@@ -72,6 +80,7 @@ xfce4_session_CFLAGS = \ - $(DBUS_CFLAGS) \ - $(DBUS_GLIB_CFLAGS) \ - $(LIBWNCK_CFLAGS) \ -+ $(SYSTEMD_CFLAGS) \ - $(XFCONF_CFLAGS) \ - $(GMODULE_CFLAGS) \ - $(PLATFORM_CFLAGS) -@@ -91,6 +100,7 @@ xfce4_session_LDADD = \ - $(DBUS_LIBS) \ - $(DBUS_GLIB_LIBS) \ - $(LIBWNCK_LIBS) \ -+ $(SYSTEMD_LIBS) \ - $(XFCONF_LIBS) \ - -lm - -diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c -index d8757a8..4c483a7 100644 ---- a/xfce4-session/xfsm-shutdown.c -+++ b/xfce4-session/xfsm-shutdown.c -@@ -66,10 +66,13 @@ - #include - #include - #include --#include - #include - -- -+#ifdef HAVE_SYSTEMD -+#include -+#else -+#include -+#endif - - static void xfsm_shutdown_finalize (GObject *object); - static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown); -@@ -93,7 +96,11 @@ struct _XfsmShutdown - { - GObject __parent__; - -+#ifdef HAVE_SYSTEMD -+ XfsmSystemd *systemd; -+#else - XfsmConsolekit *consolekit; -+#endif - XfsmUPower *upower; - - /* kiosk settings */ -@@ -131,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown) - { - XfceKiosk *kiosk; - -+#ifdef HAVE_SYSTEMD -+ shutdown->systemd = xfsm_systemd_get (); -+#else - shutdown->consolekit = xfsm_consolekit_get (); -+#endif - shutdown->upower = xfsm_upower_get (); - shutdown->helper_state = SUDO_NOT_INITIAZED; - shutdown->helper_require_password = FALSE; -@@ -150,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object) - { - XfsmShutdown *shutdown = XFSM_SHUTDOWN (object); - -+#ifdef HAVE_SYSTEMD -+ g_object_unref (G_OBJECT (shutdown->systemd)); -+#else - g_object_unref (G_OBJECT (shutdown->consolekit)); -+#endif - g_object_unref (G_OBJECT (shutdown->upower)); - - /* close down helper */ -@@ -641,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown *shutdown, - if (shutdown->helper_state == SUDO_AVAILABLE) - return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error); - else -+#ifdef HAVE_SYSTEMD -+ return xfsm_systemd_try_restart (shutdown->systemd, error); -+#else - return xfsm_consolekit_try_restart (shutdown->consolekit, error); -+#endif - } - - -@@ -658,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown *shutdown, - if (shutdown->helper_state == SUDO_AVAILABLE) - return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error); - else -+#ifdef HAVE_SYSTEMD -+ return xfsm_systemd_try_shutdown (shutdown->systemd, error); -+#else - return xfsm_consolekit_try_shutdown (shutdown->consolekit, error); -+#endif - } - - -@@ -698,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown *shutdown, - return TRUE; - } - -+#ifdef HAVE_SYSTEMD -+ if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error)) -+#else - if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error)) -+#endif - return TRUE; - - if (xfsm_shutdown_sudo_init (shutdown, error)) -@@ -725,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown *shutdown, - return TRUE; - } - -+#ifdef HAVE_SYSTEMD -+ if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error)) -+#else - if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error)) -+#endif - return TRUE; - - if (xfsm_shutdown_sudo_init (shutdown, error)) -diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c -new file mode 100644 -index 0000000..7bdd39d ---- /dev/null -+++ b/xfce4-session/xfsm-systemd.c -@@ -0,0 +1,229 @@ -+/*- -+ * Copyright (C) 2012 Christian Hesse -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2, or (at your option) -+ * any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -+ * MA 02110-1301 USA. -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+ -+ -+ -+#define SYSTEMD_DBUS_NAME "org.freedesktop.login1" -+#define SYSTEMD_DBUS_PATH "/org/freedesktop/login1" -+#define SYSTEMD_DBUS_INTERFACE "org.freedesktop.login1.Manager" -+#define SYSTEMD_REBOOT_ACTION "Reboot" -+#define SYSTEMD_POWEROFF_ACTION "PowerOff" -+#define SYSTEMD_REBOOT_TEST "org.freedesktop.login1.reboot" -+#define SYSTEMD_POWEROFF_TEST "org.freedesktop.login1.power-off" -+ -+ -+ -+static void xfsm_systemd_finalize (GObject *object); -+ -+ -+ -+struct _XfsmSystemdClass -+{ -+ GObjectClass __parent__; -+}; -+ -+struct _XfsmSystemd -+{ -+ GObject __parent__; -+ -+ PolkitAuthority *authority; -+ PolkitSubject *subject; -+}; -+ -+ -+ -+G_DEFINE_TYPE (XfsmSystemd, xfsm_systemd, G_TYPE_OBJECT) -+ -+ -+ -+static void -+xfsm_systemd_class_init (XfsmSystemdClass *klass) -+{ -+ GObjectClass *gobject_class; -+ -+ gobject_class = G_OBJECT_CLASS (klass); -+ gobject_class->finalize = xfsm_systemd_finalize; -+} -+ -+ -+ -+static void -+xfsm_systemd_init (XfsmSystemd *systemd) -+{ -+ systemd->authority = polkit_authority_get_sync (NULL, NULL); -+ systemd->subject = polkit_unix_process_new (getpid()); -+} -+ -+ -+ -+static void -+xfsm_systemd_finalize (GObject *object) -+{ -+ XfsmSystemd *systemd = XFSM_SYSTEMD (object); -+ -+ g_object_unref (G_OBJECT (systemd->authority)); -+ g_object_unref (G_OBJECT (systemd->subject)); -+ -+ (*G_OBJECT_CLASS (xfsm_systemd_parent_class)->finalize) (object); -+} -+ -+ -+static gboolean -+xfsm_systemd_can_method (XfsmSystemd *systemd, -+ gboolean *can_method, -+ const gchar *method, -+ GError **error) -+{ -+ PolkitAuthorizationResult *res; -+ GError *local_error = NULL; -+ -+ *can_method = FALSE; -+ -+ res = polkit_authority_check_authorization_sync (systemd->authority, -+ systemd->subject, -+ method, -+ NULL, -+ POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE, -+ NULL, -+ &local_error); -+ -+ if (res == NULL) -+ { -+ g_propagate_error (error, local_error); -+ return FALSE; -+ } -+ -+ *can_method = polkit_authorization_result_get_is_authorized (res) -+ || polkit_authorization_result_get_is_challenge (res); -+ -+ g_object_unref (G_OBJECT (res)); -+ -+ return TRUE; -+} -+ -+ -+ -+static gboolean -+xfsm_systemd_try_method (XfsmSystemd *systemd, -+ const gchar *method, -+ GError **error) -+{ -+ GDBusConnection *bus; -+ GError *local_error = NULL; -+ -+ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, error); -+ if (G_UNLIKELY (bus == NULL)) -+ return FALSE; -+ -+ g_dbus_connection_call_sync (bus, -+ SYSTEMD_DBUS_NAME, -+ SYSTEMD_DBUS_PATH, -+ SYSTEMD_DBUS_INTERFACE, -+ method, -+ g_variant_new ("(b)", TRUE), -+ NULL, 0, G_MAXINT, NULL, -+ &local_error); -+ -+ g_object_unref (G_OBJECT (bus)); -+ -+ if (local_error != NULL) -+ { -+ g_propagate_error (error, local_error); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+ -+ -+XfsmSystemd * -+xfsm_systemd_get (void) -+{ -+ static XfsmSystemd *object = NULL; -+ -+ if (G_LIKELY (object != NULL)) -+ { -+ g_object_ref (G_OBJECT (object)); -+ } -+ else -+ { -+ object = g_object_new (XFSM_TYPE_SYSTEMD, NULL); -+ g_object_add_weak_pointer (G_OBJECT (object), (gpointer) &object); -+ } -+ -+ return object; -+} -+ -+ -+ -+gboolean -+xfsm_systemd_try_restart (XfsmSystemd *systemd, -+ GError **error) -+{ -+ return xfsm_systemd_try_method (systemd, -+ SYSTEMD_REBOOT_ACTION, -+ error); -+} -+ -+ -+ -+gboolean -+xfsm_systemd_try_shutdown (XfsmSystemd *systemd, -+ GError **error) -+{ -+ return xfsm_systemd_try_method (systemd, -+ SYSTEMD_POWEROFF_ACTION, -+ error); -+} -+ -+ -+ -+gboolean -+xfsm_systemd_can_restart (XfsmSystemd *systemd, -+ gboolean *can_restart, -+ GError **error) -+{ -+ return xfsm_systemd_can_method (systemd, -+ can_restart, -+ SYSTEMD_REBOOT_TEST, -+ error); -+} -+ -+ -+ -+gboolean -+xfsm_systemd_can_shutdown (XfsmSystemd *systemd, -+ gboolean *can_shutdown, -+ GError **error) -+{ -+ return xfsm_systemd_can_method (systemd, -+ can_shutdown, -+ SYSTEMD_POWEROFF_TEST, -+ error); -+} -diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h -new file mode 100644 -index 0000000..8223622 ---- /dev/null -+++ b/xfce4-session/xfsm-systemd.h -@@ -0,0 +1,55 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- -+ * -+ * Copyright (C) 2012 Christian Hesse -+ * -+ * Licensed under the GNU General Public License Version 2 -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ */ -+ -+#ifndef __XFSM_SYSTEMD_H__ -+#define __XFSM_SYSTEMD_H__ -+ -+typedef struct _XfsmSystemdClass XfsmSystemdClass; -+typedef struct _XfsmSystemd XfsmSystemd; -+ -+#define XFSM_TYPE_SYSTEMD (xfsm_systemd_get_type ()) -+#define XFSM_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemd)) -+#define XFSM_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFSM_TYPE_SYSTEMD, XfsmSystemdClass)) -+#define XFSM_IS_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFSM_TYPE_SYSTEMD)) -+#define XFSM_IS_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFSM_TYPE_SYSTEMD)) -+#define XFSM_SYSTEMD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemdClass)) -+ -+GType xfsm_systemd_get_type (void) G_GNUC_CONST; -+ -+XfsmSystemd *xfsm_systemd_get (void); -+ -+gboolean xfsm_systemd_try_restart (XfsmSystemd *systemd, -+ GError **error); -+ -+gboolean xfsm_systemd_try_shutdown (XfsmSystemd *systemd, -+ GError **error); -+ -+gboolean xfsm_systemd_can_restart (XfsmSystemd *systemd, -+ gboolean *can_restart, -+ GError **error); -+ -+gboolean xfsm_systemd_can_shutdown (XfsmSystemd *systemd, -+ gboolean *can_shutdown, -+ GError **error); -+ -+G_END_DECLS -+ -+#endif /* __XFSM_SYSTEMD_H__ */ --- -cgit v0.9.1 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 35d198f3d7d1..354b14deeaa2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8725,9 +8725,9 @@ let untie = callPackage ../os-specific/linux/untie { }; - upower = callPackage ../os-specific/linux/upower { }; + upower-old = callPackage ../os-specific/linux/upower { }; - upower_99 = callPackage ../os-specific/linux/upower/0.99.nix { }; + upower = callPackage ../os-specific/linux/upower/0.99.nix { }; upstart = callPackage ../os-specific/linux/upstart { }; From d5457d7229a3821faf9b07be48bf00b236493f88 Mon Sep 17 00:00:00 2001 From: Matej Cotman Date: Sun, 28 Dec 2014 06:09:59 +0100 Subject: [PATCH 071/175] efl: fix build --- pkgs/desktops/e19/efl.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/e19/efl.nix b/pkgs/desktops/e19/efl.nix index 6dae5f038778..9cc936e7f5ec 100644 --- a/pkgs/desktops/e19/efl.nix +++ b/pkgs/desktops/e19/efl.nix @@ -20,10 +20,12 @@ stdenv.mkDerivation rec { xlibs.libxkbfile xlibs.libxcb xlibs.xcbutilkeysyms openjpeg doxygen expat lua5_2 harfbuzz jbig2dec librsvg dbus_libs alsaLib poppler libraw libspectre xineLib vlc libwebp curl ]; + # ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++ configureFlags = [ "--with-tests=none" "--enable-sdl" "--enable-drm" "--with-opengl=full" "--enable-image-loader-jp2k" "--enable-xinput22" "--enable-multisense" "--enable-systemd" "--enable-image-loader-webp" "--enable-harfbuzz" "--enable-xine" "--enable-fb" - "--disable-tslib" "--with-systemdunitdir=$out/systemd/user" "--enable-lua-old" ]; + "--disable-tslib" "--with-systemdunitdir=$out/systemd/user" "--enable-lua-old" + "ac_ct_CXX=foo" ]; NIX_CFLAGS_COMPILE = [ "-I${xlibs.libXtst}" "-I${dbus_libs}/include/dbus-1.0" "-I${dbus_libs}/lib/dbus-1.0/include" ]; From ed7929942bb72a47e6c2c4682d20861dbf8559f6 Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 13:17:37 +0800 Subject: [PATCH 072/175] Added btsync group to btsync user --- nixos/modules/services/networking/btsync.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/networking/btsync.nix b/nixos/modules/services/networking/btsync.nix index 7ddc9e1045e4..f1bf5a5e3f9c 100644 --- a/nixos/modules/services/networking/btsync.nix +++ b/nixos/modules/services/networking/btsync.nix @@ -246,6 +246,7 @@ in home = "/var/lib/btsync"; createHome = true; uid = config.ids.uids.btsync; + group = "btsync"; }; systemd.services.btsync = with pkgs; { From c53f5327256921e943af4173efab9556964fe41e Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 13:23:10 +0800 Subject: [PATCH 073/175] added group --- nixos/modules/services/networking/btsync.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/modules/services/networking/btsync.nix b/nixos/modules/services/networking/btsync.nix index f1bf5a5e3f9c..da8564774e6a 100644 --- a/nixos/modules/services/networking/btsync.nix +++ b/nixos/modules/services/networking/btsync.nix @@ -249,6 +249,10 @@ in group = "btsync"; }; + users.extraGroups = [ + { name = "btsync"; + }]; + systemd.services.btsync = with pkgs; { description = "Bittorrent Sync Service"; wantedBy = [ "multi-user.target" ]; From c34daa0b4884c3461ed362d927b3cb237acccdf4 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sun, 28 Dec 2014 00:03:54 -0800 Subject: [PATCH 074/175] ipset: Add derivation --- pkgs/os-specific/linux/ipset/default.nix | 22 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/os-specific/linux/ipset/default.nix diff --git a/pkgs/os-specific/linux/ipset/default.nix b/pkgs/os-specific/linux/ipset/default.nix new file mode 100644 index 000000000000..60bb5a381eff --- /dev/null +++ b/pkgs/os-specific/linux/ipset/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, libmnl }: + +stdenv.mkDerivation rec { + name = "ipset-6.24"; + + src = fetchurl { + url = "http://ipset.netfilter.org/${name}.tar.bz2"; + sha256 = "1l4mx78473azf7cb19fxf37gmj95k1zzabimbcmlg9h07wlgqw9h"; + }; + + buildInputs = [ pkgconfig libmnl ]; + + configureFlags = [ "--with-kmod=no" ]; + + meta = with stdenv.lib; { + homepage = http://ipset.netfilter.org/; + description = "administration tool for IP sets"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ wkennington ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 354b14deeaa2..58e2f1673f4c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8176,6 +8176,8 @@ let iptables = callPackage ../os-specific/linux/iptables { }; + ipset = callPackage ../os-specific/linux/ipset { }; + iw = callPackage ../os-specific/linux/iw { }; iwlwifi = callPackage ../os-specific/linux/firmware/iwlwifi { }; From 0f3a7b0e3c6462902b6fe413c30ea4ea5bd01a95 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sun, 28 Dec 2014 00:04:49 -0800 Subject: [PATCH 075/175] nixos/firewall: Add ipset utility --- nixos/modules/services/networking/firewall.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix index b129727087aa..a9fe284a6152 100644 --- a/nixos/modules/services/networking/firewall.nix +++ b/nixos/modules/services/networking/firewall.nix @@ -443,7 +443,7 @@ in networking.firewall.trustedInterfaces = [ "lo" ]; - environment.systemPackages = [ pkgs.iptables ]; + environment.systemPackages = [ pkgs.iptables pkgs.ipset ]; boot.kernelModules = map (x: "nf_conntrack_${x}") cfg.connectionTrackingModules; boot.extraModprobeConfig = optionalString (!cfg.autoLoadConntrackHelpers) '' @@ -462,7 +462,7 @@ in before = [ "network-pre.target" ]; after = [ "systemd-modules-load.service" ]; - path = [ pkgs.iptables ]; + path = [ pkgs.iptables pkg.ipset ]; # FIXME: this module may also try to load kernel modules, but # containers don't have CAP_SYS_MODULE. So the host system had From 8a24749e2700bf493236b2def0d02c1cb9a8275f Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 16:39:56 +0800 Subject: [PATCH 076/175] Change umask --- nixos/modules/services/networking/btsync.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/services/networking/btsync.nix b/nixos/modules/services/networking/btsync.nix index da8564774e6a..ddceaa13d7ba 100644 --- a/nixos/modules/services/networking/btsync.nix +++ b/nixos/modules/services/networking/btsync.nix @@ -257,6 +257,7 @@ in description = "Bittorrent Sync Service"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; + UMask = "0002"; serviceConfig = { Restart = "on-abort"; User = "btsync"; From 1f2103f8d9b924d6ba4547c9225e818b7fbfb898 Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 16:44:27 +0800 Subject: [PATCH 077/175] Moved UMask to correct location --- nixos/modules/services/networking/btsync.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/btsync.nix b/nixos/modules/services/networking/btsync.nix index ddceaa13d7ba..0bb22ebe4b96 100644 --- a/nixos/modules/services/networking/btsync.nix +++ b/nixos/modules/services/networking/btsync.nix @@ -257,9 +257,9 @@ in description = "Bittorrent Sync Service"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - UMask = "0002"; serviceConfig = { Restart = "on-abort"; + UMask = "0002"; User = "btsync"; ExecStart = "${bittorrentSync}/bin/btsync --nodaemon --config ${configFile}"; From c1e38098e0fa4e2e531035a5f4c5a8335d201196 Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 17:26:59 +0800 Subject: [PATCH 078/175] Documentation update --- nixos/modules/services/networking/btsync.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/btsync.nix b/nixos/modules/services/networking/btsync.nix index 0bb22ebe4b96..34bddf908731 100644 --- a/nixos/modules/services/networking/btsync.nix +++ b/nixos/modules/services/networking/btsync.nix @@ -88,7 +88,7 @@ in use systemctl start btsync@user to start the daemon only for user user, using the configuration file located at - $HOME/.config/btsync.conf + $HOME/.config/btsync.conf. ''; }; @@ -223,6 +223,21 @@ in --generate-secret. Note that this secret will be put inside the Nix store, so it is realistically not very secret. + + If you would like to be able to modify the contents of this + directories, it is recommended that you make your user a + member of the btsync group. + + Directories in this list should be in the + btsync group, and that group must have + write access to the directory. It is also recommended that + chmod g+s is applied to the directory + so that any sub directories created will also belong to + the btsync group. Also, + setfacl -d -m group:btsync:rwx and + setfacl -m group:btsync:rwx should also + be applied so that the sub directories are writable by + the group. ''; }; }; From da9a806fc40244a81f6a6c4791fe5cfbbf8cfe43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 28 Dec 2014 10:44:50 +0100 Subject: [PATCH 079/175] fix a typo from 2627198b0c --- nixos/modules/services/networking/firewall.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix index a9fe284a6152..1f17661c9f08 100644 --- a/nixos/modules/services/networking/firewall.nix +++ b/nixos/modules/services/networking/firewall.nix @@ -462,7 +462,7 @@ in before = [ "network-pre.target" ]; after = [ "systemd-modules-load.service" ]; - path = [ pkgs.iptables pkg.ipset ]; + path = [ pkgs.iptables pkgs.ipset ]; # FIXME: this module may also try to load kernel modules, but # containers don't have CAP_SYS_MODULE. So the host system had From 4ba1a42f6f7c2a87b656568039b460e643e3b82a Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 18:10:02 +0800 Subject: [PATCH 080/175] Added group id to ids.nix --- nixos/modules/misc/ids.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index bf8365e34645..dd8498486858 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -311,6 +311,7 @@ kubernetes = 158; fleet = 159; gitlab = 160; + btsync = 161; # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399! From 3b353824cca46beeea648e2415c3e714a512a991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 28 Dec 2014 11:40:01 +0100 Subject: [PATCH 081/175] e19: enableParallelBuilding of some larger components Some parts build too long, it seems to me, so I sped them up. --- pkgs/desktops/e19/efl.nix | 2 ++ pkgs/desktops/e19/elementary.nix | 1 + pkgs/desktops/e19/enlightenment.nix | 2 ++ 3 files changed, 5 insertions(+) diff --git a/pkgs/desktops/e19/efl.nix b/pkgs/desktops/e19/efl.nix index 9cc936e7f5ec..d3ded676ea05 100644 --- a/pkgs/desktops/e19/efl.nix +++ b/pkgs/desktops/e19/efl.nix @@ -33,6 +33,8 @@ stdenv.mkDerivation rec { export PKG_CONFIG_PATH="${gst_all_1.gst-plugins-base}/lib/pkgconfig/gstreamer-video-0.10.pc:$PKG_CONFIG_PATH" ''; + enableParallelBuilding = true; + setupHook = ./efl-setup-hook.sh; meta = { diff --git a/pkgs/desktops/e19/elementary.nix b/pkgs/desktops/e19/elementary.nix index 27400513f1b3..5f98e193a76c 100644 --- a/pkgs/desktops/e19/elementary.nix +++ b/pkgs/desktops/e19/elementary.nix @@ -10,6 +10,7 @@ stdenv.mkDerivation rec { preConfigure = '' export NIX_CFLAGS_COMPILE="-I${e19.efl}/include/ethumb-1 $NIX_CFLAGS_COMPILE" ''; + enableParallelBuilding = true; meta = { description = "Widget set/toolkit"; homepage = http://enlightenment.org/; diff --git a/pkgs/desktops/e19/enlightenment.nix b/pkgs/desktops/e19/enlightenment.nix index e00d4a66a459..02646083f349 100644 --- a/pkgs/desktops/e19/enlightenment.nix +++ b/pkgs/desktops/e19/enlightenment.nix @@ -19,6 +19,8 @@ stdenv.mkDerivation rec { --replace "/usr/share/X11/xkb/rules/xorg.lst" "${xkeyboard_config}/share/X11/xkb/rules/base.lst" ''; + enableParallelBuilding = true; + # this is a hack and without this cpufreq module is not working: # when set_freqset_setuid is true and "e19_freqset" is set in setuidPrograms (this is taken care of in e19 NixOS module), # then this postInstall does the folowing: From 6f858bab173aaf18a982765c2cbe93461dbac78e Mon Sep 17 00:00:00 2001 From: Luke Clifton Date: Sun, 28 Dec 2014 19:47:12 +0800 Subject: [PATCH 082/175] Changed group id to match user id --- nixos/modules/misc/ids.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index dd8498486858..3f349dda4d3c 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -273,6 +273,7 @@ jenkins = 109; systemd-journal-gateway = 110; notbit = 111; + btsync = 113; monetdb = 115; foundationdb = 118; newrelic = 119; @@ -311,7 +312,6 @@ kubernetes = 158; fleet = 159; gitlab = 160; - btsync = 161; # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399! From f98df44ada189bfaecb695850b066c0c0c9a1a3b Mon Sep 17 00:00:00 2001 From: Alexander Kjeldaas Date: Sun, 13 Apr 2014 22:15:04 +0200 Subject: [PATCH 083/175] Eradicate gzip -9 without -n --- nixos/modules/system/boot/stage-1.nix | 2 +- pkgs/development/compilers/qcmm/builder.sh | 2 +- pkgs/os-specific/linux/multipath-tools/default.nix | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index cd30ce1b7cef..f0d8b04d0875 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -326,7 +326,7 @@ in boot.initrd.compressor = mkOption { internal = true; - default = "gzip -9"; + default = "gzip -9n"; type = types.str; description = "The compressor to use on the initrd image."; example = "xz"; diff --git a/pkgs/development/compilers/qcmm/builder.sh b/pkgs/development/compilers/qcmm/builder.sh index c6aa18fea3c8..acdfbaa08dce 100644 --- a/pkgs/development/compilers/qcmm/builder.sh +++ b/pkgs/development/compilers/qcmm/builder.sh @@ -16,7 +16,7 @@ installPhase() { mv $file ${file%.opt} done - find $out/man -type f -exec gzip -9 {} \; + find $out/man -type f -exec gzip -9n {} \; find $out -name \*.a -exec echo stripping {} \; \ -exec strip -S {} \; diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix index 90722d74ace1..3da37a89923a 100644 --- a/pkgs/os-specific/linux/multipath-tools/default.nix +++ b/pkgs/os-specific/linux/multipath-tools/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { preBuild = '' - makeFlagsArray=(GZIP="${gzip}/bin/gzip -9 -c" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib) + makeFlagsArray=(GZIP="${gzip}/bin/gzip -9n -c" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib) substituteInPlace multipath/Makefile --replace /etc $out/etc substituteInPlace kpartx/Makefile --replace /etc $out/etc From 56d651d34724e70da58dcdadb7368f13a2a88055 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 28 Dec 2014 14:27:27 +0100 Subject: [PATCH 084/175] Adds ocaml-uuseg Uuseg is an OCaml library for segmenting Unicode text. It implements the locale independent Unicode text segmentation algorithms to detect grapheme cluster, word and sentence boundaries and the Unicode line breaking algorithm to detect line break opportunities. Homepage: http://erratique.ch/software/uuseg --- .../ocaml-modules/uuseg/default.nix | 47 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 48 insertions(+) create mode 100644 pkgs/development/ocaml-modules/uuseg/default.nix diff --git a/pkgs/development/ocaml-modules/uuseg/default.nix b/pkgs/development/ocaml-modules/uuseg/default.nix new file mode 100644 index 000000000000..0101c43e504d --- /dev/null +++ b/pkgs/development/ocaml-modules/uuseg/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, ocaml, findlib, opam, uucp, uutf, cmdliner }: + +let + inherit (stdenv.lib) getVersion versionAtLeast; + + pname = "uuseg"; + version = "0.8.0"; + webpage = "http://erratique.ch/software/${pname}"; +in + +assert versionAtLeast (getVersion ocaml) "4.01"; + +stdenv.mkDerivation { + + name = "ocaml-${pname}-${version}"; + + src = fetchurl { + url = "${webpage}/releases/${pname}-${version}.tbz"; + sha256 = "00n4zi8dyw2yzi4nr2agcrr33b0q4dr9mgnkczipf4c0gm5cm50h"; + }; + + buildInputs = [ ocaml findlib opam cmdliner ]; + propagatedBuildInputs = [ uucp uutf ]; + + createFindlibDestdir = true; + + unpackCmd = "tar xjf $src"; + + buildPhase = '' + ocaml pkg/build.ml \ + native=true native-dynlink=true \ + uutf=true cmdliner=true + ''; + + installPhase = '' + opam-installer --script --prefix=$out ${pname}.install | sh + ln -s $out/lib/${pname} $out/lib/ocaml/${getVersion ocaml}/site-lib/${pname} + ''; + + meta = with stdenv.lib; { + description = "An OCaml library for segmenting Unicode text"; + homepage = "${webpage}"; + platforms = ocaml.meta.platforms; + license = licenses.bsd3; + maintainers = [ maintainers.vbgl ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 58e2f1673f4c..07d0f6938c7a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3820,6 +3820,7 @@ let uucd = callPackage ../development/ocaml-modules/uucd { }; uucp = callPackage ../development/ocaml-modules/uucp { }; uunf = callPackage ../development/ocaml-modules/uunf { }; + uuseg = callPackage ../development/ocaml-modules/uuseg { }; uutf = callPackage ../development/ocaml-modules/uutf { }; vg = callPackage ../development/ocaml-modules/vg { }; From 75a5c8b84ff36c9629dae479f08fce6516a0346a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 28 Dec 2014 09:00:38 -0600 Subject: [PATCH 085/175] vcsh: bump version to 1.20141026 --- pkgs/applications/version-management/vcsh/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix index d438cb1bc6cd..80721d5d8ab5 100644 --- a/pkgs/applications/version-management/vcsh/default.nix +++ b/pkgs/applications/version-management/vcsh/default.nix @@ -1,14 +1,14 @@ {stdenv, fetchgit}: stdenv.mkDerivation rec { - rev = "75c4c554eefbefb714fabd356933858edbce3b1e"; - version = "1.20131229"; - name = "vcsh-${version}_${rev}"; + rev = "ef15aeeb0553efb698e3d4261e79eff77a136ee7"; + version = "1.20141026"; + name = "vcsh-${version}_${builtins.substring 0 7 rev}"; src = fetchgit { inherit rev; url = "https://github.com/RichiH/vcsh"; - sha256 = "0rc82a8vnnk9q6q88z9s10873gqgdpppbpwy2yw8a7hydqrpn0hs"; + sha256 = "1dg6ina2wpy406s5x0x4r7khx6gc42hfak0gjwy0i53ivkckl1nd"; }; phases = [ "unpackPhase" "installPhase" "fixupPhase" ]; From 5d7dbaa0fe06a8d58063e40790f2cbc62fbee830 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 28 Dec 2014 09:00:49 -0600 Subject: [PATCH 086/175] vcsh: add ttuegel as maintainer --- pkgs/applications/version-management/vcsh/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix index 80721d5d8ab5..e9a8f48b7aaf 100644 --- a/pkgs/applications/version-management/vcsh/default.nix +++ b/pkgs/applications/version-management/vcsh/default.nix @@ -18,11 +18,11 @@ stdenv.mkDerivation rec { cp vcsh $out/bin ''; - meta = { + meta = with stdenv.lib; { description = "Version Control System for $HOME"; homepage = https://github.com/RichiH/vcsh; - license = stdenv.lib.licenses.gpl2Plus; - maintainers = [ stdenv.lib.maintainers.garbas ]; - platforms = stdenv.lib.platforms.unix; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ garbas ttuegel ]; + platforms = platforms.unix; }; } From c53b959c0e316af0f22795c38ff9dc1abae21017 Mon Sep 17 00:00:00 2001 From: Tom Hunger Date: Wed, 17 Dec 2014 10:57:25 +0000 Subject: [PATCH 087/175] Update elm to 0.14. Note that elm has a different package split: The old Elm 0.13 package is now elm-compiler, elm-make and elm-package. Instead of invoking "elm" one now has to use "elm-make". I kept the 0.13 version of elm around in case someone depends on it. --- .../compilers/elm/elm-compiler.nix | 34 +++++++++++++++++++ pkgs/development/compilers/elm/elm-make.nix | 23 +++++++++++++ .../development/compilers/elm/elm-package.nix | 26 ++++++++++++++ .../development/compilers/elm/elm-reactor.nix | 21 +++++------- pkgs/top-level/haskell-packages.nix | 6 ++++ 5 files changed, 98 insertions(+), 12 deletions(-) create mode 100644 pkgs/development/compilers/elm/elm-compiler.nix create mode 100644 pkgs/development/compilers/elm/elm-make.nix create mode 100644 pkgs/development/compilers/elm/elm-package.nix diff --git a/pkgs/development/compilers/elm/elm-compiler.nix b/pkgs/development/compilers/elm/elm-compiler.nix new file mode 100644 index 000000000000..f686abbf3531 --- /dev/null +++ b/pkgs/development/compilers/elm/elm-compiler.nix @@ -0,0 +1,34 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup +, cmdargs, filemanip, filepath, HUnit, indents, languageEcmascript +, languageGlsl, mtl, parsec, QuickCheck, testFramework +, testFrameworkHunit, testFrameworkQuickcheck2, text, transformers +, unionFind, unorderedContainers +}: + +cabal.mkDerivation (self: { + pname = "elm-compiler"; + version = "0.14"; + sha256 = "1vgbs3navs6dr36k408kc83gkn2ndhmc0b1015zk3jb0wkmvm73y"; + isLibrary = true; + isExecutable = true; + buildDepends = [ + aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath + indents languageEcmascript languageGlsl mtl parsec text + transformers unionFind unorderedContainers + ]; + testDepends = [ + aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filemanip + filepath HUnit indents languageEcmascript languageGlsl mtl parsec + QuickCheck testFramework testFrameworkHunit + testFrameworkQuickcheck2 text transformers unionFind + unorderedContainers + ]; + meta = { + homepage = "http://elm-lang.org"; + description = "Values to help with elm-package, elm-make, and elm-lang.org."; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/compilers/elm/elm-make.nix b/pkgs/development/compilers/elm/elm-make.nix new file mode 100644 index 000000000000..1052b16b0867 --- /dev/null +++ b/pkgs/development/compilers/elm/elm-make.nix @@ -0,0 +1,23 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, ansiWlPprint, binary, blazeHtml, blazeMarkup, elmCompiler +, elmPackage, filepath, mtl, optparseApplicative_0_10_0, text +}: + +cabal.mkDerivation (self: { + pname = "elm-make"; + version = "0.1"; + sha256 = "1hrc8bzfqzrcmkzqcampxkn5m113blfp4095h6c2xnadiicbvwdy"; + isLibrary = false; + isExecutable = true; + buildDepends = [ + ansiWlPprint binary blazeHtml blazeMarkup elmCompiler elmPackage + filepath mtl optparseApplicative_0_10_0 text + ]; + meta = { + homepage = "http://elm-lang.org"; + description = "A build tool for Elm projects"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/compilers/elm/elm-package.nix b/pkgs/development/compilers/elm/elm-package.nix new file mode 100644 index 000000000000..3cf2ded8ff50 --- /dev/null +++ b/pkgs/development/compilers/elm/elm-package.nix @@ -0,0 +1,26 @@ +# This file was auto-generated by cabal2nix. Please do NOT edit manually! + +{ cabal, aeson, aesonPretty, ansiWlPprint, binary, elmCompiler +, filepath, HTTP, httpClient, httpClientTls, httpTypes, mtl +, network, optparseApplicative, text, time, unorderedContainers +, vector, zipArchive +}: + +cabal.mkDerivation (self: { + pname = "elm-package"; + version = "0.2.2"; + sha256 = "0hkcy1mix2rng2k2zhzgb16nd0asfj9rm9ya2by67vjysiz8cmnr"; + isLibrary = true; + isExecutable = true; + buildDepends = [ + aeson aesonPretty ansiWlPprint binary elmCompiler filepath HTTP + httpClient httpClientTls httpTypes mtl network optparseApplicative + text time unorderedContainers vector zipArchive + ]; + meta = { + homepage = "http://github.com/elm-lang/elm-package"; + description = "Package manager for Elm libraries"; + license = self.stdenv.lib.licenses.bsd3; + platforms = self.ghc.meta.platforms; + }; +}) diff --git a/pkgs/development/compilers/elm/elm-reactor.nix b/pkgs/development/compilers/elm/elm-reactor.nix index 7b53d9190d8f..280d09f96b44 100644 --- a/pkgs/development/compilers/elm/elm-reactor.nix +++ b/pkgs/development/compilers/elm/elm-reactor.nix @@ -1,24 +1,21 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, blazeHtml, blazeMarkup, cmdargs, Elm, fetchgit, filepath -, fsnotify, HTTP, mtl, snapCore, snapServer, systemFilepath, time -, transformers, unorderedContainers, websockets, websocketsSnap +{ cabal, blazeHtml, blazeMarkup, cmdargs, elmCompiler, elmMake, filepath +, fsnotify, HTTP, mtl, snapCore, snapServer, systemFilepath, text +, time, transformers, unorderedContainers, websockets +, websocketsSnap }: cabal.mkDerivation (self: { pname = "elm-reactor"; - version = "0.1"; - src = fetchgit { - url = "git://github.com/elm-lang/elm-reactor.git"; - sha256 = "1e45ef26a9b1c1748737dce071a7f2587d0d22643085942a98006f9b11d11dfe"; - rev = "8715046c5bc8b18f0540069c1a9a65f3aa8332e1"; - }; + version = "0.2.0.1"; + sha256 = "1qnrxr3wayhw92w6lghchz8avxbxg00w7p6d1vs7mq9q56876jgj"; isLibrary = false; isExecutable = true; buildDepends = [ - blazeHtml blazeMarkup cmdargs Elm filepath fsnotify HTTP mtl - snapCore snapServer systemFilepath time transformers - unorderedContainers websockets websocketsSnap + blazeHtml blazeMarkup cmdargs elmCompiler filepath fsnotify HTTP + mtl snapCore snapServer systemFilepath text time transformers + unorderedContainers websockets websocketsSnap elmMake ]; meta = { homepage = "http://elm-lang.org"; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 47e71626b311..d2e3ff56485b 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -765,6 +765,12 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in Elm = callPackage ../development/compilers/elm/elm.nix {}; + elmCompiler = callPackage ../development/compilers/elm/elm-compiler.nix {}; + + elmMake = callPackage ../development/compilers/elm/elm-make.nix {}; + + elmPackage = callPackage ../development/compilers/elm/elm-package.nix {}; + elmServer = callPackage ../development/compilers/elm/elm-server.nix {}; elmRepl = callPackage ../development/compilers/elm/elm-repl.nix {}; From 056ace5bcac1d798755c9f908552fea2d4451728 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 28 Dec 2014 19:14:50 +0100 Subject: [PATCH 088/175] ntp: Don't depend on openssl, don't install docs --- pkgs/tools/networking/ntp/default.nix | 14 +- pkgs/tools/networking/ntp/no-openssl.patch | 161 +++++++++++++++++++++ 2 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 pkgs/tools/networking/ntp/no-openssl.patch diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix index fca6f2e34adc..4c0b893b91db 100644 --- a/pkgs/tools/networking/ntp/default.nix +++ b/pkgs/tools/networking/ntp/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, libcap, openssl }: +{ stdenv, fetchurl, libcap, autoreconfHook }: assert stdenv.isLinux -> libcap != null; @@ -10,10 +10,16 @@ stdenv.mkDerivation rec { sha256 = "1vnqa1542d01xmlkw8f3rq57y360b2j7yxkkg9b11955nvw0v4if"; }; - nativeBuildInputs = [ pkgconfig ]; + patches = [ ./no-openssl.patch ]; - buildInputs = [ openssl ] - ++ stdenv.lib.optional stdenv.isLinux libcap; + configureFlags = '' + --without-crypto + ${if stdenv.isLinux then "--enable-linuxcaps" else ""} + ''; + + buildInputs = [ autoreconfHook ] ++ stdenv.lib.optional stdenv.isLinux libcap; + + postInstall = "rm -rf $out/share/doc"; meta = { homepage = http://www.ntp.org/; diff --git a/pkgs/tools/networking/ntp/no-openssl.patch b/pkgs/tools/networking/ntp/no-openssl.patch new file mode 100644 index 000000000000..3a7784016ffa --- /dev/null +++ b/pkgs/tools/networking/ntp/no-openssl.patch @@ -0,0 +1,161 @@ +Fix ntp-keygen build without OpenSSL + +http://bk1.ntp.org/ntp-stable/?PAGE=patch&REV=5497b345z5MNTuNvJWuqPSje25NQTg + +Index: ntp-4.2.8/Makefile.am +=================================================================== +--- ntp-4.2.8.orig/Makefile.am ++++ ntp-4.2.8/Makefile.am +@@ -2,7 +2,10 @@ ACLOCAL_AMFLAGS = -I sntp/m4 -I sntp/lib + + NULL = + ++# moved sntp first to get libtool and libevent built. ++ + SUBDIRS = \ ++ sntp \ + scripts \ + include \ + libntp \ +@@ -17,7 +20,6 @@ SUBDIRS = \ + clockstuff \ + kernel \ + util \ +- sntp \ + tests \ + $(NULL) + +@@ -64,7 +66,6 @@ BUILT_SOURCES = \ + .gcc-warning \ + libtool \ + html/.datecheck \ +- sntp/built-sources-only \ + $(srcdir)/COPYRIGHT \ + $(srcdir)/.checkChangeLog \ + $(NULL) +Index: ntp-4.2.8/configure.ac +=================================================================== +--- ntp-4.2.8.orig/configure.ac ++++ ntp-4.2.8/configure.ac +@@ -102,7 +102,7 @@ esac + enable_nls=no + LIBOPTS_CHECK_NOBUILD([sntp/libopts]) + +-NTP_ENABLE_LOCAL_LIBEVENT ++NTP_LIBEVENT_CHECK_NOBUILD([2], [sntp/libevent]) + + NTP_LIBNTP + +@@ -771,6 +771,10 @@ esac + + #### + ++AC_CHECK_FUNCS([arc4random_buf]) ++ ++#### ++ + saved_LIBS="$LIBS" + LIBS="$LIBS $LDADD_LIBNTP" + AC_CHECK_FUNCS([daemon]) +Index: ntp-4.2.8/libntp/ntp_crypto_rnd.c +=================================================================== +--- ntp-4.2.8.orig/libntp/ntp_crypto_rnd.c ++++ ntp-4.2.8/libntp/ntp_crypto_rnd.c +@@ -24,6 +24,21 @@ + int crypto_rand_init = 0; + #endif + ++#ifndef HAVE_ARC4RANDOM_BUF ++static void ++arc4random_buf(void *buf, size_t nbytes); ++ ++void ++evutil_secure_rng_get_bytes(void *buf, size_t nbytes); ++ ++static void ++arc4random_buf(void *buf, size_t nbytes) ++{ ++ evutil_secure_rng_get_bytes(buf, nbytes); ++ return; ++} ++#endif ++ + /* + * As of late 2014, here's how we plan to provide cryptographic-quality + * random numbers: +Index: ntp-4.2.8/sntp/configure.ac +=================================================================== +--- ntp-4.2.8.orig/sntp/configure.ac ++++ ntp-4.2.8/sntp/configure.ac +@@ -97,11 +97,14 @@ esac + enable_nls=no + LIBOPTS_CHECK + +-AM_COND_IF( +- [BUILD_SNTP], +- [NTP_LIBEVENT_CHECK], +- [NTP_LIBEVENT_CHECK_NOBUILD] +-) ++# From when we only used libevent for sntp: ++#AM_COND_IF( ++# [BUILD_SNTP], ++# [NTP_LIBEVENT_CHECK], ++# [NTP_LIBEVENT_CHECK_NOBUILD] ++#) ++ ++NTP_LIBEVENT_CHECK([2]) + + # Checks for libraries. + +Index: ntp-4.2.8/sntp/m4/ntp_libevent.m4 +=================================================================== +--- ntp-4.2.8.orig/sntp/m4/ntp_libevent.m4 ++++ ntp-4.2.8/sntp/m4/ntp_libevent.m4 +@@ -1,4 +1,25 @@ +-dnl NTP_ENABLE_LOCAL_LIBEVENT -*- Autoconf -*- ++# SYNOPSIS -*- Autoconf -*- ++# ++# NTP_ENABLE_LOCAL_LIBEVENT ++# NTP_LIBEVENT_CHECK([MINVERSION [, DIR]]) ++# NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]]) ++# ++# DESCRIPTION ++# ++# AUTHOR ++# ++# Harlan Stenn ++# ++# LICENSE ++# ++# This file is Copyright (c) 2014 Network Time Foundation ++# ++# Copying and distribution of this file, with or without modification, are ++# permitted in any medium without royalty provided the copyright notice, ++# author attribution and this notice are preserved. This file is offered ++# as-is, without any warranty. ++ ++dnl NTP_ENABLE_LOCAL_LIBEVENT + dnl + dnl Provide only the --enable-local-libevent command-line option. + dnl +@@ -29,7 +50,7 @@ dnl If NOBUILD is provided as the 3rd ar + dnl but DO NOT invoke DIR/configure if we are going to use our bundled + dnl version. This may be the case for nested packages. + dnl +-dnl provide --enable-local-libevent . ++dnl provides --enable-local-libevent . + dnl + dnl Examples: + dnl +Index: ntp-4.2.8/util/Makefile.am +=================================================================== +--- ntp-4.2.8.orig/util/Makefile.am ++++ ntp-4.2.8/util/Makefile.am +@@ -19,6 +19,7 @@ AM_LDFLAGS = $(LDFLAGS_NTP) + LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS) + tg2_LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) + ntp_keygen_LDADD = version.o $(LIBOPTS_LDADD) ../libntp/libntp.a ++ntp_keygen_LDADD += $(LDADD_LIBEVENT) + ntp_keygen_LDADD += $(LDADD_LIBNTP) $(PTHREAD_LIBS) $(LDADD_NTP) $(LIBM) + ntp_keygen_SOURCES = ntp-keygen.c ntp-keygen-opts.c ntp-keygen-opts.h + From 47971865e987c119c2a2c3637521710e269c1b1f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 28 Dec 2014 19:36:33 +0100 Subject: [PATCH 089/175] Fix ntpd Since the 4.2.8 upgrade, ntpd is broken on NixOS: Dec 28 19:06:54 hagbard ntpd[27723]: giving up resolving host 1.nixos.pool.ntp.org: Servname not supported for ai_socktype (-8) This appears to be because DNS resolution doesn't work in chroots anymore (due to /etc being missing). So disable chroots for now. It's probably better to use systemd's containment facilities anyway. --- nixos/modules/services/networking/ntpd.nix | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/nixos/modules/services/networking/ntpd.nix b/nixos/modules/services/networking/ntpd.nix index 8f4bf26d411d..1988c7140d34 100644 --- a/nixos/modules/services/networking/ntpd.nix +++ b/nixos/modules/services/networking/ntpd.nix @@ -11,19 +11,15 @@ let ntpUser = "ntp"; configFile = pkgs.writeText "ntp.conf" '' - # Keep the drift file in ${stateDir}/ntp.drift. However, since we - # chroot to ${stateDir}, we have to specify it as /ntp.drift. - driftfile /ntp.drift + driftfile ${stateDir}/ntp.drift - restrict default kod nomodify notrap nopeer noquery - restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 ${toString (map (server: "server " + server + " iburst\n") config.services.ntp.servers)} ''; - ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup -i ${stateDir}"; + ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup"; in @@ -64,7 +60,7 @@ in config = mkIf config.services.ntp.enable { - # Make tools such as ntpq available in the system path + # Make tools such as ntpq available in the system path. environment.systemPackages = [ pkgs.ntp ]; users.extraUsers = singleton @@ -74,20 +70,20 @@ in home = stateDir; }; - jobs.ntpd = + systemd.services.ntpd = { description = "NTP Daemon"; wantedBy = [ "multi-user.target" ]; - path = [ ntp ]; - preStart = '' mkdir -m 0755 -p ${stateDir} chown ${ntpUser} ${stateDir} ''; - exec = "ntpd -g -n ${ntpFlags}"; + serviceConfig = { + ExecStart = "@${ntp}/bin/ntpd ntpd -g -n ${ntpFlags}"; + }; }; }; From 698b6f53dff1b0143f62f414e9101239fbe05816 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 28 Dec 2014 19:41:06 +0100 Subject: [PATCH 090/175] Typo --- pkgs/os-specific/linux/ipset/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/ipset/default.nix b/pkgs/os-specific/linux/ipset/default.nix index 60bb5a381eff..b76ce583b23c 100644 --- a/pkgs/os-specific/linux/ipset/default.nix +++ b/pkgs/os-specific/linux/ipset/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { homepage = http://ipset.netfilter.org/; - description = "administration tool for IP sets"; + description = "Administration tool for IP sets"; license = licenses.gpl2; platforms = platforms.linux; maintainers = with maintainers; [ wkennington ]; From 1bdcf9a701c80598d0908115c1affad77d0edf33 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Sun, 28 Dec 2014 20:20:38 +0100 Subject: [PATCH 091/175] Add cadvisor --- pkgs/servers/monitoring/cadvisor/default.nix | 34 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/servers/monitoring/cadvisor/default.nix diff --git a/pkgs/servers/monitoring/cadvisor/default.nix b/pkgs/servers/monitoring/cadvisor/default.nix new file mode 100644 index 000000000000..b7dbdb893f1a --- /dev/null +++ b/pkgs/servers/monitoring/cadvisor/default.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, go, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "cadvisor-${version}"; + version = "0.7.1"; + + src = fetchFromGitHub { + owner = "google"; + repo = "cadvisor"; + rev = "${version}"; + sha256 = "1vc9fydi6wra45khxsmfw5mx2qyggi7cg6kgajzw518rqa52ivmg"; + }; + + buildInputs = [ go ]; + + buildPhase = '' + mkdir -p Godeps/_workspace/src/github.com/google/ + ln -s $(pwd) Godeps/_workspace/src/github.com/google/cadvisor + GOPATH=$(pwd)/Godeps/_workspace go build -v -o cadvisor github.com/google/cadvisor + ''; + + installPhase = '' + mkdir -p $out/bin + mv cadvisor $out/bin + ''; + + meta = with stdenv.lib; { + description = "Analyzes resource usage and performance characteristics of running docker containers."; + homepage = https://github.com/google/cadvisor; + license = licenses.asl20; + maintainers = with maintainers; [ offline ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 07d0f6938c7a..978a5b7a1d66 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7548,6 +7548,8 @@ let apacheHttpdPackages_2_2 = apacheHttpdPackagesFor pkgs.apacheHttpd_2_2 pkgs.apacheHttpdPackages_2_2; apacheHttpdPackages_2_4 = apacheHttpdPackagesFor pkgs.apacheHttpd_2_4 pkgs.apacheHttpdPackages_2_4; + cadvisor = callPackage ../servers/monitoring/cadvisor { }; + cassandra = callPackage ../servers/nosql/cassandra { }; apache-jena = callPackage ../servers/nosql/apache-jena/binary.nix { From 18447c101a3e9791e3943ebd04ba5dee1112e0ec Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Sun, 28 Dec 2014 20:21:41 +0100 Subject: [PATCH 092/175] nixos: add cadvisor service --- nixos/modules/misc/ids.nix | 1 + nixos/modules/module-list.nix | 1 + .../modules/services/monitoring/cadvisor.nix | 106 ++++++++++++++++++ nixos/release.nix | 1 + nixos/tests/cadvisor.nix | 30 +++++ 5 files changed, 139 insertions(+) create mode 100644 nixos/modules/services/monitoring/cadvisor.nix create mode 100644 nixos/tests/cadvisor.nix diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 3f349dda4d3c..1ca15053b123 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -174,6 +174,7 @@ chronos = 164; gitlab = 165; tox-bootstrapd = 166; + cadvisor = 167; # 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 2c52ebb37bcb..503dd87ad4d9 100755 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -197,6 +197,7 @@ ./services/misc/zookeeper.nix ./services/monitoring/apcupsd.nix ./services/monitoring/bosun.nix + ./services/monitoring/cadvisor.nix ./services/monitoring/collectd.nix ./services/monitoring/dd-agent.nix ./services/monitoring/graphite.nix diff --git a/nixos/modules/services/monitoring/cadvisor.nix b/nixos/modules/services/monitoring/cadvisor.nix new file mode 100644 index 000000000000..d9c165970eca --- /dev/null +++ b/nixos/modules/services/monitoring/cadvisor.nix @@ -0,0 +1,106 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.services.cadvisor; + +in { + options = { + services.cadvisor = { + enable = mkOption { + default = false; + type = types.bool; + description = "Wherther to enable cadvisor service."; + }; + + host = mkOption { + default = "127.0.0.1"; + type = types.str; + description = "Cadvisor listening host"; + }; + + port = mkOption { + default = 8080; + type = types.int; + description = "Cadvisor listening port"; + }; + + storageDriver = mkOption { + default = null; + type = types.nullOr types.str; + example = "influxdb"; + description = "Cadvisor storage driver."; + }; + + storageDriverHost = mkOption { + default = "localhost:8086"; + type = types.str; + description = "Cadvisor storage driver host."; + }; + + storageDriverDb = mkOption { + default = "root"; + type = types.str; + description = "Cadvisord storage driver database name."; + }; + + storageDriverUser = mkOption { + default = "root"; + type = types.str; + description = "Cadvisor storage driver username."; + }; + + storageDriverPassword = mkOption { + default = "root"; + type = types.str; + description = "Cadvisor storage driver password."; + }; + + storageDriverSecure = mkOption { + default = false; + type = types.bool; + description = "Cadvisor storage driver, enable secure communication."; + }; + }; + }; + + config = mkIf cfg.enable { + systemd.services.cadvisor = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "docker.service" "influxdb.service" ]; + + postStart = mkBefore '' + until ${pkgs.curl}/bin/curl -s -o /dev/null 'http://${cfg.host}:${toString cfg.port}/containers/'; do + sleep 1; + done + ''; + + serviceConfig = { + ExecStart = ''${pkgs.cadvisor}/bin/cadvisor \ + -logtostderr=true \ + -listen_ip=${cfg.host} \ + -port=${toString cfg.port} \ + ${optionalString (cfg.storageDriver != null) '' + -storage_driver ${cfg.storageDriver} \ + -storage_driver_user ${cfg.storageDriverHost} \ + -storage_driver_db ${cfg.storageDriverDb} \ + -storage_driver_user ${cfg.storageDriverUser} \ + -storage_driver_password ${cfg.storageDriverPassword} \ + ${optionalString cfg.storageDriverSecure "-storage_driver_secure"} + ''} + ''; + User = "cadvisor"; + }; + }; + + virtualisation.docker.enable = true; + + users.extraUsers = singleton { + name = "cadvisor"; + uid = config.ids.uids.cadvisor; + description = "Cadvisor user"; + extraGroups = [ "docker" ]; + }; + }; +} diff --git a/nixos/release.nix b/nixos/release.nix index 04b8fd9bf675..c2760965d200 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -242,6 +242,7 @@ in rec { tests.avahi = callTest tests/avahi.nix {}; tests.bittorrent = callTest tests/bittorrent.nix {}; tests.blivet = callTest tests/blivet.nix {}; + tests.cadvisor = scrubDrv (import tests/cadvisor.nix { system = "x86_64-linux"; }); tests.chromium = callTest tests/chromium.nix {}; tests.cjdns = callTest tests/cjdns.nix {}; tests.containers = callTest tests/containers.nix {}; diff --git a/nixos/tests/cadvisor.nix b/nixos/tests/cadvisor.nix new file mode 100644 index 000000000000..225bf1a7483d --- /dev/null +++ b/nixos/tests/cadvisor.nix @@ -0,0 +1,30 @@ +import ./make-test.nix { + name = "cadvisor"; + + nodes = { + machine = { config, pkgs, ... }: { + services.cadvisor.enable = true; + }; + + influxdb = { config, pkgs, lib, ... }: with lib; { + services.cadvisor.enable = true; + services.cadvisor.storageDriver = "influxdb"; + services.influxdb.enable = true; + systemd.services.influxdb.postStart = mkAfter '' + ${pkgs.curl}/bin/curl -X POST 'http://localhost:8086/db?u=root&p=root' \ + -d '{"name": "root"}' + ''; + }; + }; + + testScript = + '' + startAll; + $machine->waitForUnit("cadvisor.service"); + $machine->succeed("curl http://localhost:8080/containers/"); + + $influxdb->waitForUnit("influxdb.service"); + $influxdb->waitForUnit("cadvisor.service"); + $influxdb->succeed("curl http://localhost:8080/containers/"); + ''; +} From 2028c283cde7da31af4db7b481ca0085d95306af Mon Sep 17 00:00:00 2001 From: Matthew William Cox Date: Tue, 23 Dec 2014 00:49:51 -0500 Subject: [PATCH 093/175] nixpkgs: unbound 1.4.22 -> 1.5.1 --- pkgs/tools/networking/unbound/default.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix index 376717bbf7a8..e1a7a685b140 100644 --- a/pkgs/tools/networking/unbound/default.nix +++ b/pkgs/tools/networking/unbound/default.nix @@ -1,17 +1,22 @@ { stdenv, fetchurl, openssl, expat, libevent }: stdenv.mkDerivation rec { - name = "unbound-1.4.22"; + name = "unbound-${version}"; + version = "1.5.1"; src = fetchurl { url = "http://unbound.net/downloads/${name}.tar.gz"; - sha256 = "17yjly9c00zfgbzvllqzjh668a4yk6vrinf47yrcs3hrna0m1bqw"; + sha256 = "1v00k4b6m9wk0533s2jpg4rv9lhplh7zdp6vx2yyrmrbzc4jgy0g"; }; - + buildInputs = [openssl expat libevent]; - configureFlags = [ "--with-ssl=${openssl}" "--with-libexpat=${expat}" - "--localstatedir=/var" ]; + configureFlags = [ + "--with-ssl=${openssl}" + "--with-libexpat=${expat}" + "--with-libevent=${libevent}" + "--localstatedir=/var" + ]; meta = { description = "Validating, recursive, and caching DNS resolver"; From 3c96afe0b17349617bdb3c33c208dada470cdc26 Mon Sep 17 00:00:00 2001 From: Matej Cotman Date: Mon, 29 Dec 2014 01:53:49 +0100 Subject: [PATCH 094/175] etcd: upgrade server and ctl --- pkgs/development/tools/etcdctl/default.nix | 2 +- pkgs/development/tools/etcdctl/deps.nix | 4 ++-- pkgs/servers/etcd/default.nix | 2 +- pkgs/servers/etcd/deps.nix | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/tools/etcdctl/default.nix b/pkgs/development/tools/etcdctl/default.nix index 5e6438d0f5ff..a2236f6c843f 100644 --- a/pkgs/development/tools/etcdctl/default.nix +++ b/pkgs/development/tools/etcdctl/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: stdenv.mkDerivation rec { - version = "0.4.3"; + version = "0.4.5"; name = "etcdctl-${version}"; src = import ./deps.nix { diff --git a/pkgs/development/tools/etcdctl/deps.nix b/pkgs/development/tools/etcdctl/deps.nix index 98bdda95a433..c76a162f193b 100644 --- a/pkgs/development/tools/etcdctl/deps.nix +++ b/pkgs/development/tools/etcdctl/deps.nix @@ -7,8 +7,8 @@ let src = fetchFromGitHub { owner = "coreos"; repo = "etcdctl"; - rev = "061135b2a02797a6b3c2b6c01183517c1bc76a2c"; - sha256 = "1hl9cz9ygr2k4d67qj9q1xj0n64b28qjy5sv7zylgg9h9ag2j2p4"; + rev = "a1b38c93245542e340971189750baef7a55d306e"; + sha256 = "1kbri59ppil52v7s992q8r6i1zk9lac0s2w00z2lsgc9w1z59qs0"; }; } ]; diff --git a/pkgs/servers/etcd/default.nix b/pkgs/servers/etcd/default.nix index ea91993e7231..5d5939f83bef 100644 --- a/pkgs/servers/etcd/default.nix +++ b/pkgs/servers/etcd/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: stdenv.mkDerivation rec { - version = "0.5.0-alpha.4"; + version = "2.0.0-rc.1"; name = "etcd-${version}"; src = import ./deps.nix { diff --git a/pkgs/servers/etcd/deps.nix b/pkgs/servers/etcd/deps.nix index 1cd8309ad5d0..b07ee1d74892 100644 --- a/pkgs/servers/etcd/deps.nix +++ b/pkgs/servers/etcd/deps.nix @@ -8,8 +8,8 @@ let src = fetchFromGitHub { owner = "coreos"; repo = "etcd"; - rev = "d01d6119e54f729f54e9776ad5729277fcf38668"; - sha256 = "0h9d6rc8yx7vyv2ggvzsddyng03pjhyb7avm9wrc805qr7p8nhns"; + rev = "221abdcb3b755b36d1e7d70149f6de3450351619"; + sha256 = "1wkd238ap9gp5irrb3f6nnh83rzizwfrfac76j0dvqdka35l247k"; }; } ]; From 0a97acdc0f66cc7d3fcd4c19f232c3dc98eff104 Mon Sep 17 00:00:00 2001 From: "Ricardo M. Correia" Date: Mon, 29 Dec 2014 00:39:04 +0100 Subject: [PATCH 095/175] grsecurity: Update stable and test patches stable: 3.0-3.14.27-201412211908 -> 3.0-3.14.27-201412280859 test: 3.0-3.17.7-201412211910 -> 3.0-3.18.1-201412281149 --- nixos/modules/security/grsecurity.nix | 4 ++-- pkgs/build-support/grsecurity/default.nix | 2 +- pkgs/os-specific/linux/kernel/linux-3.17.nix | 1 - pkgs/os-specific/linux/kernel/linux-3.18.nix | 1 + pkgs/os-specific/linux/kernel/patches.nix | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nixos/modules/security/grsecurity.nix b/nixos/modules/security/grsecurity.nix index cbad94007088..5c8c49939510 100644 --- a/nixos/modules/security/grsecurity.nix +++ b/nixos/modules/security/grsecurity.nix @@ -38,7 +38,7 @@ in type = types.bool; default = false; description = '' - Enable the testing grsecurity patch, based on Linux 3.17. + Enable the testing grsecurity patch, based on Linux 3.18. ''; }; @@ -227,7 +227,7 @@ in message = '' If grsecurity is enabled, you must select either the stable patch (with kernel 3.14), or the testing patch (with - kernel 3.17) to continue. + kernel 3.18) to continue. ''; } { assertion = (cfg.stable -> !cfg.testing) || (cfg.testing -> !cfg.stable); diff --git a/pkgs/build-support/grsecurity/default.nix b/pkgs/build-support/grsecurity/default.nix index 19e8f14ebf1c..919728382301 100644 --- a/pkgs/build-support/grsecurity/default.nix +++ b/pkgs/build-support/grsecurity/default.nix @@ -32,7 +32,7 @@ let grKernel = if cfg.stable then mkKernel pkgs.linux_3_14 stable-patch - else mkKernel pkgs.linux_3_17 test-patch; + else mkKernel pkgs.linux_3_18 test-patch; ## -- grsecurity configuration --------------------------------------------- diff --git a/pkgs/os-specific/linux/kernel/linux-3.17.nix b/pkgs/os-specific/linux/kernel/linux-3.17.nix index fd21f3c285cc..a459e33f4d66 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.17.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.17.nix @@ -2,7 +2,6 @@ import ./generic.nix (args // rec { version = "3.17.7"; - # Remember to update grsecurity! extraMeta.branch = "3.17"; src = fetchurl { diff --git a/pkgs/os-specific/linux/kernel/linux-3.18.nix b/pkgs/os-specific/linux/kernel/linux-3.18.nix index 7e8fd723dd23..e12588e052ba 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.18.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.18.nix @@ -2,6 +2,7 @@ import ./generic.nix (args // rec { version = "3.18.1"; + # Remember to update grsecurity! extraMeta.branch = "3.18"; src = fetchurl { diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 561eadf2f21a..8c707c7e570d 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -61,16 +61,16 @@ rec { grsecurity_stable = grsecPatch { kversion = "3.14.27"; - revision = "201412211908"; + revision = "201412280859"; branch = "stable"; - sha256 = "1xs34v1k970sv4i0a9qjcgk7i4cihl2xlgp1q7v320idpxrcym3a"; + sha256 = "185sq4bsgwmpq9g0g5fhm69ba875xhxha2rs0cn6n647v90rxrjk"; }; grsecurity_unstable = grsecPatch - { kversion = "3.17.7"; - revision = "201412211910"; + { kversion = "3.18.1"; + revision = "201412281149"; branch = "test"; - sha256 = "1s3ksf44mah398ix4ar49m6d8xwkk991pl1m8m441yhpm8h1ss3w"; + sha256 = "10pq6lslfn6ck7pm1651s6pd5mqmjxvqv3iv70qrpwwb2gdhpdin"; }; grsec_fix_path = From 6c952fd9e6f83efe8cc055340a5ab3440c4130b2 Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Sun, 28 Dec 2014 23:18:49 -0600 Subject: [PATCH 096/175] nixpkgs: nmap 6.40 -> 6.47 Signed-off-by: Austin Seipp --- pkgs/tools/security/nmap/default.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix index 61e4989f6cbd..e7b3848056f2 100644 --- a/pkgs/tools/security/nmap/default.nix +++ b/pkgs/tools/security/nmap/default.nix @@ -13,16 +13,20 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "nmap${optionalString graphicalSupport "-graphical"}-${version}"; - version = "6.40"; + version = "6.47"; src = fetchurl { - url = "http://nmap.org/dist/${name}.tar.bz2"; - sha256 = "491f77d8b3fb3bb38ba4e3850011fe6fb43bbe197f9382b88cb59fa4e8f7a401"; + url = "http://nmap.org/dist/nmap-${version}.tar.bz2"; + sha256 = "14d53aji4was68c01pf105n5ylha257wmdbx40ddiqiw42g1x8cg"; }; - patches = optional graphicalSupport ./zenmap.patch; + patches = ./zenmap.patch; - postInstall = optionalString graphicalSupport '' + configureFlags = optionalString (!graphicalSupport) "--without-zenmap"; + + postInstall = '' + wrapProgram $out/bin/ndiff --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" + '' + optionalString graphicalSupport '' wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath ${pygtk})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pygobject})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pycairo})/gtk-2.0 ''; From 91f53545cc02f9d7ff78ffc2cc4eb6c0915310ba Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Sun, 28 Dec 2014 23:43:34 -0600 Subject: [PATCH 097/175] nixpkgs: p0f 3.07b -> 3.08b Signed-off-by: Austin Seipp --- pkgs/tools/security/p0f/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/p0f/default.nix b/pkgs/tools/security/p0f/default.nix index 117f1e016ac6..3ffc19b5ca9f 100644 --- a/pkgs/tools/security/p0f/default.nix +++ b/pkgs/tools/security/p0f/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "p0f-${version}"; - version = "3.07b"; + version = "3.08b"; src = fetchurl { url = "http://lcamtuf.coredump.cx/p0f3/releases/${name}.tgz"; - sha256 = "18hbkwvh8maswhka0cyq0rwznz8yacnf4h1jmvb8krz0695rmz2w"; + sha256 = "1v4afs66qxk53h8vhfk5x17xvgj32qixwjvz4023gnx59gzag2fs"; }; buildInputs = [ libpcap ]; From 39e03699fefb9ca0eb29a02881a6a015f6c5281e Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Sun, 28 Dec 2014 23:45:25 -0600 Subject: [PATCH 098/175] nixpkgs: afl-1.04b -> 1.06b Signed-off-by: Austin Seipp --- pkgs/tools/security/afl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/afl/default.nix b/pkgs/tools/security/afl/default.nix index d4bd139c8335..a115894c621d 100644 --- a/pkgs/tools/security/afl/default.nix +++ b/pkgs/tools/security/afl/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "afl-${version}"; - version = "1.04b"; + version = "1.06b"; src = fetchurl { url = "http://lcamtuf.coredump.cx/afl/releases/${name}.tgz"; - sha256 = "0z49lmqzngrm144i2sxdrcxli69x0xk2npp9dzwpyiixk1hsm4dr"; + sha256 = "1kisqjfws90zjv2byj1jplfjdyssspa16s0bnym351j81frhmfsw"; }; buildPhase = "make PREFIX=$out"; From 3137a5ca4874fcd87007e401f6098791357b373c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Mon, 29 Dec 2014 10:23:00 +0100 Subject: [PATCH 099/175] Adding scantailor. (cherry picked from commit 7eda68709e9e50b1c4a608ab141f6c7065708c0f) --- .../graphics/scantailor/default.nix | 22 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/applications/graphics/scantailor/default.nix diff --git a/pkgs/applications/graphics/scantailor/default.nix b/pkgs/applications/graphics/scantailor/default.nix new file mode 100644 index 000000000000..36f7545a0536 --- /dev/null +++ b/pkgs/applications/graphics/scantailor/default.nix @@ -0,0 +1,22 @@ +{stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }: + +stdenv.mkDerivation rec { + name = "scantailor-0.9.11.1"; + + src = fetchurl { + url = "https://github.com/scantailor/scantailor/archive/RELEASE_0_9_11_1.tar.gz"; + sha256 = "1z06yg228r317m8ab3mywg0wbpj0x2llqj187bh4g3k4xc2fcm8m"; + }; + + buildInputs = [ qt4 cmake libjpeg libtiff boost ]; + + meta = { + homepage = http://scantailor.org/; + description = "Interactive post-processing tool for scanned pages"; + + license = stdenv.lib.licenses.gpl3Plus; + + maintainers = [ stdenv.lib.maintainers.viric ]; + platforms = stdenv.lib.platforms.gnu; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 978a5b7a1d66..42bdc4787fad 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10724,6 +10724,10 @@ let sbagen = callPackage ../applications/misc/sbagen { }; + scantailor = callPackage ../applications/graphics/scantailor { + boost = boost155; + }; + scite = callPackage ../applications/editors/scite { }; scribus = callPackage ../applications/office/scribus { From e9eb8b491b5dc8a5c4e80654b3f2f403e283a096 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 29 Dec 2014 11:54:44 +0100 Subject: [PATCH 100/175] haskell-sdl2: re-enable Haddock phase GHC 7.8.4 fixed https://github.com/haskell-game/sdl2/issues/31. --- pkgs/development/libraries/haskell/sdl2/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/libraries/haskell/sdl2/default.nix b/pkgs/development/libraries/haskell/sdl2/default.nix index 2e3eeba018dd..29561239d193 100644 --- a/pkgs/development/libraries/haskell/sdl2/default.nix +++ b/pkgs/development/libraries/haskell/sdl2/default.nix @@ -9,7 +9,6 @@ cabal.mkDerivation (self: { buildDepends = [ transformers ]; extraLibraries = [ SDL2 ]; pkgconfigDepends = [ SDL2 ]; - noHaddock = true; meta = { description = "Low-level bindings to SDL2"; license = self.stdenv.lib.licenses.bsd3; From 4ce7f05ba404a66d0c7e0b1811962dc7095d5cfe Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 29 Dec 2014 07:09:10 -0500 Subject: [PATCH 101/175] gummiboot-builder.py: run nix with no build-users-group During install, the bootloader script gets run inside a chroot after the /etc/group bind-mount is unmounted. Since we're not doing any building, this should be safe, but really nix should just not care if the group does not exist when no build is needed. Fixes #5494 --- .../modules/system/boot/loader/gummiboot/gummiboot-builder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/loader/gummiboot/gummiboot-builder.py b/nixos/modules/system/boot/loader/gummiboot/gummiboot-builder.py index db73544181b6..ef431a7732e1 100644 --- a/nixos/modules/system/boot/loader/gummiboot/gummiboot-builder.py +++ b/nixos/modules/system/boot/loader/gummiboot/gummiboot-builder.py @@ -63,7 +63,8 @@ def get_generations(profile): "@nix@/bin/nix-env", "--list-generations", "-p", - "/nix/var/nix/profiles/%s" % (profile) + "/nix/var/nix/profiles/%s" % (profile), + "--option", "build-users-group", "" ]) gen_lines = gen_list.split('\n') gen_lines.pop() From 4c4768c4b04afadf91d39da359985208e843181f Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 28 Dec 2014 16:03:46 +0100 Subject: [PATCH 102/175] Adds ocaml-safepass-1.3 OCaml-safepass is a library offering facilities for the safe storage of user passwords. By "safe" we mean that passwords are salted and hashed using the Bcrypt algorithm. Salting prevents rainbow-table based attacks, whereas hashing by a very time-consuming algorithm such as Bcrypt renders brute-force password cracking impractical. Homepage: http://ocaml-safepass.forge.ocamlcore.org/ --- .../ocaml-modules/safepass/default.nix | 21 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/ocaml-modules/safepass/default.nix diff --git a/pkgs/development/ocaml-modules/safepass/default.nix b/pkgs/development/ocaml-modules/safepass/default.nix new file mode 100644 index 000000000000..7fc5dadda74e --- /dev/null +++ b/pkgs/development/ocaml-modules/safepass/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, ocaml, findlib }: + +stdenv.mkDerivation { + name = "ocaml-safepass-1.3"; + src = fetchurl { + url = http://forge.ocamlcore.org/frs/download.php/1432/ocaml-safepass-1.3.tgz; + sha256 = "0lb8xbpyc5d1zml7s7mmcr6y2ipwdp7qz73lkv9asy7dyi6cj15g"; + }; + + buildInputs = [ ocaml findlib ]; + + createFindlibDestdir = true; + + meta = { + homepage = http://ocaml-safepass.forge.ocamlcore.org/; + description = "An OCaml library offering facilities for the safe storage of user passwords"; + license = stdenv.lib.licenses.lgpl21; + platforms = ocaml.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ vbgl ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42bdc4787fad..832db1b71e4d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3809,6 +3809,8 @@ let pycaml = callPackage ../development/ocaml-modules/pycaml { }; + safepass = callPackage ../development/ocaml-modules/safepass { }; + sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { }; twt = callPackage ../development/ocaml-modules/twt { }; From 8f2588f0ce6fc842640163bf3124c4403ecc1226 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Sun, 28 Dec 2014 18:03:27 +0100 Subject: [PATCH 103/175] Adds ocaml-magick-0.34 This package aims to provide the ImageMagick methods to OCaml Homepage: http://www.linux-nantes.org/~fmonnier/OCaml/ImageMagick/ --- .../ocaml-modules/magick/default.nix | 24 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/ocaml-modules/magick/default.nix diff --git a/pkgs/development/ocaml-modules/magick/default.nix b/pkgs/development/ocaml-modules/magick/default.nix new file mode 100644 index 000000000000..2d24fefa2053 --- /dev/null +++ b/pkgs/development/ocaml-modules/magick/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, which, pkgconfig, ocaml, findlib, imagemagick }: + +stdenv.mkDerivation { + name = "ocaml-magick-0.34"; + src = fetchurl { + url = http://www.linux-nantes.org/~fmonnier/OCaml/ImageMagick/ImageMagick/OCaml-ImageMagick-0.34.tgz; + sha256 = "0gn9l2qdr8gby2x8c2mb59x1kipb2plr45rbq6ymcxyi0wmzfh3q"; + }; + + nativeBuildInputs = [ which pkgconfig ]; + buildInputs = [ ocaml findlib imagemagick ]; + + createFindlibDestdir = true; + + installTargets = [ "find_install" ]; + + meta = { + homepage = http://www.linux-nantes.org/~fmonnier/OCaml/ImageMagick/; + description = "ImageMagick Binding for OCaml"; + license = stdenv.lib.licenses.mit; + platforms = imagemagick.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ vbgl ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 832db1b71e4d..30573b4aff91 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3707,6 +3707,8 @@ let macaque = callPackage ../development/ocaml-modules/macaque { }; + magick = callPackage ../development/ocaml-modules/magick { }; + menhir = callPackage ../development/ocaml-modules/menhir { }; merlin = callPackage ../development/tools/ocaml/merlin { }; From 0f05b01dce3869ccb6c99003daec8b0f5f7023bf Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Mon, 29 Dec 2014 15:19:05 +0100 Subject: [PATCH 104/175] Adds ocaml-ojquery-0.1 jQuery Binding for Eliom Homepage: http://ocsigen.org/ojquery/ --- .../ocaml-modules/ojquery/default.nix | 24 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ojquery/default.nix diff --git a/pkgs/development/ocaml-modules/ojquery/default.nix b/pkgs/development/ocaml-modules/ojquery/default.nix new file mode 100644 index 000000000000..c048f62e89ca --- /dev/null +++ b/pkgs/development/ocaml-modules/ojquery/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchgit, ocaml, findlib, js_of_ocaml, camlp4 }: + +stdenv.mkDerivation rec { + version = "0.1"; + name = "ocaml-ojquery-${version}"; + src = fetchgit { + url = https://github.com/ocsigen/ojquery.git; + rev = "refs/tags/${version}"; + sha256 = "1x3cidxxjyw0g7afvczdy6chw3nxb0dcz2psgxchqgv34dcwf0l0"; + }; + + buildInputs = [ ocaml findlib ]; + propagatedBuildInputs = [ js_of_ocaml camlp4 ]; + + createFindlibDestdir = true; + + meta = { + description = "jQuery Binding for Eliom"; + homepage = http://ocsigen.org/ojquery/; + license = stdenv.lib.licenses.lgpl3; + platforms = ocaml.meta.platforms; + maintainers = with stdenv.lib.maintainers; [ vbgl ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 30573b4aff91..813ae9799fe6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3772,6 +3772,8 @@ let ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { }; + ojquery = callPackage ../development/ocaml-modules/ojquery { }; + otfm = callPackage ../development/ocaml-modules/otfm { }; ounit = callPackage ../development/ocaml-modules/ounit { }; From 24bb7dc46fcaf06c437a09dc36113070a7a9629e Mon Sep 17 00:00:00 2001 From: "Ricardo M. Correia" Date: Mon, 29 Dec 2014 02:08:33 +0100 Subject: [PATCH 105/175] rustcMaster: Update from 0.13.0-pre-2604-g2f3cff6 -> 0.13.0-pre-2763-g6366631 --- .../development/compilers/rustc/hardcode_paths.HEAD.patch | 8 ++++---- pkgs/development/compilers/rustc/head.nix | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch b/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch index 83fb26e7a474..ee258e1d408c 100644 --- a/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch +++ b/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch @@ -1,21 +1,21 @@ diff --git a/src/librustc_back/archive.rs b/src/librustc_back/archive.rs -index a88bcaf..9c3858d 100644 +index 0bd4265..bbdab9b 100644 --- a/src/librustc_back/archive.rs +++ b/src/librustc_back/archive.rs @@ -54,7 +54,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option, paths: &[&Path]) -> ProcessOutput { let ar = match *maybe_ar_prog { - Some(ref ar) => ar.as_slice(), + Some(ref ar) => ar[], - None => "ar" + None => "@arPath@" }; let mut cmd = Command::new(ar); diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs -index d27a338..c9b1508 100644 +index ec61d3a..8252939 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs -@@ -361,8 +361,8 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri +@@ -346,8 +346,8 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri pub fn get_cc_prog(sess: &Session) -> String { match sess.opts.cg.linker { diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix index 20c21bec06f9..f71236c50051 100644 --- a/pkgs/development/compilers/rustc/head.nix +++ b/pkgs/development/compilers/rustc/head.nix @@ -16,7 +16,7 @@ */ -with ((import ./common.nix) {inherit stdenv; version = "0.13.0-pre-2604-g2f3cff6";}); +with ((import ./common.nix) {inherit stdenv; version = "0.13.0-pre-2763-g6366631";}); let snapshot = if stdenv.system == "i686-linux" then "3daf531aed03f5769402f2fef852377e2838db98" @@ -38,8 +38,8 @@ in stdenv.mkDerivation { src = fetchgit { url = https://github.com/rust-lang/rust; - rev = "2f3cff6956d56048ef7afb6d33e17cbdb2dcf038"; - sha256 = "113y74sd1gr7f0xs1lsgjw3jkvhz8s4dxx34r9cxlw5vjr7fp066"; + rev = "63666317214788329e0b7680929b09823f127d83"; + sha256 = "1saf6ycy5dzp1bxypzqisi4g4p0y1czbgr82xbrw5c81x5c274zk"; }; # We need rust to build rust. If we don't provide it, configure will try to download it. From e420d371d17a042b78dcc49a32cdb243d11a3acd Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Mon, 29 Dec 2014 12:55:09 -0600 Subject: [PATCH 106/175] nmap: fix dependencies on makeWrapper/python Signed-off-by: Austin Seipp --- pkgs/tools/security/nmap/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix index e7b3848056f2..f6e9a07b68fc 100644 --- a/pkgs/tools/security/nmap/default.nix +++ b/pkgs/tools/security/nmap/default.nix @@ -30,9 +30,9 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath ${pygtk})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pygobject})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pycairo})/gtk-2.0 ''; - buildInputs = [ libpcap pkgconfig openssl ] + buildInputs = [ libpcap pkgconfig openssl makeWrapper python ] ++ optionals graphicalSupport [ - libX11 gtk python pygtk makeWrapper pysqlite pygobject pycairo + libX11 gtk pygtk pysqlite pygobject pycairo ]; meta = { From 01a48ead8854386548e7f49d8cb38b3e5775c165 Mon Sep 17 00:00:00 2001 From: koral Date: Mon, 29 Dec 2014 11:32:33 +0100 Subject: [PATCH 107/175] webkitgtk: 2.6.2 -> 2.6.4 --- pkgs/development/libraries/webkitgtk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 3cbf36987323..9515ff223899 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { name = "webkitgtk-${version}"; - version = "2.6.2"; + version = "2.6.4"; meta = with stdenv.lib; { description = "Web content rendering engine, GTK+ port"; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://webkitgtk.org/releases/${name}.tar.xz"; - sha256 = "1f9qm5g1mbjm2hrnlzymas99piws4h4y3yxz4p6f6gavnsvfjwji"; + sha256 = "16rffxkz4w3sd7w4j3z3dycny8sdqxrz62yq4bgcmffrxlj5xvxy"; }; patches = [ ./finding-harfbuzz-icu.patch ]; From fa4b210d3f2c9f58dd3d884a0233d9c14739c37d Mon Sep 17 00:00:00 2001 From: koral Date: Mon, 29 Dec 2014 12:23:32 +0100 Subject: [PATCH 108/175] webkitgtk: added optional geoclue2 dependency. --- pkgs/development/libraries/webkitgtk/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 9515ff223899..9f56d2006472 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -2,14 +2,18 @@ , pkgconfig, gettext, gobjectIntrospection , gtk2, gtk3, wayland, libwebp, enchant , libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs +, enableGeoLocation ? true, geoclue2 , gst-plugins-base }: +assert enableGeoLocation -> geoclue2 != null; + +with stdenv.lib; stdenv.mkDerivation rec { name = "webkitgtk-${version}"; version = "2.6.4"; - meta = with stdenv.lib; { + meta = { description = "Web content rendering engine, GTK+ port"; homepage = "http://webkitgtk.org/"; license = licenses.bsd2; @@ -37,7 +41,7 @@ stdenv.mkDerivation rec { gtk2 wayland libwebp enchant libxml2 libsecret libxslt harfbuzz libpthreadstubs gst-plugins-base - ]; + ] ++ optional enableGeoLocation geoclue2; propagatedBuildInputs = [ libsoup gtk3 From 58cd4985fd4f6d5c715cc725bca06aa48abe309b Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 03:23:37 +0100 Subject: [PATCH 109/175] beets: Move into its own package directory. The primary use of beets is not as a Python library and users usually would expect to install it into the env using "nix-env -i beets" rather than "nix-env -i pythonX.Y-beets". Having beets in its own package directory also allows for better customization, where we're going to implement attributes that can be used to turn on/off various features and plugins. Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 40 ++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ pkgs/top-level/python-packages.nix | 38 ---------------------------- 3 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 pkgs/tools/audio/beets/default.nix diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix new file mode 100644 index 000000000000..d12614e0c08d --- /dev/null +++ b/pkgs/tools/audio/beets/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, buildPythonPackage, pythonPackages, python }: + +buildPythonPackage rec { + name = "beets-1.3.6"; + namePrefix = ""; + + src = fetchurl { + url = "http://pypi.python.org/packages/source/b/beets/${name}.tar.gz"; + md5 = "59615a54b3ac3983159e77ff9dda373e"; + }; + + # tests depend on $HOME setting + preConfigure = "export HOME=$TMPDIR"; + + propagatedBuildInputs = [ + pythonPackages.pyyaml + pythonPackages.unidecode + pythonPackages.mutagen + pythonPackages.munkres + pythonPackages.musicbrainzngs + pythonPackages.enum34 + pythonPackages.pylast + pythonPackages.rarfile + pythonPackages.flask + python.modules.sqlite3 + python.modules.readline + ]; + + buildInputs = with pythonPackages; [ mock pyechonest six responses nose ]; + + # 10 tests are failing + doCheck = false; + + meta = { + homepage = http://beets.radbox.org; + description = "Music tagger and library organizer"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.iElectric ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 813ae9799fe6..3cb69f50be99 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -757,6 +757,8 @@ let beanstalkd = callPackage ../servers/beanstalkd { }; + beets = callPackage ../tools/audio/beets { }; + bgs = callPackage ../tools/X11/bgs { }; biber = callPackage ../tools/typesetting/biber { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ffd81c232a36..172643e12d47 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -789,44 +789,6 @@ let }; }; - beets = buildPythonPackage rec { - name = "beets-1.3.6"; - - src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/b/beets/${name}.tar.gz"; - md5 = "59615a54b3ac3983159e77ff9dda373e"; - }; - - # tests depend on $HOME setting - preConfigure = "export HOME=$TMPDIR"; - - propagatedBuildInputs = - [ self.pyyaml - self.unidecode - self.mutagen - self.munkres - self.musicbrainzngs - self.enum34 - self.pylast - self.rarfile - self.flask - modules.sqlite3 - modules.readline - ]; - - buildInputs = with self; [ mock pyechonest six responses nose ]; - - # 10 tests are failing - doCheck = false; - - meta = { - homepage = http://beets.radbox.org; - description = "Music tagger and library organizer"; - license = licenses.mit; - maintainers = [ stdenv.lib.maintainers.iElectric ]; - }; - }; - circus = buildPythonPackage rec { name = "circus-0.11.1"; From ab5e2b46ab0ca050bf69b57acb03e7e93d8a11ac Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 03:29:16 +0100 Subject: [PATCH 110/175] beets: Update to new upstream version 1.3.9. Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index d12614e0c08d..2e934988ba04 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, buildPythonPackage, pythonPackages, python }: buildPythonPackage rec { - name = "beets-1.3.6"; + name = "beets-1.3.9"; namePrefix = ""; src = fetchurl { url = "http://pypi.python.org/packages/source/b/beets/${name}.tar.gz"; - md5 = "59615a54b3ac3983159e77ff9dda373e"; + md5 = "0211b4abfe7887da22c1413e761fdcb4"; }; # tests depend on $HOME setting From 56692eec7c8830235aa7b4281e05baa9ce8cca01 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 30 Dec 2014 03:31:03 +0100 Subject: [PATCH 111/175] Fix user-facing typos (mainly in descriptions) --- nixos/modules/security/duosec.nix | 4 ++-- nixos/modules/services/mail/mlmmj.nix | 2 +- nixos/modules/services/monitoring/cadvisor.nix | 2 +- nixos/modules/services/monitoring/statsd.nix | 4 ++-- nixos/modules/services/network-filesystems/nfsd.nix | 2 +- nixos/modules/services/networking/i2pd.nix | 4 ++-- nixos/modules/services/networking/tox-bootstrapd.nix | 4 ++-- nixos/modules/services/web-servers/zope2.nix | 2 +- nixos/modules/system/boot/systemd.nix | 6 +++--- nixos/modules/tasks/filesystems/nfs.nix | 4 ++-- nixos/modules/virtualisation/qemu-vm.nix | 2 +- pkgs/applications/audio/transcode/default.nix | 2 +- pkgs/applications/misc/sqliteman/default.nix | 2 +- .../version-management/git-and-tools/git-bz/default.nix | 2 +- pkgs/applications/video/shotcut/default.nix | 2 +- pkgs/development/compilers/rustc/common.nix | 4 ++-- pkgs/development/libraries/gdome2/default.nix | 2 +- pkgs/development/libraries/hunspell/default.nix | 2 +- pkgs/development/libraries/libcdio/0.82.nix | 2 +- pkgs/development/libraries/libcdio/default.nix | 2 +- pkgs/development/libraries/readline/6.2.nix | 2 +- pkgs/development/libraries/readline/6.3.nix | 2 +- pkgs/development/libraries/slib/default.nix | 2 +- pkgs/development/libraries/ti-rpc/default.nix | 2 +- pkgs/development/misc/avr-gcc-with-avr-libc/default.nix | 2 +- pkgs/development/ocaml-modules/tyxml/default.nix | 2 +- pkgs/development/tools/build-managers/cargo/common.nix | 2 +- pkgs/development/tools/ocaml/ocp-build/default.nix | 2 +- pkgs/games/fairymax/default.nix | 2 +- pkgs/games/hedgewars/default.nix | 2 +- pkgs/games/openttd/default.nix | 2 +- pkgs/misc/emulators/stella/default.nix | 2 +- pkgs/misc/emulators/uae/default.nix | 2 +- pkgs/tools/X11/sselp/default.nix | 2 +- pkgs/tools/compression/kzipmix/default.nix | 2 +- pkgs/tools/graphics/pngout/default.nix | 2 +- pkgs/tools/misc/autojump/default.nix | 2 +- pkgs/tools/misc/unclutter/default.nix | 2 +- pkgs/tools/networking/bwm-ng/default.nix | 2 +- pkgs/tools/security/gnupg/20.nix | 2 +- pkgs/tools/security/haveged/default.nix | 2 +- pkgs/tools/security/opensc-dnie-wrapper/default.nix | 2 +- pkgs/tools/text/multitran/mtutils/default.nix | 2 +- pkgs/tools/typesetting/tex/latex2html/default.nix | 2 +- pkgs/top-level/perl-packages.nix | 2 +- pkgs/top-level/python-packages.nix | 4 ++-- 46 files changed, 55 insertions(+), 55 deletions(-) diff --git a/nixos/modules/security/duosec.nix b/nixos/modules/security/duosec.nix index 9893e63fb24f..0e3a54325cad 100644 --- a/nixos/modules/security/duosec.nix +++ b/nixos/modules/security/duosec.nix @@ -110,7 +110,7 @@ in default = false; description = '' Print the contents of /etc/motd to screen - after a succesful login. + after a successful login. ''; }; @@ -145,7 +145,7 @@ in When $DUO_PASSCODE is non-empty, it will override autopush. The SSH client will need SendEnv DUO_PASSCODE in - its configuration, and the SSH server will similarily need + its configuration, and the SSH server will similarly need AcceptEnv DUO_PASSCODE. ''; }; diff --git a/nixos/modules/services/mail/mlmmj.nix b/nixos/modules/services/mail/mlmmj.nix index 637974f05cd1..db3a266d011f 100644 --- a/nixos/modules/services/mail/mlmmj.nix +++ b/nixos/modules/services/mail/mlmmj.nix @@ -90,7 +90,7 @@ in enable = true; recipientDelimiter= "+"; extraMasterConf = '' - mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-recieve -F -L ${spoolDir}/$nextHop + mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-receive -F -L ${spoolDir}/$nextHop ''; extraAliases = concatMapStrings (alias cfg.listDomain) cfg.mailLists; diff --git a/nixos/modules/services/monitoring/cadvisor.nix b/nixos/modules/services/monitoring/cadvisor.nix index d9c165970eca..0a06291da2a4 100644 --- a/nixos/modules/services/monitoring/cadvisor.nix +++ b/nixos/modules/services/monitoring/cadvisor.nix @@ -11,7 +11,7 @@ in { enable = mkOption { default = false; type = types.bool; - description = "Wherther to enable cadvisor service."; + description = "Whether to enable cadvisor service."; }; host = mkOption { diff --git a/nixos/modules/services/monitoring/statsd.nix b/nixos/modules/services/monitoring/statsd.nix index 942ce72f6a36..7d7ca27bb2f0 100644 --- a/nixos/modules/services/monitoring/statsd.nix +++ b/nixos/modules/services/monitoring/statsd.nix @@ -53,7 +53,7 @@ in }; mgmt_address = mkOption { - description = "Address to run managment TCP interface on"; + description = "Address to run management TCP interface on"; default = "127.0.0.1"; type = types.str; }; @@ -65,7 +65,7 @@ in }; backends = mkOption { - description = "List of backends statsd will use for data persistance"; + description = "List of backends statsd will use for data persistence"; default = ["graphite"]; example = ["graphite" pkgs.nodePackages."statsd-influxdb-backend"]; type = types.listOf (types.either types.str types.package); diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix index 9b317e968849..33b7ec3d9f1c 100644 --- a/nixos/modules/services/network-filesystems/nfsd.nix +++ b/nixos/modules/services/network-filesystems/nfsd.nix @@ -61,7 +61,7 @@ in default = null; example = 4002; description = '' - Use fixed port for rpc.mountd, usefull if server is behind firewall. + Use fixed port for rpc.mountd, useful if server is behind firewall. ''; }; diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix index d0127fd3f75e..95b0ae59ff3c 100644 --- a/nixos/modules/services/networking/i2pd.nix +++ b/nixos/modules/services/networking/i2pd.nix @@ -142,7 +142,7 @@ in type = types.int; default = 80; description = '' - Port to forward incoming trafic to. 80 by default. + Port to forward incoming traffic to. 80 by default. ''; }; keyFile = mkOption { @@ -195,4 +195,4 @@ in }; }; } -# \ No newline at end of file +# diff --git a/nixos/modules/services/networking/tox-bootstrapd.nix b/nixos/modules/services/networking/tox-bootstrapd.nix index 65aa87be44cc..c1f945773e23 100644 --- a/nixos/modules/services/networking/tox-bootstrapd.nix +++ b/nixos/modules/services/networking/tox-bootstrapd.nix @@ -24,7 +24,7 @@ in default = false; description = '' - Whether to enable the Tox DHT boostrap daemon. + Whether to enable the Tox DHT bootstrap daemon. ''; }; @@ -45,7 +45,7 @@ in default = ""; description = '' - Configuration for boostrap daemon. + Configuration for bootstrap daemon. See and . ''; diff --git a/nixos/modules/services/web-servers/zope2.nix b/nixos/modules/services/web-servers/zope2.nix index 21117118457d..bbe4d10f83d0 100644 --- a/nixos/modules/services/web-servers/zope2.nix +++ b/nixos/modules/services/web-servers/zope2.nix @@ -24,7 +24,7 @@ let http_address = mkOption { default = "localhost:8080"; type = types.string; - description = "Give a port and adress for the HTTP server."; + description = "Give a port and address for the HTTP server."; }; user = mkOption { diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 05f8c8009bfd..cd7f2ed7b934 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -695,21 +695,21 @@ in default = {}; type = types.attrsOf types.optionSet; options = [ linkOptions ]; - description = "Definiton of systemd network links."; + description = "Definition of systemd network links."; }; systemd.network.netdevs = mkOption { default = {}; type = types.attrsOf types.optionSet; options = [ netdevOptions ]; - description = "Definiton of systemd network devices."; + description = "Definition of systemd network devices."; }; systemd.network.networks = mkOption { default = {}; type = types.attrsOf types.optionSet; options = [ networkOptions networkConfig ]; - description = "Definiton of systemd networks."; + description = "Definition of systemd networks."; }; systemd.network.units = mkOption { diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix index 75c4f93c6917..79de6556f251 100644 --- a/nixos/modules/tasks/filesystems/nfs.nix +++ b/nixos/modules/tasks/filesystems/nfs.nix @@ -38,7 +38,7 @@ in default = null; example = 4000; description = '' - Use fixed port for rpc.statd, usefull if NFS server is behind firewall. + Use fixed port for rpc.statd, useful if NFS server is behind firewall. ''; }; lockdPort = mkOption { @@ -46,7 +46,7 @@ in example = 4001; description = '' Use fixed port for NFS lock manager kernel module (lockd/nlockmgr), - usefull if NFS server is behind firewall. + useful if NFS server is behind firewall. ''; }; }; diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 42986aa3e033..33c64cc890e0 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -266,7 +266,7 @@ in Networking-related command-line options that should be passed to qemu. The default is to use userspace networking (slirp). - If you override this option, be adviced to keep + If you override this option, be advised to keep ''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the default) to keep the default runtime behaviour. ''; diff --git a/pkgs/applications/audio/transcode/default.nix b/pkgs/applications/audio/transcode/default.nix index c414992a12dd..f47c8fa2eec7 100644 --- a/pkgs/applications/audio/transcode/default.nix +++ b/pkgs/applications/audio/transcode/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with stdenv.lib; { - description = "Suite of command line utilities for transcoding video and audio codecs, and for converting beween different container formats"; + description = "Suite of command line utilities for transcoding video and audio codecs, and for converting between different container formats"; homepage = http://www.transcoding.org/; license = licenses.lgpl2Plus; platforms = platforms.linux; diff --git a/pkgs/applications/misc/sqliteman/default.nix b/pkgs/applications/misc/sqliteman/default.nix index 803dfe075c19..f655a0f8c260 100644 --- a/pkgs/applications/misc/sqliteman/default.nix +++ b/pkgs/applications/misc/sqliteman/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Sqliteman is simple but powerfull Sqlite3 GUI database manager."; + description = "A simple but powerful Sqlite3 GUI database manager"; homepage = http://sqliteman.yarpen.cz/; license = licenses.gpl2Plus; platforms = platforms.linux; diff --git a/pkgs/applications/version-management/git-and-tools/git-bz/default.nix b/pkgs/applications/version-management/git-and-tools/git-bz/default.nix index 4c4ff62901e5..4015867b0eb5 100644 --- a/pkgs/applications/version-management/git-and-tools/git-bz/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-bz/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation { git-bz is a tool for integrating the Git command line with the Bugzilla bug-tracking system. Operations such as attaching patches to bugs, applying patches in bugs to your current tree, and closing bugs - once you've pushed the fixes publically can be done completely from + once you've pushed the fixes publicly can be done completely from the command line without having to go to your web browser. Authentication for git-bz is done by reading the cookies for the diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix index 484e28972cb2..9ad739a361d7 100644 --- a/pkgs/applications/video/shotcut/default.nix +++ b/pkgs/applications/video/shotcut/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A free, open source, cross-platform video editor"; longDescription = '' - An offical binary for Shotcut, which includes all the + An official binary for Shotcut, which includes all the dependencies pinned to specific versions, is provided on http://shotcut.org. diff --git a/pkgs/development/compilers/rustc/common.nix b/pkgs/development/compilers/rustc/common.nix index fdb1195bb827..915b54666346 100644 --- a/pkgs/development/compilers/rustc/common.nix +++ b/pkgs/development/compilers/rustc/common.nix @@ -11,7 +11,7 @@ then "macos-i386" else if stdenv.system == "x86_64-darwin" then "macos-x86_64" - else abort "no snapshot to boostrap for this platform (missing platform url suffix)"; + else abort "no snapshot to bootstrap for this platform (missing platform url suffix)"; target = if stdenv.system == "i686-linux" then "i686-unknown-linux-gnu" @@ -21,7 +21,7 @@ then "i686-apple-darwin" else if stdenv.system == "x86_64-darwin" then "x86_64-apple-darwin" - else abort "no snapshot to boostrap for this platform (missing target triple"; + else abort "no snapshot to bootstrap for this platform (missing target triple"; meta = with stdenv.lib; { homepage = http://www.rust-lang.org/; diff --git a/pkgs/development/libraries/gdome2/default.nix b/pkgs/development/libraries/gdome2/default.nix index f16a39e6ab0a..bf9b645c8f56 100644 --- a/pkgs/development/libraries/gdome2/default.nix +++ b/pkgs/development/libraries/gdome2/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { meta = { homepage = http://gdome2.cs.unibo.it/; - description = "DOM C library developped for the Gnome project"; + description = "DOM C library developed for the Gnome project"; license = stdenv.lib.licenses.lgpl21Plus; maintainers = [ stdenv.lib.maintainers.roconnor ]; broken = true; diff --git a/pkgs/development/libraries/hunspell/default.nix b/pkgs/development/libraries/hunspell/default.nix index 9ae1a5cf88a3..98f6511f3917 100644 --- a/pkgs/development/libraries/hunspell/default.nix +++ b/pkgs/development/libraries/hunspell/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { Main features: * Extended support for language peculiarities; Unicode character encoding, compounding and complex morphology. - * Improved suggestion using n-gram similarity, rule and dictionary based pronounciation data. + * Improved suggestion using n-gram similarity, rule and dictionary based pronunciation data. * Morphological analysis, stemming and generation. * Hunspell is based on MySpell and works also with MySpell dictionaries. * C++ library under GPL/LGPL/MPL tri-license. diff --git a/pkgs/development/libraries/libcdio/0.82.nix b/pkgs/development/libraries/libcdio/0.82.nix index db4af40afbd4..2b4be7ae230e 100644 --- a/pkgs/development/libraries/libcdio/0.82.nix +++ b/pkgs/development/libraries/libcdio/0.82.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = { description = "A library for OS-independent CD-ROM and CD image access"; longDescription = '' - GNU libcdio is a library for OS-idependent CD-ROM and + GNU libcdio is a library for OS-independent CD-ROM and CD image access. It includes a library for working with ISO-9660 filesystems (libiso9660), as well as utility programs such as an audio CD player and an extractor. diff --git a/pkgs/development/libraries/libcdio/default.nix b/pkgs/development/libraries/libcdio/default.nix index 02dd10841c16..4188306128e1 100644 --- a/pkgs/development/libraries/libcdio/default.nix +++ b/pkgs/development/libraries/libcdio/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { meta = { description = "A library for OS-independent CD-ROM and CD image access"; longDescription = '' - GNU libcdio is a library for OS-idependent CD-ROM and + GNU libcdio is a library for OS-independent CD-ROM and CD image access. It includes a library for working with ISO-9660 filesystems (libiso9660), as well as utility programs such as an audio CD player and an extractor. diff --git a/pkgs/development/libraries/readline/6.2.nix b/pkgs/development/libraries/readline/6.2.nix index f50331ba684a..dfdb86901c2c 100644 --- a/pkgs/development/libraries/readline/6.2.nix +++ b/pkgs/development/libraries/readline/6.2.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation (rec { reedit those lines, and perform csh-like history expansion on previous commands. - The history facilites are also placed into a separate library, + The history facilities are also placed into a separate library, the History library, as part of the build process. The History library may be used without Readline in applications which desire its capabilities. diff --git a/pkgs/development/libraries/readline/6.3.nix b/pkgs/development/libraries/readline/6.3.nix index ea459f291b36..98ebcdabebeb 100644 --- a/pkgs/development/libraries/readline/6.3.nix +++ b/pkgs/development/libraries/readline/6.3.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { reedit those lines, and perform csh-like history expansion on previous commands. - The history facilites are also placed into a separate library, + The history facilities are also placed into a separate library, the History library, as part of the build process. The History library may be used without Readline in applications which desire its capabilities. diff --git a/pkgs/development/libraries/slib/default.nix b/pkgs/development/libraries/slib/default.nix index 02e7dc24159f..daf716296a17 100644 --- a/pkgs/development/libraries/slib/default.nix +++ b/pkgs/development/libraries/slib/default.nix @@ -43,7 +43,7 @@ stdenv.mkDerivation rec { provides a platform independent framework for using packages of Scheme procedures and syntax. As distributed, SLIB contains useful packages for all Scheme implementations. Its catalog can be transparently - extended to accomodate packages specific to a site, implementation, + extended to accommodate packages specific to a site, implementation, user, or directory. SLIB supports Bigloo, Chez, ELK 3.0, Gambit 4.0, Guile, JScheme, Kawa, diff --git a/pkgs/development/libraries/ti-rpc/default.nix b/pkgs/development/libraries/ti-rpc/default.nix index 9b08b8d5d906..a85f8a6b11cf 100644 --- a/pkgs/development/libraries/ti-rpc/default.nix +++ b/pkgs/development/libraries/ti-rpc/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { migrated their SunRPC library to a TI-RPC (Transport Independent RPC) implementation. This implementation allows the support of other transports than UDP and TCP over IPv4. FreeBSD provides a - TI-RPC library ported from NetBSD with improvments. This library + TI-RPC library ported from NetBSD with improvements. This library already supports IPv6. So, the FreeBSD release 5.2.1 TI-RPC has been ported to replace the SunRPC of the glibc. ''; diff --git a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix index 1f54d132dcc7..8c0854ef3de4 100644 --- a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix +++ b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix @@ -79,7 +79,7 @@ stdenv.mkDerivation { }; meta = with stdenv.lib; { - description = "AVR developement environment including binutils, avr-gcc and avr-libc"; + description = "AVR development environment including binutils, avr-gcc and avr-libc"; # I've tried compiling the packages separately.. too much hassle. This just works. Fine. license = ["GPL" "LGPL"]; # see single packages .. homepage = []; # dito diff --git a/pkgs/development/ocaml-modules/tyxml/default.nix b/pkgs/development/ocaml-modules/tyxml/default.nix index 77cf0638255f..265b94392b46 100644 --- a/pkgs/development/ocaml-modules/tyxml/default.nix +++ b/pkgs/development/ocaml-modules/tyxml/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { homepage = http://ocsigen.org/tyxml/; - description = "A library that makes it almost impossible for your OCaml programs to generate wrong XML ouput, using static typing"; + description = "A library that makes it almost impossible for your OCaml programs to generate wrong XML output, using static typing"; license = licenses.lgpl21; platforms = ocaml.meta.platforms; maintainers = with maintainers; [ diff --git a/pkgs/development/tools/build-managers/cargo/common.nix b/pkgs/development/tools/build-managers/cargo/common.nix index 04eaec9daefe..00bf4aa746a6 100644 --- a/pkgs/development/tools/build-managers/cargo/common.nix +++ b/pkgs/development/tools/build-managers/cargo/common.nix @@ -11,7 +11,7 @@ rec { then "i686-apple-darwin" else if stdenv.system == "x86_64-darwin" then "x86_64-apple-darwin" - else throw "no snapshot to boostrap for this platform (missing platform url suffix)"; + else throw "no snapshot to bootstrap for this platform (missing platform url suffix)"; snapshotHash = if stdenv.system == "i686-linux" then "4dea04e278192c5409f43794a98f20a8f59df2d9" diff --git a/pkgs/development/tools/ocaml/ocp-build/default.nix b/pkgs/development/tools/ocaml/ocp-build/default.nix index 4970d641643f..dc846acb5005 100644 --- a/pkgs/development/tools/ocaml/ocp-build/default.nix +++ b/pkgs/development/tools/ocaml/ocp-build/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation { ocp-build is a build system for OCaml application, based on simple descriptions of packages. ocp-build combines the descriptions of packages, and optimize the parallel compilation of files depending on - the number of cores and the automatically-infered dependencies + the number of cores and the automatically-inferred dependencies between source files. ''; license = licenses.gpl3; diff --git a/pkgs/games/fairymax/default.nix b/pkgs/games/fairymax/default.nix index 85fbd2d6a3b0..3ae4ee7f2057 100644 --- a/pkgs/games/fairymax/default.nix +++ b/pkgs/games/fairymax/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { A version of micro-Max that reads the piece description from a file fmax.ini, so that arbitrary fairy pieces can be implemented. This version (4.8J) supports up to 15 piece types, - and board sizes upto 12x8 board. A Linux port exists in the + and board sizes up to 12x8. A Linux port exists in the format of a debian package. ''; license = stdenv.lib.licenses.free ; diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix index 3dbc86a73784..3768375d6259 100644 --- a/pkgs/games/hedgewars/default.nix +++ b/pkgs/games/hedgewars/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Turn-based strategy artillery game similiar to Worms"; + description = "Turn-based strategy artillery game similar to Worms"; homepage = http://hedgewars.org/; license = licenses.gpl2; longDescription = '' diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix index d8ae07705c63..afef33cce2d3 100644 --- a/pkgs/games/openttd/default.nix +++ b/pkgs/games/openttd/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { In multiplayer networked mode, players may: - play competitively as different businesses - - play cooperatively controling the same business + - play cooperatively controlling the same business - observe as spectators ''; homepage = http://www.openttd.org/; diff --git a/pkgs/misc/emulators/stella/default.nix b/pkgs/misc/emulators/stella/default.nix index d26b5281efa5..198226c759a5 100644 --- a/pkgs/misc/emulators/stella/default.nix +++ b/pkgs/misc/emulators/stella/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { the GNU General Public License (GPL). Stella was originally developed for Linux by Bradford W. Mott, and is currently maintained by Stephen Anthony. - As of its 3.5 release, Stella is officialy donationware. + As of its 3.5 release, Stella is officially donationware. ''; homepage = http://stella.sourceforge.net/; license = licenses.gpl2; diff --git a/pkgs/misc/emulators/uae/default.nix b/pkgs/misc/emulators/uae/default.nix index 0fa5a08d2dc8..85fc6df9520f 100644 --- a/pkgs/misc/emulators/uae/default.nix +++ b/pkgs/misc/emulators/uae/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation { buildInputs = [ pkgconfig gtk alsaLib SDL ]; meta = { - description = "Ultimate/Unix/Unusuable Amiga Emulator"; + description = "Ultimate/Unix/Unusable Amiga Emulator"; license = stdenv.lib.licenses.gpl2Plus; homepage = http://www.amigaemulator.org; maintainers = [ stdenv.lib.maintainers.sander ]; diff --git a/pkgs/tools/X11/sselp/default.nix b/pkgs/tools/X11/sselp/default.nix index 6ef7128dd4ca..b0bf8a101696 100644 --- a/pkgs/tools/X11/sselp/default.nix +++ b/pkgs/tools/X11/sselp/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://tools.suckless.org/sselp"; - description = "Prints the X selection to stdout, usefull in scripts"; + description = "Prints the X selection to stdout, useful in scripts"; license = stdenv.lib.licenses.mit; maintainers = [stdenv.lib.maintainers.magnetophon ]; platforms = stdenv.lib.platforms.linux; diff --git a/pkgs/tools/compression/kzipmix/default.nix b/pkgs/tools/compression/kzipmix/default.nix index bff8068db609..f768189040b5 100644 --- a/pkgs/tools/compression/kzipmix/default.nix +++ b/pkgs/tools/compression/kzipmix/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation { ''; meta = { - description = "A tool that agressively optimizes the sizes of Zip archives"; + description = "A tool that aggressively optimizes the sizes of Zip archives"; license = stdenv.lib.licenses.unfree; homepage = http://advsys.net/ken/utils.htm; maintainers = [ stdenv.lib.maintainers.sander ]; diff --git a/pkgs/tools/graphics/pngout/default.nix b/pkgs/tools/graphics/pngout/default.nix index ff2a18c9fedc..471823ed9235 100644 --- a/pkgs/tools/graphics/pngout/default.nix +++ b/pkgs/tools/graphics/pngout/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { ''; meta = { - description = "A tool that agressively optimizes the sizes of PNG images"; + description = "A tool that aggressively optimizes the sizes of PNG images"; license = stdenv.lib.licenses.unfree; homepage = http://advsys.net/ken/utils.htm; maintainers = [ stdenv.lib.maintainers.sander ]; diff --git a/pkgs/tools/misc/autojump/default.nix b/pkgs/tools/misc/autojump/default.nix index a92b4ae3b1bb..a94ad14ca229 100644 --- a/pkgs/tools/misc/autojump/default.nix +++ b/pkgs/tools/misc/autojump/default.nix @@ -42,7 +42,7 @@ in works by maintaining a database of the directories you use the most from the command line. The jstat command shows you the current contents of the database. You need to work a little - bit before the database becomes useable. Once your database + bit before the database becomes usable. Once your database is reasonably complete, you can “jump” to a directory by typing "j dirspec", where dirspec is a few characters of the directory you want to jump to. It will jump to the most used diff --git a/pkgs/tools/misc/unclutter/default.nix b/pkgs/tools/misc/unclutter/default.nix index 542530532de0..d97ba727bae5 100644 --- a/pkgs/tools/misc/unclutter/default.nix +++ b/pkgs/tools/misc/unclutter/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation { longDescription = '' Unclutter hides your X mouse cursor when you do not need it, to prevent it from getting in the way. You have only to move the mouse to restore - the mouse cursor. Unclutter is very usefull in tiling wm's where you do + the mouse cursor. Unclutter is very useful in tiling wm's where you do not need the mouse often. Just run it from your .bash_profile like that: diff --git a/pkgs/tools/networking/bwm-ng/default.nix b/pkgs/tools/networking/bwm-ng/default.nix index 4d18c4adb373..c7376ad47b42 100644 --- a/pkgs/tools/networking/bwm-ng/default.nix +++ b/pkgs/tools/networking/bwm-ng/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { Info This was influenced by the old bwm util written by Barney (barney@freewill.tzo.com) which had some issues with faster interfaces and was very simple. Since i had almost all code done anyway for other projects, i decided to create my own version. - I actually dont know if netstat input is usefull at all. I saw this elsewhere, so i added it. Its target is "netstat 1.42 (2001-04-15)" linux or Free/Open/netBSD. If there are other formats i would be happy to add them. + I actually don't know if netstat input is useful at all. I saw this elsewhere, so i added it. Its target is "netstat 1.42 (2001-04-15)" linux or Free/Open/netBSD. If there are other formats i would be happy to add them. (from homepage) ''; diff --git a/pkgs/tools/security/gnupg/20.nix b/pkgs/tools/security/gnupg/20.nix index 58a7cb7e34c0..7bace2ef1c41 100644 --- a/pkgs/tools/security/gnupg/20.nix +++ b/pkgs/tools/security/gnupg/20.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation rec { GnuPG is the GNU project's complete and free implementation of the OpenPGP standard as defined by RFC4880. GnuPG allows to encrypt and sign your data and communication, features a - versatile key managment system as well as access modules for all + versatile key management system as well as access modules for all kind of public key directories. GnuPG, also known as GPG, is a command line tool with features for easy integration with other applications. A wealth of frontend applications and libraries diff --git a/pkgs/tools/security/haveged/default.nix b/pkgs/tools/security/haveged/default.nix index 91949cf0893a..8f332a530071 100644 --- a/pkgs/tools/security/haveged/default.nix +++ b/pkgs/tools/security/haveged/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers. Current development - of haveged is directed towards improving overall reliablity and adaptability while minimizing + of haveged is directed towards improving overall reliability and adaptability while minimizing the barriers to using haveged for other tasks. ''; homepage = http://www.issihosts.com/haveged/; diff --git a/pkgs/tools/security/opensc-dnie-wrapper/default.nix b/pkgs/tools/security/opensc-dnie-wrapper/default.nix index b36d99f8ebf0..8003073159a9 100644 --- a/pkgs/tools/security/opensc-dnie-wrapper/default.nix +++ b/pkgs/tools/security/opensc-dnie-wrapper/default.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation rec { description = "Access to the opensc tools and firefox using the Spanish national ID SmartCard"; longDescription = '' Opensc needs a special configuration and special drivers to use the SmartCard - the Spanish governement provides to the citizens as ID card. + the Spanish government provides to the citizens as ID card. Some wrapper scripts take care for the proper opensc configuration to be used, in order to access the certificates in the SmartCard through the opensc tools or firefox. Opensc will require a pcscd daemon running, managing the access to the card reader. diff --git a/pkgs/tools/text/multitran/mtutils/default.nix b/pkgs/tools/text/multitran/mtutils/default.nix index b03b1b110c4b..ca65c567c661 100644 --- a/pkgs/tools/text/multitran/mtutils/default.nix +++ b/pkgs/tools/text/multitran/mtutils/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { meta = { homepage = http://multitran.sourceforge.net/; - description = "Multitran: simple command line utilities for dictionary maintainance"; + description = "Multitran: simple command line utilities for dictionary maintenance"; license = stdenv.lib.licenses.gpl2; maintainers = with stdenv.lib.maintainers; [viric]; platforms = with stdenv.lib.platforms; linux; diff --git a/pkgs/tools/typesetting/tex/latex2html/default.nix b/pkgs/tools/typesetting/tex/latex2html/default.nix index 1d1746e9a4b3..f6fc640eb3f8 100644 --- a/pkgs/tools/typesetting/tex/latex2html/default.nix +++ b/pkgs/tools/typesetting/tex/latex2html/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://www.latex2html.org/"; - description = "Convertor written in Perl that converts LaTeX documents to HTML"; + description = "Converter written in Perl that converts LaTeX documents to HTML"; license = stdenv.lib.licenses.gpl2Plus; }; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 812af3e4c3e7..813284ede8f8 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -5904,7 +5904,7 @@ let self = _self // overrides; _self = with self; { buildInputs = [ TestFatal ]; propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ImportInto ModuleRuntime RoleTiny strictures ]; meta = { - description = "Minimalist Object Orientation (with Moose compatiblity)"; + description = "Minimalist Object Orientation (with Moose compatibility)"; license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; }; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 172643e12d47..ee02edbe0142 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -666,7 +666,7 @@ let meta = with stdenv.lib; { homepage = https://github.com/nicolargo/batinfo; - description = "A simple Python lib to retreive battery information"; + description = "A simple Python lib to retrieve battery information"; license = licenses.lgpl3; platforms = platforms.all; maintainers = [ maintainers.koral ]; @@ -12060,7 +12060,7 @@ let buildInputs = with self; [ requests gevent ]; meta = { - description = "GRequests allows you to use Requests with Gevent to make asyncronous HTTP Requests easily."; + description = "GRequests allows you to use Requests with Gevent to make asynchronous HTTP Requests easily."; homepage = https://github.com/kennethreitz/grequests; license = "bsd"; maintainers = [ stdenv.lib.maintainers.matejc ]; From 7350c57140bc1b16bc1ba1dc733bf9f8c1aa0cf1 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 03:31:27 +0100 Subject: [PATCH 112/175] beets: Add myself to maintainers. Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index 2e934988ba04..c04a224c1c27 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -35,6 +35,6 @@ buildPythonPackage rec { homepage = http://beets.radbox.org; description = "Music tagger and library organizer"; license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.iElectric ]; + maintainers = with stdenv.lib.maintainers; [ iElectric aszlig ]; }; } From c695502c660b1a111e4c3db24b76ab99f1a32487 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Tue, 30 Dec 2014 05:46:36 +0100 Subject: [PATCH 113/175] Add systemd.user.timers --- nixos/modules/system/boot/systemd.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index cd7f2ed7b934..053a85c4c5b9 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -858,6 +858,13 @@ in description = "Definition of systemd per-user service units."; }; + systemd.user.timers = mkOption { + default = {}; + type = types.attrsOf types.optionSet; + options = [ timerOptions unitConfig ]; + description = "Definition of systemd per-user timer units."; + }; + systemd.user.sockets = mkOption { default = {}; type = types.attrsOf types.optionSet; @@ -978,8 +985,9 @@ in // mapAttrs' (n: v: nameValuePair "${n}.network" (networkToUnit n v)) cfg.network.networks; systemd.user.units = - mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services - // mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.user.sockets; + mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services + // mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.user.sockets + // mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.user.timers; system.requiredKernelConfig = map config.lib.kernelConfig.isEnabled [ "DEVTMPFS" "CGROUPS" "INOTIFY_USER" "SIGNALFD" "TIMERFD" "EPOLL" "NET" From 3a409dc5d9c9fa20fb47aaeb91278cb2109f8d68 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 29 Dec 2014 22:32:23 -0800 Subject: [PATCH 114/175] pam_krb5: 2.3.11 -> 2.4.9 --- pkgs/os-specific/linux/pam_krb5/default.nix | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/os-specific/linux/pam_krb5/default.nix b/pkgs/os-specific/linux/pam_krb5/default.nix index 0c182b5baa69..28f13c9ae7a3 100644 --- a/pkgs/os-specific/linux/pam_krb5/default.nix +++ b/pkgs/os-specific/linux/pam_krb5/default.nix @@ -1,24 +1,24 @@ -{stdenv, fetchurl, pam, kerberos}: +{ stdenv, fetchurl, pam, krb5 }: -stdenv.mkDerivation { - name = "pam_krb5-2.3.11-1"; +stdenv.mkDerivation rec { + name = "pam_krb5-2.4.9"; src = fetchurl { - url = https://fedorahosted.org/releases/p/a/pam_krb5/pam_krb5-2.3.11-1.tar.gz; - sha256 = "1x6wgjzkfkx0h9a7wdgx0jwrdm15npbs79i510lk1n3fyx9lk4mq"; -# url = http://archives.eyrie.org/software/kerberos/pam-krb5-4.2.tar.gz; -# sha256 = "0a0zyd4ddln8yf827qxbfqi1pryxnj0fykfz8lx6nxn2f9pqj1gv"; + url = "https://fedorahosted.org/releases/p/a/pam_krb5/${name}.tar.gz"; + sha256 = "0vcb35shzp406jvvz0pkgqm8qq1qzhgwmkl0nrm0wrrkqlr22rfb"; }; - buildInputs = [pam kerberos]; - meta = { -# homepage = "http://www.eyrie.org/~eagle/software/pam-krb5"; - homepage = "https://fedorahosted.org/pam_krb5/"; + buildInputs = [ pam krb5 ]; + + meta = with stdenv.lib; { + homepage = https://fedorahosted.org/pam_krb5; description = "PAM module allowing PAM-aware applications to authenticate users by performing an AS exchange with a Kerberos KDC"; longDescription = '' pam_krb5 can optionally convert Kerberos 5 credentials to Kerberos IV credentials and/or use them to set up AFS tokens for a user's session. ''; - maintainers = [ stdenv.lib.maintainers.mornfall ]; + platforms = platforms.linux; + license = licenses.bsd3; + maintainers = with maintainers; [ wkennington mornfall ]; }; } From 75bc862b3954faa6ff4a9f1878ba20bd3796e562 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 29 Dec 2014 23:25:35 -0800 Subject: [PATCH 115/175] pam_krb5: Keep kerberos instead of krb5 --- pkgs/os-specific/linux/pam_krb5/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/pam_krb5/default.nix b/pkgs/os-specific/linux/pam_krb5/default.nix index 28f13c9ae7a3..5c0cc033de9f 100644 --- a/pkgs/os-specific/linux/pam_krb5/default.nix +++ b/pkgs/os-specific/linux/pam_krb5/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pam, krb5 }: +{ stdenv, fetchurl, pam, kerberos }: stdenv.mkDerivation rec { name = "pam_krb5-2.4.9"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "0vcb35shzp406jvvz0pkgqm8qq1qzhgwmkl0nrm0wrrkqlr22rfb"; }; - buildInputs = [ pam krb5 ]; + buildInputs = [ pam kerberos ]; meta = with stdenv.lib; { homepage = https://fedorahosted.org/pam_krb5; From 5fe743930a6e7586f57ef5064a506057351b836e Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 00:05:12 -0800 Subject: [PATCH 116/175] kerberos: Use default kerberos instead of krb5 --- pkgs/applications/networking/browsers/chromium/common.nix | 4 ++-- pkgs/desktops/cinnamon/cinnamon-control-center.nix | 4 ++-- .../gnome-3/3.12/core/gnome-control-center/default.nix | 4 ++-- pkgs/development/compilers/icedtea/default.nix | 4 ++-- pkgs/development/libraries/ptlib/default.nix | 4 ++-- pkgs/development/libraries/serf/default.nix | 6 +++--- pkgs/development/libraries/ti-rpc/default.nix | 4 ++-- pkgs/os-specific/linux/ipsec-tools/default.nix | 4 ++-- pkgs/servers/openafs-client/default.nix | 4 ++-- pkgs/tools/security/john/default.nix | 4 ++-- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index ee46bb970725..5b662f4b29b9 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -8,7 +8,7 @@ , libusb1, libexif, pciutils , python, pythonPackages, perl, pkgconfig -, nspr, udev, krb5 +, nspr, udev, kerberos , utillinux, alsaLib , bison, gperf , glib, gtk, dbus_glib @@ -109,7 +109,7 @@ let nspr udev (if useOpenSSL then openssl else nss) utillinux alsaLib - bison gperf krb5 + bison gperf kerberos glib gtk dbus_glib libXScrnSaver libXcursor libXtst mesa pciutils protobuf speechd libXdamage diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center.nix b/pkgs/desktops/cinnamon/cinnamon-control-center.nix index 6eced78ed119..bb53ecfd9019 100644 --- a/pkgs/desktops/cinnamon/cinnamon-control-center.nix +++ b/pkgs/desktops/cinnamon/cinnamon-control-center.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, pkgconfig, autoreconfHook, glib, gettext, gnome_common, cinnamon-desktop, intltool, libxslt, gtk3, libnotify, -gnome-menus, libxml2, systemd, upower, cinnamon-settings-daemon, colord, polkit, ibus, libcanberra_gtk3, pulseaudio, isocodes, krb5, +gnome-menus, libxml2, systemd, upower, cinnamon-settings-daemon, colord, polkit, ibus, libcanberra_gtk3, pulseaudio, isocodes, kerberos, libxkbfile}: let @@ -25,7 +25,7 @@ stdenv.mkDerivation { libnotify gnome-menus libxml2 systemd upower cinnamon-settings-daemon colord polkit ibus libcanberra_gtk3 pulseaudio - isocodes krb5 libxkbfile ]; + isocodes kerberos libxkbfile ]; preBuild = "patchShebangs ./scripts"; diff --git a/pkgs/desktops/gnome-3/3.12/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.12/core/gnome-control-center/default.nix index 0aed2e7a410a..5157d265198c 100644 --- a/pkgs/desktops/gnome-3/3.12/core/gnome-control-center/default.nix +++ b/pkgs/desktops/gnome-3/3.12/core/gnome-control-center/default.nix @@ -2,7 +2,7 @@ , libcanberra, accountsservice, libpwquality, pulseaudio, fontconfig , gdk_pixbuf, hicolor_icon_theme, librsvg, libxkbfile, libnotify , libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk -, cracklib, python, krb5, networkmanagerapplet, networkmanager +, cracklib, python, kerberos, networkmanagerapplet, networkmanager , libwacom, samba, shared_mime_info, tzdata, icu, libtool , docbook_xsl, docbook_xsl_ns, modemmanager, clutter, clutter_gtk }: @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus gnome_online_accounts libsoup colord pulseaudio fontconfig colord-gtk libpwquality - accountsservice krb5 networkmanagerapplet libwacom samba libnotify libxkbfile + accountsservice kerberos networkmanagerapplet libwacom samba libnotify libxkbfile shared_mime_info icu libtool docbook_xsl docbook_xsl_ns gnome3.grilo gdk_pixbuf gnome3.gnome_icon_theme librsvg clutter clutter_gtk hicolor_icon_theme gnome3.gnome_icon_theme_symbolic gnome3.vino diff --git a/pkgs/development/compilers/icedtea/default.nix b/pkgs/development/compilers/icedtea/default.nix index 15cf616cc30d..81d30d503900 100644 --- a/pkgs/development/compilers/icedtea/default.nix +++ b/pkgs/development/compilers/icedtea/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, jdk, jdkPath, ant, wget, zip, unzip, cpio, file, libxslt -, xorg, zlib, pkgconfig, libjpeg, libpng, giflib, lcms2, gtk2, krb5, attr +, xorg, zlib, pkgconfig, libjpeg, libpng, giflib, lcms2, gtk2, kerberos, attr , alsaLib, procps, automake, autoconf, cups, which, perl, coreutils, binutils , cacert, setJavaClassPath }: @@ -50,7 +50,7 @@ with srcInfo; stdenv.mkDerivation { buildInputs = [ jdk ant wget zip unzip cpio file libxslt pkgconfig procps automake autoconf which perl coreutils xorg.lndir - zlib libjpeg libpng giflib lcms2 krb5 attr alsaLib cups + zlib libjpeg libpng giflib lcms2 kerberos attr alsaLib cups xorg.libX11 xorg.libXtst gtk2 ]; diff --git a/pkgs/development/libraries/ptlib/default.nix b/pkgs/development/libraries/ptlib/default.nix index 9f9b188322fa..aa2601a7bd3e 100644 --- a/pkgs/development/libraries/ptlib/default.nix +++ b/pkgs/development/libraries/ptlib/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, bison, flex, unixODBC -, openssl, openldap, cyrus_sasl, krb5, expat, SDL, libdv, libv4l, alsaLib }: +, openssl, openldap, cyrus_sasl, kerberos, expat, SDL, libdv, libv4l, alsaLib }: stdenv.mkDerivation rec { name = "ptlib-2.10.10"; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { }; buildInputs = [ pkgconfig bison flex unixODBC openssl openldap - cyrus_sasl krb5 expat SDL libdv libv4l alsaLib ]; + cyrus_sasl kerberos expat SDL libdv libv4l alsaLib ]; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix index b2e6cbfc7e5d..fb01f17e9480 100644 --- a/pkgs/development/libraries/serf/default.nix +++ b/pkgs/development/libraries/serf/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig, gnused }: +{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, kerberos, pkgconfig, gnused }: stdenv.mkDerivation rec { name = "serf-1.3.7"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "1bphz616dv1svc50kkm8xbgyszhg3ni2dqbij99sfvjycr7bgk7c"; }; - buildInputs = [ apr scons openssl aprutil zlib krb5 pkgconfig ]; + buildInputs = [ apr scons openssl aprutil zlib kerberos pkgconfig ]; configurePhase = '' ${gnused}/bin/sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"PATH":os.environ["PATH"]})' -i SConstruct @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { buildPhase = '' scons PREFIX="$out" OPENSSL="${openssl}" ZLIB="${zlib}" APR="$(echo "${apr}"/bin/*-config)" \ - APU="$(echo "${aprutil}"/bin/*-config)" GSSAPI="${krb5}" CC="${ + APU="$(echo "${aprutil}"/bin/*-config)" GSSAPI="${kerberos}" CC="${ if stdenv.isDarwin then "clang" else "${stdenv.cc}/bin/gcc" }" ''; diff --git a/pkgs/development/libraries/ti-rpc/default.nix b/pkgs/development/libraries/ti-rpc/default.nix index a85f8a6b11cf..4c2eb2261ad4 100644 --- a/pkgs/development/libraries/ti-rpc/default.nix +++ b/pkgs/development/libraries/ti-rpc/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, krb5 }: +{ fetchurl, stdenv, kerberos }: stdenv.mkDerivation rec { name = "libtirpc-0.2.4"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "18a337wa4amf0k21wnimp3yzs5l3cxqndz4x3x8bm993zhfy5hs5"; }; - buildInputs = [ krb5 ]; + buildInputs = [ kerberos ]; # http://www.sourcemage.org/projects/grimoire/repository/revisions/d6344b6a3a94b88ed67925a474de5930803acfbf preConfigure = '' diff --git a/pkgs/os-specific/linux/ipsec-tools/default.nix b/pkgs/os-specific/linux/ipsec-tools/default.nix index 6a42784d1f08..a6042b1e33b8 100644 --- a/pkgs/os-specific/linux/ipsec-tools/default.nix +++ b/pkgs/os-specific/linux/ipsec-tools/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, linuxHeaders, readline, openssl, flex, krb5, pam }: +{ stdenv, fetchurl, linuxHeaders, readline, openssl, flex, kerberos, pam }: # TODO: These tools are supposed to work under NetBSD and FreeBSD as # well, so I guess it's not appropriate to place this expression in @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { sha256 = "0b9gfbz78k2nj0k7jdlm5kajig628ja9qm0z5yksiwz22s3v7dlf"; }; - buildInputs = [ readline openssl flex krb5 pam ]; + buildInputs = [ readline openssl flex kerberos pam ]; patches = [ ./dont-create-localstatedir-during-install.patch ]; diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix index 5c1b2c16c6d6..9d9df2e38c0e 100644 --- a/pkgs/servers/openafs-client/default.nix +++ b/pkgs/servers/openafs-client/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, which, autoconf, automake, flex, yacc, - kernel, glibc, ncurses, perl, krb5 }: + kernel, glibc, ncurses, perl, kerberos }: assert stdenv.isLinux; assert builtins.substring 0 4 kernel.version != "3.18"; @@ -34,7 +34,7 @@ stdenv.mkDerivation { ./regen.sh - export KRB5_CONFIG=${krb5}/bin/krb5-config + export KRB5_CONFIG=${kerberos}/bin/krb5-config configureFlagsArray=( "--with-linux-kernel-build=$TMP/linux" diff --git a/pkgs/tools/security/john/default.nix b/pkgs/tools/security/john/default.nix index fb1131b5f98b..4ef9b8f65b6b 100644 --- a/pkgs/tools/security/john/default.nix +++ b/pkgs/tools/security/john/default.nix @@ -1,11 +1,11 @@ -{ stdenv, fetchgit, openssl, nss, nspr, krb5, gmp, zlib, libpcap, re2 }: +{ stdenv, fetchgit, openssl, nss, nspr, kerberos, gmp, zlib, libpcap, re2 }: with stdenv.lib; stdenv.mkDerivation rec { name = "JohnTheRipper-${version}"; version = "8a3e3c1d"; - buildInputs = [ openssl nss nspr krb5 gmp zlib libpcap re2 ]; + buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 ]; NIX_CFLAGS_COMPILE = "-DJOHN_SYSTEMWIDE=1"; preConfigure = ''cd src''; installPhase = '' From 1444a6806eff06078974c248dc2189927d6e3e0f Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 00:32:41 -0800 Subject: [PATCH 117/175] heimdal: Update build --- .../libraries/kerberos/heimdal.nix | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix index d4285db1efb7..65340120829b 100644 --- a/pkgs/development/libraries/kerberos/heimdal.nix +++ b/pkgs/development/libraries/kerberos/heimdal.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, openldap, readline, db, openssl, cyrus_sasl, sqlite} : +{ stdenv, fetchurl, pkgconfig, flex, yacc, readline, openldap, libcap_ng +, sqlite, db, ncurses, openssl, cyrus_sasl +}: stdenv.mkDerivation rec { name = "heimdal-1.5.3"; @@ -13,19 +15,28 @@ stdenv.mkDerivation rec { ## ugly, X should be made an option configureFlags = [ + "--enable-hdb-openldap-module" + "--with-capng" "--with-openldap=${openldap}" "--with-sqlite3=${sqlite}" "--without-x" ]; + # dont succeed with --libexec=$out/sbin, so postInstall = '' mv "$out/libexec/"* $out/sbin/ rmdir $out/libexec ''; - propagatedBuildInputs = [ readline db openssl openldap cyrus_sasl sqlite]; + buildInputs = [ + pkgconfig flex yacc readline openldap libcap_ng sqlite db ncurses + openssl cyrus_sasl + ]; - meta = { - platforms = stdenv.lib.platforms.linux; + meta = with stdenv.lib; { + description = "an implementation of Kerberos 5 (and some more stuff) largely written in Sweden"; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = with maintainers; [ wkennington ]; }; } From 41a4f1fa3b96524be5095390a1119df43e2699b4 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 01:03:29 -0800 Subject: [PATCH 118/175] krb5: 1.12.2 -> 1.13 --- pkgs/development/libraries/kerberos/krb5.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix index e1b4798dc0c1..dda9d17852ba 100644 --- a/pkgs/development/libraries/kerberos/krb5.nix +++ b/pkgs/development/libraries/kerberos/krb5.nix @@ -1,8 +1,8 @@ -{stdenv, fetchurl, perl, ncurses, yacc}: +{ stdenv, fetchurl, pkgconfig, perl, ncurses, yacc, openssl, openldap }: let pname = "krb5"; - version = "1.12.2"; + version = "1.13"; name = "${pname}-${version}"; webpage = http://web.mit.edu/kerberos/; in @@ -11,11 +11,11 @@ stdenv.mkDerivation (rec { inherit name; src = fetchurl { - url = "${webpage}dist/krb5/1.12/${name}-signed.tar"; - sha256 = "0i1p9xx5s9q0sqnnz7f3rba07882zciw0mwc6yvv7hmm0w0iig89"; + url = "${webpage}dist/krb5/1.13/${name}-signed.tar"; + sha256 = "10lmbbcrzknzjnhlfjgb4rc3vzncqhmd0kp82pwd0xxpkap7k3yw"; }; - buildInputs = [ perl ncurses yacc ]; + buildInputs = [ pkgconfig perl ncurses yacc openssl openldap ]; unpackPhase = '' tar -xf $src @@ -23,15 +23,15 @@ stdenv.mkDerivation (rec { cd ${name}/src ''; - configureFlags = "--with-tcl=no"; - - #doCheck = true; # report: No suitable file for testing purposes + configureFlags = [ "--with-tcl=no" ]; enableParallelBuilding = true; - meta = { + meta = with stdenv.lib; { description = "MIT Kerberos 5"; homepage = webpage; license = "MPL"; + platforms = platforms.unix; + maintainers = with maintainers; [ wkennington ]; }; }) From fbac211a2c2606c3ba0ecd26e87b5925cc6db3ae Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 01:04:16 -0800 Subject: [PATCH 119/175] cyrus_sasl: Enable kerberos --- pkgs/development/libraries/cyrus-sasl/default.nix | 11 ++++++----- pkgs/top-level/all-packages.nix | 13 +++++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix index 391638548fb7..5470797b42f9 100644 --- a/pkgs/development/libraries/cyrus-sasl/default.nix +++ b/pkgs/development/libraries/cyrus-sasl/default.nix @@ -1,7 +1,8 @@ -{ lib, stdenv, fetchurl, openssl, db, gettext, pam, fixDarwinDylibNames }: +{ lib, stdenv, fetchurl, openssl, kerberos, db, gettext, pam, fixDarwinDylibNames }: +with stdenv.lib; stdenv.mkDerivation rec { - name = "cyrus-sasl-2.1.26"; + name = "cyrus-sasl-2.1.26${optionalString (kerberos == null) "-without-kerberos"}"; src = fetchurl { url = "ftp://ftp.cyrusimap.org/cyrus-sasl/${name}.tar.gz"; @@ -9,7 +10,7 @@ stdenv.mkDerivation rec { }; buildInputs = - [ openssl db gettext ] + [ openssl db gettext kerberos ] ++ lib.optional stdenv.isLinux pam ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; @@ -30,7 +31,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://cyrusimap.web.cmu.edu/"; description = "library for adding authentication support to connection-based protocols"; - platforms = stdenv.lib.platforms.unix; - maintainers = [ stdenv.lib.maintainers.simons ]; + platforms = platforms.unix; + maintainers = with maintainers; [ simons ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3cb69f50be99..dc5d21eddd25 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5532,7 +5532,12 @@ let # TODO : Add MIT Kerberos and let admin choose. kerberos = heimdal; - heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { }; + heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { + openldap = openldap.override { + cyrus_sasl = cyrus_sasl.override { kerberos = null; }; + }; + cyrus_sasl = cyrus_sasl.override { kerberos = null; }; + }; harfbuzz = callPackage ../development/libraries/harfbuzz { }; harfbuzz-icu = callPackage ../development/libraries/harfbuzz { @@ -5640,7 +5645,11 @@ let automake = automake111x; }; - krb5 = callPackage ../development/libraries/kerberos/krb5.nix { }; + krb5 = callPackage ../development/libraries/kerberos/krb5.nix { + openldap = openldap.override { + cyrus_sasl = cyrus_sasl.override { kerberos = null; }; + }; + }; LASzip = callPackage ../development/libraries/LASzip { }; From 3d92b057f593e1201c9ea4555956670ebf940f4a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 30 Dec 2014 04:36:14 +0100 Subject: [PATCH 120/175] merge #5505: use /run/current-system/sw/bin/* A working /sbin/shutdown (usually provided by systemd) is required by "rtcwake -m off". Creating a circular dependency on systemd for this just isn't worth the trouble, so take the straightforward way out. One could easily make the argument that rtcwake wants to shut down the *currently running system*, and that the correct API for that *is* in fact /run/current-system. And it makes a very tempting sort of sense. @vcunat moved to postPatch and added #FIXME. --- pkgs/os-specific/linux/util-linux/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 3b76eb63ea5f..3715a93d9328 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -8,6 +8,14 @@ stdenv.mkDerivation rec { sha256 = "e0457f715b73f4a349e1acb08cb410bf0edc9a74a3f75c357070f31f70e33cd6"; }; + #FIXME: make it also work on non-nixos? + postPatch = '' + # Substituting store paths would create a circular dependency on systemd + substituteInPlace include/pathnames.h \ + --replace "/bin/login" "/run/current-system/sw/bin/login" \ + --replace "/sbin/shutdown" "/run/current-system/sw/bin/shutdown" + ''; + crossAttrs = { # Work around use of `AC_RUN_IFELSE'. preConfigure = "export scanf_cv_type_modifier=ms"; From 96913a76f305f155c7148206b70f72d66efd9880 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 30 Dec 2014 10:50:47 +0100 Subject: [PATCH 121/175] Revert "merge #5505: use /run/current-system/sw/bin/*" I didn't realize it causes a nontrivial rebuild (through systemd). I'll re-push to staging. This reverts commit 8cf4ef7ab747b3e3d0b1319de538257281355b33. --- pkgs/os-specific/linux/util-linux/default.nix | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 3715a93d9328..3b76eb63ea5f 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -8,14 +8,6 @@ stdenv.mkDerivation rec { sha256 = "e0457f715b73f4a349e1acb08cb410bf0edc9a74a3f75c357070f31f70e33cd6"; }; - #FIXME: make it also work on non-nixos? - postPatch = '' - # Substituting store paths would create a circular dependency on systemd - substituteInPlace include/pathnames.h \ - --replace "/bin/login" "/run/current-system/sw/bin/login" \ - --replace "/sbin/shutdown" "/run/current-system/sw/bin/shutdown" - ''; - crossAttrs = { # Work around use of `AC_RUN_IFELSE'. preConfigure = "export scanf_cv_type_modifier=ms"; From f113b49f7210cba3c5b17dec1367cbf2ae436d36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 30 Dec 2014 11:03:27 +0100 Subject: [PATCH 122/175] telepathy-misson-control: minor update, disable upower Disabling upower is probably just a temporary work around the incompatibility with 0.99.* --- .../telepathy/mission-control/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix index b463ff2f2307..aab7f84f467a 100644 --- a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix +++ b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix @@ -1,15 +1,16 @@ { stdenv, fetchurl, pkgconfig, telepathy_glib, libxslt, makeWrapper, upower }: stdenv.mkDerivation rec { - name = "${pname}-5.16.2"; + name = "${pname}-5.16.3"; pname = "telepathy-mission-control"; src = fetchurl { url = "http://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz"; - sha256 = "1sk8f9jfaxgbsniz0n5hmrcwvxla3x8axjcnjbppg7nidk9gijrx"; + sha256 = "0zcbx69k0d3p2pjh3g7sa3q2zkd5xchxkqsmlfn3fwxaz0pmsmvi"; }; - buildInputs = [ telepathy_glib makeWrapper upower ]; # ToDo: optional stuff missing + buildInputs = [ telepathy_glib makeWrapper /*upower*/ ]; # ToDo: optional stuff missing + # 5.16.3 won't build with upower-0.99. Arch and Debian choose to disable it nativeBuildInputs = [ pkgconfig libxslt ]; From 1bfd620a4d50e72016b08ad9b87a36aac007c514 Mon Sep 17 00:00:00 2001 From: Oliver Charles Date: Tue, 30 Dec 2014 10:58:36 +0000 Subject: [PATCH 123/175] haskellPackages.netwire: Update to 5.0.1 --- .../development/libraries/haskell/netwire/default.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/haskell/netwire/default.nix b/pkgs/development/libraries/haskell/netwire/default.nix index 7321c3e88e8e..f60af56b62fb 100644 --- a/pkgs/development/libraries/haskell/netwire/default.nix +++ b/pkgs/development/libraries/haskell/netwire/default.nix @@ -1,20 +1,23 @@ # This file was auto-generated by cabal2nix. Please do NOT edit manually! -{ cabal, deepseq, parallel, random, semigroups, time, transformers +{ cabal, deepseq, parallel, profunctors, random, semigroups, time +, transformers }: cabal.mkDerivation (self: { pname = "netwire"; - version = "5.0.0"; - sha256 = "1wxrckc8i86xiiyk8msa6qrhfjx4h34ry1nxh9rdcd5cy03kalks"; + version = "5.0.1"; + sha256 = "1izl4iarcc6z2j0d6gkcygpp63asajikn1p44p8ixwzx96xx578r"; isLibrary = true; isExecutable = true; buildDepends = [ - deepseq parallel random semigroups time transformers + deepseq parallel profunctors random semigroups time transformers ]; meta = { + homepage = "http://hub.darcs.net/ertes/netwire"; description = "Functional reactive programming library"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + maintainers = with self.stdenv.lib.maintainers; [ ocharles ]; }; }) From b9152bb714c811d48678cce9ce6fe8c50f9556a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 25 Dec 2014 23:16:20 +0100 Subject: [PATCH 124/175] xidel: new package Command line tool to download and extract data from html/xml page. http://videlibri.sourceforge.net/xidel.html --- pkgs/tools/text/xidel/default.nix | 51 +++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 52 insertions(+) create mode 100644 pkgs/tools/text/xidel/default.nix diff --git a/pkgs/tools/text/xidel/default.nix b/pkgs/tools/text/xidel/default.nix new file mode 100644 index 000000000000..89adcc75b195 --- /dev/null +++ b/pkgs/tools/text/xidel/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, dpkg, patchelf }: + +stdenv.mkDerivation rec { + name = "xidel-${version}"; + version = "0.8.4"; + + ## Source archive lacks file (manageUtils.sh), using pre-built package for now. + #src = fetchurl { + # url = "mirror://sourceforge/videlibri/Xidel/Xidel%20${version}/${name}.src.tar.gz"; + # sha256 = "1h5xn16lgzx0s94iyhxa50lk05yf0af44nzm5w5k57615nd82kz2"; + #}; + + src = + if stdenv.system == "x86_64-linux" then + fetchurl { + url = "mirror://sourceforge/videlibri/Xidel/Xidel%20${version}/xidel_${version}-1_amd64.deb"; + sha256 = "0gq95ag2661hsw8b7ii6z07ian832cz8g21lvq2cvps4a80ql1gi"; + } + else if stdenv.system == "i686-linux" then + fetchurl { + url = "mirror://sourceforge/videlibri/Xidel/Xidel%20${version}/xidel_${version}-1_i386.deb"; + sha256 = "07yk5sk1p4jm0jmgjwdm2wq8d2wybi1wkn1qq5j5y03z1pdc3fi6"; + } + else throw "xidel is not supported on ${stdenv.system}"; + + buildInputs = [ dpkg patchelf ]; + + unpackPhase = '' + dpkg-deb -x ${src} ./ + ''; + + buildPhase = "true"; + + installPhase = '' + mkdir -p "$out/bin" + cp -a usr/* "$out/" + interpreter="$(echo ${stdenv.glibc}/lib/ld-linux*)" + patchelf --set-interpreter "$interpreter" "$out/bin/xidel" + patchelf --set-rpath "${stdenv.lib.makeLibraryPath [stdenv.glibc]}" "$out/bin/xidel" + ''; + + meta = with stdenv.lib; { + description = "Command line tool to download and extract data from html/xml pages"; + homepage = http://videlibri.sourceforge.net/xidel.html; + # source contains no license info (AFAICS), but sourceforge says GPLv2 + license = licenses.gpl2; + # more platforms will be supported when we switch to source build + platforms = [ "i686-linux" "x86_64-linux" ]; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dc5d21eddd25..5fac760a480c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4323,6 +4323,7 @@ let inherit fetchurl stdenv cabextract; }); + xidel = callPackage ../tools/text/xidel { }; ### DEVELOPMENT / TOOLS From 63a77f25d75f3b398d3f594b3073cc7222b671c1 Mon Sep 17 00:00:00 2001 From: koral Date: Tue, 30 Dec 2014 14:45:30 +0100 Subject: [PATCH 125/175] fast-export: update to last revision from upstream --- .../git-and-tools/fast-export/default.nix | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix index 562917ec0737..5bd6995d2046 100644 --- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix +++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix @@ -1,12 +1,13 @@ {stdenv, fetchgit, mercurial, coreutils, git, makeWrapper, subversion}: +with stdenv.lib; stdenv.mkDerivation { name = "fast-export"; src = fetchgit { - url = "git://repo.or.cz/fast-export.git"; - rev = "aaccfba"; - sha256 = "c9d1498e31d32b8271c1e651175794718611f93b4843dea569d831005de0a750"; + url = git://repo.or.cz/fast-export.git; + rev = "d202200fd9daa75cdb37d4cf067d4ca00e269535"; + sha256 = "1ci0jbprs7hqqzq4mqi5b9vlc43lmk2bn2kjx49bdjkqajvlicd7"; }; buildInputs = [mercurial.python mercurial makeWrapper subversion]; @@ -30,10 +31,10 @@ stdenv.mkDerivation { done ''; - # usage: meta = { - description = "import svn, mercurial into git"; - homepage = "http://repo.or.cz/w/fast-export.git"; - license = stdenv.lib.licenses.gpl2; + description = "Import svn, mercurial into git"; + homepage = http://repo.or.cz/w/fast-export.git; + license = licenses.gpl2; + maintainers = [ maintainers.koral ]; }; } From 330a4a28dd88276fc9b9ea670874ea486f7cb57e Mon Sep 17 00:00:00 2001 From: Karn Kallio Date: Tue, 30 Dec 2014 10:39:43 -0430 Subject: [PATCH 126/175] openjdk : Patch to extend valid currency change dates to 20 years. --- .../compilers/openjdk/currency-date-range.patch | 14 ++++++++++++++ pkgs/development/compilers/openjdk/default.nix | 1 + 2 files changed, 15 insertions(+) create mode 100644 pkgs/development/compilers/openjdk/currency-date-range.patch diff --git a/pkgs/development/compilers/openjdk/currency-date-range.patch b/pkgs/development/compilers/openjdk/currency-date-range.patch new file mode 100644 index 000000000000..b1c461591d1e --- /dev/null +++ b/pkgs/development/compilers/openjdk/currency-date-range.patch @@ -0,0 +1,14 @@ +diff -Naur openjdk-7u65-b32-upstream/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java openjdk-7u65-b32/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java +--- openjdk-7u65-b32-upstream/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java 2014-07-17 05:42:14.000000000 -0430 ++++ openjdk-7u65-b32/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java 2014-12-30 10:15:50.327905933 -0430 +@@ -281,8 +281,8 @@ + checkCurrencyCode(newCurrency); + String timeString = currencyInfo.substring(4, length - 4); + long time = format.parse(timeString).getTime(); +- if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) { +- throw new RuntimeException("time is more than 10 years from present: " + time); ++ if (Math.abs(time - System.currentTimeMillis()) > ((long) 20) * 365 * 24 * 60 * 60 * 1000) { ++ throw new RuntimeException("time is more than 20 years from present: " + time); + } + specialCaseCutOverTimes[specialCaseCount] = time; + specialCaseOldCurrencies[specialCaseCount] = oldCurrency; diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix index 3c0ace0ac934..b2350bcc6817 100644 --- a/pkgs/development/compilers/openjdk/default.nix +++ b/pkgs/development/compilers/openjdk/default.nix @@ -66,6 +66,7 @@ stdenv.mkDerivation rec { ./fix-java-home.patch ./paxctl.patch ./read-truststore-from-env.patch + ./currency-date-range.patch ]; NIX_NO_SELF_RPATH = true; From 9039363c60bd0468df7150fed87e317908717b5a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:12:52 +0100 Subject: [PATCH 127/175] Release date --- nixos/doc/manual/release-notes/rl-1412.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index 324a3e6bdc2f..208f722e1868 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -4,7 +4,7 @@ version="5.0" xml:id="sec-release-14.12"> -Release 14.12 (“Caterpillar”, 2014/12/??) +Release 14.12 (“Caterpillar”, 2014/12/30) In addition to numerous new and upgraded packages, this release has the following highlights: From 19ba5a06fae4ecdb7fe6b5beb20a00c6e4a0e26b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:25:02 +0100 Subject: [PATCH 128/175] Release notes --- nixos/doc/manual/release-notes/rl-1412.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index 208f722e1868..d3927e84220d 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -23,9 +23,14 @@ Nix has been updated to 1.8. The default Linux kernel has been updated to 3.14. - set to true now respect any changes -made after initial creation of a user or a group. - +If is enabled (the +default), changes made to the declaration of a user or group will be +correctly realised when running nixos-rebuild. For +instance, removing a user specification from +configuration.nix will cause the actual user +account to be deleted. If is +disabled, it is no longer necessary to specify UIDs or GIDs; if +omitted, they are allocated dynamically. From 27260cca0ced218980937cc32f7e52fb31e1bb92 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:32:05 +0100 Subject: [PATCH 129/175] Drop reference to obsolete ControlGroupAttribute option --- nixos/doc/manual/administration/control-groups.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nixos/doc/manual/administration/control-groups.xml b/nixos/doc/manual/administration/control-groups.xml index 86c684cdfe5d..0d7b8ae910a7 100644 --- a/nixos/doc/manual/administration/control-groups.xml +++ b/nixos/doc/manual/administration/control-groups.xml @@ -58,12 +58,10 @@ controls memory allocation limits; by default, all processes are in the top-level cgroup, so any service or session can exhaust all available memory. Per-cgroup memory limits can be specified in configuration.nix; for instance, to limit -httpd.service to 512 MiB of RAM (excluding swap) -and 640 MiB of RAM (including swap): +httpd.service to 512 MiB of RAM (excluding swap): systemd.services.httpd.serviceConfig.MemoryLimit = "512M"; -systemd.services.httpd.serviceConfig.ControlGroupAttribute = [ "memory.memsw.limit_in_bytes 640M" ]; @@ -72,4 +70,4 @@ systemd.services.httpd.serviceConfig.ControlGroupAttribute = [ "memory.memsw.lim continuously updated list of all cgroups with their CPU and memory usage. - \ No newline at end of file + From e3f9c0041721bb48a6e28ec9fc0b87038fb6f0a0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:19:52 +0100 Subject: [PATCH 130/175] Create AMIs in the lb-nixos account --- nixos/maintainers/scripts/ec2/create-ebs-amis.py | 10 +++++----- nixos/maintainers/scripts/ec2/ebs-creator.nix | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/nixos/maintainers/scripts/ec2/create-ebs-amis.py b/nixos/maintainers/scripts/ec2/create-ebs-amis.py index 6c91aa68694d..8c686139fef8 100755 --- a/nixos/maintainers/scripts/ec2/create-ebs-amis.py +++ b/nixos/maintainers/scripts/ec2/create-ebs-amis.py @@ -34,13 +34,13 @@ ebs_size = 20 # Start a NixOS machine in the given region. f = open("ebs-creator-config.nix", "w") f.write('''{{ - resources.ec2KeyPairs.keypair.accessKeyId = "logicblox-dev"; + resources.ec2KeyPairs.keypair.accessKeyId = "lb-nixos"; resources.ec2KeyPairs.keypair.region = "{0}"; machine = {{ pkgs, ... }}: {{ - deployment.ec2.accessKeyId = "logicblox-dev"; + deployment.ec2.accessKeyId = "lb-nixos"; deployment.ec2.region = "{0}"; deployment.ec2.blockDeviceMapping."/dev/xvdg".size = pkgs.lib.mkOverride 10 {1}; }}; @@ -161,16 +161,16 @@ f.write( {{ network.description = "NixOS EBS test"; - resources.ec2KeyPairs.keypair.accessKeyId = "logicblox-dev"; + resources.ec2KeyPairs.keypair.accessKeyId = "lb-nixos"; resources.ec2KeyPairs.keypair.region = "{0}"; machine = {{ config, pkgs, resources, ... }}: {{ deployment.targetEnv = "ec2"; - deployment.ec2.accessKeyId = "logicblox-dev"; + deployment.ec2.accessKeyId = "lb-nixos"; deployment.ec2.region = "{0}"; deployment.ec2.instanceType = "{2}"; deployment.ec2.keyPair = resources.ec2KeyPairs.keypair.name; - deployment.ec2.securityGroups = [ "admin" ]; + deployment.ec2.securityGroups = [ "public-ssh" ]; deployment.ec2.ami = "{1}"; }}; }} diff --git a/nixos/maintainers/scripts/ec2/ebs-creator.nix b/nixos/maintainers/scripts/ec2/ebs-creator.nix index 37795d5d5b4a..7bb13695fa78 100644 --- a/nixos/maintainers/scripts/ec2/ebs-creator.nix +++ b/nixos/maintainers/scripts/ec2/ebs-creator.nix @@ -5,10 +5,9 @@ { config, pkgs, resources, ... }: { deployment.targetEnv = "ec2"; deployment.ec2.instanceType = "c3.large"; - deployment.ec2.securityGroups = [ "admin" ]; + deployment.ec2.securityGroups = [ "public-ssh" ]; deployment.ec2.ebsBoot = false; deployment.ec2.keyPair = resources.ec2KeyPairs.keypair.name; - deployment.ec2.zone = "us-east-1e"; environment.systemPackages = [ pkgs.parted ]; }; } From bcf391a94d04e4aa51533f769b97b8d5be00e853 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:24:39 +0100 Subject: [PATCH 131/175] Disambiguate util-linux package names --- pkgs/top-level/all-packages.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5fac760a480c..354a1bf5df67 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8758,15 +8758,15 @@ let usermount = callPackage ../os-specific/linux/usermount { }; - utillinux = lowPrio (callPackage ../os-specific/linux/util-linux { + utillinux = callPackage ../os-specific/linux/util-linux { ncurses = null; perl = null; - }); - - utillinuxCurses = utillinux.override { - inherit ncurses perl; }; + utillinuxCurses = appendToName "curses" (utillinux.override { + inherit ncurses perl; + }); + v4l_utils = callPackage ../os-specific/linux/v4l-utils { withQt4 = true; }; From 8910d3b85ce4c025f500ee36a077fa6b3f50a3dc Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:40:18 +0100 Subject: [PATCH 132/175] Sort stuff --- nixos/doc/manual/release-notes/rl-1412.xml | 122 ++++++++++----------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index d3927e84220d..7acbbb18483a 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -37,67 +37,67 @@ omitted, they are allocated dynamically. Following new services were added since the last release: -parallels-guest -docker -lxc -openvswitch -fluxbox -bspwm -gdm -fcgiwrap -peerflix -fail2ban -chronos -znc -unifi -teamspeak3 -strongswan -seeks -radicale -prosody -polipo -openntpd -nsd -mailpile -i2pd -dnscrypt-proxy -consul -atftpd -scollector -collectd -bosun -riemann -zookeeper -uhub -siproxd -redmine -phd -mesos -gitlab -gitolite -etcd -docker-registry -cpuminer-cryptonight -thermald -mlmmj -tcsd -gnome3.seahorse -gnome3.gvfs -gnome3.gnome-online-miners -gnome3.gnome-documents -geoclue2 -opentsdb -neo4j -monetdb -influxdb -hbase -torque/mrom -torque/server -kubernetes -fleet -crashplan -mopidy -liquidsoap +atftpd +bosun +bspwm +chronos +collectd +consul +cpuminer-cryptonight +crashplan +dnscrypt-proxy +docker-registry +docker +etcd +fail2ban +fcgiwrap +fleet +fluxbox +gdm +geoclue2 +gitlab +gitolite +gnome3.gnome-documents +gnome3.gnome-online-miners +gnome3.gvfs +gnome3.seahorse +hbase +i2pd +influxdb +kubernetes +liquidsoap +lxc +mailpile +mesos +mlmmj +monetdb +mopidy +neo4j +nsd +openntpd +opentsdb +openvswitch +parallels-guest +peerflix +phd +polipo +prosody +radicale +redmine +riemann +scollector +seeks +siproxd +strongswan +tcsd +teamspeak3 +thermald +torque/mrom +torque/server +uhub +unifi +znc +zookeeper From 29309c1631f08de8170e43c1c56550fd1d65b707 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 18:42:56 +0100 Subject: [PATCH 133/175] Release notes tweak --- nixos/doc/manual/release-notes/rl-1412.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index 7acbbb18483a..b809c877d93a 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -130,9 +130,11 @@ rather than c-container-name.GNOME 3.10 support has been dropped. The default GNOME version is now 3.12. -VirtualBox has been upgraded to 4.3.20 release. Users may be required to run -rm -rf /tmp.vbox*. imports = [ <nixpkgs/nixos/modules/programs/virtualbox.nix> ] -is no longer necessary, use services.virtualboxHost.enable = true instead. +VirtualBox has been upgraded to 4.3.20 release. Users +may be required to run rm -rf /tmp.vbox*. The line +imports = [ <nixpkgs/nixos/modules/programs/virtualbox.nix> ] is +no longer necessary, use services.virtualboxHost.enable = +true instead. Also, hardening mode is now enabled by default, which means that unless you want to use USB support, you no longer need to be a member of the vboxusers group. From 4433ebb552937b6df0a936bfa22641977165a0fb Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Tue, 30 Dec 2014 22:13:36 +0100 Subject: [PATCH 134/175] Dwarf Fortress: Update to 0.40.23. --- pkgs/games/dwarf-fortress/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/games/dwarf-fortress/default.nix b/pkgs/games/dwarf-fortress/default.nix index 8b4e8bfce828..c4a10155523f 100644 --- a/pkgs/games/dwarf-fortress/default.nix +++ b/pkgs/games/dwarf-fortress/default.nix @@ -4,17 +4,17 @@ let baseVersion = "40"; - patchVersion = "19"; + patchVersion = "23"; srcs = { df_unfuck = fetchgit { url = "https://github.com/svenstaro/dwarf_fortress_unfuck"; - rev = "dadf3d48e93a2800db5d4f98d775ba8453ca55a4"; - sha256 = "011pbcfc3a0mnwqg3pkhngnb1h7z1jbx4qbvj03blpzfjia075sv"; + rev = "c6ec52520c44ba09d0d14c1688d2e9d70354fd01"; + sha256 = "0pp602ykyrq4rhyrf3pyy9vplxlkl256lw8bcfmgh0mqzzap9wq9"; }; df = fetchurl { url = "http://www.bay12games.com/dwarves/df_${baseVersion}_${patchVersion}_linux.tar.bz2"; - sha256 = "16xb6py7l1hf9hc7gn50nwajqgmv01zdhbkh7g6a8gnx7wlhl2p9"; + sha256 = "12gjb19scdgsz7zgk9s01qjxqrvh7z0xr68svwgxxqn4wf8kppcl"; }; }; From 13261b9e38a12ab71cacbe4fd2539f14799e2bc4 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:30:05 +0100 Subject: [PATCH 135/175] mp3gain: Fix output path bin directory. Signed-off-by: aszlig --- pkgs/applications/audio/mp3gain/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/applications/audio/mp3gain/default.nix b/pkgs/applications/audio/mp3gain/default.nix index 340658f813d7..3fef8398e9c9 100644 --- a/pkgs/applications/audio/mp3gain/default.nix +++ b/pkgs/applications/audio/mp3gain/default.nix @@ -14,8 +14,7 @@ stdenv.mkDerivation { buildFlags = [ "OSTYPE=linux" ]; installPhase = '' - mkdir -p $out/usr/bin - cp mp3gain $out/usr/bin + install -vD mp3gain "$out/bin/mp3gain" ''; meta = { From e2166c3a1e406da443622fc604a75e2327f03327 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:31:16 +0100 Subject: [PATCH 136/175] python/mutagen: Update to upstream version 1.27. Also now comes with a few more build dependencies in order to run tests, which for this version now succeed. Signed-off-by: aszlig --- 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 ee02edbe0142..80a7513193b5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -5722,15 +5722,15 @@ let }; mutagen = buildPythonPackage (rec { - name = "mutagen-1.23"; + name = "mutagen-1.27"; src = pkgs.fetchurl { url = "http://pypi.python.org/packages/source/m/mutagen/${name}.tar.gz"; - sha256 = "12f70aaf5ggdzll76bhhkn64b27xy9s1acx417dbsaqnnbis8s76"; + md5 = "6a9bb5cc33214add35348f1bb3448340"; }; - # one unicode test fails - doCheck = false; + # Needed for tests only + buildInputs = [ pkgs.faad2 pkgs.flac pkgs.vorbisTools pkgs.liboggz ]; meta = { description = "Python multimedia tagging library"; From d01a381e417c25cf6d543ae0981b695f8028869d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 30 Dec 2014 22:31:01 +0100 Subject: [PATCH 137/175] Document small channels --- nixos/doc/manual/installation/upgrading.xml | 36 ++++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml index 46d3af56b570..5a9d1f24f7c7 100644 --- a/nixos/doc/manual/installation/upgrading.xml +++ b/nixos/doc/manual/installation/upgrading.xml @@ -14,8 +14,8 @@ been built. These channels are: - Stable channels, such as nixos-14.04. + Stable channels, such as nixos-14.12. These only get conservative bug fixes and package upgrades. For instance, a channel update may cause the Linux kernel on your system to be upgraded from 3.4.66 to 3.4.67 (a minor bug fix), but @@ -23,14 +23,28 @@ been built. These channels are: 3.11.x (a major change that has the potential to break things). Stable channels are generally maintained until the next stable branch is created. + - The unstable channel, The unstable channel, nixos-unstable. This corresponds to NixOS’s main development branch, and may thus see radical changes between channel updates. It’s not recommended for production systems. + + Small channels, such as nixos-14.12-small + or nixos-unstable-small. These + are identical to the stable and unstable channels described above, + except that they contain fewer binary packages. This means they + get updated faster than the regular channels (for instance, when a + critical security patch is committed to NixOS’s source tree), but + may require more packages to be built from source than + usual. They’re mostly intended for server environments and as such + contain few GUI applications. + To see what channels are available, go to When you first install NixOS, you’re automatically subscribed to the NixOS channel that corresponds to your installation source. For -instance, if you installed from a 14.04 ISO, you will be subscribed to -the nixos-14.04 channel. To see which NixOS +instance, if you installed from a 14.12 ISO, you will be subscribed to +the nixos-14.12 channel. To see which NixOS channel you’re subscribed to, run the following as root: @@ -57,13 +71,19 @@ $ nix-channel --add https://nixos.org/channels/channel-name (Be sure to include the nixos parameter at the -end.) For instance, to use the NixOS 14.04 stable channel: +end.) For instance, to use the NixOS 14.12 stable channel: -$ nix-channel --add https://nixos.org/channels/nixos-14.04 nixos +$ nix-channel --add https://nixos.org/channels/nixos-14.12 nixos -But if you want to live on the bleeding edge: +If you have a server, you may want to use the “small” channel instead: + + +$ nix-channel --add https://nixos.org/channels/nixos-14.12-small nixos + + +And if you want to live on the bleeding edge: $ nix-channel --add https://nixos.org/channels/nixos-unstable nixos From 51eacc8a96be57ee61e50d2c7a363d7ef3974157 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:33:55 +0100 Subject: [PATCH 138/175] python: Add pyacoustid and dependencies. We're going to need this for fingerprinting support in beets. Signed-off-by: aszlig --- pkgs/top-level/python-packages.nix | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 80a7513193b5..1f7f04585e58 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -531,6 +531,21 @@ let }; }); + audioread = buildPythonPackage rec { + name = "audioread-1.2.1"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/a/audioread/${name}.tar.gz"; + md5 = "01a80357f38dbd9bf8d7403802df89ac"; + }; + + meta = { + description = "Cross-platform audio decoding"; + homepage = "https://github.com/sampsyo/audioread"; + license = stdenv.lib.licenses.mit; + }; + }; + autopep8 = buildPythonPackage (rec { name = "autopep8-1.0.4"; @@ -6946,6 +6961,30 @@ let }; + pyacoustid = buildPythonPackage rec { + name = "pyacoustid-1.1.0"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/p/pyacoustid/${name}.tar.gz"; + md5 = "b27c714d530300b917eb869726334226"; + }; + + propagatedBuildInputs = with self; [ requests audioread ]; + + postPatch = '' + sed -i \ + -e '/^FPCALC_COMMAND *=/s|=.*|= "${pkgs.chromaprint}/bin/fpcalc"|' \ + acoustid.py + ''; + + meta = { + description = "Bindings for Chromaprint acoustic fingerprinting"; + homepage = "https://github.com/sampsyo/pyacoustid"; + license = stdenv.lib.licenses.mit; + }; + }; + + pyalgotrade = buildPythonPackage { name = "pyalogotrade-0.16"; From dc243f9d30a794f6707e5e67b27d4be4f923683e Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:34:48 +0100 Subject: [PATCH 139/175] python: Add new package discogs_client. Needed in order to fetch Discogs album information in beets. Signed-off-by: aszlig --- pkgs/top-level/python-packages.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1f7f04585e58..44d698676e1b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2168,6 +2168,23 @@ let }; }; + discogs_client = buildPythonPackage rec { + name = "discogs-client-2.0.2"; + + src = pkgs.fetchurl { + url = "https://pypi.python.org/packages/source/d/discogs-client/${name}.tar.gz"; + md5 = "2cc57e1d134aa93404e779b9311676fa"; + }; + + propagatedBuildInputs = with self; [ oauth2 requests ]; + + meta = { + description = "Official Python API client for Discogs"; + license = licenses.bsd2; + homepage = "https://github.com/discogs/discogs_client"; + }; + }; + dns = buildPythonPackage rec { name = "dnspython-${version}"; version = "1.12.0"; From f8702f3207b7d09b4902b57d4d7c03b681f45ba2 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:36:09 +0100 Subject: [PATCH 140/175] python: Add new package audiotools. This is needed for the replaygain plugin in beets. Signed-off-by: aszlig --- pkgs/top-level/python-packages.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 44d698676e1b..1f84bf222200 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -546,6 +546,21 @@ let }; }; + audiotools = buildPythonPackage rec { + name = "audiotools-2.22"; + + src = pkgs.fetchurl { + url = "mirror://sourceforge/audiotools/${name}.tar.gz"; + sha256 = "1c52pggsbxdbj8h92njf4h0jgfndh4yv58ad723pidys47nw1y71"; + }; + + meta = { + description = "Utilities and Python modules for handling audio."; + homepage = "http://audiotools.sourceforge.net/"; + license = stdenv.lib.licenses.gpl2Plus; + }; + }; + autopep8 = buildPythonPackage (rec { name = "autopep8-1.0.4"; From 4b58ebb35608de8c21c0ffd64fcdf924506dcc9c Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:46:22 +0100 Subject: [PATCH 141/175] beets: Switch to using fetchFromGitHub. The reason for doing this is because the package on PyPI is missing some files needed for running the test suite (for example: test/test_completion.sh). Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index c04a224c1c27..893bef7ea102 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -1,12 +1,15 @@ -{ stdenv, fetchurl, buildPythonPackage, pythonPackages, python }: +{ stdenv, fetchFromGitHub, buildPythonPackage, pythonPackages, python }: buildPythonPackage rec { - name = "beets-1.3.9"; + name = "beets-${version}"; + version = "1.3.9"; namePrefix = ""; - src = fetchurl { - url = "http://pypi.python.org/packages/source/b/beets/${name}.tar.gz"; - md5 = "0211b4abfe7887da22c1413e761fdcb4"; + src = fetchFromGitHub { + owner = "sampsyo"; + repo = "beets"; + rev = "v${version}"; + sha256 = "1srhkiyjqx6i3gn20ihf087l5pa77yh5b81ivc52lj491fda7xqk"; }; # tests depend on $HOME setting From 181f1395dda7eb8f00c80d488f3fabe8dc489a57 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 22:53:00 +0100 Subject: [PATCH 142/175] beets: Allow to configure plugin dependencies. This also fleshes out/fixes the unit tests, which I've used for gathering the individual requirements. Along various Python dependencies we now also have a build-time dependency on bashInteractive and a runtime dependency on bashCompletion, which is needed for command line completion to work correctly. However, some tests for the shell completion fail at the moment, so I've disabled them for now. The patch for fixing mediafile codec info is a modified version of sampsyo/beets@903e88a, where I just dropped the second hunk modifying the changelog. It is already merged to master and thus expected to be in the next upstream version. Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 120 +++++++++++++++--- .../audio/beets/mediafile-codec-fix.patch | 25 ++++ 2 files changed, 130 insertions(+), 15 deletions(-) create mode 100644 pkgs/tools/audio/beets/mediafile-codec-fix.patch diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index 893bef7ea102..d0a3a922f2bf 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -1,6 +1,63 @@ -{ stdenv, fetchFromGitHub, buildPythonPackage, pythonPackages, python }: +{ stdenv, fetchFromGitHub, writeScript +, buildPythonPackage, pythonPackages, python -buildPythonPackage rec { +, enableAcoustid ? true +, enableBeatport ? true +, enableDiscogs ? true +, enableEchonest ? true +, enableFetchart ? true +, enableLastfm ? true +, enableMpd ? true +, enableReplaygain ? true +, enableWeb ? true + +, bashInteractive, bashCompletion +}: + +assert enableAcoustid -> pythonPackages.pyacoustid != null; +assert enableBeatport -> pythonPackages.responses != null; +assert enableDiscogs -> pythonPackages.discogs_client != null; +assert enableEchonest -> pythonPackages.pyechonest != null; +assert enableFetchart -> pythonPackages.responses != null; +assert enableLastfm -> pythonPackages.pylast != null; +assert enableMpd -> pythonPackages.mpd != null; +assert enableReplaygain -> pythonPackages.audiotools != null; +assert enableWeb -> pythonPackages.flask != null; + +with stdenv.lib; + +let + optionalPlugins = { + beatport = enableBeatport; + chroma = enableAcoustid; + discogs = enableDiscogs; + echonest = enableEchonest; + echonest_tempo = enableEchonest; + fetchart = enableFetchart; + lastgenre = enableLastfm; + lastimport = enableLastfm; + mpdstats = enableMpd; + mpdupdate = enableMpd; + replaygain = enableReplaygain; + web = enableWeb; + }; + + pluginsWithoutDeps = [ + "bench" "bpd" "bpm" "bucket" "convert" "duplicates" "embedart" "freedesktop" + "fromfilename" "ftintitle" "fuzzy" "ihate" "importadded" "importfeeds" + "info" "inline" "keyfinder" "lyrics" "mbcollection" "mbsync" "missing" + "play" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the" "types" + "zero" + ]; + + enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins); + + allPlugins = pluginsWithoutDeps ++ attrNames optionalPlugins; + + testShell = "${bashInteractive}/bin/bash --norc"; + completion = "${bashCompletion}/share/bash-completion/bash_completion"; + +in buildPythonPackage rec { name = "beets-${version}"; version = "1.3.9"; namePrefix = ""; @@ -12,27 +69,60 @@ buildPythonPackage rec { sha256 = "1srhkiyjqx6i3gn20ihf087l5pa77yh5b81ivc52lj491fda7xqk"; }; - # tests depend on $HOME setting - preConfigure = "export HOME=$TMPDIR"; - propagatedBuildInputs = [ - pythonPackages.pyyaml - pythonPackages.unidecode - pythonPackages.mutagen + pythonPackages.enum34 pythonPackages.munkres pythonPackages.musicbrainzngs - pythonPackages.enum34 - pythonPackages.pylast - pythonPackages.rarfile - pythonPackages.flask + pythonPackages.mutagen + pythonPackages.pyyaml + pythonPackages.unidecode python.modules.sqlite3 python.modules.readline + ] ++ optional enableAcoustid pythonPackages.pyacoustid + ++ optional (enableBeatport || enableFetchart) pythonPackages.requests2 + ++ optional enableDiscogs pythonPackages.discogs_client + ++ optional enableEchonest pythonPackages.pyechonest + ++ optional enableLastfm pythonPackages.pylast + ++ optional enableMpd pythonPackages.mpd + ++ optional enableReplaygain pythonPackages.audiotools + ++ optional enableWeb pythonPackages.flask; + + buildInputs = with pythonPackages; [ + beautifulsoup4 + flask + mock + nose + pyechonest + pylast + rarfile + requests2 + responses ]; - buildInputs = with pythonPackages; [ mock pyechonest six responses nose ]; + patches = [ ./mediafile-codec-fix.patch ]; + + postPatch = '' + sed -i -e '/assertIn.*item.*path/d' test/test_info.py + echo echo completion tests passed > test/test_completion.sh + + sed -i -e '/^BASH_COMPLETION_PATHS *=/,/^])$/ { + /^])$/i u"${completion}" + }' beets/ui/commands.py + ''; + + doCheck = true; + + checkPhase = '' + runHook preCheck + + BEETS_TEST_SHELL="${testShell}" \ + BASH_COMPLETION_SCRIPT="${completion}" \ + HOME="$(mktemp -d)" \ + nosetests -v + + runHook postCheck + ''; - # 10 tests are failing - doCheck = false; meta = { homepage = http://beets.radbox.org; diff --git a/pkgs/tools/audio/beets/mediafile-codec-fix.patch b/pkgs/tools/audio/beets/mediafile-codec-fix.patch new file mode 100644 index 000000000000..7eaa5e19590e --- /dev/null +++ b/pkgs/tools/audio/beets/mediafile-codec-fix.patch @@ -0,0 +1,25 @@ +From 903e88a228d6bd93bd1884c59dd23dd9f04a1199 Mon Sep 17 00:00:00 2001 +From: Adrian Sampson +Date: Wed, 26 Nov 2014 19:04:40 -0800 +Subject: [PATCH] Fix codec reference in MediaFile (fix #1117) + +--- + beets/mediafile.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/beets/mediafile.py b/beets/mediafile.py +index ce42621..a459e09 100644 +--- a/beets/mediafile.py ++++ b/beets/mediafile.py +@@ -1340,8 +1340,9 @@ def __init__(self, path, id3v23=False): + raise FileTypeError(path) + elif (type(self.mgfile).__name__ == 'M4A' or + type(self.mgfile).__name__ == 'MP4'): +- if hasattr(self.mgfile.info, 'codec'): +- if self.mgfile.codec and self.mgfile.codec.startswith('alac'): ++ info = self.mgfile.info ++ if hasattr(info, 'codec'): ++ if info.codec and info.codec.startswith('alac'): + self.type = 'alac' + else: + self.type = 'aac' From 213d11158fa6da415d3360314793084f00d19cc9 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 23:06:28 +0100 Subject: [PATCH 143/175] beets: Use audiotools backend for replaygain. Using commands such as mp3gain and aacgain is only the default for backwards-compatible reasons. However, on Nix(OS), we would have to either patch those tools into beets or rely on an impurity, so let's depend on audiotools and also default to that backend. Of course, there is also a GStreamer backend, but it comes with a hell of additional dependencies (which not only cover audio files), which is why I decided against defaulting to GStreamer and package audiotools instead (in eecd932). Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 5 ++++- .../beets/replaygain-default-audiotools.patch | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 pkgs/tools/audio/beets/replaygain-default-audiotools.patch diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index d0a3a922f2bf..a052a994afda 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -99,7 +99,10 @@ in buildPythonPackage rec { responses ]; - patches = [ ./mediafile-codec-fix.patch ]; + patches = [ + ./mediafile-codec-fix.patch + ./replaygain-default-audiotools.patch + ]; postPatch = '' sed -i -e '/assertIn.*item.*path/d' test/test_info.py diff --git a/pkgs/tools/audio/beets/replaygain-default-audiotools.patch b/pkgs/tools/audio/beets/replaygain-default-audiotools.patch new file mode 100644 index 000000000000..d852ea6fecaa --- /dev/null +++ b/pkgs/tools/audio/beets/replaygain-default-audiotools.patch @@ -0,0 +1,17 @@ +diff --git a/beetsplug/replaygain.py b/beetsplug/replaygain.py +index 40b3a3a..9b54a5a 100644 +--- a/beetsplug/replaygain.py ++++ b/beetsplug/replaygain.py +@@ -627,11 +627,10 @@ class ReplayGainPlugin(BeetsPlugin): + super(ReplayGainPlugin, self).__init__() + self.import_stages = [self.imported] + +- # default backend is 'command' for backward-compatibility. + self.config.add({ + 'overwrite': False, + 'auto': True, +- 'backend': u'command', ++ 'backend': u'audiotools', + 'targetlevel': 89, + }) + From 7ae9c48254a963bb7c92c270ca3a4c756f9473d5 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 23:11:57 +0100 Subject: [PATCH 144/175] beets: Check plugin definitions against package. The reason for doing this is in order to not forget about possible dependencies in new upstream releases, so if upstream is introducing a new plugin where we're lacking dependencies, the build will fail on our side and we can check whether we'll need those. Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index a052a994afda..fa08f5980c3f 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -115,6 +115,23 @@ in buildPythonPackage rec { doCheck = true; + preCheck = '' + (${concatMapStrings (s: "echo \"${s}\";") allPlugins}) \ + | sort -u > plugins_defined + find beetsplug -mindepth 1 \ + \! -path 'beetsplug/__init__.py' -a \ + \( -name '*.py' -o -path 'beetsplug/*/__init__.py' \) -print \ + | sed -n -re 's|^beetsplug/([^/.]+).*|\1|p' \ + | sort -u > plugins_available + + if ! mismatches="$(diff -y plugins_defined plugins_available)"; then + echo "The the list of defined plugins (left side) doesn't match" \ + "the list of available plugins (right side):" >&2 + echo "$mismatches" >&2 + exit 1 + fi + ''; + checkPhase = '' runHook preCheck From 41e965ea48b82a5fc9c02ad36662db5abe936123 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 30 Dec 2014 23:13:56 +0100 Subject: [PATCH 145/175] beets: Check dependencies on activated plugins. Beets tries to load oll activated plugins on "beet config -e" (however only on the second run, thus the dummy), so we just pass all activated plugins into a generated config file and bail out on any errors. Signed-off-by: aszlig --- pkgs/tools/audio/beets/default.nix | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index fa08f5980c3f..7e14154eb201 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -53,6 +53,10 @@ let enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins); allPlugins = pluginsWithoutDeps ++ attrNames optionalPlugins; + allEnabledPlugins = pluginsWithoutDeps ++ enabledOptionalPlugins; + + # Discogs plugin wants to have an API token, so skip install checks. + allTestablePlugins = remove "discogs" allEnabledPlugins; testShell = "${bashInteractive}/bin/bash --norc"; completion = "${bashCompletion}/share/bash-completion/bash_completion"; @@ -143,6 +147,26 @@ in buildPythonPackage rec { runHook postCheck ''; + doInstallCheck = true; + + installCheckPhase = '' + runHook preInstallCheck + + tmphome="$(mktemp -d)" + + EDITOR="${writeScript "beetconfig.sh" '' + #!${stdenv.shell} + cat > "$1" < Date: Tue, 30 Dec 2014 23:42:14 +0100 Subject: [PATCH 146/175] nixos/release-notes: Fix typo in VirtualBox notes. Signed-off-by: aszlig --- nixos/doc/manual/release-notes/rl-1412.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index b809c877d93a..7bb8536aafee 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -131,7 +131,7 @@ rather than c-container-name.GNOME 3.10 support has been dropped. The default GNOME version is now 3.12. VirtualBox has been upgraded to 4.3.20 release. Users -may be required to run rm -rf /tmp.vbox*. The line +may be required to run rm -rf /tmp/.vbox*. The line imports = [ <nixpkgs/nixos/modules/programs/virtualbox.nix> ] is no longer necessary, use services.virtualboxHost.enable = true instead. From b3a534d3d23aa77ff6121e242100f7f8ff008e3b Mon Sep 17 00:00:00 2001 From: Benjamin Staffin Date: Tue, 30 Dec 2014 15:07:29 -0800 Subject: [PATCH 147/175] lib: Fix matchAttrs by importing builtins.length MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before: nix-repl> :l nix-repl> lib.matchAttrs { foo = "bar"; } { bar = "bas"; } error: undefined variable ‘length’ at "/home/benley/nix/nixpkgs/lib/attrsets.nix":317:10 After: nix-repl> :l nix-repl> lib.matchAttrs { foo = "bar"; } { bar = "bas"; } false Change-Id: I548d69d50cffe1c63a6f39f76fd09d1835d8d9a2 --- lib/attrsets.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/attrsets.nix b/lib/attrsets.nix index 3615328b1924..cb4091b916c5 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -1,7 +1,7 @@ # Operations on attribute sets. with { - inherit (builtins) head tail; + inherit (builtins) head tail length; inherit (import ./trivial.nix) or; inherit (import ./default.nix) fold; inherit (import ./strings.nix) concatStringsSep; From e0c810dd028c51ce6b308b3a45e3995284a14bea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 18 Dec 2014 19:02:22 +0100 Subject: [PATCH 148/175] nixos/doc release notes: mention intel GPU driver (cherry picked from commit 3865ab9e6901a529fbb480599c94f4a04d93c71d) --- nixos/doc/manual/release-notes/rl-1412.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index 7bb8536aafee..1a5c1d199c69 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -167,6 +167,9 @@ xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"/>. +The intel GPU driver was updated to 3-prerelease version (which most distros use), +and it supports DRI3 now. + From e5ea9a9c20efa0d690d80320d16b3407719704e8 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 31 Dec 2014 01:28:47 +0100 Subject: [PATCH 149/175] Tweak --- nixos/doc/manual/release-notes/rl-1412.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-1412.xml b/nixos/doc/manual/release-notes/rl-1412.xml index 1a5c1d199c69..7249317a0c74 100644 --- a/nixos/doc/manual/release-notes/rl-1412.xml +++ b/nixos/doc/manual/release-notes/rl-1412.xml @@ -11,8 +11,7 @@ Systemd has been updated to version 217, which has numerous -improvements -. +improvements. Nix has been updated to 1.8. @@ -167,8 +166,9 @@ xlink:href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"/>. -The intel GPU driver was updated to 3-prerelease version (which most distros use), -and it supports DRI3 now. +The Intel GPU driver was updated to the 3.x prerelease +version (used by most distributions) and supports DRI3 +now. From 209f2fa4464c4673d4755eed145ea6f152facbe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Wed, 31 Dec 2014 10:51:05 +0100 Subject: [PATCH 150/175] Fix gltron. Sinterklaas present for iElectric. (cherry picked from commit 013705113bb95f5e43b779c94c231f4f0f3b89fc) --- pkgs/games/gltron/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/games/gltron/default.nix b/pkgs/games/gltron/default.nix index ebdd95f70735..77d122b36117 100644 --- a/pkgs/games/gltron/default.nix +++ b/pkgs/games/gltron/default.nix @@ -9,6 +9,11 @@ stdenv.mkDerivation rec { patches = [ ./gentoo-prototypes.patch ]; + postPatch = '' + # Fix http://sourceforge.net/p/gltron/bugs/15 + sed -i /__USE_MISC/d lua/src/lib/liolib.c + ''; + # The build fails, unless we disable the default -Wall -Werror configureFlags = "--disable-warn"; @@ -20,6 +25,5 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.gpl2Plus; maintainers = with stdenv.lib.maintainers; [viric]; platforms = with stdenv.lib.platforms; linux; - broken = true; # see http://sourceforge.net/p/gltron/bugs/15 }; } From 3a13b70dd5886ac1ed4671d6fbfd981c219b5058 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 30 Dec 2014 13:22:13 +0100 Subject: [PATCH 151/175] alt-ergo: update from 0.95.2 to 0.99.1 --- pkgs/applications/science/logic/alt-ergo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix index ca1602d6e58e..3bbcda9de110 100644 --- a/pkgs/applications/science/logic/alt-ergo/default.nix +++ b/pkgs/applications/science/logic/alt-ergo/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "alt-ergo-${version}"; - version = "0.95.2"; + version = "0.99.1"; src = fetchurl { url = "http://alt-ergo.ocamlpro.com/download_manager.php?target=${name}.tar.gz"; name = "${name}.tar.gz"; - sha256 = "1b7f0rh3jgm67g0x2m3wv7gnnqmz9cjlrfm136z56ihlkhsd8v2s"; + sha256 = "0lnlf56ysisa45dxvbwzhl4fgyxyfz35psals2kv9x8gyq54zwpm"; }; buildInputs = with ocamlPackages; From c0fe8aa939cc9c148d9053aa9f435d04afb3703a Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 31 Dec 2014 12:21:55 +0100 Subject: [PATCH 152/175] ocaml-camlpdf: update from 1.7.2 to 2.1.1 --- pkgs/development/ocaml-modules/camlpdf/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix index 9c6bae89f689..9946366de01f 100644 --- a/pkgs/development/ocaml-modules/camlpdf/default.nix +++ b/pkgs/development/ocaml-modules/camlpdf/default.nix @@ -1,11 +1,12 @@ -{stdenv, fetchgit, ocaml, findlib, ncurses}: +{ stdenv, fetchgit, ocaml, findlib, ncurses }: -stdenv.mkDerivation { - name = "ocaml-camlpdf-1.7.2"; +stdenv.mkDerivation rec { + version = "2.1.1"; + name = "ocaml-camlpdf-${version}"; src = fetchgit { url = https://github.com/johnwhitington/camlpdf.git; - rev = "73ee0c4cc71e4d5f2f046d0b41d301e0df1d78d9"; - sha256 = "0n3jpkwbh0qi282hvsvgz0hv9lwwd8rqy3pwgmpqr0rmbim8wss5"; + rev = "refs/tags/v${version}"; + sha256 = "118656hc3zv5nwmbhr6llvb7q2pbxk2hz95bv8x4879a9qsnb4xr"; }; buildInputs = [ ocaml findlib ncurses ]; @@ -16,7 +17,7 @@ stdenv.mkDerivation { 3c3 < version="1.7.1" --- - > version="1.7.2" + > version="${version}" EOF ''; From 4fe7b8904e7b4935d40182eff590716c4b9cb3eb Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 20:49:47 +0300 Subject: [PATCH 153/175] libgphoto2: 2.5.5.1 -> 2.5.6 --- pkgs/development/libraries/libgphoto2/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix index 24017d6f1c4b..eef6ea1541f8 100644 --- a/pkgs/development/libraries/libgphoto2/default.nix +++ b/pkgs/development/libraries/libgphoto2/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/gphoto/${name}.tar.bz2"; - sha256 = "0ij80nixichihv3iic7cgdq3irssk8waz1c25m6yypjl4kg6n3k0"; + sha256 = "1ww6d6myir37fm6pk0n77kdx5hi13yaiymxcs9mf97amdyl58cgw"; }; nativeBuildInputs = [ pkgconfig gettext ]; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { MTP, and other vendor specific protocols for controlling and transferring data from digital cameras. ''; - version = "2.5.5.1"; + version = "2.5.6"; # XXX: the homepage claims LGPL, but several src files are lgpl21Plus license = stdenv.lib.licenses.lgpl21Plus; platforms = with stdenv.lib.platforms; unix; From 9c09984f5dfd11281451d20d49f395611318bef5 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 20:50:20 +0300 Subject: [PATCH 154/175] baresip: 0.4.11 -> 0.4.12 --- .../networking/instant-messengers/baresip/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix index ef414899aae0..e759b3f88060 100644 --- a/pkgs/applications/networking/instant-messengers/baresip/default.nix +++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix @@ -4,11 +4,11 @@ , gsm, speex, portaudio, spandsp, libuuid }: stdenv.mkDerivation rec { - version = "0.4.11"; + version = "0.4.12"; name = "baresip-${version}"; src=fetchurl { url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz"; - sha256 = "1ql5h9ily9jncp9w302v3b2ldx613kc60zlqv0v0ln8hsm8q6bc5"; + sha256 = "0f4jfpyvlgvq47yha3ys3kbrpd6c20yxaqki70hl6b91jbhmq9i2"; }; buildInputs = [zlib openssl libre librem pkgconfig cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good From 73d3b61089d1c6d5b3d2af441b9295a1321cd65b Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 20:53:58 +0300 Subject: [PATCH 155/175] Nginx unstable: 1.7.8 -> 1.7.9 --- pkgs/servers/http/nginx/unstable.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/http/nginx/unstable.nix b/pkgs/servers/http/nginx/unstable.nix index 009b091d15f1..e01b6ac25575 100644 --- a/pkgs/servers/http/nginx/unstable.nix +++ b/pkgs/servers/http/nginx/unstable.nix @@ -10,10 +10,10 @@ with stdenv.lib; let - version = "1.7.8"; + version = "1.7.9"; mainSrc = fetchurl { url = "http://nginx.org/download/nginx-${version}.tar.gz"; - sha256 = "1rg8c2z6df6flz5vz6k7iixm4f3d27svnncf810vilyk0b1mxxqj"; + sha256 = "12lg64jrdy8qc8fjdy4nr165h2nf854w295ssj3amp9hypqcgbqs"; }; rtmp-ext = fetchFromGitHub { From 23e432ea1ec44ed859a932cbd60c2ad52a44badc Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 21:20:39 +0300 Subject: [PATCH 156/175] fdm: 1.7 -> 1.8 --- pkgs/tools/networking/fdm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/fdm/default.nix b/pkgs/tools/networking/fdm/default.nix index 7a9e3fc0d1d9..4384405dddc8 100644 --- a/pkgs/tools/networking/fdm/default.nix +++ b/pkgs/tools/networking/fdm/default.nix @@ -5,10 +5,10 @@ let buildInputs = [ openssl tdb zlib flex bison ]; sourceInfo = rec { baseName="fdm"; - version = "1.7"; + version = "1.8"; name="${baseName}-${version}"; url="mirror://sourceforge/${baseName}/${baseName}/${name}.tar.gz"; - sha256 = "0apg1jasn4m5j3vh0v9lr2l3lyzy35av1ylxr0wf8k0j9w4p8i28"; + sha256 = "0hi39f31ipv8f9wxb41pajvl61w6vaapl39wq8v1kl9c7q6h0k2g"; }; in stdenv.mkDerivation { From 98c5e1370752f2c096ea90f5fe916c574edf4201 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 23:18:26 +0300 Subject: [PATCH 157/175] mdds: 0.11.1 -> 0.11.2 --- pkgs/development/libraries/mdds/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mdds/default.nix b/pkgs/development/libraries/mdds/default.nix index 25e1eb0c7269..8bf41584bdf5 100644 --- a/pkgs/development/libraries/mdds/default.nix +++ b/pkgs/development/libraries/mdds/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - version = "0.11.1"; + version = "0.11.2"; name = "mdds-${version}"; src = fetchurl { url = "http://kohei.us/files/mdds/src/mdds_${version}.tar.bz2"; - sha256 = "1xr74ss8vr67nmwxls4a54hgljwrc8fs485ablh0bxykf6dyr0j1"; + sha256 = "1ax50ahgl549gw76p8kbd5cb0kkihrn59638mppq4raxng40s2nd"; }; postInstall = '' From 8b9357d6bba192f4335527e1f1d427a52ef0ae45 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 23:18:46 +0300 Subject: [PATCH 158/175] librevenge: 0.0.1->0.0.2 --- pkgs/development/libraries/librevenge/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix index 8ddf026a1bc8..465b03b88fd1 100644 --- a/pkgs/development/libraries/librevenge/default.nix +++ b/pkgs/development/libraries/librevenge/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="librevenge"; - version="0.0.1"; + version="0.0.2"; name="${baseName}-${version}"; - hash="0zgfxvbqf11pypyc0vmcan73x197f7ia1ywin9qqy9hvvmrjgchc"; - url="mirror://sourceforge/project/libwpd/librevenge/librevenge-0.0.1/librevenge-0.0.1.tar.xz"; - sha256="0zgfxvbqf11pypyc0vmcan73x197f7ia1ywin9qqy9hvvmrjgchc"; + hash="03ygxyb0vfjv8raif5q62sl33b54wkr5rzgadb8slijm6k281wpn"; + url="mirror://sourceforge/project/libwpd/librevenge/librevenge-0.0.2/librevenge-0.0.2.tar.xz"; + sha256="03ygxyb0vfjv8raif5q62sl33b54wkr5rzgadb8slijm6k281wpn"; }; buildInputs = [ boost pkgconfig cppunit zlib From c40f4e620424ab4f68800341a35dcab0e04f5312 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 23:19:06 +0300 Subject: [PATCH 159/175] libmwaw: 0.3.3->0.3.4 --- pkgs/development/libraries/libmwaw/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/libmwaw/default.nix b/pkgs/development/libraries/libmwaw/default.nix index 7cb49dc3524b..b8582a76ed8e 100644 --- a/pkgs/development/libraries/libmwaw/default.nix +++ b/pkgs/development/libraries/libmwaw/default.nix @@ -3,11 +3,11 @@ let s = # Generated upstream information rec { baseName="libmwaw"; - version="0.3.3"; + version="0.3.4"; name="${baseName}-${version}"; - hash="0dqwrswqmdhbj7gxsivvnwnsly181x27a5zq9fpizk82cnx2s8ks"; - url="mirror://sourceforge/project/libmwaw/libmwaw/libmwaw-0.3.3/libmwaw-0.3.3.tar.xz"; - sha256="0dqwrswqmdhbj7gxsivvnwnsly181x27a5zq9fpizk82cnx2s8ks"; + hash="1sn95flxrh85qjsg1kk700c1ggxaaccr9j1nnw7x4daw8lky25ac"; + url="mirror://sourceforge/project/libmwaw/libmwaw/libmwaw-0.3.4/libmwaw-0.3.4.tar.xz"; + sha256="1sn95flxrh85qjsg1kk700c1ggxaaccr9j1nnw7x4daw8lky25ac"; }; buildInputs = [ boost pkgconfig cppunit zlib libwpg libwpd librevenge From 86b4010f6ccbe22953978b527692c51c57b5aa1a Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 31 Dec 2014 23:19:29 +0300 Subject: [PATCH 160/175] LibreOffice: 4.3.3.2->4.3.5.2 --- pkgs/applications/office/libreoffice/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 78eaa78ee10a..0a2c23ae5bd2 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -24,7 +24,7 @@ let langsSpaces = stdenv.lib.concatStringsSep " " langs; major = "4"; minor = "3"; - patch = "3"; + patch = "5"; tweak = "2"; subdir = "${major}.${minor}.${patch}"; version = "${subdir}${if tweak == "" then "" else "."}${tweak}"; @@ -80,14 +80,14 @@ let translations = fetchSrc { name = "translations"; - sha256 = "0jpkkb71fbiid12r2dpvak304hlvx4ws1bk2yrb3narz15wzcvjr"; + sha256 = "0xqvfmfab0hq3hcq76hs7ybv32i02lzl8xghilbjf12k1wgqy96c"; }; # TODO: dictionaries help = fetchSrc { name = "help"; - sha256 = "0vd4ndnqy7xjlxh9flfp84jy82bvaq80pxcsx6lsarxsb4cvw7sz"; + sha256 = "14kdhd9pjy0a7dkyx03a73m5iy3qr3ki2xqkinhml24f3n9qddbq"; }; }; @@ -97,7 +97,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; - sha256 = "0abmrn8iwwsbvi9dxq1pnirclxvfb33ngg7lpsj0y5lf0jpgpbb0"; + sha256 = "0dr6xzdnnyhhysayz1yhnmv0l3c14kpnlhwd5h66qyzkd4d85rkq"; }; # Openoffice will open libcups dynamically, so we link it directly From 59d88b3d3a0ae5c9dd28bd4b89688cdeeca2230f Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Thu, 1 Jan 2015 01:39:31 +0300 Subject: [PATCH 161/175] LibreOffice: install icons --- pkgs/applications/office/libreoffice/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 0a2c23ae5bd2..950d0c6ac497 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -180,6 +180,10 @@ stdenv.mkDerivation rec { substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=$out/bin/soffice" substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=$out/bin/soffice" done + + mkdir -p "$out/share/desktop" + cp -r sysui/desktop/icons "$out/share/desktop" + sed -re 's@Icon=libreofficedev[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop ''; configureFlags = [ From 8af48d942800fac47de3cc93724e1f881ef10ea4 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 1 Jan 2015 01:07:22 +0100 Subject: [PATCH 162/175] gdb: Fix manpages --- pkgs/development/tools/misc/gdb/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix index d9af1e3eb548..bc08a32ab1ff 100644 --- a/pkgs/development/tools/misc/gdb/default.nix +++ b/pkgs/development/tools/misc/gdb/default.nix @@ -1,5 +1,5 @@ { fetchurl, stdenv, ncurses, readline, gmp, mpfr, expat, texinfo -, dejagnu, python, pkgconfig, guile, target ? null +, dejagnu, python, perl, pkgconfig, guile, target ? null # Additional dependencies for GNU/Hurd. , mig ? null, hurd ? null @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { # I think python is not a native input, but I leave it # here while I will not need it cross building - nativeBuildInputs = [ texinfo python ] + nativeBuildInputs = [ texinfo python perl ] ++ stdenv.lib.optional isGNU mig; buildInputs = [ ncurses readline gmp mpfr expat pkgconfig guile ] From 307823a88a3e72b44ddee44079d17ddb67e75ae3 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 10:12:18 -0800 Subject: [PATCH 163/175] svrcore: Add derivation --- .../development/libraries/svrcore/default.nix | 20 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 pkgs/development/libraries/svrcore/default.nix diff --git a/pkgs/development/libraries/svrcore/default.nix b/pkgs/development/libraries/svrcore/default.nix new file mode 100644 index 000000000000..637b8b8ab7f5 --- /dev/null +++ b/pkgs/development/libraries/svrcore/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, nss, nspr }: + +stdenv.mkDerivation rec { + name = "svrcore-${version}"; + version = "4.0.4"; + + src = fetchurl { + url = "ftp://ftp.mozilla.org/pub/mozilla.org/directory/svrcore/releases/${version}/src/${name}.tar.bz2"; + sha256 = "0n3alg6bxml8952fb6h0bi0l29farvq21q6k20gy2ba90m3znwj7"; + }; + + buildInputs = [ pkgconfig nss nspr ]; + + meta = with stdenv.lib; { + description = "Secure PIN handling using NSS crypto"; + license = licenses.mpl11; + platforms = platforms.all; + maintainers = with maintainers; [ wkennington ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 354a1bf5df67..29a9ee39c288 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7002,6 +7002,8 @@ let sutils = callPackage ../tools/misc/sutils { }; + svrcore = callPackage ../development/libraries/svrcore { }; + sword = callPackage ../development/libraries/sword { }; szip = callPackage ../development/libraries/szip { }; From 9cf82f30df806578b0789895c7cb10313ca7290b Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 11:55:07 -0800 Subject: [PATCH 164/175] net_snmp: 5.7.2.1 -> 5.7.3 --- pkgs/servers/monitoring/net-snmp/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix index 9e3ebc3795d8..28ad58194387 100644 --- a/pkgs/servers/monitoring/net-snmp/default.nix +++ b/pkgs/servers/monitoring/net-snmp/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, autoreconfHook, file, openssl, perl, unzip }: stdenv.mkDerivation rec { - name = "net-snmp-5.7.2.1"; + name = "net-snmp-5.7.3"; src = fetchurl { url = "mirror://sourceforge/net-snmp/${name}.zip"; - sha256 = "1nj3b2x4fhsh82nra99128vqp2lfw5wx91ka8nqwzxvik59hb4dc"; + sha256 = "0gkss3zclm23zwpqfhddca8278id7pk6qx1mydpimdrrcndwgpz8"; }; preConfigure = @@ -31,9 +31,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = { + meta = with stdenv.lib; { description = "Clients and server for the SNMP network monitoring protocol"; homepage = http://net-snmp.sourceforge.net/; - license = "bsd"; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ wkennington ]; }; } From 89130335b0ddecb56c0231320a808d0d4b6dd0b5 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Dec 2014 09:30:15 -0800 Subject: [PATCH 165/175] 389-ds-base: Add derivation --- pkgs/servers/ldap/389/default.nix | 33 +++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/servers/ldap/389/default.nix diff --git a/pkgs/servers/ldap/389/default.nix b/pkgs/servers/ldap/389/default.nix new file mode 100644 index 000000000000..1c0b0cd00430 --- /dev/null +++ b/pkgs/servers/ldap/389/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, perl, pam, nspr, nss, openldap, db, cyrus_sasl +, svrcore, icu, net_snmp, krb5, pcre +}: + +stdenv.mkDerivation rec { + name = "389-ds-base-1.3.3.5"; + + src = fetchurl { + url = "http://directory.fedoraproject.org/binaries/${name}.tar.bz2"; + sha256 = "09w81salyr56njsvq9p96ijrrs0vwsczd43jf6384ylzj1jrxxl5"; + }; + + buildInputs = [ + pkgconfig perl pam nspr nss openldap db cyrus_sasl svrcore icu + net_snmp krb5 pcre + ]; + + configureFlags = [ + "--sysconfdir=/etc" + "--with-openldap=${openldap}" + "--with-db=${db}" + "--with-sasl=${cyrus_sasl}" + "--with-netsnmp=${net_snmp}" + ]; + + meta = with stdenv.lib; { + homepage = https://directory.fedoraproject.org/; + description = "enterprise-class Open Source LDAP server for Linux"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = with maintainers; [ wkennington ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 29a9ee39c288..1710557614fb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7534,6 +7534,8 @@ let ### SERVERS + "389-ds-base" = callPackage ../servers/ldap/389 { }; + rdf4store = callPackage ../servers/http/4store { }; apacheHttpd = pkgs.apacheHttpd_2_4; From de29c025c5a1adcdc8490538ae1838f0c5b7ff38 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Thu, 1 Jan 2015 00:07:49 -0800 Subject: [PATCH 166/175] kerberos: Disable on darwin --- pkgs/servers/openafs-client/default.nix | 6 ++++-- pkgs/top-level/all-packages.nix | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix index 9d9df2e38c0e..1d9bd52d9120 100644 --- a/pkgs/servers/openafs-client/default.nix +++ b/pkgs/servers/openafs-client/default.nix @@ -34,11 +34,13 @@ stdenv.mkDerivation { ./regen.sh - export KRB5_CONFIG=${kerberos}/bin/krb5-config + ${optionalString (kerberos != null) '' + export KRB5_CONFIG=${kerberos}/bin/krb5-config" + ''} configureFlagsArray=( "--with-linux-kernel-build=$TMP/linux" - "--with-krb5" + ${stdenv.lib.optionalString (kerberos != null) "--with-krb5"} "--sysconfdir=/etc/static" ) ''; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1710557614fb..1a297e485a4b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5531,7 +5531,8 @@ let hamlib = callPackage ../development/libraries/hamlib { }; # TODO : Add MIT Kerberos and let admin choose. - kerberos = heimdal; + # TODO : Fix kerberos on Darwin + kerberos = if stdenv.isDarwin then null else heimdal; heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { openldap = openldap.override { From 0c8bbaa11cbd0c3bd05c5b59ce6ba49f8b453204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 1 Jan 2015 10:07:35 +0100 Subject: [PATCH 167/175] handbrake: fix download URL --- pkgs/applications/video/handbrake/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix index 297da6738ee4..be10cc7744a5 100644 --- a/pkgs/applications/video/handbrake/default.nix +++ b/pkgs/applications/video/handbrake/default.nix @@ -52,8 +52,7 @@ stdenv.mkDerivation rec { src = fetchurl { - name = "HandBrake-${version}.tar.bz2"; - url = "http://handbrake.fr/rotation.php?file=HandBrake-${version}.tar.bz2"; + url = "http://download.handbrake.fr/releases/${version}/HandBrake-${version}.tar.bz2"; sha256 = "1crmm1c32vx60jfl2bqzg59q4qqx6m83b08snp7h1njc21sdf7d7"; }; From 7aef1f02aacdd77d985bc49eba314d14ca4c8d10 Mon Sep 17 00:00:00 2001 From: Raffael Mancini Date: Wed, 31 Dec 2014 18:31:42 +0100 Subject: [PATCH 168/175] ipopt: fix build after minor gcc update (close #5519) The configure script only checks for a specific version to enable a fix in finding cstdlib and cstring. --- pkgs/development/libraries/science/math/ipopt/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix index 3a22ecb73fca..6b82024409a2 100644 --- a/pkgs/development/libraries/science/math/ipopt/default.nix +++ b/pkgs/development/libraries/science/math/ipopt/default.nix @@ -9,6 +9,10 @@ stdenv.mkDerivation rec { sha256 = "0sji4spl5dhw1s3f9y0ym09gi7d1c8wldn6wbiap4q8dq7cvklq5"; }; + preConfigure = '' + export CXXDEFS="-DHAVE_RAND -DHAVE_CSTRING -DHAVE_CSTDIO" + ''; + nativeBuildInputs = [ unzip ]; buildInputs = [ gfortran blas liblapack ]; From 535ffc90dc5d23b3ca1efe71215d58afbdbf4468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 1 Jun 2014 23:03:36 +0200 Subject: [PATCH 169/175] eclipse: add webkit as dependency This makes the Eclipse internal web browser work. The internal web browser is the default browser, and Eclipse requires manual configuration for any other (external) web browser. To me this means the internal browser should be working by default, unless users will get an error popup if they click any links. This change increases the closure size from 714 to 880 MiB (attribute eclipses.eclipse_cpp_43). --- pkgs/applications/editors/eclipse/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix index 6073dc42c698..e04e438b8bad 100644 --- a/pkgs/applications/editors/eclipse/default.nix +++ b/pkgs/applications/editors/eclipse/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchurl, makeDesktopItem, makeWrapper , freetype, fontconfig, libX11, libXext, libXrender, zlib , glib, gtk, libXtst, jre +, webkitgtk2 ? null # for internal web browser }: assert stdenv ? glibc; @@ -44,7 +45,7 @@ let makeWrapper $out/eclipse/eclipse $out/bin/eclipse \ --prefix PATH : ${jre}/bin \ - --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib \ + --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib${stdenv.lib.optionalString (webkitgtk2 != null) ":${webkitgtk2}/lib"} \ --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration" # Create desktop item. From 3ee63790df7f98b0cd6ccc9cc635aa6a92203167 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Thu, 1 Jan 2015 16:41:03 +0300 Subject: [PATCH 170/175] Using the OpenJDK currency date patch for icedtea --- .../compilers/icedtea/currency-date-range.patch | 14 ++++++++++++++ pkgs/development/compilers/icedtea/default.nix | 1 + 2 files changed, 15 insertions(+) create mode 100644 pkgs/development/compilers/icedtea/currency-date-range.patch diff --git a/pkgs/development/compilers/icedtea/currency-date-range.patch b/pkgs/development/compilers/icedtea/currency-date-range.patch new file mode 100644 index 000000000000..b7a2486b12c4 --- /dev/null +++ b/pkgs/development/compilers/icedtea/currency-date-range.patch @@ -0,0 +1,14 @@ +diff -Naur openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java +--- openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java ++++ openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java 2014-12-30 10:15:50.327905933 -0430 +@@ -281,8 +281,8 @@ + checkCurrencyCode(newCurrency); + String timeString = currencyInfo.substring(4, length - 4); + long time = format.parse(timeString).getTime(); +- if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) { +- throw new RuntimeException("time is more than 10 years from present: " + time); ++ if (Math.abs(time - System.currentTimeMillis()) > ((long) 20) * 365 * 24 * 60 * 60 * 1000) { ++ throw new RuntimeException("time is more than 20 years from present: " + time); + } + specialCaseCutOverTimes[specialCaseCount] = time; + specialCaseOldCurrencies[specialCaseCount] = oldCurrency; diff --git a/pkgs/development/compilers/icedtea/default.nix b/pkgs/development/compilers/icedtea/default.nix index 81d30d503900..8f556c89fb46 100644 --- a/pkgs/development/compilers/icedtea/default.nix +++ b/pkgs/development/compilers/icedtea/default.nix @@ -80,6 +80,7 @@ with srcInfo; stdenv.mkDerivation { patch -p0 < ${./cppflags-include-fix.patch} patch -p0 < ${./fix-java-home.patch} + patch -p0 < ${./currency-date-range.patch} ''; NIX_NO_SELF_RPATH = true; From 6ff615b2979bb0d457f9f14cd587d923a5c344f1 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 1 Jan 2015 17:58:50 +0100 Subject: [PATCH 171/175] openafs-client: fix evaluation --- pkgs/servers/openafs-client/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix index 1d9bd52d9120..b5568e6a2ca3 100644 --- a/pkgs/servers/openafs-client/default.nix +++ b/pkgs/servers/openafs-client/default.nix @@ -34,7 +34,7 @@ stdenv.mkDerivation { ./regen.sh - ${optionalString (kerberos != null) '' + ${stdenv.lib.optionalString (kerberos != null) '' export KRB5_CONFIG=${kerberos}/bin/krb5-config" ''} From a6e39e8086d3a3067602d5212b37c392dab55877 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 1 Jan 2015 17:59:09 +0100 Subject: [PATCH 172/175] openafs-client: un-confuse Emacs syntax highlighting --- pkgs/servers/openafs-client/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix index b5568e6a2ca3..ca9c4b83071e 100644 --- a/pkgs/servers/openafs-client/default.nix +++ b/pkgs/servers/openafs-client/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation { buildInputs = [ autoconf automake flex yacc ncurses perl which ]; preConfigure = '' - ln -s ${kernel.dev}/lib/modules/*/build $TMP/linux + ln -s "${kernel.dev}/lib/modules/"*/build $TMP/linux patchShebangs . for i in `grep -l -R '/usr/\(include\|src\)' .`; do From dc381c49564418085a171fa2d1826d77033c95a7 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 1 Jan 2015 17:59:27 +0100 Subject: [PATCH 173/175] openafs-client: drop trailing whitespace --- pkgs/servers/openafs-client/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix index ca9c4b83071e..09c6468956f2 100644 --- a/pkgs/servers/openafs-client/default.nix +++ b/pkgs/servers/openafs-client/default.nix @@ -11,8 +11,8 @@ stdenv.mkDerivation { url = http://www.openafs.org/dl/openafs/1.6.9/openafs-1.6.9-src.tar.bz2; sha256 = "1isgw7znp10w0mr3sicnjzbc12bd1gdwfqqr667w6p3syyhs6bkv"; }; - - patches = [ + + patches = [ ./f3c0f74186f4a323ffc5f125d961fe384d396cac.patch ./ae86b07f827d6f3e2032a412f5f6cb3951a27d2d.patch ./I5558c64760e4cad2bd3dc648067d81020afc69b6.patch From f5f3c5b5f6067dc0f925cf6d8811d7a8b2500a65 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 1 Jan 2015 18:14:55 +0100 Subject: [PATCH 174/175] haskell-hask: mark broken http://hydra.cryp.to/build/298269/nixlog/1/raw --- pkgs/development/libraries/haskell/hask/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/libraries/haskell/hask/default.nix b/pkgs/development/libraries/haskell/hask/default.nix index 6a9796b596e6..3162a4fb7e4b 100644 --- a/pkgs/development/libraries/haskell/hask/default.nix +++ b/pkgs/development/libraries/haskell/hask/default.nix @@ -12,5 +12,6 @@ cabal.mkDerivation (self: { description = "Categories"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + broken = true; }; }) From 0a0965f2ac3e6adb4a7ebed57c2468ccc82bbbf4 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Thu, 1 Jan 2015 18:15:50 +0100 Subject: [PATCH 175/175] elm-reactor: mark broken http://hydra.cryp.to/build/297517/nixlog/2/raw --- pkgs/development/compilers/elm/elm-reactor.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/elm/elm-reactor.nix b/pkgs/development/compilers/elm/elm-reactor.nix index 280d09f96b44..3719e2b6f822 100644 --- a/pkgs/development/compilers/elm/elm-reactor.nix +++ b/pkgs/development/compilers/elm/elm-reactor.nix @@ -22,5 +22,6 @@ cabal.mkDerivation (self: { description = "Interactive development tool for Elm programs"; license = self.stdenv.lib.licenses.bsd3; platforms = self.ghc.meta.platforms; + broken = true; }; })