sagemath/sage

Optionally run auditwheel/delocate on wheels before installing them

mkoeppe opened this issue · 1 comments

When system packages are upgraded, shared libraries that a Sage installation links to can disappear, rendering the Sage installation broken. This is a common problem, reported for example in https://groups.google.com/g/sage-devel/c/Iz8ZsmQM3Pg/m/CPl9CbHmBgAJ

As a partial solution, we can copy system shared libraries into our platform wheels using auditwheel (Linux) or delocate (macOS), like cibuildwheel does. This increases the installation size and build time, so it should be optional.

This is only a partial solution because

  • executables in $SAGE_LOCAL (which are not installed via wheels) can still break when shared libraries that they are linked to disappear
  • sagelib is not installed via a wheel (#32874)

See also:

  • #34203 Find and uninstall broken installed SPKGs and wheels

CC: @nbruin

Component: build

Issue created by migration from https://trac.sagemath.org/ticket/34205

Description changed:

--- 
+++ 
@@ -2,7 +2,9 @@
 
 As a partial solution, we can copy system shared libraries into our platform wheels using auditwheel (Linux) or delocate (macOS), like cibuildwheel does. This increases the installation size and build time, so it should be optional.
 
-This is only a partial solution because executables in `$SAGE_LOCAL` (which are not installed via wheels) can still break when shared libraries that they are linked to disappear.
+This is only a partial solution because 
+- executables in `$SAGE_LOCAL` (which are not installed via wheels) can still break when shared libraries that they are linked to disappear
+- sagelib is not installed via a wheel (#32874)
 
 See also:
 - #34203 Find and uninstall broken installed SPKGs and wheels