# Inferencium # Portage - bashrc # Copyright 2022-2023 Inference # SPDX-License-Identifier: GPL-3.0-or-later # Version: 1.0.0.2 # Automatically update cfg-update index. pre_pkg_setup() { [[ $ROOT = / ]] && cfg-update --index } function pre_pkg_preinst() { # Sign out-of-tree kernel modules. if [[ "$(type -t linux-mod_pkg_preinst)" != "function" ]]; then # The package does not seem to install any kernel modules. return fi # Get signature algorithm used by the kernel. local module_sig_hash="$(grep -Po '(?<=CONFIG_MODULE_SIG_HASH=").*(?=")' "${KERNEL_DIR}/.config")" # Get the key file used by the kernel. local module_sig_key="$(grep -Po '(?<=CONFIG_MODULE_SIG_KEY=").*(?=")' "${KERNEL_DIR}/.config")" module_sig_key="${module_sig_key:-certs/signing_key.pem}" # Key file or PKCS11 URI path. if [[ "${module_sig_key#pkcs11:}" == "${module_sig_key}" && "${module_sig_key#/}" == "${module_sig_key}" ]]; then local key_path="${KERNEL_DIR}/${module_sig_key}" else local key_path="${module_sig_key}" fi # Certificate path. local cert_path="${KERNEL_DIR}/certs/signing_key.x509" # Sign all installed modules before merging. find "${D%/}/${INSDESTTREE#/}/" -name "*.ko" -exec "${KERNEL_DIR}/scripts/sign-file" "${module_sig_hash}" "${key_path}" "${cert_path}" '{}' \; }