Comment 29 for bug 1473691

Revision history for this message
Steve Langasek (vorlon) wrote : Re: [Bug 1473691] Re: [FFe] squid: Update to latest upstream release (3.5)

On Wed, Mar 30, 2016 at 04:41:12AM -0000, Ryan Harper wrote:
> As far as I can see, the entire versioned code block here is wrong, and
> > you should *only* be restarting squid.

> The block (without my addition) is from debian itself.

Yes, and I believe it's wrong there also (unless their previous squid3
package, unlike ours, didn't stop itself in the prerm?)

> update-rc.d squid defaults 30 >/dev/null

OK, someone's living in 2005... The '30' sequence number is obsolete, and
also why is this not being driven by debhelper?

> However, this failed in our dist-upgrade from trusty scenario as the squid3
> service file no longer
> exists. Reading your analysis; it seems that /etc/init.d/squid3 should
> still be on disk;
> but it was not.

No. I said that in an upgrade from trusty, there *was no*
/etc/init.d/squid3 init script, only an /etc/init/squid3.conf upstart job.
And your maintainer script is removing /etc/init/squid3.conf on upgrade;
which is why the Debian logic fails.

> In the dist-upgrade from trusty case; I believe we can just use the squid
> restart.

Yes.

> In the upgrade from wily case, it's not clear to me why the
> /etc/init.d/squid3 service
> file would still be on disk when it wasn't when upgrading from trusty?

Because the wily version of the package *has* an /etc/init.d/squid3 file,
whereas the trusty package does not. And nothing in the xenial package is
handling the removal of this stale conffile.

So:

 - fix the maintainer script to remove /etc/init.d/squid3 on upgrade
 - drop all the versioned upgrade logic and just call invoke-rc.d squid
  restart.

BTW, note that dpkg-maintscript-helper has to be called from several
different maintainer scripts with the same arguments, not just from the
preinst - the squid package already has several bugs because it's not doing
this correctly. This is a royal pain to get right by hand, and all
right-thinking maintainers would use debian/squid.maintscript as documented
in dh_installdeb, instead of hand-editing maintainer scripts and trying to
keep them all in sync. This *probably* will DTRT in the package, despite
the fact that squid3 is using the one-step-removed-from-obsolete debhelper
compat level 5.

--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer http://www.debian.org/
<email address hidden> <email address hidden>