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

Re: Standards 4.1.3 and apt-cacher



Hi,

On Wed, 07 Feb 2018 10:14:15 +0000, Mark Hindley wrote:

> Hello,
> 
> I am trying to upgrade apt-cacher to Standards version 4.1.3. In
> particular using DISABLED=yes|no in /etc/defaults is now prohibited.

Thanks for fixing this.

> 
> apt-cacher can be run as a daemon or from /etc/inetd.conf and this
> configuration is set in response to a debconf question.
> 
> I have a working version of the postinst which I believe complies with
> the new policy by no longer changing a value in /etc/default/apt-cacher,
> however it contains multiple calls to update-rc.d (one to register the
> init file and then calls to enable/disable as appropriate in response to
> db_get). This produces the lintian error:
> duplicate-updaterc.d-calls-in-postinst.
> 
> Is my approach flawed or is lintian being overzealous?

It is a bit overzealous, but I think you have another problem. Your 
package will override local admin on upgrades (if they changed the config 
manually) by calling update-rc.d and update-inetd. I think you need to 
change it to not do so. I don't know much about update-inetd but the 
pattern for update-rc.d should be something like this:


if [ $1 = configure ] || [ $1 == abort-upgrade ] ; then
  db_get apt-cacher/mode
  case "$RET" in
    daemon)
      update_rc_args="apt-cacher defaults"
      ;;
    inetd)
    manual)
      update_rc_args="apt-cacher defaults-disabled"
      ;;
  esac
fi

if [ $1 = reconfigure ] ; then
  db_get apt-cacher/mode
  case "$RET" in
    daemon)
      update_rc_args="apt-cacher enable"
      ;;
    inetd)
      update_rc_args="apt-cacher disable"
      ;;
    manual)
      update_rc_args="" #do nothing
      ;;
  esac
fi

if [ -n "$update_rc_args" ] ; then
  update-rc.d $update_rc_args
fi


if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
  if [ -x "/etc/init.d/apt-cacher" ]; then
    invoke-rc.d apt-cacher start ||  exit $?
  fi
fi


PS: you might want to take a look at the socket-activation features of 
systemd. You could have systemd-systems be always socket-activated. One 
might even think of removing the standalone daemon mode....

-- 
Saludos


Reply to: