changeset 2:003d10e103ef

A new port named www/uwsginl which is www/uwsi with the "nolang" profile and some additional embedded plugins. The additional plugins are: - cgi - clock_realtime - echo - logpipe And all the default embedded plugins from "base.ini" are embedded too (of course). The big difference of the "nolang" profile to "core" is that core has no embedded plugins.
author Franz Glasner <hg@dom66.de>
date Fri, 15 Sep 2017 21:59:09 +0200
parents 494c9468dabc
children cbc74218977f
files Makefile files/uwsgi.in files/uwsginl.in
diffstat 3 files changed, 174 insertions(+), 176 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Fri Sep 15 12:47:00 2017 +0200
+++ b/Makefile	Fri Sep 15 21:59:09 2017 +0200
@@ -1,25 +1,27 @@
-# Created by: Daniel Gerzo <danger@FreeBSD.org>
-# $FreeBSD: head/www/uwsgi/Makefile 448482 2017-08-21 17:49:01Z ultima $
+# Created by: Franz Glasner <freebsd-dev@dom66.de>
+# $FreeBSD$
+# Based on www/uwsgi by: Daniel Gerzo <danger@FreeBSD.org>
 
-PORTNAME=	uwsgi
-PORTVERSION=	2.0.15
-PORTREVISION=	2
-CATEGORIES=	www python
+PORTNAME=	uwsginl
+DISTVERSION=	2.0.15
+CATEGORIES=	www
 MASTER_SITES=	http://projects.unbit.it/downloads/
+DISTNAME=	uwsgi-${DISTVERSION}
 
-MAINTAINER=	ports@FreeBSD.org
-COMMENT=	Developer-friendly WSGI server which uses uwsgi protocol
+MAINTAINER=	freebsd-dev@dom66.de
+COMMENT=	Developer-friendly WSGI server which uses uwsgi protocol with no embedded language modules
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		pkgconfig python ssl
+USES=		pkgconfig python:build ssl
 USE_PYTHON=	distutils
-USE_RC_SUBR=	uwsgi
+USE_RC_SUBR=	uwsginl
 
 CFLAGS+=	-I${OPENSSLINC}
 LDFLAGS+=	${OPENSSL_LDFLAGS}
-MAKE_ENV+=	CPUCOUNT=${MAKE_JOBS_NUMBER} UWSGI_EMBED_PLUGINS=cgi
+#MAKE_ENV+=	CPUCOUNT=${MAKE_JOBS_NUMBER} UWSGI_EMBED_PLUGINS=cgi
+MAKE_ENV+=	CPUCOUNT=${MAKE_JOBS_NUMBER} UWSGI_PROFILE=nolang.ini UWSGI_EMBED_PLUGINS=cgi,clock_realtime,echo,logpipe
 
 PYSETUP=			uwsgiconfig.py
 PYDISTUTILS_BUILD_TARGET=	--build
@@ -28,8 +30,7 @@
 USERS=		uwsgi
 GROUPS=		uwsgi
 
-PLIST_FILES=	bin/uwsgi \
-		%%PYTHON_SITELIBDIR%%/uwsgidecorators.py
+PLIST_FILES=	bin/uwsginl
 
 OPTIONS_DEFINE=	DEBUG JSON PCRE XML
 
@@ -44,21 +45,18 @@
 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>
 
 post-patch:
 .for var in JSON PCRE XML
 	@${REINPLACE_CMD} -e '/^${var:tl} =/ s|= .*|= ${BUILDCONF_${var}:Ufalse}|' ${WRKSRC}/buildconf/base.ini
 .endfor
+	echo "bin_name = ${PORTNAME}" >> ${WRKSRC}/buildconf/nolang.ini
 
 do-configure:
 	@${DO_NADA}
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
-	@${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
-	${INSTALL_DATA} ${WRKSRC}/uwsgidecorators.py ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
 
 .include <bsd.port.mk>
--- a/files/uwsgi.in	Fri Sep 15 12:47:00 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: head/www/uwsgi/files/uwsgi.in 448482 2017-08-21 17:49:01Z ultima $
-#
-# 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
-
-: ${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	Fri Sep 15 21:59:09 2017 +0200
@@ -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"