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: c6884523e943
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: 03928bebe995
Choose a head ref
  • 16 commits
  • 22 files changed
  • 10 contributors

Commits on Jun 8, 2018

  1. nixos: Add option networking.networkmanager.dynamicHosts

    This allows non-privileged users to configure local DNS
    entries by editing hosts files read by NetworkManager's dnsmasq
    instance.
    rickynils committed Jun 8, 2018
    Copy the full SHA
    e6c3d5a View commit details

Commits on Jun 30, 2018

  1. llvm6: 6.0.0 -> 6.0.1

    (cherry picked from commit 4a8104a)
    
    Pick wasn't entirely clean, required touchup because on master
    compiler-rt is split into separate expression (and file),
    which just meant the hash to update was in default.nix instead :).
    dtzWill committed Jun 30, 2018
    Copy the full SHA
    2817cf2 View commit details
  2. llvm_6: refresh sanitizers-non-gnu patch

    (cherry picked from commit 8cd268a)
    dtzWill committed Jun 30, 2018
    Copy the full SHA
    73ef59e View commit details

Commits on Jul 1, 2018

  1. multimc: 0.6.1 -> 0.6.2

    (cherry picked from commit c52beb1)
    Madouura authored and worldofpeace committed Jul 1, 2018
    Copy the full SHA
    5bae582 View commit details
  2. multimc: create compatibility symlink to fix desktop icon

    (cherry picked from commit be47f95)
    Kevin Liu authored and worldofpeace committed Jul 1, 2018
    Copy the full SHA
    7749573 View commit details

Commits on Jul 2, 2018

  1. ghc: add version 8.4.3

    (cherry picked from commit deeeb50)
    Signed-off-by: Domen Kožar <domen@dev.si>
    peti authored and domenkozar committed Jul 2, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    domenkozar Domen Kožar
    Copy the full SHA
    949bddf View commit details

Commits on Jul 3, 2018

  1. Merge pull request #41715 from rickynils/networkmanager-dynamichosts

    nixos: Add option networking.networkmanager.dynamicHosts
    rickynils authored Jul 3, 2018

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    dad6f73 View commit details
  2. Copy the full SHA
    5a56600 View commit details
  3. linux: 4.4.138 -> 4.4.139

    (cherry picked from commit e7270cbf16caa61b6bb51c9b7e8dc228a6f6b8ab)
    NeQuissimus committed Jul 3, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    NeQuissimus Tim Steinbach
    Copy the full SHA
    923fd70 View commit details
  4. linux: 4.9.110 -> 4.9.111

    (cherry picked from commit 389d8b28ec3221d49f74448957a12242018ff8d2)
    NeQuissimus committed Jul 3, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    NeQuissimus Tim Steinbach
    Copy the full SHA
    20c0898 View commit details
  5. linux: 4.14.52 -> 4.14.53

    (cherry picked from commit d5b62b1575744b1b67339cafbea6df3d076a76fa)
    NeQuissimus committed Jul 3, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    NeQuissimus Tim Steinbach
    Copy the full SHA
    c8bdf68 View commit details
  6. Merge pull request #42825 from dtzWill/update/llvm-6.0.1-staging-18.03

    llvm6: 6.0.0 -> 6.0.1 (18.03 edition)
    dtzWill authored Jul 3, 2018

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    330ba50 View commit details
  7. Merge pull request #42847 from worldofpeace/multimc-picked

     multimc: create compatibility symlink to fix desktop icon (18.03)
    infinisil authored Jul 3, 2018

    Verified

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

Commits on Jul 4, 2018

  1. ghc: fix dylib load command limits in compiler version 8.x

    See https://phabricator.haskell.org/D4714 for the full details.
    This will be part of ghc 8.6.
    
    Closes NixOS/nixpkgs#40877.
    
    (cherry picked from commit 4b2ecea)
    Signed-off-by: Domen Kožar <domen@dev.si>
    angerman authored and domenkozar committed Jul 4, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    domenkozar Domen Kožar
    Copy the full SHA
    56fad14 View commit details
  2. knot-resolver: 2.3.0 -> 2.4.0

    It includes security-relevant fixes.
    https://gitlab.labs.nic.cz/knot/knot-resolver/tags/v2.4.0
    
    (cherry picked from commit ea8b0fa)
    vcunat committed Jul 4, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    vcunat Vladimír Čunát
    Copy the full SHA
    b6646cb View commit details

Commits on Jul 5, 2018

  1. hipchat: 4.30.4.1672 -> 4.30.5.1676

    (cherry picked from commit 0753601e8211c570b6d1cf6525c1ca8ef5e96d09)
    NeQuissimus committed Jul 5, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    NeQuissimus Tim Steinbach
    Copy the full SHA
    03928be View commit details
