Mercurial > hgrepos > FreeBSD > ports > www > uwsginl
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>
