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: 2314fb1bbfda
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: f7bc9886f9d5
Choose a head ref

Commits on Nov 25, 2019

  1. stdenv: Introduce hasCC attribute

    Before, we'd always use `cc = null`, and check for that. The problem is
    this breaks for cross compilation to platforms that don't support a C
    compiler.
    
    It's a very subtle issue. One might think there is no problem because we
    have `stdenvNoCC`, and presumably one would only build derivations that
    use that. The problem is that one still wants to use tools at build-time
    that are themselves built with a C compiler, and those are gotten via
    "splicing". The runtime version of those deps will explode, but the
    build time / `buildPackages` versions of those deps will be fine, and
    splicing attempts to work this by using `builtins.tryEval` to filter out
    any broken "higher priority" packages (runtime is the default and
    highest priority) so that both `foo` and `foo.nativeDrv` works.
    
    However, `tryEval` only catches certain evaluation failures (e.g.
    exceptions), and not arbitrary failures (such as `cc.attr` when `cc` is
    null). This means `tryEval` fails to let us use our build time deps, and
    everything comes apart.
    
    The right solution is, as usually, to get rid of splicing. Or, baring
    that, to make it so `foo` never works and one has to explicitly do
    `foo.*`. But that is a much larger change, and certaily one unsuitable
    to be backported to stable.
    
    Given that, we instead make an exception-throwing `cc` attribute, and
    create a `hasCC` attribute for those derivations which wish to
    condtionally use a C compiler: instead of doing `stdenv.cc or null ==
    null` or something similar, one does `stdenv.hasCC`. This allows quering
    without "tripping" the exception, while also allowing `tryEval` to work.
    
    No platform without a C compiler is yet wired up by default. That will
    be done in a following commit.
    Ericson2314 committed Nov 25, 2019
    Copy the full SHA
    63bd851 View commit details
  2. Add support for cross compiling to js-ghcjs

    This platform doesn't have a C compiler, and so relies and the changes
    in the previous commit to work.
    Ericson2314 committed Nov 25, 2019
    Copy the full SHA
    c739c42 View commit details
  3. haskell genenric-builder: Make the C compiler optional

    This is GHCJS, and perhaps other obscure targets.
    Ericson2314 committed Nov 25, 2019
    Copy the full SHA
    ea9a2c5 View commit details
  4. Fix lib tests

    js-ghcjs didn't fit in an existing categor.
    Ericson2314 committed Nov 25, 2019
    Copy the full SHA
    765d260 View commit details

Commits on Nov 26, 2019

  1. Fix lib tests

    js-ghcjs didn't fit in an existing categor.
    Ericson2314 committed Nov 26, 2019
    Copy the full SHA
    8737963 View commit details

Commits on Dec 24, 2019

  1. Copy the full SHA
    d3ecd5b View commit details
  2. Copy the full SHA
    2411aa5 View commit details
  3. ghcWithHoogle: Fix for cross

    Use `buildPackages.stdenv.mkDerivation` because we are making a shell
    script to start hoogle on the build platform.
    Ericson2314 committed Dec 24, 2019
    Copy the full SHA
    ad93663 View commit details
  4. Copy the full SHA
    46feec0 View commit details

