The code in Recipe.unpack() gets the first item on an archive's list as the root directory, and renames it if necessary. Archives like http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2 show their root directory as the first entry of tar tjf. But others like https://pypi.python.org/packages/source/T/Twisted/Twisted-15.4.0.tar.bz2 do not, and so instead the first file in the list gets renamed, causing the later build stage to fail (because the expected directory doesn't exist).