I believe the setup/mathjax.py changes are at fault. It requires the lzma extension and calibre.ptempfile which somehow pulls in the nonexistent icu plugin... at any rate, I get the following error:
Code:
[eschwartz@arch ~/git/calibre]$ python2 setup.py build --clean-all && python2 setup.py --help
Traceback (most recent call last):
File "setup.py", line 13, in <module>
import setup.commands as commands
File "/home/eschwartz/git/calibre/setup/commands.py", line 38, in <module>
from setup.mathjax import MathJax
File "/home/eschwartz/git/calibre/setup/mathjax.py", line 15, in <module>
from lzma.xz import compress
File "/home/eschwartz/git/calibre/src/lzma/xz.py", line 17, in <module>
from calibre.ptempfile import SpooledTemporaryFile
File "/home/eschwartz/git/calibre/src/calibre/__init__.py", line 22, in <module>
from calibre.startup import winutil, winutilerror
File "/home/eschwartz/git/calibre/src/calibre/startup.py", line 149, in <module>
from calibre.utils.icu import title_case, lower as icu_lower, upper as icu_upper
File "/home/eschwartz/git/calibre/src/calibre/utils/icu.py", line 28, in <module>
raise RuntimeError('Failed to load icu with error: %s' % err)
RuntimeError: Failed to load icu with error: No module named icu
/home/eschwartz/git/calibre/src/calibre/ptempfile.py:27: RuntimeWarning: Parent module 'calibre' not found while handling absolute import
import shutil
When the "build" stage was previously done (or I temporarily back out to commit 6b967c1f064be5caf892dfc9fc88cc9058197936) everything goes smoothly... although I will note that the mathjax command doesn't actually work to download a remote copy. The TemporaryDirectory gets deleted before it is actually used.
(I think I will need to rig that step with a local MathJax source anyway, because packaging standards.

)