Running autoreconf on libtool is necessary after bumping to automake 1.15.1.
Build intltool before libtool.
Since libtool installs libtoolize, don't run --install whenever libtoolize isn't yet installed.
Core Kernel modules are now installed to
/usr/lib/kernel-overlays/base/lib/modules instead of /usr/lib/modules
Firmware files are installed to
/usr/lib/kernel-overlays/base/lib/firmware instead of /usr/lib/firmware
Packages can choose to install their modules and/or firmwareinto a
different overlay directory than base so they are not automatically enabled.
A new systemd service kernel-overlays, which is run before any modules
are loaded, adds overlays enabled via /storage/.cache/kernel-overlays/*.conf
These conf files must either contain the name of a system overlay,
which will then be searched for in /usr/lib/kernel-overlays/, or an
absolute path starting with '/'.
Overlaying is implemented by symlinking files from the overlays
to /usr/lib/modules and /usr/lib/firmware as not all platforms
support overlayfs.
This overlaying system can also be used by addons to provide optional
kernel modules and/or firmware by storing the absolute path to the addon
directory in the conf file and shipping kernel modules in
<addondir>/lib/modules/<KERNELVER>.
To save space only symlinks for modules matching the currently
running kernel version are created as addons may want to ship
modules for older kernel versions as well to be backward-compatible
to older LibreELEC versions.
Changes since v1:
- fixup kernel-overlays-service: add before kmod-static-nodes.service
Fix static device nodes for module autoloading not being created.
- fixup kernel-overlays-service: fail if /usr/lib/modules exists
- squash kernel overlays: use get_kernel_overlay_dir in linux/package.mk
- Add support for firmware files via kernel overlays
- config/functions: include kernel overlays in addon installation
Signed-off-by: Matthias Reichl <hias@horus.com>
xmlstarlet uses an exit code of 1 if the value wasn't found.
This causes the build to abort as the scripts are running with
"set -e".
Fix this so the code checking for empty responses can work
as intended.
Signed-off-by: Matthias Reichl <hias@horus.com>
Usage of PKG_NAME was a bug carried over from the original code
during refactoring. Since none of the addons set PKG_SECTION, and
therefore PKG_NAME and PKG_ADDON_ID were identical, this wasn't
noticed before.
Drop using PKG_NAME and only use PKG_ADDON_ID to fix this,
install_binary_addon can then also be used for addons which set
PKG_SECTION.
Signed-off-by: Matthias Reichl <hias@horus.com>
It returns the full module directory path, including /usr/lib/modules.
Use that in package.mk files to simply them and get rid of the
repeatedly added paths.
Signed-off-by: Matthias Reichl <hias@horus.com>