===> The following configuration options are available for python27-2.7.18_5:
DEBUG=off: Build with debugging support
IPV6=on: IPv6 protocol support
LIBFFI=on: Use libffi from ports instead of bundled version
NLS=on: Enable gettext support for the locale module
PYMALLOC=on: Enable specialized mallocs
THREADS=on: Threading support
====> Unicode support: you have to select exactly one of them
UCS2=off: Enable UCS2 Unicode Strings
UCS4=on: Enable UCS4 Unicode Strings
===> Use 'make config' to modify these settings
all: drop support for FreeBSD 13, mips and risc64sf
Reviewed by: many (*)
Differential Revision: https://reviews.freebsd.org/D55624
Differential Revision: https://reviews.freebsd.org/D55642 (merged in from bofh)
many (*)
acm arrowd brooks cmt dch decke dinoex eduardo fluffy fuz gahr garga
jbeich joerg jrm kai kenrap martymac matthew mfechner michaelo mizhka
nobutaka pkubaj se tagattie thj
Anton Saietskii
GenericRikka
Gert Doering
Jan Bramkamp
Oleh Hushchenkov
Oleksandr Kryvulia
Ralf van der Enden
Yamagi
desktop kde python tcltk office
devel/libtextstyle, devel/gettext*: Update to 1.0
devel/gettext-tools: Use external libunistring and libxml2.
lang/python*: Remove dependency on gettext-tools. It isn't used and
it is gettext-tools that depends on python now.
PR: 293963
Exp-run by: antoine
lang/python27: re-add _tkinter into the distribution
x11-toolkits/py-tkinter is otherwise built separately, ie disabled
in the main Python distribution build, due to circular (build)
dependencies with Python itself in lang/tk*. Since this Python
version is never default anymore, having been EOLed for years among
other things, it is safe to re-add _tkinter as part of the main
distribution build. Also update pkg-message to reflect extension
module ports unavailability.
This is to benefit the only remaining consumer, games/renpy, as
x11-toolkits/py-tkinter transitions to Python 3+ only. The relevant
OPTION has been removed as having _tkinter always present makes the
option a no-op.
PR: 268283
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
lang/python27: Fix build with OpenSSL 3
This was fixed in an earlier commit but an arbitrary OSVERSION was used
to check the side effects in exp-run. As there is a proper OSVERSION now
this patch fixes the OSVERSION.
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
Mk: switch from PYTHON_PORTVERSION to PYTHON_DISTVERSION
This brings python framework in consistense with handbook recommendations
to prefer DISTVERSION and simplifies adding prerelease versions of
python
PR: 255013
Differential Revision: https://reviews.freebsd.org/D29418
Exp-run by: antoine
Approved by: wen@, no objection from python@ or portmgr@
Chanse update of devel/libffi
Chase the devel/libffi update
Bump portrevision of all dependent ports to chace shard library version bump
in libffi.
Update LIB_DEPENDS lines where needed to not require a specific version of
libffi.so.
PR: 247028 (for tracking)
lang/python{27,35,36,37,38}: Add closefrom(2) support
A single close(fd) syscall is cheap, but when MAXFDS (maximum file
descriptor number) is high, the loop calling close(fd) on each file
descriptor can take several milliseconds.
The default value of subprocess.Popen "close_fds" parameter changed to True
in Python 3. Compared to Python 2, close_fds=True can make Popen 10x
slower: see bpo-37790 [1]
The present workaround on FreeBSD to improve performance is to load and
mount the fdescfs kernel module, but this is not enabled by default.
This change adds minimum viable (and upstreamable) closefrom(2) syscall
support to Python's subprocess and posix modules, improving performance
(Only the first 15 lines of the commit message are shown above )
In various places in the ports tree, tests against ARCH are iterated
one-by-one when a pattern test would be more robust.
This consolidates the tests for 64-bit functionality.
PR: 239163
Approved by: sunpoet (python, maintainer)
Remove compatibility code for FreeBSD < 11.2 from all ports.
Simplify some ports where DragonFlyBSD no longer needs to be special-cased.
Submitted by: rene
Reviewed by: bapt, jbeich
Differential Revision: https://reviews.freebsd.org/D17724
lang/python27,35+: Remove MAKE_JOBS_UNSAFE
ports r393217 via bug 200622 [1] originally set MAKE_JOBS_UNSAFE=yes due to
incorrect uses of recursive make [2], causing intermittent build failures when
run with multiple jobs (-jN).
Upstream committed a fix for the issue in default (3.6, at the time), 3.5 and
2.7 which are now contained in all released lang/python?? port versions. 3.4 did
not receieve a backport merge.
lang/python3.5+ ports inadvertently inherited MAKE_JOBS_UNSAFE=yes, via
repocopies from lang/python34 on their creation, when they were infact safe to
use with -j.
Remove MAKE_JOBS_UNSAFE in all lang/python?? ports except python34 accordingly.
[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200622
[2] https://bugs.python.org/issue22359
PR: 232308
Reported by: cem
Reviewed by: cem
Approved by: koobs (python)
MFH: 2018Q4
Differential Revision: D17579
lang/python27: Fix build regression
r462630 added OpenSSL include/library paths to CFLAGS/LIBS which caused
the _elementtree and pyexpat modules to fail to build. Adding paths to CFLAGS
is known to cause issues [1].
Accordingly:
- Switch to using CPPFLAGS for OpenSSL include/library paths (like NLS).
- Move the comment describing why this is necessary to the top of the port
with reasonable warning about what can happen and why.
[1] https://svnweb.freebsd.org/ports?view=revision&revision=326729
PR: 226135, 222795)
Reported by: many
Reviewed by: sunpoet (python)
Approved by: koobs (python)
Set PORTNAME to python and add PKGNAMESUFFIX
- Sort USES
- Remove CPE_*: all of them are default values
- Update http:// links in Makefile comments and patch files
Add a code block for the qemu-user enabled cross build environment. When using
this environment in poudriere, CC is not set to the default of /usr/bin/cc and
a cross-compile toolchain is used. We need to hand edit this so that the run
time configuration for python matches what the FreeBSD base system provides.
PR: 208282
Submitted by: manu
Approved by: portmgr (mat)
lang/python{27,33,34,35,36}: Make Python curses module work with Unicode
Use readline from ports (USES= readline:port) and patch
setup.py to ignore readline from base. The patch is necessary for
FreeBSD < 1100000, as after this the readline library became an
INTERNALLIB, see base r268461 [1]
Link devel/readline against termcapw instead of termcap is part of
this change, see ports r444463 [2]
Note that this is the **ports** approach for getting Python curses
module working with Unicode. The other way is splitting libncurses
into separate libncurses and libtinfo in base, for which an open
issue exists [3].
(Only the first 15 lines of the commit message are shown above )
lang/python{27,33,34,35,36}: Install GDB debugging script
Users with a GDB that supports [1] Python extensions will automatically
load the extra debugging extensions when debugging programs that are
linked with libpythonX.Y.so.foo.
This enables extensions like 'py-bt' and 'py-frame' as described in
the Fedora Wiki Article: Easier Python Debugging [2], which can be
useful for debugging Python program state from crashes in C extensions,
for example.
[1] PYTHON option enabled in devel/gdb
[2] https://fedoraproject.org/wiki/Features/EasierPythonDebugging
PR: 203021
Submitted by: cem
Reviewed by: mat, koobs (python)
Approved by: koobs (python)
Differential Revision: D10398
Remove no-op patch.
This patch was submitted to upstream libffi and from there to upstream
libtool, but it doesn't do anything. The original patch committed in
r158131 did do something but when it was no longer needed it was changed
into something that doesn't make sense in r221521 instead of being removed.
Remove it now before it causes more confusion.
Use USES=pathfix where applicable.
PR: 213195
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D8093
- Update to version 2.7.12
- Remove patch that is included upstream
- Switch USE_OPENSSL to USES= ssl [1]
- Update documentation for python27
- Don't set CPE_VERSION, default is PORTVERSION [1]
PR: 210685
Submitted by: wen@(myself), brnrd@ [1]
Exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D6994
lang/python[xx]: backport upstream fix for CVE-2016-5636
Add patch for integer overflow in zipimport module to all our python ports.
While I'm here, get rid of -f flag in ${RM} invocation, because ${RM} already
expands to rm -f, so in result we are getting something like:
/bin/rm -f -f
/wrkdirs/usr/ports/lang/python35/work/stage/usr/local/lib/libpython3.so
PR: 210325
Submitted by: Vladimir Krstulja <vlad-fbsd@acheronmedia.com>
Security: 1d0f6852-33d8-11e6-a671-60a44ce6887b
With hat: python
For the various lang/python* ports, improve the __FreeBSD_version
check in pyport.h for working around a very old ctype issue.
If the workaround for this issue is enabled, pyport.h redefines
toupper() and some other ctype macros, and this wreaks havoc when
including newer libc++ headers (or any other system header which tries
to declare those functions).
Approved by: portmgr (antoine)
PR: 208486
MFH: 2016Q2
lang/python{27,3*}: Backport patch in upstream issue20397
In certain situations, file references (.py[co]) for Python files that
fail to compile with compileall() are still added to distutils --record
output.
This output is used for pkg-plist generation and must only contain
references to files that will be installed.
One example of a failure condition is when a Python 2/3 compatible
package containing a file containing Python 3.x only code is built with
Python 2.x, such as Gunicorn's _gaiohttp.py [1]
This change backports patches submitted against upstream issue 20397 [2]
that has not yet been committed.
(Only the first 15 lines of the commit message are shown above )
lang/python27(3*), Mk/Uses/python.mk: remove make spawn
There are some inefficiencies in python.mk that significantly slow down
full tree scanning. The use of bmake to obtain the current version of
a specific python is responsible for the majority of the slow done.
This commit splits out the PYTHON_PORTVERSION definition (which is the
same as the lang/python* PORTVERSION) into separate files. With this
change, python.mk can simple include the makefile fragment instead of
spawning a new instance of make.
Different Revision: https://reviews.freebsd.org/D4660
Approved by: antoine (python), mva (python)
lang/python{27,32,33}: Fix missing shlib path in python-config
In Python 3.4+, upstream added and switched to using a shell
implementation of the python-config script [1]. The Python
implementation (python-config.py) remained used by all versions < 3.4.
While the shell implementation returns the path to the Python
shared library when using the --ldflags script argument, the Python
implementation of the script does not. The bug has been reported, but
has not yet been merged [2].
The Python ports currently default to including ${LOCALBASE}/lib
in LIBS when the NLS option is enabled (which it is by default).
When built *with* NLS (gettext) support, the flags added to LIBS
(Only the first 15 lines of the commit message are shown above )
lang/python{27,32,33,34}: Mark MAKE_JOBS_UNSAFE
Parser/pgen code intermittently and non-deterministically fails
at build time causing errors including, among others:
* Parser/pgen.o: file not recognized: File truncated
* pgenmain.c:(.text+0x244): undefined reference to `_Py_pgen'
This is apparently due to incorrect uses of recursive make [1] which
was fixed in the upstream Python 'default' (3.5) branch [2].
This change marks all Python port versions as MAKE_JOBS_UNSANFE until
the the original changeset [1] and the resulting regression in
cross-builds [3], whos fix is still pending, can be backported.
[1] https://bugs.python.org/issue22359
[2] https://hg.python.org/cpython/rev/c2a53aa27cad
[3] https://bugs.python.org/issue22625
PR: 200622
Reported by: marino
MFH: 2015Q3
lang/python: Update to 2.7.10
The FreeBSD Python team welcomes Python 2.7.10 to the Ports tree!
Announcement: https://www.python.org/downloads/release/python-2710/
Changelog: https://hg.python.org/cpython/raw-file/v2.7.10/Misc/NEWS
Important changes for this release:
- Python 2.7.10 is a bug fix release of the Python 2.7.x series.
- Fixes issues with LibreSSL 2.2+
PR: 192511, 201088
Differentialr Revision: D2637
Reviewed by: koobs (mentor), vsevolod (mentor), antoine
Approved by: koobs (mentor)
Add AARCH64 to the list of 64bit targets that require PLIST handling
PR: 201182
Differential Revision: https://reviews.freebsd.org/D2948
Reviewed by: koobs lwhsu emaste
MASTER_SITES cleanup.
- Replace ${MASTER_SITE_FOO} with FOO.
- Merge MASTER_SITE_SUBDIR into MASTER_SITES when possible. (This means 99.9%
of the time.)
- Remove occurrences of MASTER_SITE_LOCAL when no subdirectory was present and
no hint of what it should be was present.
- Fix some logic.
- And generally, make things more simple and easy to understand.
While there, add magic values to the FESTIVAL, GENTOO, GIMP, GNUPG, QT and
SAMBA macros.
Also, replace some EXTRACT_SUFX occurences with USES=tar:*.
Checked by: make fetch-urlall-list
With hat: portmgr
Sponsored by: Absolight
Force a rebuild/upgrade to chase head r280306 which removed SSLv2 support.
This fixes head package users so they have working SSL support. There was
already a built-time fix for this.
lang/python27: Fix packaging for mips64
- Fix packaging for mips64 (Reported by: sbruno)
mips64 is also not a 32-bit ${ARCH}, so add it to the list of
architectures for which imageop.so and dl.so aren't packaged:
%%32BIT_ONLY%%lib/python2.7/lib-dynload/dl.so
%%32BIT_ONLY%%lib/python2.7/lib-dynload/imageop.so
Both dl and imageop have been removed in Python 3.x [1][2][3][4]
Thanks jhibbits@ for his help testing.
- Add BROKEN for i386 without LIBFFI option, and add upstream
(Only the first 15 lines of the commit message are shown above )
lang/python27: Update to 2.7.9
The FreeBSD Python team welcomes Python 2.7.9 to the Ports tree!
Announcement: https://www.python.org/downloads/release/python-279/
Changelog: http://hg.python.org/cpython/raw-file/v2.7.9/Misc/NEWS
Important changes for this release:
- The entirety of Python 3.4's ssl module has been backported for Python
2.7.9. See PEP 466 for justification.
- HTTPS certificate validation using the system's certificate store is
now enabled by default. See PEP 476 for details.
- SSLv3 has been disabled by default in httplib and its reverse
dependencies due to the POODLE attack.
- The ensurepip module module has been backported, which provides the
pip package manager in every Python 2.7 installation. See PEP 477.
- While updating, try to improve the NIS detection for FreeBSD
PR: 193650
Differential Revision: https://reviews.freebsd.org/D1323
Reviewed by: koobs
With hat: python
Do not define __BSD_VISIBLE/_XOPEN_SOURCE/_POSIX_C_SOURCE in
include/python2.7/pyconfig.h
This fixes x11-toolkits/py-wxPython30 build on head
PR: 192365
Exp-run: self
Reviewed by: jilles
With hat: portmgr
Change INSTALL_DATA to install with mode 644
Remove patches and hacks that were used to work around the previous
situation
This allows to stage more ports as a regular user
Differential Revision: https://reviews.freebsd.org/D703
Reviewed by and discussed with: bapt
With hat: portmgr
lang/python{27,33,34}: Bump PORTREVISION, sanitizes builds.
Bump PORTREVISION, as prior to the previous change that fixed upstream Issue
#21166, Python builds could be potentially polluted by the host environment
which could caused runtime issues because of ABI differences.
lang/python{27,33,34}: Backport fix for upstream Issue #21166
Backport fix for upstream Issue #21166:
Prevent possible segfaults and other random failures of python
--generate-posix-vars in pybuilddir.txt build target by ensuring
that pybuilddir.txt is always regenerated when configure is run and
that the newly built skeleton python does not inadvertently import
modules from previously installed instances. [1]
This changeset has been committed for release in 2.7.9, 3.4.2, and 3.5.0.
A HUGE thank you to Ned Deily from the Python Core Development Team
for helping to identify the underlying cause, produce a fix and
wonderfully document the explanation.
[1] http://bugs.python.org/issue21166
- Add USE_OPENSSL, since all lang/python ports build the _ssl module, which
requires a working OpenSSL implementation
Phabric: D569
Reviewed by: wg@
With hat: python@
Add back ac_cv_opt_olimit_ok=no, this is misdected with clang and causes
failures for ports using python's BASEFLAGS (devel/py-mx-experimental
for instance)
See also: r335669
With hat: portmgr
- Remove everything related to USE_PYTHON and bsd.python.mk. This is a
preparatory step to convert bsd.python.mk into a USES file.
- Remove the shared/static build separation, which is the source of many
problems and even more hacks. Instead build only the shared version, which
greatly simplifies the build.
- Remove the FPECTL option to align the build with the clean "template" from
lang/python34.
- Remove support for GNU pthreads via the PTH option. It is a permanent
troublemaker for ports using Python and pthread support.
- Remove PORTDATA and EXAMPLES. Those will be made available via separate
ports.
- Add a new DEBUG option to enable debug builds as for lang/python34.
- Remove bin/smtpd. Only Python2.7 wants to install it, but we'd like to keep
it consistent with the other lang/pythonXX ports
- Add CPE support.
- Reactivate curses/ncurses support.
- Use buildbottest in the regression-test: target.
- Move pkg-message to the right place.
Phabric: D488
Exp-run: 192242, 192244
Reviewed by: koobs
With hat: python@
Support LIBS like LDFLAGS.
- Add LIBS="${LIBS}" to MAKE_ENV and CONFIGURE_ENV.
- Add an option helper for LIBS.
- Adjust all ports that already use LIBS. Also remove references to
PTHREAD_CFLAGS and PTHREAD_LIBS while here.
- Some ports did not support having a LIBS environment variable and
required additional patches.
Somewhat simplified a linker command line looks like:
${CC} ${src_LDFLAGS} ${LDFLAGS} ${src_LIBS} ${LIBS}
where src_LDFLAGS and src_LIBS are controlled by upstream and LDFLAGS and
LIBS can be controlled by us. If possible -L and -l flags need to be
(Only the first 15 lines of the commit message are shown above )
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
Allow staging/packaging as a regular user:
- pycompile only once, previously it would pycompile 3 imported modules
(getopt, struct and py_compile) and make them read-only, and later try
to pycompile them again and fail
- ranlib before installing archive read-only
With hat: portmgr
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