Winedocs and Po4a dependencies

Francois Gouget fgouget at codeweavers.com
Thu May 26 10:52:39 CDT 2005


For the Wine project we are trying to make it as easy as possible for 
Wine contributors to modify and rebuild the Wine documentation. The Po4a 
dependencies have caused some concern in this regard: for each 
dependency the contributor will have to track down which package to 
install for his distribution and this makes the initial setup 
significantly harder.

Po4a being not very widespread we have checked it in the Winedocs CVS 
(http://cvs.sourceforge.net/viewcvs.py/wine/docs/). But Po4a has quite a 
few dependencies so this does not help very much. So now we are hoping 
to make it possible to reduce the number of po4a dependencies. Here is 
the list I came up with, together with some notes for each of them:


  * Locale::gettext (perl module)
    Needed by po4a for localization.
    Provided by liblocale-gettext-perl on Debian, perl-Locale-gettext on 
Mandrake and Fedora Core(DAG), perl-gettext on SUSE.

    Would you be open to a patch that acted as a wrapper around 
Locale::gettext so that po4a would continue to work untranslated if that 
module was missing?
    The idea we would add a 'Po4aGettext' module that would export 
gettext() and dgettext() functions. These would try to load 
Locale::gettext in an eval function and use it if that succeeds. 
Otherwise the Po4aGettext would simply return the untranslated strings. 
The only changes to the other Po4a modules would be replacing 'use 
Locale::gettext' with 'use Po4aGettext'.


  * Text::WrapI18N (perl module)
    Pure perl (so easy to check in) but depends on Text::CharWidth which 
is not pure perl.
    Provided by libtext-wrapi18n-perl on Debian. Found no RPM packages 
providing it.

    Text::WrapI18N was not used in po4a 0.16.2. I initially thought it 
was used to wrap the text being output to the .po and .sgml files but in 
fact it seems to only be used to print messages, warnings and errors. 
Why is it needed? Doesn't a simple print work fine?


  * Term::ReadKey (perl module)
    Provided by libterm-readkey-perl on Debian, perl-Term-ReadKey on 
Mandrake and Fedora Core(DAG), perl-TermReadKey on SUSE.

    This module is used to determine the size of the terminal. This 
information is then used by the wrap functions.


  * SGMLS (perl module)
    Needed by po4a to interface with the nsgmls parser.
    Pure perl (so easy to check in).
    Provided by libsgmls-perl on Debian, perl-SGMLSpm on Mandrake and 
Fedora Core, perl-SGMLS on SUSE.

    This is an essential part of po4a. The easiest way to remove this 
dependency would be to check it into the Winedocs repository. So no 
action needed on the Po4a side.


  * nsgmls (command line tool)
    Needed by po4a to parse the Sgml files.
    Provided by sp on Debian, sgml-tools or openjade on Mandrake and 
Fedora Core, opensp on SUSE.

    This is an essential part of po4a. So it will have to remain as a 
dependency which is reasonable.


-- 
Francois Gouget
fgouget at codeweavers.com




More information about the wine-devel mailing list