I got this idea when discussing FESCo ticket 806:
Some FESCo members feel that "service iptables save" and similar non-standard initscript actions ought to remain supported because of the long tradition and the amount of existing documentation.
Though it is technically possible today to keep the non-standard actions working, it would require the packages to keep shipping a script in /etc/rc.d/init.d, which is:
- confusing when there's already a native systemd unit
- against the currently accepted packaging guidelines
- somewhat likely to uncover bugs in the coexistence of both a SysV initscript
and a native systemd unit for the same thing.
My proposal is for /sbin/service to gain explicit support for non-standard actions. It could look like this for example:
initscript would provide a directory /usr/lib/initscripts/legacy-actions/.
The iptables package would ship two executable scripts implementing one non-standard action each:
When the user runs "service iptables save", /sbin/service would locate the former script and run it.
(The scripts should print a message telling the user that they're using a legacy command and what the newly preferred command is. Then they would proceed with the useful action itself.)
Separating the actions into distinct script should make this layout friendly to programmable bash-completion.
I'm not sure I really like this, given that the entire point of the bits in /sbin/service was to transparently redirect to the old script for unhandled actions.
I'd like to avoid shipping files under /etc/init.d in perpetuity.
If we decide that the files can stay there for a limited number of releases only as a transition period, I'm fine with it.
But if "service iptables save" and similar commands should remain supported perpetually, then I'd really prefer moving the implementations somewhere else.
(with slight modifications - s|/usr/lib|/usr/libexec|)
This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.
This got implemented a long time ago.