Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 195277 - app-text/po4a-0.32-r1 loops during its ebuild
Summary: app-text/po4a-0.32-r1 loops during its ebuild
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal with 1 vote (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-09 17:22 UTC by David W Noon
Modified: 2008-05-01 00:11 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge_info.txt,2.93 KB, text/plain)
2007-10-09 17:23 UTC, David W Noon
Details
ebuild log (build.log,6.03 KB, text/plain)
2007-10-09 17:26 UTC, David W Noon
Details
Workaround to delete language files during "emerge po4a" (po4a-workaround.sh,1.46 KB, text/plain)
2008-01-21 16:42 UTC, Robert Bradbury
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David W Noon 2007-10-09 17:22:31 UTC
When I attempt to emerge po4a, the ebuild goes into a CPU-bound loop. It also appears to leak memory at 1 meg every 30-40 seconds. In fact, I let it run for about 10 hours or so last weekend, and it almost consumed the entire machine: 4 gigs of RAM and 64 gigs of swap.

Here is a listing for the ebuild's output:

===============================================================================
Calculating world dependencies  ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... .....   ... done!
>>> Verifying ebuild Manifests...

>>> Emerging (1 of 2) app-text/po4a-0.32-r1 to /
 * po4a-0.32.tar.gz RMD160 ;-) ...                                        [ ok ]
 * po4a-0.32.tar.gz SHA1 ;-) ...                                          [ ok ]
 * po4a-0.32.tar.gz SHA256 ;-) ...                                        [ ok ]
 * po4a-0.32.tar.gz size ;-) ...                                          [ ok ]
 * checking ebuild checksums ;-) ...                                      [ ok ]
 * checking auxfile checksums ;-) ...                                     [ ok ]
 * checking miscfile checksums ;-) ...                                    [ ok ]
 * checking po4a-0.32.tar.gz ;-) ...                                      [ ok ]
