Kodi Community Forum

Full Version: Light IMDb Ratings Update 5.1.3
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Then addon is OK, I bet there is something with PHP.

You can also check phpinfo (in addition to my previous post):
put these lines in new file info.php

PHP Code:
<?
phpinfo(); 

and run PHP on that file:
/storage/.kodi/userdata/addon_data/script.light.imdb.ratings.update/php-binary/php-cgi info.php
will do both things and report back but its strange that the addon only works on 8.0.2....
(2017-09-20, 22:58)djhifi Wrote: [ -> ]will do both things and report back but its strange that the addon only works on 8.0.2....

Addon is mix of python and php. First is interpreted by LibreELEC, but for php part is needed binary interpreter of php language. And this can be problem i.e. with libraries dependency (usualy different on systems and versions like LibreELEC 8.0.2 and 8.1.1), so, check also this:

ldd /storage/.kodi/userdata/addon_data/script.light.imdb.ratings.update/php-binary/php-cgi
I need to sleep now. Tomorrow I will perform those remaining tests you told. And will report here.

PS: Can this problem be related to skin helper script or others?
(2017-09-21, 02:57)djhifi Wrote: [ -> ]PS: Can this problem be related to skin helper script or others?

No.
This is problem with PHP part, this part is run as external process for every movie, check IMDB rating from net then gives result to main python part. In yours - result is empty (on 8.1.1, empty in log file, lines with JSON Response). In mine - 8.1.1 works good, but I have other platform architecture -> other php binary. So I think there is problem.
Good morning guys!

Thanks for progressing on this...I hope we will find a solution soon!

The point is that some time ago, a test over LibreELEC on the same platform that djhifi is using was performed and everything was working. The only difference is the version (Kodi 17.3 vs the actual Kodi 17.4):

Code:
21:21:51.228 T:140684478301440  NOTICE: Starting Kodi (17.3 Git:147cec4). Platform: Linux x86 64-bit
21:21:51.228 T:140684478301440  NOTICE: Using Release Kodi x64 build
21:21:51.228 T:140684478301440  NOTICE: Kodi compiled May 28 2017 by GCC 6.2.0 for Linux x86 64-bit version 4.9.29 (264477)
21:21:51.228 T:140684478301440  NOTICE: Running on LibreELEC (community) - Version: devel-20170528113803-r25683-g24c82c134 8.0, kernel: Linux x86 64-bit version 4.9.29

Code:
19:04:57.938 T:140402379511488  NOTICE: Starting Kodi (17.4 Git:7fc6da0). Platform: Linux x86 64-bit
19:04:57.938 T:140402379511488  NOTICE: Using Release Kodi x64 build
19:04:57.938 T:140402379511488  NOTICE: Kodi compiled Aug 29 2017 by GCC 6.2.0 for Linux x86 64-bit version 4.11.12 (264972)
19:04:57.938 T:140402379511488  NOTICE: Running on LibreELEC (official): 8.1.1 8.2, kernel: Linux x86 64-bit version 4.11.12

What dziobak says is true; the problem here is PHP and not the add-on itself. But what makes me puzzled is that PHP is working whith LibreELEC 8.0.2 and not with LibreELEC 8.1.1....but both of them are running on the same platform! So I guess that PHP binaries should be the working ok...

May be, instead to insist with the PHP binary from my repository (i.e. php-cgi_5.6_x86_64), is there a way to download and install PHP binaries through command line in linux? I know that there is a version 7 (that actually is the one used on Windows machines). I'm not an expert in that, so I leave the floor open to who have more confidence with it.

Looking for some good updates! Nod

P.S.: The error received during the PHP installation is due to a persistent bug in Kodi 17.x (as djhifi correctly pointed referring to the first post of this thread). Despite such error, PHP is installed correctly.
(2017-09-21, 10:16)axlt2002 Wrote: [ -> ]...but both of them are running on the same platform! So I guess that PHP binaries should be the working ok...

RPi ARM version of php-cgi is static linking. What is for x86 architecture? I see in code, that different versions are downloaded (depends on Linux version), so I think, they are dynamic linked to system libraries. If something is missing in 8.1.1 then php-cgi will crash -> gives empty result (this is external process, so python not see why process ending). Simple test is run php-cgi or ldd it.
(2017-09-21, 11:02)dziobak Wrote: [ -> ]
(2017-09-21, 10:16)axlt2002 Wrote: [ -> ]...but both of them are running on the same platform! So I guess that PHP binaries should be the working ok...

RPi ARM version of php-cgi is static linking. What is for x86 architecture? I see in code, that different versions are downloaded (depends on Linux version), so I think, they are dynamic linked to system libraries. If something is missing in 8.1.1 then php-cgi will crash -> gives empty result (this is external process, so python not see why process ending). Simple test is run php-cgi or ldd it.

Good morning dziobak! Smile

Can you please take a look to this link? https://www.archlinux.org/packages/extra...4/php-cgi/

It seems that is referring to a php-cgi binary (version 7) that could be used on djhifi platform...but how is possible to download/install it? My knowledge of Linux is almost 0...

Edit: another way is to download php from the official site (http://php.net/downloads.php) but I guess this code should be compiled in some way on the platform it should run on...any idea?

Edit2: I found this: http://de.linuxfromscratch.org/blfs/view...l/php.html Can be of help?
(2017-09-20, 17:56)dziobak Wrote: [ -> ]http://kodi.wiki/view/Add-on_structure

look at addon-type table

and from there https://forum.kodi.tv/showthread.php?tid=315666

"The abstraction is a virtual filesystem. The plugin can return directories (calls to itself with particular parameters), playable files or just files which is the hook to do 'stuff' which does not generate a new listing, such as show a dialog, search etc.

If this abstraction is not appripriate, you want to do a script instead. This is a fullblown window, with full customization of the gui components and such. More work.

the library extension point is for code shared between multiple pluginsources and/or scripts. It is not related to the media library interpretation of the term library"

Just to come back shortly to this point...to be honest I do not see any constraints in the ID name that an add-on has to respect in relation to its type...mine runs as a service (or script) but I could call him even "mickey.mouse" Wink I really don't want that the issue you experienced was due to a "left-over" of a previous installation...actually this is still a mistery for me! Nod
(2017-09-21, 11:24)axlt2002 Wrote: [ -> ]Can you please take a look to this link? https://www.archlinux.org/packages/extra...4/php-cgi/

It seems that is referring to a php-cgi binary (version 7) that could be used on djhifi platform...but how is possible to download/install it? My knowledge of Linux is almost 0...

Edit: another way is to download php from the official site (http://php.net/downloads.php) but I guess this code should be compiled in some way on the platform it should run on...any idea?

Edit2: I found this: http://de.linuxfromscratch.org/blfs/view...l/php.html Can be of help?

Hi Axlt,
about php-cgi, this can be one of two main binary versions:
1. static build, where compiled binary have not dependencies on other system components like libraries - that build will run on every Linux machine with compatible architecture.
2. dynamic build (defaults for compilation process because are better: faster, low memory consumption) - where compiled binary depends on other system libraries (and sometimes strict version number) and not run without

I think that best for your add-on will be static compilation of php-cgi for x86 platform - that build will work on every x86 Linux system (32/64-bit).
Otherwise you must provide php-cgi binary for every different Linux system/version.
(2017-09-21, 14:35)dziobak Wrote: [ -> ]
(2017-09-21, 11:24)axlt2002 Wrote: [ -> ]Can you please take a look to this link? https://www.archlinux.org/packages/extra...4/php-cgi/

It seems that is referring to a php-cgi binary (version 7) that could be used on djhifi platform...but how is possible to download/install it? My knowledge of Linux is almost 0...

Edit: another way is to download php from the official site (http://php.net/downloads.php) but I guess this code should be compiled in some way on the platform it should run on...any idea?

Edit2: I found this: http://de.linuxfromscratch.org/blfs/view...l/php.html Can be of help?

Hi Axlt,
about php-cgi, this can be one of two main binary versions:
1. static build, where compiled binary have not dependencies on other system components like libraries - that build will run on every Linux machine with compatible architecture.
2. dynamic build (defaults for compilation process because are better: faster, low memory consumption) - where compiled binary depends on other system libraries (and sometimes strict version number) and not run without

I think that best for your add-on will be static compilation of php-cgi for x86 platform - that build will work on every x86 Linux system (32/64-bit).
Otherwise you must provide php-cgi binary for every different Linux system/version.

Hi dziobak,

Thanks a lot for your answer.

Ok, I understand the point now and static build seems to be the way to go. What is just still confusing me is that changing the version of LibreELEC made such error appears...may be the 8.1.1 is missing some libraries wrt 8.0.2? Anyway...

@djhifi, please find at this link the version of php-cgi I have downloaded from https://www.archlinux.org/packages/extra...4/php-cgi/. Can you please give it a try following the istructions provided yesterday by dziobak? You have essentially to copy the php-cgi file into the php-binary folder you find under addon_data\service.light.imdb.ratings.update and make it executable (there is a linux command to do that). Let me know if with this version it is going to work...
(2017-09-21, 15:00)axlt2002 Wrote: [ -> ]Ok, I understand the point now and static build seems to be the way to go. What is just still confusing me is that changing the version of LibreELEC made such error appears...may be the 8.1.1 is missing some libraries wrt 8.0.2? Anyway...

ldd shows every binary dependecies and lack of libraries

i.e. on my RPi

PHP Code:
LibreELEC (official): 8.1.1 (RPi2.arm)
PiBob:~ # ldd /usr/bin/python
        
linux-vdso.so.1 (0x7eca4000)
        /
usr/lib/libarmmem.so (0x76ebf000)
        
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x76d2d000)
        
libc.so.6 => /usr/lib/libc.so.6 (0x76bf6000)
        
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x76bce000)
        
libdl.so.2 => /usr/lib/libdl.so.2 (0x76bbb000)
        
libutil.so.1 => /usr/lib/libutil.so.1 (0x76ba8000)
        
libm.so.6 => /usr/lib/libm.so.6 (0x76b2a000)
        /
lib/ld-linux-armhf.so.3 (0x76ed4000

About libraries in 8.1.1 vs 8.0.2 - missing or changing to other - PHP are full of modules and dependencies on other system components. If something was replaced ...
ldd on php-cgi shows dependencies
(2017-09-21, 15:45)dziobak Wrote: [ -> ]
(2017-09-21, 15:00)axlt2002 Wrote: [ -> ]Ok, I understand the point now and static build seems to be the way to go. What is just still confusing me is that changing the version of LibreELEC made such error appears...may be the 8.1.1 is missing some libraries wrt 8.0.2? Anyway...

ldd shows every binary dependecies and lack of libraries

i.e. on my RPi

PHP Code:
LibreELEC (official): 8.1.1 (RPi2.arm)
PiBob:~ # ldd /usr/bin/python
        
linux-vdso.so.1 (0x7eca4000)
        /
usr/lib/libarmmem.so (0x76ebf000)
        
libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x76d2d000)
        
libc.so.6 => /usr/lib/libc.so.6 (0x76bf6000)
        
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x76bce000)
        
libdl.so.2 => /usr/lib/libdl.so.2 (0x76bbb000)
        
libutil.so.1 => /usr/lib/libutil.so.1 (0x76ba8000)
        
libm.so.6 => /usr/lib/libm.so.6 (0x76b2a000)
        /
lib/ld-linux-armhf.so.3 (0x76ed4000

About libraries in 8.1.1 vs 8.0.2 - missing or changing to other - PHP are full of modules and dependencies on other system components. If something was replaced ...
ldd on php-cgi shows dependencies

Cool! Let's wait for the feedback from djhifi then. May be he could also try the php-cgi I posted above.

For the time being, have a good continuation of the day!
(2017-09-21, 15:00)axlt2002 Wrote: [ -> ]Ok, I understand the point now and static build seems to be the way to go.

Or left php at all. Do you see this?
http://imdbpy.sourceforge.net/
(2017-09-22, 13:00)dziobak Wrote: [ -> ]
(2017-09-21, 15:00)axlt2002 Wrote: [ -> ]Ok, I understand the point now and static build seems to be the way to go.

Or left php at all. Do you see this?
http://imdbpy.sourceforge.net/

Thanks dziobak, I will take a look to it as soon as possible.

Cheers,

Alex