Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 677398 - dev-python/pypy-7.0.0 version bump
Summary: dev-python/pypy-7.0.0 version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2019-02-07 00:14 UTC by Sander Sweers
Modified: 2019-02-16 15:08 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
7.0.0_all_distutils_cxx.patch (7.0.0_all_distutils_cxx.patch,15.66 KB, patch)
2019-02-07 00:14 UTC, Sander Sweers
Details | Diff
pypy3 6.0.0 to 7.0.0 ebuild patch (pypy3_6_to_7.patch,2.41 KB, patch)
2019-02-07 18:05 UTC, Sander Sweers
Details | Diff
pypy 6.0.0 to 7.0.0 ebuild patch (pypy_6_7_ebuild.patch,2.00 KB, patch)
2019-02-09 11:43 UTC, Sander Sweers
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sander Sweers 2019-02-07 00:14:14 UTC
Created attachment 564028 [details, diff]
7.0.0_all_distutils_cxx.patch

Version 7.0.0 got released today! Quick background why I am opening a one(ish)  day version bump bug (I come in peace and with gifts so please don't scold me too much :-)). I have been looking into pypy3 for a few weeks now to see how it works with pygobject and pycairo. It works well with a patch to meson for system pypy.

A big change in version 7.0.0 is that pypy now uses sane install schemas and there is no need to patch it for Gentoo.

* Removed the gentoo patches to workaround install schema
* drop sed on disutils install command, from what I can see they are not needed.
* Redo c++ patch as they moved things around (patch attached)
* Use pypy3.5 instead of pypy3 to install libs/site-packages/etc
* Drop versionator as its unused
* Bump eapi to 7
* Verified that the cffi modules are in sync, they are.
* Update slot as per comment to 0.71

Below patch is for pypy3 as I have no interest in pypy right now. But I suspect it will need very similar changes.


--- pypy3-6.0.0.ebuild	2019-02-06 19:29:01.319948535 +0100
+++ pypy3-7.0.0.ebuild	2019-02-07 00:50:09.689378068 +0100
@@ -1,13 +1,13 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
 # pypy3 needs to be built using python 2
 PYTHON_COMPAT=( python2_7 pypy )
-inherit check-reqs pax-utils python-any-r1 toolchain-funcs versionator
+inherit check-reqs pax-utils python-any-r1 toolchain-funcs
 
-MY_P=pypy3-v${PV}
+MY_P=pypy3.5-v${PV}
 
 DESCRIPTION="A fast, compliant alternative implementation of the Python (3.5) language"
 HOMEPAGE="http://pypy.org/"
@@ -15,7 +15,7 @@
 
 LICENSE="MIT"
 # pypy3 -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))'
-SLOT="0/60"
+SLOT="0/71"
 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
 IUSE="bzip2 gdbm +jit libressl low-memory ncurses sandbox sqlite tk"
 
@@ -84,17 +84,12 @@
 }
 
 src_prepare() {
-	#eapply "${FILESDIR}/4.0.0-gentoo-path.patch"
 	eapply "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
 	eapply "${FILESDIR}"/5.9.0-shared-lib.patch	# 517002
 
-	sed -e "s^@EPREFIX@^${EPREFIX}^" \
-		-e "s^@libdir@^$(get_libdir)^" \
-		-i lib-python/3/distutils/command/install.py || die
-
-	# apply CPython stdlib patches
+	# apply CPython stdlib patches	
+	eapply "${FILESDIR}"/7.0.0_all_distutils_cxx.patch
 	pushd lib-python/3 > /dev/null || die
-	eapply "${FILESDIR}"/5.8.0_all_distutils_cxx.patch
 	eapply "${FILESDIR}"/python-3.5-distutils-OO-build.patch
 	popd > /dev/null || die
 
@@ -201,7 +196,7 @@
 }
 
 src_install() {
-	local dest=/usr/$(get_libdir)/pypy3
+	local dest=/usr/$(get_libdir)/pypy3.5
 	einfo "Installing PyPy ..."
 	exeinto "${dest}"
 	doexe pypy3-c libpypy3-c.so
@@ -210,7 +205,7 @@
 	# preserve mtimes to avoid obsoleting caches
 	insopts -p
 	doins -r include lib_pypy lib-python
-	dosym ../$(get_libdir)/pypy3/pypy3-c /usr/bin/pypy3
+	dosym ../$(get_libdir)/pypy3.5/pypy3-c /usr/bin/pypy3
 	dodoc README.rst
 
 	if ! use gdbm; then
@@ -232,7 +227,7 @@
 	local -x PYTHON=${ED%/}${dest}/pypy3-c
 	# we can't use eclass function since PyPy is dumb and always gives
 	# paths relative to the interpreter
-	local PYTHON_SITEDIR=${EPREFIX}/usr/$(get_libdir)/pypy3/site-packages
+	local PYTHON_SITEDIR=${EPREFIX}/usr/$(get_libdir)/pypy3.5/site-packages
 	python_export pypy3 EPYTHON
 
 	echo "EPYTHON='${EPYTHON}'" > epython.py || die
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-07 11:36:36 UTC
Please attach the diff since bz malforms comments.

Do I guess correctly that pypy3.5 directory is now forced upstream?
Comment 2 Sander Sweers 2019-02-07 18:04:15 UTC
(In reply to Michał Górny from comment #1)
> Please attach the diff since bz malforms comments.

Will do.

> Do I guess correctly that pypy3.5 directory is now forced upstream?

They changed sysconfig to use pypy3.5, see commit https://bitbucket.org/pypy/pypy/commits/5ca68e43950be83. After rebuilding all pypy enabled packages against pypy3-7.0.0 there was nothing left in the old directories.
Comment 3 Sander Sweers 2019-02-07 18:05:05 UTC
Created attachment 564128 [details, diff]
pypy3 6.0.0 to 7.0.0 ebuild patch
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-08 14:35:03 UTC
Hmm, has it been officially released?  I don't see it on neither on homepage [1], nor on status blog [2].

[1]:https://www.pypy.org/download.html
[2]:https://morepypy.blogspot.com/
Comment 5 Sander Sweers 2019-02-08 21:30:43 UTC
The pygobject maintainer mentioned to me pypy team tagged the release so I started preparing the ebuild and opened this bug..

See http://doc.pypy.org/en/latest/release-v7.0.0.html and https://bitbucket.org/pypy/pypy/downloads/ has packages for download.

I did find a post on their ml about it, not sure what to make of that.. Its a release candidate but the version and release notes don't make it look like it is. https://mail.python.org/pipermail/pypy-dev/2019-February/015691.html
Comment 6 Sander Sweers 2019-02-09 11:43:01 UTC
Created attachment 564320 [details, diff]
pypy 6.0.0 to 7.0.0 ebuild patch

Other than that patches apply cleanly the changed are the same as with pypy3.
Comment 7 Sander Sweers 2019-02-13 20:30:28 UTC
They posted it on the download page [1] and announced it on the blog [2].

[1] https://pypy.org/download.html
[2] https://morepypy.blogspot.com/2019/02/pypy-v700-triple-release-of-27-35-and.html

I looked at he -bin versions but they are on a binhost so not much I can do from here. If you need anything else from me just let me know.
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-14 08:15:19 UTC
Yeah, I've noticed.  Please give me some time to test this and build the binpackages.  Thanks for the patches; I can't use them since you haven't signed off on them but I think I've got all the changes.
Comment 9 Larry the Git Cow gentoo-dev 2019-02-14 22:07:27 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c6ad58918e983f531e19772f51bbb39e1e04537

commit 8c6ad58918e983f531e19772f51bbb39e1e04537
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2019-02-14 10:27:46 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-02-14 22:07:10 +0000

    dev-python/pypy3: Bump to 7.0.0
    
    Bump to the 7.0.0 release.  Upstream has apparently changed install
    location to be /usr/lib/pypy3.5 independently of prefix, so we remove
    the Gentoo patch and adjust our paths accordingly.  Also distutils C++
    patch needed rebasing.  Thanks to Sander Sweers for early reporting
    and research.
    
    Bug: https://bugs.gentoo.org/677398
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 dev-python/pypy3/Manifest                          |   1 +
 .../pypy3/files/7.0.0_all_distutils_cxx.patch      | 347 +++++++++++++++++++++
 dev-python/pypy3/pypy3-7.0.0.ebuild                | 240 ++++++++++++++
 3 files changed, 588 insertions(+)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63eb3421cece1d55055e4f4e6f89b0fd5e86b4e4

commit 63eb3421cece1d55055e4f4e6f89b0fd5e86b4e4
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2019-02-14 08:05:18 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-02-14 22:06:52 +0000

    dev-python/pypy: Bump to 7.0.0
    
    Bump to the new 7.0.0 release, and update CPython patchset.  Upstream
    has apparently started using /usr/lib/pypy2.7 as package location
    independently of prefix, so our patches stopped being necessary (but we
    need subslot bump to move everything).  Thanks to Sander Sweers
    for the early notification and research on the new release.
    
    Bug: https://bugs.gentoo.org/677398
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 dev-python/pypy/Manifest          |   2 +
 dev-python/pypy/pypy-7.0.0.ebuild | 282 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 284 insertions(+)
Comment 10 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-14 22:09:03 UTC
FTR, binary package builds are still in progress and I'm going to commit them tomorrow.  I'll probably also keep the whole thing masked until I rebuild my systems with the new directories and see if it breaks anything.
Comment 11 Larry the Git Cow gentoo-dev 2019-02-15 05:17:16 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67c5e0a33d91d170991f57ab7bd672b30e0b2703

commit 67c5e0a33d91d170991f57ab7bd672b30e0b2703
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2019-02-15 05:08:41 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-02-15 05:10:02 +0000

    dev-python/pypy3-bin: Bump to 7.0.0
    
    Closes: https://bugs.gentoo.org/677398
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 dev-python/pypy3-bin/Manifest                      |   6 +
 .../pypy3-bin/files/7.0.0_all_distutils_cxx.patch  | 347 +++++++++++++++++++++
 dev-python/pypy3-bin/pypy3-bin-7.0.0.ebuild        | 178 +++++++++++
 3 files changed, 531 insertions(+)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd20425484ded4388b351570d7a276c59e3c3c94

commit dd20425484ded4388b351570d7a276c59e3c3c94
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2019-02-15 04:59:58 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-02-15 05:08:15 +0000

    dev-python/pypy-bin: Bump to 7.0.0
    
    Closes: https://bugs.gentoo.org/677398
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 dev-python/pypy-bin/Manifest              |  12 ++
 dev-python/pypy-bin/pypy-bin-7.0.0.ebuild | 204 ++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)
Comment 12 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-16 13:12:02 UTC
So I've just verified this and all that fixed path schema is bullshit.  After removing the Gentoo patches, PyPy is back to installing everything into /usr/lib/pypy*.  And the only reason everything didn't blow up is because the arbitrary install path change (which is probably entirely meaningless waste of users' time) silenced distutils-r1 check for this.
Comment 13 Sander Sweers 2019-02-16 13:41:57 UTC
For me the /usr/lib/pypy/ is absent and nothing installs there.

 ls -ld /usr/lib/py*
drwxr-xr-x  6 root root  4096 feb 15 14:31 /usr/lib/pypy2.7
drwxr-xr-x  6 root root  4096 feb 15 17:40 /usr/lib/pypy3.5
drwxr-xr-x 27 root root 20480 jan 18 17:37 /usr/lib/python2.7
drwxr-xr-x  3 root root  4096 jan 18 17:50 /usr/lib/python3.4
drwxr-xr-x 36 root root  4096 jan 18 18:40 /usr/lib/python3.5
drwxr-xr-x 35 root root 12288 jan 18 17:39 /usr/lib/python3.6
drwxr-xr-x 35 root root 12288 jan 18 17:41 /usr/lib/python3.7
drwxr-xr-x  8 root root  4096 feb 15 17:51 /usr/lib/python-exec


$ equery l pypy pypy3
 * Searching for pypy ...
[IP-] [  ] dev-python/pypy-7.0.0:0/41-py27

 * Searching for pypy3 ...
[IP-] [  ] dev-python/pypy3-7.0.0:0/71

Which packages are causing you problems?
Comment 14 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2019-02-16 14:21:46 UTC
Portage, for example, installs into /usr/lib/pypy3.5/share/...
Comment 15 Larry the Git Cow gentoo-dev 2019-02-16 15:08:35 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f5607664886fe43336cdde1cead50d2ffb8b8a0

commit 9f5607664886fe43336cdde1cead50d2ffb8b8a0
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2019-02-16 14:58:16 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2019-02-16 15:08:26 +0000

    package.mask: Unmask pypy{,3}-7.0.0
    
    Now that Gentoo path patch has been restored, there's nothing special
    about the 7.0.0 release, so we can unmask it as well.  Not that the mask
    still applied once I revbumped them.
    
    Closes: https://bugs.gentoo.org/677398
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 profiles/package.mask | 10 ----------
 1 file changed, 10 deletions(-)