GNOME Bugzilla – Bug 128163
Possible problems with new XML parser
Last modified: 2004-12-22 21:47:04 UTC
I am not completely sure that this is an intltool bug, but I suspect it might be. When building libgnomeprint from CVS using the latest intltool (CVS version as of 1200 UTC on 29 Nov 2003), the build fails with an error like LC_ALL=C ../../intltool-merge ../../po GNOME-GENERIC-PS.xml.in GNOME-GENERIC-PS.xml -x -u -c ../../po/.intltool-merge-cache Found cached translation database Merging translations into GNOME-GENERIC-PS.xml. Can't use string ("1") as an ARRAY ref while "strict refs" in use at ../../intltool-merge line 620. The file GNOME-GENERIC-PS.xml.in does not look broken and has not changed in a while. In case it matters, I am building this on a Fedora box, so it is using perl-libxml-perl version 0.07 to supply XML::Parser.
It is an intltool bug. But it is not happening for me. It happened for me (on RH 9) when I changed ->Tree to ->OrigTree in intltool-merge.in.in - I guess that is because it can't find the OrigTree module which is distributed along with intltool. Maybe it can't find the Tree module? Can you look into it?
I will try to work this out (except that I hate Perl). But in case I get bogged down, I'll just make a note that it may not be only Fedora-related. Another Fedora report: http://mail.gnome.org/archives/desktop-devel-list/2003-November/msg00563.html and a Debian report: http://mail.gnome.org/archives/desktop-devel-list/2003-November/msg00568.html More news as it comes to hand. :-)
Fixed in cvs
this doesn't seem to work correctly. intltool-merge ends up pushing "/intltool" onto @INC instead of $datadir/intltool, apparently because 1) "$(datadir)" isn't the right syntax for variable deferencing (use "${datadir}", 2) datadir isn't defined at that point anyway, so even that doesn't work.
This analysis (the previous comment) does not seem to be correct because 1) $(datadir) is the valid way to refer to variables in makefiles (see http://www.gnu.org/software/make/manual/html_chapter/make_6.html#SEC66, for example) , and 2) $(datadir) *is* defined at the point intltool-merge is created from intltool-merge.in (it is defined very early on in the Makefile) and 3) doing a clean build from CVS puts the right values in there when I tried it just now. Rob, have a look in your generated Makefile. Is datadir set to anything?
Should be fixed now. Please test!
Rob: ping... Does this work for you now? Can we close it? (probably a good idea to add yourself to the CC list of a bug you reopen so that we can get feedback.)
yea, works great. Good job!