diff options
Diffstat (limited to 'www-servers/mongrel2')
-rw-r--r-- | www-servers/mongrel2/Manifest | 1 | ||||
-rw-r--r-- | www-servers/mongrel2/files/systemtls.mak | 136 | ||||
-rw-r--r-- | www-servers/mongrel2/metadata.xml | 16 | ||||
-rw-r--r-- | www-servers/mongrel2/mongrel2-1.11.0.ebuild | 28 |
4 files changed, 181 insertions, 0 deletions
diff --git a/www-servers/mongrel2/Manifest b/www-servers/mongrel2/Manifest new file mode 100644 index 000000000000..8ebca8501d3b --- /dev/null +++ b/www-servers/mongrel2/Manifest @@ -0,0 +1 @@ +DIST v1.11.0.tar.gz 1060770 SHA256 dd7accbe4be25ee841b1d73e1fc2e6230e90f5783e1d25527037416e5f519c86 SHA512 60ee5036c2ac826a08bb1300969f5ad7ec2bc67c7f47635a3b458a0bad6d7e2fa37183c2708d512632c86101f537a4eb64eeef0775137705898480da70d61e90 WHIRLPOOL 928b50b5170ac8015bb63c623de644302329bd5ca47608a9f3dfd96b403c95f2ea78475b33b11f8c64403882d4130a5ba1658ba286b5339fbb174b2ebe93d3ba diff --git a/www-servers/mongrel2/files/systemtls.mak b/www-servers/mongrel2/files/systemtls.mak new file mode 100644 index 000000000000..e449b762af3d --- /dev/null +++ b/www-servers/mongrel2/files/systemtls.mak @@ -0,0 +1,136 @@ +CFLAGS?=-g -O2 +CFLAGS += -Wall -Wextra -I./src -DNDEBUG -D_FILE_OFFSET_BITS=64 -pthread +LIBS+=-lzmq -ldl -lsqlite3 -lmbedtls -lmbedx509 -lmbedcrypto +PREFIX?=/usr/local + +get_objs = $(addsuffix .o,$(basename $(wildcard $(1)))) + +ASM=$(wildcard src/**/*.S src/*.S) +RAGEL_TARGETS=src/state.c src/http11/http11_parser.c +SOURCES=$(wildcard src/**/*.c src/*.c) $(RAGEL_TARGETS) +OBJECTS=$(patsubst %.c,%.o,${SOURCES}) $(patsubst %.S,%.o,${ASM}) +OBJECTS_NOEXT=$(filter-out ${OBJECTS_EXTERNAL},${OBJECTS}) +LIB_SRC=$(filter-out src/mongrel2.c,${SOURCES}) +LIB_OBJ=$(filter-out src/mongrel2.o,${OBJECTS}) +TEST_SRC=$(wildcard tests/*_tests.c) +TESTS=$(patsubst %.c,%,${TEST_SRC}) +MAKEOPTS=OPTFLAGS="${NOEXTCFLAGS} ${OPTFLAGS}" LIBS="${LIBS}" DESTDIR="${DESTDIR}" PREFIX="${PREFIX}" + +all: builddirs bin/mongrel2 tests m2sh procer + +${OBJECTS_NOEXT}: CFLAGS += ${NOEXTCFLAGS} +${OBJECTS}: + +# +# CFLAGS_DEFS: The $(CC) flags required to obtain C pre-processor #defines, per: +# +# http://nadeausoftware.com/articles/2011/12/c_c_tip_how_list_compiler_predefined_macros +# +# It may be appropriate to copy some of these platform-specific CFLAGS_DEFS assignments into the +# appropriate platform target at the end of this file, eg: +# +# solaris: CFLAGS_DEF=... +# solaris: all + +#CFLAGS_DEFS=-dM -E # Portland Group PGCC +#CFLAGS_DEFS=-xdumpmacros -E # Oracle Solaris Studio +#CFLAGS_DEFS=-qshowmacros -E # IBM XL C +CFLAGS_DEFS=-dM -E -x c # clang, gcc, HP C, Intel icc + +.PHONY: builddirs +builddirs: + @mkdir -p build + @mkdir -p bin + +bin/mongrel2: build/libm2.a src/mongrel2.o + $(CC) $(CFLAGS) $(LDFLAGS) src/mongrel2.o -o $@ $< $(LIBS) + +build/libm2.a: CFLAGS += -fPIC +build/libm2.a: ${LIB_OBJ} + ar rcs $@ ${LIB_OBJ} + ranlib $@ + +clean: + rm -rf build bin lib ${OBJECTS} ${TESTS} tests/config.sqlite + rm -f tests/perf.log + rm -f tests/test.pid + rm -f tests/tests.log + rm -f tests/empty.sqlite + rm -f tools/lemon/lemon + rm -f tools/m2sh/tests/tests.log + rm -rf release-scripts/output + find . \( -name "*.gcno" -o -name "*.gcda" \) -exec rm {} \; + ${MAKE} -C tools/m2sh OPTLIB=${OPTLIB} clean + ${MAKE} -C tools/filters OPTLIB=${OPTLIB} clean + ${MAKE} -C tests/filters OPTLIB=${OPTLIB} clean + ${MAKE} -C tools/config_modules OPTLIB=${OPTLIB} clean + ${MAKE} -C tools/procer OPTLIB=${OPTLIB} clean + +pristine: clean + sudo rm -rf examples/python/build examples/python/dist examples/python/m2py.egg-info + sudo find . -name "*.pyc" -exec rm {} \; + ${MAKE} -C docs/manual clean + cd docs/ && ${MAKE} clean + ${MAKE} -C examples/kegogi clean + rm -f logs/* + rm -f run/* + ${MAKE} -C tools/m2sh pristine + ${MAKE} -C tools/procer pristine + git submodule deinit -f src/mbedtls + +.PHONY: tests +tests: tests/config.sqlite ${TESTS} test_filters filters config_modules + sh ./tests/runtests.sh + +tests/config.sqlite: src/config/config.sql src/config/example.sql src/config/mimetypes.sql + sqlite3 $@ < src/config/config.sql + sqlite3 $@ < src/config/example.sql + sqlite3 $@ < src/config/mimetypes.sql + +$(TESTS): %: %.c build/libm2.a + $(CC) $(CFLAGS) -o $@ $< build/libm2.a $(LIBS) + +src/state.c: src/state.rl src/state_machine.rl +src/http11/http11_parser.c: src/http11/http11_parser.rl +src/http11/httpclient_parser.c: src/http11/httpclient_parser.rl + +check: + @echo Files with potentially dangerous functions. + @egrep '[^_.>a-zA-Z0-9](str(n?cpy|n?cat|xfrm|n?dup|str|pbrk|tok|_)|stpn?cpy|a?sn?printf|byte_)' $(filter-out src/bstr/bsafe.c,${SOURCES}) + +m2sh: build/libm2.a + ${MAKE} ${MAKEOPTS} -C tools/m2sh all + +procer: build/libm2.a + ${MAKE} ${MAKEOPTS} -C tools/procer all + +test_filters: build/libm2.a + ${MAKE} ${MAKEOPTS} -C tests/filters all + +filters: build/libm2.a + ${MAKE} ${MAKEOPTS} -C tools/filters all + +config_modules: build/libm2.a + ${MAKE} ${MAKEOPTS} -C tools/config_modules all + +# Try to install first before creating target directory and trying again +install: all + install bin/mongrel2 $(DESTDIR)/$(PREFIX)/bin/ \ + || ( install -d $(DESTDIR)/$(PREFIX)/bin/ \ + && install bin/mongrel2 $(DESTDIR)/$(PREFIX)/bin/ ) + ${MAKE} ${MAKEOPTS} -C tools/m2sh install + ${MAKE} ${MAKEOPTS} -C tools/config_modules install + ${MAKE} ${MAKEOPTS} -C tools/filters install + ${MAKE} ${MAKEOPTS} -C tools/procer install + +examples/python/mongrel2/sql/config.sql: src/config/config.sql src/config/mimetypes.sql + cat src/config/config.sql src/config/mimetypes.sql > $@ + +ragel: + ragel -G2 src/state.rl + ragel -G2 src/http11/http11_parser.rl + ragel -G2 src/handler_parser.rl + ragel -G2 src/http11/httpclient_parser.rl + +%.o: %.S + $(CC) $(CFLAGS) -c $< -o $@ diff --git a/www-servers/mongrel2/metadata.xml b/www-servers/mongrel2/metadata.xml new file mode 100644 index 000000000000..82ce1c3557d4 --- /dev/null +++ b/www-servers/mongrel2/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>proxy-mintainers</name> + </maintainer> + <maintainer type="person"> + <email>Aidenn0@geocities.com</email> + <name>Jason Miller</name> + <description>Proxied maintainer; set to assignee in all bugs</description> + </maintainer> + <upstream> + <remote-id type="github">mongrel2/mongrel2</remote-id> + </upstream> +</pkgmetadata> diff --git a/www-servers/mongrel2/mongrel2-1.11.0.ebuild b/www-servers/mongrel2/mongrel2-1.11.0.ebuild new file mode 100644 index 000000000000..7a3aa3850585 --- /dev/null +++ b/www-servers/mongrel2/mongrel2-1.11.0.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +DESCRIPTION="A language agnostic web server focused on web applications" +HOMEPAGE="http://mongrel2.org" +SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="net-libs/zeromq + >=net-libs/mbedtls-2.1[havege] + dev-db/sqlite:3" +RDEPEND="${DEPEND}" + +src_prepare() { + cp "${FILESDIR}/systemtls.mak" Makefile || die +} + +src_install() { + emake install PREFIX=/usr DESTDIR=${D} || die + dodoc README examples/configs/mongrel2.conf || die +} |