Commits on Dec 25, 2019

  1. ghcjs: get socket.io from pkgsHostHost

    This is a bit dubvious, but the alternative of making nodejs a
    nativeBuildInput for node packages is worse. In general the cross story
    for interpreted languages is murky, and this fits that pattern.
    Ericson2314 committed Dec 25, 2019
    Copy the full SHA
    c3c245d View commit details
  2. Copy the full SHA
    4528f07 View commit details
  3. treewide: Check stdenv.isi686 before checking stdenv.cc.isGNU

    This makes us a bit more robust to various splicing nastiness. May splicing
    someday go so we don't have to resort to such hacks.
    John Cotton Ericson committed Dec 25, 2019
    Copy the full SHA
    95464f6 View commit details
  4. Merge branch 'ghcjs-cross-without-cc-common' into ghcjs-cross-without…

    …-cc-19.09
    John Cotton Ericson committed Dec 25, 2019
    Copy the full SHA
    c432f34 View commit details
  5. arrow-cpp: Check stdenv.isi686 before stdenv.cc.isGNU

    John Cotton Ericson committed Dec 25, 2019
    Copy the full SHA
    37290dd View commit details
  6. symlinkJoin: fix cross

    (cherry picked from commit 59dbb00)
    alyssais authored and Ericson2314 committed Dec 25, 2019
    Copy the full SHA
    ed6c877 View commit details
  7. Copy the full SHA
    6253af9 View commit details
  8. haskell generic-builder: Fix --with-ghc flag for GHCJS as cross

    Otherwise it passes `--with-ghc=ghc`, and we do the wrong thing.
    Ericson2314 committed Dec 25, 2019
    Copy the full SHA
    6a23c9d View commit details
  9. Copy the full SHA
    bb76903 View commit details
  10. Copy the full SHA
    d8dd301 View commit details
  11. Copy the full SHA
    49550f2 View commit details

Commits on Dec 30, 2019

  1. steam.chroot: add at-spi2-core

    Needed by CrossCode
    
    (cherry picked from commit 21958c0)
    Jonathan Ringer authored and bjornfor committed Dec 30, 2019
    Copy the full SHA
    5bbcc17 View commit details
  2. Copy the full SHA
    6078f09 View commit details
  3. Merge remote-tracking branch 'obsidian/ghcjs-cross-without-cc-common'…

    … into ghcjs-cross-without-cc-19.09
    Ericson2314 committed Dec 30, 2019
    Copy the full SHA
    d0c2696 View commit details

