Jason L Tibbitts III wrote:
This came up on IRC the other day, and as I'm finishing up the conversion of my packages I realize that I don't know the proper answer.
Packages converting to systemd are mandated by https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd to include a trigger:
%triggerun -- zoneminder < 1.25.0-4
Assume that F16 is at 1.25.0-3.fc16 and F17 is at 1.25.0-4.fc17
Now, there's a caveat that any update to F16 keep a ver-rel less than 1.25.0-4. Which is fine if you just need to tweak the package, since you can use 1.25.0-3.fc16.1.
I don't, however, recall any discussion about what the packager is supposed to do if 1.25.1 comes out (and for fun, assume it fixes a huge security hole and is absolutely essential). What does F16 get? The options seem to me to be:
- Just update F16 to 1.25.1-1.fc16 and deal with the fact that the
trigger doesn't get run.
Update to 1.25.1 but lie and call it 1.25.0 in the rpm version.
Freeze the F16 version at 1.25.0 and ignore bug reports.
The only thing that makes any sense to me (perhaps because this whole trigger and systemd-sysv-convert thing seems entirely pointless) is to just do the first option. Is there anything else to be done? I suppose it should be theoretically possible to do the second option and encode the real package version in the release somehow (1.25.0-3.fc16.1.1.25.1.fc16 or something crazy like that) but that seems even less palatable than just dropping the trigger and requiring admins to do systemctl enable zoneminder.service. Which, not coincidentally, is something they pretty much have to do anyway.
If you don't want to freeze F16 version, then you have to introduce an Epoch into the F17 package. Best to avoid Epoch whenever possible (since you introduce it forever), but in your case you can't really avoid it.
Jamie