commit:     45323735d6f772c7060aa794594a2d88d9560fa6
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  1 03:14:31 2017 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Wed Nov  1 18:54:57 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45323735

mail-filter/spamassassin: new revision letting spamd run as root (systemd).

In the previous revision (r18), support was added for running spamd as
root through OpenRC. That was done using a new variable called
SPAMD_RUN_AS_ROOT, defaulting to false. The choice to use a boolean
variable -- as opposed to e.g. SPAMD_USER -- was made because passing
"root" as the username to spamd kills it. Thus, SPAMD_USER=root would
not have worked, and we instead test SPAMD_RUN_AS_ROOT to decide
whether or not to specify a username/groupname at all.

The same exact issue arises with systemd; however, systemd offers no
way for us to test the value of SPAMD_RUN_AS_ROOT and act on the
result! The SPAMD_USER proposal is dead in the water for the same
reason, so a different approach was needed. The simplest thing that
could work was to move the "--username" and "--groupname" flags out
of the systemd service file, and into the SPAMD_OPTS variable. That
way, users who know what they are doing can simply drop those flags.

Closes: https://bugs.gentoo.org/635790
Package-Manager: Portage-2.3.8, Repoman-2.3.3

 mail-filter/spamassassin/files/spamassassin.service-r4         | 10 ++++++++++
 mail-filter/spamassassin/files/spamassassin.service.conf-r2    |  2 ++
 ...assassin-3.4.1-r18.ebuild => spamassassin-3.4.1-r19.ebuild} | 10 ++++++----
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/mail-filter/spamassassin/files/spamassassin.service-r4 
b/mail-filter/spamassassin/files/spamassassin.service-r4
new file mode 100644
index 00000000000..b539cd2bb5a
--- /dev/null
+++ b/mail-filter/spamassassin/files/spamassassin.service-r4
@@ -0,0 +1,10 @@
+[Unit]
+Description=Spamassassin daemon
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/spamd $SPAMD_OPTS
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target

diff --git a/mail-filter/spamassassin/files/spamassassin.service.conf-r2 
b/mail-filter/spamassassin/files/spamassassin.service.conf-r2
new file mode 100644
index 00000000000..442dde44e07
--- /dev/null
+++ b/mail-filter/spamassassin/files/spamassassin.service.conf-r2
@@ -0,0 +1,2 @@
+[Service]
+Environment="SPAMD_OPTS=--username=spamd --groupname=spamd --max-children=5 
--create-prefs --helper-home-dir"

diff --git a/mail-filter/spamassassin/spamassassin-3.4.1-r18.ebuild 
b/mail-filter/spamassassin/spamassassin-3.4.1-r19.ebuild
similarity index 94%
rename from mail-filter/spamassassin/spamassassin-3.4.1-r18.ebuild
rename to mail-filter/spamassassin/spamassassin-3.4.1-r19.ebuild
index 49b14da5015..2f2e31f1087 100644
--- a/mail-filter/spamassassin/spamassassin-3.4.1-r18.ebuild
+++ b/mail-filter/spamassassin/spamassassin-3.4.1-r19.ebuild
@@ -159,8 +159,8 @@ src_install () {
        newinitd "${FILESDIR}/3.4.1-spamd.init-r2" spamd
        newconfd "${FILESDIR}/3.4.1-spamd.conf-r1" spamd
 
-       systemd_newunit "${FILESDIR}/${PN}.service-r3" "${PN}.service"
-       systemd_install_serviced "${FILESDIR}/${PN}.service.conf-r1" \
+       systemd_newunit "${FILESDIR}/${PN}.service-r4" "${PN}.service"
+       systemd_install_serviced "${FILESDIR}/${PN}.service.conf-r2" \
                                                         "${PN}.service"
 
        use postgres && dodoc sql/*_pg.sql
@@ -243,7 +243,9 @@ pkg_postinst() {
        elog
 
        ewarn 'If this version of SpamAssassin causes permissions issues'
-       ewarn 'with your user configurations or bayes databases, you may'
-       ewarn 'need to set SPAMD_RUN_AS_ROOT=true in your OpenRC service'
+       ewarn 'with your user configurations or bayes databases, then you'
+       ewarn 'may need to set SPAMD_RUN_AS_ROOT=true in your OpenRC service'
+       ewarn 'configuration file, or remove the --username and --groupname'
+       ewarn 'flags from the SPAMD_OPTS variable in your systemd service'
        ewarn 'configuration file.'
 }

Reply via email to