1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-29 05:38:00 +00:00

lang/pypy(3): update to 5.10, add flavors to ancillary ports

- Consistently use DISTVERSION instead of PORTVERSION (the former is set, not the latter)
 - Only depend on libunwind on x86 arch with FreeBSD >= 11 (fixes ignored build on arm/ppc)
 - Fix python dependency with depreciation of python meta ports
 - Remove PYPY_BITS from pkg-plist target, no longer used
 - Remove setting of PORTVERSION, DISTVERSION is set in bsd.pypy.mk
 - bsd.pypy.mk:
   - Define DISTVERSION once, to ensure consistency
   - PYPY_DIR: Handle versions with multiple digits
   - PYPY_CFFI_VER now differs in value between pypy and pypy3
 - bsd.pypy.cffi.mk:
   - Add FLAVORS for pypy and pypy3 [1]
   - Consistently use PYTHON_IMPL instead of the hard coded "pypy"
   - PLIST_FILES: use direct substitution instead of PLIST_SUB

Approved by:		portmgr (mat) [1]
Differential Revision:	https://reviews.freebsd.org/D13675
This commit is contained in:
David Naylor 2018-01-03 18:42:15 +00:00
parent 3bad94c07b
commit 52777f3f56
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=457998
37 changed files with 52 additions and 523 deletions

View File

@ -2,7 +2,6 @@
# $FreeBSD$
PORTNAME= gdbm
PORTVERSION= ${PYTHON_PORTVERSION}
CATEGORIES= databases python
MAINTAINER= python@FreeBSD.org

View File

@ -2,7 +2,6 @@
# $FreeBSD$
PORTNAME= sqlite3
PORTVERSION= ${PYTHON_PORTVERSION}
CATEGORIES= databases python
MAINTAINER= python@FreeBSD.org

View File

@ -2,10 +2,9 @@
# $FreeBSD$
PORTNAME?= pypy
DISTVERSION?= 5.9.0 # Also update bsd.pypy.cffi.mk
CATEGORIES= lang python
MASTER_SITES= https://bitbucket.org/pypy/pypy/downloads/ http://buildbot.pypy.org/mirror/
DISTNAME?= ${PORTNAME}2-v${PORTVERSION}-src
DISTNAME?= ${PORTNAME}2-v${DISTVERSION}-src
MAINTAINER= python@FreeBSD.org
COMMENT= Fast, compliant implementation of the Python language
@ -15,8 +14,7 @@ LICENSE_COMB= multi
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE
LIB_DEPENDS= libexpat.so:textproc/expat2 \
libffi.so:devel/libffi \
libunwind.so:devel/libunwind
libffi.so:devel/libffi
TEST_DEPENDS= ${LOCALBASE}/${PYPY_DIR}/lib_pypy/_gdbm_cffi.${PYPY_CFFI_VER}.so:databases/pypy-gdbm \
${LOCALBASE}/${PYPY_DIR}/lib_pypy/_sqlite3_cffi.${PYPY_CFFI_VER}.so:databases/pypy-sqlite3 \
${LOCALBASE}/${PYPY_DIR}/lib_pypy/_tkinter/tklib_cffi.${PYPY_CFFI_VER}.so:x11-toolkits/pypy-tkinter
@ -47,7 +45,7 @@ OPTIONS_SLAVE= PYTHON
.endif
ALL_TARGET= ${PORTNAME}-c
BUILD_WRKSRC?= ${WRKDIR}/build/usession-release-pypy2.7-v${PORTVERSION}-0/testing_1
BUILD_WRKSRC?= ${WRKDIR}/build/usession-release-pypy2.7-v${DISTVERSION}-0/testing_1
MAKE_ENV+= PYPY_LOCALBASE=${LOCALBASE} LDSHARED="${CC} -shared"
PACKAGE_ARGS?= --without-gdbm --without-sqlite3 --without-tk
USE_LDCONFIG= ${PREFIX}/${PYPY_DIR}/bin
@ -95,7 +93,7 @@ PYPY_MINMEM_BUILD_DEPENDS= pypy:lang/pypy
PYPY_VARS= PYTHON_CMD=${LOCALBASE}/bin/pypy
PYPY_MINMEM_VARS= PYTHON_CMD="${SETENV} PYPY_GC_MAX_DELTA=200MB ${LOCALBASE}/bin/pypy --jit loop_longevity=300"
PYTHON_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pycparser>=2.10:devel/py-pycparser@${PY_FLAVOR}
PYTHON_USES= python:2,build
PYTHON_USES= python:2.7,build
DESCR= ${.CURDIR}/pkg-descr
DISTINFO_FILE= ${.CURDIR}/distinfo
@ -106,8 +104,10 @@ PLIST= ${.CURDIR}/pkg-plist
.include "${MASTERDIR}/bsd.pypy.mk"
.include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
.if ${OPSYS} == FreeBSD && (${OSVERSION} < 1100000 || (${ARCH} != i386 && ${ARCH} != amd64))
PYPY_ARGS= --withoutmod-_vmprof
.else
LIB_DEPENDS+= libunwind.so:devel/libunwind
.endif
post-extract:
@ -154,7 +154,6 @@ do-test:
pkg-plist: stage
${TAR} -tf ${WRKDIR}/build/${PYPY_DIR}.tar.bz2 > ${WRKDIR}/.plist-files-gen
${REINPLACE_CMD} -e 's|^${PYPY_DIR}|%%PYPY_DIR%%|g' \
-e 's|_${PYPY_BITS}_|_%%PYPY_BITS%%_|g' \
-e 's|${PYPY_CFFI_VER}|%%PYPY_CFFI_VER%%|g' \
-e 's/\(.*\/__pycache__\)\/$$/@dir \1/g' \
-e '/\/$$/d' \

View File

@ -3,16 +3,19 @@
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTFILES=
BUILD_DEPENDS+= pypy:lang/pypy
RUN_DEPENDS+= pypy:lang/pypy
BUILD_DEPENDS+= ${PYTHON_IMPL}:lang/${PYTHON_IMPL}
RUN_DEPENDS+= ${PYTHON_IMPL}:lang/${PYTHON_IMPL}
PLIST_FILES= %%PYPY_DIR%%/lib_pypy/${CFFI_MODULE}_cffi.%%PYPY_CFFI_VER%%.so
PLIST_FILES= ${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
CFFI_MODULE?= _${PORTNAME}
PYTHON_IMPL= pypy
PYTHON_PORTVERSION?= 5.9.0
PYTHON_PKGNAMEPREFIX= pypy-
FLAVORS= pypy pypy3
FLAVOR?= ${FLAVORS:[1]}
PYTHON_IMPL= ${FLAVOR}
PYTHON_PORTVERSION= ${DISTVERSION}
PYTHON_PKGNAMEPREFIX= ${PYTHON_IMPL}-
PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_IMPL}
.include "${.CURDIR}/../../lang/pypy/bsd.pypy.mk"

View File

@ -1,5 +1,7 @@
# $FreeBSD$
DISTVERSION= 5.10.0
.if !defined(LICENSE)
LICENSE= MIT PSFL
LICENSE_COMB= multi
@ -8,6 +10,11 @@ LICENSE_COMB= multi
USES+= compiler:c11
PYTHON_IMPL?= ${PORTNAME}
PYPY_DIR= ${PYTHON_IMPL}-${PORTVERSION:C|([0-9])\.([0-9]).*|\1.\2|}
PYPY_CFFI_VER?= pypy-41
PYPY_DIR= ${PYTHON_IMPL}-${DISTVERSION:C|([0-9])\.([0-9]+).*|\1.\2|}
PLIST_SUB+= PYPY_DIR=${PYPY_DIR} PYPY_CFFI_VER=${PYPY_CFFI_VER}
.if ${PYTHON_IMPL} == pypy
PYPY_CFFI_VER= ${PYTHON_IMPL}-41
.else # ${PYTHON_IMPL} == pypy3
PYPY_CFFI_VER= ${PYTHON_IMPL}-${DISTVERSION:S|.||:C|\..*||}-${OPSYS:tl}${OSREL:C|\..*||}
.endif

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1509042816
SHA256 (pypy2-v5.9.0-src.tar.bz2) = de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7
SIZE (pypy2-v5.9.0-src.tar.bz2) = 19175394
TIMESTAMP = 1514290464
SHA256 (pypy2-v5.10.0-src.tar.bz2) = 1209f2db718e6afda17528baa5138177a14a0938588a7d3e1b7c722c483079a8
SIZE (pypy2-v5.10.0-src.tar.bz2) = 19181430

View File

