summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-05-18 14:36:50 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-05-18 14:36:50 +0000
commit3beca4265af9bc5d5370a0474b6374cf743ae76d (patch)
treeb2e618a26ed0a7179b335a45c5b260e50a67ca1a
parent68abd577ab4695c04d76c458bf5b0988d8258754 (diff)
downloadaports-3beca4265af9bc5d5370a0474b6374cf743ae76d.tar.bz2
aports-3beca4265af9bc5d5370a0474b6374cf743ae76d.tar.xz
extra/gross: new aport
Greylisting of suspicious sources http://code.google.com/p/gross/
-rw-r--r--extra/gross/APKBUILD54
-rw-r--r--extra/gross/gross-1.0.1-configure.ac.patch20
-rw-r--r--extra/gross/gross-1.0.1-default-conf.patch17
-rw-r--r--extra/gross/gross-1.0.1-user.patch72
-rw-r--r--extra/gross/gross.confd6
-rw-r--r--extra/gross/gross.initd35
-rw-r--r--extra/gross/gross.post-install2
-rw-r--r--extra/gross/gross.pre-install3
8 files changed, 209 insertions, 0 deletions
diff --git a/extra/gross/APKBUILD b/extra/gross/APKBUILD
new file mode 100644
index 00000000..986c0eb9
--- /dev/null
+++ b/extra/gross/APKBUILD
@@ -0,0 +1,54 @@
+# 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"
diff --git a/extra/gross/gross-1.0.1-configure.ac.patch b/extra/gross/gross-1.0.1-configure.ac.patch
new file mode 100644
index 00000000..80f9ea77
--- /dev/null
+++ b/extra/gross/gross-1.0.1-configure.ac.patch
@@ -0,0 +1,20 @@
+--- 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 --git a/extra/gross/gross-1.0.1-default-conf.patch b/extra/gross/gross-1.0.1-default-conf.patch
new file mode 100644
index 00000000..39cd9070
--- /dev/null
+++ b/extra/gross/gross-1.0.1-default-conf.patch
@@ -0,0 +1,17 @@
+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
diff --git a/extra/gross/gross-1.0.1-user.patch b/extra/gross/gross-1.0.1-user.patch
new file mode 100644
index 00000000..a20279f0
--- /dev/null
+++ b/extra/gross/gross-1.0.1-user.patch
@@ -0,0 +1,72 @@
+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();
diff --git a/extra/gross/gross.confd b/extra/gross/gross.confd
new file mode 100644
index 00000000..646e12f9
--- /dev/null
+++ b/extra/gross/gross.confd
@@ -0,0 +1,6 @@
+#
+# Specify daemon $OPTS here.
+#
+
+OPTS=""
+
diff --git a/extra/gross/gross.initd b/extra/gross/gross.initd
new file mode 100644
index 00000000..c67293e1
--- /dev/null
+++ b/extra/gross/gross.initd
@@ -0,0 +1,35 @@
+#!/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 $?
+}
+
diff --git a/extra/gross/gross.post-install b/extra/gross/gross.post-install
new file mode 100644
index 00000000..df06670a
--- /dev/null
+++ b/extra/gross/gross.post-install
@@ -0,0 +1,2 @@
+#!/bin/sh
+chown -R gross:gross /var/run/gross
diff --git a/extra/gross/gross.pre-install b/extra/gross/gross.pre-install
new file mode 100644
index 00000000..c3844d7a
--- /dev/null
+++ b/extra/gross/gross.pre-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+adduser -H -s /bin/false -D gross 2>/dev/null
+exit 0