diff --git a/pkgs/development/compilers/ghc/8.10.4.nix b/pkgs/development/compilers/ghc/8.10.6.nix similarity index 97% rename from pkgs/development/compilers/ghc/8.10.4.nix rename to pkgs/development/compilers/ghc/8.10.6.nix index 07784c4264797..f1223deed85e5 100644 --- a/pkgs/development/compilers/ghc/8.10.4.nix +++ b/pkgs/development/compilers/ghc/8.10.6.nix @@ -2,7 +2,7 @@ # build-tools , bootPkgs -, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx +, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx, xattr , bash , libiconv ? null, ncurses @@ -135,12 +135,12 @@ let in stdenv.mkDerivation (rec { - version = "8.10.4"; + version = "8.10.6"; name = "${targetPrefix}ghc-${version}"; src = fetchurl { url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz"; - sha256 = "03li4k10hxgyxcdyyz2092wx09spr1599hi0sxbh4m889qdqgbsj"; + sha256 = "43afba72a533408b42c1492bd047b5e37e5f7204e41a5cedd3182cc841610ce9"; }; enableParallelBuilding = true; @@ -155,9 +155,6 @@ stdenv.mkDerivation (rec { # upstream patch. Don't forget to check backport status of the upstream patch # when adding new GHC releases in nixpkgs. ./respect-ar-path.patch - # Fix documentation configuration which causes a syntax error with sphinx 4.* - # See https://gitlab.haskell.org/ghc/ghc/-/issues/19962, remove at 8.10.6. - ./sphinx-4-configuration.patch ] ++ lib.optionals stdenv.isDarwin [ # Make Block.h compile with c++ compilers. Remove with the next release (fetchpatch { @@ -192,6 +189,9 @@ stdenv.mkDerivation (rec { export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" '' + lib.optionalString stdenv.isDarwin '' export NIX_LDFLAGS+=" -no_dtrace_dof" + + # GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7 + export XATTR=${lib.getBin xattr}/bin/xattr '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' 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 '' + lib.optionalString targetPlatform.isMusl '' diff --git a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix index 23bd3dd3267f4..3b57693a28c11 100644 --- a/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix +++ b/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix @@ -1,4 +1,4 @@ -{ lib, supportedGhcVersions ? [ "884" "8104" ], stdenv, haskellPackages +{ lib, supportedGhcVersions ? [ "884" "8106" ], stdenv, haskellPackages , haskell }: # # The recommended way to override this package is diff --git a/pkgs/os-specific/darwin/xattr/default.nix b/pkgs/os-specific/darwin/xattr/default.nix new file mode 100644 index 0000000000000..1aa8b49e88aa8 --- /dev/null +++ b/pkgs/os-specific/darwin/xattr/default.nix @@ -0,0 +1,73 @@ +{ lib +, stdenv +, fetchzip +, buildPythonPackage +, python +, ed +, unifdef +}: + +buildPythonPackage rec { + pname = "xattr"; + version = "61.60.1"; + + src = fetchzip rec { + url = "https://opensource.apple.com/tarballs/python_modules/python_modules-${version}.tar.gz"; + sha256 = "19kydl7w4vpdi7zmfd5z9vjkq24jfk2cv4j0pppw69j06czhdwwi"; + }; + + sourceRoot = "${src.name}/Modules/xattr-0.6.4"; + format = "other"; + + nativeBuildInputs = [ + ed + unifdef + ]; + + makeFlags = [ + "OBJROOT=$(PWD)" + "DSTROOT=${placeholder "out"}" + "OSL=${placeholder "doc"}/share/xattr/OpenSourceLicenses" + "OSV=${placeholder "doc"}/share/xattr/OpenSourceVersions" + ]; + + # need to use `out` instead of `bin` since buildPythonPackage ignores the latter + outputs = [ "out" "doc" "python" ]; + + # We need to patch a reference to gnutar in an included Makefile + postUnpack = '' + chmod u+w $sourceRoot/.. + ''; + + postPatch = '' + substituteInPlace ../Makefile.inc --replace gnutar tar + substituteInPlace Makefile --replace "/usr" "" + ''; + + preInstall = '' + # prevent setup.py from trying to download setuptools + sed -i xattr-*/setup.py -e '/ez_setup/d' + + # create our custom target dirs we patch in + mkdir -p "$doc/share/xattr/"OpenSource{Licenses,Versions} + mkdir -p "$python/lib/${python.libPrefix}" + ''; + + # move python package to its own output to reduce clutter + postInstall = '' + mv "$out/lib/python" "$python/${python.sitePackages}" + rmdir "$out/lib" + ''; + + makeWrapperArgs = [ + "--prefix" "PYTHONPATH" ":" "${placeholder "python"}/${python.sitePackages}" + ]; + + meta = with lib; { + description = "Display and manipulate extended attributes"; + license = [ licenses.psfl licenses.mit ]; # see $doc/share/xattr/OpenSourceLicenses + maintainers = [ maintainers.sternenseemann ]; + homepage = "https://opensource.apple.com/source/python_modules/"; + platforms = lib.platforms.darwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5adcfd589b8de..8e4ca985ee92c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11411,7 +11411,7 @@ with pkgs; # Please update doc/languages-frameworks/haskell.section.md, “Our # current default compiler is”, if you bump this: - haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc8104; + haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc8106; inherit (haskellPackages) ghc; diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index a7f29d6726118..2e031e27307a8 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -156,6 +156,8 @@ impure-cmds // appleSourcePackages // chooseLibs // { usr-include = callPackage ../os-specific/darwin/usr-include { }; + xattr = pkgs.python3Packages.callPackage ../os-specific/darwin/xattr { }; + inherit (pkgs.callPackages ../os-specific/darwin/xcode { }) xcode_8_1 xcode_8_2 xcode_9_1 xcode_9_2 xcode_9_4 xcode_9_4_1 diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 86a09b4a1fad1..d60c20f38e0d2 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -68,7 +68,7 @@ in { buildLlvmPackages = buildPackages.llvmPackages_7; llvmPackages = pkgs.llvmPackages_7; }; - ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix { + ghc8106 = callPackage ../development/compilers/ghc/8.10.6.nix { # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 || stdenv.targetPlatform.isMusl then @@ -76,6 +76,10 @@ in { else packages.ghc865Binary; inherit (buildPackages.python3Packages) sphinx; + # Need to use apple's patched xattr until + # https://github.com/xattr/xattr/issues/44 and + # https://github.com/xattr/xattr/issues/55 are solved. + inherit (buildPackages.darwin) xattr; buildLlvmPackages = buildPackages.llvmPackages_9; llvmPackages = pkgs.llvmPackages_9; }; @@ -147,9 +151,9 @@ in { ghc = bh.compiler.ghc884; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { }; }; - ghc8104 = callPackage ../development/haskell-modules { - buildHaskellPackages = bh.packages.ghc8104; - ghc = bh.compiler.ghc8104; + ghc8106 = callPackage ../development/haskell-modules { + buildHaskellPackages = bh.packages.ghc8106; + ghc = bh.compiler.ghc8106; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { }; }; ghc901 = callPackage ../development/haskell-modules { diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 400635740eae9..d68b0605dddbd 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -50,7 +50,7 @@ let # list of all compilers to test specific packages on all = with compilerNames; [ ghc884 - ghc8104 + ghc8106 ghc901 ]; @@ -300,12 +300,12 @@ let # package sets (like Cabal, jailbreak-cabal) are # working as expected. cabal-install = all; - Cabal_3_6_0_0 = with compilerNames; [ ghc884 ghc8104 ]; + Cabal_3_6_0_0 = with compilerNames; [ ghc884 ghc8106 ]; cabal2nix-unstable = all; funcmp = all; # Doesn't currently work on ghc-9.0: # https://github.com/haskell/haskell-language-server/issues/297 - haskell-language-server = with compilerNames; [ ghc884 ghc8104 ]; + haskell-language-server = with compilerNames; [ ghc884 ghc8106 ]; hoogle = all; hsdns = all; jailbreak-cabal = all;