@ -1,26 +0,0 @@
--- lib-python/2.7/ctypes/__init__.py.orig 2017-10-03 10:49:20 UTC
+++ lib-python/2.7/ctypes/__init__.py
@@ -360,14 +360,15 @@ class CDLL(object):
self._FuncPtr = _FuncPtr
if handle is None:
- if flags & _FUNCFLAG_CDECL:
- pypy_dll = _ffi.CDLL(name, mode)
- else:
- pypy_dll = _ffi.WinDLL(name, mode)
- self.__pypy_dll__ = pypy_dll
- handle = int(pypy_dll)
- if _sys.maxint > 2 ** 32:
- handle = int(handle) # long -> int
+ handle = 0
+ if flags & _FUNCFLAG_CDECL:
+ pypy_dll = _ffi.CDLL(name, mode, handle)
+ else:
+ pypy_dll = _ffi.WinDLL(name, mode, handle)
+ self.__pypy_dll__ = pypy_dll
+ handle = int(pypy_dll)
+ if _sys.maxint > 2 ** 32:
+ handle = int(handle) # long -> int
self._handle = handle
def __repr__(self):

View File

@ -1,58 +0,0 @@
--- pypy/module/_rawffi/alt/interp_funcptr.py.orig 2017-10-03 10:49:20 UTC
+++ pypy/module/_rawffi/alt/interp_funcptr.py
@@ -314,7 +314,7 @@ W_FuncPtr.typedef = TypeDef(
# ========================================================================
class W_CDLL(W_Root):
- def __init__(self, space, name, mode):
+ def __init__(self, space, name, mode, handle):
self.flags = libffi.FUNCFLAG_CDECL
self.space = space
if name is None:
@@ -322,7 +322,7 @@ class W_CDLL(W_Root):
else:
self.name = name
try:
- self.cdll = libffi.CDLL(name, mode)
+ self.cdll = libffi.CDLL(name, mode, handle)
except DLOpenError as e:
raise wrap_dlopenerror(space, e, self.name)
except OSError as e:
@@ -344,9 +344,9 @@ class W_CDLL(W_Root):
def getidentifier(self, space):
return space.newint(self.cdll.getidentifier())
-@unwrap_spec(name='fsencode_or_none', mode=int)
-def descr_new_cdll(space, w_type, name, mode=-1):
- return W_CDLL(space, name, mode)
+@unwrap_spec(name='fsencode_or_none', mode=int, handle=int)
+def descr_new_cdll(space, w_type, name, mode=-1, handle=0):
+ return W_CDLL(space, name, mode, handle)
W_CDLL.typedef = TypeDef(
@@ -359,13 +359,13 @@ W_CDLL.typedef = TypeDef(
)
class W_WinDLL(W_CDLL):
- def __init__(self, space, name, mode):
- W_CDLL.__init__(self, space, name, mode)
+ def __init__(self, space, name, mode, handle):
+ W_CDLL.__init__(self, space, name, mode, handle)
self.flags = libffi.FUNCFLAG_STDCALL
-@unwrap_spec(name='fsencode_or_none', mode=int)
-def descr_new_windll(space, w_type, name, mode=-1):
- return W_WinDLL(space, name, mode)
+@unwrap_spec(name='fsencode_or_none', mode=int, handle=int)
+def descr_new_windll(space, w_type, name, mode=-1, handle=0):
+ return W_WinDLL(space, name, mode, handle)
W_WinDLL.typedef = TypeDef(
@@ -380,4 +380,4 @@ W_WinDLL.typedef = TypeDef(
# ========================================================================
def get_libc(space):
- return W_CDLL(space, get_libc_name(), -1)
+ return W_CDLL(space, get_libc_name(), -1, 0)

View File

@ -1,15 +0,0 @@
--- pypy/module/_vmprof/test/test__vmprof.py.orig 2017-10-30 18:35:14 UTC
+++ pypy/module/_vmprof/test/test__vmprof.py
@@ -1,3 +1,4 @@
+import py
import sys
from rpython.tool.udir import udir
from pypy.tool.pytest.objspace import gettestobjspace
@@ -107,6 +108,7 @@ class AppTestVMProf(object):
_vmprof.disable()
assert _vmprof.is_enabled() is False
+ @py.test.mark.xfail(sys.platform.startswith('freebsd'), reason = "not implemented")
def test_get_profile_path(self):
import _vmprof
tmpfile = open(self.tmpfilename, 'wb')

View File

@ -1,12 +0,0 @@
--- pypy/module/termios/test/test_termios.py.orig 2017-10-03 10:49:20 UTC
+++ pypy/module/termios/test/test_termios.py
@@ -7,9 +7,6 @@ from rpython.tool.udir import udir
if os.name != 'posix':
py.test.skip('termios module only available on unix')
-if sys.platform.startswith('freebsd'):
- raise Exception('XXX seems to hangs on FreeBSD9')
-
class TestTermios(object):
def setup_class(cls):
try:

View File

@ -1,11 +0,0 @@
--- pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py.orig 2017-10-30 18:06:00 UTC
+++ pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py
@@ -2271,7 +2271,7 @@ def test_char16_char32_type(no_cpp=False
char32_t foo_4bytes(char32_t);
""")
lib = verify(ffi, "test_char16_char32_type" + no_cpp * "_nocpp", """
- #if !defined(__cplusplus) || __cplusplus < 201103L
+ #if !defined(__cplusplus) || (!defined(_LIBCPP_VERSION) && __cplusplus < 201103L)
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
#endif

View File

@ -1,9 +0,0 @@
--- pypy/module/test_lib_pypy/pyrepl/__init__.py.orig 2017-10-03 10:49:20 UTC
+++ pypy/module/test_lib_pypy/pyrepl/__init__.py
@@ -1,6 +1,3 @@
import sys
import lib_pypy.pyrepl
sys.modules['pyrepl'] = sys.modules['lib_pypy.pyrepl']
-
-if sys.platform.startswith('freebsd'):
- raise Exception('XXX seems to hangs on FreeBSD9')

View File

@ -1,11 +0,0 @@
--- pypy/module/test_lib_pypy/pyrepl/test_readline.py.orig 2017-10-30 18:28:08 UTC
+++ pypy/module/test_lib_pypy/pyrepl/test_readline.py
@@ -4,7 +4,7 @@ from .infrastructure import sane_term
@pytest.mark.skipif("os.name != 'posix' or 'darwin' in sys.platform or "
- "'kfreebsd' in sys.platform")
+ "'freebsd' in sys.platform")
def test_raw_input():
import os
import pty

View File

@ -1,19 +0,0 @@
--- pypy/tool/cpyext/extbuild.py.orig 2017-10-03 10:49:20 UTC
+++ pypy/tool/cpyext/extbuild.py
@@ -244,13 +244,13 @@ def get_sys_info_app(base_dir):
if sys.platform == 'win32':
compile_extra = ["/we4013"]
link_extra = ["/LIBPATH:" + os.path.join(sys.exec_prefix, 'libs')]
- elif sys.platform == 'darwin':
- compile_extra = link_extra = None
- pass
elif sys.platform.startswith('linux'):
compile_extra = [
"-O0", "-g", "-Werror=implicit-function-declaration", "-fPIC"]
link_extra = None
+ else:
+ compile_extra = link_extra = None
+ pass
return ExtensionCompiler(
builddir_base=base_dir,
include_extra=[get_python_inc()],

View File

@ -1,19 +0,0 @@
--- rpython/rlib/libffi.py.orig 2017-10-03 10:49:20 UTC
+++ rpython/rlib/libffi.py
@@ -434,11 +434,12 @@ class Func(AbstractFuncPtr):
# XXX: it partially duplicate the code in clibffi.py
class CDLL(object):
- def __init__(self, libname, mode=-1):
+ def __init__(self, libname, mode=-1, lib=0):
"""Load the library, or raises DLOpenError."""
- self.lib = rffi.cast(DLLHANDLE, 0)
- with rffi.scoped_str2charp(libname) as ll_libname:
- self.lib = dlopen(ll_libname, mode)
+ self.lib = rffi.cast(DLLHANDLE, lib)
+ if lib == 0:
+ with rffi.scoped_str2charp(libname) as ll_libname:
+ self.lib = dlopen(ll_libname, mode)
def __del__(self):
if self.lib:

View File

@ -1,14 +1,11 @@
--- rpython/rlib/rvmprof/cintf.py.orig 2017-10-03 10:49:20 UTC
--- rpython/rlib/rvmprof/cintf.py.orig 2017-12-27 19:18:35 UTC
+++ rpython/rlib/rvmprof/cintf.py
@@ -47,7 +47,10 @@ else:
# Guessing a BSD-like Unix platform
compile_extra += ['-DVMPROF_UNIX']
compile_extra += ['-DVMPROF_MAC']
- _libs = []
+ if sys.platform.startswith('freebsd'):
+ _libs = ['unwind']
+ else:
+ _libs = []
@@ -17,7 +17,7 @@ class VMProfPlatformUnsupported(Exceptio
# vmprof works only on x86 for now
IS_SUPPORTED = detect_cpu.autodetect().startswith('x86')
-if sys.platform == 'win32':
+if sys.platform in ('freebsd10', 'win32'):
IS_SUPPORTED = False
eci_kwds = dict(
ROOT = py.path.local(rpythonroot).join('rpython', 'rlib', 'rvmprof')

View File

@ -1,11 +0,0 @@
--- rpython/rlib/rvmprof/src/shared/machine.c.orig 2017-10-03 10:49:20 UTC
+++ rpython/rlib/rvmprof/src/shared/machine.c
@@ -28,7 +28,7 @@ const char * vmp_machine_os_name(void)
#elif __linux__
return "linux";
#elif __FreeBSD__
- return "freebsd"
+ return "freebsd";
#else
#error "Unknown compiler"
#endif

View File

@ -1,10 +0,0 @@
--- rpython/rlib/rvmprof/src/shared/vmp_stack.c.orig 2017-10-03 10:49:20 UTC
+++ rpython/rlib/rvmprof/src/shared/vmp_stack.c
@@ -29,6 +29,7 @@ static int (*unw_get_proc_name)(unw_curs
static int (*unw_is_signal_frame)(unw_cursor_t *) = NULL;
static int (*unw_getcontext)(unw_context_t *) = NULL;
#else
+#define UNW_LOCAL_ONLY
#include <libunwind.h>
#endif

View File

@ -1,20 +0,0 @@
--- rpython/rtyper/lltypesystem/ll2ctypes.py.orig 2017-10-03 10:49:20 UTC
+++ rpython/rtyper/lltypesystem/ll2ctypes.py
@@ -1142,7 +1142,7 @@ if ctypes:
libc_name = get_libc_name() # Make sure the name is determined during import, not at runtime
if _FREEBSD:
RTLD_DEFAULT = -2 # see <dlfcn.h>
- rtld_default_lib = ctypes.CDLL("RTLD_DEFAULT", handle=RTLD_DEFAULT, **load_library_kwargs)
+ rtld_default_lib = ctypes.CDLL("ld-elf.so.1", handle=RTLD_DEFAULT, **load_library_kwargs)
# XXX is this always correct???
standard_c_lib = ctypes.CDLL(libc_name, **load_library_kwargs)
@@ -1238,7 +1238,7 @@ def get_ctypes_callable(funcptr, calling
if cfunc is None:
if _FREEBSD and funcname in ('dlopen', 'fdlopen', 'dlsym', 'dlfunc', 'dlerror', 'dlclose'):
- cfunc = get_on_lib(rtld_default_lib, funcname)
+ cfunc = rtld_default_lib[funcname]
else:
cfunc = get_on_lib(standard_c_lib, funcname)
# XXX magic: on Windows try to load the function from 'kernel32' too

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1509472928
SHA256 (pypy3-v5.9.0-src.tar.bz2) = a014f47f50a1480f871a0b82705f904b38c93c4ca069850eb37653fedafb1b97
SIZE (pypy3-v5.9.0-src.tar.bz2) = 29055111
TIMESTAMP = 1514299345
SHA256 (pypy3-v5.10.0-src.tar.bz2) = a6e4cffde71e3f08b6e1befa5c0352a9bcc5f4e9f5cbf395001e0763a1a0d9e3
SIZE (pypy3-v5.10.0-src.tar.bz2) = 29075971

View File

@ -1,26 +0,0 @@
--- lib-python/2.7/ctypes/__init__.py.orig 2017-10-03 10:53:54 UTC
+++ lib-python/2.7/ctypes/__init__.py
@@ -360,14 +360,15 @@ class CDLL(object):
self._FuncPtr = _FuncPtr
if handle is None:
- if flags & _FUNCFLAG_CDECL:
- pypy_dll = _ffi.CDLL(name, mode)
- else:
- pypy_dll = _ffi.WinDLL(name, mode)
- self.__pypy_dll__ = pypy_dll
- handle = int(pypy_dll)
- if _sys.maxint > 2 ** 32:
- handle = int(handle) # long -> int
+ handle = 0
+ if flags & _FUNCFLAG_CDECL:
+ pypy_dll = _ffi.CDLL(name, mode, handle)
+ else:
+ pypy_dll = _ffi.WinDLL(name, mode, handle)
+ self.__pypy_dll__ = pypy_dll
+ handle = int(pypy_dll)
+ if _sys.maxint > 2 ** 32:
+ handle = int(handle) # long -> int
self._handle = handle
def __repr__(self):

View File

@ -1,23 +0,0 @@
--- lib-python/3/ctypes/__init__.py.orig 2017-10-03 10:53:54 UTC
+++ lib-python/3/ctypes/__init__.py
@@ -345,13 +345,13 @@ class CDLL(object):
self._FuncPtr = _FuncPtr
if handle is None:
- if flags & _FUNCFLAG_CDECL:
- pypy_dll = _ffi.CDLL(name, mode)
- else:
- pypy_dll = _ffi.WinDLL(name, mode)
- self.__pypy_dll__ = pypy_dll
- handle = int(pypy_dll)
- self._handle = handle
+ handle = 0
+ if flags & _FUNCFLAG_CDECL:
+ pypy_dll = _ffi.CDLL(name, mode)
+ else:
+ pypy_dll = _ffi.WinDLL(name, mode)
+ self.__pypy_dll__ = pypy_dll
+ self._handle = int(pypy_dll)
def __repr__(self):
return "<%s '%s', handle %x at 0x%x>" % \

View File

@ -1,11 +0,0 @@
--- lib_pypy/_curses_build.py.orig 2017-10-03 10:53:54 UTC
+++ lib_pypy/_curses_build.py
@@ -34,6 +34,8 @@ ffi.set_source("_curses_cffi", """
#define NCURSES_OPAQUE 0
#endif
+#define _XOPEN_SOURCE_EXTENDED 1
+#define NCURSES_WIDECHAR 1
#include <ncurses.h>
#include <panel.h>
#include <term.h>

View File

@ -1,58 +0,0 @@
--- pypy/module/_rawffi/alt/interp_funcptr.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/module/_rawffi/alt/interp_funcptr.py
@@ -314,7 +314,7 @@ W_FuncPtr.typedef = TypeDef(
# ========================================================================
class W_CDLL(W_Root):
- def __init__(self, space, name, mode):
+ def __init__(self, space, name, mode, handle):
self.flags = libffi.FUNCFLAG_CDECL
self.space = space
if name is None:
@@ -322,7 +322,7 @@ class W_CDLL(W_Root):
else:
self.name = name
try:
- self.cdll = libffi.CDLL(name, mode)
+ self.cdll = libffi.CDLL(name, mode, handle)
except DLOpenError as e:
raise wrap_dlopenerror(space, e, self.name)
except OSError as e:
@@ -344,9 +344,9 @@ class W_CDLL(W_Root):
def getidentifier(self, space):
return space.newint(self.cdll.getidentifier())
-@unwrap_spec(name='fsencode_or_none', mode=int)
-def descr_new_cdll(space, w_type, name, mode=-1):
- return W_CDLL(space, name, mode)
+@unwrap_spec(name='fsencode_or_none', mode=int, handle=int)
+def descr_new_cdll(space, w_type, name, mode=-1, handle=0):
+ return W_CDLL(space, name, mode, handle)
W_CDLL.typedef = TypeDef(
@@ -359,13 +359,13 @@ W_CDLL.typedef = TypeDef(
)
class W_WinDLL(W_CDLL):
- def __init__(self, space, name, mode):
- W_CDLL.__init__(self, space, name, mode)
+ def __init__(self, space, name, mode, handle):
+ W_CDLL.__init__(self, space, name, mode, handle)
self.flags = libffi.FUNCFLAG_STDCALL
-@unwrap_spec(name='fsencode_or_none', mode=int)
-def descr_new_windll(space, w_type, name, mode=-1):
- return W_WinDLL(space, name, mode)
+@unwrap_spec(name='fsencode_or_none', mode=int, handle=int)
+def descr_new_windll(space, w_type, name, mode=-1, handle=0):
+ return W_WinDLL(space, name, mode, handle)
W_WinDLL.typedef = TypeDef(
@@ -380,4 +380,4 @@ W_WinDLL.typedef = TypeDef(
# ========================================================================
def get_libc(space):
- return W_CDLL(space, get_libc_name(), -1)
+ return W_CDLL(space, get_libc_name(), -1, 0)

View File

@ -1,15 +0,0 @@
--- pypy/module/_vmprof/test/test__vmprof.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/module/_vmprof/test/test__vmprof.py
@@ -1,3 +1,4 @@
+import py
import sys
from rpython.tool.udir import udir
from pypy.tool.pytest.objspace import gettestobjspace
@@ -110,6 +111,7 @@ class AppTestVMProf(object):
_vmprof.disable()
assert _vmprof.is_enabled() is False
+ @py.test.mark.xfail(sys.platform.startswith('freebsd'), reason = "not implemented")
def test_get_profile_path(self):
import _vmprof
tmpfile = open(self.tmpfilename, 'wb')

View File

@ -1,12 +0,0 @@
--- pypy/module/termios/test/test_termios.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/module/termios/test/test_termios.py
@@ -7,9 +7,6 @@ from rpython.tool.udir import udir
if os.name != 'posix':
py.test.skip('termios module only available on unix')
-if sys.platform.startswith('freebsd'):
- raise Exception('XXX seems to hangs on FreeBSD9')
-
class TestTermios(object):
def setup_class(cls):
try:

View File

@ -1,11 +0,0 @@
--- pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py
@@ -2271,7 +2271,7 @@ def test_char16_char32_type(no_cpp=False
char32_t foo_4bytes(char32_t);
""")
lib = verify(ffi, "test_char16_char32_type" + no_cpp * "_nocpp", """
- #if !defined(__cplusplus) || __cplusplus < 201103L
+ #if !defined(__cplusplus) || (!defined(_LIBCPP_VERSION) && __cplusplus < 201103L)
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
#endif

View File

@ -1,9 +0,0 @@
--- pypy/module/test_lib_pypy/pyrepl/__init__.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/module/test_lib_pypy/pyrepl/__init__.py
@@ -1,6 +1,3 @@
import sys
import lib_pypy.pyrepl
sys.modules['pyrepl'] = sys.modules['lib_pypy.pyrepl']
-
-if sys.platform.startswith('freebsd'):
- raise Exception('XXX seems to hangs on FreeBSD9')

View File

@ -1,11 +0,0 @@
--- pypy/module/test_lib_pypy/pyrepl/test_readline.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/module/test_lib_pypy/pyrepl/test_readline.py
@@ -4,7 +4,7 @@ from .infrastructure import sane_term
@pytest.mark.skipif("os.name != 'posix' or 'darwin' in sys.platform or "
- "'kfreebsd' in sys.platform")
+ "'freebsd' in sys.platform")
def test_raw_input():
import os
import pty

View File

@ -1,19 +0,0 @@
--- pypy/tool/cpyext/extbuild.py.orig 2017-10-03 10:53:54 UTC
+++ pypy/tool/cpyext/extbuild.py
@@ -246,13 +246,13 @@ def get_sys_info_app(base_dir):
if sys.platform == 'win32':
compile_extra = ["/we4013"]
link_extra = ["/LIBPATH:" + os.path.join(sys.exec_prefix, 'libs')]
- elif sys.platform == 'darwin':
- compile_extra = link_extra = None
- pass
elif sys.platform.startswith('linux'):
compile_extra = [
"-O0", "-g", "-Werror=implicit-function-declaration", "-fPIC"]
link_extra = None
+ else:
+ compile_extra = link_extra = None
+ pass
return ExtensionCompiler(
builddir_base=base_dir,
include_extra=[get_python_inc()],

View File

@ -1,19 +0,0 @@
--- rpython/rlib/libffi.py.orig 2017-10-03 10:53:54 UTC
+++ rpython/rlib/libffi.py
@@ -434,11 +434,12 @@ class Func(AbstractFuncPtr):
# XXX: it partially duplicate the code in clibffi.py
class CDLL(object):
- def __init__(self, libname, mode=-1):
+ def __init__(self, libname, mode=-1, lib=0):
"""Load the library, or raises DLOpenError."""
- self.lib = rffi.cast(DLLHANDLE, 0)
- with rffi.scoped_str2charp(libname) as ll_libname:
- self.lib = dlopen(ll_libname, mode)
+ self.lib = rffi.cast(DLLHANDLE, lib)
+ if lib == 0:
+ with rffi.scoped_str2charp(libname) as ll_libname:
+ self.lib = dlopen(ll_libname, mode)
def __del__(self):
if self.lib:

View File

@ -1,14 +1,11 @@
--- rpython/rlib/rvmprof/cintf.py.orig 2017-10-03 10:53:54 UTC
--- rpython/rlib/rvmprof/cintf.py.orig 2017-12-22 10:09:25 UTC
+++ rpython/rlib/rvmprof/cintf.py
@@ -47,7 +47,10 @@ else:
# Guessing a BSD-like Unix platform
compile_extra += ['-DVMPROF_UNIX']
compile_extra += ['-DVMPROF_MAC']
- _libs = []
+ if sys.platform.startswith('freebsd'):
+ _libs = ['unwind']
+ else:
+ _libs = []
@@ -17,7 +17,7 @@ class VMProfPlatformUnsupported(Exceptio
# vmprof works only on x86 for now
IS_SUPPORTED = detect_cpu.autodetect().startswith('x86')
-if sys.platform == 'win32':
+if sys.platform in ('freebsd10', 'win32'):
IS_SUPPORTED = False
eci_kwds = dict(
ROOT = py.path.local(rpythonroot).join('rpython', 'rlib', 'rvmprof')

View File

@ -1,11 +0,0 @@
--- rpython/rlib/rvmprof/src/shared/machine.c.orig 2017-10-03 10:53:54 UTC
+++ rpython/rlib/rvmprof/src/shared/machine.c
@@ -28,7 +28,7 @@ const char * vmp_machine_os_name(void)
#elif __linux__
return "linux";
#elif __FreeBSD__
- return "freebsd"
+ return "freebsd";
#else
#error "Unknown compiler"
#endif

View File

@ -1,10 +0,0 @@
--- rpython/rlib/rvmprof/src/shared/vmp_stack.c.orig 2017-10-03 10:53:54 UTC
+++ rpython/rlib/rvmprof/src/shared/vmp_stack.c
@@ -29,6 +29,7 @@ static int (*unw_get_proc_name)(unw_curs
static int (*unw_is_signal_frame)(unw_cursor_t *) = NULL;
static int (*unw_getcontext)(unw_context_t *) = NULL;
#else
+#define UNW_LOCAL_ONLY
#include <libunwind.h>
#endif

View File

@ -1,20 +0,0 @@
--- rpython/rtyper/lltypesystem/ll2ctypes.py.orig 2017-10-03 10:53:54 UTC
+++ rpython/rtyper/lltypesystem/ll2ctypes.py
@@ -1142,7 +1142,7 @@ if ctypes:
libc_name = get_libc_name() # Make sure the name is determined during import, not at runtime
if _FREEBSD:
RTLD_DEFAULT = -2 # see <dlfcn.h>
- rtld_default_lib = ctypes.CDLL("RTLD_DEFAULT", handle=RTLD_DEFAULT, **load_library_kwargs)
+ rtld_default_lib = ctypes.CDLL("ld-elf.so.1", handle=RTLD_DEFAULT, **load_library_kwargs)
# XXX is this always correct???
standard_c_lib = ctypes.CDLL(libc_name, **load_library_kwargs)
@@ -1238,7 +1238,7 @@ def get_ctypes_callable(funcptr, calling
if cfunc is None:
if _FREEBSD and funcname in ('dlopen', 'fdlopen', 'dlsym', 'dlfunc', 'dlerror', 'dlclose'):
- cfunc = get_on_lib(rtld_default_lib, funcname)
+ cfunc = rtld_default_lib[funcname]
else:
cfunc = get_on_lib(standard_c_lib, funcname)
# XXX magic: on Windows try to load the function from 'kernel32' too

View File

@ -2106,6 +2106,7 @@ bin/pypy3
%%PYPY_DIR%%/lib_pypy/_cffi_ssl/_stdssl/error.py
%%PYPY_DIR%%/lib_pypy/_cffi_ssl/_stdssl/errorcodes.py
%%PYPY_DIR%%/lib_pypy/_cffi_ssl/_stdssl/utility.py
%%PYPY_DIR%%/lib_pypy/_cffi_ssl/osx-roots.diff
%%PYPY_DIR%%/lib_pypy/_cffi_ssl/tools/make_ssl_data.py
%%PYPY_DIR%%/lib_pypy/_codecs_cn.py
%%PYPY_DIR%%/lib_pypy/_codecs_hk.py
@ -2268,6 +2269,7 @@ bin/pypy3
%%PYPY_DIR%%/lib_pypy/cffi/verifier.py
%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/.empty
%%PYPY_DIR%%/lib_pypy/ctypes_support.py
%%PYPY_DIR%%/lib_pypy/faulthandler.py
%%PYPY_DIR%%/lib_pypy/future_builtins.py
%%PYPY_DIR%%/lib_pypy/greenlet.egg-info
%%PYPY_DIR%%/lib_pypy/greenlet.py
@ -2311,16 +2313,19 @@ bin/pypy3
%%PYPY_DIR%%/site-packages/README
@dir %%PYPY_DIR%%/lib-python/3/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/collections/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/curses/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/distutils/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/distutils/command/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/email/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/encodings/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/ensurepip/__pycache__
@dir %%PYPY_DIR%%/lib-python/3/importlib/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/_cffi_ssl/_cffi_src/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/_cffi_ssl/_cffi_src/openssl/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/_cffi_ssl/_stdssl/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/_hashlib/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/_ssl/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/cffi/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/cffi/_pycparser/__pycache__
@dir %%PYPY_DIR%%/lib_pypy/cffi/_pycparser/ply/__pycache__

View File

@ -2,7 +2,6 @@
# $FreeBSD$
PORTNAME= tkinter
PORTVERSION= ${PYTHON_PORTVERSION}
CATEGORIES= x11-toolkits python
MAINTAINER= python@FreeBSD.org