[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[lintian] 01/01: Don't emit init.d-script-needs-depends-on-lsb-base if the package ships a native Systemd service file. (Closes: #864999)



This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch master
in repository lintian.

commit c32b9949d6226439fd73366ee9b03208dd39395c
Author: Chris Lamb <lamby@debian.org>
Date:   Tue Dec 19 17:46:29 2017 +0000

    Don't emit init.d-script-needs-depends-on-lsb-base if the package ships a native Systemd service file. (Closes: #864999)
---
 checks/init.d.desc                                 |  2 +
 checks/init.d.pm                                   |  5 +-
 debian/changelog                                   |  3 +
 .../init.d-lsb-depends-nonrel/debian/debian/init   | 71 ++++++++++++++++++++++
 .../debian/debian/service                          |  5 ++
 t/tests/init.d-lsb-depends-nonrel/desc             |  5 ++
 t/tests/init.d-lsb-depends-nonrel/tags             |  0
 7 files changed, 89 insertions(+), 2 deletions(-)

diff --git a/checks/init.d.desc b/checks/init.d.desc
index ad7f65e..415fdb2 100644
--- a/checks/init.d.desc
+++ b/checks/init.d.desc
@@ -359,6 +359,8 @@ Severity: important
 Certainty: possible
 Info: The given init script sources the <tt>/lib/lsb/init-functions</tt> utility
  functions without declaring the corresponding dependency on lsb-base.
+ .
+ This dependency is not required for packages that ship a native service file.
 
 Tag: init.d-script-contains-skeleton-template-content
 Severity: important
diff --git a/checks/init.d.pm b/checks/init.d.pm
index 4c90c2e..c5e6edd 100644
--- a/checks/init.d.pm
+++ b/checks/init.d.pm
@@ -325,8 +325,9 @@ sub check_init {
             $tag{$1} = 1;
         }
 
-        if ($l =~ m{^\s*\.\s+/lib/lsb/init-functions}
-            && !$info->relation('strong')->implies('lsb-base')) {
+        if (   $l =~ m{^\s*\.\s+/lib/lsb/init-functions}
+            && !$info->relation('strong')->implies('lsb-base')
+            && none { $_->basename =~ m/\.service$/ } $info->sorted_index) {
             tag 'init.d-script-needs-depends-on-lsb-base',
               $initd_path, "(line $.)";
         }
diff --git a/debian/changelog b/debian/changelog
index a241a7e..f4b666b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,9 @@ lintian (2.5.66) UNRELEASED; urgency=medium
 
   XXX: generate tag summary
 
+  * checks/init.d.{pm,desc}:
+    + [CL] Don't emit init.d-script-needs-depends-on-lsb-base if the
+      package ships a Systemd service file.  (Closes: #864999)
   * checks/pe.{pm,desc}:
     + [CL] Check for Microsoft Windows Portable Executable (PE) files that
       are missing security hardening features. Thanks to Petter
diff --git a/t/tests/init.d-lsb-depends-nonrel/debian/debian/init b/t/tests/init.d-lsb-depends-nonrel/debian/debian/init
new file mode 100644
index 0000000..58e562b
--- /dev/null
+++ b/t/tests/init.d-lsb-depends-nonrel/debian/debian/init
@@ -0,0 +1,71 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:		init.d-lsb-depends-nonrel
+# Required-Start:	$syslog $remote_fs
+# Required-Stop:	$syslog $remote_fs
+# Should-Start:		$local_fs
+# Should-Stop:		$local_fs
+# Default-Start:	2 3 4 5
+# Default-Stop:		0 1 6
+# Short-Description:	init.d-lsb-depends-nonrel
+# Description:		init.d-lsb-depends-nonrel
+### END INIT INFO
+
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/bin/init.d-lsb-depends-nonrel
+NAME=init.d-lsb-depends-nonrel
+DESC=init.d-lsb-depends-nonrel
+
+RUNDIR=/var/run/redis
+PIDFILE=$RUNDIR/init.d-lsb-depends-nonrel.pid
+
+test -x $DAEMON || exit 0
+
+if [ -r /etc/default/$NAME ]
+then
+	. /etc/default/$NAME
+fi
+
+. /lib/lsb/init-functions
+
+set -e
+
+case "$1" in
+  start)
+	echo -n "Starting $DESC: "
+	if start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
+	then
+		echo "$NAME."
+	else
+		echo "failed"
+	fi
+	;;
+  stop)
+	echo -n "Stopping $DESC: "
+	if start-stop-daemon --stop --retry --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
+	then
+		echo "$NAME."
+	else
+		echo "failed"
+	fi
+	rm -f $PIDFILE
+	sleep 1
+	;;
+
+  restart|force-reload)
+	${0} stop
+	${0} start
+	;;
+
+  status)
+	status_of_proc -p ${PIDFILE} ${DAEMON} ${NAME}
+	;;
+
+  *)
+	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/t/tests/init.d-lsb-depends-nonrel/debian/debian/service b/t/tests/init.d-lsb-depends-nonrel/debian/debian/service
new file mode 100644
index 0000000..0ff03df
--- /dev/null
+++ b/t/tests/init.d-lsb-depends-nonrel/debian/debian/service
@@ -0,0 +1,5 @@
+[Unit]
+Documentation=https://example.com/
+
+[Install]
+WantedBy=multi-user.target
diff --git a/t/tests/init.d-lsb-depends-nonrel/desc b/t/tests/init.d-lsb-depends-nonrel/desc
new file mode 100644
index 0000000..109ce52
--- /dev/null
+++ b/t/tests/init.d-lsb-depends-nonrel/desc
@@ -0,0 +1,5 @@
+Testname: init.d-lsb-depends-nonrel
+Version: 1.0
+Description: Test for packages missing dependencies on lsb-base (false positive)
+Test-Against:
+ init.d-script-needs-depends-on-lsb-base
diff --git a/t/tests/init.d-lsb-depends-nonrel/tags b/t/tests/init.d-lsb-depends-nonrel/tags
new file mode 100644
index 0000000..e69de29

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git


Reply to: