OpenBh 6.0 Release Now Available

Status
Not open for further replies.

Ev0

Admin
Staff member
Administrator
OpenBh 6.0

Bootlogo 6.0.png

Important Notice:

If you like OpenBh and you want to see it continue, please don't forget to donate towards keeping the servers online.

Keeping OpenBh and this Forum online is getting more and more expensive. It costs in the region of €2400+ per year to keep OpenBh and this Forum online. OpenBh has always been provided to completely free of charge by a number of hard working OpenBh Team members in their spare time.



OpenBh 6.0 is based on the OE-Alliance 6.0 core.



So what is different in OpenBh 6.0 then?


The main change from version 5.6 to version 6.0 has been changes to oe-alliance-core branch 6.0. The OE (Open Embedded) core on which the image is built has undergone major changes, updates and fixes. Version 6.0 uses Python version 3.14.6.

Whats New:

  • OE-A 6.0
  • Python 3.14.6
  • Gstreamer updated to version 1.28.4
  • HDR10 / HLG detection now supported on Vu+/ Gigablue / Zgemma 4K broadcom boxes.
  • If your favourite plugins no longer work, you will need to contact the plugin authors to ask them to update their plugins for Python3.14.6

PLEASE KEEP IN MIND THAT OE6.0 Branch is currently still considered beta, therefore future updates could require full reflashes, rather than simple online updates.
However nothing new is being added to the old 5.6 branch and rather than wait months and months for OE6.0 to go to full release stage, we feel it is currently very stable and good enough for release.




*** You can not online update from 5.6 to 6.0, you must reflash (you can do this using image and backup manager and then restore your settings backup) ***


Apart from the above you should not notice many differences between previous OpenBh 5.6 and OpenBh 6.0 images.


*** NOTE ***

If you use CrossEPG, then you will need to delete the crossepg folder in /media/usb or /media/hdd before you can use it in OpenBh 5.4 onwards, this is due to changes made, to keep it compatible with Python 3.12.x



2-png.3628



Where can I find the OpenBh git ?


The OpenBh git is located here: https://github.com/BlackHole


Vu+ Multiboot wouldn't have been possible without the hundreds of hours that dpeddi has spent over several years (yes it's been an on going project for him in his spare time for many years) to bring this real multiboot option for all Vu+ 4K boxes.

It is something we requested from Vu+ around 2015 and they told us it was not possible to add it, well finally we can prove them wrong.


You will find more information on how to setup and use Vu+ Multiboot here:

Thanks to:

  • Rytec, doglover and all the teams that host EPG feeds for EPG Importer, for their continued support.
  • All developers for their plugins used in the feeds of this image.
  • dpeddi for the massive amount of work he did to bring real Multiboot to Vu+ 4K boxes.
  • Twol for the work he did in integrating Vu+ Multiboot into the images
  • All of the OpenBh Beta team for their hours of testing and dedication on improving the image.
  • All those who have submitted patches/fixes
  • To all who have submitted translation work for OpenBh.
  • Twol for the conversion to Python 3. This has involved manually converting literally hundreds of Python files and associated c++ code.
  • Huevos and Twol for testing, debugging, and responding to feedback and problems.
  • Huevos for his work on blindscan and ABM.
  • Peter de Jonge, abu baniaz & Huevos for their work with Andyblac to improve ABM.
  • Matrix10 for OpenBh skins.

DISCLAIMER

THE OPENBH IMAGE DOES NOT CONTAIN ANY EMULATOR, K E Y S, SOFTCAMS OR OTHER SYSTEM FOR VIEWING PAY - TV WITH OR WITHOUT A PAID SUBSCRIPTION.

THE OPENBH IMAGE DOES NOT CONTAIN ANY SYSTEM TO DOWNLOAD PLUGINS OR EMULATORS FROM EXTERNAL SERVERS OR SOFTWARE THAT MAY BE USED FOR ILLEGAL PURPOSES SUCH AS CARD SHARING.


