summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-12-25 19:30:41 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-12-25 19:30:41 +0000
commit026061ba423025e6713112920f290759cdee03c4 (patch)
tree0e557363849e4d5c1320820fcf175bc1ec9690ab /eclass
parent479921825a5c44a5fbcd5441f00ee98e54db9bac (diff)
gentoo auto-resync : 25:12:2023 - 19:30:41
Diffstat (limited to 'eclass')
-rw-r--r--eclass/Manifest.gzbin38920 -> 38916 bytes
-rw-r--r--eclass/kernel-build.eclass30
-rw-r--r--eclass/kernel-install.eclass24
3 files changed, 44 insertions, 10 deletions
diff --git a/eclass/Manifest.gz b/eclass/Manifest.gz
index 5af37874c52c..307ddee8a1c8 100644
--- a/eclass/Manifest.gz
+++ b/eclass/Manifest.gz
Binary files differ
diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index 70eb1243fcbc..29ee9f86e7e2 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -283,9 +283,18 @@ kernel-build_src_install() {
# Modules were already stripped by the kernel build system
dostrip -x /lib/modules
+ local compress=()
+ if [[ ${KERNEL_IUSE_GENERIC_UKI} ]] && ! use module-compress; then
+ compress+=(
+ # force installing uncompressed modules even if compression
+ # is enabled via config
+ suffix-y=
+ )
+ fi
+
emake O="${WORKDIR}"/build "${MAKEARGS[@]}" \
INSTALL_MOD_PATH="${ED}" INSTALL_MOD_STRIP="${strip_args}" \
- INSTALL_PATH="${ED}/boot" "${targets[@]}"
+ INSTALL_PATH="${ED}/boot" "${compress[@]}" "${targets[@]}"
# note: we're using mv rather than doins to save space and time
# install main and arch-specific headers first, and scripts
@@ -386,10 +395,10 @@ kernel-build_src_install() {
local dracut_modules=(
base bash btrfs cifs crypt crypt-gpg crypt-loop dbus dbus-daemon
- dm dmraid drm dracut-systemd fido2 i18n fs-lib kernel-modules
+ dm dmraid dracut-systemd fido2 i18n fs-lib kernel-modules
kernel-network-modules kernel-modules-extra lunmask lvm nbd
mdraid modsign network network-manager nfs nvdimm nvmf pcsc
- pkcs11 plymouth qemu qemu-net resume rngd rootfs-block shutdown
+ pkcs11 qemu qemu-net resume rngd rootfs-block shutdown
systemd systemd-ac-power systemd-ask-password systemd-initrd
systemd-integritysetup systemd-pcrphase systemd-sysusers
systemd-udevd systemd-veritysetup terminfo tpm2-tss udev-rules
@@ -414,6 +423,8 @@ kernel-build_src_install() {
--reproducible
--ro-mnt
--modules "${dracut_modules[*]}"
+ # Pulls in huge firmware files
+ --omit-drivers "nfp"
)
# Tries to update ld cache
@@ -424,7 +435,7 @@ kernel-build_src_install() {
local ukify_args=(
--linux="${image}"
--initrd="${image%/*}/initrd"
- --cmdline="root=/dev/gpt-auto-root ro quiet splash"
+ --cmdline="root=/dev/gpt-auto-root ro"
--uname="${dir_ver}"
--output="${image%/*}/uki.efi"
)
@@ -547,6 +558,17 @@ kernel-build_merge_configs() {
fi
fi
+ # Only semi-related but let's use that to avoid changing stable ebuilds.
+ if [[ ${KERNEL_IUSE_GENERIC_UKI} ]]; then
+ # NB: we enable this even with USE=-module-compress, in order
+ # to support both uncompressed and compressed modules in prebuilt
+ # kernels
+ cat <<-EOF > "${WORKDIR}/module-compress.config" || die
+ CONFIG_MODULE_COMPRESS_XZ=y
+ EOF
+ merge_configs+=( "${WORKDIR}/module-compress.config" )
+ fi
+
if [[ ${#user_configs[@]} -gt 0 ]]; then
elog "User config files are being applied:"
local x
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index 9612700a1431..8c4d5c14fc03 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -79,7 +79,7 @@ _IDEPEND_BASE="
LICENSE="GPL-2"
if [[ ${KERNEL_IUSE_GENERIC_UKI} ]]; then
- IUSE+=" generic-uki"
+ IUSE+=" generic-uki module-compress"
# https://github.com/AndrewAmmerlaan/dist-kernel-log-to-licenses
# This script can help with generating the array below, keep in mind
# that it is not a fully automatic solution, i.e. use flags will
@@ -127,7 +127,6 @@ if [[ ${KERNEL_IUSE_GENERIC_UKI} ]]; then
["dev-libs/openssl"]="Apache-2.0"
["dev-libs/userspace-rcu"]="LGPL-2.1"
["media-libs/libmtp"]="LGPL-2.1"
- ["media-libs/libpng"]="libpng2"
["media-libs/libv4l"]="LGPL-2.1+"
["net-dns/c-ares"]="MIT ISC"
["net-dns/libidn2"]="|| ( GPL-2+ LGPL-3+ ) GPL-3+ unicode"
@@ -159,15 +158,12 @@ if [[ ${KERNEL_IUSE_GENERIC_UKI} ]]; then
["sys-apps/nvme-cli"]="GPL-2 GPL-2+"
["sys-apps/pcsc-lite"]="BSD ISC MIT GPL-3+ GPL-2"
["sys-apps/rng-tools"]="GPL-2"
- ["sys-apps/sandbox"]="GPL-2"
["sys-apps/sed"]="GPL-3+"
["sys-apps/shadow"]="BSD GPL-2"
["sys-apps/systemd[boot(-),cryptsetup,pkcs11,policykit,tpm,ukify(-)]"]="GPL-2 LGPL-2.1 MIT public-domain"
["sys-apps/util-linux"]="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain"
["sys-auth/polkit"]="LGPL-2"
["sys-block/nbd"]="GPL-2"
- ["sys-block/open-isns"]="LGPL-2.1"
- ["sys-boot/plymouth"]="GPL-2"
["sys-devel/gcc"]="GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+"
["sys-fs/btrfs-progs"]="GPL-2"
["sys-fs/cryptsetup"]="GPL-2+"
@@ -192,7 +188,6 @@ if [[ ${KERNEL_IUSE_GENERIC_UKI} ]]; then
["sys-libs/readline"]="GPL-3+"
["sys-libs/zlib"]="ZLIB"
["sys-process/procps"]="GPL-2+ LGPL-2+ LGPL-2.1+"
- ["x11-libs/libdrm"]="MIT"
["amd64? ( sys-firmware/intel-microcode )"]="amd64? ( intel-ucode )"
["x86? ( sys-firmware/intel-microcode )"]="x86? ( intel-ucode )"
)
@@ -200,6 +195,9 @@ if [[ ${KERNEL_IUSE_GENERIC_UKI} ]]; then
generic-uki? ( ${INITRD_PACKAGES[@]} )
"
+ RDEPEND+="
+ sys-apps/kmod[lzma]
+ "
IDEPEND="
generic-uki? (
|| (
@@ -762,6 +760,20 @@ kernel-install_pkg_config() {
kernel-install_install_all "${PV}${KV_LOCALVERSION}"
}
+# @FUNCTION: kernel-install_compress_modules
+# @DESCRIPTION:
+# Compress modules installed in ED, if USE=module-compress is enabled.
+kernel-install_compress_modules() {
+ debug-print-function ${FUNCNAME} "${@}"
+
+ if use module-compress; then
+ einfo "Compressing kernel modules ..."
+ # taken from scripts/Makefile.modinst
+ find "${ED}/lib" -name '*.ko' -exec \
+ xz --check=crc32 --lzma2=dict=1MiB {} + || die
+ fi
+}
+
fi
EXPORT_FUNCTIONS src_test pkg_preinst pkg_postinst pkg_prerm pkg_postrm