changeset 20:70b8e449d563

MERGE: Merge with upstream 2.0.16
author Franz Glasner <hg@dom66.de>
date Wed, 21 Feb 2018 22:25:05 +0100
parents 2c2d0daa31a2 (diff) 9b7ee2483282 (current diff)
children 98faecd6ea00
files Makefile files/patch-uwsgiconfig.py files/uwsginl.in
diffstat 5 files changed, 193 insertions(+), 194 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore	Wed Feb 21 22:25:05 2018 +0100
@@ -0,0 +1,3 @@
+syntax: regexp
+
+^work/
--- a/Makefile	Wed Feb 21 22:10:03 2018 +0100
+++ b/Makefile	Wed Feb 21 22:25:05 2018 +0100
@@ -1,46 +1,41 @@
-# Created by: Daniel Gerzo <danger@FreeBSD.org>
-# $FreeBSD: head/www/uwsgi/Makefile 461691 2018-02-13 09:30:16Z vsevolod $
+# Created by: Franz Glasner <freebsd-dev@dom66.de>
+# $FreeBSD$
+# Based on www/uwsgi by: Daniel Gerzo <danger@FreeBSD.org>
 
-PORTNAME=	uwsgi
+PORTNAME=	uwsginl
 PORTVERSION=	2.0.16
-CATEGORIES=	www python
+CATEGORIES=	www
 MASTER_SITES=	http://projects.unbit.it/downloads/
+DISTNAME=	uwsgi-${DISTVERSION}
 
-MAINTAINER=	eugene@zhegan.in
-COMMENT=	Developer-friendly WSGI server which uses uwsgi protocol
+MAINTAINER=	freebsd-dev@dom66.de
+COMMENT=	Application host which uses the uwsgi protocol (nolang profile)
 
-LICENSE=	GPLv2
+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
 
-USES=		pkgconfig python ssl
-USE_PYTHON=	distutils concurrent optsuffix
-USE_RC_SUBR=	uwsgi
+USES=		pkgconfig python:build ssl
+USE_RC_SUBR=	uwsginl
 
 CFLAGS+=	-I${OPENSSLINC}
 LDFLAGS+=	${OPENSSL_LDFLAGS}
-MAKE_ENV+=	CPUCOUNT=${MAKE_JOBS_NUMBER} UWSGI_EMBED_PLUGINS=cgi
-
-PYSETUP=			uwsgiconfig.py
-PYDISTUTILS_BUILD_TARGET=	--build
-PYDISTUTILS_BUILDARGS=		--verbose
+MAKE_ENV+=	CPUCOUNT=${MAKE_JOBS_NUMBER} UWSGI_PROFILE=nolang.ini UWSGI_BIN_NAME=${PORTNAME} UWSGI_EMBED_PLUGINS=cgi,clock_realtime,echo,logpipe UWSGI_PROFILE_OVERRIDE=plugin_dir=${PREFIX}/${PLUGIN_DIR}
 
 USERS=		uwsgi
 GROUPS=		uwsgi
 
-PLIST_FILES=	bin/uwsgi \
-		${PYTHON_SITELIBDIR}/uwsgidecorators.py
-
-SUB_LIST=	PYTHON_VER=${PYTHON_VER}
-
-OPTIONS_DEFINE=	DEBUG JSON PCRE XML
+PLIST_SUB=	PORTNAME=${PORTNAME} PLUGIN_DIR=${PLUGIN_DIR}
 
-OPTIONS_GROUP=		PLG
-OPTIONS_GROUP_PLG=	PSGI
+OPTIONS_DEFINE=		DEBUGSYM UWSGIDEBUG JSON PCRE XML
+DEBUGSYM_DESC=		Build with debug symbols
+UWSGIDEBUG_DESC=	Enable uwsgi debugging (def UWSGI_DEBUG, implies DEBUG)
 
-PLG_DESC=	Enable plugins
-PSGI_DESC=	PSGI embedded plugin
+DEBUGSYM_VARS=		EXTRA_BUILDARGS+=--debug
 
-DEBUG_VARS=		PYDISTUTILS_BUILDARGS+=--debug
+UWSGIDEBUG_VARS=	BUILDCONF_DEBUG=true
 
 JSON_VARS=		BUILDCONF_JSON=jansson
 JSON_LIB_DEPENDS=	libjansson.so:devel/jansson
@@ -51,24 +46,23 @@
 XML_VARS=		BUILDCONF_XML=libxml2
 XML_LIB_DEPENDS=	libxml2.so:textproc/libxml2
 
-LIB_DEPENDS+=	libjansson.so:devel/jansson libpcre.so:devel/pcre libxml2.so:textproc/libxml2
+.include <bsd.port.options.mk>
 
-.include <bsd.port.options.mk>
+PLUGIN_DIR=	lib/${PORTNAME}/plugins
 
 post-patch:
-.for var in JSON PCRE XML
-	@${REINPLACE_CMD} -e '/^${var:tl} =/ s|= .*|= ${BUILDCONF_${var}:Ufalse}|' ${WRKSRC}/buildconf/base.ini
+.for bcvar in DEBUG JSON PCRE XML
+	@${REINPLACE_CMD} -e '/^${bcvar:tl} =/ s|= .*|= ${BUILDCONF_${bcvar}:Ufalse}|' ${WRKSRC}/buildconf/base.ini
 .endfor
 
-post-patch-PSGI-on:
-	@${REINPLACE_CMD} -e 's/%(main_plugin)s,/%(main_plugin)s, psgi,/' ${WRKSRC}/buildconf/base.ini
-
 do-configure:
 	@${DO_NADA}
 
