Your message dated Sun, 11 Nov 2018 21:08:27 +0000
with message-id <[email protected]>
and subject line
has caused the Debian Bug report #912428,
regarding update-service: handle relative symlinks in
/etc/runit/runsvdir/default
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
912428: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=912428
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: runit
Version: 2.1.2-17
Severity: wishlist
Tags: patch
-- System Information:
Debian Release: buster/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.17.3-van (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
Versions of packages runit depends on:
ii libc6 2.27-8
ii runit-helper 2.7.3
Versions of packages runit recommends:
ii runit-init 2.1.2-17
runit suggests no packages.
-- Configuration Files:
/etc/runit/3 changed [not included]
-- no debconf information
-- debsums errors found:
debsums: changed file /sbin/update-service (from runit package)
Hi Dmitry,
i've have preapred a patch to make update-service handle relative symlinks in
the default runlevel;
You have alredy addressed this with runit-helper 2.7.3, but there is still some
corner case where
update-service fails; moreover i've had a look at the policy and i think that
some fix is needed
also in update-service to make it comply with policy (10.5).
More datails in commit message
>From ea9c33657e48967e7a7aff45b1e70768cc89b828 Mon Sep 17 00:00:00 2001
From: Lorenzo Puliti <[email protected]>
Date: Sun, 17 Jun 2018 14:06:27 +0200
Subject: [PATCH 1/2] Update-service: handle relative symlinks
Debian Policy (10.5) require symlinks whithin a top level directory
to be relative (e.g. symlink made by dh_link in /etc/runit/runsvdir/default/)
In runit /etc/service/ is a symlink itself that points to
/etc/runit/runsvdir/default/ and update-service acts on /etc/service/ .
The consequence is that, in case of relative symlinks, update-service
consider such link invalid since it points one level up the root.
This has already been addressed in runit-helper (2.7.2-->2.7.3),
but there is still some corner case (getty-tty1) where update-service fails.
This patch make update-service handle relative symlinks in the default
runlevel (e.g. when /etc/service/ point to /etc/runit/runsvidir/default);
note that further change will be necessary if runit implements the runlevel
change mechanism (e.g. /etc/service/ points to 'current' instead of 'default').
---
debian/contrib/update-service | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/debian/contrib/update-service b/debian/contrib/update-service
index 7b787e0..36fa5f9 100644
--- a/debian/contrib/update-service
+++ b/debian/contrib/update-service
@@ -3,6 +3,8 @@ set -e
servicedir=$SVDIR
test -n "$servicedir" || servicedir=/etc/service
+# handle relative symlinks, see #899242
+defaultrun=runit/runsvdir/default
err() { >&2 printf '%s\n\n' "$*"; exit 1; }
fatal() { err "${0##*/}: fatal: $*"; }
@@ -39,7 +41,11 @@ test -n "${sv##.*}" ||
fatal "The <service-name> must not start with a dot."
test "$sv" = "${sv#*/}" ||
fatal "The <service-name> must not contain a slash."
-
+# allow relative symlinks only in 'default' runlevel
+test "$defaultrun" = "$(readlink "$servicedir")" && \
+ relsymdir=../../../sv
+
+
case "$opt" in
-a|--add)
test "$(id -u)" = 0 || fatal "${0##*/} -a must be run by root."
@@ -76,7 +82,8 @@ case "$opt" in
fatal "$servicedir/$sv is not a symbolic link."
test "$svdir" = "$(readlink "$servicedir"/"$sv")" ||
test "$svdir"/ = "$(readlink "$servicedir"/"$sv")" ||
- fatal "$servicedir/$sv does not point to $svdir."
+ test "$relsymdir"/"$sv" = "$(readlink "$servicedir"/"$sv")" ||
+ fatal "$servicedir/$sv does not point to $svdir."
rm -f "$servicedir"/"$sv"
printf '%s %s\n' \
"Service $sv removed," \
--
2.19.1
--- End Message ---
--- Begin Message ---
Somehow I forgot to close these bugs by "Closes: #nnn" statement in
changelog. Patches are applied in commits `515ea' and `36312' at
https://salsa.debian.org/runit-team/runit
pgpMW24T51w0O.pgp
Description: PGP signature
--- End Message ---