Index: InitScriptCheck.py =================================================================== --- InitScriptCheck.py.orig +++ InitScriptCheck.py @@ -50,7 +50,7 @@ class InitScriptCheck(AbstractCheck.Abst return initscript_list = [] - + rclinks = set() # check chkconfig call in %post and %preun postin = pkg[rpm.RPMTAG_POSTIN] or pkg[rpm.RPMTAG_POSTINPROG] @@ -59,6 +59,10 @@ class InitScriptCheck(AbstractCheck.Abst for fname, pkgfile in pkg.files().items(): + if stat.S_ISLNK(pkgfile.mode) and (fname.startswith("/usr/sbin/rc") \ + or fname.startswith("/sbin/rc")): + rclinks.add(fname.partition('/rc')[2]) + if not fname.startswith('/etc/init.d/') and \ not fname.startswith('/etc/rc.d/init.d/'): continue @@ -194,6 +198,12 @@ class InitScriptCheck(AbstractCheck.Abst if not subsys_regex_found: printError(pkg, 'subsys-not-used', fname) + for script in initscript_list: + if script.startswith("rc") or script.startswith("boot."): + continue + if not script in rclinks: + printWarning(pkg, 'suse-missing-rclink', script) + goodnames = (pkg.name.lower(), pkg.name.lower() + 'd') if len(initscript_list) == 1 and initscript_list[0] not in goodnames: printWarning(pkg, 'incoherent-init-script-name', initscript_list[0], @@ -216,6 +226,10 @@ a call to chkconfig.''', '''The package contains an init script but doesn't contain a %preun with a call to chkconfig.''', +'suse-missing-rclink', +'''The package contains an init script with the given name but does not +contain the SUSE policy symlink /usr/sbin/rcFOO -> /etc/init.d/FOO''', + 'preun-without-chkconfig', '''The package contains an init script but doesn't call chkconfig in its %preun script.''',