Mailing List Archive

perl 5.8, xmltv, and filldata
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