86 changes: 81 additions & 5 deletions nixos/modules/services/networking/networkmanager.nix
Original file line number Diff line number Diff line change
@@ -6,6 +6,9 @@ with lib;
let
cfg = config.networking.networkmanager;

dynamicHostsEnabled =
cfg.dynamicHosts.enable && cfg.dynamicHosts.hostsDirs != {};

# /var/lib/misc is for dnsmasq.leases.
stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";

@@ -253,6 +256,51 @@ in {
so you don't need to to that yourself.
'';
};

dynamicHosts = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Enabling this option requires the
<option>networking.networkmanager.useDnsmasq</option> option to be
enabled too. If enabled, the directories defined by the
<option>networking.networkmanager.dynamicHosts.hostsDirs</option>
option will be set up when the service starts. The dnsmasq instance
managed by NetworkManager will then watch those directories for
hosts files (see the <literal>--hostsdir</literal> option of
dnsmasq). This way a non-privileged user can add or override DNS
entries on the local system (depending on what hosts directories
that are configured)..
'';
};
hostsDirs = mkOption {
type = with types; attrsOf (submodule {
options = {
user = mkOption {
type = types.str;
default = "root";
description = ''
The user that will own the hosts directory.
'';
};
group = mkOption {
type = types.str;
default = "root";
description = ''
The group that will own the hosts directory.
'';
};
};
});
default = {};
description = ''
Defines a set of directories (relative to
<literal>/run/NetworkManager/hostdirs</literal>) that dnsmasq will
watch for hosts files.
'';
};
};
};
};

@@ -261,10 +309,17 @@ in {

config = mkIf cfg.enable {

assertions = [{
assertion = config.networking.wireless.enable == false;
message = "You can not use networking.networkmanager with networking.wireless";
}];
assertions = [
{ assertion = config.networking.wireless.enable == false;
message = "You can not use networking.networkmanager with networking.wireless";
}
{ assertion = !dynamicHostsEnabled || (dynamicHostsEnabled && cfg.useDnsmasq);
message = ''
To use networking.networkmanager.dynamicHosts you also need to enable
networking.networkmanager.useDnsmasq
'';
}
];

environment.etc = with cfg.basePackages; [
{ source = configFile;
@@ -298,7 +353,13 @@ in {
++ lib.imap1 (i: s: {
inherit (s) source;
target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
}) cfg.dispatcherScripts;
}) cfg.dispatcherScripts
++ optional (dynamicHostsEnabled)
{ target = "NetworkManager/dnsmasq.d/dyndns.conf";
text = concatMapStrings (n: ''
hostsdir=/run/NetworkManager/hostsdirs/${n}
'') (attrNames cfg.dynamicHosts.hostsDirs);
};

environment.systemPackages = cfg.packages;

@@ -334,6 +395,21 @@ in {
'';
};

systemd.services.nm-setup-hostsdirs = mkIf dynamicHostsEnabled {
wantedBy = [ "network-manager.service" ];
before = [ "network-manager.service" ];
partOf = [ "network-manager.service" ];
script = concatStrings (mapAttrsToList (n: d: ''
mkdir -p "/run/NetworkManager/hostsdirs/${n}"
chown "${d.user}:${d.group}" "/run/NetworkManager/hostsdirs/${n}"
chmod 0775 "/run/NetworkManager/hostsdirs/${n}"
'') cfg.dynamicHosts.hostsDirs);
serviceConfig = {
Type = "oneshot";
RemainAfterExist = true;
};
};

# Turn off NixOS' network management
networking = {
useDHCP = false;
Original file line number Diff line number Diff line change
@@ -3,8 +3,7 @@
, libGL, xcbutilkeysyms, xdg_utils, libtool }:

let

version = "4.30.4.1672";
version = "4.30.5.1676";

rpath = stdenv.lib.makeLibraryPath [
xdg_utils
@@ -39,22 +38,13 @@ let
systemd
libGL
] + ":${stdenv.cc.cc.lib}/lib64";

src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
sha256 = "1xrwndhbyhcmjcg8h1ib8lp1g51f7jxdhc6p7776zmhlfw94n3rx";
}
else
throw "HipChat is not supported on ${stdenv.system}";

in

stdenv.mkDerivation {
in stdenv.mkDerivation {
name = "hipchat-${version}";

inherit src;
src = fetchurl {
url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
sha256 = "1fmvarq7zf1cnah2d1l7rxhbiw3dmjcxsldys5is63y204hdh04y";
};

buildInputs = [ makeWrapper ];

3 changes: 2 additions & 1 deletion pkgs/development/compilers/ghc/8.0.2.nix
Original file line number Diff line number Diff line change
@@ -84,7 +84,8 @@ stdenv.mkDerivation rec {
extraPrefix = "libraries/Cabal/";
})
] ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch
++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch;
++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;

# GHC is a bit confused on its cross terminology.
preConfigure = ''
3 changes: 2 additions & 1 deletion pkgs/development/compilers/ghc/8.2.2.nix
Original file line number Diff line number Diff line change
@@ -95,7 +95,8 @@ stdenv.mkDerivation rec {
(fetchpatch { # Backport of https://phabricator.haskell.org/D4388 for more determinism
url = "https://github.com/shlevy/ghc/commit/fec1b8d3555c447c0d8da0e96b659be67c8bb4bc.patch";
sha256 = "1lyysz6hfd1njcigpm8xppbnkadqfs0kvrp7s8vqgb38pjswj5hg";
});
})
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;

postPatch = "patchShebangs .";

3 changes: 2 additions & 1 deletion pkgs/development/compilers/ghc/8.4.1.nix
Original file line number Diff line number Diff line change
@@ -92,7 +92,8 @@ stdenv.mkDerivation rec {
(fetchpatch { # https://phabricator.haskell.org/D4388 for more determinism
url = "https://github.com/shlevy/ghc/commit/8b2dbd869d1a64de3e99fa8b1c9bb1140eee7099.patch";
sha256 = "0hxpiwhbg64rsyjdr4psh6dwyp58b96mad3adccvfr0x8hc6ba2m";
});
})
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;

