summaryrefslogtreecommitdiffstats
path: root/main/gross
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-07-24 08:01:31 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-07-24 08:01:31 +0000
commitb70981b68efcce5256eb11c6cd26ae123b10b6ea (patch)
treea38be6efae5e2ba15c2e839504632f9b7bfd5f91 /main/gross
parent2b4df81538b8398442d5296650905c70341dd8d3 (diff)
downloadaports-b70981b68efcce5256eb11c6cd26ae123b10b6ea.tar.bz2
aports-b70981b68efcce5256eb11c6cd26ae123b10b6ea.tar.xz
moved extra/* to main/
and fixed misc build issues
Diffstat (limited to 'main/gross')
-rw-r--r--main/gross/APKBUILD57
-rw-r--r--main/gross/gross-1.0.1-configure.ac.patch20
-rw-r--r--main/gross/gross-1.0.1-default-conf.patch17
-rw-r--r--main/gross/gross-1.0.1-user.patch72
-rw-r--r--main/gross/gross.post-install2
-rw-r--r--main/gross/gross.post-upgrade16
-rw-r--r--main/gross/gross.pre-install3
-rw-r--r--main/gross/gross.pre-upgrade12
-rw-r--r--main/gross/grossd.confd6
-rw-r--r--main/gross/grossd.initd35
10 files changed, 240 insertions, 0 deletions
diff --git a/main/gross/APKBUILD b/main/gross/APKBUILD
new file mode 100644
index 000000000..2dac13a66
--- /dev/null
+++ b/main/gross/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=gross
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="Greylisting of suspicious sources"
+url="http://code.google.com/p/gross/"
+license="BSD"
+depends=
+makedepends="c-ares-dev autoconf automake libtool sed"
+install="$pkgname.pre-install $pkgname.post-install $pkgname.pre-upgrade
+ $pkgname.post-upgrade"
+subpackages="$pkgname-doc $pkgname-dev"
+source="http://gross.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ grossd.initd
+ grossd.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"/grossd.initd "$pkgdir"/etc/init.d/grossd
+ install -m644 -D "$srcdir"/grossd.confd "$pkgdir"/etc/conf.d/grossd
+}
+
+md5sums="f8f81b36850dcda30cb81799b9cee3b6 gross-1.0.1.tar.gz
+b0d8635b64c4a90d72c49e868f4c4c32 grossd.initd
+5ca1c6e51c3243236e6564480b20279b grossd.confd
+bb75b119ac96b8f99831ce6df810003f gross-1.0.1-configure.ac.patch
+7c504b653c71dcf7b192bc487b3516fd gross-1.0.1-default-conf.patch
+16e184d59d520db565388f010cc75e83 gross-1.0.1-user.patch
+8f6e45b98888dbb9971f7681bf431f6f gross.pre-install
+4b55d1c5534167946cc11376d1b05c34 gross.post-install
+87e7d76dace9cedf61efc04cdb6a905c gross.pre-upgrade
+46df3a643ba26f3eb2d6a09f616e421d gross.post-upgrade"
diff --git a/main/gross/gross-1.0.1-configure.ac.patch b/main/gross/gross-1.0.1-configure.ac.patch
new file mode 100644
index 000000000..80f9ea776
--- /dev/null
+++ b/main/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/main/gross/gross-1.0.1-default-conf.patch b/main/gross/gross-1.0.1-default-conf.patch
new file mode 100644
index 000000000..39cd90709
--- /dev/null
+++ b/main/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/main/gross/gross-1.0.1-user.patch b/main/gross/gross-1.0.1-user.patch
new file mode 100644
index 000000000..a20279f00
--- /dev/null
+++ b/main/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/main/gross/gross.post-install b/main/gross/gross.post-install
new file mode 100644
index 000000000..df06670a4
--- /dev/null
+++ b/main/gross/gross.post-install
@@ -0,0 +1,2 @@
+#!/bin/sh
+chown -R gross:gross /var/run/gross
diff --git a/main/gross/gross.post-upgrade b/main/gross/gross.post-upgrade
new file mode 100644
index 000000000..1e52785e1
--- /dev/null
+++ b/main/gross/gross.post-upgrade
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+moved=
+for i in /etc/runlevels/*/gross; do
+ if [ -L $i ]; then
+ mv ${i} ${i}d
+ moved=1
+ fi
+done
+
+if [ -n "$moved" ]; then
+ echo " *"
+ echo " * NOTICE: /etc/init.d/gross is renamed to /etc/init.d/grossd"
+ echo " *"
+fi
+
diff --git a/main/gross/gross.pre-install b/main/gross/gross.pre-install
new file mode 100644
index 000000000..c3844d7a5
--- /dev/null
+++ b/main/gross/gross.pre-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+adduser -H -s /bin/false -D gross 2>/dev/null
+exit 0
diff --git a/main/gross/gross.pre-upgrade b/main/gross/gross.pre-upgrade
new file mode 100644
index 000000000..90361bcc6
--- /dev/null
+++ b/main/gross/gross.pre-upgrade
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+old=/etc/conf.d/gross
+new=/etc/conf.d/grossd
+
+if [ -f "$old" ] && [ ! -f "$new" ]; then
+ mv "$old" "$new"
+ echo " *"
+ echo " * NOTICE: $old was renamed to $new"
+ echo " *"
+fi
+
diff --git a/main/gross/grossd.confd b/main/gross/grossd.confd
new file mode 100644
index 000000000..646e12f9d
--- /dev/null
+++ b/main/gross/grossd.confd
@@ -0,0 +1,6 @@
+#
+# Specify daemon $OPTS here.
+#
+
+OPTS=""
+
diff --git a/main/gross/grossd.initd b/main/gross/grossd.initd
new file mode 100644
index 000000000..3d1c43d70
--- /dev/null
+++ b/main/gross/grossd.initd
@@ -0,0 +1,35 @@
+#!/sbin/runscript
+
+NAME="grossd"
+DAEMON="/usr/sbin/$NAME"
+DAEMON_USER="gross"
+DAEMON_GROUP="gross"
+
+depend() {
+ need net
+}
+
+check_config() {
+ if [ ! -f /var/db/gross/state ] ; then
+ einfo "Generating Gross database..."
+ install -dD -o${DAEMON_USER} -g${DAEMON_GROUP} /var/db/gross
+ ${DAEMON} -Cu ${DAEMON_USER} > /dev/null
+ fi
+}
+
+start() {
+ check_config || return 1
+ ebegin "Starting ${NAME}"
+ start-stop-daemon --start --quiet \
+ --exec ${DAEMON} -- \
+ -p /var/run/gross/grossd.pid \
+ -u ${DAEMON_USER} ${OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${NAME}"
+ start-stop-daemon --stop --pidfile /var/run/gross/grossd.pid
+ eend $?
+}
+