On Fri, Aug 28, 2020 at 10:38:25PM +0200, Thomas Goirand wrote:
> Hi Dann,
> 
> If you look into the minissdpd configuration script (ie:
> /var/lib/dpkg/info/minissdpd.config) it does read what's in the
> /etc/default/minissdpd configuration file before attempting to configure
> the package. Maybe there's a problem in it, and you could try debugging
> it by adding a set -x in there? It would help a lot of you could show
> the output like that, so we can figure out where the problem is.

Thanks for the reply Thomas. I've collected the 'set -x' output in the
following annotated log:

=======> Demonstrate that original config includes interface
=======> that is no longer available, which I've searched and
=======> replaced as enxREDACTED1:

$ cat /etc/default/minissdpd
# MiniSSDPd default configuration

# Set this to 1 if you want to start the daemon
# START_DAEMON deprecated, use service minissdpd enable/disable
#START_DAEMON=1

# Set this to the IP/interface you want the demon to run on
# Notes:
#  1. It is mandatory to use the network interface name in order to enable IPv6
#     HTTP is available on all interfaces.
#  2. Specifying IP when built with IPv6 support is disabled by original
#     author, so this option may not be available outside Debian.
MiniSSDPd_INTERFACE_ADDRESS="enxREDACTED1"

# This defines other options which you might want to use when
# starting MiniSSDPd.
#MiniSSDPd_OTHER_OPTIONS="-6"
MiniSSDPd_OTHER_OPTIONS=""

=======> Here we see the failure I originally reported,
=======> this time w/ set -x

$ sudo dpkg --configure -a
Setting up minissdpd (1.5.20190824-1) ...
+ set -e
+ DEFAULT_FILE=/etc/default/minissdpd
+ . /usr/share/debconf/confmodule
+ [ !  ]
+ PERL_DL_NONLAZY=1
+ export PERL_DL_NONLAZY
+ [  ]
+ exec /usr/share/debconf/frontend /var/lib/dpkg/info/minissdpd.postinst 
configure 1.5.20190824-1
+ set -e
+ DEFAULT_FILE=/etc/default/minissdpd
+ . /usr/share/debconf/confmodule
+ [ ! 1 ]
+ [ -z  ]
+ exec
+ [  ]
+ exec
+ DEBCONF_REDIR=1
+ export DEBCONF_REDIR
+ [ configure = configure ]
+ [ -x /etc/init.d/minissdpd ]
+ update-rc.d minissdpd defaults-disabled
+ [ configure = configure ]
+ deb-systemd-helper debian-installed minissdpd.service
+ deb-systemd-helper unmask minissdpd.service
+ deb-systemd-helper --quiet was-enabled minissdpd.service
+ deb-systemd-helper enable minissdpd.service
+ deb-systemd-helper update-state minissdpd.service
+ [ -e /etc/default/minissdpd ]
+ db_get minissdpd/listen
+ _db_cmd GET minissdpd/listen
+ _db_internal_IFS=     

+ IFS= 
+ printf %s\n GET minissdpd/listen
+ IFS=

+ read -r _db_internal_line
+ IFS=  

+ RET=enxREDACTED1
+ return 0
+ MiniSSDPd_INTERFACE_ADDRESS=enxREDACTED1
+ replace_config /etc/default/minissdpd MiniSSDPd_INTERFACE_ADDRESS 
"enxREDACTED1"
+ [ -s /etc/default/minissdpd ]
+ sed -ri 
x
s|^$||
t find
x
b
: find
x
s|^\s*(MiniSSDPd_INTERFACE_ADDRESS=).*|\1"enxREDACTED1"|
t end
s|^#[ \t#]*(MiniSSDPd_INTERFACE_ADDRESS=['"]?"enxREDACTED1"['"]?)\s*$|\1|
t end
s|^#[ \t#]*(MiniSSDPd_INTERFACE_ADDRESS=)\s*$|\1"enxREDACTED1"|
t end
$ aMiniSSDPd_INTERFACE_ADDRESS="enxREDACTED1"
b
: end
h
                 /etc/default/minissdpd
+ db_get minissdpd/ip6
+ _db_cmd GET minissdpd/ip6
+ _db_internal_IFS=     

