Commit 3beca426 authored by Natanael Copa's avatar Natanael Copa

extra/gross: new aport

Greylisting of suspicious sources
http://code.google.com/p/gross/
parent 68abd577
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gross
pkgver=1.0.1
pkgrel=0
pkgdesc="Greylisting of suspicious sources"
url="http://code.google.com/p/gross/"
license="BSD"
depends="uclibc c-ares"
makedepends="c-ares-dev autoconf automake libtool sed"
install="$pkgname.pre-install $pkgname.post-install"
subpackages="$pkgname-doc $pkgname-dev"
source="http://gross.googlecode.com/files/$pkgname-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
gross-1.0.1-configure.ac.patch
gross-1.0.1-default-conf.patch
gross-1.0.1-user.patch
$install"
build() {
cd "$srcdir/$pkgname-$pkgver"
for _i in ../*.patch; do
msg "Applying $_i..."
patch -p1 < $_i || return 1
done
msg "Running autotools..."
aclocal --force && autoconf && automake --add-missing \
&& libtoolize --force --copy || return 1
export lt_SED='/bin/sed'
export lt_cv_path_SED='/bin/sed'
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info
make -j1 || return 1
make -j1 DESTDIR="$pkgdir" install
install -dD "$pkgdir"/var/run/gross
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/gross
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/gross
}
md5sums="f8f81b36850dcda30cb81799b9cee3b6 gross-1.0.1.tar.gz
37b83bd0d94f66c733d5562c0327b70f gross.initd
5ca1c6e51c3243236e6564480b20279b gross.confd
bb75b119ac96b8f99831ce6df810003f gross-1.0.1-configure.ac.patch
7c504b653c71dcf7b192bc487b3516fd gross-1.0.1-default-conf.patch
16e184d59d520db565388f010cc75e83 gross-1.0.1-user.patch
4b55d1c5534167946cc11376d1b05c34 gross.post-install
8f6e45b98888dbb9971f7681bf431f6f gross.pre-install"
--- a/configure.ac.orig 2008-05-29 16:18:56 +0000
+++ b/configure.ac 2008-05-30 09:10:48 +0000
@@ -52,7 +52,7 @@
then
AC_DEFINE([USE_SEM_OPEN], [], [Use sem_open() instead of sem_init()])
else
- AC_SEARCH_LIBS(sem_init, [rt], ,
+ AC_SEARCH_LIBS(sem_init, [rt pthread], ,
AC_MSG_ERROR([Can't compile without semaphores.])
)
fi
@@ -101,7 +101,7 @@
AC_MSG_CHECKING([whether to disable dnsbl checking])
AC_ARG_ENABLE(dnsbl,
AC_HELP_STRING([--disable-dnsbl], [Disable dnsbl checking]),
- [AC_MSG_RESULT([yes]) ; dnsbl="no"],
+ [AC_MSG_RESULT([yes]) ; dnsbl="$enableval"],
[AC_MSG_RESULT([no]) ; dnsbl="yes"]
)
diff -ru gross-1.0.1.orig/doc/examples/grossd.conf gross-1.0.1/doc/examples/grossd.conf
--- gross-1.0.1.orig/doc/examples/grossd.conf 2008-06-03 09:27:37 +0000
+++ gross-1.0.1/doc/examples/grossd.conf 2008-06-03 09:31:33 +0000
@@ -71,11 +71,13 @@
# 'statefile' is the full path of the file that the server will use to
# store the state information.
# statefile = /var/db/grossd.state
+statefile = /var/db/gross/state
# 'pidfile' is the full path of the file grossd writes its pid into.
# You can set parameter 'check', if you want to keep grossd
# from starting if pidfile already exists.
# pidfile = /var/run/grossd.pid;check
+pidfile = /var/run/gross/grossd.pid
# 'log_method' is used to list all the possible logging facilities.
# currently only syslog is implemented
Index: src/gross.c
===================================================================
--- a/src/gross.c (revision 491)
+++ b/src/gross.c (working copy)
@@ -553,7 +553,7 @@
void
usage(void)
{
- printf("Usage: grossd [-CDdhnPprV] [-f configfile]\n");
+ printf("Usage: grossd [-CDdhnPpruV] [-f configfile]\n");
printf(" -C create statefile and exit\n");
printf(" -D Enable debug logging (insane verbosity with -DD)\n");
printf(" -d Run grossd as a foreground process\n");
@@ -563,6 +563,7 @@
printf(" -p file write the process id in a pidfile\n");
printf(" -P file same as -p, but pid file must not exist\n");
printf(" -r disable replication\n");
+ printf(" -u user run gross as user\n");
printf(" -V version information\n");
exit(EXIT_USAGE);
}
@@ -612,6 +613,7 @@
pool_limits_t limits;
sigset_t mask, oldmask;
struct passwd *pwd;
+ char *user = "nobody";
#ifdef DNSBL
dns_check_info_t *dns_check_info;
@@ -623,7 +625,7 @@
daemon_shutdown(EXIT_FATAL, "Couldn't initialize context");
/* command line arguments */
- while ((c = getopt(argc, argv, ":drf:VCDnp:P:")) != -1) {
+ while ((c = getopt(argc, argv, ":drf:VCDnp:P:u:")) != -1) {
switch (c) {
case 'd':
ctx->config.flags |= FLG_NODAEMON;
@@ -663,6 +665,9 @@
ctx->config.flags |= FLG_CHECK_PIDFILE;
ctx->config.flags |= FLG_CREATE_PIDFILE;
break;
+ case 'u':
+ user = optarg;
+ break;
case 'h':
usage();
break;
@@ -675,16 +680,16 @@
/* grossd doesn't need to be running as root */
if (geteuid() == 0) {
- logstr(GLOG_DEBUG, "Running as root: setuid() to 'nobody'");
- pwd = getpwnam("nobody");
+ logstr(GLOG_DEBUG, "Running as root: setuid() to '%s'", user);
+ pwd = getpwnam(user);
if (NULL == pwd)
- daemon_shutdown(EXIT_FATAL, "Running as root: can't find user 'nobody'");
+ daemon_shutdown(EXIT_FATAL, "Running as root: can't find user '%s'", user);
if (setgid(pwd->pw_gid) != 0)
- daemon_shutdown(EXIT_FATAL, "Running as root: can't setgid(%d) to 'nobody': %s",
- pwd->pw_gid, strerror(errno));
+ daemon_shutdown(EXIT_FATAL, "Running as root: can't setgid(%d) to '%s': %s",
+ pwd->pw_gid, user, strerror(errno));
if (setuid(pwd->pw_uid) != 0)
- daemon_shutdown(EXIT_FATAL, "Running as root: can't setuid(%d) to 'nobody': %s",
- pwd->pw_uid, strerror(errno));
+ daemon_shutdown(EXIT_FATAL, "Running as root: can't setuid(%d) to '%s': %s",
+ pwd->pw_uid, user, strerror(errno));
}
config = default_config();
#
# Specify daemon $OPTS here.
#
OPTS=""
#!/sbin/runscript
NAME="grossd"
DAEMON="/usr/sbin/$NAME"
USER="gross"
GROUP="gross"
depend() {
need net
}
check_config() {
if [ ! -f /var/db/gross/state ] ; then
einfo "Generating Gross database..."
install -dD -o${USER} -g${GROUP} /var/db/gross
${DAEMON} -Cu ${USER} > /dev/null
fi
}
start() {
check_config || return 1
ebegin "Starting ${NAME}"
start-stop-daemon --start --quiet --background \
--exec ${DAEMON} -- \
-p /var/run/gross/grossd.pid \
-u ${USER} ${OPTS}
eend $?
}
stop() {
ebegin "Stopping ${NAME}"
start-stop-daemon --stop --pidfile /var/run/gross/grossd.pid
eend $?
}
#!/bin/sh
chown -R gross:gross /var/run/gross
#!/bin/sh
adduser -H -s /bin/false -D gross 2>/dev/null
exit 0
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment