Mercurial > hgrepos > FreeBSD > ports > PyPy
view lang/pypy2/README @ 199:8b567a874360
Upgrade to PyPy v7.3.19.
BUGS:
- pypy311 not yet supported.
- pypy39 not yet deleted.
- Tests for pypy3 not yet runnable.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 12 Mar 2025 13:45:29 +0100 |
| parents | 9e9df3f25e7d |
| children | fccf5077df78 |
line wrap: on
line source
Notes on how to build ===================== 1. Schritt: ein erstes pypy bauen --------------------------------- Erst einmal mit dem **alten** Ports-Verzeichnis, welches insgesamt auf dem Stand ist, wo pypy noch offizieller Bestandteil des Ports-Trees war. Problem: py27-setuptools ist aber aktuell in Wirklichkeit py27-setuptools44. Deshalb tricksen und zum ersten Bauen und installieren die setuptools in der Pkg-Db umbenennen mit "pkg set -n" ACHTUNG: Ports-Tree auf alten Zeitpunkt stellen: "hg update -r 377386a46a6b" Dependencies ~~~~~~~~~~~~ Build py27-pycparser (Origin: devel/py-pycparser): pkg install py27-setuptools44 pkg set -n py27-setuptools44:py27-setuptools cd devel/py-pycparser make FLAVOR=py27 package Install this package: pkg install py27-pycparser PyPy ~~~~ Origin: lang/pypy Install -A gmake, binutils, expat, libunwind, pkgconf Unbedingt auch sicherstellen, daß libffi und libz installiert sind Build: pkg set -n py27-setuptools44:py27-setuptools make rmconfig make build make package Installieren Dann erst einmal die setuptools wieder zurückbenennen: pkg set -n py27-setuptools:py27-setuptools44 Testen folgender Importe: import bz2 import curses import pyexpat import zlib import ssl import cffi 2. Schritt: nochmal bauen mit "richtiger" und aktueller Ports-Umgebung ---------------------------------------------------------------------- Vorgehen im Prinzip wie beim ersten Schritt, nur den aktuellen py27-pycparser installieren als VB und dann auch mittels "make config" das installierte erste "pypy" als Übersetzer nehmen ACHTUNG: Ports-Tree auf neueste Version stellen per "hg update". Keine setuptools-Umbenennung! Dependencies ~~~~~~~~~~~~ Build py27-pycparser (Origin: devel/py-pycparser): Den lassen, der kann mit pkg info py27-setuptools44 cd devel/py-pycparser Zum Bauen temporär "USES=python:2.7" einstellen. Bauen: make package Install this package: pkg install py27-pycparser PyPy ~~~~ Mit PyPy bauen: make config -> PYPY make build make package Re-Installation: pkg remove pypy pkg install pypy Testen folgender Importe: import bz2 import curses import pyexpat import zlib import ssl import cffi import ctypes pypy-gdbm und pypy-sqlite3 ~~~~~~~~~~~~~~~~~~~~~~~~~~ jeweils mit "FLAVOR=pypy" bauen Build von PyPy v7.3.14 auf FreeBSD-13.2 ======================================= .. note:: Auch das Kommanto :command:`pkg-config` scheint nun nötig zu sein laut Dokumentation. ``AF_NETLINK`` und :file:`linux/netlink.h` ------------------------------------------ FreeBSD-13.2 definiert im Gegensatz zu früheren Versionen nun auch ``AF_NETLINK``. Aber PyPy (übrigends auch frühere Versionen) geht davon aus, daß ``AF_NETLINK`` nur unter Linux definiert sein kann und includiert dann fest das Include-File :file:`linux/netlink.h`; das gibt es aber unter FreeBSD nicht. Stattdessen ist es hier :file:'netlink/netlink.h`. Deswegen in :file:`rpython/rlib/_rsocket_rffi.py` die entsprechende Include-Definition patchen. termios ------- PyPy v7.3.14 baut nun auch das `termios`-Modul. Der entsprechende nötige Header :file:`termios.h` ist aber unter FreeBSD nicht automatisch beim Compilieren mit dabei. Deswegen in :file:`rpython/rlib/rposix.py` den Header :file:`termios.h` in die Platform-Konfigurations-Includes mit aufnehmen unter FreeBSD. Build von PyPy v7.3.19 auf FreeBSD-14.1 ======================================= Voraussetzungen --------------- py-pycparser ~~~~~~~~~~~~ ACHTUNG: Ports-Tree auf alten Zeitpunkt stellen: "hg update -r 377386a46a6b" (as-of 2021-01-08) Build py27-pycparser (Origin: devel/py-pycparser): Dessen Voraussetzung ist py27-setuptools. Entweder: pkg install py27-setuptools44 pkg set -n py27-setuptools44:py27-setuptools Oder: Für dem Bau von py-pycparser Mk/Uses/distutils patchen, so daß als dessen Dependency py27-setuptools44 statt py27-setuptools benutzt wird. Dann: cd devel/py-pycparser make FLAVOR=py27 package Install this package: pkg install py27-pycparser Ports-Umgebung wieder restaurieren Weitere Pakete ~~~~~~~~~~~~~~ Install gmake, binutils, expat, libffi, libunwind, pkgconf NOTE: libz ist bereits im Basis-OS dabei. PyPy2 ----- In der aktuellen Version wird ein Linken mit "libffi.a" bevorzugt for dem Linken mit "libffi.so". Das ist aber nicht möglich, da "libffi.a" nicht mit "-fPIC" übersetzt ist, das aber nötig ist. Deswegen "rpython/rlib/clibffi.py" entsprechend patchen, daß dafür wieder "libffi.so" bevorzugt wird. Mit Python2.7 übersetzen: make rmconfig make package Installation -- auch aller optionalen Pakete pypy2-sqlite3, pypy3-gdbm und pypy2-tkinter Test mit make test