Commits on Dec 31, 2019

  1. Merge pull request #76545 from obsidiansystems/ghcjs-cross-without-cc…

    …-19.09
    
    stdenv, haskell: bonafied GHCJS cross compilation without stdenv.cc  for 19.09
    Ericson2314 authored Dec 31, 2019
    Copy the full SHA
    e3e26c9 View commit details
  2. opensc: 0.19.0 -> 0.20.0 (#76666)

    (cherry picked from commit a436604)
    erictapen authored and veprbl committed Dec 31, 2019
    Copy the full SHA
    2f3bbb5 View commit details
  3. nix: 2.3 -> 2.3.1

    (cherry picked from commit 3ab3614)
    edolstra authored and zimbatm committed Dec 31, 2019
    Copy the full SHA
    2ce54ed View commit details
  4. Merge pull request #76736 from zimbatm/release-19.09-nix-2.3.1

    nix: 2.3 -> 2.3.1
    flokli authored Dec 31, 2019
    Copy the full SHA
    cf17d0e View commit details
  5. linux: 4.14.160 -> 4.14.161

    (cherry picked from commit 62100c3)
    NeQuissimus committed Dec 31, 2019
    Copy the full SHA
    d29f193 View commit details
  6. linux: 4.19.91 -> 4.19.92

    (cherry picked from commit f9eae42)
    NeQuissimus committed Dec 31, 2019
    Copy the full SHA
    7fabfc2 View commit details
  7. linux: 5.4.6 -> 5.4.7

    (cherry picked from commit aa74012)
    NeQuissimus committed Dec 31, 2019
    Copy the full SHA
    02fa0e0 View commit details

Commits on Jan 1, 2020

  1. knot-dns: 2.8.4 -> 2.8.5

    Bugfixes; master has 2.9.x already.
    https://gitlab.labs.nic.cz/knot/knot-dns/tags/v2.8.5
    vcunat committed Jan 1, 2020
    Copy the full SHA
    a7191d0 View commit details
  2. Revert "nix: 2.3 -> 2.3.1"

    This reverts commit 2ce54ed.
    zimbatm committed Jan 1, 2020
    Copy the full SHA
    dce9dfa View commit details
  3. nix: 2.3 -> 2.3.1

    (cherry picked from commit 3ab3614)
    edolstra authored and flokli committed Jan 1, 2020
    Copy the full SHA
    88ed1af View commit details
  4. Don't create /nix/var/nix/{gcroots,per-user}/per-user with 1777 permi…

    …ssion
    
    In fact, don't create them at all because Nix does that automatically.
    
    Also remove modules/programs/shell.nix because everything it did is
    now done automatically by Nix.
    
    (cherry picked from commit 4e0d6a5)
    edolstra authored and flokli committed Jan 1, 2020
    Copy the full SHA
    487288f View commit details
  5. nix-daemon.nix: Use 'nix ping-store' to initialize directories

    (cherry picked from commit 27d2857)
    edolstra authored and flokli committed Jan 1, 2020
    Copy the full SHA
    13b4d10 View commit details
  6. nix-daemon.nix: Shut up warning

    (cherry picked from commit 9d0de0d)
    edolstra authored and flokli committed Jan 1, 2020
    Copy the full SHA
    e4ce888 View commit details
  7. Merge pull request #76785 from flokli/nix-2.3.1

    [19.09] nix: 2.3 -> 2.3.1
    flokli authored Jan 1, 2020
    Copy the full SHA
    cc52180 View commit details

Commits on Jan 2, 2020

  1. pythonPackages.pyjwt: fix tests

    Rationale for this backport: not entirely sure why this starts to fail
    now, but this change fixes the build on 19.09: https://hydra.nixos.org/build/109120376
    
    (cherry picked from commit 5cc8fdb)
    Jonathan Ringer authored and Ma27 committed Jan 2, 2020
    Copy the full SHA
    ad1e1af View commit details
  2. Copy the full SHA
    0b5c626 View commit details
  3. nginx: Clear Last-Modified if ETag is from store

    This is what I've suspected a while ago[1]:
    
    > Heads-up everyone: After testing this in a few production instances,
    > it seems that some browsers still get cache hits for new store paths
    > (and changed contents) for some reason. I highly suspect that it might
    > be due to the last-modified header (as mentioned in [2]).
    >
    > Going to test this with last-modified disabled for a little while and
    > if this is the case I think we should improve that patch by disabling
    > last-modified if serving from a store path.
    
    Much earlier[2] when I reviewed the patch, I wrote this:
    
    > Other than that, it looks good to me.
    >
    > However, I'm not sure what we should do with Last-Modified header.
    > From RFC 2616, section 13.3.4:
    >
    > - If both an entity tag and a Last-Modified value have been
    >   provided by the origin server, SHOULD use both validators in
    >   cache-conditional requests. This allows both HTTP/1.0 and
    >   HTTP/1.1 caches to respond appropriately.
    >
    > I'm a bit nervous about the SHOULD here, as user agents in the wild
    > could possibly just use Last-Modified and use the cached content
    > instead.
    
    Unfortunately, I didn't pursue this any further back then because
    @pbogdan noted[3] the following:
    
    > Hmm, could they (assuming they are conforming):
    >
    >  * If an entity tag has been provided by the origin server, MUST
    >    use that entity tag in any cache-conditional request (using If-
    >    Match or If-None-Match).
    
    Since running with this patch in some deployments, I found that both
    Firefox and Chrome/Chromium do NOT re-validate against the ETag if the
    Last-Modified header is still the same.
    
    So I wrote a small NixOS VM test with Geckodriver to have a test case
    which is closer to the real world and I indeed was able to reproduce
    this.
    
    Whether this is actually a bug in Chrome or Firefox is an entirely
    different issue and even IF it is the fault of the browsers and it is
    fixed at some point, we'd still need to handle this for older browser
    versions.
    
    Apart from clearing the header, I also recreated the patch by using a
    plain "git diff" with a small description on top. This should make it
    easier for future authors to work on that patch.
    
    [1]: NixOS/nixpkgs#48337 (comment)
    [2]: NixOS/nixpkgs#48337 (comment)
    [3]: NixOS/nixpkgs#48337 (comment)
    
    Signed-off-by: aszlig <aszlig@nix.build>
    (cherry picked from commit ccf55be)
    Reason: The issue breaks setups that serve static content via Nix store
            paths. I've also backported the NixOS VM test from Python to
            Perl.
    aszlig committed Jan 2, 2020
    Copy the full SHA
    f7bc988 View commit details
Showing with 197 additions and 152 deletions.
  1. +3 −0 lib/systems/doubles.nix
  2. +1 −1 lib/tests/systems.nix
  3. +4 −4 nixos/modules/installer/tools/nix-fallback-paths.nix
  4. +0 −1 nixos/modules/module-list.nix
  5. +0 −54 nixos/modules/programs/shell.nix
  6. +7 −13 nixos/modules/services/misc/nix-daemon.nix
  7. +1 −0 nixos/tests/all-tests.nix
  8. +87 −0 nixos/tests/nginx-etag.nix
  9. +1 −1 pkgs/build-support/bintools-wrapper/default.nix
  10. +1 −1 pkgs/build-support/cc-wrapper/default.nix
  11. +2 −2 pkgs/development/compilers/ghcjs-ng/default.nix
  12. +2 −2 pkgs/development/compilers/ghcjs/base.nix
  13. +9 −3 pkgs/development/haskell-modules/generic-builder.nix
  14. +3 −2 pkgs/development/haskell-modules/hoogle.nix
  15. +1 −1 pkgs/development/interpreters/perl/default.nix
  16. +5 −0 pkgs/development/python-modules/pyjwt/default.nix
  17. +1 −0 pkgs/games/steam/chrootenv.nix
  18. +2 −2 pkgs/os-specific/linux/kernel/linux-4.14.nix
  19. +2 −2 pkgs/os-specific/linux/kernel/linux-4.19.nix
  20. +2 −2 pkgs/os-specific/linux/kernel/linux-5.4.nix
  21. +2 −2 pkgs/servers/dns/knot-dns/default.nix
  22. +5 −13 pkgs/servers/http/nginx/nix-etag-1.15.4.patch
  23. +2 −2 pkgs/servers/matrix-synapse/default.nix
  24. +10 −3 pkgs/stdenv/booter.nix
  25. +7 −1 pkgs/stdenv/cross/default.nix
  26. +13 −3 pkgs/stdenv/generic/default.nix
  27. +2 −2 pkgs/tools/package-management/nix/default.nix
  28. +2 −20 pkgs/tools/security/opensc/default.nix
  29. +14 −14 pkgs/top-level/all-packages.nix
  30. +5 −0 pkgs/top-level/release-cross.nix
  31. +1 −1 pkgs/top-level/stage.nix
3 changes: 3 additions & 0 deletions lib/systems/doubles.nix
Original file line number Diff line number Diff line change
@@ -27,6 +27,8 @@ let
"riscv32-linux" "riscv64-linux"

"aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none"

"js-ghcjs"
];

