diff --git a/RELEASE_NOTES b/RELEASE_NOTES new file mode 100644 index 0000000..2441dc5 --- /dev/null +++ b/RELEASE_NOTES @@ -0,0 +1,68 @@ +1.2.0: +------ + +Heavy SQL scheme changes throughout the development of 1.2.0! + +2016.10.06. + +Removed deb and rpm packaging metadata. + +2016.09.21. + +Improved logging for the GUI. See the new config option: $config['LOG_LEVEL'] = NORMAL; + +2016.09.18. + +Moved all piler configuration from ${sysconfdir} to ${sysconfdir}/piler, eg. + +root@01b74b787c26:/# ls -la /usr/local/etc/piler/ +total 36 +drwxr-xr-x 1 root root 24 Oct 6 20:49 . +drwxr-xr-x 1 root root 74 Oct 6 20:49 .. +-rw-r--r-- 4 root root 1008 Oct 6 20:39 piler.conf +-rw-r----- 5 root piler 1066 Oct 6 20:39 piler.conf.dist +-rw-r----- 5 root piler 56 Oct 6 20:40 piler.key +-rw------- 5 root root 5256 Oct 6 20:40 piler.pem +-rw-r--r-- 1 root root 6270 Oct 6 20:49 sphinx.conf +-rw-r--r-- 5 root piler 6299 Oct 6 20:39 sphinx.conf.dist + +Make sure to update the piler shipped shell scripts +(rc.searchd, indexer.*.sh, ...) as well! + +2016.08.31. + +Added chunking / BDAT support for the piler daemon. +You may turn it on by setting enable_chunking=1 in piler.conf + +2016.06.19. + +Improved attachment table indexing. + +2016.05.07. + +Obsoleted the --enable-starttls configure option. + +2016.03.02. + +Discard messages shorther than 100 bytes. + +2016.02.10. + +Added the private feature (for auditors only). + + +2015.11.26. + +Removed the pilergetd stuff. + +2015.07.08. + +Delete option for auditors. + +2015.05.07. + +Added milter script to contrib directory. + +2015.04.22. + +Added timestamp support. diff --git a/VERSION b/VERSION index f7f5c7f..26aaba0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.0-pre1 +1.2.0 diff --git a/src/config.h b/src/config.h index 0f38fa2..4ac5f4c 100644 --- a/src/config.h +++ b/src/config.h @@ -11,7 +11,7 @@ #define PROGNAME "piler" -#define VERSION "1.2.0-master" +#define VERSION "1.2.0" #define BUILD 952 diff --git a/util/Makefile.in b/util/Makefile.in index 71db5ea..f4b7e5c 100644 --- a/util/Makefile.in +++ b/util/Makefile.in @@ -26,9 +26,9 @@ all: sed -e "s%BINDIR%$(bindir)%" -e "s%__SYSCONFDIR%$(sysconfdir)%" -e "s%__LOCALSTATEDIR%$(localstatedir)%" -e "s%__LIBEXECDIR%$(libexecdir)%" -e "s%__DATAROOTDIR%$(datarootdir)%" $(srcdir)/postinstall.sh.in > $(srcdir)/postinstall.sh - sed -i -e "s%SYSCONFDIR%$(sysconfdir)%" $(srcdir)/indexer.delta.sh - sed -i -e "s%SYSCONFDIR%$(sysconfdir)%" $(srcdir)/indexer.main.sh - sed -i -e "s%SYSCONFDIR%$(sysconfdir)%" $(srcdir)/indexer.attachment.sh + sed -e "s%SYSCONFDIR%$(sysconfdir)%" $(srcdir)/indexer.delta.sh.in > $(srcdir)/indexer.delta.sh + sed -e "s%SYSCONFDIR%$(sysconfdir)%" $(srcdir)/indexer.main.sh.in > $(srcdir)/indexer.main.sh + sed -e "s%SYSCONFDIR%$(sysconfdir)%" $(srcdir)/indexer.attachment.sh.in > $(srcdir)/indexer.attachment.sh install: $(INSTALL) -m 0755 $(srcdir)/automated-search.php $(DESTDIR)$(libexecdir)/piler diff --git a/util/db-upgrade-1.1.0-vs-1.2.0.sql b/util/db-upgrade-1.1.0-vs-1.2.0.sql index 619045d..4d8a645 100644 --- a/util/db-upgrade-1.1.0-vs-1.2.0.sql +++ b/util/db-upgrade-1.1.0-vs-1.2.0.sql @@ -61,3 +61,13 @@ create view `v_messages` AS select `metadata`.`id` AS `id`,`metadata`.`piler_id` AS `piler_id`,`metadata`.`from` AS `from`,`metadata`.`fromdomain` AS `fromdomain`,`rcpt`.`to` AS `to`,`rcpt`.`todomain` AS `todomain`,`metadata`.`subject` AS `subject`, `metadata`.`size` AS `size`, `metadata`.`direction` AS `direction`, `metadata`.`sent` AS `sent`, `metadata`.`retained` AS `retained`, `metadata`.`arrived` AS `arrived`, `metadata`.`digest` AS `digest`, `metadata`.`bodydigest` AS `bodydigest`, `metadata`.`deleted` AS `deleted` from (`metadata` join `rcpt`) where (`metadata`.`id` = `rcpt`.`id`); +-- 2016.10.07 + +drop index `attachment_idx2` on `attachment`; +drop index `attachment_idx3` on `attachment`; +create index `attachment_idx2` on `attachment`(`sig`, `size`, `ptr`); + +create table if not exists `private` ( + `id` bigint unsigned not null unique, + key (`id`) +) ENGINE=InnoDB; diff --git a/util/indexer.attachment.sh b/util/indexer.attachment.sh deleted file mode 100755 index 219264e..0000000 --- a/util/indexer.attachment.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin -DELTATMPFILE=/var/run/piler/delta.attachment.indexer.tmp -INDEXER="indexer --config SYSCONFDIR/piler/sphinx.conf" -PRIORITY=mail.error -TOUCHFILE=/var/piler/stat/indexer.attachment - -if [ -f $DELTATMPFILE ]; then echo "INDEXER ERROR: att1 indexing is already running. It started at "`cat $DELTATMPFILE` | logger -p $PRIORITY ; exit 1; fi - -date > $DELTATMPFILE - -touch $TOUCHFILE - -function finish { - rm -f $DELTATMPFILE -} - -trap finish EXIT - -echo "INDEXER INFO: indexing att1 started" | logger -p $PRIORITY - -$INDEXER --quiet att1 --rotate - -echo "INDEXER INFO: indexing att1 finished" | logger -p $PRIORITY - - diff --git a/util/indexer.attachment.sh.in b/util/indexer.attachment.sh.in new file mode 100755 index 0000000..219264e --- /dev/null +++ b/util/indexer.attachment.sh.in @@ -0,0 +1,27 @@ +#!/bin/bash + +export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin +DELTATMPFILE=/var/run/piler/delta.attachment.indexer.tmp +INDEXER="indexer --config SYSCONFDIR/piler/sphinx.conf" +PRIORITY=mail.error +TOUCHFILE=/var/piler/stat/indexer.attachment + +if [ -f $DELTATMPFILE ]; then echo "INDEXER ERROR: att1 indexing is already running. It started at "`cat $DELTATMPFILE` | logger -p $PRIORITY ; exit 1; fi + +date > $DELTATMPFILE + +touch $TOUCHFILE + +function finish { + rm -f $DELTATMPFILE +} + +trap finish EXIT + +echo "INDEXER INFO: indexing att1 started" | logger -p $PRIORITY + +$INDEXER --quiet att1 --rotate + +echo "INDEXER INFO: indexing att1 finished" | logger -p $PRIORITY + + diff --git a/util/indexer.delta.sh b/util/indexer.delta.sh deleted file mode 100755 index 6da9e8b..0000000 --- a/util/indexer.delta.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin -MAINTMPFILE=/var/run/piler/main.indexer.tmp -DELTATMPFILE=/var/run/piler/delta.indexer.tmp -INDEXER="indexer --config SYSCONFDIR/piler/sphinx.conf" -PRIORITY=mail.error -TOUCHFILE=/var/piler/stat/indexer - -if [ -f $MAINTMPFILE ]; then echo "INDEXER ERROR: indexer merging to main index is already running. It started at "`cat $MAINTMPFILE` | logger -p $PRIORITY ; exit 1; fi - -if [ -f $DELTATMPFILE ]; then echo "INDEXER ERROR: delta indexing and merging is already running. It started at "`cat $DELTATMPFILE` | logger -p $PRIORITY ; exit 1; fi - -date > $DELTATMPFILE - -touch $TOUCHFILE - -function finish { - rm -f $DELTATMPFILE -} - -trap finish EXIT - -echo "INDEXER INFO: indexing delta1 started" | logger -p $PRIORITY - -$INDEXER --quiet delta1 --rotate - -echo "INDEXER INFO: indexing delta1 finished" | logger -p $PRIORITY - -sleep 5 - -echo "INDEXER INFO: merging delta to dailydelta started" | logger -p $PRIORITY - -$INDEXER --quiet --merge dailydelta1 delta1 --merge-dst-range deleted 0 0 --rotate - -echo "INDEXER INFO: merging delta to dailydelta finished" | logger -p $PRIORITY - diff --git a/util/indexer.delta.sh.in b/util/indexer.delta.sh.in new file mode 100755 index 0000000..6da9e8b --- /dev/null +++ b/util/indexer.delta.sh.in @@ -0,0 +1,37 @@ +#!/bin/bash + +export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin +MAINTMPFILE=/var/run/piler/main.indexer.tmp +DELTATMPFILE=/var/run/piler/delta.indexer.tmp +INDEXER="indexer --config SYSCONFDIR/piler/sphinx.conf" +PRIORITY=mail.error +TOUCHFILE=/var/piler/stat/indexer + +if [ -f $MAINTMPFILE ]; then echo "INDEXER ERROR: indexer merging to main index is already running. It started at "`cat $MAINTMPFILE` | logger -p $PRIORITY ; exit 1; fi + +if [ -f $DELTATMPFILE ]; then echo "INDEXER ERROR: delta indexing and merging is already running. It started at "`cat $DELTATMPFILE` | logger -p $PRIORITY ; exit 1; fi + +date > $DELTATMPFILE + +touch $TOUCHFILE + +function finish { + rm -f $DELTATMPFILE +} + +trap finish EXIT + +echo "INDEXER INFO: indexing delta1 started" | logger -p $PRIORITY + +$INDEXER --quiet delta1 --rotate + +echo "INDEXER INFO: indexing delta1 finished" | logger -p $PRIORITY + +sleep 5 + +echo "INDEXER INFO: merging delta to dailydelta started" | logger -p $PRIORITY + +$INDEXER --quiet --merge dailydelta1 delta1 --merge-dst-range deleted 0 0 --rotate + +echo "INDEXER INFO: merging delta to dailydelta finished" | logger -p $PRIORITY + diff --git a/util/indexer.main.sh b/util/indexer.main.sh deleted file mode 100755 index 8bf1549..0000000 --- a/util/indexer.main.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin -MAINTMPFILE=/var/run/piler/main.indexer.tmp -INDEXER="indexer --config SYSCONFDIR/piler/sphinx.conf" -PRIORITY=mail.error -TOUCHFILE=/var/piler/stat/indexer - -if [ -f $MAINTMPFILE ]; then echo "INDEXER ERROR: indexer merging to main index is already running. It started at "`cat $MAINTMPFILE` | logger -p $PRIORITY ; exit 1; fi - -date > $MAINTMPFILE - -touch $TOUCHFILE - -function finish { - rm -f $MAINTMPFILE -} - -trap finish EXIT - -echo "INDEXER INFO: merging to main started" | logger -p $PRIORITY - -$INDEXER --quiet --merge main1 dailydelta1 --merge-dst-range deleted 0 0 --rotate - -echo "INDEXER INFO: merging to main finished" | logger -p $PRIORITY - -sleep 5 - -echo "INDEXER INFO: resetting daily delta started" | logger -p $PRIORITY - -$INDEXER --quiet dailydelta1 --rotate - -echo "INDEXER INFO: resetting daily delta finished" | logger -p $PRIORITY - diff --git a/util/indexer.main.sh.in b/util/indexer.main.sh.in new file mode 100755 index 0000000..8bf1549 --- /dev/null +++ b/util/indexer.main.sh.in @@ -0,0 +1,34 @@ +#!/bin/bash + +export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin +MAINTMPFILE=/var/run/piler/main.indexer.tmp +INDEXER="indexer --config SYSCONFDIR/piler/sphinx.conf" +PRIORITY=mail.error +TOUCHFILE=/var/piler/stat/indexer + +if [ -f $MAINTMPFILE ]; then echo "INDEXER ERROR: indexer merging to main index is already running. It started at "`cat $MAINTMPFILE` | logger -p $PRIORITY ; exit 1; fi + +date > $MAINTMPFILE + +touch $TOUCHFILE + +function finish { + rm -f $MAINTMPFILE +} + +trap finish EXIT + +echo "INDEXER INFO: merging to main started" | logger -p $PRIORITY + +$INDEXER --quiet --merge main1 dailydelta1 --merge-dst-range deleted 0 0 --rotate + +echo "INDEXER INFO: merging to main finished" | logger -p $PRIORITY + +sleep 5 + +echo "INDEXER INFO: resetting daily delta started" | logger -p $PRIORITY + +$INDEXER --quiet dailydelta1 --rotate + +echo "INDEXER INFO: resetting daily delta finished" | logger -p $PRIORITY +