[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
59/60: gnu: zig: Respect the PKG_CONFIG environment variable.
From: |
guix-commits |
Subject: |
59/60: gnu: zig: Respect the PKG_CONFIG environment variable. |
Date: |
Mon, 18 Nov 2024 07:16:56 -0500 (EST) |
hako pushed a commit to branch wip-zig-bootstrap
in repository guix.
commit 2b78d03a8ab752dba202ac98db5e62684e208e6c
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Sat Nov 16 23:35:14 2024 +0200
gnu: zig: Respect the PKG_CONFIG environment variable.
* gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch: New
file.
* gnu/packages/patches/zig-0.10-build-respect-PKG_CONFIG-env-var.patch: New
file.
* gnu/packages/patches/zig-0.11-build-respect-PKG_CONFIG-env-var.patch: New
file.
* gnu/packages/patches/zig-0.12-build-respect-PKG_CONFIG-env-var.patch: New
file.
* gnu/packages/patches/zig-0.13-build-respect-PKG_CONFIG-env-var.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Register them.
* gnu/packages/zig.scm
(zig-0.9,zig-0.10,zig-0.11,zig-0.12,zig-0.13)[source]:
Add patches.
* guix/build/zig-build-system.scm (configure): set PKG_CONFIG.
Change-Id: I0abf871c6990144fc472191bf1167aa2fc765161
---
gnu/local.mk | 5 +++
...zig-0.10-build-respect-PKG_CONFIG-env-var.patch | 48 ++++++++++++++++++++++
...zig-0.11-build-respect-PKG_CONFIG-env-var.patch | 48 ++++++++++++++++++++++
...zig-0.12-build-respect-PKG_CONFIG-env-var.patch | 48 ++++++++++++++++++++++
...zig-0.13-build-respect-PKG_CONFIG-env-var.patch | 48 ++++++++++++++++++++++
.../zig-0.9-build-respect-PKG_CONFIG-env-var.patch | 48 ++++++++++++++++++++++
gnu/packages/zig.scm | 5 +++
guix/build/zig-build-system.scm | 8 ++++
8 files changed, 258 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5f6e40b3ec..56b111565c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2368,22 +2368,27 @@ dist_patch_DATA =
\
%D%/packages/patches/xygrib-newer-proj.patch \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/zig-0.9-add-GUIX_ZIG_GLIBC_LINKER.patch \
+ %D%/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.9-fix-runpath.patch \
%D%/packages/patches/zig-0.9-riscv-support.patch \
%D%/packages/patches/zig-0.9-use-baseline-cpu-by-default.patch \
%D%/packages/patches/zig-0.9-use-system-paths.patch \
+ %D%/packages/patches/zig-0.10-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.10-fix-runpath.patch \
%D%/packages/patches/zig-0.10-use-system-paths.patch \
%D%/packages/patches/zig-0.10.0-610-bootstrap-resolve-conflicts.patch
\
%D%/packages/patches/zig-0.10.0-675-TypeOf-hack.patch \
%D%/packages/patches/zig-0.10.0-747-CallOptions.patch \
%D%/packages/patches/zig-0.10.0-1638-re-add-qualCast.patch \
+ %D%/packages/patches/zig-0.11-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.11-fix-runpath.patch \
%D%/packages/patches/zig-0.11-use-system-paths.patch \
%D%/packages/patches/zig-0.12-add-GUIX_ZIG_GLIBC_LINKER.patch \
+ %D%/packages/patches/zig-0.12-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.12-fix-runpath.patch \
%D%/packages/patches/zig-0.12-use-baseline-cpu-by-default.patch \
%D%/packages/patches/zig-0.12-use-system-paths.patch \
+ %D%/packages/patches/zig-0.13-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zsh-egrep-failing-test.patch \
%D%/packages/patches/zuo-bin-sh.patch
diff --git
a/gnu/packages/patches/zig-0.10-build-respect-PKG_CONFIG-env-var.patch
b/gnu/packages/patches/zig-0.10-build-respect-PKG_CONFIG-env-var.patch
new file mode 100644
index 0000000000..a2a93a2711
--- /dev/null
+++ b/gnu/packages/patches/zig-0.10-build-respect-PKG_CONFIG-env-var.patch
@@ -0,0 +1,48 @@
+From eb630302e42f4f565d44f9894c5ab832b99267e2 Mon Sep 17 00:00:00 2001
+From: Hilton Chain <hako@ultrarare.space>
+Date: Sun, 17 Nov 2024 18:08:21 +0800
+Subject: [PATCH 1/5] zig build: respect `PKG_CONFIG` environment variable
+
+[Upstream commit: d263f1ec0eb988f0e4ed1859351f5040f590996b]
+
+`PKG_CONFIG` environment variable is used to override path to
+pkg-config executable, for example when it's name is prepended by
+target triple for cross-compilation purposes:
+
+```
+PKG_CONFIG=/usr/bin/aarch64-unknown-linux-gnu-pkgconf zig build
+```
+
+Signed-off-by: Eric Joldasov <bratishkaerik@landless-city.net>
+---
+ lib/std/build.zig | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/std/build.zig b/lib/std/build.zig
+index 1b9a61beb6..2fa6afa12d 100644
+--- a/lib/std/build.zig
++++ b/lib/std/build.zig
+@@ -1284,7 +1284,8 @@ pub const Builder = struct {
+ }
+
+ fn execPkgConfigList(self: *Builder, out_code: *u8) (PkgConfigError ||
ExecError)![]const PkgConfigPkg {
+- const stdout = try self.execAllowFail(&[_][]const u8{ "pkg-config",
"--list-all" }, out_code, .Ignore);
++ const pkg_config_exe = self.env_map.get("PKG_CONFIG") orelse
"pkg-config";
++ const stdout = try self.execAllowFail(&[_][]const u8{ pkg_config_exe,
"--list-all" }, out_code, .Ignore);
+ var list = ArrayList(PkgConfigPkg).init(self.allocator);
+ errdefer list.deinit();
+ var line_it = mem.tokenize(u8, stdout, "\r\n");
+@@ -2113,8 +2114,9 @@ pub const LibExeObjStep = struct {
+ };
+
+ var code: u8 = undefined;
++ const pkg_config_exe = self.builder.env_map.get("PKG_CONFIG") orelse
"pkg-config";
+ const stdout = if (self.builder.execAllowFail(&[_][]const u8{
+- "pkg-config",
++ pkg_config_exe,
+ pkg_name,
+ "--cflags",
+ "--libs",
+--
+2.46.0
+
diff --git
a/gnu/packages/patches/zig-0.11-build-respect-PKG_CONFIG-env-var.patch
b/gnu/packages/patches/zig-0.11-build-respect-PKG_CONFIG-env-var.patch
new file mode 100644
index 0000000000..ef7110c32f
--- /dev/null
+++ b/gnu/packages/patches/zig-0.11-build-respect-PKG_CONFIG-env-var.patch
@@ -0,0 +1,48 @@
+From 0cdc9eedd666478ab6d0ca168ea7f7da91f94f2b Mon Sep 17 00:00:00 2001
+From: Eric Joldasov <bratishkaerik@landless-city.net>
+Date: Wed, 8 May 2024 23:21:34 +0500
+Subject: [PATCH 1/5] zig build: respect `PKG_CONFIG` environment variable
+
+[Upstream commit: d263f1ec0eb988f0e4ed1859351f5040f590996b]
+
+`PKG_CONFIG` environment variable is used to override path to
+pkg-config executable, for example when it's name is prepended by
+target triple for cross-compilation purposes:
+
+```
+PKG_CONFIG=/usr/bin/aarch64-unknown-linux-gnu-pkgconf zig build
+```
+
+Signed-off-by: Eric Joldasov <bratishkaerik@landless-city.net>
+---
+ lib/std/Build/Step/Compile.zig | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
+index 335a7e2df7..1def445ef0 100644
+--- a/lib/std/Build/Step/Compile.zig
++++ b/lib/std/Build/Step/Compile.zig
+@@ -792,8 +792,9 @@ fn runPkgConfig(self: *Compile, lib_name: []const u8)
![]const []const u8 {
+ };
+
+ var code: u8 = undefined;
++ const pkg_config_exe = b.env_map.get("PKG_CONFIG") orelse "pkg-config";
+ const stdout = if (b.execAllowFail(&[_][]const u8{
+- "pkg-config",
++ pkg_config_exe,
+ pkg_name,
+ "--cflags",
+ "--libs",
+@@ -2147,7 +2148,8 @@ pub fn doAtomicSymLinks(
+ }
+
+ fn execPkgConfigList(self: *std.Build, out_code: *u8) (PkgConfigError ||
ExecError)![]const PkgConfigPkg {
+- const stdout = try self.execAllowFail(&[_][]const u8{ "pkg-config",
"--list-all" }, out_code, .Ignore);
++ const pkg_config_exe = self.env_map.get("PKG_CONFIG") orelse "pkg-config";
++ const stdout = try self.execAllowFail(&[_][]const u8{ pkg_config_exe,
"--list-all" }, out_code, .Ignore);
+ var list = ArrayList(PkgConfigPkg).init(self.allocator);
+ errdefer list.deinit();
+ var line_it = mem.tokenizeAny(u8, stdout, "\r\n");
+--
+2.46.0
+
diff --git
a/gnu/packages/patches/zig-0.12-build-respect-PKG_CONFIG-env-var.patch
b/gnu/packages/patches/zig-0.12-build-respect-PKG_CONFIG-env-var.patch
new file mode 100644
index 0000000000..e2d6305f50
--- /dev/null
+++ b/gnu/packages/patches/zig-0.12-build-respect-PKG_CONFIG-env-var.patch
@@ -0,0 +1,48 @@
+From 80c90add63c44f2e06c73c13400d044a81078602 Mon Sep 17 00:00:00 2001
+From: Eric Joldasov <bratishkaerik@landless-city.net>
+Date: Wed, 8 May 2024 23:21:34 +0500
+Subject: [PATCH 1/5] zig build: respect `PKG_CONFIG` environment variable
+
+[Upstream commit: d263f1ec0eb988f0e4ed1859351f5040f590996b]
+
+`PKG_CONFIG` environment variable is used to override path to
+pkg-config executable, for example when it's name is prepended by
+target triple for cross-compilation purposes:
+
+```
+PKG_CONFIG=/usr/bin/aarch64-unknown-linux-gnu-pkgconf zig build
+```
+
+Signed-off-by: Eric Joldasov <bratishkaerik@landless-city.net>
+---
+ lib/std/Build/Step/Compile.zig | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
+index 5bf0805e79..58ff3a0df6 100644
+--- a/lib/std/Build/Step/Compile.zig
++++ b/lib/std/Build/Step/Compile.zig
+@@ -703,8 +703,9 @@ fn runPkgConfig(self: *Compile, lib_name: []const u8)
!PkgConfigResult {
+ };
+
+ var code: u8 = undefined;
++ const pkg_config_exe = b.graph.env_map.get("PKG_CONFIG") orelse
"pkg-config";
+ const stdout = if (b.runAllowFail(&[_][]const u8{
+- "pkg-config",
++ pkg_config_exe,
+ pkg_name,
+ "--cflags",
+ "--libs",
+@@ -1824,7 +1825,8 @@ pub fn doAtomicSymLinks(
+ }
+
+ fn execPkgConfigList(self: *std.Build, out_code: *u8) (PkgConfigError ||
RunError)![]const PkgConfigPkg {
+- const stdout = try self.runAllowFail(&[_][]const u8{ "pkg-config",
"--list-all" }, out_code, .Ignore);
++ const pkg_config_exe = self.graph.env_map.get("PKG_CONFIG") orelse
"pkg-config";
++ const stdout = try self.runAllowFail(&[_][]const u8{ pkg_config_exe,
"--list-all" }, out_code, .Ignore);
+ var list = ArrayList(PkgConfigPkg).init(self.allocator);
+ errdefer list.deinit();
+ var line_it = mem.tokenizeAny(u8, stdout, "\r\n");
+--
+2.46.0
+
diff --git
a/gnu/packages/patches/zig-0.13-build-respect-PKG_CONFIG-env-var.patch
b/gnu/packages/patches/zig-0.13-build-respect-PKG_CONFIG-env-var.patch
new file mode 100644
index 0000000000..09126eed9e
--- /dev/null
+++ b/gnu/packages/patches/zig-0.13-build-respect-PKG_CONFIG-env-var.patch
@@ -0,0 +1,48 @@
+From adc58a23c88f3f2004993043e36d72950fd12d00 Mon Sep 17 00:00:00 2001
+From: Eric Joldasov <bratishkaerik@landless-city.net>
+Date: Wed, 8 May 2024 23:21:34 +0500
+Subject: [PATCH] zig build: respect `PKG_CONFIG` environment variable
+
+[Upstream commit: d263f1ec0eb988f0e4ed1859351f5040f590996b.]
+
+`PKG_CONFIG` environment variable is used to override path to
+pkg-config executable, for example when it's name is prepended by
+target triple for cross-compilation purposes:
+
+```
+PKG_CONFIG=/usr/bin/aarch64-unknown-linux-gnu-pkgconf zig build
+```
+
+Signed-off-by: Eric Joldasov <bratishkaerik@landless-city.net>
+---
+ lib/std/Build/Step/Compile.zig | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
+index d18d8de413..fdc641f802 100644
+--- a/lib/std/Build/Step/Compile.zig
++++ b/lib/std/Build/Step/Compile.zig
+@@ -701,8 +701,9 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8)
!PkgConfigResult {
+ };
+
+ var code: u8 = undefined;
++ const pkg_config_exe = b.graph.env_map.get("PKG_CONFIG") orelse
"pkg-config";
+ const stdout = if (b.runAllowFail(&[_][]const u8{
+- "pkg-config",
++ pkg_config_exe,
+ pkg_name,
+ "--cflags",
+ "--libs",
+@@ -1823,7 +1824,8 @@ pub fn doAtomicSymLinks(
+ }
+
+ fn execPkgConfigList(compile: *std.Build, out_code: *u8) (PkgConfigError ||
RunError)![]const PkgConfigPkg {
+- const stdout = try compile.runAllowFail(&[_][]const u8{ "pkg-config",
"--list-all" }, out_code, .Ignore);
++ const pkg_config_exe = compile.graph.env_map.get("PKG_CONFIG") orelse
"pkg-config";
++ const stdout = try compile.runAllowFail(&[_][]const u8{ pkg_config_exe,
"--list-all" }, out_code, .Ignore);
+ var list = ArrayList(PkgConfigPkg).init(compile.allocator);
+ errdefer list.deinit();
+ var line_it = mem.tokenizeAny(u8, stdout, "\r\n");
+--
+2.46.0
+
diff --git
a/gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch
b/gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch
new file mode 100644
index 0000000000..a1b41fcc55
--- /dev/null
+++ b/gnu/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch
@@ -0,0 +1,48 @@
+From 302d9fe6de6572f82c77c63585f77edb858197d7 Mon Sep 17 00:00:00 2001
+From: Hilton Chain <hako@ultrarare.space>
+Date: Sun, 17 Nov 2024 18:08:21 +0800
+Subject: [PATCH 1/5] zig build: respect `PKG_CONFIG` environment variable
+
+[Upstream commit: d263f1ec0eb988f0e4ed1859351f5040f590996b]
+
+`PKG_CONFIG` environment variable is used to override path to
+pkg-config executable, for example when it's name is prepended by
+target triple for cross-compilation purposes:
+
+```
+PKG_CONFIG=/usr/bin/aarch64-unknown-linux-gnu-pkgconf zig build
+```
+
+Signed-off-by: Eric Joldasov <bratishkaerik@landless-city.net>
+---
+ lib/std/build.zig | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/std/build.zig b/lib/std/build.zig
+index 8eda542d6e..e44093bde4 100644
+--- a/lib/std/build.zig
++++ b/lib/std/build.zig
+@@ -1265,7 +1265,8 @@ pub const Builder = struct {
+ }
+
+ fn execPkgConfigList(self: *Builder, out_code: *u8) ![]const PkgConfigPkg
{
+- const stdout = try self.execAllowFail(&[_][]const u8{ "pkg-config",
"--list-all" }, out_code, .Ignore);
++ const pkg_config_exe = self.env_map.get("PKG_CONFIG") orelse
"pkg-config";
++ const stdout = try self.execAllowFail(&[_][]const u8{ pkg_config_exe,
"--list-all" }, out_code, .Ignore);
+ var list = ArrayList(PkgConfigPkg).init(self.allocator);
+ errdefer list.deinit();
+ var line_it = mem.tokenize(u8, stdout, "\r\n");
+@@ -1932,8 +1933,9 @@ pub const LibExeObjStep = struct {
+ };
+
+ var code: u8 = undefined;
++ const pkg_config_exe = self.builder.env_map.get("PKG_CONFIG") orelse
"pkg-config";
+ const stdout = if (self.builder.execAllowFail(&[_][]const u8{
+- "pkg-config",
++ pkg_config_exe,
+ pkg_name,
+ "--cflags",
+ "--libs",
+--
+2.46.0
+
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 154d453dd8..952fffe880 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -61,6 +61,7 @@
(patches
(search-patches
"zig-0.9-add-GUIX_ZIG_GLIBC_LINKER.patch"
+ "zig-0.9-build-respect-PKG_CONFIG-env-var.patch"
"zig-0.9-fix-runpath.patch"
"zig-0.9-riscv-support.patch"
"zig-0.9-use-baseline-cpu-by-default.patch"
@@ -165,6 +166,7 @@ toolchain. Among other features it provides
(patches
(search-patches
"zig-0.9-add-GUIX_ZIG_GLIBC_LINKER.patch"
+ "zig-0.10-build-respect-PKG_CONFIG-env-var.patch"
"zig-0.10-fix-runpath.patch"
"zig-0.9-use-baseline-cpu-by-default.patch"
"zig-0.10-use-system-paths.patch"))))
@@ -1042,6 +1044,7 @@ toolchain. Among other features it provides
(patches
(search-patches
"zig-0.9-add-GUIX_ZIG_GLIBC_LINKER.patch"
+ "zig-0.11-build-respect-PKG_CONFIG-env-var.patch"
"zig-0.11-fix-runpath.patch"
"zig-0.9-use-baseline-cpu-by-default.patch"
"zig-0.11-use-system-paths.patch"))))
@@ -1383,6 +1386,7 @@ toolchain. Among other features it provides
(patches
(search-patches
"zig-0.12-add-GUIX_ZIG_GLIBC_LINKER.patch"
+ "zig-0.12-build-respect-PKG_CONFIG-env-var.patch"
"zig-0.12-fix-runpath.patch"
"zig-0.12-use-baseline-cpu-by-default.patch"
"zig-0.12-use-system-paths.patch"))))
@@ -1454,6 +1458,7 @@ toolchain. Among other features it provides
(patches
(search-patches
"zig-0.12-add-GUIX_ZIG_GLIBC_LINKER.patch"
+ "zig-0.13-build-respect-PKG_CONFIG-env-var.patch"
"zig-0.12-fix-runpath.patch"
"zig-0.12-use-baseline-cpu-by-default.patch"
"zig-0.12-use-system-paths.patch"))))
diff --git a/guix/build/zig-build-system.scm b/guix/build/zig-build-system.scm
index cb3015829b..8f143959e4 100644
--- a/guix/build/zig-build-system.scm
+++ b/guix/build/zig-build-system.scm
@@ -41,10 +41,18 @@
(dynamic-linker
(false-if-exception
(search-input-file inputs zig-glibc-linker)))
+ (pkg-config
+ (false-if-exception
+ (search-input-file (or native-inputs inputs)
+ (if target
+ (string-append "bin/" target "-pkg-config")
+ "bin/pkg-config"))))
(port (open-file "/tmp/guix-zig-libc-paths" "w" #:encoding "utf8")))
(setenv "ZIG_GLOBAL_CACHE_DIR" global-cache-dir)
(when dynamic-linker
(setenv "GUIX_ZIG_GLIBC_LINKER" dynamic-linker))
+ (when pkg-config
+ (setenv "PKG_CONFIG" pkg-config))
(display
(string-append "\
include_dir=" libc "/include
- 33/60: gnu: Add zig-0.10.0-3807., (continued)
- 33/60: gnu: Add zig-0.10.0-3807., guix-commits, 2024/11/18
- 41/60: gnu: Add zig-0.11.0-587., guix-commits, 2024/11/18
- 55/60: gnu: Add zig-0.13., guix-commits, 2024/11/18
- 47/60: gnu: Add zig-0.11.0-3245., guix-commits, 2024/11/18
- 58/60: build/zig: Adjust the build triplets for some systems., guix-commits, 2024/11/18
- 04/60: gnu: zig-0.10: Fix lint warning., guix-commits, 2024/11/18
- 24/60: gnu: Add zig-0.10.0-1891., guix-commits, 2024/11/18
- 32/60: gnu: Add zig-0.10.0-3728., guix-commits, 2024/11/18
- 21/60: gnu: Add zig-0.10.0-1712., guix-commits, 2024/11/18
- 15/60: gnu: Add zig-0.10.0-1073., guix-commits, 2024/11/18
- 59/60: gnu: zig: Respect the PKG_CONFIG environment variable.,
guix-commits <=
- 19/60: gnu: Add zig-0.10.0-1657., guix-commits, 2024/11/18
- 51/60: gnu: Add zig-0.11.0-3506., guix-commits, 2024/11/18
- 37/60: gnu: Add zig-0.11., guix-commits, 2024/11/18
- 39/60: gnu: Add zig-0.11.0-384., guix-commits, 2024/11/18
- 29/60: gnu: Add zig-0.10.0-2838., guix-commits, 2024/11/18
- 60/60: DRAFT: gnu: zig: Build reproducibly., guix-commits, 2024/11/18
- 22/60: gnu: Add zig-0.10.0-1713., guix-commits, 2024/11/18
- 35/60: gnu: Add zig-0.10.0-3980., guix-commits, 2024/11/18
- 53/60: gnu: Add zig-0.12., guix-commits, 2024/11/18
- 40/60: gnu: Add zig-0.11.0-494., guix-commits, 2024/11/18