Bug 656911 - provide native spamd.service systemd file
provide native spamd.service systemd file
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: spamassassin (Show other bugs)
rawhide
Unspecified Unspecified
low Severity medium
: ---
: ---
Assigned To: Nick Bebout
Fedora Extras Quality Assurance
:
Depends On:
Blocks: SysVtoSystemd
  Show dependency treegraph
 
Reported: 2010-11-24 09:20 EST by Tomasz Torcz
Modified: 2012-01-20 15:37 EST (History)
7 users (show)

See Also:
Fixed In Version: spamassassin-3.3.2-7.fc16
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-09-24 23:29:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
spamassassin.service native systemd file (250 bytes, text/plain)
2010-11-24 09:20 EST, Tomasz Torcz
no flags Details
Native systemd service file that actually works (329 bytes, text/plain)
2011-07-14 15:48 EDT, Jóhann B. Guðmundsson
no flags Details
Spec file patch (1.85 KB, patch)
2011-07-14 15:49 EDT, Jóhann B. Guðmundsson
no flags Details | Diff

  None (edit)
Description Tomasz Torcz 2010-11-24 09:20:50 EST
Created attachment 462638 [details]
spamassassin.service native systemd file

The attached file is a native systemd file for upcoming F15 Feature [1]

Please read [2] on how to installing systemd Service files.

1.http://fedoraproject.org/wiki/Features/systemd
2.https://fedoraproject.org/wiki/User:Johannbg/QA/Systemd/Daemon#Installing_Systemd_Service_Files

If you have any question don't hesitate to ask them on this bug report.

Notes:
1) for optimal performance, please remove “-d” from SPAMDOPTIONS in /etc/sysconfig/spamassassin

2) portreserve call should be removed, instead spamd should be ported to be socket-activated

3) it would be nice to convert sa-update cron-job to .timer type unit (man systemd.timer).
Comment 1 Warren Togami 2011-03-08 18:54:15 EST
1) How does removing -d improve performance?

2) What distributions support socket-activated?  Since what version of Fedora/RHEL?

3) Sure, but it should be done as a boolean so it uses cron in older distros, systemd in F15+.
Comment 2 Warren Togami 2011-03-08 18:55:53 EST
Description=Spamassassin's spamd

Perhaps change this to:
Description=Spamassassin daemon
?
Comment 3 Tomasz Torcz 2011-03-09 09:46:39 EST
Yes, change in descriptionis preferable. As for other questions:

1) -d gives two things: first, on fork() is eliminated from daemon startup; second, systemd do not have to guess which process is main spamd process. So it can effectively difference between main process and child processes, and restart service only when main process dies for some reason. 
(systemd is quite good at guessing but not having to guess is better)

Alternatively, "-d" can be moved from sysconfig file into init.d script (and left out of systemd unit definition). 

2) This is tied to systemd, so F14 (technical preview).
As far as I know there are only few daemons implementing sock-act right know: dbus, avahi, beanstalkd, rsyslog.
Comment 5 Jóhann B. Guðmundsson 2011-07-14 15:48:06 EDT
Created attachment 513251 [details]
Native systemd service file that actually works
Comment 6 Jóhann B. Guðmundsson 2011-07-14 15:49:10 EDT
Created attachment 513252 [details]
Spec file patch
Comment 7 Jóhann B. Guðmundsson 2011-07-14 15:50:04 EDT
If you dont have time to package this make note of that on this report and I see if I cant find a proven packager to do it for you.
Comment 8 Warren Togami 2011-07-14 16:04:36 EDT
Thank you for your input.  The spec patch must be reworked to use %if booleans to support sysv or systemd depending on which distro it is built upon.  nb said he would work on this conversion earlier.

And no, we will not put the sysv stuff into an optional subpackage.
Comment 9 Jóhann B. Guðmundsson 2011-07-14 16:17:15 EDT
If you want, for a single Fedora release, to provide both a sysv initscript and a systemd unit file, the sysv stuff must be in a subpackage some maintainers do for whatever weird reason but the majority drops the legacy sysv initscrip once they ship a native systemd unit file and as you can clearly see in the spec file I remove the legacy sysv init script anyway just use the patch as a template for whatever you end up doing..
Comment 10 Warren Togami 2011-07-14 19:19:07 EDT
Subpackage will not happen.  It is clear how this should be done to be either sysv or systemd.  nb said he would do this.  If he doesn't, then please inform me and I will.
Comment 11 Fedora Update System 2011-08-13 20:30:40 EDT
spamassassin-3.3.2-4.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-4.fc16
Comment 12 Fedora Update System 2011-08-15 16:24:42 EDT
Package spamassassin-3.3.2-4.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing spamassassin-3.3.2-4.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-4.fc16
then log in and leave karma (feedback).
Comment 13 Jóhann B. Guðmundsson 2011-08-15 16:53:23 EDT
This update fails to meet the packaging guidelines the legacy sysv init script should be dropped or packaged separably. 

Please read 

https://fedoraproject.org/wiki/Packaging:Guidelines:Systemd
https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd
https://fedoraproject.org/wiki/Packaging:Tmpfiles.d

Thank you..
Comment 14 Warren Togami 2011-08-15 23:48:42 EDT
spamassassin will not split into multiple sub-packages.