+do-build:
+	@(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} uwsgiconfig.py --build ${EXTRA_BUILDARGS} --verbose)
+
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
-	@${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
-	${INSTALL_DATA} ${WRKSRC}/uwsgidecorators.py ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+	${MKDIR} ${STAGEDIR}${PREFIX}/${PLUGIN_DIR}
 
 .include <bsd.port.mk>
--- a/files/uwsgi.in	Wed Feb 21 22:10:03 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: head/www/uwsgi/files/uwsgi.in 457125 2017-12-24 06:46:48Z tobik $
-#
-# PROVIDE: uwsgi
-# REQUIRE: DAEMON
-# KEYWORD: shutdown
-#
-# Add the following lines to /etc/rc.conf to enable uwsgi:
-#
-# uwsgi_enable (bool):		Set it to "YES" to enable uwsgi
-#				Default is "NO".
-# uwsgi_socket (path/str):	Set the path to the uwsgi unix socket
-#				Default is /tmp/uwsgi.sock.
-# uwsgi_socket_mode (int):	Set the mode of the socket.
-#				Default is 660.
-# uwsgi_socket_owner (str):	Set the owner of the socket.
-#				Default is uwsgi:www.
-# uwsgi_emperor (bool):		Set it to "YES" to run uwsgi in emperor mode
-#				Default is "NO".
-# uwsgi_configfile (path):	Set the path to the config file
-#				Default is %%PREFIX%%/etc/uwsgi/uwsgi.ini.
-# uwsgi_vassals_dir (path):	Set the path to the vassals directory
-#				Default is %%PREFIX%%/etc/uwsgi/vassals.
-# uwsgi_logfile (path):		Set the path to the uwsgi log file
-#				Default is /var/log/uwsgi.log.
-# uwsgi_pidfile (path):		Set the path to the uwsgi pid file
-#				Default is /var/run/uwsgi.pid.
-# uwsgi_uid (int):		Set the UID of the process to run with
-#				Default is uwsgi.
-# uwsgi_gid (int):		Set the GID of the process to run with
-#				Default is uwsgi.
-# uwsgi_flags (str):		Set the uwsgi command line arguments
-#				Default is "-L".
-# uwsgi_procname (str):		Define to "uWSGI" if you start uwsgi with
-#				--auto-procname option.
-#
-# If you would like to have multiple uWSGI instances running, you can
-# define multiple profiles:
-#
-# uwsgi_profiles (str):		Set the list of uwsgi profiles
-#				Default is "".
-#
-# For each profile you can then define different options (except for
-# uwsgi_enable) using the syntax uwsgi_<profile>_<option>
-
-. /etc/rc.subr
-
-name="uwsgi"
-rcvar=uwsgi_enable
-
-load_rc_config $name
-
-command=%%PREFIX%%/bin/uwsgi-%%PYTHON_VER%%
-
-: ${uwsgi_enable="NO"}
-: ${uwsgi_socket="/tmp/${name}.sock"}
-: ${uwsgi_socket_mode="660"}
-: ${uwsgi_socket_owner="uwsgi:www"}
-: ${uwsgi_configfile="%%PREFIX%%/etc/uwsgi/uwsgi.ini"}
-: ${uwsgi_profiles=""}
-: ${uwsgi_logfile="/var/log/${name}.log"}
-: ${uwsgi_pidfile="/var/run/${name}.pid"}
-: ${uwsgi_uid="uwsgi"}
-: ${uwsgi_gid="uwsgi"}
-: ${uwsgi_flags="-L"}
-: ${uwsgi_emperor="NO"}
-: ${uwsgi_vassals_dir="%%PREFIX%%/etc/uwsgi/vassals"}
-
-is_uwsgi_profile() {
-	local profile
-
-	for profile in $uwsgi_profiles; do
-		if [ "$profile" = "$1" ]; then
-			return 0
-		fi
-	done
-
-	return 1
-}
-
-if [ -n "${uwsgi_profiles}" ]; then
-	if [ -n "$2" ]; then
-		profile="$2"
-		if ! is_uwsgi_profile $profile; then
-			echo "$0: no such profile defined in uwsgi_profiles."
-		        exit 1
-		fi
-		eval uwsgi_socket=\${uwsgi_${profile}_socket:-"/tmp/${name}-${profile}.sock"}
-		eval uwsgi_socket_mode=\${uwsgi_${profile}_socket_mode:-${uwsgi_socket_mode}}
-		eval uwsgi_socket_owner=\${uwsgi_${profile}_socket_owner:-${uwsgi_socket_owner}}
-		eval uwsgi_logfile=\${uwsgi_${profile}_logfile:-"/var/log/${name}-${profile}.log"}
-		eval uwsgi_pidfile=\${uwsgi_${profile}_pidfile:-"/var/run/${name}-${profile}.pid"}
-		eval uwsgi_uid=\${uwsgi_${profile}_uid:-"${uwsgi_uid}"}
-		eval uwsgi_gid=\${uwsgi_${profile}_gid:-"${uwsgi_uid}"}
-		eval uwsgi_flags=\${uwsgi_${profile}_flags:-"${uwsgi_flags}"}
-		eval uwsgi_procname=\${uwsgi_${profile}_procname:-"${uwsgi_procname}"}
-		eval uwsgi_emperor=\${uwsgi_${profile}_emperor:-"${uwsgi_emperor}"}
-		eval uwsgi_vassals_dir=\${uwsgi_${profile}_vassals_dir:-"${uwsgi_vassals_dir}"}
-		eval uwsgi_configfile=\${uwsgi_${profile}_configfile:-"${uwsgi_configfile}"}
-	elif [ -n "$1" ]; then
-		for profile in ${uwsgi_profiles}; do
-			echo "Processing ${name} profile: ${profile}"
-			%%PREFIX%%/etc/rc.d/uwsgi $1 ${profile}
-		done
-		exit 0
-	fi
-fi
-
-pidfile=${uwsgi_pidfile}
-start_precmd=start_precmd
-stop_postcmd=stop_postcmd
-reload_precmd=reload_precmd
-brutalreload_cmd=brutalreload_cmd
-sig_stop="INT"
-extra_commands="reload brutalreload"
-procname=${uwsgi_procname}
-
-start_precmd()
-{
-	rc_flags=""
-	if [ -e ${uwsgi_configfile} ]; then
-		rc_flags="--ini ${uwsgi_configfile} "
-	fi
-
-	if checkyesno uwsgi_emperor; then
-		echo "Running uWSGI as Emperor. Vassals loaded from "$uwsgi_vassals_dir
-		required_dirs=${uwsgi_vassals_dir}
-		rc_flags=${rc_flags}"--emperor-pidfile ${uwsgi_pidfile} -d ${uwsgi_logfile} --emperor ${uwsgi_vassals_dir}"
-		rc_flags=${rc_flags}" --vassals-set uid=${uwsgi_uid} --vassals-set gid=${uwsgi_gid}"
-		rc_flags=${rc_flags}" --vassals-set chmod-socket=${uwsgi_socket_mode} --vassals-set chown-socket=${uwsgi_socket_owner}"
-	else
-		rc_flags=${rc_flags}"--master  --uid ${uwsgi_uid} --gid ${uwsgi_gid} --pidfile ${uwsgi_pidfile} -d ${uwsgi_logfile}"
-		rc_flags=${rc_flags}" -s ${uwsgi_socket} --chmod-socket=${uwsgi_socket_mode} --chown-socket=${uwsgi_socket_owner}"
-	fi
-
-	rc_flags=${rc_flags}" ${uwsgi_flags}"
-}
-
-stop_postcmd()
-{
-	rm -f ${uwsgi_pidfile} ${uwsgi_socket}
-}
-
-reload_precmd()
-{
-	echo "Gracefully reloading ${name} without closing the main sockets."
-}
-
-brutalreload_cmd()
-{
-	echo "Reloading ${name} without closing the main sockets."
-
-	reload_precmd=""
-	sig_reload="TERM"
-	run_rc_command ${rc_prefix}reload $rc_extra_args || return 1
-}
-
-run_rc_command "$1"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/files/uwsginl.in	Wed Feb 21 22:25:05 2018 +0100
@@ -0,0 +1,159 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: uwsginl
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable uwsgi:
+#
+# uwsginl_enable (bool):	Set it to "YES" to enable uwsgi
+#				Default is "NO".
+# uwsginl_socket (path/str):	Set the path to the uwsgi unix socket
+#				Default is /tmp/uwsginl.sock.
+# uwsginl_socket_mode (int):	Set the mode of the socket.
+#				Default is 660.
+# uwsginl_socket_owner (str):	Set the owner of the socket.
+#				Default is uwsgi:www.
+# uwsginl_emperor (bool):	Set it to "YES" to run uwsgi in emperor mode
+#				Default is "NO".
+# uwsginl_configfile (path):	Set the path to the config file
+#				Default is %%PREFIX%%/etc/uwsginl/uwsginl.ini.
+# uwsginl_vassals_dir (path):	Set the path to the vassals directory
+#				Default is %%PREFIX%%/etc/uwsginl/vassals.
+# uwsginl_logfile (path):	Set the path to the uwsgi log file
+#				Default is /var/log/uwsginl.log.
+# uwsginl_pidfile (path):	Set the path to the uwsgi pid file
+#				Default is /var/run/uwsginl.pid.
+# uwsginl_uid (int):		Set the UID of the process to run with
+#				Default is uwsgi.
+# uwsginl_gid (int):		Set the GID of the process to run with
+#				Default is uwsgi.
+# uwsginl_flags (str):		Set the uwsgi command line arguments
+#				Default is "-L".
+# uwsginl_procname (str):	Define to "uWSGI" if you start uwsgi with
+#				--auto-procname option.
+#
+# If you would like to have multiple uWSGI instances running, you can
+# define multiple profiles:
+#
+# uwsginl_profiles (str):	Set the list of uwsgi profiles
+#				Default is "".
+#
+# For each profile you can then define different options (except for
+# uwsginl_enable) using the syntax uwsginl_<profile>_<option>
+
+. /etc/rc.subr
+
+name="uwsginl"
+rcvar=uwsginl_enable
+
+load_rc_config $name
+
+command=%%PREFIX%%/bin/uwsginl
+
+: ${uwsginl_enable="NO"}
+: ${uwsginl_socket="/tmp/${name}.sock"}
+: ${uwsginl_socket_mode="660"}
+: ${uwsginl_socket_owner="uwsgi:www"}
+: ${uwsginl_configfile="%%PREFIX%%/etc/uwsginl/uwsginl.ini"}
+: ${uwsginl_profiles=""}
+: ${uwsginl_logfile="/var/log/${name}.log"}
+: ${uwsginl_pidfile="/var/run/${name}.pid"}
+: ${uwsginl_uid="uwsgi"}
+: ${uwsginl_gid="uwsgi"}
+: ${uwsginl_flags="-L"}
+: ${uwsginl_emperor="NO"}
+: ${uwsginl_vassals_dir="%%PREFIX%%/etc/uwsginl/vassals"}
+
+is_uwsginl_profile() {
+	local profile
+
+	for profile in $uwsginl_profiles; do
+		if [ "$profile" = "$1" ]; then
+			return 0
+		fi
+	done
+
+	return 1
+}
+
+if [ -n "${uwsginl_profiles}" ]; then
+	if [ -n "$2" ]; then
+		profile="$2"
+		if ! is_uwsginl_profile $profile; then
+			echo "$0: no such profile defined in uwsginl_profiles."
+		        exit 1
+		fi
+		eval uwsginl_socket=\${uwsginl_${profile}_socket:-"/tmp/${name}-${profile}.sock"}
+		eval uwsginl_socket_mode=\${uwsginl_${profile}_socket_mode:-${uwsginl_socket_mode}}
+		eval uwsginl_socket_owner=\${uwsginl_${profile}_socket_owner:-${uwsginl_socket_owner}}
+		eval uwsginl_logfile=\${uwsginl_${profile}_logfile:-"/var/log/${name}-${profile}.log"}
+		eval uwsginl_pidfile=\${uwsginl_${profile}_pidfile:-"/var/run/${name}-${profile}.pid"}
+		eval uwsginl_uid=\${uwsginl_${profile}_uid:-"${uwsginl_uid}"}
+		eval uwsginl_gid=\${uwsginl_${profile}_gid:-"${uwsginl_uid}"}
+		eval uwsginl_flags=\${uwsginl_${profile}_flags:-"${uwsginl_flags}"}
+		eval uwsginl_procname=\${uwsginl_${profile}_procname:-"${uwsginl_procname}"}
+		eval uwsginl_emperor=\${uwsginl_${profile}_emperor:-"${uwsginl_emperor}"}
+		eval uwsginl_vassals_dir=\${uwsginl_${profile}_vassals_dir:-"${uwsginl_vassals_dir}"}
+		eval uwsginl_configfile=\${uwsginl_${profile}_configfile:-"${uwsginl_configfile}"}
+	elif [ -n "$1" ]; then
+		for profile in ${uwsginl_profiles}; do
+			echo "Processing ${name} profile: ${profile}"
+			%%PREFIX%%/etc/rc.d/uwsginl $1 ${profile}
+		done
+		exit 0
+	fi
+fi
+
+pidfile=${uwsginl_pidfile}
+start_precmd=start_precmd
+stop_postcmd=stop_postcmd
+reload_precmd=reload_precmd
+brutalreload_cmd=brutalreload_cmd
+sig_stop="INT"
+extra_commands="reload brutalreload"
+procname=${uwsginl_procname}
+
+start_precmd()
+{
+	rc_flags=""
+	if [ -e ${uwsginl_configfile} ]; then
+		rc_flags="--ini ${uwsginl_configfile} "
+	fi
+
+	if checkyesno uwsginl_emperor; then
+		echo "Running uWSGI as Emperor. Vassals loaded from "$uwsginl_vassals_dir
+		required_dirs=${uwsginl_vassals_dir}
+		rc_flags=${rc_flags}"--emperor-pidfile ${uwsginl_pidfile} -d ${uwsginl_logfile} --emperor ${uwsginl_vassals_dir}"
+		rc_flags=${rc_flags}" --vassals-set uid=${uwsginl_uid} --vassals-set gid=${uwsginl_gid}"
+		rc_flags=${rc_flags}" --vassals-set chmod-socket=${uwsginl_socket_mode} --vassals-set chown-socket=${uwsginl_socket_owner}"
+	else
+		rc_flags=${rc_flags}"--master  --uid ${uwsginl_uid} --gid ${uwsginl_gid} --pidfile ${uwsginl_pidfile} -d ${uwsginl_logfile}"
+		rc_flags=${rc_flags}" -s ${uwsginl_socket} --chmod-socket=${uwsginl_socket_mode} --chown-socket=${uwsginl_socket_owner}"
+	fi
+
+	rc_flags=${rc_flags}" ${uwsginl_flags}"
+}
+
+stop_postcmd()
+{
+	rm -f ${uwsginl_pidfile} ${uwsginl_socket}
+}
+
+reload_precmd()
+{
+	echo "Gracefully reloading ${name} without closing the main sockets."
+}
+
+brutalreload_cmd()
+{
+	echo "Reloading ${name} without closing the main sockets."
+
+	reload_precmd=""
+	sig_reload="TERM"
+	run_rc_command ${rc_prefix}reload $rc_extra_args || return 1
+}
+
+run_rc_command "$1"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg-plist	Wed Feb 21 22:25:05 2018 +0100
@@ -0,0 +1,2 @@
+bin/%%PORTNAME%%
+@dir %%PLUGIN_DIR%%