allParsed = map parse.mkSystemFromString all;
@@ -45,6 +47,7 @@ in {
x86_64 = filterDoubles predicates.isx86_64;
mips = filterDoubles predicates.isMips;
riscv = filterDoubles predicates.isRiscV;
js = filterDoubles predicates.isJavaScript;

cygwin = filterDoubles predicates.isCygwin;
darwin = filterDoubles predicates.isDarwin;
2 changes: 1 addition & 1 deletion lib/tests/systems.nix
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@ let
expected = lib.sort lib.lessThan y;
};
in with lib.systems.doubles; lib.runTests {
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded);
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ js);

testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "arm-none" "armv7a-darwin" ];
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
8 changes: 4 additions & 4 deletions nixos/modules/installer/tools/nix-fallback-paths.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
x86_64-linux = "/nix/store/3ds3cgji9vjxdbgp10av6smyym1126d1-nix-2.3";
i686-linux = "/nix/store/ln1ndqvfpc9cdl03vqxi6kvlxm9wfv9g-nix-2.3";
aarch64-linux = "/nix/store/n8a1rwzrp20qcr2c4hvyn6c5q9zx8csw-nix-2.3";
x86_64-darwin = "/nix/store/jq6npmpld02sz4rgniz0qrsdfnm6j17a-nix-2.3";
x86_64-linux = "/nix/store/6chjfy4j6hjwj5f8zcbbdg02i21x1qsi-nix-2.3.1";
i686-linux = "/nix/store/xa8z7fwszjjm4kiwrxfc8xv9c1pzzm7a-nix-2.3.1";
aarch64-linux = "/nix/store/8cac1ivcnchlpzmdjby2f71l1fwpnymr-nix-2.3.1";
x86_64-darwin = "/nix/store/6639l9815ggdnb4aka22qcjy7p8w4hb9-nix-2.3.1";
}
1 change: 0 additions & 1 deletion nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
@@ -142,7 +142,6 @@
./programs/seahorse.nix
./programs/slock.nix
./programs/shadow.nix
./programs/shell.nix
./programs/spacefm.nix
./programs/singularity.nix
./programs/ssh.nix
54 changes: 0 additions & 54 deletions nixos/modules/programs/shell.nix