This .src.rpm is designed to output sysv *or* systemd depending on the target OS it is built upon.  This is meant as the easiest way to maintain spamassassin across RHEL5, RHEL6 and the latest Fedora releases simultaneously.

The packaging guidelines should be ignored if they demand complete removal of sysv from the .src.rpm.  The .src.rpm containing sysv has nothing to do with the F16+ binary rpm that lacks sysv scripts.
Comment 15 Jóhann B. Guðmundsson 2011-08-16 02:18:28 EDT
(In reply to comment #14)
> spamassassin will not split into multiple sub-packages.
> 
> This .src.rpm is designed to output sysv *or* systemd depending on the target
> OS it is built upon.  This is meant as the easiest way to maintain spamassassin
> across RHEL5, RHEL6 and the latest Fedora releases simultaneously.

Understood I was aware that some were doing that. 

What got me confused was the presence of the legacy sysv init script in the package http://koji.fedoraproject.org/koji/rpminfo?rpmID=2656173

I cant recall packages for those going down the same or similar path as you actually containing the legacy sysv init script after the rpm has been built 

I will test install this on an F16 to see if that is actually is the case ( as in the legacy sysv script getting installed )

> The packaging guidelines should be ignored if they demand complete removal of
> sysv from the .src.rpm.  The .src.rpm containing sysv has nothing to do with
> the F16+ binary rpm that lacks sysv scripts.

Afaik the guidelines only say that you should not install both so that's what I look for. 

Personally I fail to understand/see the purpose of why some choose to ship the legacy sysv init script in a subpackage since you cant fall back to using upstart et all and the path you have chosen is the only logical way if you are maintaining packages and need to support both the legacy init script and the native systemd simultaneously for RHEL and Fedora.

Also now that you ship native systemd units you should be able to drop the requirements for portreserve see bug 617331 for details ( + Tim was planning on deprecating it )
Comment 16 Warren Togami 2011-08-16 04:06:04 EDT
If the binary rpm contains both, that is indeed incorrect, and it should be fixed.
Comment 17 Fedora Update System 2011-09-08 22:25:41 EDT
spamassassin-3.3.2-6.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-6.fc15
Comment 18 Fedora Update System 2011-09-08 22:25:50 EDT
spamassassin-3.3.2-6.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-6.fc14
Comment 19 Fedora Update System 2011-09-08 22:25:57 EDT
spamassassin-3.3.2-6.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-6.fc16
Comment 20 Sammy 2011-09-12 09:13:19 EDT
This has broken spamassasin start process. I cannot start spamassasin via
systemd. I get the following in /var/log/messages:

========================================================
Sep 12 08:01:23 compsci systemd[1]: spamassassin.service: main process exited, code=exited, status=64
Sep 12 08:01:24 compsci systemd[1]: spamassassin.service holdoff time over, scheduling restart.
Sep 12 08:01:24 compsci systemd[1]: Unit spamassassin.service entered failed state.
Sep 12 08:01:24 compsci systemd[1]: Cannot add dependency job for unit mdmonitor-takeover.service, ignoring: Unit mdmonitor-takeover.service failed to load: No such file or directory. See system logs and 'systemctl status mdmonitor-takeover.service' for details.
==========================================================

Very serious since the mailboxes filled with spam since the yum upgrade to -6.
Comment 21 Nick Bebout 2011-09-12 20:45:44 EDT
What version?  Fedora 14, 15, or 16?  14 and 15 should not be affected.
Comment 22 Sammy 2011-09-12 21:03:26 EDT
It is Fedora 15. -6 versiiom is giving the above error.
Version -4 works fine.
Comment 23 Nick Bebout 2011-09-12 21:03:26 EDT
OK, I figured out what was going on.  Apparently I made a typo in my spec file and told it to use the systemd unit file for >= 15 instead of >= 16, and the first systemd unit file that was provided to me actually didn't work, I'm building -7 now, which uses sysvinit for 15, per policy, and has a working unit file for 16 and rawhide.
Comment 24 Fedora Update System 2011-09-12 21:05:07 EDT
spamassassin-3.3.2-7.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-7.fc14
Comment 25 Fedora Update System 2011-09-12 21:05:15 EDT
spamassassin-3.3.2-7.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-7.fc15
Comment 26 Fedora Update System 2011-09-12 21:05:24 EDT
spamassassin-3.3.2-7.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/spamassassin-3.3.2-7.fc16
Comment 27 Fedora Update System 2011-09-24 23:29:38 EDT
spamassassin-3.3.2-7.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 28 Fedora Update System 2011-09-24 23:33:48 EDT
spamassassin-3.3.2-7.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 29 Fedora Update System 2011-09-30 14:44:21 EDT
spamassassin-3.3.2-7.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 30 kevin martin 2012-01-20 15:34:41 EST
As of today, running F16, I can find *no* spam anything systemd service to start/stop.  I have installed the following:


spamassassin-3.3.2-7.fc16.x86_64
spamass-milter-0.3.2-4.fc16.x86_64


but have no way to start spamd.  Please fix!
Comment 31 kevin martin 2012-01-20 15:37:14 EST
my apologies.  systemctl list-units didn't display the service as being available.  however, systemctl enable spamassassin.service enables it.

Note You need to log in before you can comment on or make changes to this bug.