Control: tag -1 -moreinfo

On 09.03.19 12:26, Jonathan Wiltshire wrote:
Control: tag -1 confirmed moreinfo

On Fri, Mar 08, 2019 at 09:35:29PM +0100, Micha Lenk wrote:
Because of the included cosmetic changes, the package isn't uploadede to
unstable yet. It is currently only available on mentors.d.n as
https://mentors.debian.net/debian/pool/main/s/smcroute/smcroute_2.4.2-4.dsc

Please go ahead and remove the moreinfo tag when it is ready to unblock.

I've just uploaded smcroute 2.4.2-4 to unstable, so I consider it ready to unblock.

I should mention that compared to the initial debdiff I've amended only the debian/changelog to include also the missing "closes: #924044". You can find the updated debdiff attached to this mail.

Kind regards,
Micha
diff -Nru smcroute-2.4.2/debian/changelog smcroute-2.4.2/debian/changelog
--- smcroute-2.4.2/debian/changelog	2018-09-23 22:40:04.000000000 +0200
+++ smcroute-2.4.2/debian/changelog	2019-03-07 06:40:19.000000000 +0100
@@ -1,3 +1,17 @@
+smcroute (2.4.2-4) unstable; urgency=medium
+
+  * Import upstream fix for malfunctioning 'stop' command to init script,
+    closes: #924044
+  * Import upstream fix to allow same outbound interface as inbound when
+    routing.  This is slightly hairy, but previous releases of SMCRoute
+    supported this and the unit tests rely on this to work
+  * Fix unit tests, with upstream and test setup fixes, closes: #921577
+  * Bump Standards-Version to 4.3.0, no changes needed
+  * Use debhelper maintscript to relocate old /etc/startup.sh script
+    to /etc/smcroute.  Fixes an outstanding lintian warning
+
+ -- Joachim Nilsson <troglo...@gmail.com>  Thu, 07 Mar 2019 06:40:19 +0100
+
 smcroute (2.4.2-3) unstable; urgency=medium
 
   * Add missing Build-Depends for systemd, needed for unit file path
diff -Nru smcroute-2.4.2/debian/control smcroute-2.4.2/debian/control
--- smcroute-2.4.2/debian/control	2018-09-21 21:54:23.000000000 +0200
+++ smcroute-2.4.2/debian/control	2019-03-07 06:40:19.000000000 +0100
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Joachim Nilsson <troglo...@gmail.com>
 Build-Depends: debhelper (>= 10), libcap-dev, systemd, pkg-config
-Standards-Version: 4.2.1
+Standards-Version: 4.3.0
 Homepage: http://troglobit.com/smcroute.html
 Vcs-Browser: https://salsa.debian.org/debian/smcroute
 Vcs-Git: https://salsa.debian.org/debian/smcroute.git
diff -Nru smcroute-2.4.2/debian/gitlab-ci.yml smcroute-2.4.2/debian/gitlab-ci.yml
--- smcroute-2.4.2/debian/gitlab-ci.yml	1970-01-01 01:00:00.000000000 +0100
+++ smcroute-2.4.2/debian/gitlab-ci.yml	2019-03-07 06:40:19.000000000 +0100
@@ -0,0 +1,9 @@
+image: registry.salsa.debian.org/salsa-ci-team/ci-image-git-buildpackage:latest
+
+build:
+  artifacts:
+    paths:
+    - "*.deb"
+    expire_in: 1 day
+  script:
+    - gitlab-ci-git-buildpackage-all
diff -Nru smcroute-2.4.2/debian/patches/0004-Allow-same-outbound-interface-as-inbound.patch smcroute-2.4.2/debian/patches/0004-Allow-same-outbound-interface-as-inbound.patch
--- smcroute-2.4.2/debian/patches/0004-Allow-same-outbound-interface-as-inbound.patch	1970-01-01 01:00:00.000000000 +0100
+++ smcroute-2.4.2/debian/patches/0004-Allow-same-outbound-interface-as-inbound.patch	2019-03-07 06:40:19.000000000 +0100
@@ -0,0 +1,96 @@
+commit 802d82eb5c571afe2a294fd302745bf37cc13a1d
+Author: Joachim Nilsson <troglo...@gmail.com>
+Date:   Sun Feb 10 13:56:17 2019 +0100
+
+    Allow same outbound interface as inbound, only warn user
+    
+    Routing back multicast to the same interface it ingressed on is
+    quite a bit dangerous, but there may be use-cases where this is
+    a requirement so we should not artificially limit the user.
+    
+    Also, allowing this means enabling unit testing on systems with
+    only one interface.
+    
+    Signed-off-by: Joachim Nilsson <troglo...@gmail.com>
+
+diff --git a/src/conf.c b/src/conf.c
+index 974871a..d1fbeed 100644
+--- a/src/conf.c
++++ b/src/conf.c
+@@ -31,6 +31,8 @@
+ #define MAX_LINE_LEN 512
+ #define DEBUG(fmt, args...)			\
+ 	smclog(LOG_DEBUG, "%s:%02d: " fmt, conf, lineno, ##args)
++#define INFO(fmt, args...)			\
++	smclog(LOG_INFO, "%s:%02d: " fmt, conf, lineno, ##args)
+ #define WARN(fmt, args...)			\
+ 	smclog(LOG_WARNING, "%s:%02d: " fmt, conf, lineno, ##args)
+ 
+@@ -166,13 +168,9 @@ static int add_mroute(int lineno, char *ifname, char *group, char *source, char
+ 				iface_match_init(&state_out);
+ 				while ((mif = iface_match_mif_by_name(outbound[i], &state_out, &iface)) >= 0) {
+ 					if (mif == mroute.inbound) {
+-						state_out.match_count--;
+-						/* In case of wildcard matches, in==out is
+-						 * quite normal, so don't complain
+-						 */
++						/* In case of wildcard match in==out is normal, so don't complain */
+ 						if (!ifname_is_wildcard(ifname) && !ifname_is_wildcard(outbound[i]))
+-							WARN("Same outbound IPv6 interface (%s) as inbound (%s)?", outbound[i], ifname);
+-						continue;
++							INFO("Same outbound IPv6 interface (%s) as inbound (%s) may cause routing loops.", outbound[i], ifname);
+ 					}
+ 
+ 					/* Use a TTL threshold to indicate the list of outbound interfaces. */
+@@ -237,13 +235,9 @@ static int add_mroute(int lineno, char *ifname, char *group, char *source, char
+ 			iface_match_init(&state_out);
+ 			while ((vif = iface_match_vif_by_name(outbound[i], &state_out, &iface)) >= 0) {
+ 				if (vif == mroute.inbound) {
+-					state_out.match_count--;
++					/* In case of wildcard match in==out is normal, so don't complain */
+ 					if (!ifname_is_wildcard(ifname) && !ifname_is_wildcard(outbound[i]))
+-						/* In case of wildcard matches, in==out is
+-						 * quite normal, so don't complain
+-						 */
+-						WARN("Same outbound IPv4 interface (%s) as inbound (%s)?", outbound[i], ifname);
+-					continue;
++						INFO("Same outbound IPv4 interface (%s) as inbound (%s) may cause routing loops.", outbound[i], ifname);
+ 				}
+ 
+ 				/* Use a TTL threshold to indicate the list of outbound interfaces. */
+diff --git a/src/msg.c b/src/msg.c
+index ea3f03b..1dcb459 100644
+--- a/src/msg.c
++++ b/src/msg.c
+@@ -179,13 +179,9 @@ static int do_mroute4(struct ipc_msg *msg)
+ 				iface_match_init(&state_out);
+ 				while ((vif = iface_match_vif_by_name(ifname_out, &state_out, NULL)) >= 0) {
+ 					if (vif == mroute.inbound) {
+-						state_out.match_count--;
+-						/* In case of wildcard matches, in==out is
+-						 * quite normal, so don't complain
+-						 */
++						/* In case of wildcard match in==out is normal, so don't complain */
+ 						if (!ifname_is_wildcard(ifname_in) && !ifname_is_wildcard(ifname_out) && !errmsg++)
+-							smclog(LOG_WARNING, "Same outbound interface (%s) as inbound (%s)?", ifname_out, ifname_in);
+-						continue;
++							smclog(LOG_WARNING, "Same outbound interface (%s) as inbound (%s) may cause routing loops.", ifname_out, ifname_in);
+ 					}
+ 					mroute.ttl[vif] = 1;	/* Use a TTL threshold */
+ 					total++;
+@@ -267,13 +263,9 @@ static int do_mroute6(struct ipc_msg *msg)
+ 				iface_match_init(&state_out);
+ 				while ((mif = iface_match_mif_by_name(ifname_out, &state_out, NULL)) >= 0) {
+ 					if (mif == mroute.inbound) {
+-						state_out.match_count--;
+-						/* In case of wildcard matches, in==out is
+-						 * quite normal, so don't complain
+-						 */
++						/* In case of wildcard match in==out is normal, so don't complain */
+ 						if (!ifname_is_wildcard(ifname_in) && !ifname_is_wildcard(ifname_out) && !errmsg++)
+-							smclog(LOG_WARNING, "Same outbound interface (%s) as inbound (%s)?", ifname_out, ifname_in);
+-						continue;
++							smclog(LOG_INFO, "Same outbound interface (%s) as inbound (%s) may cause routing loops.", ifname_out, ifname_in);
+ 					}
+ 					mroute.ttl[mif] = 1;	/* Use a TTL threshold */
+ 					total++;
diff -Nru smcroute-2.4.2/debian/patches/0005-fix-init-script-stop-command.patch smcroute-2.4.2/debian/patches/0005-fix-init-script-stop-command.patch
--- smcroute-2.4.2/debian/patches/0005-fix-init-script-stop-command.patch	1970-01-01 01:00:00.000000000 +0100
+++ smcroute-2.4.2/debian/patches/0005-fix-init-script-stop-command.patch	2019-03-07 06:40:19.000000000 +0100
@@ -0,0 +1,29 @@
+commit 6f4e2c1ce8e0f6821e5254000ed43a4fd7744782
+Author: hn <h...@users.noreply.github.com>
+Date:   Mon Jan 28 09:56:33 2019 +0100
+
+    fix init script 'stop' command
+
+diff --git a/smcroute.init b/smcroute.init
+old mode 100644
+new mode 100755
+index 00411b8..d0c7752
+--- a/smcroute.init
++++ b/smcroute.init
+@@ -18,6 +18,7 @@
+ 
+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+ DAEMON=/usr/sbin/smcrouted
++DAEMONCTL=/usr/sbin/smcroutectl
+ DAEMON_OPTS=
+ NAME=smcrouted
+ DESC="static multicast router daemon"
+@@ -50,7 +51,7 @@ stop() {
+ 	local error
+ 	local result
+ 	log_begin_msg "Stopping $DESC: $NAME"
+-	error=$($DAEMON -k 2>&1)
++	error=$($DAEMONCTL kill 2>&1)
+ 	result=$?
+ 	log_progress_msg ${error#ERRO: }
+ 	log_end_msg $result
diff -Nru smcroute-2.4.2/debian/patches/series smcroute-2.4.2/debian/patches/series
--- smcroute-2.4.2/debian/patches/series	2018-09-23 20:57:23.000000000 +0200
+++ smcroute-2.4.2/debian/patches/series	2019-03-07 06:40:19.000000000 +0100
@@ -1,3 +1,5 @@
 0001-Minor-fix-spelling-found-by-lintian.patch
 0002-Add-missing-status-command-to-SysV-init-script-found.patch
 0003-Fix-too-long-unbreakable-line.patch
+0004-Allow-same-outbound-interface-as-inbound.patch
+0005-fix-init-script-stop-command.patch
diff -Nru smcroute-2.4.2/debian/smcroute.maintscript smcroute-2.4.2/debian/smcroute.maintscript
--- smcroute-2.4.2/debian/smcroute.maintscript	1970-01-01 01:00:00.000000000 +0100
+++ smcroute-2.4.2/debian/smcroute.maintscript	2019-03-07 06:40:19.000000000 +0100
@@ -0,0 +1 @@
+mv_conffile /etc/startup.sh /etc/smcroute/startup.sh 2.0.0-4
diff -Nru smcroute-2.4.2/debian/smcroute.postinst smcroute-2.4.2/debian/smcroute.postinst
--- smcroute-2.4.2/debian/smcroute.postinst	2018-09-12 22:10:12.000000000 +0200
+++ smcroute-2.4.2/debian/smcroute.postinst	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-#! /bin/sh
-set -e
-
-if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then
-    dpkg-maintscript-helper mv_conffile /etc/startup.sh /etc/smcroute/startup.sh 2.0.0-4 -- "$@"
-fi
-
-#DEBHELPER#
diff -Nru smcroute-2.4.2/debian/smcroute.postrm smcroute-2.4.2/debian/smcroute.postrm
--- smcroute-2.4.2/debian/smcroute.postrm	2018-09-12 22:10:12.000000000 +0200
+++ smcroute-2.4.2/debian/smcroute.postrm	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-#! /bin/sh
-set -e
-
-if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then
-    dpkg-maintscript-helper mv_conffile /etc/startup.sh /etc/smcroute/startup.sh 2.0.0-4 -- "$@"
-fi
-
-#DEBHELPER#
diff -Nru smcroute-2.4.2/debian/smcroute.preinst smcroute-2.4.2/debian/smcroute.preinst
--- smcroute-2.4.2/debian/smcroute.preinst	2018-09-12 22:10:12.000000000 +0200
+++ smcroute-2.4.2/debian/smcroute.preinst	1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-#! /bin/sh
-set -e
-
-if dpkg-maintscript-helper supports mv_conffile 2>/dev/null; then
-    dpkg-maintscript-helper mv_conffile /etc/startup.sh /etc/smcroute/startup.sh 2.0.0-4 -- "$@"
-fi
-
-#DEBHELPER#
diff -Nru smcroute-2.4.2/debian/tests/daemon-init-scripts smcroute-2.4.2/debian/tests/daemon-init-scripts
--- smcroute-2.4.2/debian/tests/daemon-init-scripts	2018-09-12 22:10:12.000000000 +0200
+++ smcroute-2.4.2/debian/tests/daemon-init-scripts	2019-03-07 06:40:19.000000000 +0100
@@ -8,7 +8,11 @@
     INIT_SCRIPT => '/etc/init.d/smcroute',
 };
 
-plan tests => 10;
+plan tests => 11;
+
+# Work around test harness, start smcrouted if not already running
+my $startup = capture EXIT_ANY, INIT_SCRIPT, 'start';
+pass($startup);
 
 # Verify that smcroute is running
 my $initial_smcroute_pid = capture EXIT_ANY, 'pgrep', 'smcroute'; chomp $initial_smcroute_pid;

Reply via email to