[mythtv] perl 5.8, xmltv, and filldata

Isaac Richards mythtv-dev@snowman.net
Sat, 31 Aug 2002 16:43:50 -0400


Debian upgraded to perl 5.8.0, so the:

not well-formed (invalid token) at line 547, column 11, byte 21208 at
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/XML/Parser.pm
line 185

error is because the perl XML parser no longer seems to return everything in 
UTF-8 like it used to, instead converting things automatically to ISO-9660-1.  
So, tv_sort would read in the UTF-8 data, and write back ISO-9660-1, but kept 
the encoding attribute set to UTF-8.  Instant breakage of the perl XML 
parser, when to_mysql ran and couldn't understand the ISO-9660-1 characters 
(ie, the whole 'not well-formed' error message).

Otherwise, xmltv seems to work ok with 5.8.0.  There's also supposedly going 
to be a new point release of xmltv coming out soonish, which removes a few of 
the extraneous perl modules, and fixes the install on Debian.

Anyway, I couldn't figure out how to easily fix the encoding issue, so I 
ditched all the existing perl scripts in programdb/, and reimplemented it in 
C++ in the mythfilldatabase/ dir.  ~700 lines of perl down to ~450 of c++, 
mainly because I combined the tv_sort and the to_mysql scripts into one 
program.  Should also be faster =)   Anyway, tv_grab_na's currently 
hardcoded, and I'm sure I'm not parsing the full extent of the xmltv format, 
but it all seems to work just fine for me.   The rewrite also fixes the 
relative paths that were hardcoded into grabdata and filldata, so I'll 
probably start making mythfrontend update itself sometime soonish.

So, if anyone's following CVS and could let me know if this new stuff breaks 
for them, that'd be great.

Isaac