Skip to content

Commit d443f66

Browse files
authored
bazel/sysroot: Prune directories and fix links (#2925)
Signed-off-by: Ryan Northey <[email protected]>
1 parent 97ac63f commit d443f66

File tree

1 file changed

+52
-6
lines changed

1 file changed

+52
-6
lines changed

.github/workflows/sysroot.yml

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,61 @@ jobs:
8484
- name: Cleanup sysroot
8585
run: |
8686
sudo chroot sysroot-${{ matrix.arch }} apt-get clean
87-
sudo rm -rf sysroot-${{ matrix.arch }}/var/lib/apt/lists/*
88-
sudo rm -rf sysroot-${{ matrix.arch }}/var/cache/apt/*
89-
sudo rm -rf sysroot-${{ matrix.arch }}/usr/share/doc/*
90-
sudo rm -rf sysroot-${{ matrix.arch }}/usr/share/man/*
91-
sudo rm -rf sysroot-${{ matrix.arch }}/usr/share/info/*
92-
sudo rm -rf sysroot-${{ matrix.arch }}/usr/share/lintian/*
87+
sudo rm -rf "sysroot-${{ matrix.arch }}/boot"
88+
sudo rm -rf "sysroot-${{ matrix.arch }}/bin"
89+
sudo rm -rf "sysroot-${{ matrix.arch }}/dev"
90+
sudo rm -rf "sysroot-${{ matrix.arch }}/etc/alternatives"
91+
sudo rm -rf "sysroot-${{ matrix.arch }}/etc/rmt"
92+
sudo rm -rf "sysroot-${{ matrix.arch }}/etc/systemd"
93+
sudo rm -rf "sysroot-${{ matrix.arch }}/etc/localtime"
94+
sudo rm -rf "sysroot-${{ matrix.arch }}/home"
95+
sudo rm -rf "sysroot-${{ matrix.arch }}/media"
96+
sudo rm -rf "sysroot-${{ matrix.arch }}/opt"
97+
sudo rm -rf "sysroot-${{ matrix.arch }}/proc"
98+
sudo rm -rf "sysroot-${{ matrix.arch }}/root"
99+
sudo rm -rf "sysroot-${{ matrix.arch }}/run"
100+
sudo rm -rf "sysroot-${{ matrix.arch }}/sbin"
101+
sudo rm -rf "sysroot-${{ matrix.arch }}/srv"
102+
sudo rm -rf "sysroot-${{ matrix.arch }}/sys"
103+
sudo rm -rf "sysroot-${{ matrix.arch }}/tmp"
104+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/bin/awk"
105+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/bin/nawk"
106+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/bin/pager"
107+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/bin/pidof"
108+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/sbin"
109+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/share/doc"
110+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/share/info"
111+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/share/lintian"
112+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/share/man"
113+
sudo rm -rf "sysroot-${{ matrix.arch }}/usr/share/zoneinfo"
114+
sudo rm -rf "sysroot-${{ matrix.arch }}/var"
115+
93116
if [[ "${{ matrix.variant }}" == "libstdcxx" ]]; then
94117
sudo rm -rf sysroot-${{ matrix.arch }}/etc/apt/sources.list.d/*
95118
fi
119+
120+
root_dir="sysroot-${{ matrix.arch }}"
121+
find "$root_dir" -type l | while read symlink; do
122+
# Get the current target
123+
current_target=$(readlink "$symlink")
124+
125+
# Skip if already relative
126+
if [[ "$current_target" != /* ]]; then
127+
continue
128+
fi
129+
130+
# If target exists within our sysroot, make it relative
131+
if [[ -e "$root_dir$current_target" ]]; then
132+
link_dir=$(dirname "$symlink")
133+
relative_path=$(realpath --relative-to="$link_dir" "$root_dir$current_target")
134+
sudo ln -sf "$relative_path" "$symlink"
135+
136+
echo "Fixed: $symlink -> $relative_path (was: $current_target)"
137+
else
138+
echo "Skipping - target outside sysroot: $symlink -> $current_target"
139+
fi
140+
done
141+
96142
- name: Package sysroot
97143
run: |
98144
if [[ "${{ matrix.variant }}" == "libstdcxx" ]]; then

0 commit comments

Comments
 (0)