postPatch = "patchShebangs .";

210 changes: 210 additions & 0 deletions pkgs/development/compilers/ghc/8.4.3.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
{ stdenv, targetPackages
, buildPlatform, hostPlatform, targetPlatform

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

, libffi, libiconv ? null, ncurses

, useLLVM ? !targetPlatform.isx86
, # LLVM is conceptually a run-time-only depedendency, but for
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
# build-time dependency too.
buildLlvmPackages, llvmPackages

, # 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

, # 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.isWindows && !targetPlatform.useAndroidPrebuilt

, # 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;

let
inherit (bootPkgs) ghc;

# TODO(@Ericson2314) Make unconditional
targetPrefix = stdenv.lib.optionalString
(targetPlatform != hostPlatform)
"${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) ''
Stage1Only = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
GhcLibHcOpts += -fPIC
GhcRtsHcOpts += -fPIC
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
EXTRA_CC_OPTS += -std=gnu99
'';

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

toolsForTarget =
if hostPlatform == buildPlatform then
[ targetPackages.stdenv.cc ] ++ stdenv.lib.optional useLLVM llvmPackages.llvm
else assert targetPlatform == hostPlatform; # build != host == target
[ stdenv.cc ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;

targetCC = builtins.head toolsForTarget;

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

src = fetchurl {
url = "https://downloads.haskell.org/~ghc/${version}/ghc-${version}-src.tar.xz";
sha256 = "1mk046vb561j75saz05rghhbkps46ym5aci4264dwc2qk3dayixf";
};

enableParallelBuilding = true;

outputs = [ "out" "doc" ];

patches = [(fetchpatch {
url = "https://git.haskell.org/hsc2hs.git/patch/738f3666c878ee9e79c3d5e819ef8b3460288edf";
sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
extraPrefix = "utils/hsc2hs/";
stripLen = 1;
})]
++ 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
export "''${env#TARGET_}=''${!env}"
done
# GHC is a bit confused on its cross terminology, as these would normally be
# the *host* tools.
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}"
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
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) ''
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
export NIX_LDFLAGS+=" -no_dtrace_dof"
'';

# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ]
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
# `--with` flags for libraries needed for RTS linker
configureFlags = [
"--datadir=$doc/share/doc/ghc"
"--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" && !targetPlatform.isWindows) [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
"--enable-bootstrap-with-devel-snapshot"
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
"CFLAGS=-fuse-ld=gold"
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
"--disable-large-address-space"
];

# Make sure we never relax`$PATH` and hooks support for compatability.
strictDeps = true;

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

# For building runtime libs
depsBuildTarget = toolsForTarget;

buildInputs = libDeps hostPlatform;

propagatedBuildInputs = [ targetPackages.stdenv.cc ]
++ stdenv.lib.optional useLLVM llvmPackages.llvm;

depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);

# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";

checkTarget = "test";

hardeningDisable = [ "format" ];

postInstall = ''
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
# Patch scripts to include "readelf" and "cat" in $PATH.
for i in "$out/bin/"*; do
test ! -h $i || continue
egrep --quiet '^#!' <(head -n 1 $i) || continue
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
done
'';

passthru = {
inherit bootPkgs targetPrefix;

inherit llvmPackages;

# Our Cabal compiler name
haskellCompilerName = "ghc-8.4.3";
};

meta = {
homepage = http://haskell.org/ghc;
description = "The Glasgow Haskell Compiler";
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
inherit (ghc.meta) license platforms;
};

}
Loading