From cd3db76eedc88a21a2656cb1fea30e63ad5bdc8c Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 19 Aug 2026 14:09:40 -0700 Subject: [PATCH] ci: stop installing FUSE headers nothing links against (#10840) Four workflows ran apt to install libfuse3-dev before every FUSE job. Nothing needs it: go-fuse implements the protocol in pure Go, no cgo in the tree references fuse, and the package does not even provide the fusermount3 the mount actually execs - fuse3 does, and it is already on the runner image, which is why the setuid-repair step finds it. So the step downloaded a dev package to build against headers no compiler ever opened, and it is the step that has been hanging whenever the Ubuntu mirror goes slow. Configuring /etc/fuse.conf is all that is left. --- .github/workflows/fuse-dlm-integration.yml | 7 ++++--- .github/workflows/fuse-failover.yml | 7 ++++--- .github/workflows/fuse-integration.yml | 8 +++----- .github/workflows/fuse-p2p-integration.yml | 7 ++++--- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.github/workflows/fuse-dlm-integration.yml b/.github/workflows/fuse-dlm-integration.yml index 6ce3f0724..47a27cc19 100644 --- a/.github/workflows/fuse-dlm-integration.yml +++ b/.github/workflows/fuse-dlm-integration.yml @@ -40,10 +40,11 @@ jobs: with: go-version-file: 'go.mod' - - name: Install FUSE dependencies + - name: Configure FUSE run: | - sudo apt-get update - sudo apt-get install -y libfuse3-dev + # Nothing to install: fuse3 ships fusermount3 and is pre-installed, + # and go-fuse is pure Go, so the libfuse headers were never linked + # against. echo 'user_allow_other' | sudo tee -a /etc/fuse.conf sudo chmod 644 /etc/fuse.conf diff --git a/.github/workflows/fuse-failover.yml b/.github/workflows/fuse-failover.yml index de79f6c68..c11ca3e2f 100644 --- a/.github/workflows/fuse-failover.yml +++ b/.github/workflows/fuse-failover.yml @@ -47,10 +47,11 @@ jobs: with: go-version-file: 'go.mod' - - name: Install FUSE dependencies + - name: Configure FUSE run: | - sudo apt-get update - sudo apt-get install -y libfuse3-dev + # Nothing to install: fuse3 ships fusermount3 and is pre-installed, + # and go-fuse is pure Go, so the libfuse headers were never linked + # against. echo 'user_allow_other' | sudo tee -a /etc/fuse.conf sudo chmod 644 /etc/fuse.conf diff --git a/.github/workflows/fuse-integration.yml b/.github/workflows/fuse-integration.yml index 72bb23ad5..3b23cb222 100644 --- a/.github/workflows/fuse-integration.yml +++ b/.github/workflows/fuse-integration.yml @@ -38,12 +38,10 @@ jobs: with: go-version-file: 'go.mod' - - name: Install FUSE and dependencies + - name: Configure FUSE run: | - sudo apt-get update - # fuse3 is pre-installed on ubuntu-22.04 runners and conflicts - # with the legacy fuse package, so only install the dev headers. - sudo apt-get install -y libfuse3-dev + # Nothing to install: fuse3 ships fusermount3 and is pre-installed, and + # go-fuse is pure Go, so the libfuse headers were never linked against. # Allow non-root FUSE mounts with allow_other echo 'user_allow_other' | sudo tee -a /etc/fuse.conf sudo chmod 644 /etc/fuse.conf diff --git a/.github/workflows/fuse-p2p-integration.yml b/.github/workflows/fuse-p2p-integration.yml index 8cdc18147..28771e11a 100644 --- a/.github/workflows/fuse-p2p-integration.yml +++ b/.github/workflows/fuse-p2p-integration.yml @@ -46,10 +46,11 @@ jobs: with: go-version-file: 'go.mod' - - name: Install FUSE dependencies + - name: Configure FUSE run: | - sudo apt-get update - sudo apt-get install -y libfuse3-dev + # Nothing to install: fuse3 ships fusermount3 and is pre-installed, + # and go-fuse is pure Go, so the libfuse headers were never linked + # against. echo 'user_allow_other' | sudo tee -a /etc/fuse.conf sudo chmod 644 /etc/fuse.conf