simonc
20-05-20, 20:11
I'm looking for some volunteers to test a change to one of the files used to represent information about services/channels.
Why?
For many years, there have been two ways for the Enigma2 code to pass information that identifies a channel: eServiceReference is defined and used by the enigma2 executable, and ServiceReference in the Python UI. The Python UI also has to do a lot of conversion from its preferred ServiceReference object to the enigma2 executable's eServiceReference. What this means is
- more code has been needed to check whether a conversion is needed
- more code has been needed to do the conversions
- there are more places for mistakes to be made and bugs to creep in. In fact, ServiceReference itself has some quirks that make for unpredictable behaviour.
So, after a year or so of putting up with this as being just the ways things are, I'm hoping to simplify things for anyone looking to do any Enigma2 development. There's no immediate benefit to you as you sit on your sofa unfortunately!
The change involves a single file, /usr/lib/enigma2/python/ServiceReference.py, which has been altered to make the two different types behave as if they are the same thing. This shouldn't have any adverse impact on OpenVix's behaviour, and hasn't in the week or so I've been running the change myself. I don't, however, run any fancy plugins (catchup, EPG or IPTV) or skins. So, to progress this change further, I'd like to get wider testing: I'm especially interested in feedback if you're running additional plugins or non standard skins, but even if you're not, the more testing this gets the better.
Requirements
There's no minimum version required, but being on at least 5.3 is advisable
You must be able to FTP and be able to issue commands using Putty etc just in case there is a problem.
If you encounter errors, I'll need crash logs to help diagnose the problem.
Please say the exact button steps to reproduce the error and any relevant options enabled.
If you are using IPTV, remember to remove IPTV credentials before uploading logs.
Due to the nature of the change, there is a very slight risk of recordings being set on incorrect channels or being saved with the wrong channel information. I've not seen this myself, but if you're recording anything absolutely unmissable, revert to the original whilst that happens.
Testing the new file:
1. Create a settings backup just in case you have problems. This is unlikely, but a sensible precaution.
2. Create a copy of /usr/lib/enigma2/python/ServiceReference.pyo. Call it something like ServiceRefernce.pyo.orig
3. Extract the attachment into the /usr/lib/enigma2/python/ folder
4. Restart GUI.
Reverting to the original
1. Delete /usr/lib/enigma2/python/ServiceReference.py
2. Rename ServiceReference.pyo.orig to ServiceReference.pyo
3. Restart GUI
Thanks to anyone that volunteers!
60240
Why?
For many years, there have been two ways for the Enigma2 code to pass information that identifies a channel: eServiceReference is defined and used by the enigma2 executable, and ServiceReference in the Python UI. The Python UI also has to do a lot of conversion from its preferred ServiceReference object to the enigma2 executable's eServiceReference. What this means is
- more code has been needed to check whether a conversion is needed
- more code has been needed to do the conversions
- there are more places for mistakes to be made and bugs to creep in. In fact, ServiceReference itself has some quirks that make for unpredictable behaviour.
So, after a year or so of putting up with this as being just the ways things are, I'm hoping to simplify things for anyone looking to do any Enigma2 development. There's no immediate benefit to you as you sit on your sofa unfortunately!
The change involves a single file, /usr/lib/enigma2/python/ServiceReference.py, which has been altered to make the two different types behave as if they are the same thing. This shouldn't have any adverse impact on OpenVix's behaviour, and hasn't in the week or so I've been running the change myself. I don't, however, run any fancy plugins (catchup, EPG or IPTV) or skins. So, to progress this change further, I'd like to get wider testing: I'm especially interested in feedback if you're running additional plugins or non standard skins, but even if you're not, the more testing this gets the better.
Requirements
There's no minimum version required, but being on at least 5.3 is advisable
You must be able to FTP and be able to issue commands using Putty etc just in case there is a problem.
If you encounter errors, I'll need crash logs to help diagnose the problem.
Please say the exact button steps to reproduce the error and any relevant options enabled.
If you are using IPTV, remember to remove IPTV credentials before uploading logs.
Due to the nature of the change, there is a very slight risk of recordings being set on incorrect channels or being saved with the wrong channel information. I've not seen this myself, but if you're recording anything absolutely unmissable, revert to the original whilst that happens.
Testing the new file:
1. Create a settings backup just in case you have problems. This is unlikely, but a sensible precaution.
2. Create a copy of /usr/lib/enigma2/python/ServiceReference.pyo. Call it something like ServiceRefernce.pyo.orig
3. Extract the attachment into the /usr/lib/enigma2/python/ folder
4. Restart GUI.
Reverting to the original
1. Delete /usr/lib/enigma2/python/ServiceReference.py
2. Rename ServiceReference.pyo.orig to ServiceReference.pyo
3. Restart GUI
Thanks to anyone that volunteers!
60240