Installation to .../share and ../sbin
authorheiko
Tue, 02 Jan 2007 15:23:46 +0000
changeset 9 417562509dbe
parent 8 7da62b48653f
child 10 02accfddd669
Installation to .../share and ../sbin
Makefile
debian/changelog
debian/rules
exigrey.pl
exim-exigrey.pl
greylist.pl
--- a/Makefile	Tue Jan 02 10:49:47 2007 +0000
+++ b/Makefile	Tue Jan 02 15:23:46 2007 +0000
@@ -1,11 +1,11 @@
 # $Id$
 # $URL$
 
+exim = exim
+
 prefix = /usr/local
 sbindir = ${prefix}/sbin
-sysconfdir = ${prefix}/etc
-
-eximconfdir = ${sysconfdir}/exim
+libdir = ${prefix}/share/${exim}
 
 SCRIPTS = exigrey
 
@@ -20,10 +20,15 @@
 	install -m 0755 -d $(DESTDIR)${sbindir}
 	install -m 0755 $(SCRIPTS) $(DESTDIR)${sbindir}/
 
-	install -m 0755 -d $(DESTDIR)$(eximconfdir)/exigrey
-	install -m 0644 greylist.pl $(DESTDIR)$(eximconfdir)/exigrey/
+	install -m 0755 -d $(DESTDIR)$(libdir)
+	install -m 0644 exim-exigrey.pl $(DESTDIR)$(libdir)/exigrey.pl
 
-%:	%.pl
-	@perl -c $<
-	@cp -vf $< $@
-	@chmod a-w,+x $@
+%:	.%.pl
+	@test -e $@ && { test -w $@ || chmod +w $@; } || true
+	@cat $< >$@
+	@chmod a-w,a+x $@
+
+.%.pl:	%.pl
+	@sed -e 's,@LIBDIR@,$(libdir),g' \
+	<$< >$@
+	@perl -c $@
--- a/debian/changelog	Tue Jan 02 10:49:47 2007 +0000
+++ b/debian/changelog	Tue Jan 02 15:23:46 2007 +0000
@@ -1,3 +1,12 @@
+exigrey (0.2-1) stable; urgency=low
+
+  * files and directories changed
+    bin: /usr/sbin/exigrey
+    lib: /usr/share/exim4/exigrey.pl
+
+ -- Heiko Schlittermann <hs@schlittermann.de>  Tue, 02 Jan 2007 16:01:03 +0100
+
+
 exigrey (0.1-3) stable; urgency=low
 
   * Initial release 
--- a/debian/rules	Tue Jan 02 10:49:47 2007 +0000
+++ b/debian/rules	Tue Jan 02 15:23:46 2007 +0000
@@ -33,7 +33,7 @@
 	dh_testdir
 
 	# Add here commands to compile the package.
-	$(MAKE)
+	$(MAKE) prefix=/usr exim=exim4
 	#docbook-to-man debian/exigrey.sgml > exigrey.1
 
 	touch $@
@@ -57,7 +57,7 @@
 	# Add here commands to install the package into debian/exigrey.
 	$(MAKE) \
 		prefix=/usr \
-		eximconfdir=/etc/exim4 \
+		exim=exim4 \
 		DESTDIR=$(CURDIR)/debian/exigrey \
 	    install
 
--- a/exigrey.pl	Tue Jan 02 10:49:47 2007 +0000
+++ b/exigrey.pl	Tue Jan 02 15:23:46 2007 +0000
@@ -24,7 +24,7 @@
 use FindBin qw/$Bin/;
 use POSIX qw/strftime mktime/;
 
