Project

General

Profile

XMLTV: symlinks to grabbers don't work in v3.2.+

Added by virtual dj almost 12 years ago

Hi, a user on the QNAP forums (adnovea) asked me to recompile the XMLTV package because the newer TVHeadend version doesn't recognize the grabbers anymore.
He found that this line in the xmltv.c source file:
if (!S_ISREG(st.st_mode)) continue;
prevents the simlinks to be found by the TVHeadend application.

Unfortunately the QNAP (and Synology too I think) is an embedded system where the version of Perl is very old and cannot be upgraded easily.
So, to build the XMLTV system I used a "dedicated" version of Perl in another directory and put the symlink to the grabbers into /usr/bin folder. I cannot put the grabbers there directly, because as /usr/bin is in RAM, that would eat it so much.

With the previous (old) TVHeadend version, the symlinks worked great but with this modification they don't work anymore of course.

So I'm asking you if there is a technical reason because the links were left out from the searching process.
He thinks that it's to ensure a single detection of each script using the $PATH variable, but can't we do it in another way?
Adding the XMLTV directory to PATH isn't an option, because I'll need to invoke another program (i.e. the Perl interpreter with some libraries) to call the XMLTV Perl scripts.

Maybe you can first check for the links and, if there is another file (which is not a link) with the same name you can drop it and skip the cycle?


Replies (2)

RE: XMLTV: symlinks to grabbers don't work in v3.2.+ - Added by Adam Sutton almost 12 years ago

I'm pretty sure this is unintentional. I think I've mistakenly used lstat() where I intended to use stat(). I certainly didn't intend to rule out symlinks.

I'll push the fix shortly.

Adam

RE: XMLTV: symlinks to grabbers don't work in v3.2.+ - Added by virtual dj almost 12 years ago

Thank you very much, Adam! This slight edit is so important.
Bye

    (1-2/2)