python-lxml-2.2.6-1.fc14.src.rpm Failed To Build From Source against the rawhide tree. See http://fedoraproject.org/wiki/FTBFS for more information. If you believe this is actually a bug in another package, do NOT change the component in this bug or close this bug. Instead, add the appropriate bug number from the other package to the "Depends on" line in this bug. If the other package does not yet have a bug created that you think matches, please create one. Doing so helps us properly track bugs and their dependencies, just as we track package dependencies. (If you close this bug, and the other package is not fixed before the next FTBFS run, a new bug will get created. Please follow the above advice to avoid such duplication.)
Created attachment 421019 [details] root.log root.log for i386
Created attachment 421020 [details] build.log build.log for i386
Created attachment 421021 [details] mock.log mock.log for i386
Created attachment 421022 [details] root.log root.log for x86_64
Created attachment 421023 [details] build.log build.log for x86_64
Created attachment 421024 [details] mock.log mock.log for x86_64
Traceback from 2to3 during %prep: Traceback (most recent call last): File "/usr/bin/2to3", line 6, in <module> sys.exit(main("lib2to3.fixes")) File "/usr/lib/python2.6/lib2to3/main.py", line 165, in main options.processes) File "/usr/lib/python2.6/lib2to3/refactor.py", line 613, in refactor items, write, doctests_only) File "/usr/lib/python2.6/lib2to3/refactor.py", line 271, in refactor self.refactor_dir(dir_or_file, write, doctests_only) File "/usr/lib/python2.6/lib2to3/refactor.py", line 290, in refactor_dir self.refactor_file(fullname, write, doctests_only) File "/usr/lib/python2.6/lib2to3/refactor.py", line 653, in refactor_file *args, **kwargs) File "/usr/lib/python2.6/lib2to3/refactor.py", line 325, in refactor_file tree = self.refactor_string(input, filename) File "/usr/lib/python2.6/lib2to3/refactor.py", line 355, in refactor_string self.refactor_tree(tree, name) File "/usr/lib/python2.6/lib2to3/refactor.py", line 389, in refactor_tree self.traverse_by(self.post_order_heads, tree.post_order()) File "/usr/lib/python2.6/lib2to3/refactor.py", line 413, in traverse_by new = fixer.transform(node, results) File "/usr/lib/python2.6/lib2to3/fixes/fix_itertools_imports.py", line 24, in transform assert child.type == syms.import_as_name
The 2to3 traceback is with python-2.6.5-12
Adding --verbose to invocation of 2to3 indicates the problem is when running on: python3-python-lxml-2.2.6-1.fc14/benchmark/bench_etree.py The issue appears to be the line: from itertools import *
I believe the only two names from itertools that are used are "islice" and "repeat", so this could be replaced with: from itertools import islice, repeat Looks like 2to3 could handle this better, if only by giving a better error message.
2to3 issue filed upstream as http://bugs.python.org/issue8892
Created attachment 421061 [details] Patch the various "from itertools import *" Attached patch changes various lines of the form from itertools import * to instead list the specific names to be imported. I may have got the lists wrong. With this patch 2to3 from python-2.6.5 works
I've cherrypicked the lib2to3 patch from upstream, rebuilding python into dist-f14-py27-rebuild as python-2.7-6.fc14: http://koji.fedoraproject.org/koji/taskinfo?taskID=2351230
Getting a new error: Bytecompiling .py files below /builddir/build/BUILDROOT/python-lxml-2.2.6-2.fc14.x86_64/usr/lib64/python3.1/ using /usr/bin/python3.1 *** Error compiling /builddir/build/BUILDROOT/python-lxml-2.2.6-2.fc14.x86_64/usr/lib64/python3.1/site-packages/lxml/html/__init__.py ... Sorry: IndentationError: unexpected unindent (__init__.py, line 827) error: Bad exit status from /var/tmp/rpm-tmp.XjRxDR (%install) Bad exit status from /var/tmp/rpm-tmp.XjRxDR (%install) RPM build errors: Child returncode was: 1 EXCEPTION: Command failed. See logs for output. # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/python-lxml.spec'] Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/mock/trace_decorator.py", line 70, in trace result = func(*args, **kw) File "/usr/lib/python2.6/site-packages/mock/util.py", line 333, in do raise mock.exception.Error, ("Command failed. See logs for output.\n # %s" % (command,), child.returncode) Error: Command failed. See logs for output. # ['bash', '--login', '-c', 'rpmbuild -bb --target x86_64 --nodeps builddir/build/SPECS/python-lxml.spec'] LEAVE do --> EXCEPTION RAISED
Relevant code looks like this: > def open_http_urllib(method, url, values): > ## FIXME: should test that it's not a relative URL or something > try: > from urllib.parse import urlencode > from urllib.request import urlopen > except ImportError: # Python 3 > from urllib.request import urlopen > from urllib.parse import urlencode Clearly the "from urllib.request import urlopen" is at the wrong indentation level
To clarify, this is in the generated: /usr/lib64/python3.1/site-packages/lxml/html/__init__.py and looks like another 2to3 bug within the python 2 package.
Relevant input code, before 2to3 is invoked: > def open_http_urllib(method, url, values): > ## FIXME: should test that it's not a relative URL or something > try: > from urllib import urlencode, urlopen > except ImportError: # Python 3
Filed the 2to3 bug upstream here: http://bugs.python.org/issue9386 Workaround for now may be to fix it up in lxml so the import is two separate lines.
I've patched around this in python-lxml for now, as proposed in comment #18
This bug appears to have been reported against 'rawhide' during the Fedora 14 development cycle. Changing version to '14'. More information and reason for this action is here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
python-lxml-2.3-1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/python-lxml-2.3-1.fc15
Package python-lxml-2.3-1.fc15: * should fix your issue, * was pushed to the Fedora 15 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing python-lxml-2.3-1.fc15' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/python-lxml-2.3-1.fc15 then log in and leave karma (feedback).
python-lxml-2.3-1.fc15 has been pushed to the Fedora 15 stable repository. If problems still persist, please make note of it in this bug report.