87 Commits

Author SHA1 Message Date
Kubilay Kocak
474ff0ec6a 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.

 - For Python 2.7 and 3.5, backport both install_lib and test
 - For Python 3.2, 3.3 and 3.4, only backport install_lib

[1] https://svnweb.freebsd.org/changeset/ports/404558
[2] https://bugs.python.org/issue20397

Thank you to Brendan Molloy for producing and submitting the patches
against upstream sources.

Reviewed by:		sbz (python)
MFH:			2016Q1
Differential Revision:	D4832
2016-01-08 16:45:09 +00:00
Bernard Spil
a43a125b90 lang/python32: Mark deprecated / fix No-EDGD/-SSLv3
- Mark DEPRECATED, EXPIRES Feb 2016 [1]
  - Backport issue21356 RAND_egd fix [2]
  - Fix build for openssl -nossl3

[1] https://www.python.org/dev/peps/pep-0392/#lifespan
[2] http://bugs.python.org/issue21356

PR:		195513
Reviewed by:	koobs (mentor, python), feld (mentor)
Approved by:	koobs (python, mentor)
Differential Revision: https://reviews.freebsd.org/D4701
2015-12-24 17:09:12 +00:00
Martin Wilke
df08d0c785 - Update lang/python32 to 3.2.6 [1]
- Update lang/python35 to 3.5.1 [2]
- Update lang/python-doc-html for [1]
- Switch to do-test

Changelog:
[1] https://hg.python.org/cpython/file/v3.2.6/Misc/NEWS
[2] https://docs.python.org/3.5/whatsnew/changelog.html#python-3-5-1-final

Reviewed by:	koobs (python)
Approved by:	mat (mentor)
Differential Revision:	D4663
2015-12-21 18:13:33 +00:00
Li-Wen Hsu
4c536e83f0 Add version specified ports of separated standard Python modules for
non-default Python versions:

- Add pyXY-{sqlite3,gdbm,tkinter} ports for generating binary packages
- Improve/add pkg-message to point users to install respective packages of
  separated Python standard modules
- Add COMMENT to explicitly show the Python version that package should be
  used with
- Simplify version-related PYTHON_* for lang/python35

Reviewed by:	koobs
Differential Revision:	https://reviews.freebsd.org/D4170
2015-11-19 01:28:38 +00:00
Kubilay Kocak
479c987464 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
are returned in `pythonX.Y-config --ldflags` output, which happens
to match the path to the Python shared library.

If the NLS option is disabled, ${LOCALBASE}/lib is not added to LIBS,
and are therefore not returned in --ldflags output.

This results in potential linking errors for software that uses
python-config to obtain the correct library path, when the NLS option is
disabled:

$ make WITH=PYTHON -C audio/alsa-lib
[...]
--- smixer-python.la ---
CCLD     smixer-python.la
/usr/bin/ld: cannot find -lpython2.7

This change modifies the python-config.in script to match the shell
implementation, outputting the library path in --ldflags output.

While I'm here:

for Python 3.2 and Python 3.3 ports, backport a library order
change [3]. This could affect linking with static libraries.

Use standard length lines and reduce diffs in pkg-message

[1] https://bugs.python.org/issue16235
[2] https://bugs.python.org/issue7352
[2] https://bugs.python.org/issue18096

PR:		197757
Submitted by:	jbeich
MFH:		2015Q4
2015-10-18 09:50:39 +00:00
Kubilay Kocak
5da5cfa9d3 lang/python32: Fix ABIFLAGS for PYMALLOC option
Investigating the comment regarding a 'configure script bug' lead me
to a bug which manifested itself in 'm' not being added to ABIFLAGS
when PYMALLOC was enabled, not the inability to set
--without-pymalloc using PYMALLOC_CONFIGURE_WITH (options helpers).

The incorrect ABIFLAGS caused packaging failures with default options, so
I'm not sure how this wasn't picked up earlier:

  Error: Orphaned: include/python3.2u/<file>
  <snip>
  Error: Missing: include/python3.2mu/<file>

- Backport an upstream commit [1] to correct the configure bug that never
  made it to the 3.2 branch.
- Use options helpers for PYMALLOC accordingly

While I'm here, clean up after the LIBFFI option addition:

- Sort options variables: OPTIONS_* and *_DESC
- Use OPTIONS helpers

[1] https://hg.python.org/cpython/raw-rev/d158b0a78390

Approved by:	python
2015-01-21 12:34:50 +00:00
Antoine Brodin
228ab58873 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
2014-09-04 19:26:24 +00:00
Marcus von Appen
7360f89ed2 - 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.
- Use NLS_LIBS instead of NLS_LDFLAGS as done for lang/python27 (r357486)
- Remove the FPECTL option to align the build with the clean "template" from
  lang/python34.
- 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.
- Add a new TSC option for precise timestamp counter support as for
  lang/python34.
- Add CPE support.
- Reactivate curses/ncurses support.
- Use buildbottest in the regression-test: target.

Phabric:		D448
Reviewed by:	koobs, bapt
With hat:		python@
2014-08-01 16:37:54 +00:00
Kubilay Kocak
aab3da8d2a 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
2014-04-22 12:14:26 +00:00
Kubilay Kocak
21c7eb2952 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
2014-04-20 01:35:39 +00:00
Antoine Brodin
2a13bbe17c - Fix build with readline 6.3 from ports
the patch was backported from upstream (issue #20374)
- Add missing USES=readline

Obtained from:	python
2014-03-01 15:19:43 +00:00
Kubilay Kocak
7a2c2ce6e7 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
2014-03-01 10:52:55 +00:00
Kubilay Kocak
d536d1d88b 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
2013-12-08 06:22:07 +00:00
Kubilay Kocak
c46e0576fd 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
2013-12-01 12:25:37 +00:00
Kubilay Kocak
7472d2087e lang/python32: Backport upstream kevent fix
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

References:

[1] Issue #11973: Fix a problem in kevent. The flags and fflags fields
    are now properly handled as unsigned. [#11973]

    http://bugs.python.org/issue11973
    http://hg.python.org/cpython/rev/8345fb616cbd

While I'm here:

- Add LICENSE (PSFL)
- Clean up, reorganise, sort & whitespace align sections

PR:		ports/156759
Submitted by:	David Naylor <naylor.b.david@gmail.com>
Reviewed by:	mva
2013-12-01 09:36:49 +00:00
Kubilay Kocak
ec7259ec32 Resolve gettext (libintl) detection and linking in all Python ports
Fix gettext (NLS) detection, includes and linking:
- all: Use LDFLAGS and CPPFLAGS over CFLAGS for NLS option (with comment)
- python26,27: Pass LIBS="-lintl" to CONFIGURE_ENV

Workaround Pythons odd build mechanics causing duplicate args:
- all: Remove CFLAGS from OPT= in CONFIGURE_ENV
- python32,33: Remove CONFIGURE_* variables from Makefile.pre.in

Other:
- python32: Patch setup.py to pass OPT correctly to shared modules

PR:		ports/181721
Reported by:	pawel
Reviewed by:	bapt mva sbz
2013-09-08 14:05:18 +00:00
Ruslan Makhmatkhanov
b922bed77e Add patch that resolves the issue, found after r250991 in src HEAD.
Investigation and the patch are from Marcel Moolenaar.

I also added upstream bug-report, based on Marcel's info:
http://bugs.python.org/issue18178

There also was relevant discussion on current@:
http://lists.freebsd.org/pipermail/freebsd-current/2013-June/

Please see there for details of the issue.

Submitted by:	marcel (python@ ML)
Reported by:	many
2013-06-10 08:20:15 +00:00
Ruslan Makhmatkhanov
11bf569497 - 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
Submitted by:	rm (myself)
Exp-run by:	    portmgr (miwi)

- revert erroneous threads patch in lang/python26 and lang/python27,
  that was added after ports/131080. It was rejected upstream, because it's
  not actually a bug, but misuse.

  Gabor Pali (pgj) in collaboration with Kubilay Kocak (koobs) did an
  independent investigation regard the issue. See here for details:

  http://lists.freebsd.org/pipermail/freebsd-python/2013-April/005376.html

PR:	    153167
Submitted by:	Duncan Findlay <duncan@duncf.ca>
Reported by:	pgj/koobs (at python@ ML)
Exp-run by:     portmgr (miwi)
2013-05-17 04:17:22 +00:00
Martin Wilke
19425757a8 - Update:
* python26 -> 2.6.8
  * python27 -> 2.7.3
  * python31 -> 3.1.5
  * python32 -> 3.2.1

Security:	http://www.vuxml.org/freebsd/b4f8be9e-56b2-11e1-9fb7-003067b2972c.html
		CVE-2012-0845 CVE-2012-0876 CVE-2012-1150 CVE-2012-0845 CVE-2011-3389
2012-04-11 12:52:17 +00:00
Martin Wilke
c70027929c - Mark Python as Secure
- Fix DoS via malformed XML-RPC / HTTP POST

Submitted by:	rm@
Reported by:	many
Obtained from:	python hg
Security:	http://www.vuxml.org/freebsd/b4f8be9e-56b2-11e1-9fb7-003067b2972c.html
2012-02-18 17:53:53 +00:00
Beat Gaetzi
5bc148fb49 - Fix build on FreeBSD 10
Approved by:	miwi (implicit)
2011-10-28 10:42:24 +00:00
Li-Wen Hsu
4420c18f00 - Finish removal of PLIST trick and OpenSSL 0.9.8 detection.
Now supported FreeBSD versions are all use OpenSSL greater
  than 0.9.8 .  This also fixes the problem of generating and
  leaving pkg-plist.tmp in /usr/ports/lang/python32 .

- Add some PLIST_SUB anchors, this does:
  * Not being conflict with default python version
    (the one installed as /usr/local/bin/python)
  * Make life easier for later 3.2.x (and higher) updates
  * Add NO_NIS support back
2011-02-26 11:31:09 +00:00
Wen Heping
24fc729f59 - Update to 3.2.0 and complete repocopy
PR:		ports/153829
Submitted by:	Wen Heping (myself)
Reviewed by:	miwi@
2011-02-22 07:44:48 +00:00
Wen Heping
39858860ea - Update to 3.1.3 2010-12-14 06:31:19 +00:00
Jung-uk Kim
5045cff4a0 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)
2010-07-19 21:59:28 +00:00
Martin Wilke
61155613f0 - add missing patch 2009-11-26 12:45:14 +00:00
Martin Wilke
5879a953cb - Add support for FreeBSD 9 2009-11-26 12:44:47 +00:00
Li-Wen Hsu
48d856c3b2 - Add Python 3.1 2009-07-06 20:30:29 +00:00
Li-Wen Hsu
8390759afb - Honor EXAMPLESDIR, DATADIR and NOPORTEXAMPLES, NOPORTDATA
- Remove bsddb module in pkg-message since it's removed from
  Python default modules
  (python3 user should use databases/py-bsddb3)
- Fix WITH_UCS4 support
- Mark jobs safe
- Makefile/patch cleanup

PR:		ports/133440
Submitted by:	Paul Hoffman <phoffman AT proper.com>
2009-07-02 01:46:33 +00:00
Hye-Shik Chang
dfecaa4e9d Remove "_gdbm" module from packaging which should be excluded in
this port.

Reported by:	QAT
2008-10-13 09:50:53 +00:00
Hye-Shik Chang
3813a5dbe7 Introduce two new versions of Python: 2.6 and 3.0rc1 (finally!)
Python 2.6 will be the next default python version when enough
testings of consumer ports are done.  The new "2to3" program is
renamed to 2to3-2.6 and 2to3-3.0 for each version, respectively.

Repo-copied by:	marcus
2008-10-13 08:23:00 +00:00
Martin Wilke
8a1ff65b9b - Security fixes
Multiple vulnerabilities:

	1) Various integer overflow errors exist in core modules e.g. stringobject,
	   unicodeobject, bufferobject, longobject, tupleobject, stropmodule, gcmodule, mmapmodule.
	2) An integer overflow in the hashlib module can lead to an unreliable cryptographic digest results.
	3) Integer overflow errors in the processing of unicode strings can be exploited to cause
	   buffer overflows on 32-bit systems.
	4) An integer overflow exists in the PyOS_vsnprintf() function on architectures that do not
	   have a "vsnprintf()" function.
	5) An integer underflow error in the PyOS_vsnprintf() function when passing zero-length strings
	   can lead to memory corruption.

