[PR #2749] [MERGED] Change CI test macos from macos-13 to macos-14 #2764

Closed
opened 2026-03-04 02:07:10 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/s3fs-fuse/s3fs-fuse/pull/2749
Author: @ggtakec
Created: 10/19/2025
Status: Merged
Merged: 10/19/2025
Merged by: @gaul

Base: masterHead: update/macos14


📝 Commits (1)

  • 0e9d633 Change CI test macos from macos-13 to macos-14

📊 Changes

3 files changed (+36 additions, -7 deletions)

View changed files

📝 .github/workflows/ci.yml (+10 -2)
📝 test/integration-test-common.sh (+14 -4)
📝 test/test-utils.sh (+12 -1)

📄 Description

Relevant Issue (if applicable)

#2747

Details

I've updated GitHub Actions to use macos-14.

I encountered a few issues when using macos-14.

(1) CA Certificate

The path to the CA certificate is different from macos-13.
Therefore, the path to this CA certificate needs to be passed to s3fs (and curl).
I defined this as the environment variable CURL_CA_BUNDLE in ci.yml and passed it to the macos job.

(2) gstdbuf

In the macos-14 environment for GitHub Actions, it appears that arm64e is required for DSO calls.
The following error message is displayed when trying to run gstdbuf:

dyld[41023]: tried: '/opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'arm64e')), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so' (no such file), '/opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'arm64e'))

libstdbuf.so is arm64, and linking fails.
This can be confirmed with the following command:

$ lipo -archs /opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so
arm64

I checked coreutils and found that arm64e is not currently available.

Therefore, for macos-14, I modified it so that gstdbuf is not used.
(I believe there is no other way. I have used this workaround in the past.)
This causes some log clutter, but it does not affect the test itself, so I think it is acceptable.

NOTE

In addition to stdbuf, truncate and sed also use coreutils and gnu-sed on macos.
I have confirmed that both truncate and sed, and these work fine despite being arm64.
(These do not use DSO at runtime. Therefore, the problem occurs only with stdbuf, and it appears to be caused by linking libstdbuf.so.)


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/s3fs-fuse/s3fs-fuse/pull/2749 **Author:** [@ggtakec](https://github.com/ggtakec) **Created:** 10/19/2025 **Status:** ✅ Merged **Merged:** 10/19/2025 **Merged by:** [@gaul](https://github.com/gaul) **Base:** `master` ← **Head:** `update/macos14` --- ### 📝 Commits (1) - [`0e9d633`](https://github.com/s3fs-fuse/s3fs-fuse/commit/0e9d6330f87162a391065a097d376bd1c6dd9cf9) Change CI test macos from macos-13 to macos-14 ### 📊 Changes **3 files changed** (+36 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/ci.yml` (+10 -2) 📝 `test/integration-test-common.sh` (+14 -4) 📝 `test/test-utils.sh` (+12 -1) </details> ### 📄 Description ### Relevant Issue (if applicable) #2747 ### Details I've updated GitHub Actions to use macos-14. I encountered a few issues when using macos-14. #### (1) CA Certificate The path to the CA certificate is different from macos-13. Therefore, the path to this CA certificate needs to be passed to s3fs (and curl). I defined this as the environment variable `CURL_CA_BUNDLE` in ci.yml and passed it to the macos job. #### (2) gstdbuf In the macos-14 environment for GitHub Actions, it appears that `arm64e` is required for DSO calls. The following error message is displayed when trying to run `gstdbuf`: ``` dyld[41023]: tried: '/opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'arm64e')), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so' (no such file), '/opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'arm64e')) ``` `libstdbuf.so` is `arm64`, and linking fails. This can be confirmed with the following command: ``` $ lipo -archs /opt/homebrew/Cellar/coreutils/9.8/libexec/coreutils/libstdbuf.so arm64 ``` I checked coreutils and found that `arm64e` is not currently available. Therefore, for macos-14, I modified it so that `gstdbuf` is not used. (I believe there is no other way. I have used this workaround in the past.) This causes some log clutter, but it does not affect the test itself, so I think it is acceptable. ##### NOTE In addition to `stdbuf`, `truncate` and `sed` also use `coreutils` and `gnu-sed` on macos. I have confirmed that both `truncate` and `sed`, and these work fine despite being `arm64`. (These do not use DSO at runtime. Therefore, the problem occurs only with `stdbuf`, and it appears to be caused by linking `libstdbuf.so`.) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-04 02:07:10 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#2764
No description provided.