WE NO LONGER SUPPORT THE FOLLOWING BOXES:
Vu+ Solo, Duo, Uno
Edision OS Nino Pro, OS Nino+, OS Mini 4K, OS Mio4k+
Amiko Viper4K V40
Zgemma H8.2H
Octagon Sfx6008/6018, Sx988, Sx88v2




*** You need to set a Password to use FTP, TELNET & SSH ***


You can find the images in the downloads section here:
 
*** WARNING ***

DO NOT ONLINE UPDATE TO OpenBh 6.0.002 YOU WILL HAVE ISSUES IF YOU ATTEMPT TO ONLINE UPDATE.



As said in the post above currently OpenBh 6.0 is stable but still a beta branch, so that means frequent updates to OE-A git and those require full rebuilds which then breaks online update compatibility.

So to update to OpenBh 6.0.002 you must reflash the box, the quickest way to do this if you do not already know, is to go into Backup & Image manager, create a settings backup and then go into image manager and download the latest OpenBh image.

Then install that downloaded image and after the box reboots, restore the settings backup you previously created.
 

OpenBh 6.0.002

As above you can not online update to 6.0.002 you must reflash.
  • Added Support for Vu+ Duo4K Lite
  • Added Support for Zgemma H8.2H SE
  • Add real Audio Codec detection to Enigma2, Enigma2 can now detect the actual audio codec in use (Dolby Digital, Dolby Digital+, Dolby Atmos, AAC, HE-AAC, AAC-LC etc etc) and is able to display the correct codec in use, rather than just merge them all into AC3, AC3+, AAC labels.
  • Add real Audio channels detection to Enigma2, Enigma2 can now detect how many audio channels are in use, so it can now tell you if the content you are viewing is using 1 channel, 2 channels, 5.1 channels, or 7.1 channels (this is just telling you what the broadcast / source material provides, not what is actually being passed through to your audio equipment.
  • Added option to Transcode DTS / DTS-HD (MA / HRA etc) to Dolby Digital (useful for those that have tv's / audio equipment that does not support DTS).
  • Added option to Transcode Dolby TrueHD to Dolby Digital (most stb's can only downmix TrueHD to stereo pcm, so this is useful to retain surround sound).
  • Added dynamic converters for audio icons for skinners (so you don't need to list every audio codec icon in the skin.xml).
  • Fixed AC3 Passthrough_Fix on Ultimo4K / Duo4KSE on encrypted channels.
  • Fixed AC3 Passthrough_Fix on Ultimo4K / Duo4KSE on Stream-Relay channels.
  • [PluginBrowser] add recursive close
  • [PluginBrowser] tweak whitelist filtering
  • [TemplatedMultiContent] fix typo
  • [setup.xml] make "Infobar fade-out speed" subordinate to "Enable infobar fade-out"
  • Refine blitting robustness: clamp rounded corner blits
  • Fix unreliable hardware alpha blending on forced acceleration targets
  • Refine video plane clearing and hardware blitting fallback
  • Refine UI rendering, alpha blending, and improve performance
  • [LanguageSelection] avoid chained MessageBoxes when deleting languages
  • [PluginDownloadComponent] scale icons to fit properly.
  • [LanguageSelection] add class LanguageDownloadBrowser
  • [PluginDownloadBrowser] allow calling code to supply its own "prefix_whitelist"
  • [PluginBrowser] update package filtering
  • [ConfigList] send description to choicebox
  • [ChoiceBox] free up "text" widget if not used for "title" handling
  • [elistbox] refine wrap-around logic to consider orientation for selection movement
  • [elistbox] fix wrap-around logic for selection movement at boundaries
  • [elistbox] ensure content is always painted to clear stale pixels
  • [elistbox] enhance selection movement with wrap-around functionality
  • [PluginBrowser] load default plugin icon only once
  • [README] add ccache
  • [PluginBrowser] switch to Components.Sources.List The skin xml is inspected on init and if the old name="list" is detected, Components.PluginList is loaded instead
  • Fix transparency and compositing order in immediate mode rendering
  • [Translations] Updated Finnish (fi.po) translation
  • [MediaPlayer] remove intermediate variable "self.filelist"
  • [MediaPlayer.settings] add config descriptions
  • [MediaPlayer.settings] use Setup screen
  • [FileList] inParentDirs(): fix parent directory checks incorrectly matching paths like /media/hdd2 as /media/hdd. getMountpoint() uses the same startswith() test, but its values include trailing slashes, so that test is safe.
  • [FileList] use path.join, not string concatenation
  • [FileList] Simplify getMountpointLink path handling
  • [Addons/Pager] add arithmetic for grid layouts
  • [TemplatedMultiContent] fix arithmetic bug Horizontal values were getting multiplied by the vertical multiplier and vice versa.
  • [FileList] fix long-standing bug directory always has a trailing slash, whereas return value from "path.realpath" has no trailing slash, so this condition always returned False
  • [FileList] getMountpoint/getMountpointLink: readability, argument is a directory, not a file
  • [FileList] expects "directory" to be an absolute path terminated with a trailing slash. Enforce that.
  • [PluginBrowser] - add Kodi Addon
  • [python_pmt_i] PyInt_FromLong to PyLong_FromLong
  • [nl.po] update
  • [eDVBServicePlay] - compatibility flags with OpenATV for plugins & webp
  • [RestoreWizard/BackupManager] add a watchdog for stalled plugin restores Instead of waiting indefinitely, like before, if there is no callback, after 5 minutes kill the running process and attempt to restore the next plugin
  • [Console] ePopen: avoid mutable default args (same pattern as eBatch)
  • [ServicePosition] various 1. Add complete skin arg list 2. Remove dead code 3. Tweak error message
  • [UsageConfig] use loop for repeating code
  • [tstools.cpp] attempt to fix spurious display of remaining time while watching movies that have suspicious .ap files When fixupPTS() is called with a PTS value up to 10 seconds before m_pts_begin (which can happen at the start of a recording when the .ap access-point table cannot resolve the exact position), the code is intended to clamp now to the recording start (0).
  • [UsageConfig] add comment about date/time code
  • [UsageConfig] fix untested date/time code
  • [ClockToText] use formatters where possible
  • [CutListEditor] remove pointless loop-through functions
  • [AVswitch] - fix HDR_Type when no choices Proc
  • [havehdmihdrosd] - set in SystemInfo
  • [dvb.cpp] fix cutlist editor crash when adding 'start cut here'
  • [display480] update TunerPanel
  • [Translations] Updated Finnish (fi.po) translation
  • [setup.xml] add a text
  • [CutListEditor] useability improvements to stp the interface jamming Author: @xcentaurix
  • [FixedMenu] add a default colour
  • [ColorizeText] add default option
  • [FixedMenu/CutListEditor] skip-over/grey-out non callable list items
  • [About] use ColorizeText class
  • [Hex2strColor] add ColorizeText class
  • [ServicePosition] refactor The original is ~350 lines of near-total duplication in getText() - every OSD branch had a byte-for-byte twin in the VFD branch.
  • [RemainingToText] Move module level format functions to a helper file
  • [RemainingToText] make formatters are module-level functions, not bound methods
  • [UsageConfig] build choice lists just once for repeating configs
  • [setup.xml] add reboot on "Show media playback remaining/elapsed"
  • [RemainingToText] change label: INTERVALS > POLL_INTERVALS
  • [RemainingToText] add comment
  • [Converter.Remaining] Read "VFD" from "type" and then discard it from the string. - Work out what formatting is required in __init__ and apply it there. This allows getText() (the function that is continually polled) to do a lot less work. - Drop "self.type" and magic constants completely because all the work is done in __init__ . - Type "VFD" becomes "VFDInMinutes" (made backwards compatible). - Format functions moved out of the class to global level (allowing external use).
 
  • [ScreenSummary] tweak priority of skin names
  • [AVSwitch, VideoMode] correct typos
  • [AVSwitch] modify fileWriteLine call
  • [AVSwitc, Vieomode] - add conditional GigaBlue HDR cotrols
  • [ButtonSetup] remove exec() calls
  • [ButtonSetup] improve plugin iteration
  • [ButtonSetup] extend test to all classes that inherit MoviePlayer
  • [UsageConfig] config.usage.swap_time, add bare minutes to user override
  • [RemainingToText] tweak poll interval for Mins Secs
  • [RemainingToText] add bare minutes ("54", not "54 Mins") for when display space is limited Author: @xcentaurix
  • [ButtonSetup] helpableButtonSetupActionMap: Every other class in the module stats with upper case so follow that convention
  • [Plugin] tweak comments
  • [InfoBarGenerics] skip using boundFunction as a wrapper when not passing arguments
  • [InfoBarPlugins] check compatibility before loading in extensions list
  • [Plugin] properly explain WHERE_EXTENSIONSMENU args
  • [gpixmap] change attribution
  • [gpixmap] cannot blit 0 bpp
  • [http(s)stream] - handle streamrelay with legacy code
  • [font.cpp] whitespace cleanup
  • [BouquetList] fix zombi screen after deleting an active channel from the list
  • [filepush] don't set m_buffer_min_write = 0
  • Fix HEVC SPS parser hang on malformed/truncated bitstream data
  • [AudioSettings] Fix wrong text
  • add a guard that prevents unnecessary pmt/pat parsing for non-ts stream formats
  • [enigma2] add .ap/.sc file creation for stream recording
  • [enigma2] Fix eServiceMP3Record::stop() UI freeze on stuck recording
  • Font - preserve line-start flag across color escapes
  • hdr change
  • broader stall fix
  • [eServiceMP3] add watchdog so failure stopping service shows in the debug log
  • [eServiceMP3] attempt to fix endless spinner on zap when GST take too long releasing channel
  • [Navigation] fix RetryTimer
  • [MultiBootSelector] add missing commas, this is a tuple membership test, not a substring test
  • [Downloader] on a non-2xx status, release the underlying connection cleanly, do not leave dangling
  • Font - fix color reset followed by new color sequence
  • [Dowloader] add fixes by @jbleyel
  • Accept the alternative color notation (: ; < = > ?) supported by gRGB.
  • [Renderer.Progress] ensure value stays in range
  • [Tools.Multiboot] rewrite some sections to improve readability by flattening Logic should be identical, and in testing debug prints the same as before.
  • [Multiboot] simplify Mainly use helpers to simplify precedural code. Use subprocess.run to completely replace Console().ePopen()
  • Scan - update progress after last scanned transponder
  • [Tools.Multiboot] add missing presets in init
  • [Multiboot] move multiboot initalisation out of SystemInfo and into Tools.Multiboot. Call directly from StartEnigma.
  • [Tools.Multiboot] add some helper functions to avoid code duplication
  • [Tools.Multiboot] add comment
  • [Console] add comment
  • [MultiBootSelector] - resolve mounted partition
  • [Multiboot] - ensure mounted volume is unmounted.
  • [Screens.ServiceInfo] avoid possible UnboundLocalError
  • [Multiboot] fix hidden bug "slotnumber not in bootslots" will always be true because slotnumber is str, and bootsloots has int keys
  • [Multiboot] fix error in previous commit. SystemInfo["MultiBootSlot"] is an int
  • [About] addColor: add compatability with d22a2c4ae7e263371c071fe810cc3007bfa36381
  • [Font] use \C to restore the original color - use \C to restore the default foreground color - \c changes the color only when followed by 8 valid hexadecimal digits - invalid \c sequences are rendered as normal text
  • [Tools.Multiboot] add missing assignment of "slot" to SystemInfo["MultiBootSlot"] Needs testing by someone that has this hardware.
  • [Tools.Multiboot] getBootCodeDescription: as this is a compatibility function, mimic OpenATV implementation
  • [Multiboot] remove slotname mutations from the active code while it is work in progress
  • [Console] fix crash when a callback-less command fails to launch
  • [BackupManager] add XtraPluginsSelectionSummary
  • [BackManager] XtraPluginsSelection.saveSelection(): enforce "/media/mountpoint/relative_path"
  • [BackupManager] handle failure on delete
  • [BackManager] remove nonsense backupdir
  • [BackupManager] remove dead code
  • [BackupManager] remove unnecessary condition ("if self.didPluginsRestore or self.didSettingsRestore:" has already ruled out didSettingsRestore being True)
  • [BackupManager] various 1) Stage4Complete: remove popup. The user does not need a popup to tell them what they chose in the previous screen. 2) Previous behaviour if settings restore was declined and no plugins to restore, or on error was to just dump the user in the enigma menu without any warning. This commit shows an informative message and then returns to the backup list.
  • [BackupManager] delete a nonsense task
  • [BackManager] fix leak Move ActionMaps to __init__(). Previously the ActionMap was in populate_List, which is called from backupRunning() — which reschedules itself via self.activityTimer.startLongTimer(5) for as long as the screen stays open. Reassigning self["myactions"] to a brand-new ActionMap doesn't automatically release the old one in Enigma2; each new instance just gets pushed onto the action stack alongside the previous ones. Leave this screen open a while causes a slow leak.
  • [ImageManager] populate_List: always hide buttons and actions and only reinstate if the mount is available
  • [About] add handling to return to the default colour (set by the renderer) after text colour highlighting See: 25230f7066c0d95341ad8f2c453621b1512542dc
  • [About] colours: a single entry in skin parameters would not be comma separated and therefore an int, not a list
  • [font] - use \c escape sequence to restore previous color if not followed by 8 hex chars
  • [BackupManager] populate_List, fix hacky formatted string sort. Use tuple.
  • [BackupManager] populate_List exception: use OSError
  • [ImageManager] spelling error
  • [BackupManager] "populate_List", change inappropriate gui message on exception The previous message "Please reformat the device..." could be destructive
  • [BackupManager] "populate_List", add debug on exception
  • [BackupManager] "Stage2Complete" fix logic: "if" should be "elif"
  • [BackupManager] remove a str.replace This is a filepath not a url. Later "path.exists(thirdpartyPluginsLocation)" will fail if the path had contained spaces.
  • [BackupManager] correctly handle saving config
  • [BackupManager] fix operator precedence
  • [ImageManager] fix typo
  • [ImageManager] fix some obvious coding/syntax errors
  • [Navigation] Restore service references after stopService to maintain valid state
  • [Service] Optimize responsiveness and prevent UI freezes
  • Scan - include current transponder in progress calculation
  • [ClockRealtimeMonitor] improve error handling
  • [eTimer] remove the ASSERTs that were added in a previous commit
  • [SkinConfig] attempt to simplify
  • [SkinReload] add PluginDescriptor.WHERE_SKINCHANGE
  • [Sources.Clock] remove temporary debug
  • [HDR] Refine event dispatch for HDR status changes
  • [enigma2] Prevent main-thread hang from dead network-mounted picon paths
  • [eServiceMP3] Prevent main-thread lockups during HDR probe and stop
  • [OnlineUpdateCheck] increase timeout when checking for software updates
  • [TemplatedMultiContentEx] second attempt to silence PEP8 warnings
  • [Clock] use ClockRealtimeMonitor and eTimer.startEpochAligned
  • [python_base.i] update eTimer
  • [TemplatedMultiContentEx] attempt to silence PEP8 warnings
  • [MessageBox] further attempt to silence PEP8 nag messages
  • [ClockRealtimeMonitor] fix indent
  • [NetworkTime] use ClockRealtimeMonitor to trigger callbacks
  • [eTimer] add method "startEpochAligned"
  • [ClockRealtimeMonitor] add module
  • [enigma2] for IPTV channels return blank as satellite orbital position
  • [enigma2] remove talkative debug prints
 
Status
Not open for further replies.
Back
Top