Transition from dpkg to GNU install-info
Hi!
Been meaning to ask Nicolas and you for the status of the install-info
transition. But here it is now, so moving to debian-dpkg where it
belongs.
On Mon, 2009-03-09 at 15:04:41 +0100, Norbert Preining wrote:
> On So, 08 Mär 2009, Raphael Hertzog wrote:
> > We already wanted that for lenny but nobody found the time to drive this
> > change… so no I don't know the timescale.
>
> Right, that is the fundamental problem.
>
> I carry around a transisiton plan we worked on some time ago, attached.
> I once (quite some time ago) checked all the install-info invocations by
> grepping for install-info in all the postinst/postrms and AFAIS there
> are not too many packages using things that are not supported by current
> texinfo.
>
> Finally I have to say that I am currently not able to do much work on
> that, since I am too much taken by packaging TeX Live 2008 (long
> overdue) after the complete rewrite of TL2008 stuff.
>
> I could suggest to package a current texinfo as is without changing
> anything else, but that would give us at least a test bed to try all
> invocations with curretn ginstall-info.
If you could take care of the texinfo side, I will have plenty of time
starting next month, so I might be able to handle the rest of the
transition.
> Proposal to replace Debian's install-info with GNU's install-info
> =================================================================
> Nicolas François <nicolas.francois@centraliens.net>
> Norbert Preining <preining@debian.org>
> Nathanael Nerode <neroden@fastmail.fm>
> debian-dpkg@lists.debian.org
> texinfo@packages.debian.org
>
> Goals
> =====
> * Replace dpkg's install-info by the GNU's install-info
> * Ease the recovery of a corrupted info dir file by allowing a generation
> from scratch
>
> Rational
> ========
> * info files are mostly used by GNU packages. The format of these files
> is described by the GNU texinfo package, and the support for new
> features is added to the GNU's install-info (ginstall-info on Debian),
> and not in dpkg's install-info (e.g. support for documents with more
> than one section: #139569).
> * /usr/share/info/dir integrates information from different packages. A
> package can break what has been registered by another one, without any
> possibility to fix it (itself). Thus it would be better to be prepared
> for regenerating a dir file from scratch at any time.
>
> Transition proposal
> ===================
> + Changes in dpkg
> - replace dpkg's install-info by a script which just issues a warning,
> or exit silently.
Sounds good.
> This script could be removed for Lenny+1 or 2.
> install-info should no more be essential, it is only needed when the
> info viewer is installed to search the info pages.
Removal for squeeze should give enough time.
> + Changes in texinfo
> - a new install-info package replaces dpkg's install-info
Given that we have other info viewers, that seems better than bundling
it in the info or texinfo packages.
> - This install-info should support the current dpkg's install-info
> options (i.e. no failures, but not necessarily registering the info
> file)
> IMO, this install-info should be compatible with the GNU's install
> info, and when it detects that it is used by a old Debian package, it
> should do nothing (or just warn and recommend using update-info-dir,
> see below).
> * this should provide a compatibility with packages not installed
> from a Debian package (make && make install)
> * and should not block the installation of old packages
> * full compatibility with current dpkg's install-info would be nice,
> but is not required
Agreed, legacy arguments should be deprecated and we should just
switch to whatever GNU install-info provides, and warning about it seems
appropriate.
> - Add an update-info-dir script. This script should just delete the dir
> file and then call the GNU's install-info with all the info files.
> (see also the previous mails from Ian Zimmerman, and his patch for
> --generate in install-info)
>
> - When installed for the first time (or first time >= version xxx),
> it should call update-info-dir.
> * There may be an issue with local softwares (not Debian packages)
> => maybe add a debconf question / NEWS entry?
> * What options should be used when installing the old info files?
These two would be needed to be able to support triggers.
> - Add support for multiple dir files in the info viewer.
> This would permit update-info-dir to use the
> --dir-file /usr/share/info/debian-dir option.
> /usr/share/info/dir (and /usr/local/share/info/dir) could be used for
> non Debian's info files.
I don't think this point should be a blocker for the transition, just
a nice feature to have.
> - Fix some regressions from dpkg's install-info.
> (IIRC an alignment regression was mentioned with GNU's texinfo)
IIRC this will just get fixed once we switch to GNU install-info.
> + Changes in packages installing info files
> - Note: According to an i386 Contents file, there are 2220 info
> files, in 403 packages
> - These packages should just drop their info files in /usr/share/info,
> and call the update-info-dir script if present (postinst and prerm).
> They could suggest/recommend the info package.
I'd say way better to just use triggers, and stop doing anything in
the maintainer scripts...
> - Packages using dh_installinfo should just depends on a new debhelper
> version.
... and so this one becomes a no-op.
> - The info files must be self sufficient (e.g. the section must be
> specified in the info file), so that they do not require any special
> install-info options when they are registered.
> - A review of all these packages (maintainer scripts & info files) will
> be needed.
>
> + Changes in dh_installinfo
> - Instead of calling install-info, test if update-info-dir is present,
> then call it. Same on postinst and prerm.
>
> dh_installinfo is very simple, so I don't think more changes are
> needed.
See above.
> + manuals
> - policy
> * the policy mentions install-info, and has a section about Info
> documents. Some changes may be required (e.g. require that the
> info files are self sufficient, and mention update-info-dir)
> - Other documents?
I don't think this should be a blocker either, policy documents
practice anyway, so it can be adapted later.
> Note: In this proposal, I did not consider an issue that some info files of
> old packages are not installed with the new install-info.
>
> Timeline
> ========
> These steps do not need synchronization, and could start right now.
> * better analysis for the requirements of the install-info script in texinfo
> * packages could also fix their info file, in order to avoid using
> install-info options (e.g. many do not specify the section)
> - patches could be sent to all packages with info file which use
> install-info options
There's a list in
<http://lintian.debian.org/tags/info-document-missing-dir-section.html>
but it might not include the packages which install bogus info files
but use the install-info --section option.
> * prepare a proposal for the policy
> The following steps probably need to happen in that order:
> * upload texinfo with install-info and update-info-dir
Probably better to create a new install-info package with those two,
and making info (and maybe texinfo) depend on it.
* upload pinfo depending on install-info.
> * upload debhelper.
This one does not need to be uploaded right away if we use triggers.
> * new policy (I don't think there is a strong need for synchronization of
> this step)
> * file bugs with blockers to keep track of the transition
> * fix all packages (for most of them, it will be just increasing the
> debhelper version in the build dependencies)
These three can be done in parallel.
> * upload empty install-info in dpkg (no need to wait for the end of the
> previous step).
And I'd do this just after having an install-info package and pinfo
depending on it.
All the rest seems ok, and thanks for the transition plan!
regards,
guillem
Reply to: