@ -0,0 +1,10 @@ | |||
Makefile.in | |||
aclocal.m4 | |||
autom4te.cache | |||
compile | |||
config.h.in | |||
configure | |||
depcomp | |||
install-sh | |||
ltmain.sh | |||
missing |
@ -0,0 +1,55 @@ | |||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR) | |||
cmake_policy(VERSION 2.6.0) | |||
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) | |||
INCLUDE(CheckIncludeFiles) | |||
INCLUDE(CheckLibraryExists) | |||
INCLUDE(FindPkgConfig) | |||
INCLUDE(AddTargetProperties) | |||
PROJECT(scgi-cgi C) | |||
SET(PACKAGE_VERSION 0.1.0) | |||
IF("${CMAKE_BUILD_TYPE}" STREQUAL "") | |||
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) | |||
ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") | |||
OPTION(GCC_LIBEVENT_STATIC "link libevent static") | |||
# libevent | |||
pkg_check_modules (LIBEVENT REQUIRED libevent>=2.0) | |||
IF(GCC_LIBEVENT_STATIC) | |||
SET(MYLIBEVENT_LDFLAGS -Wl,-Bstatic ${LIBEVENT_LDFLAGS} -Wl,-Bdynamic) | |||
ELSE(GCC_LIBEVENT_STATIC) | |||
SET(MYLIBEVENT_LDFLAGS ${LIBEVENT_LDFLAGS}) | |||
ENDIF(GCC_LIBEVENT_STATIC) | |||
SET(MAIN_SOURCE scgi-cgi.c) | |||
SET(PACKAGE_NAME ${CMAKE_PROJECT_NAME}) | |||
SET(PACKAGE_VERSION ${PACKAGE_VERSION}) | |||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h ESCAPE_QUOTES) | |||
ADD_DEFINITIONS(-DHAVE_CONFIG_H) | |||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) | |||
add_executable(scgi-cgi ${MAIN_SOURCE}) | |||
ADD_TARGET_PROPERTIES(scgi-cgi COMPILE_FLAGS "-std=gnu99 -Wall -g -Wshadow -W -pedantic -fPIC") | |||
# libev | |||
TARGET_LINK_LIBRARIES(scgi-cgi ${MYLIBEVENT_LDFLAGS}) | |||
ADD_TARGET_PROPERTIES(scgi-cgi COMPILE_FLAGS ${LIBEVENT_CFLAGS}) | |||
INSTALL(TARGETS scgi-cgi DESTINATION bin) | |||
# man page | |||
SET(CMAKE_MAN_DIR "share/man" CACHE STRING | |||
"Install location for man pages (relative to prefix).") | |||
MARK_AS_ADVANCED(CMAKE_MAN_DIR) | |||
INSTALL(FILES scgi-cgi.1 DESTINATION ${CMAKE_MAN_DIR}/man1) |
@ -0,0 +1,22 @@ | |||
The MIT License | |||
Copyright (c) 2013 Stefan Bühler | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights | |||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
copies of the Software, and to permit persons to whom the Software is | |||
furnished to do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in | |||
all copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||
THE SOFTWARE. |
@ -0,0 +1,8 @@ | |||
EXTRA_DIST=autogen.sh CMakeLists.txt config.h.cmake scgi-cgi.1 README.rst | |||
man1_MANS=scgi-cgi.1 | |||
AM_CFLAGS=$(LIBEVENT_CFLAGS) | |||
scgi_cgi_LDADD=$(LIBEVENT_LIBS) | |||
bin_PROGRAMS=scgi-cgi | |||
scgi_cgi_SOURCES=scgi-cgi.c |
@ -0,0 +1,50 @@ | |||
Description | |||
----------- | |||
:Homepage: | |||
http://redmine.lighttpd.net/projects/scgi-cgi/wiki | |||
scgi-cgi is a SCGI application to run normal cgi applications. It doesn't | |||
make CGI applications faster, but it allows you to run them on a different | |||
host and with different user permissions (without the need for suexec). | |||
scgi-cgi is released under the `MIT license <http://git.lighttpd.net/scgi-cgi.cgi/tree/COPYING>`_ | |||
Usage | |||
----- | |||
Examples for spawning a scgi-cgi instance with daemontools or runit:: | |||
#!/bin/sh | |||
# run script | |||
exec spawn-scgi -n -s /var/run/scgi-cgi.sock -u www-default -U www-data -- /usr/bin/scgi-cgi | |||
Build dependencies | |||
------------------ | |||
* libevent (http://libevent.org/) | |||
* cmake or autotools (for snapshots/releases the autotool generated files are included) | |||
Build | |||
----- | |||
* snapshot/release with autotools:: | |||
./configure | |||
make | |||
* build from git: ``git clone git://git.lighttpd.net/scgi-cgi.git`` | |||
* with autotools:: | |||
./autogen.sh | |||
./configure | |||
make | |||
* with cmake (should work with snapshots/releases too):: | |||
cmake . | |||
make |
@ -0,0 +1,38 @@ | |||
#!/bin/sh | |||
# Run this to generate all the initial makefiles, etc. | |||
if which glibtoolize >/dev/null 2>&1; then | |||
LIBTOOLIZE=${LIBTOOLIZE:-glibtoolize} | |||
else | |||
LIBTOOLIZE=${LIBTOOLIZE:-libtoolize} | |||
fi | |||
LIBTOOLIZE_FLAGS="--copy --force" | |||
ACLOCAL=${ACLOCAL:-aclocal} | |||
AUTOHEADER=${AUTOHEADER:-autoheader} | |||
AUTOMAKE=${AUTOMAKE:-automake} | |||
AUTOMAKE_FLAGS="--add-missing --copy" | |||
AUTOCONF=${AUTOCONF:-autoconf} | |||
ARGV0=$0 | |||
set -e | |||
if [ ! -f configure.ac -o ! -f COPYING ]; then | |||
echo "Doesn't look like you're in the source directory" >&2 | |||
exit 1 | |||
fi | |||
run() { | |||
echo "$ARGV0: running \`$@'" | |||
$@ | |||
} | |||
run rm -f aclocal.m4 ar-lib config.guess config.sub configure depcomp instal-sh ltmain.sh missing | |||
run rm -rf m4 autom4te.cache | |||
run $LIBTOOLIZE $LIBTOOLIZE_FLAGS | |||
run $ACLOCAL $ACLOCAL_FLAGS | |||
run $AUTOHEADER | |||
run $AUTOMAKE $AUTOMAKE_FLAGS | |||
run $AUTOCONF | |||
echo "Now type './configure ...' and 'make' to compile." |
@ -0,0 +1,13 @@ | |||
MACRO(ADD_TARGET_PROPERTIES _target _name) | |||
SET(_properties) | |||
FOREACH(_prop ${ARGN}) | |||
SET(_properties "${_properties} ${_prop}") | |||
ENDFOREACH(_prop) | |||
GET_TARGET_PROPERTY(_old_properties ${_target} ${_name}) | |||
MESSAGE(STATUS "adding property to ${_target} ${_name}:" ${_properties}) | |||
IF(NOT _old_properties) | |||
# in case it's NOTFOUND | |||
SET(_old_properties) | |||
ENDIF(NOT _old_properties) | |||
SET_TARGET_PROPERTIES(${_target} PROPERTIES ${_name} "${_old_properties} ${_properties}") | |||
ENDMACRO(ADD_TARGET_PROPERTIES) |
@ -0,0 +1,6 @@ | |||
/* | |||
CMake autogenerated config.h file. Do not edit! | |||
*/ | |||
#define PACKAGE_NAME "${PACKAGE_NAME}" | |||
#define PACKAGE_VERSION "${PACKAGE_VERSION}" |
@ -0,0 +1,49 @@ | |||
# -*- Autoconf -*- | |||
# Process this file with autoconf to produce a configure script. | |||
AC_PREREQ([2.63]) | |||
AC_INIT([scgi-cgi], [0.1.0], [lighttpd@stbuehler.de]) | |||
AC_CONFIG_SRCDIR([scgi-cgi.c]) | |||
AC_CONFIG_HEADERS([config.h]) | |||
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) | |||
# Checks for programs. | |||
AC_PROG_CC | |||
AC_PROG_MAKE_SET | |||
# Checks for libraries. | |||
# libevent | |||
PKG_CHECK_MODULES(LIBEVENT, libevent >= 2.0, [],[AC_MSG_ERROR("libevent >= 2.0 not found")]) | |||
# Checks for header files. | |||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h stdlib.h string.h sys/socket.h unistd.h]) | |||
# Checks for typedefs, structures, and compiler characteristics. | |||
AC_TYPE_PID_T | |||
AC_TYPE_SIZE_T | |||
# Checks for library functions. | |||
AC_FUNC_FORK | |||
AC_CHECK_FUNCS([dup2]) | |||
# check for extra compiler options (warning options) | |||
if test "${GCC}" = "yes"; then | |||
CFLAGS="${CFLAGS} -Wall -W -Wshadow -pedantic -std=gnu99" | |||
fi | |||
AC_ARG_ENABLE(extra-warnings, | |||
AC_HELP_STRING([--enable-extra-warnings],[enable extra warnings (gcc specific)]), | |||
[case "${enableval}" in | |||
yes) extrawarnings=true ;; | |||
no) extrawarnings=false ;; | |||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-extra-warnings) ;; | |||
esac],[extrawarnings=false]) | |||
if test x$extrawarnings = xtrue; then | |||
CFLAGS="${CFLAGS} -g -O2 -g2 -Wall -Wmissing-declarations -Wdeclaration-after-statement -Wno-pointer-sign -Wcast-align -Winline -Wsign-compare -Wnested-externs -Wpointer-arith -Wl,--as-needed -Wformat-security" | |||
fi | |||
AC_CONFIG_FILES([Makefile]) | |||
AC_OUTPUT |
@ -0,0 +1,30 @@ | |||
.TH scgi-cgi 1 "Oct 1, 2013" | |||
. | |||
.SH NAME | |||
. | |||
scgi-cgi \- a SCGI application to run cgi applications | |||
. | |||
.SH OPTIONS | |||
. | |||
.TP 8 | |||
.B \-b <binary> | |||
Executable to start instead of INTERPRETER or SCRIPT_FILENAME from SCGI environment. | |||
.TP 8 | |||
.B \-c <number> | |||
Maximum number of connections (default 16) | |||
.TP 8 | |||
.B \-v | |||
Shows version information and exits | |||
. | |||
.SH DESCRIPTION | |||
scgi-cgi is a SCGI application to run normal cgi applications. It doesn't | |||
make CGI applications faster, but it allows you to run them on a different | |||
host and with different user permissions (without the need for suexec). | |||
.P | |||
For running you probably want spawn-fcgi (http://redmine.lighttpd.net/projects/spawn-fcgi) | |||
.SH EXAMPLE | |||
Example usage: | |||
spawn-fcgi -n -s /var/run/scgi-cgi.sock -u www-default -U www-data -- /usr/bin/scgi-cgi | |||
.SH AUTHOR | |||
scgi-cgi was written by Stefan Bühler. |