Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
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-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6f193b4f903d
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 97e376bf9caf
Choose a head ref
  • 17 commits
  • 10 files changed
  • 5 contributors

Commits on May 23, 2018

  1. haskell-generic-builder: Add extra framework dirs

    Just like with the other `--extra-*` flags, cc/ld-wrapper already handles
    this, but we need to make Cabal aware so that the haskell builds have
    the correct metadata.
    Ericson2314 committed May 23, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    513cd3d View commit details
  2. haskell generic builder: setupHaskellDepends should be `nativeBuild…

    …Inputs
    
    This is because they are just for Setup.hs, so they are just used at build time
    and completely isolated from the normal components' dependencies.
    
    This was previous implemented in 8a8f040, but
    reverted in e69c7f5 because it broken
    setup-depends non-cross in haskell shell environments (custom Setup.hs in cross
    shell environments has never worked). This version adds a special native
    exception to avoid that breakage.
    Ericson2314 committed May 23, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    e1b9419 View commit details
  3. Partially verified

    This commit is signed with the committer’s verified signature. The key has been revoked.
    joachifm’s contribution has been verified via GPG key.
    We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
    Copy the full SHA
    38fbdcc View commit details
  4. haskell generic builder: Disable static libs on Windows because no -s…

    …taticlib
    
    The reason why this does not work is not that we can't built static
    objects, we can, but we can't use `-staticlib` on GHC on windows.
    `-staticlib` rolls all dependencies into a combined archive. While this
    would work on windows if we used gnu ar and MRI script, GHC can't rely
    on GNU ar, and as such has a quick archive concatenation module for GNU
    and BSD archives only.
    angerman authored and Ericson2314 committed May 23, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    a4d5dbd View commit details
  5. Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    affeb0c View commit details
  6. haskell infra: Adds buildFlags logic

    angerman authored and Ericson2314 committed May 23, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    87afa66 View commit details
  7. Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    63e5b3c View commit details
  8. Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    9ce15ea View commit details
  9. Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    1978115 View commit details
  10. ghc: paxmark all unwraped executables across the board

    Shell glob works even as the exact set of executable (filenames) varries
    beween configuations. Need to skip non ELFs (e.g. shell scripts),
    however.
    angerman authored and Ericson2314 committed May 23, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    10b76a4 View commit details
  11. Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    c7458de View commit details
  12. ghc 8.4.2, head: Drop libiconv on windows.

    nixpkgs#37012 and  nixpkgs#37707 introduces the setup-hooks for libiconv, which inject `-liconv` into the `NIX_LDFLAGS`. This breaks horribly on windows where the linker end up having no idea how to linke `-liconv`. The configure.ac file specifically ignores libiconv on windows.
    angerman authored and Ericson2314 committed May 23, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    fe1eec9 View commit details

Commits on May 25, 2018

  1. gopass: 1.6.11 -> 1.7.1 (#41078)

    dywedir authored and dotlambda committed May 25, 2018

    Verified

    This commit was signed with the committer’s verified signature. The key has been revoked.
    joachifm Joachim F.
    Copy the full SHA
    a0c480a View commit details
  2. Merge pull request #40996 from obsidiansystems/cross-ghc

    ghc, haskell-infra: #40929 take 2
    Ericson2314 authored May 25, 2018

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    ce0180d View commit details
  3. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    2e70a75 View commit details
  4. Copy the full SHA
    0fd98c6 View commit details
  5. Merge pull request #41084 from obsidiansystems/fix-darwin-haskell

    haskell generic-builder: Limit usage of --extra-framework-dirs on Darwin for compat
    Ericson2314 authored May 25, 2018
    Copy the full SHA
    97e376b View commit details
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ in {
stable = mkTelegram stableVersion;
preview = mkTelegram (stableVersion // {
stable = false;
version = "1.2.21";
sha256Hash = "0s7dywyz8p626741m32l4a90l1x01564xg2g10gvdb25s2phdfdl";
version = "1.2.22";
sha256Hash = "0kni4gb6z1c22bhx8z27q4934bg3dngk69xcwykbidm32ijmmsc5";
});
}
16 changes: 13 additions & 3 deletions pkgs/development/compilers/ghc/7.10.3.nix
Original file line number Diff line number Diff line change
@@ -24,6 +24,10 @@
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? true

, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}:

assert !enableIntegerSimple -> gmp != null;
@@ -42,11 +46,14 @@ let
};

buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES
HADDOCK_DOCS = NO
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
@@ -68,7 +75,6 @@ let
targetCC = builtins.head toolsForTarget;

in

stdenv.mkDerivation rec {
version = "7.10.3";
name = "${targetPrefix}ghc-${version}";
@@ -87,6 +93,8 @@ stdenv.mkDerivation rec {
./relocation.patch
];

postPatch = "patchShebangs .";

# GHC is a bit confused on its cross terminology.
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
@@ -103,6 +111,7 @@ stdenv.mkDerivation rec {
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@@ -135,7 +144,8 @@ stdenv.mkDerivation rec {
crossConfig = true;

nativeBuildInputs = [
ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour
perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42
ghc hscolour
];

# For building runtime libs
24 changes: 19 additions & 5 deletions pkgs/development/compilers/ghc/8.0.2.nix
Original file line number Diff line number Diff line change
@@ -23,6 +23,10 @@
, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? true

, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}:

assert !enableIntegerSimple -> gmp != null;
@@ -36,11 +40,14 @@ let
"${targetPlatform.config}-";

buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES
HADDOCK_DOCS = NO
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
@@ -87,6 +94,8 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;

postPatch = "patchShebangs .";

# GHC is a bit confused on its cross terminology.
preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
@@ -103,6 +112,7 @@ stdenv.mkDerivation rec {
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@@ -134,7 +144,10 @@ stdenv.mkDerivation rec {
# masss-rebuild.
crossConfig = true;

nativeBuildInputs = [ ghc perl hscolour sphinx ];
nativeBuildInputs = [
perl sphinx
ghc hscolour
];

# For building runtime libs
depsBuildTarget = toolsForTarget;
@@ -151,10 +164,11 @@ stdenv.mkDerivation rec {
# that in turn causes GHCi to abort
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";

# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition.
postInstall = ''
paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
for bin in "$out"/lib/${name}/bin/*; do
isELF "$bin" || continue
paxmark m "$bin"
done
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
26 changes: 17 additions & 9 deletions pkgs/development/compilers/ghc/8.2.2.nix
Original file line number Diff line number Diff line change
@@ -23,10 +23,11 @@

, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ?
!(targetPlatform.isDarwin
# On iOS, dynamic linking is not supported
&& (targetPlatform.isAarch64 || targetPlatform.isAarch32))
enableShared ? true

, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
, # Whether to backport https://phabricator.haskell.org/D4388 for
# deterministic profiling symbol names, at the cost of a slightly
# non-standard GHC API
@@ -44,11 +45,14 @@ let
"${targetPlatform.config}-";

buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
@@ -153,7 +157,10 @@ stdenv.mkDerivation rec {
# masss-rebuild.
crossConfig = true;

nativeBuildInputs = [ alex autoconf autoreconfHook automake ghc happy hscolour perl python3 sphinx ];
nativeBuildInputs = [
autoconf autoreconfHook automake perl python3 sphinx
ghc alex happy hscolour
];

# For building runtime libs
depsBuildTarget = toolsForTarget;
@@ -172,10 +179,11 @@ stdenv.mkDerivation rec {

checkTarget = "test";

# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition.
postInstall = ''
paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
for bin in "$out"/lib/${name}/bin/*; do
isELF "$bin" || continue
paxmark m "$bin"
done
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
38 changes: 25 additions & 13 deletions pkgs/development/compilers/ghc/8.4.2.nix
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@

# build-tools
, bootPkgs, alex, happy
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4

, libffi, libiconv ? null, ncurses

@@ -15,16 +15,21 @@

, # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library.
enableIntegerSimple ? false, gmp ? null, m4
enableIntegerSimple ? false, gmp ? null

, # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? targetPlatform != hostPlatform

, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? !targetPlatform.useAndroidPrebuilt
enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt

, version ? "8.4.2"
, # Whetherto build terminfo.
enableTerminfo ? !targetPlatform.isWindows

, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}:

assert !enableIntegerSimple -> gmp != null;
@@ -38,11 +43,14 @@ let
"${targetPlatform.config}-";

buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
@@ -55,9 +63,9 @@ let
'';

# Splicer will pull out correct variations
libDeps = platform: [ ncurses ]
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;

toolsForTarget =
if hostPlatform == buildPlatform then
@@ -69,7 +77,7 @@ let

in
stdenv.mkDerivation rec {
inherit version;
version = "8.4.2";
name = "${targetPrefix}ghc-${version}";

src = fetchurl {
@@ -126,7 +134,7 @@ stdenv.mkDerivation rec {
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [
"--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
"--enable-bootstrap-with-devel-snapshot"
@@ -144,7 +152,10 @@ stdenv.mkDerivation rec {
# masss-rebuild.
crossConfig = true;

nativeBuildInputs = [ ghc perl autoconf automake m4 happy alex python3 ];
nativeBuildInputs = [
perl autoconf automake m4 python3
ghc alex happy
];

# For building runtime libs
depsBuildTarget = toolsForTarget;
@@ -163,10 +174,11 @@ stdenv.mkDerivation rec {

checkTarget = "test";

# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition.
postInstall = ''
paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
for bin in "$out"/lib/${name}/bin/*; do
isELF "$bin" || continue
paxmark m "$bin"
done
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
33 changes: 23 additions & 10 deletions pkgs/development/compilers/ghc/head.nix
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@

# build-tools
, bootPkgs, alex, happy
, autoconf, automake, coreutils, fetchgit, perl, python3
, autoconf, automake, coreutils, fetchgit, perl, python3, m4

, libffi, libiconv ? null, ncurses

@@ -22,9 +22,15 @@

, # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built.
enableShared ? !targetPlatform.useAndroidPrebuilt
enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt

, # Whetherto build terminfo.
enableTerminfo ? !targetPlatform.isWindows

, version ? "8.5.20180118"
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}:

assert !enableIntegerSimple -> gmp != null;
@@ -38,11 +44,14 @@ let
"${targetPlatform.config}-";

buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
@@ -55,9 +64,9 @@ let
'';

# Splicer will pull out correct variations
libDeps = platform: [ ncurses ]
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;

toolsForTarget =
if hostPlatform == buildPlatform then
@@ -123,7 +132,7 @@ stdenv.mkDerivation rec {
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [
"--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
"--enable-bootstrap-with-devel-snapshot"
@@ -141,7 +150,10 @@ stdenv.mkDerivation rec {
# masss-rebuild.
crossConfig = true;

nativeBuildInputs = [ ghc perl autoconf automake happy alex python3 ];
nativeBuildInputs = [
perl autoconf automake m4 python3
ghc alex happy
];

# For building runtime libs
depsBuildTarget = toolsForTarget;
@@ -160,10 +172,11 @@ stdenv.mkDerivation rec {

checkTarget = "test";

# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition.
postInstall = ''
paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
for bin in "$out"/lib/${name}/bin/*; do
isELF "$bin" || continue
paxmark m "$bin"
done
# Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
Loading