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.
This commit is contained in:
parent
2a0677fd9a
commit
643169bbb4
@ -116,6 +116,16 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
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 .";
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
# GHC is a bit confused on its cross terminology.
|
||||||
|
@ -107,8 +107,16 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
|
|
||||||
patches = [
|
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
|
./issue-18549.patch
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
# Make Block.h compile with c++ compilers. Remove with the next release
|
||||||
|
@ -107,7 +107,15 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
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
|
# Make Block.h compile with c++ compilers. Remove with the next release
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
||||||
|
@ -110,6 +110,14 @@ stdenv.mkDerivation (rec {
|
|||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
patches = [
|
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
|
(fetchpatch { # https://phabricator.haskell.org/D5123
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/13ff0b7ced097286e0d7b054f050871effe07f86.diff";
|
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/13ff0b7ced097286e0d7b054f050871effe07f86.diff";
|
||||||
name = "D5123.diff";
|
name = "D5123.diff";
|
||||||
|
@ -111,6 +111,16 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
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 .";
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
# GHC is a bit confused on its cross terminology.
|
||||||
|
@ -116,6 +116,16 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
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 .";
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
# GHC is a bit confused on its cross terminology.
|
||||||
|
@ -116,6 +116,16 @@ stdenv.mkDerivation (rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
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 .";
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
# GHC is a bit confused on its cross terminology.
|
||||||
|
25
pkgs/development/compilers/ghc/respect-ar-path.patch
Normal file
25
pkgs/development/compilers/ghc/respect-ar-path.patch
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user