view uwsginl-plugin-lang-py3/Makefile @ 81:346c4a4ca40b

Fix possible deadlock in install. When using`stderr=subprocess.PIPE, stdout=subprocess.PIPE`, you can (will) deadlock if one pipe fills up (in this case, stdout) while the other is being written too. The subprocess documentation is littered with warnings about this but somehow this has survived here for nearly 10 years. :) commit e3bed6a7172a03c2f03bc1355634ad7e9994b260
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 14 Jun 2020 22:38:56 +0200
parents badbe8b61265
children 40e8d1ee1651
line wrap: on
line source

# Created by: Franz Glasner <freebsd-dev@dom66.de>
# $FreeBSD$

PORTNAME?=	${UWSGI_NAME}-plugin-lang-py3
DISTVERSION=	2.0.18
PORTREVISION?=	0
CATEGORIES?=	www python
MASTER_SITES=	https://projects.unbit.it/downloads/
DISTNAME=	uwsgi-${DISTVERSION}

MAINTAINER?=	freebsd-dev@dom66.de
COMMENT?=	Language plugin for Python 3 (OS default)

LICENSE=	GPLv2-WITH-LINKING-EXCEPTION
LICENSE_GROUPS=	FSF GPL OSI
LICENSE_NAME=	GPLv2 with linking exception
LICENSE_FILE=	${WRKSRC}/LICENSE
LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

BUILD_DEPENDS+=	${UWSGI_NAME}==${PORTVERSION}:www/uwsginl
RUN_DEPENDS+=	${UWSGI_NAME}==${PORTVERSION}:www/uwsginl

# This specific python version is built
USES?=		python:3.5+ gettext-runtime
# Some python version is needed when building
USES+=		python:build pkgconfig

PLIST_FILES=	${PLUGIN_DIR}/${PLUGIN_FILENAME}

MAKE_ENV+=	UWSGI_PROFILE_OVERRIDE="plugin_build_dir=${STAGEDIR}${PREFIX}/${PLUGIN_DIR};plugin_dir=${PREFIX}/${PLUGIN_DIR}" PYTHON=${PYTHON_CMD}

# by default it uses the MASTERDIR's description
DESCR?=		${.CURDIR}/pkg-descr

UWSGI_NAME=	uwsginl
UWSGI_PATH=	${LOCALBASE}/bin/${UWSGI_NAME}
PLUGIN_DIR=	lib/${UWSGI_NAME}/plugins

# The name of the plugin to be created (to eventually  distingush py2 and py3)
PLUGIN_NAME?=	python3
# Where to find the sources for the plugin (defaults to plugins/${PLUGIN_NAME})
.if defined(MASTERDIR)
.if !defined(PLUGIN_SOURCE) || empty(PLUGIN_SOURCE)
PLUGIN_SOURCE=	plugins/${PLUGIN_NAME}
.endif
.else
PLUGIN_SOURCE=	plugins/python
.endif
# The complete basename of the plugin
PLUGIN_FILENAME=	${PLUGIN_NAME}_plugin.so

# Use the PATCHDIR of the binary executable by default
PATCHDIR?=		${.CURDIR}/../uwsginl/files

do-configure:
	@${DO_NADA}

do-build:
	@${MKDIR} ${STAGEDIR}${PREFIX}/${PLUGIN_DIR}
	@(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${UWSGI_PATH} --build-plugin "${PLUGIN_SOURCE} ${PLUGIN_NAME}")

do-install:
	${INSTALL_LIB} ${BUILD_WRKSRC}/${PLUGIN_FILENAME} ${STAGEDIR}${PREFIX}/${PLUGIN_DIR}

.include <bsd.port.mk>