===> The following configuration options are available for python31-3.1.5_12:
EXAMPLES=on: Build and/or install examples
FPECTL=off: Floating point exception handling
IPV6=on: IPv6 protocol support
NLS=on: Enable Gettext support for the locale module
PYMALLOC=on: Use Python's internal malloc
THREADS=on: Threading support
UCS4=on: Unicode UCS-4 encoding support
===> Use 'make config' to modify these settings
lang/python{27,31,32}: Replace USE_XZ with USES=tar:xz
USE_XZ has been deprecated, replace it with the new USES value.
Python 3.3 and 3.4 ports have already been converted.
lang/python{31,32,33}: Fix stage/package as non-root
Copy the second part of a change previously made to python27 [1], to
python31, python32 and python33.
This fixes staging and packaging of these ports by a non-root user by
running ranlib on the archive prior to it being installed read-only.
While I'm here:
- python27: Add breadcrumbs and references to the patch header
- python34: Update breadcrumbs and references to the patch header
[1] https://svnweb.freebsd.org/ports?view=revision&revision=350207
Submitted by: antoine
Reviewed by: kwm, sbz
lang/python{31,32,33}: Add clang 3.4 fix from python27
Copy change committed to python27 [1] to python31, python32 and
python33 to fix builds of some extensions with Clang 3.4.
Also add breadcrumbs to the patch header in lang/python27 referencing
the upstream issue. [2]
The Python 3.4 port (lang/python34) already carries the patch.
[1] https://svnweb.freebsd.org/ports?view=revision&revision=346428
[2] http://bugs.python.org/issue20767
lang/python*: Backport security fix for CVE-2014-1912
A vulnerability was reported [1] in Python's socket module, due to a
boundary error within the sock_recvfrom_into() function, which could be
exploited to cause a buffer overflow.
This could be used to crash a Python application that uses the
socket.recvfrom_info() function or, possibly, execute arbitrary code
with the permissions of the user running vulnerable Python code.
This vulnerable function, socket.recvfrom_into(), was introduced in
Python 2.5. Earlier versions are not affected by this flaw. This is
fixed in upstream branches for version 2.7, 3.1, 3.2 and 3.3.
[1] http://bugs.python.org/issue20246
MFH: 2014Q1
Security: 8e5e6d42-a0fa-11e3-b09a-080027f2d077
lang/python31: Backport fox for Python issue #8168
- Backport Python issue #8168 [1]:
python3 py_compile does not ignore UTF-8 BOM characters
This causes installation (during bytecode compilation) errors for Python
ports with sources that contain BOM characters [2]
The issue was fixed [3] in the default branch at the time (3.2) but was
not backported to 3.1.
Since Python 3.1 is now in security-fix-only mode (no new features or bug
fixes), backporting is required.
[1] http://bugs.python.org/issue8168
[2] http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/186034
[3] http://hg.python.org/cpython/rev/e15a8a476494/
PR: ports/186034
Reported by: Mark Andrews <marka at isc dot org>
All Python ports: Address abort() for ctypes import on FreeBSD/ARM
The current FreeBSD/ARM __clear_cache() implementation does nothing #if
__i386__ || __x86_64__ #else abort();
cognet@ advises this is an issue for anything !Apple that is using the
libcompiler_rt provided by Clang on ARM, and requires upstreaming.
This is the root cause of abort() on import for the ctypes module in
Python, as they bundle libffi. [1]
This change patches the bundled libffi library in all Python ports, even
though it is a NOOP for the ports that use devel/libffi. These ports,
currently python31, will get the fix via ports/184517
A huge shout out to cognet@ who helped diagnose the issue and created
the patch to address it. Thank you!
PR: ports/149167 [1]
PR: ports/184517
Submitted by: cognet [3]
Reviewed by: cognet, eadler, milki, ak
Fix OSS Audio and enable FreeBSD 11 support in Python 3.2 and 3.1
- Add the appropriate Python platform (plat-*) files for FreeBSD 11
- Update pkg-plist
Backport a upstream change [1] removing OS major version from the check
to enable the OSS Audio module in setup.py:
Issue #12326: don't test the major version of sys.platform Use
startswith, instead of ==, when testing sys.platform to support
new platforms like Linux 3 or OpenBSD 5. [2]
[1] http://hg.python.org/cpython/rev/50f1922bc1d5
[2] http://bugs.python.org/issue12326
lang/python31: Backport upstream kevent fix and use libffi from ports
Backport a change fixing use of kevent flags that was merged to Python
default, 3.3 and 2.7 branches, but not 3.2 and 3.1 that were in
security-only mode at the time of commit. [1]
- Add patch: patch-Modules__selectmodule.c
Based on patch by: David Naylor <naylor.b.david@gmail.com>
Unconditionally use libffi from ports because the Python 3.1 branch was
closed for maintenance when the import of libffi 3.0.13 took place. This
fixes _ctypes module build failure on i386. [2]
- Add global CONFIGURE_ARGS and LIB_DEPENDS
(Only the first 15 lines of the commit message are shown above )
lang/python31: Fix CFLAGS in python-config where cc = clang
- Temporarily override OPT:Olimit using CONFIGURE_ENV (ports/182952) [1]
- QA: Clean up and group related USE_*, WRKSRC and CONFIGURE entries
- QA: Whitespace alignment
- QA: Clarify DEPRECATED message
[1] Python removed OPT:Olimit in 3.2+, requested backport or
alternative upstream patch: http://bugs.python.org/issue877121
PR: ports/182952
Submitted by: pawel
Reviewed by: antoine
- Move the symlink magic for the default python version into lang/python
and lang/python2 and lang/python3. This change brings us closer to the goal
of making Python ports usable with different Python versions at the same
time.
- Add a new lang/python2 port to handle the symlinks for bin/python2,
bin/idle2, bin/pydoc2 and so on.
- Add a new lang/python3 port to handle the symlinks for bin/python3,
bin/idle3, bin/pydoc3 and so on.
- Bump the PORTREVISION on all lang/python* ports.
- update to latest upstream versions:
. lang/python27: 2.7.3 -> 2.7.5
. lang/python32: 3.2.3 -> 3.2.4
. lang/python33: 3.3.0 -> 3.3.1
- update Mk/bsd.python.mk with new versions
- mark lang/python26 and lang/python31 as deprecated (set them to
upstream EoL dates)
- update docs (lang/python-doc-html)
- align databases/py-bsddb patch for python27 - most of it was applied
upstream. Raise BDB version to 4.3 atleast, according to
upstream requirements.
Many thanks to Martin (miwi) for his time on this update.
PR: 178506
(Only the first 15 lines of the commit message are shown above )
Commit all the non-functional changes to python ports to reduce the diff size
for an exp-run of updated python versions.
- trim Makefile headers
- remove leading indefinite article from COMMENT
- use PYTHON shortcut in MASTER_SITES
- whitespace fixes
- remove checks for unsupported versions of FreeBSD
- use static value ``33'' instead of PYTHON_SUFFIX in lang/python33/pkg-plist,
because this value is not supposed to be changed across the branch and for
consistency with other python3 ports
- remove conflicts in lang/python-mode.el with not more existing python-2.4
- Remove "first-installed-win" logic for automatically setting
${PYTHON_DEFAULT_VERSION}, this generates conflicting packages.
- Create symbolic links as PEP 394 [1] suggests. ${PYTHON_DEFAULT_VERSION}
will create python and python${MAJOR_VERSION} links. In current default,
lang/python27 will create: python -> python2 -> python2.7
- Introduce ${PYTHON3_DEFAULT_VERSION}, which will handle bin/python3 link.
At this point, lang/python33 will create python3 -> python3.3
- Minor cleanups
* Trim Makefile headers
* Remove ${OSVERSION} detection for xz, whihc is done by USE_XZ
[1] http://www.python.org/dev/peps/pep-0394/
- do not hardcode distfile extension for lang/python ports in bsd.python.mk
(PYTHON_DISTFILE variable)
- switch lang/python ports (and it's slaves) to tar.xz
I compared all the four pairs .tgz/.tar.xz and they have no content differences.
Discussed on: python@
- Fix builds, if the NLS option switch is set. In some cases
expat-related modules are not built correctly.
PR: ports/169276
Submitted by: Greg Byshenk <freebsd@byshenk.net>
- Fix gettext detection for the locale module
- Explicitly enable/disable gettext support via a new NLS OPTION switch.
PR: ports/168684ports/136917
On behalf of: python@
- Add LDFLAGS to CONFIGURE_ENV and MAKE_ENV (as it was done with LDFLAGS)
- Fix all ports that add {CPP,LD}FLAGS to *_ENV to modify flags instead
PR: 157936
Submitted by: myself
Exp-runs by: pav
Approved by: pav
Handle built world without NIS more gracefully; detect missing ypcat and
disable NIS module.
PR: ports/115940
Submitted by: Alex Deiter <tiamat@komi.mts.ru>
Reviewed by: bf
Fix fcntl module to accept 'unsigned long' type commands for ioctl(2).
Although POSIX says the type is 'int', all BSD variants (including Mac OS X)
have been using 'unsigned long' type for very long time and its use predates
the standard long enough. For certain commands (e.g., TIOCSWINSZ, FIONBIO),
the Python value may get sign-extended on 64-bit platforms (by implicit type
promotion) and it causes annoying warnings from kernel such as this:
WARNING pid 24509 (python2.6): ioctl sign-extension ioctl ffffffff8004667e
Approved by: python (maintainer timeout)
- Ask the first Python installed to install the bin/python link,
and be the default Python version
PR: ports/109550
Submitted by: David Yeske <dyeske AT yahoo.com>
Obtained from: tmclaugh