PR:		127172 (based on)
Submitted by:	bf <bf2006a@yahoo.com>
Obtained from:	python svn
Security:	CVE-2008-2315, CVE-2008-2316, CVE-2008-3142, CVE-2008-3144, CVE-2008-3143. (vuxml come later)
2008-09-08 00:14:06 +00:00
Martin Wilke
87262d65c4 - Fix zlib crash from zlib.decompressobj().flush(val)
when val was not positive. It tried to allocate negative
  or zero memory.  That fails.
- Bump PORTREVISION

Reviewed by:	alexbl
Obtained from:	python svn
Security:	http://www.vuxml.org/freebsd/ec41c3e2-129c-11dd-bab7-0016179b2dd5.html
2008-04-25 08:16:04 +00:00
Hye-Shik Chang
3c61d8d746 Force to build bsddb185 module to make pkg-plist consistent.
Reported by:	ports/121191
2008-02-29 14:05:31 +00:00
Hye-Shik Chang
6e02f1db93 Add support for FreeBSD 8.
Obtained from:	Python SVN (r58697, r58698)
2007-10-29 00:14:50 +00:00
Rong-En Fan
ec9c55f34b - Force setup.py picks up readline and ncurses from base. This fixes build
when devel/ncurses installed.
- Similar to python24, don't pick up ncursesw in python25. This results
  in both ncurses are linked into _curses.so