>>>  [1m [37mcfg-update-1.8.2-r1 [0m [0m: Creating checksum index...
>>> Unpacking source...
>>> Unpacking po4a-0.32.tar.gz to /var/lib/portage/tmp/portage/app-text/po4a-0.32-r1/work
>>> Source unpacked.
>>> Compiling source in /var/lib/portage/tmp/portage/app-text/po4a-0.32-r1/work/po4a-0.32 ...
/var/lib/portage/tmp/portage/app-text/po4a-0.32-r1/work/po4a-0.32
 * Using Module::Build
Creating custom builder _build/lib/My/Builder.pm in _build/lib/My
Checking whether your kit is complete...
WARNING: the following files are missing in your kit:
        Makefile
Please inform the author.

Checking prerequisites...
Looks good

Creating new 'Build' script for 'po4a' version '0.32'
Copying lib/Locale/Po4a/LaTeX.pm -> blib/lib/Locale/Po4a/LaTeX.pm
Copying lib/Locale/Po4a/Xhtml.pm -> blib/lib/Locale/Po4a/Xhtml.pm
Copying lib/Locale/Po4a/Xml.pm -> blib/lib/Locale/Po4a/Xml.pm
Copying lib/Locale/Po4a/Docbook.pm -> blib/lib/Locale/Po4a/Docbook.pm
Copying lib/Locale/Po4a/TeX.pm -> blib/lib/Locale/Po4a/TeX.pm
Copying lib/Locale/Po4a/Man.pm -> blib/lib/Locale/Po4a/Man.pm
Copying lib/Locale/Po4a/Chooser.pm -> blib/lib/Locale/Po4a/Chooser.pm
Copying lib/Locale/Po4a/Ini.pm -> blib/lib/Locale/Po4a/Ini.pm
Copying lib/Locale/Po4a/Pod.pm -> blib/lib/Locale/Po4a/Pod.pm
Copying lib/Locale/Po4a/Dia.pm -> blib/lib/Locale/Po4a/Dia.pm
Copying lib/Locale/Po4a/Common.pm -> blib/lib/Locale/Po4a/Common.pm
Copying lib/Locale/Po4a/KernelHelp.pm -> blib/lib/Locale/Po4a/KernelHelp.pm
Copying lib/Locale/Po4a/Guide.pm -> blib/lib/Locale/Po4a/Guide.pm
Copying lib/Locale/Po4a/Sgml.pm -> blib/lib/Locale/Po4a/Sgml.pm
Copying lib/Locale/Po4a/Po.pm -> blib/lib/Locale/Po4a/Po.pm
Copying lib/Locale/Po4a/BibTeX.pm -> blib/lib/Locale/Po4a/BibTeX.pm
Copying lib/Locale/Po4a/TransTractor.pm -> blib/lib/Locale/Po4a/TransTractor.pm
Copying lib/Locale/Po4a/Texinfo.pm -> blib/lib/Locale/Po4a/Texinfo.pm
Copying lib/Locale/Po4a/Text.pm -> blib/lib/Locale/Po4a/Text.pm
Copying po4a-normalize -> blib/script/po4a-normalize
Copying scripts/msguntypot -> blib/script/msguntypot
Copying po4a-gettextize -> blib/script/po4a-gettextize
Copying po4a-updatepo -> blib/script/po4a-updatepo
Copying po4a -> blib/script/po4a
Copying scripts/po4aman-display-po -> blib/script/po4aman-display-po
Copying po4a-translate -> blib/script/po4a-translate
Manifying blib/script/po4a-translate -> blib/bindoc/po4a-translate.1
Manifying blib/script/po4a-normalize -> blib/bindoc/po4a-normalize.1
Manifying blib/script/po4a -> blib/bindoc/po4a.1
Manifying blib/script/msguntypot -> blib/bindoc/msguntypot.1
Manifying blib/script/po4a-updatepo -> blib/bindoc/po4a-updatepo.1
Manifying blib/script/po4a-gettextize -> blib/bindoc/po4a-gettextize.1
Manifying blib/lib/Locale/Po4a/TransTractor.pm -> blib/libdoc/Locale::Po4a::TransTractor.3pm
Manifying blib/lib/Locale/Po4a/Pod.pm -> blib/libdoc/Locale::Po4a::Pod.3pm
Manifying blib/lib/Locale/Po4a/Sgml.pm -> blib/libdoc/Locale::Po4a::Sgml.3pm
Manifying blib/lib/Locale/Po4a/KernelHelp.pm -> blib/libdoc/Locale::Po4a::KernelHelp.3pm
Manifying blib/lib/Locale/Po4a/Chooser.pm -> blib/libdoc/Locale::Po4a::Chooser.3pm
Manifying blib/lib/Locale/Po4a/BibTeX.pm -> blib/libdoc/Locale::Po4a::BibTeX.3pm
Manifying blib/lib/Locale/Po4a/LaTeX.pm -> blib/libdoc/Locale::Po4a::LaTeX.3pm
Manifying blib/lib/Locale/Po4a/Texinfo.pm -> blib/libdoc/Locale::Po4a::Texinfo.3pm
Manifying blib/lib/Locale/Po4a/Po.pm -> blib/libdoc/Locale::Po4a::Po.3pm
Manifying blib/lib/Locale/Po4a/Text.pm -> blib/libdoc/Locale::Po4a::Text.3pm
Manifying blib/lib/Locale/Po4a/Common.pm -> blib/libdoc/Locale::Po4a::Common.3pm
Manifying blib/lib/Locale/Po4a/Xhtml.pm -> blib/libdoc/Locale::Po4a::Xhtml.3pm
Manifying blib/lib/Locale/Po4a/Guide.pm -> blib/libdoc/Locale::Po4a::Guide.3pm
Manifying blib/lib/Locale/Po4a/Ini.pm -> blib/libdoc/Locale::Po4a::Ini.3pm
Manifying blib/lib/Locale/Po4a/Xml.pm -> blib/libdoc/Locale::Po4a::Xml.3pm
Manifying blib/lib/Locale/Po4a/Man.pm -> blib/libdoc/Locale::Po4a::Man.3pm
Manifying blib/lib/Locale/Po4a/Docbook.pm -> blib/libdoc/Locale::Po4a::Docbook.3pm
Manifying blib/lib/Locale/Po4a/Dia.pm -> blib/libdoc/Locale::Po4a::Dia.3pm
Manifying blib/lib/Locale/Po4a/TeX.pm -> blib/libdoc/Locale::Po4a::TeX.3pm
Deleting META.yml
Creating META.yml
Use of uninitialized value in concatenation (.) or string at /usr/lib64/perl5/vendor_perl/5.8.8/Module/Build/Base.pm line 3450.
Use of uninitialized value in concatenation (.) or string at /usr/lib64/perl5/vendor_perl/5.8.8/Module/Build/Base.pm line 3450.
XX Update documentation pot files: ................................................................................................................. done.
XX Update documentation ca.po: ................................................................................................................. done.
XX Update documentation it.po: ................................................................................................................. done.
XX Update documentation pl.po: ................................................................................................................. done.
XX Update documentation fr.po: ................................................................................................................. done.
XX Update documentation es.po: ................................................................................................................. done.
X Translate binary manpages to ca
Died at /var/lib/portage/tmp/portage/app-text/po4a-0.32-r1/work/po4a-0.32/_build/lib/My/Builder.pm line 162.
 * 
 * ERROR: app-text/po4a-0.32-r1 failed.
 * Call stack:
 *   ebuild.sh, line 1654:   Called dyn_compile
 *   ebuild.sh, line 990:   Called qa_call 'src_compile'
 *   ebuild.sh, line 44:   Called src_compile
 *   po4a-0.32-r1.ebuild, line 30:   Called perl-app_src_compile
 *   perl-app.eclass, line 49:   Called die
 * 
 * compilation failed
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/lib/portage/tmp/portage/app-text/po4a-0.32-r1/temp/build.log'.
 * 

 * Messages for package app-text/po4a-0.32-r1:

 * 
 * ERROR: app-text/po4a-0.32-r1 failed.
 * Call stack:
 *   ebuild.sh, line 1654:   Called dyn_compile
 *   ebuild.sh, line 990:   Called qa_call 'src_compile'
 *   ebuild.sh, line 44:   Called src_compile
 *   po4a-0.32-r1.ebuild, line 30:   Called perl-app_src_compile
 *   perl-app.eclass, line 49:   Called die
 * 
 * compilation failed
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/lib/portage/tmp/portage/app-text/po4a-0.32-r1/temp/build.log'.
 * 
===============================================================================

I shall attach my emerge --info and the build log in the next few minutes.
Comment 1 David W Noon 2007-10-09 17:23:56 UTC
Created attachment 133014 [details]
emerge --info
Comment 2 David W Noon 2007-10-09 17:26:21 UTC
Created attachment 133016 [details]
ebuild log
Comment 3 Robert Bradbury 2007-10-24 04:57:52 UTC
I will confirm this bug, not on AMD64 but on Intel P4 (prescott).  The last few lines of my emerge output (before I killed it after 5+ hours) are...

...
Deleting META.yml
Creating META.yml
XX Update documentation pot files: ................................................................................................................. done.
XX Update documentation it.po: ................................................................................................................. done.
XX Update documentation pl.po: ................................................................................................................. done.
XX Update documentation ca.po: ................................................................................................................. done.
XX Update documentation fr.po: ................................................................................................................. done.
XX Update documentation es.po: ................................................................................................................. done.
X Translate binary manpages to it

It may be worth noting, that primarily English systems may *NOT* want translations of documentation to foreign languages on their system -- and so the dependency of dpkg on app-text/po4a may be undesirable (and there should be a patch that allows it to be bypassed).

It would also be nice if there were a gentoo option that allowed the removal of all foreign language files except a limited subset (for me: US-en, fr & ru).  E.g. "LINGUAS=en" or "LINGUAS="en fr ru" in make.conf.  The foreign language files for a robust system installation take up a large amount of space on /usr.


Comment 4 Paul Gover 2007-12-03 17:18:34 UTC
I have the same symptoms, occurring at the same point - where it starts to "X Translate binary manpages to ca".  If you Google that string, the first hit (a patch, so it might be suspect...) shows it's iterating over a generated series of languages.  I thought it might be a problem with my locale settings - I'm using LC_ALL='en_GB.UTF-8'.  I did have LANG="", but I changed it to the same as LC_ALL, and it still loops.  I also had LINGUAS="en_GB uk" (noob mistake - I don't speak Ukrainian...) but it still loops when I set it to LINGUAS="en_GB".

I second Robert Bradbury's comment that there should no need to translate to ca, fr, etc; it would be "nice" if the ebuild were sensitive to LINGUAS, though that may be too major surgery for the benefit it brings.  All I want is for "alien" to work!
Comment 5 Robert Bradbury 2008-01-21 16:42:25 UTC
Created attachment 141489 [details]
Workaround to delete language files during "emerge po4a"

Well, I finally got past this but its a real kludge.  As mentioned by others the problem is in perl hanging on the processing of the language files (which should not even be done for "english" systems).

The basic strategy is to delete all of the language files (it, pl, ca, fr, es) which the po4a-translate perl script hangs on.  The trick is to do it after the package is unpacked but before the files cause the emerge to hang.  Tricky, but I managed to put together a script to do it.

Now the only problem is that while /usr/bin/po4a is produced, it appears to be buggy as it hangs the subsequent dpkg emerge (to be discussed later).

The attached script should be fairly self-explanatory.  The problem may be with the use of perl5.8.8.  One strategy might be to back off on the installed version of perl and see if one can get around the problem.  The other approach might be to compare older versions of po4a with the one produced after using my workaround script and see what got changed which may be causing the problem.
Comment 6 Robert Bradbury 2008-01-21 16:56:46 UTC
Now, for solving the "dpkg" emerge.  (If the dpkg emerge failure is filed under additional bugs someone should point them here).

As it turns out "dpkg" contains on the order of 100+ ".po" (language) files which modify the man pages and perhaps other files when emerging dpkg.  These files seem to rely on /usr/bin/po4a, which suffers from the same perl "hanging" problem found  when emerging "po4a".

Solutions tried:
1) Killing all of the hung perl processes (~24?) does not work because while the killing works ok, a higher level part of the build detects that some of the processes were killed.
2) Removing all of the *.cfg files during the build doesn't work (the build still calls perl and it doesn't seem to detect that the command files are  missing).
3) Removing all of the *.po files during the build doesn't seem to work either.

What does seem to work is replacing /usr/bin/po4a with a fake po4a which always works, e.g.

#!/usr/bin/perl5.8.8 

# Dummy po4a -- replace in /usr/bin before emerging dpkg
exit 0;		# always work...

One does end up with a new set of dpkg-* files in /usr/bin and the English dpkg man pages appear to be updated.  Not sure about what happens to the foreign dpkg man pages.

Simple tests of dpkg seem to indicate it is working but more extensive testing should be applied.

Somebody really needs to investigate what is wrong with po4a and/or perl5.8.8 to resolve the po4a/dpkg problem without such kludgy solutions.
Comment 7 Felix Finch 2008-04-03 20:08:47 UTC
Same infinite loop for me, ~amd64.  It's been happening for some time, and I usually remember to edit the proposed update list from my weekly updates, but sometimes I forget ...
Comment 8 Torsten Veller (RETIRED) gentoo-dev 2008-04-30 11:32:35 UTC
Please test if po4a-0.33.3 fixes this problem for you.

Reopen if it isn't fixed.
Comment 9 Robert Bradbury 2008-05-01 00:11:03 UTC
Bug has been refiled as bug # 219889.