This file was deleted.

20 changes: 7 additions & 13 deletions nixos/modules/services/misc/nix-daemon.nix
Original file line number Diff line number Diff line change
@@ -479,21 +479,15 @@ in

services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers;

# FIXME: use systemd-tmpfiles to create Nix directories.
system.activationScripts.nix = stringAfter [ "etc" "users" ]
''
# Nix initialisation.
install -m 0755 -d \
/nix/var/nix/gcroots \
/nix/var/nix/temproots \
/nix/var/nix/userpool \
/nix/var/nix/profiles \
/nix/var/nix/db \
/nix/var/log/nix/drvs
install -m 1777 -d \
/nix/var/nix/gcroots/per-user \
/nix/var/nix/profiles/per-user \
/nix/var/nix/gcroots/tmp
# Create directories in /nix.
${nix}/bin/nix ping-store --no-net
# Subscribe the root user to the NixOS channel by default.
if [ ! -e "/root/.nix-channels" ]; then
echo "${config.system.defaultChannel} nixos" > "/root/.nix-channels"
fi
'';

nix.systemFeatures = mkDefault (
1 change: 1 addition & 0 deletions nixos/tests/all-tests.nix
Original file line number Diff line number Diff line change
@@ -195,6 +195,7 @@ in
nfs4 = handleTest ./nfs.nix { version = 4; };
nghttpx = handleTest ./nghttpx.nix {};
nginx = handleTest ./nginx.nix {};
nginx-etag = handleTest ./nginx-etag.nix {};
nginx-sso = handleTest ./nginx-sso.nix {};
nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
87 changes: 87 additions & 0 deletions nixos/tests/nginx-etag.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import ./make-test.nix {
name = "nginx-etag";

nodes = {
server = { pkgs, lib, ... }: {
networking.firewall.enable = false;
services.nginx.enable = true;
services.nginx.virtualHosts.server = {
root = pkgs.runCommand "testdir" {} ''
mkdir "$out"
cat > "$out/test.js" <<EOF
document.getElementById('foobar').setAttribute('foo', 'bar');
EOF
cat > "$out/index.html" <<EOF
<!DOCTYPE html>
<div id="foobar">test</div>
<script src="test.js"></script>
EOF
'';
};

nesting.clone = lib.singleton {
services.nginx.virtualHosts.server = {
root = lib.mkForce (pkgs.runCommand "testdir2" {} ''
mkdir "$out"
cat > "$out/test.js" <<EOF
document.getElementById('foobar').setAttribute('foo', 'yay');
EOF
cat > "$out/index.html" <<EOF
<!DOCTYPE html>
<div id="foobar">test</div>
<script src="test.js"></script>
EOF
'');
};
};
};

client = { pkgs, lib, ... }: {
virtualisation.memorySize = 512;
environment.systemPackages = let
testRunner = pkgs.writers.writePython3Bin "test-runner" {
libraries = [ pkgs.python3Packages.selenium ];
} ''
import os
import time
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument('--headless')
driver = Firefox(options=options)
driver.implicitly_wait(20)
driver.get('http://server/')
driver.find_element_by_xpath('//div[@foo="bar"]')
open('/tmp/passed_stage1', 'w')
while not os.path.exists('/tmp/proceed'):
time.sleep(0.5)
driver.get('http://server/')
driver.find_element_by_xpath('//div[@foo="yay"]')
open('/tmp/passed', 'w')
'';
in [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
};
};

testScript = { nodes, ... }: let
inherit (nodes.server.config.system.build) toplevel;
newSystem = "${toplevel}/fine-tune/child-1";
in ''
startAll;
$server->waitForUnit('nginx.service');
$client->waitForUnit('multi-user.target');
$client->execute('test-runner &');
$client->waitForFile('/tmp/passed_stage1');
$server->succeed('${newSystem}/bin/switch-to-configuration test >&2');
$client->succeed('touch /tmp/proceed');
$client->waitForFile('/tmp/passed');
'';
}
2 changes: 1 addition & 1 deletion pkgs/build-support/bintools-wrapper/default.nix
Original file line number Diff line number Diff line change
@@ -66,7 +66,7 @@ let
else null;

expand-response-params =
if buildPackages.stdenv.cc or null != null && buildPackages.stdenv.cc != "/dev/null"
if buildPackages ? stdenv && buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"
then import ../expand-response-params { inherit (buildPackages) stdenv; }
else "";

2 changes: 1 addition & 1 deletion pkgs/build-support/cc-wrapper/default.nix
Original file line number Diff line number Diff line change
@@ -59,7 +59,7 @@ let
infixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;

expand-response-params =
if buildPackages.stdenv.cc or null != null && buildPackages.stdenv.cc != "/dev/null"
if buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"
then import ../expand-response-params { inherit (buildPackages) stdenv; }
else "";

4 changes: 2 additions & 2 deletions pkgs/development/compilers/ghcjs-ng/default.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{ stdenv
, pkgsHostHost
, callPackage
, fetchgit
, ghcjsSrcJson ? null
@@ -14,7 +15,6 @@
, pkgconfig
, gcc
, lib
, nodePackages
, ghcjsDepOverrides ? (_:_:{})
, haskell
}:
@@ -46,7 +46,7 @@ let

enableShared = true;

socket-io = nodePackages."socket.io";
socket-io = pkgsHostHost.nodePackages."socket.io";

# Relics of the old GHCJS build system
stage1Packages = [];
4 changes: 2 additions & 2 deletions pkgs/development/compilers/ghcjs/base.nix
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@
, alex, happy, git, gnumake, autoconf, patch
, automake, libtool
, cryptohash
, haddock, hspec, xhtml, pkgs
, haddock, hspec, xhtml, pkgs, pkgsHostHost
, coreutils
, libiconv

@@ -137,7 +137,7 @@ in mkDerivation ({
isCross = true;
isGhcjs = true;
inherit nodejs ghcjsBoot;
socket-io = pkgs.nodePackages."socket.io";
socket-io = pkgsHostHost.nodePackages."socket.io";
haskellCompilerName = "ghcjs-${version}";

# let us assume ghcjs is never actually cross compiled
12 changes: 9 additions & 3 deletions pkgs/development/haskell-modules/generic-builder.nix
Original file line number Diff line number Diff line change
@@ -40,7 +40,7 @@ in
# They must be propagated to the environment of any executable linking with the library
, libraryFrameworkDepends ? [], executableFrameworkDepends ? []
, homepage ? "https://hackage.haskell.org/package/${pname}"
, platforms ? with stdenv.lib.platforms; unix ++ windows # GHC can cross-compile
, platforms ? with stdenv.lib.platforms; all # GHC can cross-compile
, hydraPlatforms ? null
, hyperlinkSource ? true
, isExecutable ? false, isLibrary ? !isExecutable
@@ -131,9 +131,13 @@ let
'';

crossCabalFlags = [
"--with-ghc=${ghc.targetPrefix}ghc"
"--with-ghc=${ghcCommand}"
"--with-ghc-pkg=${ghc.targetPrefix}ghc-pkg"
"--with-gcc=${stdenv.cc.targetPrefix}cc"
# Pass the "wrong" C compiler rather than none at all so packages that just
# use the C preproccessor still work, see
# https://github.com/haskell/cabal/issues/6466 for details.
"--with-gcc=${(if stdenv.hasCC then stdenv else buildPackages.stdenv).cc.targetPrefix}cc"
] ++ optionals stdenv.hasCC [
"--with-ld=${stdenv.cc.bintools.targetPrefix}ld"
"--with-ar=${stdenv.cc.bintools.targetPrefix}ar"
# use the one that comes with the cross compiler.
@@ -156,7 +160,9 @@ let
"--libsubdir=\\$abi/\\$libname"
(optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
(optionalString enableSeparateDocOutput "--docdir=${docdir "$doc"}")
] ++ optionals stdenv.hasCC [
"--with-gcc=$CC" # Clang won't work without that extra information.
] ++ [
"--package-db=$packageConfDir"
(optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.name}/${pname}-${version}")
(optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
5 changes: 3 additions & 2 deletions pkgs/development/haskell-modules/hoogle.nix
Original file line number Diff line number Diff line change
@@ -23,7 +23,8 @@
# This will build mmorph and monadControl, and have the hoogle installation
# refer to their documentation via symlink so they are not garbage collected.

{ lib, stdenv, hoogle, writeText, ghc
{ lib, stdenv, buildPackages
, hoogle, writeText, ghc
, packages
}:

@@ -53,7 +54,7 @@ let
(map (lib.getOutput "doc") packages);

in
stdenv.mkDerivation {
buildPackages.stdenv.mkDerivation {
name = "hoogle-local-0.1";
buildInputs = [ghc hoogle];

2 changes: 1 addition & 1 deletion pkgs/development/interpreters/perl/default.nix
Original file line number Diff line number Diff line change
@@ -136,7 +136,7 @@ let
substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
--replace "${libcInc}" /no-such-path \
--replace "${
if stdenv.cc.cc or null != null then stdenv.cc.cc else "/no-such-path"
if stdenv.hasCC then stdenv.cc.cc else "/no-such-path"
}" /no-such-path \
--replace "${stdenv.cc}" /no-such-path \
--replace "$man" /no-such-path
5 changes: 5 additions & 0 deletions pkgs/development/python-modules/pyjwt/default.nix
Original file line number Diff line number Diff line change
@@ -19,6 +19,11 @@ buildPythonPackage rec {
substituteInPlace setup.py --replace "pytest>=4.0.1,<5.0.0" "pytest"
'';

# ecdsa changed internal behavior
checkPhase = ''
pytest tests -k 'not ec_verify_should_return_false_if_signature_invalid'
'';

meta = with lib; {
description = "JSON Web Token implementation in Python";
homepage = https://github.com/jpadilla/pyjwt;
1 change: 1 addition & 0 deletions pkgs/games/steam/chrootenv.nix
Original file line number Diff line number Diff line change
@@ -79,6 +79,7 @@ in buildFHSUserEnv rec {

# Not formally in runtime but needed by some games
at-spi2-atk
at-spi2-core # CrossCode
gst_all_1.gstreamer
gst_all_1.gst-plugins-ugly
libdrm
4 changes: 2 additions & 2 deletions pkgs/os-specific/linux/kernel/linux-4.14.nix
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
with stdenv.lib;

buildLinux (args // rec {
version = "4.14.160";
version = "4.14.161";

# modDirVersion needs to be x.y.z, will automatically add .0 if needed
modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {

src = fetchurl {
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
sha256 = "0b59xyr8if0qcbnwqa88y275g9rzhjbbp8589i8xxpmws6x2c0y6";
sha256 = "1jc1izlvgymp9x61r4yz2xhplwmp6x8laxqj9wy33iz6a2gn48wx";
};
} // (args.argsOverride or {}))
Loading