Tested by:	krion
Approved by:	alexbl (python@)
2007-02-27 19:00:23 +00:00
Hye-Shik Chang
ab1df0e8f4 Correct a patch not to install unwanted files.
Approved by:	portmgr (kris)
2006-10-16 03:12:44 +00:00
Hye-Shik Chang
e18b838fd9 Revert the default version of Python to 2.4 for the ports freeze
period.  Python 2.5 brought a vast range of incompatibility to a
large number of ports, so the python@ team will do more basic
compatibility work in a private repository and merge it later.
Sorry for the inconvenience.

Approved by:	portmgr (kris)
2006-10-13 07:16:45 +00:00
Hye-Shik Chang
1d18bb4fff - Update the main python version to 2.5.
- Now, lang/python is just a meta-port which depends on lang/python25.
  - And all versions of Python ports have short version identifier in its
    package name; python25-2.5, python24-2.4.3 and etc.
  - Also you must upgrade all python modules after lang/python updated,
     cd /usr/ports/lang/python && make upgrade-site-packages

- Give maintainership of Python ports to the new python@ group which
  includes me, alexbl@ and others.
2006-10-09 14:29:18 +00:00
Hye-Shik Chang
df0b95301a Fix plist for FreeBSD 7 or systems with OpenSSL 0.9.8.
Spotted by:	pointyhat via kris
2006-08-10 10:05:13 +00:00
Hye-Shik Chang
06295f9285 Update python-devel to 2.5b1. 2006-06-23 03:09:16 +00:00
Hye-Shik Chang
b243082281 Update to Python trunk snapshot as of 2006-03-26. 2006-03-26 07:58:41 +00:00
Hye-Shik Chang
35c8a898d4 Resurrect lang/python-devel port with Python 2.5 development snapshot
as of today.
2005-01-29 05:01:02 +00:00
Hye-Shik Chang
a8ff97aec3 Update to 2.4a3
PR:		71340
Submitted by:	Marcus Grando <marcus@corp.grupos.com.br>
2004-09-03 17:12:28 +00:00
Hye-Shik Chang
adca4f9d0e - Add support for FreeBSD 6.
- Drop FreeBSD 2 support.
- Fix build on -stable.

Spotted by:	marcus, kris
Obtained from:	Python CVS
2004-08-21 01:02:12 +00:00
Hye-Shik Chang
03cd3fd2e0 - Update to 2.4a2
- Add IPV6 option [1]

PR:		69950 [1]
Submitted by:	Marcus Grando <marcus@corp.grupos.com.br> [1]
2004-08-07 06:36:57 +00:00
Hye-Shik Chang
95340a84dc - Update to 2.4a1, the first alpha release of Python 2.4.
- Provide USE_PYTHON_BUILD and USE_PYTHON_RUN to allow explicit
  dependencies. [1]
- Provide PYDISTUTILS_CONFIGUREARGS and run ${PYSETUP} config on
  'do-configure' targets. [2]

Reviewed by:	eik [1]
Submitted by:	Mike Brown <mike@skew.org>
2004-07-08 15:53:45 +00:00
Hye-Shik Chang
299b967868 Ignore syntax errors on compiling 3rd party packages.
Tested by:	Lee Harr <missive@hotmail.com>
2003-11-15 19:22:37 +00:00
Hye-Shik Chang
62e80c6399 - Include pyexpat module in python base ports because python incorporated
expat 1.95.6 in its distribution from Python-2.3.
- Bump PORTREVISION subsequently.

Requested by:	Mike Brown <mike@skew.org>
		Jeremy Kloth <jeremy.kloth@fourthought.com>
2003-11-04 18:00:37 +00:00
Hye-Shik Chang
040577c1f7 - Update lang/python-devel to Python-2.4 031022 snapshot.
- Correct USE_ZOPE dependency to Python 2.1. [1]
- Fetch from correct MASTER_SITE_SUBDIR when upgrading python
  in same branch. [2]
- Enable installing separated standard modules for python-devel port.

Reported by:	Filippo Natali <pitonat@libero.it> [1],
		Yoshihiko Sarumaru <mistral@imasy.or.jp> [2]
2003-10-29 21:31:13 +00:00