diff --git a/.gitignore b/.gitignore index 63a65d6..cad553e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /release-1.9.tar.bz2 /release-2.0-beta-1.tar.bz2 /release-2.0.2.tar.bz2 +/release-2.1.0.tar.bz2 diff --git a/pypy.spec b/pypy.spec index 1c72138..e7ef81f 100644 --- a/pypy.spec +++ b/pypy.spec @@ -1,8 +1,6 @@ -%global alphatag b1 - Name: pypy -Version: 2.0.2 -Release: 5%{?dist} +Version: 2.1.0 +Release: 1%{?dist} Summary: Python implementation with a Just-In-Time compiler Group: Development/Languages @@ -132,50 +130,28 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') # Source and patches: -Source0: https://bitbucket.org/pypy/pypy/get/release-2.0.2.tar.bz2 +Source0: https://bitbucket.org/pypy/pypy/get/release-2.1.0.tar.bz2 # Supply various useful RPM macros for building python modules against pypy: # __pypy, pypy_sitelib, pypy_sitearch -Source2: macros.pypy - -# Edit a translator file for linux in order to configure our cflags and dynamic libffi -Patch0: config.patch +Source2: macros.pypy # By default, if built at a tty, the translation process renders a Mandelbrot # set to indicate progress. # This obscures useful messages, and may waste CPU cycles, so suppress it, and # merely render dots: -Patch1: pypy-1.2-suppress-mandelbrot-set-during-tty-build.patch - -# Try to improve the readability of the generated .c code, by adding in the -# RPython source as comments where possible. -# A version of this was sent upstream as: -# http://codespeak.net/pipermail/pypy-dev/2010q4/006532.html -# TODO: get this into the upstream bug tracker, and finish inlining -# support (rhbz#666963) -Patch4: more-readable-c-code.patch - -# In my koji builds, /root/bin is in the PATH for some reason -# This leads to test_subprocess.py failing, due to "test_leaking_fds_on_error" -# trying every dir in PATH for "nonexisting_i_hope", which leads to it raising -# OSError: [Errno 13] Permission denied -# when it tries to read /root/bin, rather than raising "No such file" -# -# Work around this by specifying an absolute path for the non-existant -# executable -# Not yet sent upstream -Patch5: pypy-1.6-fix-test-subprocess-with-nonreadable-path-dir.patch +Patch0: pypy-1.2-suppress-mandelbrot-set-during-tty-build.patch # Patch pypy.translator.platform so that stdout from "make" etc gets logged, # rather than just stderr, so that the command-line invocations of the compiler # and linker are captured: -Patch6: 006-always-log-stdout.patch +Patch1: 006-always-log-stdout.patch # Disable the printing of a quote from IRC on startup (these are stored in # ROT13 form in lib_pypy/_pypy_irc_topic.py). Some are cute, but some could # cause confusion for end-users (and many are in-jokes within the PyPy # community that won't make sense outside of it). [Sorry to be a killjoy] -Patch7: 007-remove-startup-message.patch +Patch2: 007-remove-startup-message.patch # Build-time requirements: @@ -186,37 +162,7 @@ Patch7: 007-remove-startup-message.patch # Turn it off with this boolean, to revert back to rebuilding using CPython # and avoid a cycle in the build-time dependency graph: -# I'm disabling the self-hosting for now, due to a fatal error seen inside the -# JIT, presumably whilst JIT-compiling something within the translator's -# inliner. -# -# Specifically, building pypy-1.4.1-7.fc15.src.rpm on x86_64 using pypy-1.4.1-5.fc15.x86_64 -# http://koji.fedoraproject.org/koji/taskinfo?taskID=2721517 -# failed with this RPython traceback: -# ... snip ... -# [rtyper:WARNING] prebuilt instance has no attribute 'addr' -# [rtyper] specializing: 179300 / 180508 blocks (99%) -# [rtyper] specializing: 180500 / 180566 blocks (99%) -# [rtyper] -=- specialized 1363 more blocks -=- -# [rtyper] specializing: 180600 / 180777 blocks (99%) -# [rtyper] -=- specialized 211 more blocks -=- -# [backendopt:inlining] phase with threshold factor: 32.4 -# [backendopt:inlining] heuristic: pypy.translator.backendopt.inline.inlining_heuristic -# [x86/regalloc] Bogus arg in operation 76 at 0 -# RPython traceback: -# File "implement_62.c", line 39979, in send_bridge_to_backend -# File "implement_69.c", line 65301, in Assembler386_assemble_bridge -# File "implement_72.c", line 8078, in RegAlloc_prepare_bridge -# File "implement_40.c", line 53061, in RegAlloc__prepare -# File "implement_44.c", line 14305, in RegAlloc__compute_vars_longevity -# Fatal RPython error: NotImplementedError -# -# This appears to be deep within pypy/jit/backend/x86/regalloc.py which has -# called "not_implemented" to emit this message to stderr, before raising the -# exception: -# [x86/regalloc] Bogus arg in operation 76 at 0 - -%global use_self_when_building 0 +%global use_self_when_building 1 %if 0%{use_self_when_building} BuildRequires: pypy %global bootstrap_python_interp pypy @@ -234,12 +180,6 @@ BuildRequires: python-devel %endif - -# FIXME: I'm seeing errors like this in the logs: -# [translation:WARNING] The module '_rawffi' is disabled -# [translation:WARNING] because importing pypy.rlib.libffi raised ImportError -# [translation:WARNING] 'libffi.a' not found in ['/usr/lib/libffi', '/usr/lib'] -# Presumably we need to fix things to support dynamically-linked libffi BuildRequires: libffi-devel BuildRequires: zlib-devel @@ -269,11 +209,6 @@ BuildRequires: /usr/bin/execstack BuildRequires: emacs %endif -# pypy is bundling these so we delete them in %%prep. I don't think they are -# needed unless we build pypy targetted at running on the jvm. -#BuildRequires: jna -#BuildRequires: jasmin # Not yet in Fedora - # Metadata for the core package (the JIT build): Requires: pypy-libs = %{version}-%{release} @@ -334,47 +269,10 @@ Build of PyPy with support for micro-threads for massive concurrency %prep -%setup -q -n pypy-pypy-f66246c46ca3 -%patch0 -p1 -b .configure-fedora -%patch1 -p1 -b .suppress-mandelbrot-set-during-tty-build - -# Disabled for now, as it needs regenerating for 1.8 -#patch4 -p1 -b .more-readable-c-code -# Fails on 1.8 with this error: -# [translation:ERROR] Error: -# [translation:ERROR] Traceback (most recent call last): -# [translation:ERROR] File "translate.py", line 309, in main -# [translation:ERROR] drv.proceed(goals) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/driver.py", line 811, in proceed -# [translation:ERROR] return self._execute(goals, task_skip = self._maybe_skip()) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/tool/taskengine.py", line 116, in _execute -# [translation:ERROR] res = self._do(goal, taskcallable, *args, **kwds) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/driver.py", line 287, in _do -# [translation:ERROR] res = func() -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/driver.py", line 530, in task_source_c -# [translation:ERROR] exe_name=exe_name) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/genc.py", line 252, in generate_source -# [translation:ERROR] split=self.split) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/genc.py", line 989, in gen_source -# [translation:ERROR] sg.gen_readable_parts_of_source(f) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/genc.py", line 843, in gen_readable_parts_of_source -# [translation:ERROR] for node, impl in nodeiter: -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/genc.py", line 729, in subiter -# [translation:ERROR] impl = '\n'.join(list(node.implementation())).split('\n') -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/node.py", line 867, in implementation -# [translation:ERROR] for s in self.funcgen_implementation(funcgen): -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/node.py", line 901, in funcgen_implementation -# [translation:ERROR] for line in bodyiter: -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/funcgen.py", line 272, in cfunction_body -# [translation:ERROR] blocks.sort(block_comparator) -# [translation:ERROR] File "/builddir/build/BUILD/pypy-pypy-2346207d9946/pypy/translator/c/funcgen.py", line 34, in block_comparator -# [translation:ERROR] if blk0.isstartblock: -# [translation:ERROR] AttributeError: 'Block' object has no attribute 'isstartblock' - -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 - +%setup -q -n pypy-pypy-352c78d2e80f +%patch0 -p1 -b .suppress-mandelbrot-set-during-tty-build +%patch1 -p1 +%patch2 -p1 # Replace /usr/local/bin/python shebangs with /usr/bin/python: find -name "*.py" -exec \ @@ -383,15 +281,6 @@ find -name "*.py" -exec \ "{}" \ \; -find . -name '*.jar' -exec rm \{\} \; - -# Remove stray ".svn" directories present within the 1.4.1 tarball -# (reported as https://codespeak.net/issue/pypy-dev/issue612 ) -find . -path '*/.svn*' -delete - -# Remove DOS batch files: -find -name "*.bat"|xargs rm -f - for f in rpython/translator/goal/bpnn.py ; do # Detect shebang lines && remove them: sed -e '/^#!/Q 0' -e 'Q 1' $f \ @@ -399,6 +288,7 @@ for f in rpython/translator/goal/bpnn.py ; do chmod a-x $f done + %build BuildPyPy() { @@ -540,10 +430,10 @@ BuildPyPy \ %{_emacs_bytecompile} rpython/jit/tool/pypytrace-mode.el %endif + %install rm -rf $RPM_BUILD_ROOT - # Install the various executables: InstallPyPy() { @@ -921,6 +811,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Aug 15 2013 Matej Stuchlik - 2.1-1 +- Updated to 2.1.0 + * Sun Aug 04 2013 Fedora Release Engineering - 2.0.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild diff --git a/sources b/sources index a37f747..fff5a1a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -328a509c092b5477f99be8dd452d81c2 release-2.0.2.tar.bz2 +59af571317843a1759cb1ff392c26260 release-2.1.0.tar.bz2