At PyGotham in 2018, I gave a talk called "The Black Magic of Python Wheels". I
based this talk on my two years of work on auditwheel
and the
manylinux
platform, hoping to share some dark details of how the
proverbial sausage is made.
It was a fun talk, and I enjoyed the opportunity to wear my Python Packaging Authority hat:
A very witchy @PyGotham talk from @ehashdn about dark ELF magic pic.twitter.com/W8JMEVW8GE
— Geoffrey Thomas, but spooky (@geofft) October 6, 2018
The Black Magic of Python Wheels
- Talk page, PyGotham website
- Talk slides (pdf download)
pythonwheels.com
- Simple
manylinux
wheelbuilding demo
Follow-up readings
- Linux Programmer's Manual: format of Executable and Linkable Format (ELF) Files
- The Linux Programming Interface: 42.3.2 "Symbol Versioning", pg. 870. (Note: all of chapter 42 would be a great resource on the topic! This is a great book.)
- ELF Symbol Versioning
- Linking to Older Versioned Symbols
- PLT and GOT - the key to code sharing and dynamic libraries
All the PEPs referenced in the talk
In increasing numeric order.
- PEP 376 "Database of Installed Python Distributions"
- PEP 426 "Metadata for Python Software Packages 2.0"
- PEP 427 "The Wheel Binary Package Format 1.0"
- PEP 513 "A Platform Tag for Portable Linux Built Distributions" (aka
manylinux1
) - PEP 571 "The
manylinux2010
Platform Tag"
Image licensing info
- Tree Cat Silhouette Sunset: Public Domain (CC0) @besshamiti
- Happy Halloween! (Costume Dog): Public Domain (CC0) @milkyfactory