-do "$Bin/greylist.pl" or die;
+do "@LIBDIR@/exigrey.pl" or die;
 my %DEFAULT = getDefault();
    $DEFAULT{days} = 7;
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/exim-exigrey.pl	Tue Jan 02 15:23:46 2007 +0000
@@ -0,0 +1,91 @@
+# © 2006,2007 Heiko Schlittermann <hs@schlittermann.de>
+# $Id$
+# $URL$
+
+use strict;
+use warnings;
+use BerkeleyDB;
+
+my %DEFAULT = (
+	delay => 600,
+	db => "seen.db",
+);
+
+sub unseen($;$$);
+
+sub getDBDir();
+sub findExim(;$);
+sub getDefault() { %DEFAULT };
+
+# Usage:
+# 	${perl{unseen}{$sender_host_address}}
+# 	${perl{unseen}{$sender_host_address}{600}}
+# 	${perl{unseen}{$sender_host_address}{600}{seen.db}}
+# 	${perl{unseen}{$sender_host_address}{600}{/some/dir/seen.db}}
+#
+# record structure: key:   item\0 
+#                   value: timestamp(creation) timestamp(usage)\0
+# (This way we're compatible with ${lookup{...}dbm{...}})
+sub unseen($;$$) {
+	my ($item, $delay, $db) = @_;
+		$item .= "\0";
+		$delay = $DEFAULT{delay} unless defined $delay;
+		$db = $DEFAULT{db} unless defined $db;
+
+	my $now = time();
+	my $umask;
+	my $rc;
+
+	$db = getDBDir() . "/$db" unless $db =~ /^\//;
+
+	$umask = umask 0077 if !-f $db;
+
+	my %h; tie %h, "BerkeleyDB::Hash", 
+		-Filename => $db,
+		-Flags => DB_CREATE
+	or die;
+
+	umask $umask if defined $umask;
+
+	if (not exists $h{$item}) {
+		$h{$item} = "$now $now\0";
+		$rc = "yes";
+	} else {
+		my $created = (split " ", $h{$item})[0];
+		if ($now - $created < $delay) { $rc = "yes" }
+		else { 
+			$rc = "no";
+			$h{$item} = "$created $now\0";
+		}
+	}
+	untie %h;
+	return $rc;
+}
+
+# Get the directory where we could store the database file(s)
+# If we're running under exim it's easy, otherwise we've to find exim
+# and then ask...
+sub getDBDir() {
+	my $spooldir;
+	eval { $spooldir = Exim::expand_string('$spool_directory') };
+	if (not defined $spooldir) {
+		my $exim = findExim();
+		chomp($spooldir = `$exim -be '\$spool_directory'`);
+		die "Can't find spooldir" if not defined $spooldir;
+	}
+	return "$spooldir/db";
+}
+
+sub findExim(;$) {
+	my $path = shift || $ENV{PATH};
+	my $exim;
+	foreach (split /:/, $ENV{PATH}) {
+		-x ($exim = "$_/exim") and return $exim;
+		-x ($exim = "$_/exim4") and return $exim;
+	}
+	return undef;
+}
+
+1;
+
+# vim:aw:
--- a/greylist.pl	Tue Jan 02 10:49:47 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-# © 2006,2007 Heiko Schlittermann <hs@schlittermann.de>
-# $Id$
-# $URL$
-
-use strict;
-use warnings;
-use BerkeleyDB;
-
-my %DEFAULT = (
-	delay => 600,
-	db => "seen.db",
-);
-
-sub unseen($;$$);
-
-sub getDBDir();
-sub findExim(;$);
-sub getDefault() { %DEFAULT };
-
-# Usage:
-# 	${perl{unseen}{$sender_host_address}}
-# 	${perl{unseen}{$sender_host_address}{600}}
-# 	${perl{unseen}{$sender_host_address}{600}{seen.db}}
-# 	${perl{unseen}{$sender_host_address}{600}{/some/dir/seen.db}}
-#
-# record structure: key:   item\0 
-#                   value: timestamp(creation) timestamp(usage)\0
-# (This way we're compatible with ${lookup{...}dbm{...}})
-sub unseen($;$$) {
-	my ($item, $delay, $db) = @_;
-		$item .= "\0";
-		$delay = $DEFAULT{delay} unless defined $delay;
-		$db = $DEFAULT{db} unless defined $db;
-
-	my $now = time();
-	my $umask;
-	my $rc;
-
-	$db = getDBDir() . "/$db" unless $db =~ /^\//;
-
-	$umask = umask 0077 if !-f $db;
-
-	my %h; tie %h, "BerkeleyDB::Hash", 
-		-Filename => $db,
-		-Flags => DB_CREATE
-	or die;
-
-	umask $umask if defined $umask;
-
-	if (not exists $h{$item}) {
-		$h{$item} = "$now $now\0";
-		$rc = "yes";
-	} else {
-		my $created = (split " ", $h{$item})[0];
-		if ($now - $created < $delay) { $rc = "yes" }
-		else { 
-			$rc = "no";
-			$h{$item} = "$created $now\0";
-		}
-	}
-	untie %h;
-	return $rc;
-}
-
-# Get the directory where we could store the database file(s)
-# If we're running under exim it's easy, otherwise we've to find exim
-# and then ask...
-sub getDBDir() {
-	my $spooldir;
-	eval { $spooldir = Exim::expand_string('$spool_directory') };
-	if (not defined $spooldir) {
-		my $exim = findExim();
-		chomp($spooldir = `$exim -be '\$spool_directory'`);
-		die "Can't find spooldir" if not defined $spooldir;
-	}
-	return "$spooldir/db";
-}
-
-sub findExim(;$) {
-	my $path = shift || $ENV{PATH};
-	my $exim;
-	foreach (split /:/, $ENV{PATH}) {
-		-x ($exim = "$_/exim") and return $exim;
-		-x ($exim = "$_/exim4") and return $exim;
-	}
-	return undef;
-}
-
-1;
-
-# vim:aw: