Follow up from #29341.
Depends on #29174
Depends on #29823
Depends on #20104
CC: @jhpalmieri @novoselt @kliem @orlitzky
Component: porting
Author: Matthias Koeppe
Branch/Commit: 6afe959
Reviewer: Jonathan Kliem
Issue created by migration from https://trac.sagemath.org/ticket/29901