Am 30.07.2016 um 19:52 schrieb Felipe Sateler: > On 29 July 2016 at 17:05, Michael Biebl <bi...@debian.org> wrote: >> Am 29.07.2016 um 22:44 schrieb Michael Biebl: >>> Package: init-system-helpers >>> Version: 1.41 >>> Severity: serious >>> >>> Running >>> update-rc.d foo disable >>> update-rc.d foo defaults >>> will create start symlinks although this should not happen for a >>> disabled service. >> >> This happens when insserv is not installed, so is another regression in >> our fallback code. > > Insserv does not create new links if there are already-existing links > for that runlevel. So I think the fix (untested) would be: > > diff --git a/script/update-rc.d b/script/update-rc.d > index cbf4339..a01ed5e 100755 > --- a/script/update-rc.d > +++ b/script/update-rc.d > @@ -116,15 +116,15 @@ sub make_sysv_links { > my ($lsb_start_ref, $lsb_stop_ref) = > parse_def_start_stop("/etc/init.d/$scriptname"); > foreach my $lvl (@$lsb_start_ref) { > make_path("/etc/rc$lvl.d"); > + continue if glob("/etc/rc$lvl.d/[KS]??$scriptname"); > my $l = "/etc/rc$lvl.d/S01$scriptname"; > - unlink($l); > symlink("../init.d/$scriptname", $l); > } > > foreach my $lvl (@$lsb_stop_ref) { > make_path("/etc/rc$lvl.d"); > + continue if glob("/etc/rc$lvl.d/[KS]??$scriptname"); > my $l = "/etc/rc$lvl.d/K01$scriptname"; > - unlink($l); > symlink("../init.d/$scriptname", $l); > } > } > >
I think what insserv does, is to compare the LSB header to what symlinks exist on the disk. If there is a difference, it does nothing at all. Your patch behaves slightly different from what I can see. It does the check per runlevel and not as a whole. Regards, Michael -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
signature.asc
Description: OpenPGP digital signature