]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/core/service.c
core: ensure LSB Provides are handled correctly
authorFrederic Crozat <fcrozat@suse.com>
Thu, 21 Mar 2013 14:40:45 +0000 (15:40 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Mar 2013 16:26:15 +0000 (17:26 +0100)
commitce2c2265376c22c16b4c9bff3ac2d402ddbeda03
treecc943fc8b86650cdbedb2e207308619331f5092b
parent8cc3f8c0bcd23bb68166cb197a4c541d7621b19c
core: ensure LSB Provides are handled correctly

Let's say you have two initscripts, A and B:

A contains in its LSB header:
Required-Start: C

and B contains in its LSB header:
Provides: C

When systemd is parsing /etc/rc.d/, depending on the file order, you
can end up with either:
- B is parsed first. An unit "C.service" will be "created" and will be
added as additional name to B.service, with unit_add_name. No bug.
- A is parsed first. An unit "C.service" is created for the
"Required-Start" dependency (it will have no file attached, since
nothing provides this dependency yet). Then B is parsed and when trying
to handle "Provides: C", unit_add_name is called but will fail, because
"C.service" already exists in manager->units. Therefore, a merge should
occur for that case.
src/core/service.c