Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 34a21d6f2173
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8fae904eb6ac
Choose a head ref
  • 1 commit
  • 8 files changed
  • 1 contributor

Commits on Jan 29, 2021

  1. Fix ar command path in GHC.

    Previously, the "ar command" in the global config of GHC in nixpkgs is
    simply "ar" instead of a proper absolute path in the nix store. This
    will result in an "ar: command not found" error when using GHC and cabal
    in a pure nix shell. This commit adds the patch and applies to all
    pre-9.0 versions.
    
    See output of ghc --info for "ar command" value.
    TerrorJack authored and peti committed Jan 29, 2021
    Copy the full SHA
    8fae904 View commit details
10 changes: 10 additions & 0 deletions pkgs/development/compilers/ghc/8.10.1.nix
Original file line number Diff line number Diff line change
@@ -116,6 +116,16 @@ stdenv.mkDerivation (rec {

outputs = [ "out" "doc" ];

patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch
];

postPatch = "patchShebangs .";

# GHC is a bit confused on its cross terminology.
10 changes: 9 additions & 1 deletion pkgs/development/compilers/ghc/8.10.2.nix
Original file line number Diff line number Diff line change
@@ -107,8 +107,16 @@ stdenv.mkDerivation (rec {

outputs = [ "out" "doc" ];

# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch

# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
./issue-18549.patch
] ++ lib.optionals stdenv.isDarwin [
# Make Block.h compile with c++ compilers. Remove with the next release
10 changes: 9 additions & 1 deletion pkgs/development/compilers/ghc/8.10.3.nix
Original file line number Diff line number Diff line change
@@ -107,7 +107,15 @@ stdenv.mkDerivation (rec {

outputs = [ "out" "doc" ];

patches = lib.optionals stdenv.isDarwin [
patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch
] ++ stdenv.lib.optionals stdenv.isDarwin [
# Make Block.h compile with c++ compilers. Remove with the next release
(fetchpatch {
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
8 changes: 8 additions & 0 deletions pkgs/development/compilers/ghc/8.6.5.nix
Original file line number Diff line number Diff line change
@@ -110,6 +110,14 @@ stdenv.mkDerivation (rec {
outputs = [ "out" "doc" ];

patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch

(fetchpatch { # https://phabricator.haskell.org/D5123
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/13ff0b7ced097286e0d7b054f050871effe07f86.diff";
name = "D5123.diff";
10 changes: 10 additions & 0 deletions pkgs/development/compilers/ghc/8.8.2.nix
Original file line number Diff line number Diff line change
@@ -111,6 +111,16 @@ stdenv.mkDerivation (rec {

outputs = [ "out" "doc" ];

patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch
];

postPatch = "patchShebangs .";

# GHC is a bit confused on its cross terminology.
10 changes: 10 additions & 0 deletions pkgs/development/compilers/ghc/8.8.3.nix
Original file line number Diff line number Diff line change
@@ -116,6 +116,16 @@ stdenv.mkDerivation (rec {

outputs = [ "out" "doc" ];

patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch
];

postPatch = "patchShebangs .";

# GHC is a bit confused on its cross terminology.
10 changes: 10 additions & 0 deletions pkgs/development/compilers/ghc/8.8.4.nix
Original file line number Diff line number Diff line change
@@ -116,6 +116,16 @@ stdenv.mkDerivation (rec {

outputs = [ "out" "doc" ];

patches = [
# See upstream patch at
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
# from source distributions, the auto-generated configure script needs to be
# patched as well, therefore we use an in-tree patch instead of pulling the
# upstream patch. Don't forget to check backport status of the upstream patch
# when adding new GHC releases in nixpkgs.
./respect-ar-path.patch
];

postPatch = "patchShebangs .";

# GHC is a bit confused on its cross terminology.
25 changes: 25 additions & 0 deletions pkgs/development/compilers/ghc/respect-ar-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff -urd a/aclocal.m4 b/aclocal.m4
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1199,7 +1199,8 @@
# thinks that target == host so it never checks the unqualified
# tools for Windows. See #14274.
AC_DEFUN([FP_PROG_AR],
-[if test -z "$fp_prog_ar"; then
+[AC_SUBST(fp_prog_ar,$AR)
+if test -z "$fp_prog_ar"; then
if test "$HostOS" = "mingw32"
then
AC_PATH_PROG([fp_prog_ar], [ar])
diff -urd a/configure b/configure
--- a/configure
+++ b/configure
@@ -10744,6 +10744,8 @@
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'


+fp_prog_ar=$AR
+
if test -z "$fp_prog_ar"; then
if test "$HostOS" = "mingw32"
then