25 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
21989ce0a8 lang/python33: Fix typo in No-SSLv3 patch
- Fix typo that was introduced with the No-SSLv3 patch [1]

[1] http://svnweb.freebsd.org/changeset/ports/404347

Reported by:	antoine via pkg-fallout
Reviewed by:	koobs (mentor, python), antoine (python)
Approved by:	koobs (mentor, python), antoine (python)
Differential Revision:	https://reviews.freebsd.org/D4721
2015-12-28 12:42:40 +00:00
Antoine Brodin
daf5be1a3d Restore unixccompiler.py patch, it was not included upstream 2015-12-25 21:51:59 +00:00
Bernard Spil
8ecfacd239 lang/python33: Update to 3.3.6
- Update to 3.3.6 (released 2014-10-11)
  - Backport issue21356 RAND_egd fix [1]
  - Fix build for openssl -nossl3
  - Remove unixcompiler patch, included upstream
  - Switch regression-test to TEST_TARGET/TEST_ARGS
  - Mark DEPRECATED, EXPIRES Sept 2017 [2]

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

This is a bug/security fix update. Changelog:

  https://docs.python.org/3.3/whatsnew/changelog.html#python-3-3-6

PR:		195511
Reviewed by:	koobs (mentor, python), feld, miwi, AMDmi3
Approved by:	koobs (python), miwi, AMDmi3
Differential_Revision:	https://reviews.freebsd.org/D4695
2015-12-24 12:06:30 +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
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
Kubilay Kocak
3e8425cb1e 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
2014-08-23 03:53:25 +00:00
Marcus von Appen
d76d35ef87 - 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.
- Reactivate curses/ncurses support.
- Use buildbottest in the regression-test: target.

Phabric:	D410
Exp-run:	192242, 192244
Reviewed by:	koobs, bapt
With hat:	python@
2014-08-02 06:39:17 +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
Dmitry Sivachenko
79cd466b4d Update python33: 3.3.4 --> 3.3.5. 2014-03-10 11:28:55 +00:00
Kubilay Kocak
ea56f87d19 lang/python33: Update to 3.3.4
- Update to 3.3.4
- Update pkg-plist
- Remove patch-CVE-2014-1912 (upstream)
- Remove patch-issue20374 (upstream)
- Repatch and rename patch-Modules__fcntlmodule.c
- Add patch-issue-20695-Lib__test__test_urllibnet.py (tests) [1]
- Add regression-test target for QA

Changes: 3.3.4 - 09/02/2014

    http://docs.python.org/3.3/whatsnew/changelog.html#python-3-3-4

Extra:

- Update python-doc-html distinfo for Python 3.3 docs
- Update bsd.python.mk to support the new version

[1] http://bugs.python.org/issue20695
2014-03-04 12:38:02 +00:00
Antoine Brodin
bacc41af94 - Fix build with readline 6.3 from ports
the patch was obtained from upstream (issue #20374)
- Add missing USES=readline

PR:		ports/187176
Reported by:	O. Hartmann
Reviewed by:	koobs
Obtained from:	python
2014-03-01 14:28:08 +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
Dmitry Sivachenko
82247f1486 Update to version 3.3.3. 2013-11-19 14:52:23 +00:00
William Grzybowski
91e3065549 lang/python33: add support for freebsd11
PR:		ports/183597
2013-11-11 13:00:06 +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
96f67b5600 Update lang/python32 to 3.2.5 and lang/python33 to 3.3.2 2013-05-18 08:21:00 +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
Chris Rees
e637c21abb Fix logic (should be defined to true integer, not false).
While here, let's use patch from upstream so it obviously conflicts on
the next update.

Submitted by:	koobs
Obtained from:	http://bugs.python.org/issue16753
2013-02-03 11:43:26 +00:00
Chris Rees
7b720b845f Fix package on 9.1-RELEASE 2013-02-02 13:32:45 +00:00
Dmitry Sivachenko
c3793c1fde Port for python version 3.3.
Submitted by:	Kubilay Kocak <koobs.freebsd@gmail.com>
2012-12-20 11:55:54 +00:00