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

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: