Re: Renaming packages: maintscripts
On Sun, 2012-09-02 at 15:41:48 -0700, Steve Langasek wrote:
> On Sun, Sep 02, 2012 at 11:26:34PM +0100, Ben Hutchings wrote:
> > > Not sure about cleaner, but that's the supported dpkg interface.
> > That certainly seems a bit cleaner than assuming we know what the dpkg
> > database looks like it. However the manual page says 'Warning: this
> > command is deprecated, please switch to use --control-list and
> > --control-show instead.' Those options don't expose any filenames at
> > all!
> Hmm. Perhaps the manpage needs updating, then; I'm sure this is the
> interface that's being recommended for coping with multiarch-related
> changes to control file paths.
Only because there's been no better interface at that point (as was even
mentioned on older dpkg-query man pages, exposing the db paths was never
really a good interface, because among others it was susceptible to race
conditions between concurrent dpkg and dpkg-query runs while changing db
layout, or it could give people funny ideas about programatically
modifying or removing such paths contents, etc).
But then --control-path was intended only for read accesses for things
like dpkg-repack or dpkg-reconfigure, never for *removing* files from
the dpkg database. Removing such files from maintainer scripts is just
*wrong*, the correct solution is to force an upgrade to a transitional
package that does not contain conffiles/maintscripts.
This option is going to go away relatively soon (in deprecation time
terms); for 1.17.x I'm planning to make it issue warnings, something I
didn't do for 1.16.x because the new interfaces were introduced pretty
late in the release cycle and as such only available pretty recently,
would have involved an annoying “transition”, and I didn't consider it
fair at that point. I was planning on removing it on 1.18.x, but it
might probably have to wait until 1.19.x.