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

Re: Bug#518737: dpkg: install-info should still exit zero if info document is not found

Hi all,

sorry to chime in only now, I was away mountaineering.

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

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.

Best wishes


Dr. Norbert Preining <preining@logic.at>        Vienna University of Technology
Debian Developer <preining@debian.org>                         Debian TeX Group
gpg DSA: 0x09C5B094      fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
A rucked-up edge of carpet or linoleum which everyone says someone
will trip over and break a leg unless it gets fixed. After a year or
two someone trips over it and breaks a leg.
			--- Douglas Adams, The Meaning of Liff
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>

 * 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

 * 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.
     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.

 + Changes in texinfo
   - a new install-info package replaces dpkg's install-info
   - This install-info should support the current dpkg's install-info
     options (i.e. no failures, but not necessarily registering the info
     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
   - 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?
   - 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.
   - Fix some regressions from dpkg's install-info.
     (IIRC an alignment regression was mentioned with GNU's texinfo)

 + 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.
   - Packages using dh_installinfo should just depends on a new debhelper
   - 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

 + 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?

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.

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
 * 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
 * upload debhelper.
 * 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)
 * upload empty install-info in dpkg (no need to wait for the end of the
   previous step).

Reply to: