tags 202488 patch thanks Looking at the changelog, it seems that the code causing these problems has been present since version 1:3.1pre1b-13, which predates the version that shipped with woody. So any upgrade problems this code was written to address are certainly a total non-issue now...
Therefore I'm uploading the attached patch as an NMU, to remove the upgrade logic that's breaking users' vboxconfig and spooldir settings on upgrade. These are config files, so user settings must be honored per policy; since clearly anyone upgrading from sarge won't be in need of this particular upgrade bit anyway, there's no reason to keep it at all, its only use is as a policy violation. NMU will be uploaded to incoming shortly. Cheers, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/
diff -u isdnutils-3.9.20060704/debian/changelog isdnutils-3.9.20060704/debian/changelog --- isdnutils-3.9.20060704/debian/changelog +++ isdnutils-3.9.20060704/debian/changelog @@ -1,3 +1,13 @@ +isdnutils (1:3.9.20060704-2.2) unstable; urgency=high + + * Non-maintainer upload. + * High-urgency upload for RC bugfix. + * Don't set vboxconfig and spooldir settings in vboxgetty.conf, + because there are no provisions for honoring user changes to these + settings, which is a policy violation. Closes: #202488. + + -- Steve Langasek <[EMAIL PROTECTED]> Tue, 7 Nov 2006 00:18:58 -0800 + isdnutils (1:3.9.20060704-2.1) unstable; urgency=low * NMU diff -u isdnutils-3.9.20060704/debian/isdnvboxserver.templates isdnutils-3.9.20060704/debian/isdnvboxserver.templates --- isdnutils-3.9.20060704/debian/isdnvboxserver.templates +++ isdnutils-3.9.20060704/debian/isdnvboxserver.templates @@ -61,41 +61,12 @@ _Description: Enter the password for ${User} here. Please don't use ':' in it! The way it is stored cannot handle this. -Template: isdnvboxserver/spoolrename -Type: note -_Description: spool directory renamed - The spool directory `${OLDSPOOL}' has been renamed to `${NEWSPOOL}' for - consistency's sake. This should have no other consequences. - -Template: isdnvboxserver/dup3spool -Type: note -_Description: two obsolete spool directories detected - The directories `${OLDSPOOL1}' and `${OLDSPOOL2}' (which aren't used - anymore in the standard configuration), and the new spool directory - `${NEWSPOOL}' all exist. The old directories will no longer be used; - please manually move any messages from there to the new directory (if - any), and delete the old directories. - -Template: isdnvboxserver/dupspool -Type: note -_Description: two spool directories detected - The old spool directory `${OLDSPOOL}' and the new spool directory - `${NEWSPOOL}' both exist. The old directory will no longer be used; please - manually move any messages from there to the new directory (if any), and - delete the old directory. - Template: isdnvboxserver/spoolcreate Type: note _Description: spool directory created The spool directory `${NEWSPOOL}' has been created, which is necessary for proper working of vbox. -Template: isdnvboxserver/vboxmoved -Type: note -_Description: vbox config file moved - The configuration file `${OLD}' has been moved to `${DIR}/.vbox.conf'. - See `man vbox.conf' for information on changing this file. - Template: isdnvboxserver/vboxcreate Type: note _Description: vbox config file created diff -u isdnutils-3.9.20060704/debian/isdnvboxserver.postinst isdnutils-3.9.20060704/debian/isdnvboxserver.postinst --- isdnutils-3.9.20060704/debian/isdnvboxserver.postinst +++ isdnutils-3.9.20060704/debian/isdnvboxserver.postinst @@ -91,7 +91,6 @@ # fi # db_go || true # fi -VBOX_CONFFILE= if [ -s /etc/isdn/vboxgetty.conf ]; then # only use ttyI6 eval `perl -- - /etc/isdn/vboxgetty.conf <<'EOF' @@ -115,18 +114,6 @@ db_go fi fi -if [ -s /etc/isdn/vboxd.conf ]; then - eval `perl -- - /etc/isdn/vboxd.conf <<'EOF' - while (<>) { last if m,^# Remove this comment if you don.t want,; } - # next line is the one - if ($_ = <>) { - m,^A:[^:]+:[^:]+:([^:]+):([^:]+):([^:]+),; - print "VBOX_USERSPOOL=$3\n"; - exit 0; - } -EOF - ` -fi db_get isdnvboxserver/user || true VBOX_USER=`echo "$RET" | tr -d ' '` if [ ! -z "$VBOX_USER" ]; then @@ -136,122 +123,11 @@ db_get isdnvboxserver/daemonuser || true VBOX_DUSER=`echo "$RET" | tr -d ' '` -################################### -# We have to clean up a big (potential) mess here. -# There were different places where the spooldir could be: -# -# - /var/spool/vbox/${name of daemon user} -# - /var/spool/vbox/${name of vboxd user} -# - /var/spool/vbox/${something else?} -# -# I want to normalize this to just: -# -# - /var/spool/vbox/${name of ttyI device} -# -# which is more logical as multiple (vboxd) users can access the same -# spool. Usually you'd want each vboxgetty process to write into its -# own spool directory (if you want multiple MSNs into one spool, there's -# a way of making one ttyI device listen to multiple MSNs and hence only -# one vboxgetty) -################################### - -if [ ! -z "$VBOX_SPOOL" ]; then - # there's a value already in vboxgetty.conf - # normalize it to the name of the device that is listened to (ttyI6) - VBOX_SPOOLold="$VBOX_SPOOL" - # VBOX_SPOOL=`echo $VBOX_SPOOL | sed "s,/[^/]*\$,/$VBOX_USER,"` - VBOX_SPOOL=/var/spool/vbox/ttyI6 -else - VBOX_SPOOLold=/vvaarr/ssppooooll/vvbbooxx/doesntexist +if [ -z "$VBOX_SPOOL" ]; then VBOX_SPOOL=/var/spool/vbox/ttyI6 fi -# VBOX_SPOOL now contains the ttyI version -# remember the names but make a silly name if they're not defined -# (I don't really like this solution but, hey, it works...) -VVBOX_SPOOLold="$VBOX_SPOOLold" -if [ -z "$VVBOX_SPOOLold" ]; then - VVBOX_SPOOLold=/vvaarr/ssppooooll/vvbbooxx/doesntexist_1 -fi -VVBOX_USERSPOOL="$VBOX_USERSPOOL" -if [ -z "$VVBOX_USERSPOOL" ]; then - VVBOX_USERSPOOL=/vvaarr/ssppooooll/vvbbooxx/doesntexist_2 -fi -# Now check if the value in the vboxgetty.conf file is different: -if [ "$VBOX_SPOOL" != "$VBOX_SPOOLold" ]; then - # it's different... - # Check if both dirs exist. If the new one doesn't, we can simply - # rename the old one if necessary. - if [ ! -d "$VBOX_SPOOL" ]; then - # new dir doesn't exist - if [ -d "$VBOX_SPOOLold" ]; then - # old one does. So rename - mv "$VBOX_SPOOLold" "$VBOX_SPOOL" || echo "mv 1 failed" - db_subst isdnvboxserver/spoolrename OLDSPOOL "$VBOX_SPOOLold" - db_subst isdnvboxserver/spoolrename NEWSPOOL "$VBOX_SPOOL" - db_fset isdnvboxserver/spoolrename seen false - db_input high isdnvboxserver/spoolrename || true - db_go - # forget it ever existed - VVBOX_SPOOLold=/vvaarr/ssppooooll/vvbbooxx/doesntexist_1 - # else create new one. - # But we might have to rename another one, so don't just yet. - fi - fi - if [ ! -d "$VBOX_SPOOL" ]; then - # new dir STILL doesn't exist - if [ -d "$VBOX_USERSPOOL" ]; then - # old (vboxd user) one does. So rename - mv "$VBOX_USERSPOOL" "$VBOX_SPOOL" || echo "mv 2 failed" - db_subst isdnvboxserver/spoolrename OLDSPOOL "$VBOX_USERSPOOL" - db_subst isdnvboxserver/spoolrename NEWSPOOL "$VBOX_SPOOL" - db_fset isdnvboxserver/spoolrename seen false - db_input high isdnvboxserver/spoolrename || true - db_go - # forget it ever existed - VBOX_USERSPOOL=/vvaarr/ssppooooll/vvbbooxx/doesntexist_2 - else - # now we're free to create the new one - mkdir -p "$VBOX_SPOOL/incoming" "$VBOX_SPOOL/messages" - cp /usr/share/isdnvboxserver/default/standard.tcl "$VBOX_SPOOL/." - db_subst isdnvboxserver/spoolcreate NEWSPOOL "$VBOX_SPOOL" - db_input low isdnvboxserver/spoolcreate || true - db_go - fi - fi - # The new dir should exist now, one way or another - if [ ! -d "$VBOX_SPOOL" ]; then - echo "$VBOX_SPOOL doesn't exist here!!!!! PANIC" - exit 1 - fi - if [ -d "$VBOX_SPOOLold" ]; then - # the old dir and the new dir both exist - if [ -d "$VBOX_USERSPOOL" ]; then - # they ALL exist! - # use the remembered values! - db_subst isdnvboxserver/dup3spool OLDSPOOL1 "$VVBOX_SPOOLold" - db_subst isdnvboxserver/dup3spool OLDSPOOL2 "$VVBOX_SPOOLold" - db_subst isdnvboxserver/dup3spool NEWSPOOL "$VBOX_SPOOL" - db_fset isdnvboxserver/dup3spool seen false - db_input high isdnvboxserver/dup3spool || true - db_go - else - db_subst isdnvboxserver/dupspool OLDSPOOL "$VVBOX_SPOOLold" - db_subst isdnvboxserver/dupspool NEWSPOOL "$VBOX_SPOOL" - db_fset isdnvboxserver/dupspool seen false - db_input high isdnvboxserver/dupspool || true - db_go - fi - else - # the old userspool dir may also exist! - if [ -d "$VVBOX_USERSPOOL" ]; then - db_subst isdnvboxserver/dupspool OLDSPOOL "$VVBOX_USERSPOOL" - db_subst isdnvboxserver/dupspool NEWSPOOL "$VBOX_SPOOL" - db_fset isdnvboxserver/dupspool seen false - db_input high isdnvboxserver/dupspool || true - db_go - fi - fi -elif [ ! -d "$VBOX_SPOOL" ]; then + +if [ ! -d "$VBOX_SPOOL" ]; then # on initial installation it won't exist, and "old" name == new name # so create it here if necessary mkdir -p "$VBOX_SPOOL/incoming" "$VBOX_SPOOL/messages" @@ -272,13 +148,6 @@ # end of spooldir handling.... ################################### -#XXX notused -#XXXif [ -z "$VBOX_CONFFILE" ]; then -#XXX if [ -s $VBOX_SPOOL/vbox.conf ]; then -#XXX VBOX_CONFFILE=$VBOX_SPOOL/vbox.conf -#XXX fi -#XXXfi - if [ ! -z "$VBOX_DUSER" ]; then VBOX_USERHOME=`getent passwd "$VBOX_DUSER" | cut -f6 -d:` if [ ! -z "$VBOX_USERHOME" ]; then @@ -287,16 +156,9 @@ fi if [ -d "$VBOX_USERHOME" ]; then if [ ! -s "$VBOX_USERHOME/.vbox.conf" ]; then - if [ ! -z "$VBOX_CONFFILE" -a -s "$VBOX_CONFFILE" ]; then - mv "$VBOX_CONFFILE" "$VBOX_USERHOME/.vbox.conf" || echo "mv 3 failed" - db_subst isdnvboxserver/vboxmoved OLD $VBOX_CONFFILE - db_subst isdnvboxserver/vboxmoved DIR $VBOX_USERHOME - db_input high isdnvboxserver/vboxmoved || true - else - cp /usr/share/isdn/default/vbox.conf $VBOX_USERHOME/.vbox.conf - db_subst isdnvboxserver/vboxcreate DIR $VBOX_USERHOME - db_input high isdnvboxserver/vboxcreate || true - fi + cp /usr/share/isdn/default/vbox.conf $VBOX_USERHOME/.vbox.conf + db_subst isdnvboxserver/vboxcreate DIR $VBOX_USERHOME + db_input high isdnvboxserver/vboxcreate || true chown $VBOX_DUSER $VBOX_USERHOME/.vbox.conf fi else @@ -310,9 +172,6 @@ db_input high isdnvboxserver/vboxnouser || true fi db_go || true - #if [ -s $VBOX_USERHOME/.vbox.conf ]; then - # : # edit rings etc. - #fi mv -f /etc/isdn/vboxgetty.conf /etc/isdn/vboxgetty.conf.bak || echo "mv 4 failed" perl -- - > /etc/isdn/vboxgetty.conf <<EOF open(STDIN, '/etc/isdn/vboxgetty.conf.bak'); @@ -324,8 +183,6 @@ } s/^(\s+modeminit\s+.*&E)\s*\d*(.*)/\${1}$VBOX_MSN\${2}/; s/^(\s+user\s+)\S+(.*)/\${1}$VBOX_DUSER\${2}/; - s,^(\s+spooldir\s+).*$,\${1}$VBOX_SPOOL,; - s,^(\s+vboxconfig\s+).*$,\${1}$VBOX_USERHOME/.vbox.conf,; print; } print <>;