merge #406 - dovecot-lucene & packaging

This commit is contained in:
Joshua Tauberer 2015-06-03 15:51:16 -04:00
commit 1760eaa601
5 changed files with 93 additions and 37 deletions

View File

@ -1,12 +1,11 @@
POSTGREY_VERSION=1.35-1+miab1 POSTGREY_VERSION=1.35-1+miab1
DOVECOT_VERSION=2.2.9-1ubuntu2.1+miab1
all: clean build_postgrey build_dovecot_lucene all: clean build_postgrey build_dovecot_lucene
clean: clean:
# Clean. # Clean.
rm -rf /tmp/build rm -rf /tmp/build
# Prepare to build source packages.
mkdir -p /tmp/build mkdir -p /tmp/build
build_postgrey: clean build_postgrey: clean
@ -50,10 +49,10 @@ build_dovecot_lucene: clean
(cd /tmp/build/dovecot-2.2.9; dpkg-buildpackage -S -us -uc -nc) (cd /tmp/build/dovecot-2.2.9; dpkg-buildpackage -S -us -uc -nc)
# Sign the packages. # Sign the packages.
#debsign /tmp/build/dovecot_2.2.9-1ubuntu2.1_amd64.changes debsign /tmp/build/dovecot_$(DOVECOT_VERSION)_source.changes
# Upload it. # Upload it.
#dput ppa:mail-in-a-box/ppa /tmp/build/dovecot_2.2.9-1ubuntu2.1_amd64.changes dput ppa:mail-in-a-box/ppa /tmp/build/dovecot_$(DOVECOT_VERSION)_source.changes
# TESTING BINARY PACKAGE # TESTING BINARY PACKAGE
# Install build dependencies and build dependencies we've added in our patch, # Install build dependencies and build dependencies we've added in our patch,

View File

