Plans for Lenny's install-info
[Initially sent to team@dpkg.org, now forwarded to debian-dpkg@lists.debian.org]
Hello,
As promised, I'm bringing back this issue after the release of Etch.
texinfo maintainer's CCed.
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.
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
- the info package (or 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
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
- 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
version.
- 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.
+ 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.
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
* 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).
This could start after a discussion here and then on debian-devel.
Note: info files will be a nice use case for triggers.
Kind Regards,
--
Nekral
Reply to: