Skip to content

Commit db76c9e

Browse files
committed
zig_0_10: init at 0.10.1
On Linux, upgrade Zig to version 0.10.1. On macOS/Darwin, Zig version 0.10.1 is broken, so keep 0.9.1. Several Zig-using packages are broken with Zig version 0.10.1, so pin those packages to Zig version 0.9.1.
1 parent aea9b20 commit db76c9e

2 files changed

Lines changed: 99 additions & 9 deletions

File tree

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{ lib
2+
, stdenv
3+
, fetchFromGitHub
4+
, cmake
5+
, coreutils
6+
, llvmPackages
7+
, libxml2
8+
, zlib
9+
}:
10+
11+
stdenv.mkDerivation rec {
12+
pname = "zig";
13+
version = "0.10.1";
14+
15+
src = fetchFromGitHub {
16+
owner = "ziglang";
17+
repo = pname;
18+
rev = version;
19+
hash = "sha256-69QIkkKzApOGfrBdgtmxFMDytRkSh+0YiaJQPbXsBeo=";
20+
};
21+
22+
nativeBuildInputs = [
23+
cmake
24+
llvmPackages.llvm.dev
25+
];
26+
27+
buildInputs = [
28+
coreutils
29+
libxml2
30+
zlib
31+
] ++ (with llvmPackages; [
32+
libclang
33+
lld
34+
llvm
35+
]);
36+
37+
preBuild = ''
38+
export HOME=$TMPDIR;
39+
'';
40+
41+
postPatch = ''
42+
# Zig's build looks at /usr/bin/env to find dynamic linking info. This
43+
# doesn't work in Nix' sandbox. Use env from our coreutils instead.
44+
substituteInPlace lib/std/zig/system/NativeTargetInfo.zig --replace "/usr/bin/env" "${coreutils}/bin/env"
45+
'';
46+
47+
cmakeFlags = [
48+
# file RPATH_CHANGE could not write new RPATH
49+
"-DCMAKE_SKIP_BUILD_RPATH=ON"
50+
];
51+
52+
doCheck = true;
53+
installCheckPhase = ''
54+
$out/bin/zig test --cache-dir "$TMPDIR" -I $src/test $src/test/behavior.zig
55+
'';
56+
57+
meta = with lib; {
58+
homepage = "https://ziglang.org/";
59+
description =
60+
"General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software";
61+
license = licenses.mit;
62+
maintainers = with maintainers; [ aiotter andrewrk AndersonTorres ];
63+
platforms = platforms.unix;
64+
# Build fails on Darwin on both AArch64 and x86_64:
65+
# https://github.com/NixOS/nixpkgs/pull/210324#issuecomment-1381313616
66+
# https://github.com/NixOS/nixpkgs/pull/210324#issuecomment-1381236045
67+
broken = stdenv.isDarwin;
68+
};
69+
}

pkgs/top-level/all-packages.nix

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5355,9 +5355,13 @@ with pkgs;
53555355

53565356
rex = callPackage ../tools/system/rex { };
53575357

5358-
river = callPackage ../applications/window-managers/river { };
5358+
river = callPackage ../applications/window-managers/river {
5359+
zig = zig_0_9;
5360+
};
53595361

5360-
rivercarro = callPackage ../applications/misc/rivercarro { };
5362+
rivercarro = callPackage ../applications/misc/rivercarro {
5363+
zig = zig_0_9;
5364+
};
53615365

53625366
rmapi = callPackage ../applications/misc/remarkable/rmapi { };
53635367

@@ -7201,7 +7205,9 @@ with pkgs;
72017205

72027206
findutils = callPackage ../tools/misc/findutils { };
72037207

7204-
findup = callPackage ../tools/misc/findup { };
7208+
findup = callPackage ../tools/misc/findup {
7209+
zig = zig_0_9;
7210+
};
72057211

72067212
bsd-finger = callPackage ../tools/networking/bsd-finger { };
72077213
bsd-fingerd = bsd-finger.override({ buildClient = false; });
@@ -18732,7 +18738,9 @@ with pkgs;
1873218738

1873318739
ytt = callPackage ../development/tools/ytt {};
1873418740

18735-
zls = callPackage ../development/tools/zls { };
18741+
zls = callPackage ../development/tools/zls {
18742+
zig = zig_0_9;
18743+
};
1873618744

1873718745
zydis = callPackage ../development/libraries/zydis { };
1873818746

@@ -23745,7 +23753,12 @@ with pkgs;
2374523753
zig_0_9 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.9.1.nix {
2374623754
llvmPackages = llvmPackages_13;
2374723755
};
23748-
zig = zig_0_9;
23756+
# requires a newer Apple SDK
23757+
zig_0_10 = darwin.apple_sdk_11_0.callPackage ../development/compilers/zig/0.10.nix {
23758+
llvmPackages = llvmPackages_15;
23759+
};
23760+
# Zig 0.10.1 is broken on Darwin, so use 0.9.1 on Darwin instead.
23761+
zig = if stdenv.isDarwin then zig_0_9 else zig_0_10;
2374923762

2375023763
zimlib = callPackage ../development/libraries/zimlib { };
2375123764

@@ -30078,7 +30091,9 @@ with pkgs;
3007830091

3007930092
waybar = callPackage ../applications/misc/waybar {};
3008030093

30081-
waylock = callPackage ../applications/misc/waylock {};
30094+
waylock = callPackage ../applications/misc/waylock {
30095+
zig = zig_0_9;
30096+
};
3008230097

3008330098
wayshot = callPackage ../tools/misc/wayshot { };
3008430099

@@ -30995,7 +31010,9 @@ with pkgs;
3099531010

3099631011
merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
3099731012

30998-
mepo = callPackage ../applications/misc/mepo { };
31013+
mepo = callPackage ../applications/misc/mepo {
31014+
zig = zig_0_9;
31015+
};
3099931016

3100031017
meshcentral = callPackage ../tools/admin/meshcentral { };
3100131018

@@ -31635,7 +31652,9 @@ with pkgs;
3163531652

3163631653
netcoredbg = callPackage ../development/tools/misc/netcoredbg { };
3163731654

31638-
ncdu = callPackage ../tools/misc/ncdu { };
31655+
ncdu = callPackage ../tools/misc/ncdu {
31656+
zig = zig_0_9;
31657+
};
3163931658
ncdu_1 = callPackage ../tools/misc/ncdu/1.nix { };
3164031659

3164131660
ncdc = callPackage ../applications/networking/p2p/ncdc { };
@@ -34656,7 +34675,9 @@ with pkgs;
3465634675
inherit (perlPackages) PathTiny;
3465734676
};
3465834677

34659-
blackshades = callPackage ../games/blackshades { };
34678+
blackshades = callPackage ../games/blackshades {
34679+
zig = zig_0_9;
34680+
};
3466034681

3466134682
blobby = callPackage ../games/blobby { };
3466234683

0 commit comments

Comments
 (0)