@ -8,6 +8,8 @@ Packages
* postgrey, a fork of [postgrey](http://postgrey.schweikert.ch/) based on the [latest Debian package](http://git.debian.org/?p=collab-maint/postgrey.git), with a modification to whitelist senders that are whitelisted by [dnswl.org](https://www.dnswl.org/) (i.e. don't greylist mail from known good senders). * postgrey, a fork of [postgrey](http://postgrey.schweikert.ch/) based on the [latest Debian package](http://git.debian.org/?p=collab-maint/postgrey.git), with a modification to whitelist senders that are whitelisted by [dnswl.org](https://www.dnswl.org/) (i.e. don't greylist mail from known good senders).
* dovecot-lucene, [dovecot's lucene full text search plugin](http://wiki2.dovecot.org/Plugins/FTS/Lucene), which isn't built by Ubuntu's dovecot package maintainer unfortunately.
Building Building
-------- --------
@ -30,9 +32,9 @@ To build:
# Build & upload to launchpad. # Build & upload to launchpad.
vagrant ssh -- "cd /vagrant && make" vagrant ssh -- "cd /vagrant && make"
To use on a Mail-in-a-Box box, add the PPA and then upgrade packages: Mail-in-a-Box adds our PPA during setup, but if you need to do that yourself for testing:
apt-add-repository ppa:mail-in-a-box/ppa apt-add-repository ppa:mail-in-a-box/ppa
apt-get update apt-get update
apt-get upgrade apt-get install postgrey dovecot-lucene

View File

@ -1,6 +1,6 @@
--- a/debian/control --- a/debian/control
+++ b/debian/control +++ b/debian/control
@@ -1,210 +1,22 @@ @@ -1,210 +1,23 @@
Source: dovecot Source: dovecot
Section: mail Section: mail
Priority: optional Priority: optional
@ -13,11 +13,14 @@
+Build-Depends: debhelper (>= 7.2.3~), dpkg-dev (>= 1.16.1), pkg-config, libssl-dev, libpam0g-dev, libldap2-dev, libpq-dev, libmysqlclient-dev, libsqlite3-dev, libsasl2-dev, zlib1g-dev, libkrb5-dev, drac-dev (>= 1.12-5), libbz2-dev, libdb-dev, libcurl4-gnutls-dev, libexpat-dev, libwrap0-dev, dh-systemd, po-debconf, lsb-release, libclucene-dev (>= 2.3), liblzma-dev, libexttextcat-dev, libstemmer-dev, hardening-wrapper, dh-autoreconf, autotools-dev +Build-Depends: debhelper (>= 7.2.3~), dpkg-dev (>= 1.16.1), pkg-config, libssl-dev, libpam0g-dev, libldap2-dev, libpq-dev, libmysqlclient-dev, libsqlite3-dev, libsasl2-dev, zlib1g-dev, libkrb5-dev, drac-dev (>= 1.12-5), libbz2-dev, libdb-dev, libcurl4-gnutls-dev, libexpat-dev, libwrap0-dev, dh-systemd, po-debconf, lsb-release, libclucene-dev (>= 2.3), liblzma-dev, libexttextcat-dev, libstemmer-dev, hardening-wrapper, dh-autoreconf, autotools-dev
Standards-Version: 3.9.4 Standards-Version: 3.9.4
Homepage: http://dovecot.org/ Homepage: http://dovecot.org/
Vcs-Git: git://git.debian.org/git/collab-maint/dovecot.git -Vcs-Git: git://git.debian.org/git/collab-maint/dovecot.git
Vcs-Browser: http://git.debian.org/?p=collab-maint/dovecot.git -Vcs-Browser: http://git.debian.org/?p=collab-maint/dovecot.git
+Vcs-Git: https://github.com/mail-in-a-box/mailinabox
+Vcs-Browser: https://github.com/mail-in-a-box/mailinabox
-Package: dovecot-core -Package: dovecot-core
-Architecture: any +Package: dovecot-lucene
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libpam-runtime (>= 0.76-13.1), openssl, adduser, ucf (>= 2.0020), ssl-cert (>= 1.0-11ubuntu1), lsb-base (>= 3.2-12ubuntu3) -Depends: ${shlibs:Depends}, ${misc:Depends}, libpam-runtime (>= 0.76-13.1), openssl, adduser, ucf (>= 2.0020), ssl-cert (>= 1.0-11ubuntu1), lsb-base (>= 3.2-12ubuntu3)
-Suggests: ntp, dovecot-gssapi, dovecot-sieve, dovecot-pgsql, dovecot-mysql, dovecot-sqlite, dovecot-ldap, dovecot-imapd, dovecot-pop3d, dovecot-lmtpd, dovecot-managesieved, dovecot-solr, ufw -Suggests: ntp, dovecot-gssapi, dovecot-sieve, dovecot-pgsql, dovecot-mysql, dovecot-sqlite, dovecot-ldap, dovecot-imapd, dovecot-pop3d, dovecot-lmtpd, dovecot-managesieved, dovecot-solr, ufw
-Recommends: ntpdate -Recommends: ntpdate
@ -25,12 +28,14 @@
-Replaces: dovecot-common (<< 1:2.0.14-2~), mailavenger (<< 0.8.1-4) -Replaces: dovecot-common (<< 1:2.0.14-2~), mailavenger (<< 0.8.1-4)
-Breaks: dovecot-common (<< 1:2.0.14-2~), mailavenger (<< 0.8.1-4) -Breaks: dovecot-common (<< 1:2.0.14-2~), mailavenger (<< 0.8.1-4)
-Description: secure POP3/IMAP server - core files -Description: secure POP3/IMAP server - core files
- Dovecot is a mail server whose major goals are security and extreme +Depends: ${shlibs:Depends}, ${misc:Depends}, dovecot-core (>= 1:2.2.9-1ubuntu2.1)
- reliability. It tries very hard to handle all error conditions and verify +Description: secure POP3/IMAP server - Lucene support
- that all data is valid, making it nearly impossible to crash. It supports Dovecot is a mail server whose major goals are security and extreme
- mbox/Maildir and its own dbox/mdbox formats, and should also be pretty reliability. It tries very hard to handle all error conditions and verify
- fast, extensible, and portable. that all data is valid, making it nearly impossible to crash. It supports
- . mbox/Maildir and its own dbox/mdbox formats, and should also be pretty
fast, extensible, and portable.
.
- This package contains the Dovecot main server and its command line utility. - This package contains the Dovecot main server and its command line utility.
- -
-Package: dovecot-dev -Package: dovecot-dev
@ -151,17 +156,15 @@
- This package provides LDAP support for Dovecot. - This package provides LDAP support for Dovecot.
- -
-Package: dovecot-gssapi -Package: dovecot-gssapi
+Package: dovecot-lucene -Architecture: any
Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, dovecot-core (= ${binary:Version})
Depends: ${shlibs:Depends}, ${misc:Depends}, dovecot-core (= ${binary:Version})
-Description: secure POP3/IMAP server - GSSAPI support -Description: secure POP3/IMAP server - GSSAPI support
+Description: secure POP3/IMAP server - Lucene support - Dovecot is a mail server whose major goals are security and extreme
Dovecot is a mail server whose major goals are security and extreme - reliability. It tries very hard to handle all error conditions and verify
reliability. It tries very hard to handle all error conditions and verify - that all data is valid, making it nearly impossible to crash. It supports
that all data is valid, making it nearly impossible to crash. It supports - mbox/Maildir and its own dbox/mdbox formats, and should also be pretty
mbox/Maildir and its own dbox/mdbox formats, and should also be pretty - fast, extensible, and portable.
fast, extensible, and portable. - .
.
- This package provides GSSAPI authentication support for Dovecot. - This package provides GSSAPI authentication support for Dovecot.
- -
-Package: dovecot-sieve -Package: dovecot-sieve
@ -216,7 +219,9 @@
- This package contains configuration files for dovecot. - This package contains configuration files for dovecot.
- . - .
- This package modifies postfix's configuration to integrate with dovecot - This package modifies postfix's configuration to integrate with dovecot
+ This package provides Lucene full text search support for Dovecot. + This package provides Lucene full text search support for Dovecot. It has been modified by Mail-in-a-Box
+ to supply a dovecot-lucene package compatible with the official ubuntu trusty dovecot-core.
diff --git a/debian/dovecot-lucene.links b/debian/dovecot-lucene.links diff --git a/debian/dovecot-lucene.links b/debian/dovecot-lucene.links
new file mode 100644 new file mode 100644
index 0000000..6ffcbeb index 0000000..6ffcbeb
@ -247,11 +252,9 @@ index 0000000..3d933a5
+++ b/debian/dovecot-lucene.triggers +++ b/debian/dovecot-lucene.triggers
@@ -0,0 +1 @@ @@ -0,0 +1 @@
+activate register-dovecot-plugin +activate register-dovecot-plugin
diff --git a/debian/rules b/debian/rules
index dcee2f6..9533a4a 100755
--- a/debian/rules --- a/debian/rules
+++ b/debian/rules +++ b/debian/rules
@@ -40,6 +40,7 @@ config-stamp: configure @@ -40,6 +40,7 @@
--with-solr \ --with-solr \
--with-ioloop=best \ --with-ioloop=best \
--with-libwrap \ --with-libwrap \
@ -259,18 +262,18 @@ index dcee2f6..9533a4a 100755
--host=$(DEB_HOST_GNU_TYPE) \ --host=$(DEB_HOST_GNU_TYPE) \
--build=$(DEB_BUILD_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \
--prefix=/usr \ --prefix=/usr \
@@ -95,6 +96,10 @@ install: build @@ -95,6 +96,10 @@
dh_testroot dh_testroot
dh_clean -k dh_clean -k
dh_installdirs dh_installdirs
+ mkdir -p $(CURDIR)/debian/dovecot-lucene/usr/lib/dovecot/modules + mkdir -p $(CURDIR)/debian/dovecot-lucene/usr/lib/dovecot/modules
+ mv $(CURDIR)/src/plugins/fts-lucene/.libs/* $(CURDIR)/debian/dovecot-lucene/usr/lib/dovecot/modules/ + mv $(CURDIR)/src/plugins/fts-lucene/.libs/* $(CURDIR)/debian/dovecot-lucene/usr/lib/dovecot/modules/
+ +
+rest_disabled_by_miab: +rest_disabled_by_miab:
$(MAKE) install DESTDIR=$(CURDIR)/debian/dovecot-core $(MAKE) install DESTDIR=$(CURDIR)/debian/dovecot-core
$(MAKE) -C $(PIGEONHOLE_DIR) install DESTDIR=$(CURDIR)/debian/dovecot-core $(MAKE) -C $(PIGEONHOLE_DIR) install DESTDIR=$(CURDIR)/debian/dovecot-core
rm `find $(CURDIR)/debian -name '*.la'` rm `find $(CURDIR)/debian -name '*.la'`
@@ -209,7 +214,7 @@ binary-arch: build install @@ -209,7 +214,7 @@
dh_installdocs -a dh_installdocs -a
dh_installexamples -a dh_installexamples -a
dh_installpam -a dh_installpam -a
@ -279,7 +282,7 @@ index dcee2f6..9533a4a 100755
dh_systemd_enable dh_systemd_enable
dh_installinit -pdovecot-core --name=dovecot dh_installinit -pdovecot-core --name=dovecot
dh_systemd_start dh_systemd_start
@@ -220,10 +225,10 @@ binary-arch: build install @@ -220,10 +225,10 @@
dh_lintian -a dh_lintian -a
dh_installchangelogs -a ChangeLog dh_installchangelogs -a ChangeLog
dh_link -a dh_link -a
@ -292,3 +295,25 @@ index dcee2f6..9533a4a 100755
dh_makeshlibs -a -n dh_makeshlibs -a -n
dh_installdeb -a dh_installdeb -a
dh_shlibdeps -a dh_shlibdeps -a
--- a/debian/changelog
+++ a/debian/changelog
@@ -1,3 +1,9 @@
+dovecot (1:2.2.9-1ubuntu2.1+miab1) trusty; urgency=low
+
+ * Changed to just build dovecot-lucene for Mail-in-a-box PPA
+
+ -- Joshua Tauberer <jt@occams.info> Sat, 14 May 2015 16:13:00 -0400
+
dovecot (1:2.2.9-1ubuntu2.1) trusty-security; urgency=medium
* SECURITY UPDATE: denial of service via SSL connection exhaustion
--- a/debian/copyright 2014-03-07 07:26:37.000000000 -0500
+++ b/debian/copyright 2015-05-23 18:17:42.668005535 -0400
@@ -1,3 +1,7 @@
+This package is a fork by Mail-in-a-box (https://mailinabox.email). Original
+copyright statement follows:
+----------------------------------------------------------------------------
+
This package was debianized by Jaldhar H. Vyas <jaldhar@debian.org> on
Tue, 3 Dec 2002 01:10:07 -0500.

View File

@ -18,11 +18,14 @@
source setup/functions.sh # load our functions source setup/functions.sh # load our functions
source /etc/mailinabox.conf # load global vars source /etc/mailinabox.conf # load global vars
# Install packages...
# Install packages for dovecot. These are all core dovecot plugins,
# but dovecot-lucene is packaged by *us* in the Mail-in-a-Box PPA,
# not by Ubuntu.
apt_install \ apt_install \
dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-sqlite sqlite3 \ dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-sqlite sqlite3 \
dovecot-sieve dovecot-managesieved dovecot-sieve dovecot-managesieved dovecot-lucene
# The `dovecot-imapd`, `dovecot-pop3d`, and `dovecot-lmtpd` packages automatically # The `dovecot-imapd`, `dovecot-pop3d`, and `dovecot-lmtpd` packages automatically
# enable IMAP, POP and LMTP protocols. # enable IMAP, POP and LMTP protocols.
@ -92,6 +95,17 @@ tools/editconf.py /etc/dovecot/conf.d/20-imap.conf \
tools/editconf.py /etc/dovecot/conf.d/20-pop3.conf \ tools/editconf.py /etc/dovecot/conf.d/20-pop3.conf \
pop3_uidl_format="%08Xu%08Xv" pop3_uidl_format="%08Xu%08Xv"
# Full Text Search - Enable full text search of mail using dovecot's lucene plugin,
# which *we* package and distribute (dovecot-lucene package).
tools/editconf.py /etc/dovecot/conf.d/10-mail.conf \
mail_plugins="\$mail_plugins fts fts_lucene"
cat > /etc/dovecot/conf.d/90-plugin-fts.conf << EOF;
plugin {
fts = lucene
fts_lucene = whitespace_chars=@.
}
EOF
# ### LDA (LMTP) # ### LDA (LMTP)
# Enable Dovecot's LDA service with the LMTP protocol. It will listen # Enable Dovecot's LDA service with the LMTP protocol. It will listen

View File

@ -3,7 +3,21 @@ source setup/functions.sh # load our functions
# Basic System Configuration # Basic System Configuration
# ------------------------- # -------------------------
# ### Install Packages # ### Add Mail-in-a-Box's PPA.
# We've built several .deb packages on our own that we want to include.
# One is a replacement for Ubuntu's stock postgrey package that makes
# some enhancements. The other is dovecot-lucene, a Lucene-based full
# text search plugin for (and by) dovecot, which is not available in
# Ubuntu currently.
#
# Add that to the system's list of repositories:
hide_output add-apt-repository -y ppa:mail-in-a-box/ppa
# The apt-get update in the next step will pull in the PPA's index.
# ### Update Packages
# Update system packages to make sure we have the latest upstream versions of things from Ubuntu. # Update system packages to make sure we have the latest upstream versions of things from Ubuntu.
@ -11,6 +25,8 @@ echo Updating system packages...
hide_output apt-get update hide_output apt-get update
apt_get_quiet upgrade apt_get_quiet upgrade
# ### Install System Packages
# Install basic utilities. # Install basic utilities.
# #
# * haveged: Provides extra entropy to /dev/random so it doesn't stall # * haveged: Provides extra entropy to /dev/random so it doesn't stall