+ IFS= 
+ printf %s\n GET minissdpd/ip6
+ IFS=

+ read -r _db_internal_line
+ IFS=  

+ RET=false
+ return 0
+ [ false = true ]
+ echo 
+ grep -qn \-6
+ echo
+ sed -r s/^\s+//; s/\s+$//; s/  +/ /g
+ MiniSSDPd_OTHER_OPTIONS=
+ replace_config /etc/default/minissdpd MiniSSDPd_OTHER_OPTIONS ""
+ [ -s /etc/default/minissdpd ]
+ sed -ri 
x
s|^$||
t find
x
b
: find
x
s|^\s*(MiniSSDPd_OTHER_OPTIONS=).*|\1""|
t end
s|^#[ \t#]*(MiniSSDPd_OTHER_OPTIONS=['"]?""['"]?)\s*$|\1|
t end
s|^#[ \t#]*(MiniSSDPd_OTHER_OPTIONS=)\s*$|\1""|
t end
$ aMiniSSDPd_OTHER_OPTIONS=""
b
: end
h
                 /etc/default/minissdpd
+ db_get minissdpd/start_daemon
+ _db_cmd GET minissdpd/start_daemon
+ _db_internal_IFS=     

+ IFS= 
+ printf %s\n GET minissdpd/start_daemon
+ IFS=

+ read -r _db_internal_line
+ IFS=  

+ RET=true
+ return 0
+ [ true = true ]
+ update-rc.d minissdpd enable
+ [ -n 1.5.20190824-1 ]
+ _dh_action=restart
+ invoke-rc.d minissdpd restart
Job for minissdpd.service failed because the control process exited with error 
code.
See "systemctl status minissdpd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript minissdpd, action "restart" failed.
● minissdpd.service - keep memory of all UPnP devices that announced themselves
     Loaded: loaded (/lib/systemd/system/minissdpd.service; enabled; vendor 
preset: enabled)
     Active: failed (Result: exit-code) since Wed 2020-09-02 16:24:08 MDT; 6ms 
ago
       Docs: man:minissdpd(1)
    Process: 839116 ExecCondition=/usr/lib/minissdpd/minissdpd-systemd-wrapper 
-t ${MiniSSDPd_INTERFACE_ADDRESS} (code=exited, status=0/SUCCESS)
    Process: 839117 ExecStart=/usr/lib/minissdpd/minissdpd-systemd-wrapper 
${MiniSSDPd_INTERFACE_ADDRESS} $MiniSSDPd_OTHER_OPTIONS (code=exited, 
status=1/FAILURE)

Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]: Error parsing 
address/mask (or interface name) : enxREDACTED1
Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]: can't parse 
"enxREDACTED1" as a valid address or interface name
Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]: Usage: 
/usr/sbin/minissdpd [-d] [-6] [-s socket] [-p pidfile] [-t TTL] [-f device] -i 
<interface> [-i <interface2>] ...
Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]:   <interface> is 
either an IPv4 address with mask such as
Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]:   
192.168.1.42/255.255.255.0, or an interface name such as eth0.
Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]:   By default, socket 
will be open as /var/run/minissdpd.sock
Sep 02 16:24:08 xps13 minissdpd-systemd-wrapper[839117]:   and pid written to 
file /var/run/minissdpd.pid
Sep 02 16:24:08 xps13 systemd[1]: minissdpd.service: Control process exited, 
code=exited, status=1/FAILURE
Sep 02 16:24:08 xps13 systemd[1]: minissdpd.service: Failed with result 
'exit-code'.
Sep 02 16:24:08 xps13 systemd[1]: Failed to start keep memory of all UPnP 
devices that announced themselves.
+ exit 1
dpkg: error processing package minissdpd (--configure):
 installed minissdpd package post-installation script subprocess returned error 
exit status 1
Errors were encountered while processing:
 minissdpd

=======> Here I correct the interface to one that is available/active,
=======> which I've searched and replaced as enxREDACTED2:

$ sudo emacs -nw /etc/default/minissdpd
$ cat /etc/default/minissdpd
# MiniSSDPd default configuration

# Set this to 1 if you want to start the daemon
# START_DAEMON deprecated, use service minissdpd enable/disable
#START_DAEMON=1

# Set this to the IP/interface you want the demon to run on
# Notes:
#  1. It is mandatory to use the network interface name in order to enable IPv6
#     HTTP is available on all interfaces.
#  2. Specifying IP when built with IPv6 support is disabled by original
#     author, so this option may not be available outside Debian.
MiniSSDPd_INTERFACE_ADDRESS="enxREDACTED2"

# This defines other options which you might want to use when
# starting MiniSSDPd.
#MiniSSDPd_OTHER_OPTIONS="-6"
MiniSSDPd_OTHER_OPTIONS=""
(reverse-i-search)`dpkg-': sudo ^Ckg-reconfigure minissdpd -plow
(reverse-i-search)`dpkg-': sudo ^Ckg-reconfigure minissdpd -plow

=======> Now I demonstrate that it still fails even after
=======> correcting the interface name:

$ sudo dpkg --configure -a
Setting up minissdpd (1.5.20190824-1) ...
+ set -e
+ DEFAULT_FILE=/etc/default/minissdpd
+ . /usr/share/debconf/confmodule
+ [ !  ]
+ PERL_DL_NONLAZY=1
+ export PERL_DL_NONLAZY
+ [  ]
+ exec /usr/share/debconf/frontend /var/lib/dpkg/info/minissdpd.postinst 
configure 1.5.20190824-1
+ set -e
+ DEFAULT_FILE=/etc/default/minissdpd
+ . /usr/share/debconf/confmodule
+ [ ! 1 ]
+ [ -z  ]
+ exec
+ [  ]
+ exec
+ DEBCONF_REDIR=1
+ export DEBCONF_REDIR
+ [ configure = configure ]
+ [ -x /etc/init.d/minissdpd ]
+ update-rc.d minissdpd defaults-disabled
+ [ configure = configure ]
+ deb-systemd-helper debian-installed minissdpd.service
+ deb-systemd-helper unmask minissdpd.service
+ deb-systemd-helper --quiet was-enabled minissdpd.service
+ deb-systemd-helper enable minissdpd.service
+ deb-systemd-helper update-state minissdpd.service
+ [ -e /etc/default/minissdpd ]
+ db_get minissdpd/listen
+ _db_cmd GET minissdpd/listen
+ _db_internal_IFS=     

+ IFS= 
+ printf %s\n GET minissdpd/listen
+ IFS=

+ read -r _db_internal_line
+ IFS=  

+ RET=enxREDACTED1
+ return 0
+ MiniSSDPd_INTERFACE_ADDRESS=enxREDACTED1
+ replace_config /etc/default/minissdpd MiniSSDPd_INTERFACE_ADDRESS 
"enxREDACTED1"
+ [ -s /etc/default/minissdpd ]
+ sed -ri 
x
s|^$||
t find
x
b
: find
x
s|^\s*(MiniSSDPd_INTERFACE_ADDRESS=).*|\1"enxREDACTED1"|
t end
s|^#[ \t#]*(MiniSSDPd_INTERFACE_ADDRESS=['"]?"enxREDACTED1"['"]?)\s*$|\1|
t end
s|^#[ \t#]*(MiniSSDPd_INTERFACE_ADDRESS=)\s*$|\1"enxREDACTED1"|
t end
$ aMiniSSDPd_INTERFACE_ADDRESS="enxREDACTED1"
b
: end
h
                 /etc/default/minissdpd
+ db_get minissdpd/ip6
+ _db_cmd GET minissdpd/ip6
+ _db_internal_IFS=     

+ IFS= 
+ printf %s\n GET minissdpd/ip6
+ IFS=

+ read -r _db_internal_line
+ IFS=  

+ RET=false
+ return 0
+ [ false = true ]
+ echo 
+ grep -qn \-6
+ echo
+ sed -r s/^\s+//; s/\s+$//; s/  +/ /g
+ MiniSSDPd_OTHER_OPTIONS=
+ replace_config /etc/default/minissdpd MiniSSDPd_OTHER_OPTIONS ""
+ [ -s /etc/default/minissdpd ]
+ sed -ri 
x
s|^$||
t find
x
b
: find
x
s|^\s*(MiniSSDPd_OTHER_OPTIONS=).*|\1""|
t end
s|^#[ \t#]*(MiniSSDPd_OTHER_OPTIONS=['"]?""['"]?)\s*$|\1|
t end
s|^#[ \t#]*(MiniSSDPd_OTHER_OPTIONS=)\s*$|\1""|
t end
$ aMiniSSDPd_OTHER_OPTIONS=""
b
: end
h
                 /etc/default/minissdpd
+ db_get minissdpd/start_daemon
+ _db_cmd GET minissdpd/start_daemon
+ _db_internal_IFS=     

+ IFS= 
+ printf %s\n GET minissdpd/start_daemon
+ IFS=

+ read -r _db_internal_line
+ IFS=  

+ RET=true
+ return 0
+ [ true = true ]
+ update-rc.d minissdpd enable
+ [ -n 1.5.20190824-1 ]
+ _dh_action=restart
+ invoke-rc.d minissdpd restart
Job for minissdpd.service failed because the control process exited with error 
code.
See "systemctl status minissdpd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript minissdpd, action "restart" failed.
● minissdpd.service - keep memory of all UPnP devices that announced themselves
     Loaded: loaded (/lib/systemd/system/minissdpd.service; enabled; vendor 
preset: enabled)
     Active: failed (Result: exit-code) since Wed 2020-09-02 16:24:40 MDT; 6ms 
ago
       Docs: man:minissdpd(1)
    Process: 839329 ExecCondition=/usr/lib/minissdpd/minissdpd-systemd-wrapper 
-t ${MiniSSDPd_INTERFACE_ADDRESS} (code=exited, status=0/SUCCESS)
    Process: 839330 ExecStart=/usr/lib/minissdpd/minissdpd-systemd-wrapper 
${MiniSSDPd_INTERFACE_ADDRESS} $MiniSSDPd_OTHER_OPTIONS (code=exited, 
status=1/FAILURE)

Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]: Error parsing 
address/mask (or interface name) : enxREDACTED1
Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]: can't parse 
"enxREDACTED1" as a valid address or interface name
Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]: Usage: 
/usr/sbin/minissdpd [-d] [-6] [-s socket] [-p pidfile] [-t TTL] [-f device] -i 
<interface> [-i <interface2>] ...
Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]:   <interface> is 
either an IPv4 address with mask such as
Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]:   
192.168.1.42/255.255.255.0, or an interface name such as eth0.
Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]:   By default, socket 
will be open as /var/run/minissdpd.sock
Sep 02 16:24:40 xps13 minissdpd-systemd-wrapper[839330]:   and pid written to 
file /var/run/minissdpd.pid
Sep 02 16:24:40 xps13 systemd[1]: minissdpd.service: Control process exited, 
code=exited, status=1/FAILURE
Sep 02 16:24:40 xps13 systemd[1]: minissdpd.service: Failed with result 
'exit-code'.
Sep 02 16:24:40 xps13 systemd[1]: Failed to start keep memory of all UPnP 
devices that announced themselves.
+ exit 1
dpkg: error processing package minissdpd (--configure):
 installed minissdpd package post-installation script subprocess returned error 
exit status 1
Errors were encountered while processing:
 minissdpd

=======> And finally I show that my change has been overwritten
=======> with the old/incorrect value:

$ cat /etc/default/minissdpd
# MiniSSDPd default configuration

# Set this to 1 if you want to start the daemon
# START_DAEMON deprecated, use service minissdpd enable/disable
#START_DAEMON=1

# Set this to the IP/interface you want the demon to run on
# Notes:
#  1. It is mandatory to use the network interface name in order to enable IPv6
#     HTTP is available on all interfaces.
#  2. Specifying IP when built with IPv6 support is disabled by original
#     author, so this option may not be available outside Debian.
MiniSSDPd_INTERFACE_ADDRESS="enxREDACTED1"

# This defines other options which you might want to use when
# starting MiniSSDPd.
#MiniSSDPd_OTHER_OPTIONS="-6"
MiniSSDPd_OTHER_OPTIONS=""

Reply via email to