Updated the dependencies and scripts for python3:
* `python-dbus` no longer exists in Debian 11 'bullseye' or Ubuntu > 20.04, installl the `python3` version
* `python-gobject` has been superseeded by `python(3)-gi`, the current package is just a transitional package that pulls
`python-gi` and the old `python-gobject-2` (deprecated). Update the dependencies and the scripts to use the new package.
* set python3 as interpreter for the helper scripts. Fixed the dict syntax for getting items
* running RetroPie-Setup on boot isn't efficient / it should work without RetroPie-Setup present.
* running it as root on boot causes /opt/retropie/configs/all to be chowned to root due to setupDirectories call
Currently, enumerating devices with non-ascii characters results in a UnicodeEncodeError.
Simply ignore non-ascii characters to ensure devices can be listed.
* rp_module_menus is no more - instead use rp_module_section with one of
- core (core packages)
- main (main packages - which will be installed by default in the image)
- opt (optional packages)
- exp (experimental packages)
- driver (driver packages)
- config (configuration packages / tools)
* The setup menu organises the data based on the above sections. more could be added in the future if needed. Packages (internally modules), can be added / configured / removed individually, or as entire sections.
* The setup menu will automatically detect if a binary is available to be installed. the nobin flag is no longer needed. modules that install directly from binary via aptInstall or via a prebuilt binary need to use an install_bin_ function instead of install_
* rp_module_section of type "config" will have the "gui_" function called first if it's available, otherwise a standard depends/sources/build/install/configure will be called
* configure is no longer used for "gui" configuration function - use gui_ instead. Had already started to move to this before, but now it is required.
* include some test scripts from the bluez5 repository as they are not readily available on jessie - meaning we don't have to rewrite everything
* use bluetoothctl for discovery of devices as hcitool scan lists devices, but doesn't make them available via bluez dbus api