freebsd-ports/devel/scons/Makefile
Philip M. Gollucci 42e3442739 Python's subprocess module has a race condition: Popen() constructor has a call to global "_cleanup()" function on whenever a Popen object gets created, and that call causes a check for all pending Popen objects whether their subprocess has exited - i.e. the poll() method is called for every active Popen object.
See http://bugs.python.org/issue1731717 for addition details

SCon's compat/_scons_subprocess.py module is just a copy of a more recent
stock Python subprocess.py modified so it will work with older Python
versions.

The attached patch will add locks around calls to Popen and change
the compat module in a way that the subprocess module is always used, no matter if Python already ships one.

The rationale behind this decision is that there are many Python versions in the wild with different Popen() race condition problems.

PR:             ports/128845
Submitted by:   Steven Kreuzer <skreuzer@exit2shell.com>
Approved by:  araujo (mentor, implicit)
2008-12-25 14:57:06 +00:00

27 lines
551 B
Makefile

# New ports collection makefile for: scons
# Date created: 16 December 2001
# Whom: Peter Haight <peterh@sapros.com>
#
# $FreeBSD$
#
PORTNAME= scons
PORTVERSION= 1.2.0
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= SF
MAINTAINER= pgollucci@FreeBSD.org
COMMENT= A build tool alternative to make
.if !defined (NO_INSTALL_MANPAGES)
MAN1= scons.1 sconsign.1 scons-time.1
.endif
USE_PYTHON= yes
USE_PYDISTUTILS= yes
PYDISTUTILS_EGGINFODIR= ${PREFIX}/lib/scons-${PORTVERSION}
PLIST_SUB= SCONS_VER=${PORTVERSION}
.include <bsd.port.mk>