[opensuse-packaging] Move /etc/init.d hierachy to own RPM
Hi, All packages from my default installation are now free of init.d scripts/insserv usage (at least when the last package maintainers accept and/or submit their packages to Factory finally). I would like to use this opportunity to set an example and make it visible to people, that systemd is the default and init scripts are legacy, deprecated and should be converted to systemd units. Why? If you install a system, you will not have insserv or other tools to activate and run init scripts installed by default anymore. But there is still the /etc/init.d hierachy. So I would like to move that directories to an own RPM, prefereable "insserv-compat". Why "insserv-compat"? And what does this mean for existing packages? - packages having correct insserv requires will not notice this - packages with broken insserv requires, but which builds currently by accident, will continue to build by accident. - packages messing up with their requires and currently don't build, will continue to not build until somebody fixes them. But this is completly independent of this change - rpm will fail to build until either somebody converted rpmconfigcheck to a systemd unit file or we drop it. Opinions? Objections? If nobody has good reasons against this, I will make this change in 2-3 weeks. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & CaaSP SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday, 17 March 2017 8:35 Thorsten Kukuk wrote:
So I would like to move that directories to an own RPM, prefereable "insserv-compat". Why "insserv-compat"? And what does this mean for existing packages?
- packages having correct insserv requires will not notice this - packages with broken insserv requires, but which builds currently by accident, will continue to build by accident.
Is it documented somewhere what exactly are "correct insserv requires"? Just few weeks ago I had to add "Requires(pre): %{insserv_prereq}" to make some of my packages build again. Should I remove the "(pre)" part to make sure it keeps working after the change you plan? Or should I add something else? Michal Kubeček -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Mar 17, Michal Kubecek wrote:
On Friday, 17 March 2017 8:35 Thorsten Kukuk wrote:
So I would like to move that directories to an own RPM, prefereable "insserv-compat". Why "insserv-compat"? And what does this mean for existing packages?
- packages having correct insserv requires will not notice this - packages with broken insserv requires, but which builds currently by accident, will continue to build by accident.
Is it documented somewhere what exactly are "correct insserv requires"?
Yes, it is: https://en.opensuse.org/openSUSE:Packaging_init_scripts
Just few weeks ago I had to add "Requires(pre): %{insserv_prereq}" to make some of my packages build again. Should I remove the "(pre)" part to make sure it keeps working after the change you plan? Or should I add something else?
The correct Requires depends on, in which pre/post install sections you are calling insserv. But normally, "Requires(pre)" is correct and "Requires:" is wrong. Because you use insserv already in a %pre* section, so insserv needs to be installed before your package will be installed. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & CaaSP SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday, 17 March 2017 9:55 Thorsten Kukuk wrote:
The correct Requires depends on, in which pre/post install sections you are calling insserv. But normally, "Requires(pre)" is correct and "Requires:" is wrong. Because you use insserv already in a %pre* section, so insserv needs to be installed before your package will be installed.
Would that also prevent anything included in %{insserv_prereq} from being uninstalled after I install my package? My understanding of your earlier mail was that after your change, it is responsibility of any package with init scripts to make sure at least insserv-compat is installed whenever my package is installed. Michal Kubeček -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Mar 17, Michal Kubecek wrote:
On Friday, 17 March 2017 9:55 Thorsten Kukuk wrote:
The correct Requires depends on, in which pre/post install sections you are calling insserv. But normally, "Requires(pre)" is correct and "Requires:" is wrong. Because you use insserv already in a %pre* section, so insserv needs to be installed before your package will be installed.
Would that also prevent anything included in %{insserv_prereq} from being uninstalled after I install my package? My understanding of your earlier mail was that after your change, it is responsibility of any package with init scripts to make sure at least insserv-compat is installed whenever my package is installed.
It is the responsibility of any package calling packages in pre/post install sections that they are installed. Independent of if this is insserv or any other tool. That's the case since SUSE supports pre/post install scripts. So packages calling insserv in there pre/post install section and not making sure that it is installed are buggy and did only work by accident in the past, because other, correct packages did install it. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & CaaSP SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday, 17 March 2017 10:22 Thorsten Kukuk wrote:
On Fri, Mar 17, Michal Kubecek wrote:
On Friday, 17 March 2017 9:55 Thorsten Kukuk wrote:
The correct Requires depends on, in which pre/post install sections you are calling insserv. But normally, "Requires(pre)" is correct and "Requires:" is wrong. Because you use insserv already in a %pre* section, so insserv needs to be installed before your package will be installed.
Would that also prevent anything included in %{insserv_prereq} from being uninstalled after I install my package? My understanding of your earlier mail was that after your change, it is responsibility of any package with init scripts to make sure at least insserv-compat is installed whenever my package is installed.
It is the responsibility of any package calling packages in pre/post install sections that they are installed. Independent of if this is insserv or any other tool. That's the case since SUSE supports pre/post install scripts.
So packages calling insserv in there pre/post install section and not making sure that it is installed are buggy and did only work by accident in the past, because other, correct packages did install it.
I guess I wasn't clear enough earlier. I understand why having the dependency "Requires(pre): %{insserv_prereq}" is _needed_. My question rather is if it is going to be _sufficient_ even after /etc/init.d becomes part of insserv-compat and is no longer automatically present. There is a check that unless a directory under which my package installs files is one of the "known to be always there", it should be either in my package or in one of its Requires. Michal Kubeček -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Mar 17, Michal Kubecek wrote:
I guess I wasn't clear enough earlier. I understand why having the dependency "Requires(pre): %{insserv_prereq}" is _needed_. My question rather is if it is going to be _sufficient_ even after /etc/init.d becomes part of insserv-compat and is no longer automatically present.
As I wrote: if you have the correct Requires and your package installs/runs without error, there is nothing you need to change. So, yes, Requires(pre) is sufficient and you don't need to add a second Requires. That wouldn't make any sense. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & CaaSP SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday, 17 March 2017 10:56 Thorsten Kukuk wrote:
As I wrote: if you have the correct Requires and your package installs/runs without error, there is nothing you need to change.
So, yes, Requires(pre) is sufficient and you don't need to add a second Requires. That wouldn't make any sense.
Thank you. Michal Kubeček -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, 2017-03-17 at 10:52 +0100, Michal Kubecek wrote:
I guess I wasn't clear enough earlier. I understand why having the dependency "Requires(pre): %{insserv_prereq}" is _needed_. My question rather is if it is going to be _sufficient_ even after /etc/init.d becomes part of insserv-compat and is no longer automatically present.
There is a check that unless a directory under which my package installs files is one of the "known to be always there", it should be either in my package or in one of its Requires.
It will be fine - Requires(pre) is also a Requires..
and %{insserv_prereq} translates to:
rpm -E %{insserv_prereq}
insserv sed
of which insserv is provided by:
rpm -q --whatprovides insserv
insserv-compat-0.1-17.93.noarch
So, with Requires(pre): %insserv-prereq you are fine.
(and you can't uninstall insserv-compat if some package has a
Requires(pre) on it)
cheers,
Dominique
--
Dimstar / Dominique Leuenberger
On vendredi, 17 mars 2017 08.35:23 h CET Thorsten Kukuk wrote:
Hi,
All packages from my default installation are now free of init.d scripts/insserv usage (at least when the last package maintainers accept and/or submit their packages to Factory finally).
I would like to use this opportunity to set an example and make it visible to people, that systemd is the default and init scripts are legacy, deprecated and should be converted to systemd units.
Why? If you install a system, you will not have insserv or other tools to activate and run init scripts installed by default anymore. But there is still the /etc/init.d hierachy.
So I would like to move that directories to an own RPM, prefereable "insserv-compat". Why "insserv-compat"? And what does this mean for existing packages?
- packages having correct insserv requires will not notice this - packages with broken insserv requires, but which builds currently by accident, will continue to build by accident. - packages messing up with their requires and currently don't build, will continue to not build until somebody fixes them. But this is completly independent of this change - rpm will fail to build until either somebody converted rpmconfigcheck to a systemd unit file or we drop it.
Opinions? Objections?
If nobody has good reasons against this, I will make this change in 2-3 weeks.
Thorsten
I still this those from my standard installation pov ;-) cifs-utils-6.5-2.1.x86_64 php5-fpm ( but this one has a working php5-fpm.service, seems a packaging bugs) postgresql (I've personnal working pg{VERS}.services once the db is created) But this can be handled in house ;-) novell-ipsec-tools ( racoond ) vboxes and vboxdrv from virtualbox (Larry should receive help to move this to proper systemd services) -- Bruno Friedmann Ioda-Net Sàrl www.ioda-net.ch Bareos Partner, openSUSE Member, fsfe fellowship GPG KEY : D5C9B751C4653227 irc: tigerfoot -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Mar 17, Bruno Friedmann wrote:
I still this those from my standard installation pov ;-)
cifs-utils-6.5-2.1.x86_64
As I wrote, some package maintainer finally need to submit their packages to Factory :(
php5-fpm ( but this one has a working php5-fpm.service, seems a packaging bugs)
postgresql (I've personnal working pg{VERS}.services once the db is created) But this can be handled in house ;-)
novell-ipsec-tools ( racoond )
vboxes and vboxdrv from virtualbox (Larry should receive help to move this to proper systemd services)
This are all not default packages. And yes, some people still need to convert their packages. But my change will not break this packages, it will only be more visible that some people still have to do some work. Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SLES & CaaSP SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Bruno Friedmann
-
Dimstar / Dominique Leuenberger
-
Michal Kubecek
-
Thorsten Kukuk