From 3a23c6608575730e8ba98cf37c12deb01c877754 Mon Sep 17 00:00:00 2001 From: silviana amethyst <1388063+ofloveandhate@users.noreply.github.com> Date: Sun, 17 May 2026 20:09:10 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=91=B7=20ci:=20improve=20Linux=20dep?= =?UTF-8?q?=20stripping=20to=20reduce=20manylinux=20wheel=20size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Strip eigenpy on CMake install and skip symlinks in the post-install find/strip pass, which was silently failing on symlinked .so files. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build_and_test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index f024f46f3..57ab93e53 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -237,9 +237,9 @@ jobs: cd /tmp && rm -rf eigenpy-3.11.0 && tar zxf eigenpy-3.11.0.tar.gz && cd eigenpy-3.11.0 && mkdir -p bld && cd bld && - cmake .. -DCMAKE_PREFIX_PATH=/tmp/deps-py -DCMAKE_INSTALL_PREFIX=/tmp/deps-py -DPython3_EXECUTABLE=$(which python) -DPython3_NumPy_INCLUDE_DIR=$(python -c "import numpy; print(numpy.get_include())") -DBUILD_TESTING=OFF && + cmake .. -DCMAKE_PREFIX_PATH=/tmp/deps-py -DCMAKE_INSTALL_PREFIX=/tmp/deps-py -DPython3_EXECUTABLE=$(which python) -DPython3_NumPy_INCLUDE_DIR=$(python -c "import numpy; print(numpy.get_include())") -DBUILD_TESTING=OFF -DCMAKE_INSTALL_DO_STRIP=ON && make -j2 install && - find /tmp/deps-py/lib -name '*.so*' -exec strip --strip-debug {} + 2>/dev/null || true + find /tmp/deps-py/lib -name '*.so*' -not -type l -exec strip --strip-unneeded {} + || true # On macOS, build all Boost components (including Boost.Python) into /tmp/deps-py # so delocate sees only one set of dylibs. boost-base is used only for C++ tests. CIBW_BEFORE_BUILD_MACOS: > From 1e7861f2162a919d606bb7734b1b580d8e816a20 Mon Sep 17 00:00:00 2001 From: silviana amethyst <1388063+ofloveandhate@users.noreply.github.com> Date: Sun, 17 May 2026 21:53:57 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=91=B7=20ci:=20fix=20strip=20flag=20?= =?UTF-8?q?=E2=80=94=20use=20--strip-debug=20to=20actually=20remove=20DWAR?= =?UTF-8?q?F=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --strip-unneeded keeps debug sections; --strip-debug removes them. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 57ab93e53..cc9efdf4a 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -239,7 +239,7 @@ jobs: cd eigenpy-3.11.0 && mkdir -p bld && cd bld && cmake .. -DCMAKE_PREFIX_PATH=/tmp/deps-py -DCMAKE_INSTALL_PREFIX=/tmp/deps-py -DPython3_EXECUTABLE=$(which python) -DPython3_NumPy_INCLUDE_DIR=$(python -c "import numpy; print(numpy.get_include())") -DBUILD_TESTING=OFF -DCMAKE_INSTALL_DO_STRIP=ON && make -j2 install && - find /tmp/deps-py/lib -name '*.so*' -not -type l -exec strip --strip-unneeded {} + || true + find /tmp/deps-py/lib -name '*.so*' -not -type l -exec strip --strip-debug {} + || true # On macOS, build all Boost components (including Boost.Python) into /tmp/deps-py # so delocate sees only one set of dylibs. boost-base is used only for C++ tests. CIBW_BEFORE_BUILD_MACOS: > From b1667780d62bdef2d9a6943113d98df7daa7a3ba Mon Sep 17 00:00:00 2001 From: silviana amethyst <1388063+ofloveandhate@users.noreply.github.com> Date: Mon, 18 May 2026 13:57:17 +0200 Subject: [PATCH 3/3] another attempt at trying to get eigenpy's filesize reasonable --- .github/workflows/build_and_test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index cc9efdf4a..4579501b2 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -219,6 +219,7 @@ jobs: brew install gmp mpfr libmpc eigen@3 && cd /tmp && { [ -f eigenpy-3.11.0.tar.gz ] || curl -fsSL -o eigenpy-3.11.0.tar.gz https://github.com/stack-of-tasks/eigenpy/releases/download/v3.11.0/eigenpy-3.11.0.tar.gz ; } + # Build Boost and eigenpy fresh against the active per-Python interpreter # so each wheel bundles a matching libboost_python3X. CIBW_BEFORE_BUILD_LINUX: > @@ -237,9 +238,12 @@ jobs: cd /tmp && rm -rf eigenpy-3.11.0 && tar zxf eigenpy-3.11.0.tar.gz && cd eigenpy-3.11.0 && mkdir -p bld && cd bld && - cmake .. -DCMAKE_PREFIX_PATH=/tmp/deps-py -DCMAKE_INSTALL_PREFIX=/tmp/deps-py -DPython3_EXECUTABLE=$(which python) -DPython3_NumPy_INCLUDE_DIR=$(python -c "import numpy; print(numpy.get_include())") -DBUILD_TESTING=OFF -DCMAKE_INSTALL_DO_STRIP=ON && + cmake .. -DCMAKE_PREFIX_PATH=/tmp/deps-py -DCMAKE_INSTALL_PREFIX=/tmp/deps-py -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DPython3_EXECUTABLE=$(which python) -DPython3_NumPy_INCLUDE_DIR=$(python -c "import numpy; print(numpy.get_include())") -DBUILD_TESTING=OFF -DCMAKE_INSTALL_DO_STRIP=ON && make -j2 install && - find /tmp/deps-py/lib -name '*.so*' -not -type l -exec strip --strip-debug {} + || true + find /tmp/deps-py -name '*.so*' -type f | while read f; do + err=$(strip --strip-unneeded "$f" 2>&1) || echo "strip failed on $f: $err" + done + # On macOS, build all Boost components (including Boost.Python) into /tmp/deps-py # so delocate sees only one set of dylibs. boost-base is used only for C++ tests. CIBW_BEFORE_BUILD_MACOS: >