www-servers/mongrel2: New package

Gentoo bug: #350826

Add jasom as Proxied maintainer.

Package-Manager: portage-2.2.26
This commit is contained in:
Jason Miller
2016-01-28 23:30:20 -08:00
committed by Ian Delaney
parent 8e19a0a694
commit 0527ba7e6e
4 changed files with 181 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST v1.11.0.tar.gz 1060770 SHA256 dd7accbe4be25ee841b1d73e1fc2e6230e90f5783e1d25527037416e5f519c86 SHA512 60ee5036c2ac826a08bb1300969f5ad7ec2bc67c7f47635a3b458a0bad6d7e2fa37183c2708d512632c86101f537a4eb64eeef0775137705898480da70d61e90 WHIRLPOOL 928b50b5170ac8015bb63c623de644302329bd5ca47608a9f3dfd96b403c95f2ea78475b33b11f8c64403882d4130a5ba1658ba286b5339fbb174b2ebe93d3ba

View File

@@ -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 $@

View File

@@ -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>

View File

@@ -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
}