Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

Drop obsolete GHC versions 7.10.3, 8.0.2, and 8.4.3.

We keep the latest minor release of each one of the last 3 major releases,
which currently are GHC versions 8.2.2, 8.4.4, and 8.6.1. We also have
ghc-HEAD, but this doesn't count.

Dropping these compilers implied that we have to drop the corresponding
versions of ghcjs, too. We can also drop a shitload of obsolete compiler
patches that newer versions no longer need.

At some point, we can probably simplify the generic builder, too.

-2386
-194
pkgs/development/compilers/ghc/7.10.3.nix
··· 1 - { stdenv, targetPackages 2 - 3 - # build-tools 4 - , bootPkgs 5 - , coreutils, fetchurl, perl 6 - , docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42, libxml2, libxslt 7 - 8 - , libiconv ? null, ncurses 9 - 10 - , useLLVM ? !stdenv.targetPlatform.isx86 11 - , # LLVM is conceptually a run-time-only depedendency, but for 12 - # non-x86, we need LLVM to bootstrap later stages, so it becomes a 13 - # build-time dependency too. 14 - buildLlvmPackages, llvmPackages 15 - 16 - , # If enabled, GHC will be built with the GPL-free but slower integer-simple 17 - # library instead of the faster but GPLed integer-gmp library. 18 - enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp 19 - 20 - , # If enabled, use -fPIC when compiling static libs. 21 - enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform 22 - 23 - , # Whether to build dynamic libs for the standard library (on the target 24 - # platform). Static libs are always built. 25 - enableShared ? true 26 - 27 - , # What flavour to build. An empty string indicates no 28 - # specific flavour and falls back to ghc default values. 29 - ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross" 30 - }: 31 - 32 - let 33 - inherit (stdenv) buildPlatform hostPlatform targetPlatform; 34 - 35 - inherit (bootPkgs) ghc; 36 - 37 - # TODO(@Ericson2314) Make unconditional 38 - targetPrefix = stdenv.lib.optionalString 39 - (targetPlatform != hostPlatform) 40 - "${targetPlatform.config}-"; 41 - 42 - docFixes = fetchurl { 43 - url = "https://downloads.haskell.org/~ghc/7.10.3/ghc-7.10.3a.patch"; 44 - sha256 = "1j45z4kcd3w1rzm4hapap2xc16bbh942qnzzdbdjcwqznsccznf0"; 45 - }; 46 - 47 - buildMK = '' 48 - BuildFlavour = ${ghcFlavour} 49 - ifneq \"\$(BuildFlavour)\" \"\" 50 - include mk/flavours/\$(BuildFlavour).mk 51 - endif 52 - DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} 53 - '' + stdenv.lib.optionalString enableIntegerSimple '' 54 - INTEGER_LIBRARY = integer-simple 55 - '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' 56 - Stage1Only = YES 57 - HADDOCK_DOCS = NO 58 - '' + stdenv.lib.optionalString enableRelocatedStaticLibs '' 59 - GhcLibHcOpts += -fPIC 60 - GhcRtsHcOpts += -fPIC 61 - ''; 62 - 63 - # Splicer will pull out correct variations 64 - libDeps = platform: [ ncurses ] 65 - ++ stdenv.lib.optional (!enableIntegerSimple) gmp 66 - ++ stdenv.lib.optional (platform.libc != "glibc") libiconv; 67 - 68 - toolsForTarget = 69 - if hostPlatform == buildPlatform then 70 - [ targetPackages.stdenv.cc ] ++ stdenv.lib.optional useLLVM llvmPackages.llvm 71 - else assert targetPlatform == hostPlatform; # build != host == target 72 - [ stdenv.cc ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm; 73 - 74 - targetCC = builtins.head toolsForTarget; 75 - 76 - in 77 - stdenv.mkDerivation rec { 78 - version = "7.10.3"; 79 - name = "${targetPrefix}ghc-${version}"; 80 - 81 - src = fetchurl { 82 - url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-src.tar.xz"; 83 - sha256 = "1vsgmic8csczl62ciz51iv8nhrkm72lyhbz7p7id13y2w7fcx46g"; 84 - }; 85 - 86 - enableParallelBuilding = true; 87 - 88 - outputs = [ "out" "doc" ]; 89 - 90 - patches = [ 91 - docFixes 92 - ./relocation.patch 93 - ]; 94 - 95 - postPatch = "patchShebangs ."; 96 - 97 - # GHC is a bit confused on its cross terminology. 98 - preConfigure = '' 99 - for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do 100 - export "''${env#TARGET_}=''${!env}" 101 - done 102 - # GHC is a bit confused on its cross terminology, as these would normally be 103 - # the *host* tools. 104 - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" 105 - export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" 106 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld" 107 - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" 108 - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" 109 - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" 110 - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" 111 - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" 112 - export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" 113 - 114 - echo -n "${buildMK}" > mk/build.mk 115 - sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure 116 - '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' 117 - export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" 118 - '' + stdenv.lib.optionalString stdenv.isDarwin '' 119 - export NIX_LDFLAGS+=" -no_dtrace_dof" 120 - ''; 121 - 122 - # TODO(@Ericson2314): Always pass "--target" and always prefix. 123 - configurePlatforms = [ "build" "host" ] 124 - ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; 125 - # `--with` flags for libraries needed for RTS linker 126 - configureFlags = [ 127 - "--datadir=$doc/share/doc/ghc" 128 - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" 129 - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [ 130 - "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib" 131 - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [ 132 - "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" 133 - ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ 134 - "--enable-bootstrap-with-devel-snapshot" 135 - ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [ 136 - # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ 137 - "--disable-large-address-space" 138 - ]; 139 - 140 - # Make sure we never relax`$PATH` and hooks support for compatability. 141 - strictDeps = true; 142 - 143 - nativeBuildInputs = [ 144 - perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 145 - ghc bootPkgs.hscolour 146 - ]; 147 - 148 - # For building runtime libs 149 - depsBuildTarget = toolsForTarget; 150 - 151 - buildInputs = libDeps hostPlatform; 152 - 153 - propagatedBuildInputs = [ targetPackages.stdenv.cc ] 154 - ++ stdenv.lib.optional useLLVM llvmPackages.llvm; 155 - 156 - depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform); 157 - depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform); 158 - 159 - # required, because otherwise all symbols from HSffi.o are stripped, and 160 - # that in turn causes GHCi to abort 161 - stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; 162 - 163 - hardeningDisable = [ "format" ]; 164 - 165 - postInstall = '' 166 - # Install the bash completion file. 167 - install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc 168 - 169 - # Patch scripts to include "readelf" and "cat" in $PATH. 170 - for i in "$out/bin/"*; do 171 - test ! -h $i || continue 172 - egrep --quiet '^#!' <(head -n 1 $i) || continue 173 - sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i 174 - done 175 - ''; 176 - 177 - passthru = { 178 - inherit bootPkgs targetPrefix; 179 - 180 - inherit llvmPackages; 181 - inherit enableShared; 182 - 183 - # Our Cabal compiler name 184 - haskellCompilerName = "ghc-7.10.3"; 185 - }; 186 - 187 - meta = { 188 - homepage = http://haskell.org/ghc; 189 - description = "The Glasgow Haskell Compiler"; 190 - maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ]; 191 - inherit (ghc.meta) license platforms; 192 - }; 193 - 194 - }
-201
pkgs/development/compilers/ghc/8.0.2.nix
··· 1 - { stdenv, targetPackages 2 - 3 - # build-tools 4 - , bootPkgs 5 - , coreutils, fetchpatch, fetchurl, perl, sphinx 6 - 7 - , libiconv ? null, ncurses 8 - 9 - , useLLVM ? !stdenv.targetPlatform.isx86 10 - , # LLVM is conceptually a run-time-only depedendency, but for 11 - # non-x86, we need LLVM to bootstrap later stages, so it becomes a 12 - # build-time dependency too. 13 - buildLlvmPackages, llvmPackages 14 - 15 - , # If enabled, GHC will be built with the GPL-free but slower integer-simple 16 - # library instead of the faster but GPLed integer-gmp library. 17 - enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp 18 - 19 - , # If enabled, use -fPIC when compiling static libs. 20 - enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform 21 - 22 - , # Whether to build dynamic libs for the standard library (on the target 23 - # platform). Static libs are always built. 24 - enableShared ? true 25 - 26 - , # What flavour to build. An empty string indicates no 27 - # specific flavour and falls back to ghc default values. 28 - ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross" 29 - }: 30 - 31 - assert !enableIntegerSimple -> gmp != null; 32 - 33 - let 34 - inherit (stdenv) buildPlatform hostPlatform targetPlatform; 35 - 36 - inherit (bootPkgs) ghc; 37 - 38 - # TODO(@Ericson2314) Make unconditional 39 - targetPrefix = stdenv.lib.optionalString 40 - (targetPlatform != hostPlatform) 41 - "${targetPlatform.config}-"; 42 - 43 - buildMK = '' 44 - BuildFlavour = ${ghcFlavour} 45 - ifneq \"\$(BuildFlavour)\" \"\" 46 - include mk/flavours/\$(BuildFlavour).mk 47 - endif 48 - DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} 49 - INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"} 50 - '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' 51 - Stage1Only = YES 52 - HADDOCK_DOCS = NO 53 - '' + stdenv.lib.optionalString enableRelocatedStaticLibs '' 54 - GhcLibHcOpts += -fPIC 55 - GhcRtsHcOpts += -fPIC 56 - ''; 57 - 58 - # Splicer will pull out correct variations 59 - libDeps = platform: [ ncurses ] 60 - ++ stdenv.lib.optional (!enableIntegerSimple) gmp 61 - ++ stdenv.lib.optional (platform.libc != "glibc") libiconv; 62 - 63 - toolsForTarget = 64 - if hostPlatform == buildPlatform then 65 - [ targetPackages.stdenv.cc ] ++ stdenv.lib.optional useLLVM llvmPackages.llvm 66 - else assert targetPlatform == hostPlatform; # build != host == target 67 - [ stdenv.cc ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm; 68 - 69 - targetCC = builtins.head toolsForTarget; 70 - 71 - in 72 - stdenv.mkDerivation rec { 73 - version = "8.0.2"; 74 - name = "${targetPrefix}ghc-${version}"; 75 - 76 - src = fetchurl { 77 - url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-src.tar.xz"; 78 - sha256 = "1c8qc4fhkycynk4g1f9hvk53dj6a1vvqi6bklqznns6hw59m8qhi"; 79 - }; 80 - 81 - enableParallelBuilding = true; 82 - 83 - outputs = [ "out" "man" "doc" ]; 84 - 85 - patches = [ 86 - ./ghc-gold-linker.patch 87 - (fetchpatch { # Unreleased 1.24.x commit 88 - url = "https://github.com/haskell/cabal/commit/6394cb0b6eba91a8692a3d04b2b56935aed7cccd.patch"; 89 - sha256 = "14xxjg0nb1j1pw0riac3v385ka92qhxxblfmwyvbghz7kry6axy0"; 90 - stripLen = 1; 91 - extraPrefix = "libraries/Cabal/"; 92 - }) 93 - ] ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch 94 - ++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch 95 - ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch; 96 - 97 - postPatch = "patchShebangs ."; 98 - 99 - # GHC is a bit confused on its cross terminology. 100 - preConfigure = '' 101 - for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do 102 - export "''${env#TARGET_}=''${!env}" 103 - done 104 - # GHC is a bit confused on its cross terminology, as these would normally be 105 - # the *host* tools. 106 - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" 107 - export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" 108 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld" 109 - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" 110 - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" 111 - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" 112 - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" 113 - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" 114 - export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" 115 - 116 - echo -n "${buildMK}" > mk/build.mk 117 - sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure 118 - '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' 119 - export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" 120 - '' + stdenv.lib.optionalString stdenv.isDarwin '' 121 - export NIX_LDFLAGS+=" -no_dtrace_dof" 122 - ''; 123 - 124 - # TODO(@Ericson2314): Always pass "--target" and always prefix. 125 - configurePlatforms = [ "build" "host" ] 126 - ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; 127 - # `--with` flags for libraries needed for RTS linker 128 - configureFlags = [ 129 - "--datadir=$doc/share/doc/ghc" 130 - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" 131 - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [ 132 - "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib" 133 - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [ 134 - "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" 135 - ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ 136 - "--enable-bootstrap-with-devel-snapshot" 137 - ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [ 138 - # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ 139 - "--disable-large-address-space" 140 - ]; 141 - 142 - # Make sure we never relax`$PATH` and hooks support for compatability. 143 - strictDeps = true; 144 - 145 - nativeBuildInputs = [ 146 - perl sphinx 147 - ghc bootPkgs.hscolour 148 - ]; 149 - 150 - # For building runtime libs 151 - depsBuildTarget = toolsForTarget; 152 - 153 - buildInputs = libDeps hostPlatform; 154 - 155 - propagatedBuildInputs = [ targetPackages.stdenv.cc ] 156 - ++ stdenv.lib.optional useLLVM llvmPackages.llvm; 157 - 158 - depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform); 159 - depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform); 160 - 161 - # required, because otherwise all symbols from HSffi.o are stripped, and 162 - # that in turn causes GHCi to abort 163 - stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; 164 - 165 - hardeningDisable = [ "format" ]; 166 - 167 - postInstall = '' 168 - for bin in "$out"/lib/${name}/bin/*; do 169 - isELF "$bin" || continue 170 - paxmark m "$bin" 171 - done 172 - 173 - # Install the bash completion file. 174 - install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc 175 - 176 - # Patch scripts to include "readelf" and "cat" in $PATH. 177 - for i in "$out/bin/"*; do 178 - test ! -h $i || continue 179 - egrep --quiet '^#!' <(head -n 1 $i) || continue 180 - sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i 181 - done 182 - ''; 183 - 184 - passthru = { 185 - inherit bootPkgs targetPrefix; 186 - 187 - inherit llvmPackages; 188 - inherit enableShared; 189 - 190 - # Our Cabal compiler name 191 - haskellCompilerName = "ghc-8.0.2"; 192 - }; 193 - 194 - meta = { 195 - homepage = http://haskell.org/ghc; 196 - description = "The Glasgow Haskell Compiler"; 197 - maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ]; 198 - inherit (ghc.meta) license platforms; 199 - }; 200 - 201 - }
-247
pkgs/development/compilers/ghc/8.4.3.nix
··· 1 - { stdenv, targetPackages 2 - 3 - # build-tools 4 - , bootPkgs 5 - , autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4 6 - 7 - , libiconv ? null, ncurses 8 - 9 - , useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) 10 - , # LLVM is conceptually a run-time-only depedendency, but for 11 - # non-x86, we need LLVM to bootstrap later stages, so it becomes a 12 - # build-time dependency too. 13 - buildLlvmPackages, llvmPackages 14 - 15 - , # If enabled, GHC will be built with the GPL-free but slower integer-simple 16 - # library instead of the faster but GPLed integer-gmp library. 17 - enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp 18 - 19 - , # If enabled, use -fPIC when compiling static libs. 20 - enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform 21 - 22 - , # Whether to build dynamic libs for the standard library (on the target 23 - # platform). Static libs are always built. 24 - enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt 25 - 26 - , # Whetherto build terminfo. 27 - enableTerminfo ? !stdenv.targetPlatform.isWindows 28 - 29 - , # What flavour to build. An empty string indicates no 30 - # specific flavour and falls back to ghc default values. 31 - ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross" 32 - , # Whether to backport https://phabricator.haskell.org/D4388 for 33 - # deterministic profiling symbol names, at the cost of a slightly 34 - # non-standard GHC API 35 - deterministicProfiling ? false 36 - }: 37 - 38 - assert !enableIntegerSimple -> gmp != null; 39 - 40 - let 41 - inherit (stdenv) buildPlatform hostPlatform targetPlatform; 42 - 43 - inherit (bootPkgs) ghc; 44 - 45 - # TODO(@Ericson2314) Make unconditional 46 - targetPrefix = stdenv.lib.optionalString 47 - (targetPlatform != hostPlatform) 48 - "${targetPlatform.config}-"; 49 - 50 - buildMK = '' 51 - BuildFlavour = ${ghcFlavour} 52 - ifneq \"\$(BuildFlavour)\" \"\" 53 - include mk/flavours/\$(BuildFlavour).mk 54 - endif 55 - DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} 56 - INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"} 57 - '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' 58 - Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} 59 - CrossCompilePrefix = ${targetPrefix} 60 - HADDOCK_DOCS = NO 61 - BUILD_SPHINX_HTML = NO 62 - BUILD_SPHINX_PDF = NO 63 - '' + stdenv.lib.optionalString enableRelocatedStaticLibs '' 64 - GhcLibHcOpts += -fPIC 65 - GhcRtsHcOpts += -fPIC 66 - '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' 67 - EXTRA_CC_OPTS += -std=gnu99 68 - ''; 69 - 70 - # Splicer will pull out correct variations 71 - libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] 72 - ++ stdenv.lib.optional (!enableIntegerSimple) gmp 73 - ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; 74 - 75 - toolsForTarget = 76 - if hostPlatform == buildPlatform then 77 - [ targetPackages.stdenv.cc ] ++ stdenv.lib.optional useLLVM llvmPackages.llvm 78 - else assert targetPlatform == hostPlatform; # build != host == target 79 - [ stdenv.cc ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm; 80 - 81 - targetCC = builtins.head toolsForTarget; 82 - 83 - in 84 - stdenv.mkDerivation (rec { 85 - version = "8.4.3"; 86 - name = "${targetPrefix}ghc-${version}"; 87 - 88 - src = fetchurl { 89 - url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-src.tar.xz"; 90 - sha256 = "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf"; 91 - }; 92 - 93 - enableParallelBuilding = true; 94 - 95 - outputs = [ "out" "doc" ]; 96 - 97 - patches = [(fetchpatch { 98 - url = "https://git.haskell.org/hsc2hs.git/patch/738f3666c878ee9e79c3d5e819ef8b3460288edf"; 99 - sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3"; 100 - extraPrefix = "utils/hsc2hs/"; 101 - stripLen = 1; 102 - }) (fetchpatch rec { # https://phabricator.haskell.org/D5123 103 - url = "http://tarballs.nixos.org/sha256/${sha256}"; 104 - name = "D5123.diff"; 105 - sha256 = "0nhqwdamf2y4gbwqxcgjxs0kqx23w9gv5kj0zv6450dq19rji82n"; 106 - })] ++ stdenv.lib.optional deterministicProfiling 107 - (fetchpatch rec { 108 - url = "http://tarballs.nixos.org/sha256/${sha256}"; 109 - name = "D4388.diff"; 110 - sha256 = "0w6sdcvnqjlnlzpvnzw20b80v150ijjyjvs9548ildc1928j0w7s"; 111 - }) 112 - ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch; 113 - 114 - postPatch = "patchShebangs ."; 115 - 116 - # GHC is a bit confused on its cross terminology. 117 - preConfigure = '' 118 - for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do 119 - export "''${env#TARGET_}=''${!env}" 120 - done 121 - # GHC is a bit confused on its cross terminology, as these would normally be 122 - # the *host* tools. 123 - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" 124 - export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" 125 - # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 126 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}" 127 - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" 128 - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" 129 - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" 130 - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" 131 - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" 132 - export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" 133 - 134 - echo -n "${buildMK}" > mk/build.mk 135 - sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure 136 - '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' 137 - export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" 138 - '' + stdenv.lib.optionalString stdenv.isDarwin '' 139 - export NIX_LDFLAGS+=" -no_dtrace_dof" 140 - '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' 141 - sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets 142 - '' + stdenv.lib.optionalString targetPlatform.isMusl '' 143 - echo "patching llvm-targets for musl targets..." 144 - echo "Cloning these existing '*-linux-gnu*' targets:" 145 - grep linux-gnu llvm-targets | sed 's/^/ /' 146 - echo "(go go gadget sed)" 147 - sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets 148 - echo "llvm-targets now contains these '*-linux-musl*' targets:" 149 - grep linux-musl llvm-targets | sed 's/^/ /' 150 - 151 - echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" 152 - # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) 153 - for x in configure aclocal.m4; do 154 - substituteInPlace $x \ 155 - --replace '*-android*|*-gnueabi*)' \ 156 - '*-android*|*-gnueabi*|*-musleabi*)' 157 - done 158 - ''; 159 - 160 - # TODO(@Ericson2314): Always pass "--target" and always prefix. 161 - configurePlatforms = [ "build" "host" ] 162 - ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; 163 - # `--with` flags for libraries needed for RTS linker 164 - configureFlags = [ 165 - "--datadir=$doc/share/doc/ghc" 166 - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" 167 - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [ 168 - "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib" 169 - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ 170 - "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" 171 - ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ 172 - "--enable-bootstrap-with-devel-snapshot" 173 - ] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [ 174 - "CFLAGS=-fuse-ld=gold" 175 - "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" 176 - "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" 177 - ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [ 178 - # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ 179 - "--disable-large-address-space" 180 - ]; 181 - 182 - # Make sure we never relax`$PATH` and hooks support for compatability. 183 - strictDeps = true; 184 - 185 - nativeBuildInputs = [ 186 - perl autoconf automake m4 python3 187 - ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour 188 - ]; 189 - 190 - # For building runtime libs 191 - depsBuildTarget = toolsForTarget; 192 - 193 - buildInputs = libDeps hostPlatform; 194 - 195 - propagatedBuildInputs = [ targetPackages.stdenv.cc ] 196 - ++ stdenv.lib.optional useLLVM llvmPackages.llvm; 197 - 198 - depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform); 199 - depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform); 200 - 201 - # required, because otherwise all symbols from HSffi.o are stripped, and 202 - # that in turn causes GHCi to abort 203 - stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; 204 - 205 - checkTarget = "test"; 206 - 207 - hardeningDisable = [ "format" ]; 208 - 209 - postInstall = '' 210 - for bin in "$out"/lib/${name}/bin/*; do 211 - isELF "$bin" || continue 212 - paxmark m "$bin" 213 - done 214 - 215 - # Install the bash completion file. 216 - install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc 217 - 218 - # Patch scripts to include "readelf" and "cat" in $PATH. 219 - for i in "$out/bin/"*; do 220 - test ! -h $i || continue 221 - egrep --quiet '^#!' <(head -n 1 $i) || continue 222 - sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i 223 - done 224 - ''; 225 - 226 - passthru = { 227 - inherit bootPkgs targetPrefix; 228 - 229 - inherit llvmPackages; 230 - inherit enableShared; 231 - 232 - # Our Cabal compiler name 233 - haskellCompilerName = "ghc-8.4.3"; 234 - }; 235 - 236 - meta = { 237 - homepage = http://haskell.org/ghc; 238 - description = "The Glasgow Haskell Compiler"; 239 - maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ]; 240 - inherit (ghc.meta) license platforms; 241 - }; 242 - 243 - } // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt { 244 - dontStrip = true; 245 - dontPatchELF = true; 246 - noAuditTmpdir = true; 247 - })
-23
pkgs/development/compilers/ghc/ghc-8.0.2-no-cpp-warnings.patch
··· 1 - --- b/includes/rts/storage/ClosureMacros.h 2017-05-21 12:54:09.000000000 +0200 2 - +++ a/includes/rts/storage/ClosureMacros.h 2017-05-21 12:55:57.000000000 +0200 3 - @@ -499,8 +499,17 @@ 4 - 5 - -------------------------------------------------------------------------- */ 6 - 7 - -#define ZERO_SLOP_FOR_LDV_PROF (defined(PROFILING)) 8 - -#define ZERO_SLOP_FOR_SANITY_CHECK (defined(DEBUG) && !defined(THREADED_RTS)) 9 - +#if defined(PROFILING) 10 - +#define ZERO_SLOP_FOR_LDV_PROF 1 11 - +#else 12 - +#define ZERO_SLOP_FOR_LDV_PROF 0 13 - +#endif 14 - + 15 - +#if defined(DEBUG) && !defined(THREADED_RTS) 16 - +#define ZERO_SLOP_FOR_SANITY_CHECK 1 17 - +#else 18 - +#define ZERO_SLOP_FOR_SANITY_CHECK 0 19 - +#endif 20 - 21 - #if ZERO_SLOP_FOR_LDV_PROF || ZERO_SLOP_FOR_SANITY_CHECK 22 - #define OVERWRITING_CLOSURE(c) overwritingClosure(c) 23 -
-54
pkgs/development/compilers/ghc/ghc-gold-linker.patch
··· 1 - From 46fe80ab7c0013a929d0934e61429820042a70a9 Mon Sep 17 00:00:00 2001 2 - From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me> 3 - Date: Fri, 21 Jul 2017 20:09:11 +0200 4 - Subject: [PATCH 1/2] base: Add `extra-libraries: m` because base uses libm 5 - functions. 6 - 7 - Linking with gold needs this because in contrast to ld, gold 8 - doesn't implicitly link libm. 9 - 10 - Found by Michael Bishop <cleverca22@gmail.com>. 11 - --- 12 - libraries/base/base.cabal | 4 ++++ 13 - 1 file changed, 4 insertions(+) 14 - 15 - diff --git a/libraries/base/base.cabal b/libraries/base/base.cabal 16 - index f00fb8768e5..fd91f268ffe 100644 17 - --- a/libraries/base/base.cabal 18 - +++ b/libraries/base/base.cabal 19 - @@ -342,6 +342,10 @@ Library 20 - WCsubst.h 21 - consUtils.h 22 - 23 - + -- Base uses libm functions. ld.bfd links libm implicitly when necessary. 24 - + -- Other linkers, like gold, don't, so we have to declare it explicitly. 25 - + extra-libraries: m 26 - + 27 - -- OS Specific 28 - if os(windows) 29 - -- Windows requires some extra libraries for linking because the RTS 30 - 31 - From 900a8f4931e9bc6d3219d9263cfecfc6af8fc766 Mon Sep 17 00:00:00 2001 32 - From: michael bishop <cleverca22@gmail.com> 33 - Date: Sat, 22 Jul 2017 13:12:39 -0300 34 - Subject: [PATCH 2/2] also add -lm to ghc-prim 35 - 36 - --- 37 - libraries/ghc-prim/ghc-prim.cabal | 4 ++++ 38 - 1 file changed, 4 insertions(+) 39 - 40 - diff --git a/libraries/ghc-prim/ghc-prim.cabal b/libraries/ghc-prim/ghc-prim.cabal 41 - index 00a029efedf..6db85dd69fc 100644 42 - --- a/libraries/ghc-prim/ghc-prim.cabal 43 - +++ b/libraries/ghc-prim/ghc-prim.cabal 44 - @@ -42,6 +42,10 @@ Library 45 - UnliftedFFITypes 46 - 47 - build-depends: rts == 1.0.* 48 - + 49 - + -- Base uses libm functions. ld.bfd links libm implicitly when necessary. 50 - + -- Other linkers, like gold, don't, so we have to declare it explicitly. 51 - + extra-libraries: m 52 - 53 - exposed-modules: 54 - GHC.CString
-18
pkgs/development/compilers/ghc/ghc-no-madv-free.patch
··· 1 - diff --git a/rts/posix/OSMem.c b/rts/posix/OSMem.c 2 - index 99620ee..e052a84 100644 3 - --- a/rts/posix/OSMem.c 4 - +++ b/rts/posix/OSMem.c 5 - @@ -523,13 +523,7 @@ void osDecommitMemory(void *at, W_ size) 6 - sysErrorBelch("unable to make released memory unaccessible"); 7 - #endif 8 - 9 - -#ifdef MADV_FREE 10 - - // Try MADV_FREE first, FreeBSD has both and MADV_DONTNEED 11 - - // just swaps memory out 12 - - r = madvise(at, size, MADV_FREE); 13 - -#else 14 - r = madvise(at, size, MADV_DONTNEED); 15 - -#endif 16 - if(r < 0) 17 - sysErrorBelch("unable to decommit memory"); 18 - }
-27
pkgs/development/compilers/ghc/relocation.patch
··· 1 - Adding support for the R_X86_64_REX_GOTPCRELX relocation type. 2 - This relocation is treated by the linker the same as the R_X86_64_GOTPCRELX type 3 - G + GOT + A - P to generate relative offsets to the GOT. 4 - The REX prefix has no influence in this stage. 5 - 6 - This caused breakage when enabling relro/bindnow hardening e.g. in ghcPaclages.vector 7 - 8 - Source: https://phabricator.haskell.org/D2303#67070 9 - diff --git a/rts/Linker.c b/rts/Linker.c 10 - --- a/rts/Linker.c 11 - +++ b/rts/Linker.c 12 - @@ -5681,7 +5681,13 @@ 13 - *(Elf64_Sword *)P = (Elf64_Sword)value; 14 - #endif 15 - break; 16 - - 17 - +/* These two relocations were introduced in glibc 2.23 and binutils 2.26. 18 - + But in order to use them the system which compiles the bindist for GHC needs 19 - + to have glibc >= 2.23. So only use them if they're defined. */ 20 - +#if defined(R_X86_64_REX_GOTPCRELX) && defined(R_X86_64_GOTPCRELX) 21 - + case R_X86_64_REX_GOTPCRELX: 22 - + case R_X86_64_GOTPCRELX: 23 - +#endif 24 - case R_X86_64_GOTPCREL: 25 - { 26 - StgInt64 gotAddress = (StgInt64) &makeSymbolExtra(oc, ELF_R_SYM(info), S)->addr; 27 -
-104
pkgs/development/compilers/ghcjs/7.10/boot.patch
··· 1 - diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs 2 - index db8b12e..7b815c5 100644 3 - --- a/src-bin/Boot.hs 4 - +++ b/src-bin/Boot.hs 5 - @@ -540,9 +540,7 @@ initPackageDB :: B () 6 - initPackageDB = do 7 - msg info "creating package databases" 8 - initDB "--global" <^> beLocations . blGlobalDB 9 - - traverseOf_ _Just initUser <^> beLocations . blUserDBDir 10 - where 11 - - initUser dir = rm_f (dir </> "package.conf") >> initDB "--user" (dir </> "package.conf.d") 12 - initDB dbName db = do 13 - rm_rf db >> mkdir_p db 14 - ghcjs_pkg_ ["init", toTextI db] `catchAny_` return () 15 - @@ -566,29 +564,22 @@ installDevelopmentTree = subTop $ do 16 - msgD info $ "preparing development boot tree" 17 - checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do 18 - testGit "ghcjs-boot" >>= \case 19 - - Just False -> failWith "ghcjs-boot already exists and is not a git repository" 20 - - Just True -> do 21 - - msg info "ghcjs-boot repository already exists but checkpoint not reached, cleaning first, then cloning" 22 - - rm_rf "ghcjs-boot" 23 - + Just _ -> do 24 - + msg info "ghcjs-boot repository already exists; initializing ghcjs-boot" 25 - initGhcjsBoot 26 - Nothing -> do 27 - msgD info "cloning ghcjs-boot git repository" 28 - initGhcjsBoot 29 - checkpoint' "shims-git" "shims repository already cloned" $ do 30 - testGit "shims" >>= \case 31 - - Just False -> failWith "shims already exists and is not a git repository" 32 - - Just True -> do 33 - - msgD info "shims repository already exists but checkpoint not reached, cleaning first, then cloning" 34 - - rm_rf "shims" 35 - - cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev 36 - + Just _ -> do 37 - + msgD info "shims repository already exists; moving on" 38 - Nothing -> do 39 - msgD info "cloning shims git repository" 40 - cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev 41 - where 42 - initGhcjsBoot = sub $ do 43 - - cloneGit bootDescr "ghcjs-boot" bsrcBootDevBranch bsrcBootDev 44 - cd "ghcjs-boot" 45 - - git_ ["submodule", "update", "--init", "--recursive"] 46 - mapM_ patchPackage =<< allPackages 47 - preparePrimops 48 - buildGenPrim 49 - @@ -1141,7 +1132,7 @@ cabalStage1 pkgs = sub $ do 50 - globalFlags <- cabalGlobalFlags 51 - flags <- cabalInstallFlags (length pkgs == 1) 52 - let args = globalFlags ++ ("install" : pkgs) ++ 53 - - [ "--solver=topdown" -- the modular solver refuses to install stage1 packages 54 - + [ "--allow-boot-library-installs" 55 - ] ++ map ("--configure-option="<>) configureOpts ++ flags 56 - checkInstallPlan pkgs args 57 - cabal_ args 58 - @@ -1162,7 +1153,7 @@ cabalInstall pkgs = do 59 - -- uses somewhat fragile parsing of --dry-run output, find a better way 60 - checkInstallPlan :: [Package] -> [Text] -> B () 61 - checkInstallPlan pkgs opts = do 62 - - plan <- cabal (opts ++ ["-v2", "--dry-run"]) 63 - + plan <- cabal (opts ++ ["-vverbose+nowrap", "--dry-run"]) 64 - when (hasReinstalls plan || hasUnexpectedInstalls plan || hasNewVersion plan) (err plan) 65 - where 66 - hasReinstalls = T.isInfixOf "(reinstall)" -- reject reinstalls 67 - @@ -1201,14 +1192,14 @@ cabalInstallFlags parmakeGhcjs = do 68 - , "--avoid-reinstalls" 69 - , "--builddir", "dist" 70 - , "--with-compiler", ghcjs ^. pgmLocText 71 - + , "--with-gcc", "@CC@" 72 - , "--with-hc-pkg", ghcjsPkg ^. pgmLocText 73 - - , "--prefix", toTextI instDir 74 - + , "--prefix", "@PREFIX@" 75 - + , "--libdir", "$prefix/lib/$compiler" 76 - + , "--libsubdir", "$pkgid" 77 - , bool haddock "--enable-documentation" "--disable-documentation" 78 - , "--haddock-html" 79 - --- workaround for hoogle support being broken in haddock for GHC 7.10RC1 80 - -#if !(__GLASGOW_HASKELL__ >= 709) 81 - , "--haddock-hoogle" 82 - -#endif 83 - , "--haddock-hyperlink-source" 84 - -- don't slow down Windows builds too much, on other platforms we get this more 85 - -- or less for free, thanks to dynamic-too 86 - diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs 87 - index 33a401f..e2405a7 100644 88 - --- a/src/Compiler/Info.hs 89 - +++ b/src/Compiler/Info.hs 90 - @@ -48,13 +48,7 @@ compilerInfo nativeToo dflags = do 91 - 92 - -- | the directory to use if started without -B flag 93 - getDefaultTopDir :: IO FilePath 94 - -getDefaultTopDir = do 95 - - appdir <- getAppUserDataDirectory "ghcjs" 96 - - return (appdir </> subdir </> "ghcjs") 97 - - where 98 - - targetARCH = arch 99 - - targetOS = os 100 - - subdir = targetARCH ++ '-':targetOS ++ '-':getFullCompilerVersion 101 - +getDefaultTopDir = return "@PREFIX@/lib/ghcjs-@VERSION@" 102 - 103 - getDefaultLibDir :: IO FilePath 104 - getDefaultLibDir = getDefaultTopDir
-50
pkgs/development/compilers/ghcjs/7.10/default.nix
··· 1 - { fetchgit, fetchFromGitHub, bootPkgs, cabal-install }: 2 - 3 - bootPkgs.callPackage ../base.nix { 4 - version = "0.2.0"; 5 - 6 - inherit bootPkgs cabal-install; 7 - 8 - ghcjsSrc = fetchFromGitHub { 9 - owner = "ghcjs"; 10 - repo = "ghcjs"; 11 - rev = "689c7753f50353dd05606ed79c51cd5a94d3922a"; 12 - sha256 = "076020a9gjv8ldj5ckm43sbzq9s6c5xj6lpd8v28ybpiama3m6b4"; 13 - }; 14 - ghcjsBootSrc = fetchgit { 15 - url = git://github.com/ghcjs/ghcjs-boot.git; 16 - rev = "8c549931da27ba9e607f77195208ec156c840c8a"; 17 - sha256 = "0yg9bnabja39qysh9pg1335qbvbc0r2mdw6cky94p7kavacndfdv"; 18 - fetchSubmodules = true; 19 - }; 20 - 21 - shims = import ./shims.nix { inherit fetchFromGitHub; }; 22 - stage1Packages = [ 23 - "array" 24 - "base" 25 - "binary" 26 - "bytestring" 27 - "containers" 28 - "deepseq" 29 - "directory" 30 - "filepath" 31 - "ghc-boot" 32 - "ghc-boot-th" 33 - "ghc-prim" 34 - "ghci" 35 - "ghcjs-prim" 36 - "ghcjs-th" 37 - "integer-gmp" 38 - "pretty" 39 - "primitive" 40 - "process" 41 - "rts" 42 - "template-haskell" 43 - "time" 44 - "transformers" 45 - "unix" 46 - ]; 47 - stage2 = import ./stage2.nix; 48 - 49 - patches = [ ./boot.patch ]; 50 - }
-7
pkgs/development/compilers/ghcjs/7.10/shims.nix
··· 1 - { fetchFromGitHub }: 2 - fetchFromGitHub { 3 - owner = "ghcjs"; 4 - repo = "shims"; 5 - rev = "b97015229c58eeab7c1d0bb575794b14a9f6efca"; 6 - sha256 = "1p5adkqvmb1gsv9hnn3if0rdpnaq3v9a1zkfdy282yw05jaaaggz"; 7 - }
-344
pkgs/development/compilers/ghcjs/7.10/stage2.nix
··· 1 - { ghcjsBoot }: { callPackage }: 2 - 3 - { 4 - async = callPackage 5 - ({ mkDerivation, base, HUnit, stdenv, stm, test-framework 6 - , test-framework-hunit 7 - }: 8 - mkDerivation { 9 - pname = "async"; 10 - version = "2.0.1.6"; 11 - src = "${ghcjsBoot}/boot/async"; 12 - doCheck = false; 13 - libraryHaskellDepends = [ base stm ]; 14 - testHaskellDepends = [ 15 - base HUnit test-framework test-framework-hunit 16 - ]; 17 - jailbreak = true; 18 - homepage = https://github.com/simonmar/async; 19 - description = "Run IO operations asynchronously and wait for their results"; 20 - license = stdenv.lib.licenses.bsd3; 21 - }) {}; 22 - aeson = callPackage 23 - ({ mkDerivation, attoparsec, base, bytestring, containers, deepseq 24 - , dlist, ghc-prim, hashable, HUnit, mtl, QuickCheck, scientific 25 - , stdenv, syb, template-haskell, test-framework 26 - , test-framework-hunit, test-framework-quickcheck2, text, time 27 - , transformers, unordered-containers, vector 28 - }: 29 - mkDerivation { 30 - pname = "aeson"; 31 - version = "0.9.0.1"; 32 - src = "${ghcjsBoot}/boot/aeson"; 33 - doCheck = false; 34 - libraryHaskellDepends = [ 35 - attoparsec base bytestring containers deepseq dlist ghc-prim 36 - hashable mtl scientific syb template-haskell text time transformers 37 - unordered-containers vector 38 - ]; 39 - testHaskellDepends = [ 40 - attoparsec base bytestring containers ghc-prim HUnit QuickCheck 41 - template-haskell test-framework test-framework-hunit 42 - test-framework-quickcheck2 text time unordered-containers vector 43 - ]; 44 - jailbreak = true; 45 - homepage = https://github.com/bos/aeson; 46 - description = "Fast JSON parsing and encoding"; 47 - license = stdenv.lib.licenses.bsd3; 48 - }) {}; 49 - attoparsec = callPackage 50 - ({ mkDerivation, array, base, bytestring, containers, deepseq 51 - , QuickCheck, quickcheck-unicode, scientific, stdenv 52 - , test-framework, test-framework-quickcheck2, text, transformers 53 - , vector 54 - }: 55 - mkDerivation { 56 - pname = "attoparsec"; 57 - version = "0.13.0.1"; 58 - src = "${ghcjsBoot}/boot/attoparsec"; 59 - doCheck = false; 60 - libraryHaskellDepends = [ 61 - array base bytestring containers deepseq scientific text 62 - transformers 63 - ]; 64 - testHaskellDepends = [ 65 - array base bytestring containers deepseq QuickCheck 66 - quickcheck-unicode scientific test-framework 67 - test-framework-quickcheck2 text transformers vector 68 - ]; 69 - jailbreak = true; 70 - homepage = https://github.com/bos/attoparsec; 71 - description = "Fast combinator parsing for bytestrings and text"; 72 - license = stdenv.lib.licenses.bsd3; 73 - }) {}; 74 - case-insensitive = callPackage 75 - ({ mkDerivation, base, bytestring, deepseq, hashable, HUnit, stdenv 76 - , test-framework, test-framework-hunit, text 77 - }: 78 - mkDerivation { 79 - pname = "case-insensitive"; 80 - version = "1.2.0.4"; 81 - src = "${ghcjsBoot}/boot/case-insensitive"; 82 - doCheck = false; 83 - libraryHaskellDepends = [ base bytestring deepseq hashable text ]; 84 - testHaskellDepends = [ 85 - base bytestring HUnit test-framework test-framework-hunit text 86 - ]; 87 - jailbreak = true; 88 - homepage = https://github.com/basvandijk/case-insensitive; 89 - description = "Case insensitive string comparison"; 90 - license = stdenv.lib.licenses.bsd3; 91 - }) {}; 92 - dlist = callPackage 93 - ({ mkDerivation, base, Cabal, deepseq, QuickCheck, stdenv }: 94 - mkDerivation { 95 - pname = "dlist"; 96 - version = "0.7.1.1"; 97 - src = "${ghcjsBoot}/boot/dlist"; 98 - doCheck = false; 99 - libraryHaskellDepends = [ base deepseq ]; 100 - testHaskellDepends = [ base Cabal QuickCheck ]; 101 - jailbreak = true; 102 - homepage = https://github.com/spl/dlist; 103 - description = "Difference lists"; 104 - license = stdenv.lib.licenses.bsd3; 105 - }) {}; 106 - extensible-exceptions = callPackage 107 - ({ mkDerivation, base, stdenv }: 108 - mkDerivation { 109 - pname = "extensible-exceptions"; 110 - version = "0.1.1.4"; 111 - src = "${ghcjsBoot}/boot/extensible-exceptions"; 112 - doCheck = false; 113 - libraryHaskellDepends = [ base ]; 114 - jailbreak = true; 115 - description = "Extensible exceptions"; 116 - license = stdenv.lib.licenses.bsd3; 117 - }) {}; 118 - hashable = callPackage 119 - ({ mkDerivation, base, bytestring, ghc-prim, HUnit, integer-gmp 120 - , QuickCheck, random, stdenv, test-framework, test-framework-hunit 121 - , test-framework-quickcheck2, text, unix 122 - }: 123 - mkDerivation { 124 - pname = "hashable"; 125 - version = "1.2.3.2"; 126 - src = "${ghcjsBoot}/boot/hashable"; 127 - doCheck = false; 128 - libraryHaskellDepends = [ 129 - base bytestring ghc-prim integer-gmp text 130 - ]; 131 - testHaskellDepends = [ 132 - base bytestring ghc-prim HUnit QuickCheck random test-framework 133 - test-framework-hunit test-framework-quickcheck2 text unix 134 - ]; 135 - jailbreak = true; 136 - homepage = https://github.com/tibbe/hashable; 137 - description = "A class for types that can be converted to a hash value"; 138 - license = stdenv.lib.licenses.bsd3; 139 - }) {}; 140 - mtl = callPackage 141 - ({ mkDerivation, base, stdenv, transformers }: 142 - mkDerivation { 143 - pname = "mtl"; 144 - version = "2.2.1"; 145 - src = "${ghcjsBoot}/boot/mtl"; 146 - doCheck = false; 147 - libraryHaskellDepends = [ base transformers ]; 148 - jailbreak = true; 149 - homepage = https://github.com/ekmett/mtl; 150 - description = "Monad classes, using functional dependencies"; 151 - license = stdenv.lib.licenses.bsd3; 152 - }) {}; 153 - old-time = callPackage 154 - ({ mkDerivation, base, old-locale, stdenv }: 155 - mkDerivation { 156 - pname = "old-time"; 157 - version = "1.1.0.3"; 158 - src = "${ghcjsBoot}/boot/old-time"; 159 - doCheck = false; 160 - libraryHaskellDepends = [ base old-locale ]; 161 - jailbreak = true; 162 - description = "Time library"; 163 - license = stdenv.lib.licenses.bsd3; 164 - }) {}; 165 - parallel = callPackage 166 - ({ mkDerivation, array, base, containers, deepseq, stdenv }: 167 - mkDerivation { 168 - pname = "parallel"; 169 - version = "3.2.0.6"; 170 - src = "${ghcjsBoot}/boot/parallel"; 171 - doCheck = false; 172 - libraryHaskellDepends = [ array base containers deepseq ]; 173 - jailbreak = true; 174 - description = "Parallel programming library"; 175 - license = stdenv.lib.licenses.bsd3; 176 - }) {}; 177 - scientific = callPackage 178 - ({ mkDerivation, array, base, bytestring, deepseq, ghc-prim 179 - , hashable, integer-gmp, QuickCheck, smallcheck, stdenv, tasty 180 - , tasty-ant-xml, tasty-hunit, tasty-quickcheck, tasty-smallcheck 181 - , text 182 - }: 183 - mkDerivation { 184 - pname = "scientific"; 185 - version = "0.3.3.8"; 186 - src = "${ghcjsBoot}/boot/scientific"; 187 - doCheck = false; 188 - libraryHaskellDepends = [ 189 - array base bytestring deepseq ghc-prim hashable integer-gmp text 190 - ]; 191 - testHaskellDepends = [ 192 - base bytestring QuickCheck smallcheck tasty tasty-ant-xml 193 - tasty-hunit tasty-quickcheck tasty-smallcheck text 194 - ]; 195 - jailbreak = true; 196 - homepage = https://github.com/basvandijk/scientific; 197 - description = "Numbers represented using scientific notation"; 198 - license = stdenv.lib.licenses.bsd3; 199 - }) {}; 200 - stm = callPackage 201 - ({ mkDerivation, array, base, stdenv }: 202 - mkDerivation { 203 - pname = "stm"; 204 - version = "2.4.4"; 205 - src = "${ghcjsBoot}/boot/stm"; 206 - doCheck = false; 207 - libraryHaskellDepends = [ array base ]; 208 - jailbreak = true; 209 - description = "Software Transactional Memory"; 210 - license = stdenv.lib.licenses.bsd3; 211 - }) {}; 212 - syb = callPackage 213 - ({ mkDerivation, base, containers, HUnit, mtl, stdenv }: 214 - mkDerivation { 215 - pname = "syb"; 216 - version = "0.5.1"; 217 - src = "${ghcjsBoot}/boot/syb"; 218 - doCheck = false; 219 - libraryHaskellDepends = [ base ]; 220 - testHaskellDepends = [ base containers HUnit mtl ]; 221 - jailbreak = true; 222 - homepage = http://www.cs.uu.nl/wiki/GenericProgramming/SYB; 223 - description = "Scrap Your Boilerplate"; 224 - license = stdenv.lib.licenses.bsd3; 225 - }) {}; 226 - text = callPackage 227 - ({ mkDerivation, array, base, binary, bytestring, deepseq, directory 228 - , ghc-prim, HUnit, integer-gmp, QuickCheck, quickcheck-unicode 229 - , random, stdenv, test-framework, test-framework-hunit 230 - , test-framework-quickcheck2 231 - }: 232 - mkDerivation { 233 - pname = "text"; 234 - version = "1.2.1.1"; 235 - src = "${ghcjsBoot}/boot/text"; 236 - doCheck = false; 237 - libraryHaskellDepends = [ 238 - array base binary bytestring deepseq ghc-prim integer-gmp 239 - ]; 240 - testHaskellDepends = [ 241 - array base binary bytestring deepseq directory ghc-prim HUnit 242 - integer-gmp QuickCheck quickcheck-unicode random test-framework 243 - test-framework-hunit test-framework-quickcheck2 244 - ]; 245 - jailbreak = true; 246 - homepage = https://github.com/bos/text; 247 - description = "An efficient packed Unicode text type"; 248 - license = stdenv.lib.licenses.bsd3; 249 - }) {}; 250 - unordered-containers = callPackage 251 - ({ mkDerivation, base, ChasingBottoms, containers, deepseq, hashable 252 - , HUnit, QuickCheck, stdenv, test-framework, test-framework-hunit 253 - , test-framework-quickcheck2 254 - }: 255 - mkDerivation { 256 - pname = "unordered-containers"; 257 - version = "0.2.5.1"; 258 - src = "${ghcjsBoot}/boot/unordered-containers"; 259 - doCheck = false; 260 - libraryHaskellDepends = [ base deepseq hashable ]; 261 - testHaskellDepends = [ 262 - base ChasingBottoms containers hashable HUnit QuickCheck 263 - test-framework test-framework-hunit test-framework-quickcheck2 264 - ]; 265 - jailbreak = true; 266 - homepage = https://github.com/tibbe/unordered-containers; 267 - description = "Efficient hashing-based container types"; 268 - license = stdenv.lib.licenses.bsd3; 269 - }) {}; 270 - vector = callPackage 271 - ({ mkDerivation, base, deepseq, ghc-prim, primitive, QuickCheck 272 - , random, stdenv, template-haskell, test-framework 273 - , test-framework-quickcheck2, transformers 274 - }: 275 - mkDerivation { 276 - pname = "vector"; 277 - version = "0.11.0.0"; 278 - src = "${ghcjsBoot}/boot/vector"; 279 - doCheck = false; 280 - libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; 281 - testHaskellDepends = [ 282 - base QuickCheck random template-haskell test-framework 283 - test-framework-quickcheck2 transformers 284 - ]; 285 - jailbreak = true; 286 - homepage = https://github.com/haskell/vector; 287 - description = "Efficient Arrays"; 288 - license = stdenv.lib.licenses.bsd3; 289 - }) {}; 290 - ghcjs-base = callPackage 291 - ({ mkDerivation, aeson, array, attoparsec, base, bytestring 292 - , containers, deepseq, directory, dlist, ghc-prim, ghcjs-prim 293 - , hashable, HUnit, integer-gmp, primitive, QuickCheck 294 - , quickcheck-unicode, random, scientific, stdenv, test-framework 295 - , test-framework-hunit, test-framework-quickcheck2, text, time 296 - , transformers, unordered-containers, vector 297 - }: 298 - mkDerivation { 299 - pname = "ghcjs-base"; 300 - version = "0.2.0.0"; 301 - src = "${ghcjsBoot}/ghcjs/ghcjs-base"; 302 - doCheck = false; 303 - libraryHaskellDepends = [ 304 - aeson attoparsec base bytestring containers deepseq dlist ghc-prim 305 - ghcjs-prim hashable integer-gmp primitive scientific text time 306 - transformers unordered-containers vector 307 - ]; 308 - testHaskellDepends = [ 309 - array base bytestring deepseq directory ghc-prim ghcjs-prim HUnit 310 - primitive QuickCheck quickcheck-unicode random test-framework 311 - test-framework-hunit test-framework-quickcheck2 text 312 - ]; 313 - jailbreak = true; 314 - homepage = https://github.com/ghcjs/ghcjs-base; 315 - description = "Base library for GHCJS"; 316 - license = stdenv.lib.licenses.mit; 317 - }) {}; 318 - Cabal = callPackage 319 - ({ mkDerivation, array, base, binary, bytestring, containers 320 - , deepseq, directory, extensible-exceptions, filepath, HUnit 321 - , old-time, pretty, process, QuickCheck, regex-posix, stdenv 322 - , test-framework, test-framework-hunit, test-framework-quickcheck2 323 - , time, unix 324 - }: 325 - mkDerivation { 326 - pname = "Cabal"; 327 - version = "1.22.8.0"; 328 - src = "${ghcjsBoot}/boot/cabal/Cabal"; 329 - doCheck = false; 330 - libraryHaskellDepends = [ 331 - array base binary bytestring containers deepseq directory filepath 332 - pretty process time unix 333 - ]; 334 - testHaskellDepends = [ 335 - base bytestring containers directory extensible-exceptions filepath 336 - HUnit old-time process QuickCheck regex-posix test-framework 337 - test-framework-hunit test-framework-quickcheck2 unix 338 - ]; 339 - jailbreak = true; 340 - homepage = http://www.haskell.org/cabal/; 341 - description = "A framework for packaging Haskell software"; 342 - license = stdenv.lib.licenses.bsd3; 343 - }) {}; 344 - }
-86
pkgs/development/compilers/ghcjs/8.0/boot.patch
··· 1 - diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs 2 - index db8b12e..7b815c5 100644 3 - --- a/src-bin/Boot.hs 4 - +++ b/src-bin/Boot.hs 5 - @@ -540,9 +540,7 @@ initPackageDB :: B () 6 - initPackageDB = do 7 - msg info "creating package databases" 8 - initDB "--global" <^> beLocations . blGlobalDB 9 - - traverseOf_ _Just initUser <^> beLocations . blUserDBDir 10 - where 11 - - initUser dir = rm_f (dir </> "package.conf") >> initDB "--user" (dir </> "package.conf.d") 12 - initDB dbName db = do 13 - rm_rf db >> mkdir_p db 14 - ghcjs_pkg_ ["init", toTextI db] `catchAny_` return () 15 - @@ -566,29 +564,22 @@ installDevelopmentTree = subTop $ do 16 - msgD info $ "preparing development boot tree" 17 - checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do 18 - testGit "ghcjs-boot" >>= \case 19 - - Just False -> failWith "ghcjs-boot already exists and is not a git repository" 20 - - Just True -> do 21 - - msg info "ghcjs-boot repository already exists but checkpoint not reached, cleaning first, then cloning" 22 - - rm_rf "ghcjs-boot" 23 - + Just _ -> do 24 - + msg info "ghcjs-boot repository already exists; initializing ghcjs-boot" 25 - initGhcjsBoot 26 - Nothing -> do 27 - msgD info "cloning ghcjs-boot git repository" 28 - initGhcjsBoot 29 - checkpoint' "shims-git" "shims repository already cloned" $ do 30 - testGit "shims" >>= \case 31 - - Just False -> failWith "shims already exists and is not a git repository" 32 - - Just True -> do 33 - - msgD info "shims repository already exists but checkpoint not reached, cleaning first, then cloning" 34 - - rm_rf "shims" 35 - - cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev 36 - + Just _ -> do 37 - + msgD info "shims repository already exists; moving on" 38 - Nothing -> do 39 - msgD info "cloning shims git repository" 40 - cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev 41 - where 42 - initGhcjsBoot = sub $ do 43 - - cloneGit bootDescr "ghcjs-boot" bsrcBootDevBranch bsrcBootDev 44 - cd "ghcjs-boot" 45 - - git_ ["submodule", "update", "--init", "--recursive"] 46 - mapM_ patchPackage =<< allPackages 47 - preparePrimops 48 - buildGenPrim 49 - @@ -1201,14 +1192,14 @@ cabalInstallFlags parmakeGhcjs = do 50 - , "--avoid-reinstalls" 51 - , "--builddir", "dist" 52 - , "--with-compiler", ghcjs ^. pgmLocText 53 - + , "--with-gcc", "@CC@" 54 - , "--with-hc-pkg", ghcjsPkg ^. pgmLocText 55 - - , "--prefix", toTextI instDir 56 - + , "--prefix", "@PREFIX@" 57 - + , "--libdir", "$prefix/lib/$compiler" 58 - + , "--libsubdir", "$pkgid" 59 - , bool haddock "--enable-documentation" "--disable-documentation" 60 - , "--haddock-html" 61 - --- workaround for hoogle support being broken in haddock for GHC 7.10RC1 62 - -#if !(__GLASGOW_HASKELL__ >= 709) 63 - , "--haddock-hoogle" 64 - -#endif 65 - , "--haddock-hyperlink-source" 66 - -- don't slow down Windows builds too much, on other platforms we get this more 67 - -- or less for free, thanks to dynamic-too 68 - diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs 69 - index 33a401f..e2405a7 100644 70 - --- a/src/Compiler/Info.hs 71 - +++ b/src/Compiler/Info.hs 72 - @@ -48,13 +48,7 @@ compilerInfo nativeToo dflags = do 73 - 74 - -- | the directory to use if started without -B flag 75 - getDefaultTopDir :: IO FilePath 76 - -getDefaultTopDir = do 77 - - appdir <- getAppUserDataDirectory "ghcjs" 78 - - return (appdir </> subdir </> "ghcjs") 79 - - where 80 - - targetARCH = arch 81 - - targetOS = os 82 - - subdir = targetARCH ++ '-':targetOS ++ '-':getFullCompilerVersion 83 - +getDefaultTopDir = return "@PREFIX@/lib/ghcjs-@VERSION@" 84 - 85 - getDefaultLibDir :: IO FilePath 86 - getDefaultLibDir = getDefaultTopDir
-50
pkgs/development/compilers/ghcjs/8.0/default.nix
··· 1 - { fetchgit, fetchFromGitHub, bootPkgs, cabal-install }: 2 - 3 - bootPkgs.callPackage ../base.nix { 4 - version = "0.2.020170323"; 5 - 6 - inherit bootPkgs cabal-install; 7 - 8 - ghcjsSrc = fetchFromGitHub { 9 - owner = "ghcjs"; 10 - repo = "ghcjs"; 11 - rev = "2b3759942fb5b2fc1a58d314d9b098d4622fa6b6"; 12 - sha256 = "15asapg0va8dvcdycsx8dgk4xcpdnhml4h31wka6vvxf5anzz8aw"; 13 - }; 14 - ghcjsBootSrc = fetchgit { 15 - url = git://github.com/ghcjs/ghcjs-boot.git; 16 - rev = "106e144cca6529a1b9612c11aea5d6ef65b96745"; 17 - sha256 = "0gxg8iiwvm93x1dwhxypczn9qiz4m1xvj8i7cf4snfdy2jdyhi5l"; 18 - fetchSubmodules = true; 19 - }; 20 - 21 - shims = import ./shims.nix { inherit fetchFromGitHub; }; 22 - stage1Packages = [ 23 - "array" 24 - "base" 25 - "binary" 26 - "bytestring" 27 - "containers" 28 - "deepseq" 29 - "directory" 30 - "filepath" 31 - "ghc-boot" 32 - "ghc-boot-th" 33 - "ghc-prim" 34 - "ghci" 35 - "ghcjs-prim" 36 - "ghcjs-th" 37 - "integer-gmp" 38 - "pretty" 39 - "primitive" 40 - "process" 41 - "rts" 42 - "template-haskell" 43 - "time" 44 - "transformers" 45 - "unix" 46 - ]; 47 - stage2 = import ./stage2.nix; 48 - 49 - patches = [ ./boot.patch ]; 50 - }
-7
pkgs/development/compilers/ghcjs/8.0/shims.nix
··· 1 - { fetchFromGitHub }: 2 - fetchFromGitHub { 3 - owner = "ghcjs"; 4 - repo = "shims"; 5 - rev = "85395dce971e23a39e5f93af4ed139ca36d4e448"; 6 - sha256 = "1kqgik75jx681s1kjx1s7dryigr3m940c3zb9vy0r3psxrw6sf2g"; 7 - }
-545
pkgs/development/compilers/ghcjs/8.0/stage2.nix
··· 1 - { ghcjsBoot }: { callPackage }: 2 - 3 - { 4 - async = callPackage 5 - ({ mkDerivation, base, HUnit, stdenv, stm, test-framework 6 - , test-framework-hunit 7 - }: 8 - mkDerivation { 9 - pname = "async"; 10 - version = "2.1.1"; 11 - src = "${ghcjsBoot}/boot/async"; 12 - doCheck = false; 13 - libraryHaskellDepends = [ base stm ]; 14 - testHaskellDepends = [ 15 - base HUnit test-framework test-framework-hunit 16 - ]; 17 - jailbreak = true; 18 - homepage = "https://github.com/simonmar/async"; 19 - description = "Run IO operations asynchronously and wait for their results"; 20 - license = stdenv.lib.licenses.bsd3; 21 - }) {}; 22 - aeson = callPackage 23 - ({ mkDerivation, attoparsec, base, base-compat, base-orphans 24 - , base16-bytestring, bytestring, containers, deepseq, directory 25 - , dlist, filepath, generic-deriving, ghc-prim, hashable 26 - , hashable-time, HUnit, integer-logarithms, QuickCheck 27 - , quickcheck-instances, scientific, stdenv, tagged 28 - , template-haskell, test-framework, test-framework-hunit 29 - , test-framework-quickcheck2, text, th-abstraction, time 30 - , time-locale-compat, unordered-containers, uuid-types, vector 31 - }: 32 - mkDerivation { 33 - pname = "aeson"; 34 - version = "1.2.2.0"; 35 - src = "${ghcjsBoot}/boot/aeson"; 36 - doCheck = false; 37 - libraryHaskellDepends = [ 38 - attoparsec base base-compat bytestring containers deepseq dlist 39 - ghc-prim hashable scientific tagged template-haskell text 40 - th-abstraction time time-locale-compat unordered-containers 41 - uuid-types vector 42 - ]; 43 - testHaskellDepends = [ 44 - attoparsec base base-compat base-orphans base16-bytestring 45 - bytestring containers directory dlist filepath generic-deriving 46 - ghc-prim hashable hashable-time HUnit integer-logarithms QuickCheck 47 - quickcheck-instances scientific tagged template-haskell 48 - test-framework test-framework-hunit test-framework-quickcheck2 text 49 - time time-locale-compat unordered-containers uuid-types vector 50 - ]; 51 - jailbreak = true; 52 - homepage = "https://github.com/bos/aeson"; 53 - description = "Fast JSON parsing and encoding"; 54 - license = stdenv.lib.licenses.bsd3; 55 - }) {}; 56 - attoparsec = callPackage 57 - ({ mkDerivation, array, base, bytestring, case-insensitive 58 - , containers, criterion, deepseq, directory, filepath, ghc-prim 59 - , http-types, parsec, QuickCheck, quickcheck-unicode, scientific 60 - , stdenv, tasty, tasty-quickcheck, text, transformers 61 - , unordered-containers, vector 62 - }: 63 - mkDerivation { 64 - pname = "attoparsec"; 65 - version = "0.13.1.0"; 66 - src = "${ghcjsBoot}/boot/attoparsec"; 67 - doCheck = false; 68 - libraryHaskellDepends = [ 69 - array base bytestring containers deepseq scientific text 70 - transformers 71 - ]; 72 - testHaskellDepends = [ 73 - array base bytestring deepseq QuickCheck quickcheck-unicode 74 - scientific tasty tasty-quickcheck text transformers vector 75 - ]; 76 - benchmarkHaskellDepends = [ 77 - array base bytestring case-insensitive containers criterion deepseq 78 - directory filepath ghc-prim http-types parsec scientific text 79 - transformers unordered-containers vector 80 - ]; 81 - jailbreak = true; 82 - homepage = "https://github.com/bos/attoparsec"; 83 - description = "Fast combinator parsing for bytestrings and text"; 84 - license = stdenv.lib.licenses.bsd3; 85 - }) {}; 86 - base-compat = callPackage 87 - ({ mkDerivation, base, hspec, QuickCheck, stdenv, unix }: 88 - mkDerivation { 89 - pname = "base-compat"; 90 - version = "0.9.3"; 91 - src = "${ghcjsBoot}/boot/base-compat"; 92 - doCheck = false; 93 - libraryHaskellDepends = [ base unix ]; 94 - testHaskellDepends = [ base hspec QuickCheck ]; 95 - jailbreak = true; 96 - description = "A compatibility layer for base"; 97 - license = stdenv.lib.licenses.mit; 98 - }) {}; 99 - bytestring-builder = callPackage 100 - ({ mkDerivation, base, bytestring, deepseq, stdenv }: 101 - mkDerivation { 102 - pname = "bytestring-builder"; 103 - version = "0.10.8.1.0"; 104 - src = "${ghcjsBoot}/boot/bytestring-builder"; 105 - doCheck = false; 106 - libraryHaskellDepends = [ base bytestring deepseq ]; 107 - jailbreak = true; 108 - description = "The new bytestring builder, packaged outside of GHC"; 109 - license = stdenv.lib.licenses.bsd3; 110 - }) {}; 111 - case-insensitive = callPackage 112 - ({ mkDerivation, base, bytestring, criterion, deepseq, hashable 113 - , HUnit, stdenv, test-framework, test-framework-hunit, text 114 - }: 115 - mkDerivation { 116 - pname = "case-insensitive"; 117 - version = "1.2.0.8"; 118 - src = "${ghcjsBoot}/boot/case-insensitive"; 119 - doCheck = false; 120 - libraryHaskellDepends = [ base bytestring deepseq hashable text ]; 121 - testHaskellDepends = [ 122 - base bytestring HUnit test-framework test-framework-hunit text 123 - ]; 124 - benchmarkHaskellDepends = [ base bytestring criterion deepseq ]; 125 - jailbreak = true; 126 - homepage = "https://github.com/basvandijk/case-insensitive"; 127 - description = "Case insensitive string comparison"; 128 - license = stdenv.lib.licenses.bsd3; 129 - }) {}; 130 - dlist = callPackage 131 - ({ mkDerivation, base, Cabal, deepseq, QuickCheck, stdenv }: 132 - mkDerivation { 133 - pname = "dlist"; 134 - version = "0.8.0.2"; 135 - src = "${ghcjsBoot}/boot/dlist"; 136 - doCheck = false; 137 - libraryHaskellDepends = [ base deepseq ]; 138 - testHaskellDepends = [ base Cabal QuickCheck ]; 139 - jailbreak = true; 140 - homepage = "https://github.com/spl/dlist"; 141 - description = "Difference lists"; 142 - license = stdenv.lib.licenses.bsd3; 143 - }) {}; 144 - extensible-exceptions = callPackage 145 - ({ mkDerivation, base, stdenv }: 146 - mkDerivation { 147 - pname = "extensible-exceptions"; 148 - version = "0.1.1.4"; 149 - src = "${ghcjsBoot}/boot/extensible-exceptions"; 150 - doCheck = false; 151 - libraryHaskellDepends = [ base ]; 152 - jailbreak = true; 153 - description = "Extensible exceptions"; 154 - license = stdenv.lib.licenses.bsd3; 155 - }) {}; 156 - fail = callPackage 157 - ({ mkDerivation, stdenv }: 158 - mkDerivation { 159 - pname = "fail"; 160 - version = "4.9.0.0"; 161 - src = "${ghcjsBoot}/boot/fail"; 162 - jailbreak = true; 163 - homepage = "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail"; 164 - description = "Forward-compatible MonadFail class"; 165 - license = stdenv.lib.licenses.bsd3; 166 - }) {}; 167 - hashable = callPackage 168 - ({ mkDerivation, base, bytestring, criterion, ghc-prim, HUnit 169 - , integer-gmp, QuickCheck, random, siphash, stdenv, test-framework 170 - , test-framework-hunit, test-framework-quickcheck2, text, unix 171 - }: 172 - mkDerivation { 173 - pname = "hashable"; 174 - version = "1.2.4.0"; 175 - src = "${ghcjsBoot}/boot/hashable"; 176 - doCheck = false; 177 - libraryHaskellDepends = [ 178 - base bytestring ghc-prim integer-gmp text 179 - ]; 180 - testHaskellDepends = [ 181 - base bytestring ghc-prim HUnit QuickCheck random test-framework 182 - test-framework-hunit test-framework-quickcheck2 text unix 183 - ]; 184 - benchmarkHaskellDepends = [ 185 - base bytestring criterion ghc-prim integer-gmp siphash text 186 - ]; 187 - jailbreak = true; 188 - homepage = "http://github.com/tibbe/hashable"; 189 - description = "A class for types that can be converted to a hash value"; 190 - license = stdenv.lib.licenses.bsd3; 191 - }) {}; 192 - integer-logarithms = callPackage 193 - ({ mkDerivation, array, base, ghc-prim, integer-gmp, QuickCheck 194 - , smallcheck, stdenv, tasty, tasty-hunit, tasty-quickcheck 195 - , tasty-smallcheck 196 - }: 197 - mkDerivation { 198 - pname = "integer-logarithms"; 199 - version = "1.0.2"; 200 - src = "${ghcjsBoot}/boot/integer-logarithms"; 201 - doCheck = false; 202 - libraryHaskellDepends = [ array base ghc-prim integer-gmp ]; 203 - testHaskellDepends = [ 204 - base QuickCheck smallcheck tasty tasty-hunit tasty-quickcheck 205 - tasty-smallcheck 206 - ]; 207 - jailbreak = true; 208 - homepage = "https://github.com/phadej/integer-logarithms"; 209 - description = "Integer logarithms"; 210 - license = stdenv.lib.licenses.mit; 211 - }) {}; 212 - mtl = callPackage 213 - ({ mkDerivation, base, stdenv, transformers }: 214 - mkDerivation { 215 - pname = "mtl"; 216 - version = "2.2.1"; 217 - src = "${ghcjsBoot}/boot/mtl"; 218 - doCheck = false; 219 - libraryHaskellDepends = [ base transformers ]; 220 - jailbreak = true; 221 - homepage = "http://github.com/ekmett/mtl"; 222 - description = "Monad classes, using functional dependencies"; 223 - license = stdenv.lib.licenses.bsd3; 224 - }) {}; 225 - nats = callPackage 226 - ({ mkDerivation, stdenv }: 227 - mkDerivation { 228 - pname = "nats"; 229 - version = "1.1.1"; 230 - src = "${ghcjsBoot}/boot/nats"; 231 - jailbreak = true; 232 - homepage = "http://github.com/ekmett/nats/"; 233 - description = "Natural numbers"; 234 - license = stdenv.lib.licenses.bsd3; 235 - }) {}; 236 - old-time = callPackage 237 - ({ mkDerivation, base, old-locale, stdenv }: 238 - mkDerivation { 239 - pname = "old-time"; 240 - version = "1.1.0.3"; 241 - src = "${ghcjsBoot}/boot/old-time"; 242 - doCheck = false; 243 - libraryHaskellDepends = [ base old-locale ]; 244 - jailbreak = true; 245 - description = "Time library"; 246 - license = stdenv.lib.licenses.bsd3; 247 - }) {}; 248 - parallel = callPackage 249 - ({ mkDerivation, array, base, containers, deepseq, stdenv }: 250 - mkDerivation { 251 - pname = "parallel"; 252 - version = "3.2.1.0"; 253 - src = "${ghcjsBoot}/boot/parallel"; 254 - doCheck = false; 255 - libraryHaskellDepends = [ array base containers deepseq ]; 256 - jailbreak = true; 257 - description = "Parallel programming library"; 258 - license = stdenv.lib.licenses.bsd3; 259 - }) {}; 260 - random = callPackage 261 - ({ mkDerivation, base, stdenv, time }: 262 - mkDerivation { 263 - pname = "random"; 264 - version = "1.1"; 265 - src = "${ghcjsBoot}/boot/random"; 266 - doCheck = false; 267 - libraryHaskellDepends = [ base time ]; 268 - testHaskellDepends = [ base ]; 269 - jailbreak = true; 270 - description = "random number library"; 271 - license = stdenv.lib.licenses.bsd3; 272 - }) {}; 273 - scientific = callPackage 274 - ({ mkDerivation, base, binary, bytestring, containers, criterion 275 - , deepseq, ghc-prim, hashable, integer-gmp, integer-logarithms 276 - , QuickCheck, smallcheck, stdenv, tasty, tasty-ant-xml, tasty-hunit 277 - , tasty-quickcheck, tasty-smallcheck, text, vector 278 - }: 279 - mkDerivation { 280 - pname = "scientific"; 281 - version = "0.3.4.10"; 282 - src = "${ghcjsBoot}/boot/scientific"; 283 - doCheck = false; 284 - libraryHaskellDepends = [ 285 - base binary bytestring containers deepseq ghc-prim hashable 286 - integer-gmp integer-logarithms text vector 287 - ]; 288 - testHaskellDepends = [ 289 - base binary bytestring QuickCheck smallcheck tasty tasty-ant-xml 290 - tasty-hunit tasty-quickcheck tasty-smallcheck text 291 - ]; 292 - benchmarkHaskellDepends = [ base criterion ]; 293 - jailbreak = true; 294 - homepage = "https://github.com/basvandijk/scientific"; 295 - description = "Numbers represented using scientific notation"; 296 - license = stdenv.lib.licenses.bsd3; 297 - }) {}; 298 - semigroups = callPackage 299 - ({ mkDerivation, base, stdenv }: 300 - mkDerivation { 301 - pname = "semigroups"; 302 - version = "0.18.3"; 303 - src = "${ghcjsBoot}/boot/semigroups"; 304 - doCheck = false; 305 - libraryHaskellDepends = [ base ]; 306 - jailbreak = true; 307 - homepage = "http://github.com/ekmett/semigroups/"; 308 - description = "Anything that associates"; 309 - license = stdenv.lib.licenses.bsd3; 310 - }) {}; 311 - stm = callPackage 312 - ({ mkDerivation, array, base, stdenv }: 313 - mkDerivation { 314 - pname = "stm"; 315 - version = "2.4.4.1"; 316 - src = "${ghcjsBoot}/boot/stm"; 317 - doCheck = false; 318 - libraryHaskellDepends = [ array base ]; 319 - jailbreak = true; 320 - description = "Software Transactional Memory"; 321 - license = stdenv.lib.licenses.bsd3; 322 - }) {}; 323 - syb = callPackage 324 - ({ mkDerivation, base, containers, HUnit, mtl, stdenv }: 325 - mkDerivation { 326 - pname = "syb"; 327 - version = "0.6"; 328 - src = "${ghcjsBoot}/boot/syb"; 329 - doCheck = false; 330 - libraryHaskellDepends = [ base ]; 331 - testHaskellDepends = [ base containers HUnit mtl ]; 332 - jailbreak = true; 333 - homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB"; 334 - description = "Scrap Your Boilerplate"; 335 - license = stdenv.lib.licenses.bsd3; 336 - }) {}; 337 - tagged = callPackage 338 - ({ mkDerivation, base, deepseq, stdenv, template-haskell 339 - , transformers, transformers-compat 340 - }: 341 - mkDerivation { 342 - pname = "tagged"; 343 - version = "0.8.5"; 344 - src = "${ghcjsBoot}/boot/tagged"; 345 - doCheck = false; 346 - libraryHaskellDepends = [ 347 - base deepseq template-haskell transformers transformers-compat 348 - ]; 349 - jailbreak = true; 350 - homepage = "http://github.com/ekmett/tagged"; 351 - description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments"; 352 - license = stdenv.lib.licenses.bsd3; 353 - }) {}; 354 - text = callPackage 355 - ({ mkDerivation, array, base, binary, bytestring, deepseq, directory 356 - , ghc-prim, HUnit, integer-gmp, QuickCheck, quickcheck-unicode 357 - , random, stdenv, test-framework, test-framework-hunit 358 - , test-framework-quickcheck2 359 - }: 360 - mkDerivation { 361 - pname = "text"; 362 - version = "1.2.2.1"; 363 - src = "${ghcjsBoot}/boot/text"; 364 - doCheck = false; 365 - libraryHaskellDepends = [ 366 - array base binary bytestring deepseq ghc-prim integer-gmp 367 - ]; 368 - testHaskellDepends = [ 369 - array base binary bytestring deepseq directory ghc-prim HUnit 370 - integer-gmp QuickCheck quickcheck-unicode random test-framework 371 - test-framework-hunit test-framework-quickcheck2 372 - ]; 373 - jailbreak = true; 374 - homepage = "https://github.com/bos/text"; 375 - description = "An efficient packed Unicode text type"; 376 - license = stdenv.lib.licenses.bsd3; 377 - }) {}; 378 - th-abstraction = callPackage 379 - ({ mkDerivation, base, containers, ghc-prim, stdenv 380 - , template-haskell 381 - }: 382 - mkDerivation { 383 - pname = "th-abstraction"; 384 - version = "0.2.6.0"; 385 - src = "${ghcjsBoot}/boot/th-abstraction"; 386 - doCheck = false; 387 - libraryHaskellDepends = [ 388 - base containers ghc-prim template-haskell 389 - ]; 390 - testHaskellDepends = [ base containers template-haskell ]; 391 - jailbreak = true; 392 - homepage = "https://github.com/glguy/th-abstraction"; 393 - description = "Nicer interface for reified information about data types"; 394 - license = stdenv.lib.licenses.isc; 395 - }) {}; 396 - time-locale-compat = callPackage 397 - ({ mkDerivation, base, old-locale, stdenv, time }: 398 - mkDerivation { 399 - pname = "time-locale-compat"; 400 - version = "0.1.1.3"; 401 - src = "${ghcjsBoot}/boot/time-locale-compat"; 402 - doCheck = false; 403 - libraryHaskellDepends = [ base old-locale time ]; 404 - jailbreak = true; 405 - homepage = "https://github.com/khibino/haskell-time-locale-compat"; 406 - description = "Compatibility of TimeLocale between old-locale and time-1.5"; 407 - license = stdenv.lib.licenses.bsd3; 408 - }) {}; 409 - transformers-compat = callPackage 410 - ({ mkDerivation, base, ghc-prim, stdenv, transformers }: 411 - mkDerivation { 412 - pname = "transformers-compat"; 413 - version = "0.5.1.4"; 414 - src = "${ghcjsBoot}/boot/transformers-compat"; 415 - doCheck = false; 416 - libraryHaskellDepends = [ base ghc-prim transformers ]; 417 - jailbreak = true; 418 - homepage = "http://github.com/ekmett/transformers-compat/"; 419 - description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms."; 420 - license = stdenv.lib.licenses.bsd3; 421 - }) {}; 422 - unordered-containers = callPackage 423 - ({ mkDerivation, base, bytestring, ChasingBottoms, containers 424 - , criterion, deepseq, deepseq-generics, hashable, hashmap, HUnit 425 - , mtl, QuickCheck, random, stdenv, test-framework 426 - , test-framework-hunit, test-framework-quickcheck2 427 - }: 428 - mkDerivation { 429 - pname = "unordered-containers"; 430 - version = "0.2.7.2"; 431 - src = "${ghcjsBoot}/boot/unordered-containers"; 432 - doCheck = false; 433 - libraryHaskellDepends = [ base deepseq hashable ]; 434 - testHaskellDepends = [ 435 - base ChasingBottoms containers hashable HUnit QuickCheck 436 - test-framework test-framework-hunit test-framework-quickcheck2 437 - ]; 438 - benchmarkHaskellDepends = [ 439 - base bytestring containers criterion deepseq deepseq-generics 440 - hashable hashmap mtl random 441 - ]; 442 - jailbreak = true; 443 - homepage = "https://github.com/tibbe/unordered-containers"; 444 - description = "Efficient hashing-based container types"; 445 - license = stdenv.lib.licenses.bsd3; 446 - }) {}; 447 - uuid-types = callPackage 448 - ({ mkDerivation, base, binary, bytestring, containers, criterion 449 - , deepseq, hashable, HUnit, QuickCheck, random, stdenv, tasty 450 - , tasty-hunit, tasty-quickcheck, text, unordered-containers 451 - }: 452 - mkDerivation { 453 - pname = "uuid-types"; 454 - version = "1.0.3"; 455 - src = "${ghcjsBoot}/boot/uuid/uuid-types"; 456 - doCheck = false; 457 - libraryHaskellDepends = [ 458 - base binary bytestring deepseq hashable random text 459 - ]; 460 - testHaskellDepends = [ 461 - base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck 462 - ]; 463 - benchmarkHaskellDepends = [ 464 - base bytestring containers criterion deepseq random 465 - unordered-containers 466 - ]; 467 - jailbreak = true; 468 - homepage = "https://github.com/hvr/uuid"; 469 - description = "Type definitions for Universally Unique Identifiers"; 470 - license = stdenv.lib.licenses.bsd3; 471 - }) {}; 472 - vector = callPackage 473 - ({ mkDerivation, base, deepseq, ghc-prim, primitive, QuickCheck 474 - , random, stdenv, template-haskell, test-framework 475 - , test-framework-quickcheck2, transformers 476 - }: 477 - mkDerivation { 478 - pname = "vector"; 479 - version = "0.11.0.0"; 480 - src = "${ghcjsBoot}/boot/vector"; 481 - doCheck = false; 482 - libraryHaskellDepends = [ base deepseq ghc-prim primitive ]; 483 - testHaskellDepends = [ 484 - base QuickCheck random template-haskell test-framework 485 - test-framework-quickcheck2 transformers 486 - ]; 487 - jailbreak = true; 488 - homepage = "https://github.com/haskell/vector"; 489 - description = "Efficient Arrays"; 490 - license = stdenv.lib.licenses.bsd3; 491 - }) {}; 492 - ghcjs-base = callPackage 493 - ({ mkDerivation, aeson, array, attoparsec, base, bytestring 494 - , containers, deepseq, directory, dlist, ghc-prim, ghcjs-prim 495 - , hashable, HUnit, integer-gmp, primitive, QuickCheck 496 - , quickcheck-unicode, random, scientific, stdenv, test-framework 497 - , test-framework-hunit, test-framework-quickcheck2, text, time 498 - , transformers, unordered-containers, vector 499 - }: 500 - mkDerivation { 501 - pname = "ghcjs-base"; 502 - version = "0.2.0.0"; 503 - src = "${ghcjsBoot}/ghcjs/ghcjs-base"; 504 - doCheck = false; 505 - libraryHaskellDepends = [ 506 - aeson attoparsec base bytestring containers deepseq dlist ghc-prim 507 - ghcjs-prim hashable integer-gmp primitive scientific text time 508 - transformers unordered-containers vector 509 - ]; 510 - testHaskellDepends = [ 511 - array base bytestring deepseq directory ghc-prim ghcjs-prim HUnit 512 - primitive QuickCheck quickcheck-unicode random test-framework 513 - test-framework-hunit test-framework-quickcheck2 text 514 - ]; 515 - jailbreak = true; 516 - homepage = "http://github.com/ghcjs/ghcjs-base"; 517 - description = "base library for GHCJS"; 518 - license = stdenv.lib.licenses.mit; 519 - }) {}; 520 - Cabal = callPackage 521 - ({ mkDerivation, array, base, binary, bytestring, containers 522 - , deepseq, directory, exceptions, filepath, old-time, pretty 523 - , process, QuickCheck, regex-posix, stdenv, tagged, tasty 524 - , tasty-hunit, tasty-quickcheck, time, transformers, unix 525 - }: 526 - mkDerivation { 527 - pname = "Cabal"; 528 - version = "1.24.0.0"; 529 - src = "${ghcjsBoot}/boot/cabal/Cabal"; 530 - doCheck = false; 531 - libraryHaskellDepends = [ 532 - array base binary bytestring containers deepseq directory filepath 533 - pretty process time unix 534 - ]; 535 - testHaskellDepends = [ 536 - base bytestring containers directory exceptions filepath old-time 537 - pretty process QuickCheck regex-posix tagged tasty tasty-hunit 538 - tasty-quickcheck transformers unix 539 - ]; 540 - jailbreak = true; 541 - homepage = "http://www.haskell.org/cabal/"; 542 - description = "A framework for packaging Haskell software"; 543 - license = stdenv.lib.licenses.bsd3; 544 - }) {}; 545 - }
-239
pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
··· 1 - { pkgs, haskellLib }: 2 - 3 - with haskellLib; 4 - 5 - self: super: { 6 - 7 - # Suitable LLVM version. 8 - llvmPackages = pkgs.llvmPackages_35; 9 - 10 - # Disable GHC 7.10.x core libraries. 11 - array = null; 12 - base = null; 13 - binary = null; 14 - bin-package-db = null; 15 - bytestring = null; 16 - Cabal = null; 17 - containers = null; 18 - deepseq = null; 19 - directory = null; 20 - filepath = null; 21 - ghc-boot = null; 22 - ghc-boot-th = null; 23 - ghc-prim = null; 24 - ghci = null; 25 - haskeline = null; 26 - hoopl = null; 27 - hpc = null; 28 - integer-gmp = null; 29 - pretty = null; 30 - process = null; 31 - rts = null; 32 - template-haskell = null; 33 - terminfo = null; 34 - time = null; 35 - transformers = null; 36 - unix = null; 37 - xhtml = null; 38 - 39 - # These are now core libraries in GHC 8.4.x. 40 - mtl = self.mtl_2_2_2; 41 - parsec = self.parsec_3_1_13_0; 42 - parsec_3_1_13_0 = addBuildDepends super.parsec_3_1_13_0 [self.fail self.semigroups]; 43 - stm = self.stm_2_5_0_0; 44 - text = self.text_1_2_3_1; 45 - 46 - # Build jailbreak-cabal with the latest version of Cabal. 47 - jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_1_24_2_0; }; 48 - 49 - gtk2hs-buildtools = super.gtk2hs-buildtools.override { Cabal = self.buildHaskellPackages.Cabal_1_24_2_0; }; 50 - 51 - # https://github.com/mrkkrp/megaparsec/issues/282 52 - megaparsec = addBuildDepend (dontCheck super.megaparsec) self.fail; 53 - 54 - Extra = appendPatch super.Extra (pkgs.fetchpatch { 55 - url = "https://github.com/seereason/sr-extra/commit/29787ad4c20c962924b823d02a7335da98143603.patch"; 56 - sha256 = "193i1xmq6z0jalwmq0mhqk1khz6zz0i1hs6lgfd7ybd6qyaqnf5f"; 57 - }); 58 - 59 - # Requires ghc 8.2 60 - ghc-proofs = dontDistribute super.ghc-proofs; 61 - 62 - # haddock: No input file(s). 63 - nats = dontHaddock super.nats; 64 - bytestring-builder = dontHaddock super.bytestring-builder; 65 - 66 - # Setup: At least the following dependencies are missing: base <4.8 67 - hspec-expectations = overrideCabal super.hspec-expectations (drv: { 68 - postPatch = "sed -i -e 's|base < 4.8|base|' hspec-expectations.cabal"; 69 - }); 70 - utf8-string = overrideCabal super.utf8-string (drv: { 71 - postPatch = "sed -i -e 's|base >= 3 && < 4.8|base|' utf8-string.cabal"; 72 - }); 73 - 74 - # acid-state/safecopy#25 acid-state/safecopy#26 75 - safecopy = dontCheck (super.safecopy); 76 - 77 - # test suite broken, some instance is declared twice. 78 - # https://bitbucket.org/FlorianHartwig/attobencode/issue/1 79 - AttoBencode = dontCheck super.AttoBencode; 80 - 81 - # Test suite fails with some (seemingly harmless) error. 82 - # https://code.google.com/p/scrapyourboilerplate/issues/detail?id=24 83 - syb = dontCheck super.syb; 84 - 85 - # Test suite has stricter version bounds 86 - retry = dontCheck super.retry; 87 - 88 - # test/System/Posix/Types/OrphansSpec.hs:19:13: 89 - # Not in scope: type constructor or class ‘Int32’ 90 - base-orphans = dontCheck super.base-orphans; 91 - 92 - # Test suite fails with time >= 1.5 93 - http-date = dontCheck super.http-date; 94 - 95 - # Version 1.19.5 fails its test suite. 96 - happy = dontCheck super.happy; 97 - 98 - # Upstream was notified about the over-specified constraint on 'base' 99 - # but refused to do anything about it because he "doesn't want to 100 - # support a moving target". Go figure. 101 - barecheck = doJailbreak super.barecheck; 102 - 103 - # https://github.com/kazu-yamamoto/unix-time/issues/30 104 - unix-time = dontCheck super.unix-time; 105 - 106 - # diagrams/monoid-extras#19 107 - monoid-extras = overrideCabal super.monoid-extras (drv: { 108 - prePatch = "sed -i 's|4\.8|4.9|' monoid-extras.cabal"; 109 - }); 110 - 111 - # diagrams/statestack#5 112 - statestack = overrideCabal super.statestack (drv: { 113 - prePatch = "sed -i 's|4\.8|4.9|' statestack.cabal"; 114 - }); 115 - 116 - # diagrams/diagrams-core#83 117 - diagrams-core = overrideCabal super.diagrams-core (drv: { 118 - prePatch = "sed -i 's|4\.8|4.9|' diagrams-core.cabal"; 119 - }); 120 - 121 - timezone-olson = doJailbreak super.timezone-olson; 122 - xmonad-extras = overrideCabal super.xmonad-extras (drv: { 123 - postPatch = '' 124 - sed -i -e "s,<\*,<¤,g" XMonad/Actions/Volume.hs 125 - ''; 126 - }); 127 - 128 - # Workaround for a workaround, see comment for "ghcjs" flag. 129 - jsaddle = let jsaddle' = disableCabalFlag super.jsaddle "ghcjs"; 130 - in addBuildDepends jsaddle' [ self.glib self.gtk3 self.webkitgtk3 131 - self.webkitgtk3-javascriptcore ]; 132 - 133 - # https://github.com/lymar/hastache/issues/47 134 - hastache = dontCheck super.hastache; 135 - 136 - # The compat library is empty in the presence of mtl 2.2.x. 137 - mtl-compat = dontHaddock super.mtl-compat; 138 - 139 - # https://github.com/bos/bloomfilter/issues/11 140 - bloomfilter = dontHaddock (appendConfigureFlag super.bloomfilter "--ghc-option=-XFlexibleContexts"); 141 - 142 - # https://github.com/ocharles/tasty-rerun/issues/5 143 - tasty-rerun = dontHaddock (appendConfigureFlag super.tasty-rerun "--ghc-option=-XFlexibleContexts"); 144 - 145 - # http://hub.darcs.net/ivanm/graphviz/issue/5 146 - graphviz = dontCheck (appendPatch super.graphviz ./patches/graphviz-fix-ghc710.patch); 147 - 148 - # https://github.com/HugoDaniel/RFC3339/issues/14 149 - timerep = dontCheck super.timerep; 150 - 151 - # Required to fix version 0.91.0.0. 152 - wx = dontHaddock (appendConfigureFlag super.wx "--ghc-option=-XFlexibleContexts"); 153 - 154 - # Inexplicable haddock failure 155 - # https://github.com/gregwebs/aeson-applicative/issues/2 156 - aeson-applicative = dontHaddock super.aeson-applicative; 157 - 158 - # GHC 7.10.1 is affected by https://github.com/srijs/hwsl2/issues/1. 159 - hwsl2 = dontCheck super.hwsl2; 160 - 161 - # https://github.com/haskell/haddock/issues/427 162 - haddock = dontCheck self.haddock_2_16_1; 163 - 164 - # haddock-api >= 2.17 is GHC 8.0 only 165 - haddock-api = self.haddock-api_2_16_1; 166 - haddock-library = self.haddock-library_1_2_1; 167 - 168 - # The tests in vty-ui do not build, but vty-ui itself builds. 169 - vty-ui = enableCabalFlag super.vty-ui "no-tests"; 170 - 171 - # https://github.com/fpco/stackage/issues/1112 172 - vector-algorithms = addBuildDepends (dontCheck super.vector-algorithms) [ self.mtl self.mwc-random ]; 173 - 174 - # vector with ghc < 8.0 needs semigroups 175 - vector = addBuildDepend super.vector self.semigroups; 176 - 177 - # too strict dependency on directory 178 - tasty-ant-xml = doJailbreak super.tasty-ant-xml; 179 - 180 - # https://github.com/thoughtpolice/hs-ed25519/issues/13 181 - ed25519 = dontCheck super.ed25519; 182 - 183 - # Breaks a dependency cycle between QuickCheck and semigroups 184 - hashable = dontCheck super.hashable; 185 - unordered-containers = dontCheck super.unordered-containers; 186 - 187 - # GHC versions prior to 8.x require additional build inputs. 188 - aeson = disableCabalFlag (addBuildDepend super.aeson self.semigroups) "old-locale"; 189 - ansi-wl-pprint = addBuildDepend super.ansi-wl-pprint self.semigroups; 190 - attoparsec = addBuildDepends super.attoparsec (with self; [semigroups fail]); 191 - bytes = addBuildDepend super.bytes self.doctest; 192 - case-insensitive = addBuildDepend super.case-insensitive self.semigroups; 193 - cmdargs = addBuildDepend super.cmdargs self.semigroups; 194 - contravariant = addBuildDepend super.contravariant self.semigroups; 195 - dependent-map = addBuildDepend super.dependent-map self.semigroups; 196 - distributive = addBuildDepend (dontCheck super.distributive) self.semigroups; 197 - Glob = addBuildDepends super.Glob (with self; [semigroups]); 198 - hoauth2 = overrideCabal super.hoauth2 (drv: { testDepends = (drv.testDepends or []) ++ [ self.wai self.warp ]; }); 199 - hslogger = addBuildDepend super.hslogger self.HUnit; 200 - intervals = addBuildDepends super.intervals (with self; [doctest QuickCheck]); 201 - lens = addBuildDepend super.lens self.generic-deriving; 202 - mono-traversable = addBuildDepend super.mono-traversable self.semigroups; 203 - natural-transformation = addBuildDepend super.natural-transformation self.semigroups; 204 - optparse-applicative = addBuildDepends super.optparse-applicative [self.semigroups self.fail]; 205 - parser-combinators = addBuildDepend super.parser-combinators self.semigroups; 206 - QuickCheck = addBuildDepend super.QuickCheck self.semigroups; 207 - reflection = addBuildDepend super.reflection self.semigroups; 208 - semigroups = addBuildDepends (dontCheck super.semigroups) (with self; [hashable tagged text unordered-containers]); 209 - tar = addBuildDepend super.tar self.semigroups; 210 - texmath = addBuildDepend super.texmath self.network-uri; 211 - yesod-auth-oauth2 = overrideCabal super.yesod-auth-oauth2 (drv: { testDepends = (drv.testDepends or []) ++ [ self.load-env self.yesod ]; }); 212 - 213 - # cereal must have `fail` in pre-ghc-8.0.x versions and tests require 214 - # bytestring>=0.10.8.1. 215 - cereal = dontCheck (addBuildDepend super.cereal self.fail); 216 - 217 - # The test suite requires Cabal 1.24.x or later to compile. 218 - comonad = dontCheck super.comonad; 219 - semigroupoids = dontCheck super.semigroupoids; 220 - 221 - # Newer versions require base >=4.9 && <5. 222 - colour = self.colour_2_3_3; 223 - 224 - # https://github.com/atzedijkstra/chr/issues/1 225 - chr-pretty = doJailbreak super.chr-pretty; 226 - chr-parse = doJailbreak super.chr-parse; 227 - 228 - # The autogenerated Nix expressions don't take into 229 - # account `if impl(ghc >= x.y)`, which is a common method to depend 230 - # on `semigroups` or `fail` when building with GHC < 8.0. 231 - system-filepath = addBuildDepend super.system-filepath self.semigroups; 232 - haskell-src-exts = addBuildDepend super.haskell-src-exts self.semigroups; 233 - free = addBuildDepend super.free self.fail; 234 - 235 - # Newer versions don't build without base-4.9 236 - resourcet = self.resourcet_1_1_11; 237 - conduit = self.conduit_1_2_13_1; 238 - 239 - }
-91
pkgs/development/haskell-modules/configuration-ghc-8.0.x.nix
··· 1 - { pkgs, haskellLib }: 2 - 3 - with haskellLib; 4 - 5 - self: super: { 6 - 7 - # Suitable LLVM version. 8 - llvmPackages = pkgs.llvmPackages_37; 9 - 10 - # Disable GHC 8.0.x core libraries. 11 - array = null; 12 - base = null; 13 - binary = null; 14 - bytestring = null; 15 - Cabal = null; 16 - containers = null; 17 - deepseq = null; 18 - directory = null; 19 - filepath = null; 20 - ghc-boot = null; 21 - ghc-boot-th = null; 22 - ghc-compact = null; 23 - ghc-prim = null; 24 - ghci = null; 25 - haskeline = null; 26 - hoopl = null; 27 - hpc = null; 28 - integer-gmp = null; 29 - pretty = null; 30 - process = null; 31 - rts = null; 32 - template-haskell = null; 33 - terminfo = null; 34 - time = null; 35 - transformers = null; 36 - unix = null; 37 - xhtml = null; 38 - 39 - # These are now core libraries in GHC 8.4.x. 40 - mtl = self.mtl_2_2_2; 41 - parsec = self.parsec_3_1_13_0; 42 - stm = self.stm_2_5_0_0; 43 - text = self.text_1_2_3_1; 44 - 45 - # https://github.com/bmillwood/applicative-quoters/issues/6 46 - applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch { 47 - url = "https://patch-diff.githubusercontent.com/raw/bmillwood/applicative-quoters/pull/7.patch"; 48 - sha256 = "026vv2k3ks73jngwifszv8l59clg88pcdr4mz0wr0gamivkfa1zy"; 49 - }); 50 - 51 - # Requires ghc 8.2 52 - ghc-proofs = dontDistribute super.ghc-proofs; 53 - 54 - # https://github.com/thoughtbot/yesod-auth-oauth2/pull/77 55 - yesod-auth-oauth2 = doJailbreak super.yesod-auth-oauth2; 56 - 57 - # https://github.com/nominolo/ghc-syb/issues/20 58 - ghc-syb-utils = dontCheck super.ghc-syb-utils; 59 - 60 - # Newer versions require ghc>=8.2 61 - apply-refact = super.apply-refact_0_3_0_1; 62 - 63 - # This builds needs the latest Cabal version. 64 - cabal2nix = super.cabal2nix.overrideScope (self: super: { Cabal = self.Cabal_2_0_1_1; }); 65 - 66 - # Add appropriate Cabal library to build this code. 67 - stack = addSetupDepend super.stack self.Cabal_2_0_1_1; 68 - 69 - # inline-c > 0.5.6.0 requires template-haskell >= 2.12 70 - inline-c = super.inline-c_0_5_6_1; 71 - inline-c-cpp = super.inline-c-cpp_0_1_0_0; 72 - 73 - # test dep hedgehog pulls in concurrent-output, which does not build 74 - # due to processing version mismatch 75 - either = dontCheck super.either; 76 - 77 - # test dep tasty has a version mismatch 78 - indents = dontCheck super.indents; 79 - 80 - # Newer versions require GHC 8.2. 81 - haddock-library = self.haddock-library_1_4_3; 82 - haddock-api = self.haddock-api_2_17_4; 83 - haddock = self.haddock_2_17_5; 84 - 85 - # GHC 8.0 doesn't have semigroups included by default 86 - ListLike = addBuildDepend super.ListLike self.semigroups; 87 - 88 - # Add missing build depedency for this compiler. 89 - base-compat-batteries = addBuildDepend super.base-compat-batteries self.bifunctors; 90 - 91 - }
-59
pkgs/development/haskell-modules/configuration-halvm-2.4.0.nix
··· 1 - { pkgs, haskellLib }: 2 - 3 - with haskellLib; 4 - 5 - self: super: { 6 - 7 - # Suitable LLVM version. 8 - llvmPackages = pkgs.llvmPackages_35; 9 - 10 - # Disable GHC 8.0.x core libraries. 11 - array = null; 12 - base = null; 13 - binary = null; 14 - bytestring = null; 15 - Cabal = null; 16 - containers = null; 17 - deepseq = null; 18 - directory = null; 19 - filepath = null; 20 - ghc-boot = null; 21 - ghc-boot-th = null; 22 - ghc-prim = null; 23 - ghci = null; 24 - haskeline = null; 25 - hoopl = null; 26 - hpc = null; 27 - integer-gmp = null; 28 - pretty = null; 29 - process = null; 30 - rts = null; 31 - template-haskell = null; 32 - terminfo = null; 33 - time = null; 34 - transformers = null; 35 - unix = null; 36 - xhtml = null; 37 - 38 - # cabal-install can use the native Cabal library. 39 - cabal-install = super.cabal-install.override { Cabal = null; }; 40 - 41 - # jailbreak-cabal can use the native Cabal library. 42 - jailbreak-cabal = super.jailbreak-cabal.override { Cabal = null; }; 43 - 44 - # https://github.com/bmillwood/applicative-quoters/issues/6 45 - applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch { 46 - url = "https://patch-diff.githubusercontent.com/raw/bmillwood/applicative-quoters/pull/7.patch"; 47 - sha256 = "026vv2k3ks73jngwifszv8l59clg88pcdr4mz0wr0gamivkfa1zy"; 48 - }); 49 - 50 - # https://github.com/christian-marie/xxhash/issues/3 51 - xxhash = doJailbreak super.xxhash; 52 - 53 - # https://github.com/Deewiant/glob/issues/8 54 - Glob = doJailbreak super.Glob; 55 - 56 - # http://hub.darcs.net/dolio/vector-algorithms/issue/9#comment-20170112T145715 57 - vector-algorithms = dontCheck super.vector-algorithms; 58 - 59 - }
-40
pkgs/top-level/haskell-packages.nix
··· 8 8 "ghc7103Binary" 9 9 "ghc821Binary" 10 10 "ghcjs" 11 - "ghcjs710" 12 - "ghcjs80" 13 11 "ghcjs82" 14 12 "ghcjs84" 15 13 "integer-simple" ··· 47 45 ghc7103Binary = callPackage ../development/compilers/ghc/7.10.3-binary.nix { }; 48 46 ghc821Binary = callPackage ../development/compilers/ghc/8.2.1-binary.nix { }; 49 47 50 - ghc7103 = callPackage ../development/compilers/ghc/7.10.3.nix { 51 - bootPkgs = packages.ghc7103Binary; 52 - buildLlvmPackages = buildPackages.llvmPackages_35; 53 - llvmPackages = pkgs.llvmPackages_35; 54 - }; 55 - ghc802 = callPackage ../development/compilers/ghc/8.0.2.nix { 56 - bootPkgs = packages.ghc7103Binary; 57 - inherit (buildPackages.python27Packages) sphinx; 58 - buildLlvmPackages = buildPackages.llvmPackages_37; 59 - llvmPackages = pkgs.llvmPackages_37; 60 - }; 61 48 ghc822 = callPackage ../development/compilers/ghc/8.2.2.nix { 62 49 bootPkgs = packages.ghc821Binary; 63 50 inherit (buildPackages.python3Packages) sphinx; 64 51 buildLlvmPackages = buildPackages.llvmPackages_39; 65 52 llvmPackages = pkgs.llvmPackages_39; 66 - }; 67 - ghc843 = callPackage ../development/compilers/ghc/8.4.3.nix { 68 - bootPkgs = packages.ghc821Binary; 69 - buildLlvmPackages = buildPackages.llvmPackages_5; 70 - llvmPackages = pkgs.llvmPackages_5; 71 53 }; 72 54 ghc844 = callPackage ../development/compilers/ghc/8.4.4.nix { 73 55 bootPkgs = packages.ghc821Binary; ··· 85 67 llvmPackages = pkgs.llvmPackages_5; 86 68 }; 87 69 ghcjs = compiler.ghcjs84; 88 - # Use `import` because `callPackage inside`. 89 - ghcjs710 = import ../development/compilers/ghcjs/7.10 { 90 - bootPkgs = packages.ghc7103; 91 - inherit (pkgs) cabal-install; 92 - inherit (buildPackages) fetchgit fetchFromGitHub; 93 - }; 94 - # `import` on purpose; see above. 95 - ghcjs80 = import ../development/compilers/ghcjs/8.0 { 96 - bootPkgs = packages.ghc802; 97 - inherit (pkgs) cabal-install; 98 - inherit (buildPackages) fetchgit fetchFromGitHub; 99 - }; 100 70 ghcjs82 = callPackage ../development/compilers/ghcjs-ng { 101 71 bootPkgs = packages.ghc822; 102 72 ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.2/git.json; ··· 126 96 # Always get compilers from `buildPackages` 127 97 packages = let bh = buildPackages.haskell; in { 128 98 129 - ghc7103 = callPackage ../development/haskell-modules { 130 - buildHaskellPackages = bh.packages.ghc7103; 131 - ghc = bh.compiler.ghc7103; 132 - compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { }; 133 - }; 134 99 ghc7103Binary = callPackage ../development/haskell-modules { 135 100 buildHaskellPackages = bh.packages.ghc7103Binary; 136 101 ghc = bh.compiler.ghc7103Binary; 137 102 compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-7.10.x.nix { }; 138 103 packageSetConfig = bootstrapPackageSet; 139 - }; 140 - ghc802 = callPackage ../development/haskell-modules { 141 - buildHaskellPackages = bh.packages.ghc802; 142 - ghc = bh.compiler.ghc802; 143 - compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.0.x.nix { }; 144 104 }; 145 105 ghc821Binary = callPackage ../development/haskell-modules { 146 106 buildHaskellPackages = bh.packages.ghc821Binary;