From fbd70ae1144ea0eecbd8614179e3ff2e0ded31e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Thu, 7 Aug 2025 10:24:52 +0900 Subject: [PATCH 1/5] build: update cfitsio to 4.6.2 and zig build system Update cfitsio dependency to version 4.6.2 and adapt the build.zig file to the new Zig 0.15 build system API, including changes to library definition and module creation. --- build.zig | 9 ++++++--- build.zig.zon | 11 ++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/build.zig b/build.zig index 4599ca3..feb0f6c 100644 --- a/build.zig +++ b/build.zig @@ -16,11 +16,14 @@ pub fn build(b: *std.Build) void { // Library const lib_step = b.step("lib", "Install library"); - const lib = b.addStaticLibrary(.{ + const lib = b.addLibrary(.{ .name = "cfitsio", - .target = target, + .linkage = .static, + .root_module = b.createModule(.{ + .target = target, + .optimize = optimize, + }), .version = version, - .optimize = optimize, }); var flags = std.BoundedArray([]const u8, 6){}; diff --git a/build.zig.zon b/build.zig.zon index 67afcae..715d90b 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,11 +1,12 @@ .{ - .name = "cfitsio", - .version = "4.4.1", - .minimum_zig_version = "0.13.0", + .name = .cfitsio, + .version = "4.6.2", + .fingerprint = 0xb6653d980098a42d, + .minimum_zig_version = "0.15.0-dev.1034+bd97b6618", .dependencies = .{ .cfitsio = .{ - .url = "https://github.com/HEASARC/cfitsio/archive/cfitsio4_4_1_20240617.tar.gz", - .hash = "1220d9b5104c0d9cd8158f52ce64d891eb76a083b43962aed62c611addb920e5a9bb", + .url = "https://github.com/HEASARC/cfitsio/archive/refs/tags/cfitsio-4.6.2.tar.gz", + .hash = "122077d6ec1c037659ac18029cf325e9c3790c429a85f533dd12056578dcaf8257df", }, }, .paths = .{ From 9a7161ff41600aaa28fd040989294fb60a58df38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Fri, 8 Aug 2025 12:57:15 +0900 Subject: [PATCH 2/5] refactor(build): update flag array management Migrate from `std.BoundedArray` and `assumeCapacity` to `std.ArrayListUnmanaged` and `appendBounded` for safer and more idiomatic flag handling. --- build.zig | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/build.zig b/build.zig index feb0f6c..3cee66b 100644 --- a/build.zig +++ b/build.zig @@ -26,21 +26,22 @@ pub fn build(b: *std.Build) void { .version = version, }); - var flags = std.BoundedArray([]const u8, 6){}; - flags.appendSliceAssumeCapacity(&FLAGS); + var flags_buffer: [6][]const u8 = undefined; + var flags = std.ArrayListUnmanaged([]const u8).initBuffer(&flags_buffer); + flags.appendSliceBounded(&FLAGS) catch unreachable; if (target.result.cpu.arch.isX86()) { - flags.appendSliceAssumeCapacity(&.{ "-msse2", "-mssse3" }); + flags.appendSliceBounded(&.{ "-msse2", "-mssse3" }) catch unreachable; } if (use_curl) { lib.linkSystemLibrary("curl"); - flags.appendAssumeCapacity("-DCFITSIO_HAVE_CURL"); + flags.appendBounded("-DCFITSIO_HAVE_CURL") catch unreachable; } if (use_bz2) { lib.linkSystemLibrary("bz2"); - flags.appendAssumeCapacity("-DHAVE_BZIP2=1"); + flags.appendBounded("-DHAVE_BZIP2=1") catch unreachable; } - lib.addCSourceFiles(.{ .root = cfitsio_path, .files = &SOURCES, .flags = flags.constSlice() }); + lib.addCSourceFiles(.{ .root = cfitsio_path, .files = &SOURCES, .flags = flags.items }); lib.installHeadersDirectory(cfitsio_path, "", .{ .include_extensions = &HEADERS }); lib.linkSystemLibrary("z"); lib.linkLibC(); From 081a629c85ae1ccb971617792b1063e39f0f85da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Fri, 8 Aug 2025 13:12:49 +0900 Subject: [PATCH 3/5] build: prefer static linking for zlib --- build.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.zig b/build.zig index 3cee66b..7070f13 100644 --- a/build.zig +++ b/build.zig @@ -43,7 +43,7 @@ pub fn build(b: *std.Build) void { lib.addCSourceFiles(.{ .root = cfitsio_path, .files = &SOURCES, .flags = flags.items }); lib.installHeadersDirectory(cfitsio_path, "", .{ .include_extensions = &HEADERS }); - lib.linkSystemLibrary("z"); + lib.linkSystemLibrary2("z", .{ .preferred_link_mode = .static }); lib.linkLibC(); const lib_install = b.addInstallArtifact(lib, .{}); From 54a0a0ab3f01444e3209f0c4234e80e899f484dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Fri, 8 Aug 2025 13:14:15 +0900 Subject: [PATCH 4/5] Revert "build: prefer static linking for zlib" This reverts commit 081a629c85ae1ccb971617792b1063e39f0f85da. --- build.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.zig b/build.zig index 7070f13..3cee66b 100644 --- a/build.zig +++ b/build.zig @@ -43,7 +43,7 @@ pub fn build(b: *std.Build) void { lib.addCSourceFiles(.{ .root = cfitsio_path, .files = &SOURCES, .flags = flags.items }); lib.installHeadersDirectory(cfitsio_path, "", .{ .include_extensions = &HEADERS }); - lib.linkSystemLibrary2("z", .{ .preferred_link_mode = .static }); + lib.linkSystemLibrary("z"); lib.linkLibC(); const lib_install = b.addInstallArtifact(lib, .{}); From 4c4182c449052653e890129d5b9f208af4e8c928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Fri, 29 Aug 2025 09:01:59 +0900 Subject: [PATCH 5/5] build: bump minimum zig version to 0.15.1 --- build.zig.zon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.zig.zon b/build.zig.zon index 715d90b..d91b67f 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -2,7 +2,7 @@ .name = .cfitsio, .version = "4.6.2", .fingerprint = 0xb6653d980098a42d, - .minimum_zig_version = "0.15.0-dev.1034+bd97b6618", + .minimum_zig_version = "0.15.1", .dependencies = .{ .cfitsio = .{ .url = "https://github.com/HEASARC/cfitsio/archive/refs/tags/cfitsio-4.6.2.tar.gz",