diff options
author | Dennis Lamm <expeditioneer@gentoo.org> | 2022-04-18 19:43:20 +0200 |
---|---|---|
committer | Dennis Lamm <expeditioneer@gentoo.org> | 2022-04-18 20:35:13 +0200 |
commit | 222a6f7373a7f3b7ca427ccaefcfd3e1f9de7b12 (patch) | |
tree | a5184e3851b89d0a0a67c322758b3a949e5577e4 /sys-kernel | |
parent | dev-python/wrapt: Stabilize 1.14.0 hppa, #838517 (diff) | |
download | gentoo-222a6f7373a7f3b7ca427ccaefcfd3e1f9de7b12.tar.gz gentoo-222a6f7373a7f3b7ca427ccaefcfd3e1f9de7b12.tar.bz2 gentoo-222a6f7373a7f3b7ca427ccaefcfd3e1f9de7b12.zip |
sys-kernel/raspberrypi-sources: version bump to 5.15.32
Signed-off-by: Dennis Lamm <expeditioneer@gentoo.org>
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Closes: https://github.com/gentoo/gentoo/pull/25093
Signed-off-by: Dennis Lamm <expeditioneer@gentoo.org>
Diffstat (limited to 'sys-kernel')
3 files changed, 562 insertions, 0 deletions
diff --git a/sys-kernel/raspberrypi-sources/Manifest b/sys-kernel/raspberrypi-sources/Manifest index eb3102756743..a5d6b7d798ce 100644 --- a/sys-kernel/raspberrypi-sources/Manifest +++ b/sys-kernel/raspberrypi-sources/Manifest @@ -1,3 +1,6 @@ +DIST genpatches-5.15-1.base.tar.xz 515540 BLAKE2B 245520300cb9ea1a0803dd4497b3f98bad3ddd29851f8f1273e3b51a3479c03a4915f601f1df216593a36b6f7593ba852dbbb7f106a40260c14b4590201b8fb9 SHA512 baa107fdd1c893ba977391cc429542b90de96d0cf4e6a671e392ef8e0f795d5ce1e4d2e74c214a907c9bf35fbdcfcec220785a4e66322b6191f097eabadeb567 +DIST genpatches-5.15-1.extras.tar.xz 1772 BLAKE2B e4c9b0ccfcdade38239cbf0e8db14e46b394b3da9a08c2538f81c602e9c8f52ffaeac0b441831ac771e6a19314a8a7d61b5411e1762c7705c555bea5a478dd68 SHA512 59290f7ea30bebb5137829a1d69b22b2170ff06a794e06b334f03312174e31ed9be9c8372396b482a936283a79e557f813755b5fed77a5485b2144d1d4b0e52a DIST linux-5.10.11_p20210201-raspberrypi.tar.gz 186311431 BLAKE2B 1ba95e54232fafc421eee4a1966c9ead0420d51bc32a87050aeb15d8f75217fbaa727f5f41855d3771feb720e6395eef13453ff83b1bd8c486deafec11926e38 SHA512 776b71e7be700c1ec14a0fddbb6374c84d5645323a72871a4e76d095c73c26891e6fac548aebbadd34f0b8d5d4c340935e281cdec314b29bf7d3bf41351958b9 DIST linux-5.10.63_p20211029-raspberrypi.tar.gz 186550447 BLAKE2B 44e04467a63c5761c252280c5fbff48c3fa058891ff03623ed7fb872f0a22883ed2e3b8703847e30c1a6f5cf523db1248f027c89ce1558280f1012fa300308a7 SHA512 b050f74b5a62d355cd630d41f2f63df285662347048ed97db1bac2a74f1cefeddb31b7b352aa509e90d7f03832ad2ca8e1e476d8eac62b334132a3ab308559fc DIST linux-5.15.30_p20220328-raspberrypi.tar.gz 199315946 BLAKE2B d41be462f84e38b2d0cec97d18f6d2be32572fdbff34ee85f233c869728a357a6f86bb743a7530ee307d77ee09c89ec5b6d68ff0ea45d11a475432e7b1be43e2 SHA512 0a2d241dcd5a57a0f465cb8ceb898f7ed3ed93427be10052778d0980bf1949cdeb49faf6bcd650bf442c73df544ff52e6867b7ca3c30e4ad7fde36b596b03658 +DIST linux-5.15.32_p20220331-raspberrypi.tar.gz 199328000 BLAKE2B 06bfd61bfa94666101e0092246bfc3449ad6278f2a85104511320b27c76e5677011c7ee723f4af7f445d21dccd02ff40e73d7bfcf2fdd2f287465e2f0ff586f5 SHA512 bf20a5ea32975de8b88842f639f3e4bd2e92c51846fc00ddfca9cc4040590983d9820cfa19836bf54061780f9e8c0a1293e8aa74a7da20e2e7edd84b3932f8d7 diff --git a/sys-kernel/raspberrypi-sources/files/raspberrypi-sources-5.15.32-gentoo-kconfig.patch b/sys-kernel/raspberrypi-sources/files/raspberrypi-sources-5.15.32-gentoo-kconfig.patch new file mode 100644 index 000000000000..8c8535a86a03 --- /dev/null +++ b/sys-kernel/raspberrypi-sources/files/raspberrypi-sources-5.15.32-gentoo-kconfig.patch @@ -0,0 +1,474 @@ +diff --git a/Kconfig b/Kconfig +index 745bc773f567..16628b0c76d9 100644 +--- a/Kconfig ++++ b/Kconfig +@@ -5,6 +5,8 @@ + # + mainmenu "Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration" + ++source "distro/Kconfig" ++ + source "scripts/Kconfig.include" + + source "init/Kconfig" +diff --git a/distro/Kconfig b/distro/Kconfig +new file mode 100644 +index 000000000000..531a636c959d +--- /dev/null ++++ b/distro/Kconfig +@@ -0,0 +1,378 @@ ++menu "Gentoo Linux" ++ ++config GENTOO_LINUX ++ bool "Gentoo Linux support" ++ ++ default y ++ ++ select CPU_FREQ_DEFAULT_GOV_SCHEDUTIL ++ ++ help ++ In order to boot Gentoo Linux a minimal set of config settings needs to ++ be enabled in the kernel; to avoid the users from having to enable them ++ manually as part of a Gentoo Linux installation or a new clean config, ++ we enable these config settings by default for convenience. ++ ++ See the settings that become available for more details and fine-tuning. ++ ++config GENTOO_LINUX_UDEV ++ bool "Linux dynamic and persistent device naming (userspace devfs) support" ++ ++ depends on GENTOO_LINUX ++ default y if GENTOO_LINUX ++ ++ select DEVTMPFS ++ select TMPFS ++ select UNIX ++ ++ select MMU ++ select SHMEM ++ ++ help ++ In order to boot Gentoo Linux a minimal set of config settings needs to ++ be enabled in the kernel; to avoid the users from having to enable them ++ manually as part of a Gentoo Linux installation or a new clean config, ++ we enable these config settings by default for convenience. ++ ++ Currently this only selects TMPFS, DEVTMPFS and their dependencies. ++ TMPFS is enabled to maintain a tmpfs file system at /dev/shm, /run and ++ /sys/fs/cgroup; DEVTMPFS to maintain a devtmpfs file system at /dev. ++ ++ Some of these are critical files that need to be available early in the ++ boot process; if not available, it causes sysfs and udev to malfunction. ++ ++ To ensure Gentoo Linux boots, it is best to leave this setting enabled; ++ if you run a custom setup, you could consider whether to disable this. ++ ++config GENTOO_LINUX_PORTAGE ++ bool "Select options required by Portage features" ++ ++ depends on GENTOO_LINUX ++ default y if GENTOO_LINUX ++ ++ select CGROUPS ++ select NAMESPACES ++ select IPC_NS ++ select NET_NS ++ select PID_NS ++ select SYSVIPC ++ select USER_NS ++ select UTS_NS ++ ++ help ++ This enables options required by various Portage FEATURES. ++ Currently this selects: ++ ++ CGROUPS (required for FEATURES=cgroup) ++ IPC_NS (required for FEATURES=ipc-sandbox) ++ NET_NS (required for FEATURES=network-sandbox) ++ PID_NS (required for FEATURES=pid-sandbox) ++ SYSVIPC (required by IPC_NS) ++ ++ ++ It is highly recommended that you leave this enabled as these FEATURES ++ are, or will soon be, enabled by default. ++ ++menu "Support for init systems, system and service managers" ++ visible if GENTOO_LINUX ++ ++config GENTOO_LINUX_INIT_SCRIPT ++ bool "OpenRC, runit and other script based systems and managers" ++ ++ default n ++ ++ depends on GENTOO_LINUX ++ ++ select BINFMT_SCRIPT ++ select CGROUPS ++ select EPOLL ++ select FILE_LOCKING ++ select INOTIFY_USER ++ select SIGNALFD ++ select TIMERFD ++ ++ help ++ The init system is the first thing that loads after the kernel booted. ++ ++ These config settings allow you to select which init systems to support; ++ instead of having to select all the individual settings all over the ++ place, these settings allows you to select all the settings at once. ++ ++ This particular setting enables all the known requirements for OpenRC, ++ runit and similar script based systems and managers. ++ ++ If you are unsure about this, it is best to leave this setting enabled. ++ ++menuconfig GENTOO_LINUX_INIT_SYSTEMD ++ bool "systemd" ++ default y ++ depends on GENTOO_LINUX && GENTOO_LINUX_UDEV ++ ++ select CGROUPS ++ select DEVTMPFS ++ select DMIID if X86_32 || X86_64 || X86 ++ select EPOLL ++ select FHANDLE ++ select INOTIFY_USER ++ select PROC_FS ++ select SIGNALFD ++ select SYSFS ++ select TIMERFD ++ select UNIX ++ ++ help ++ The init system is the first thing that loads after the kernel booted. ++ ++ These config settings allow you to select which init systems to support; ++ instead of having to select all the individual settings all over the ++ place, these settings allows you to select all the settings at once. ++ ++ This particular setting enables all the known requirements for systemd; ++ it also enables suggested optional settings, as the package suggests to. ++ ++if GENTOO_LINUX_INIT_SYSTEMD ++ ++comment "systemd config options" ++ ++config GENTOO_LINUX_INIT_SYSTEMD_CRYPTO ++ bool "Systemd crypto/hash api" ++ default y ++ select CRYPTO_HMAC ++ select CRYPTO_SHA256 ++ select CRYPTO_USER_API_HASH ++ ++config GENTOO_LINUX_INIT_SYSTEMD_SCSI ++ bool "Support for some SCSI devices serial number retrieval" ++ default n ++ select BLK_DEV_BSG ++ ++config GENTOO_LINUX_INIT_SYSTEMD_PRIVATE_NETWORKS ++ bool "Support PrivateNetwork directive in service units" ++ default y ++ select NET_NS ++ ++ help ++ systemd-localed.service and other systemd units use ++ PrivateNetwork so this is effectively required ++ ++config GENTOO_LINUX_INIT_SYSTEMD_PRIVATE_USERS ++ bool "Support PrivateUsers directive in service units" ++ default y ++ select USER_NS ++ ++config GENTOO_LINUX_INIT_SYSTEMD_CPUSHARES ++ bool "Support CPUShares in resource control unit settings" ++ default y ++ select CGROUP_SCHED ++ select FAIR_GROUP_SCHED ++ ++config GENTOO_LINUX_INIT_SYSTEMD_CPUQUOTA ++ bool "Support CPUQuota in resource control unit settings" ++ default y ++ select CFS_BANDWIDTH ++ ++config GENTOO_LINUX_INIT_SYSTEMD_NETWORK_FILTERING ++ bool "Support network traffic filtering for IP packets and custom network traffic filters in resource control unit settings" ++ default y ++ select BPF ++ select BPF_SYSCALL ++ select BPF_JIT ++ select CGROUP_BPF ++ select HAVE_EBPF_JIT ++ ++ help ++ Required for IPAddressDeny=, IPAddressAllow=, IPIngressFilterPath=, ++ IPEgressFilterPath= in resource control unit settings ++ ++config GENTOO_LINUX_INIT_SYSTEMD_NETWORK ++ bool "Restrict Sockets and Network Interface access in resource control unit settings" ++ default y ++ select BPF ++ select BPF_SYSCALL ++ select BPF_JIT ++ select CGROUP_BPF ++ select EFIVAR_FS if ( X86_32 || X86_64 || X86 ) && CONFIG_EFI ++ select EFI_PARTITION if ( X86_32 || X86_64 || X86 ) && CONFIG_EFI ++ select HAVE_EBPF_JIT ++ ++ help ++ Allow or deny binding a socket address to a socket by matching ++ it with the bind-rule and applying a corresponding action if ++ there is a match. Also restricts the network interfaces that ++ processes of this unit can use. ++ ++config GENTOO_LINUX_INIT_SYSTEMD_FILESYSTEMS ++ bool "Support RestrictFileSystems directive in service units" ++ default n ++ depends on !GENTOO_KERNEL_SELF_PROTECTION ++ select BPF ++ select BPF_SYSCALL ++ select BPF_LSM ++ select DEBUG_INFO_BTF ++ ++ help ++ Also required to select LSM="...,bpf" or kernel booted with ++ lsm="...,bpf". ++ ++config GENTOO_LINUX_INIT_SYSTEMD_OOMD ++ bool "Support systemd-oomd" ++ default y ++ select PSI ++ ++config GENTOO_LINUX_INIT_SYSTEMD_VERITY ++ bool "Support signed Verity images" ++ default n ++ select DM_VERITY_VERIFY_ROOTHASH_SIG ++ ++config GENTOO_LINUX_INIT_SYSTEMD_OPTIONAL ++ bool "Optional but strongly recommended modules" ++ default y ++ select AUTOFS_FS ++ select IPV6 ++ select KCMP ++ select SECCOMP ++ select SECCOMP_FILTER if HAVE_ARCH_SECCOMP_FILTER ++ select TMPFS_XATTR ++ ++ select 9P_FS_POSIX_ACL if 9P_FS ++ select BTRFS_FS_POSIX_ACL if BTRFS_FS ++ select CEPH_FS_POSIX_ACL if CEPH_FS ++ select EROFS_FS_POSIX_ACL if EROFS_FS ++ select EXT2_FS_POSIX_ACL if EXT2_FS3 ++ select EXT3_FS_POSIX_ACL if EXT3_FS ++ select EXT4_FS_POSIX_ACL if EXT4_FS ++ select F2FS_FS_POSIX_ACL if F2FS_FS ++ select NTFS3_FS_POSIX_ACL if NTFS3_FS ++ select REISERFS_FS_POSIX_ACL if REISERFS_FS ++ select TMPFS_POSIX_ACL if TMPFS ++ select XFS_POSIX_ACL if XFS_FS ++endif ++endmenu ++ ++menuconfig GENTOO_KERNEL_SELF_PROTECTION ++ bool "Kernel Self Protection Project" ++ depends on GENTOO_LINUX ++ help ++ Recommended Kernel settings based on the suggestions from the Kernel Self Protection Project ++ See: https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings ++ Note, there may be additional settings for which the CONFIG_ setting is invisible in menuconfig due ++ to unmet dependencies. Search for GENTOO_KERNEL_SELF_PROTECTION_COMMON and search for ++ GENTOO_KERNEL_SELF_PROTECTION_{X86_64, ARM64, X86_32, ARM} for dependency information on your ++ specific architecture. ++ Note 2: Please see the URL above for numeric settings, e.g. CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 ++ for X86_64 ++ ++if GENTOO_KERNEL_SELF_PROTECTION ++config GENTOO_KERNEL_SELF_PROTECTION_COMMON ++ bool "Enable Kernel Self Protection Project Recommendations" ++ ++ depends on GENTOO_LINUX && !ACPI_CUSTOM_METHOD && !COMPAT_BRK && !DEVKMEM && !PROC_KCORE && !COMPAT_VDSO && !KEXEC && !HIBERNATION && !LEGACY_PTYS && !X86_X32 && !MODIFY_LDT_SYSCALL && GCC_PLUGINS && !GENTOO_LINUX_INIT_SYSTEMD_FILESYSTEMS ++ ++ select BUG ++ select STRICT_KERNEL_RWX ++ select DEBUG_WX ++ select STACKPROTECTOR ++ select STACKPROTECTOR_STRONG ++ select STRICT_DEVMEM if DEVMEM=y ++ select IO_STRICT_DEVMEM if DEVMEM=y ++ select SYN_COOKIES ++ select DEBUG_CREDENTIALS ++ select DEBUG_NOTIFIERS ++ select DEBUG_LIST ++ select DEBUG_SG ++ select BUG_ON_DATA_CORRUPTION ++ select SCHED_STACK_END_CHECK ++ select SECCOMP if HAVE_ARCH_SECCOMP ++ select SECCOMP_FILTER if HAVE_ARCH_SECCOMP_FILTER ++ select SECURITY_YAMA ++ select SLAB_FREELIST_RANDOM ++ select SLAB_FREELIST_HARDENED ++ select SHUFFLE_PAGE_ALLOCATOR ++ select SLUB_DEBUG ++ select PAGE_POISONING ++ select PAGE_POISONING_NO_SANITY ++ select PAGE_POISONING_ZERO ++ select INIT_ON_ALLOC_DEFAULT_ON ++ select INIT_ON_FREE_DEFAULT_ON ++ select REFCOUNT_FULL ++ select FORTIFY_SOURCE ++ select SECURITY_DMESG_RESTRICT ++ select PANIC_ON_OOPS ++ select GCC_PLUGIN_LATENT_ENTROPY ++ select GCC_PLUGIN_STRUCTLEAK ++ select GCC_PLUGIN_STRUCTLEAK_BYREF_ALL ++ select GCC_PLUGIN_RANDSTRUCT ++ select GCC_PLUGIN_RANDSTRUCT_PERFORMANCE ++ ++ help ++ Search for GENTOO_KERNEL_SELF_PROTECTION_{X86_64, ARM64, X86_32, ARM} for dependency ++ information on your specific architecture. Note 2: Please see the URL above for ++ numeric settings, e.g. CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 for X86_64 ++ ++config GENTOO_KERNEL_SELF_PROTECTION_X86_64 ++ bool "X86_64 KSPP Settings" if GENTOO_KERNEL_SELF_PROTECTION_COMMON ++ ++ depends on !X86_MSR && X86_64 && GENTOO_KERNEL_SELF_PROTECTION ++ default n ++ ++ select RANDOMIZE_BASE ++ select RANDOMIZE_MEMORY ++ select RELOCATABLE ++ select LEGACY_VSYSCALL_NONE ++ select PAGE_TABLE_ISOLATION ++ select GCC_PLUGIN_STACKLEAK ++ select VMAP_STACK ++ ++ ++config GENTOO_KERNEL_SELF_PROTECTION_ARM64 ++ bool "ARM64 KSPP Settings" ++ ++ depends on ARM64 ++ default n ++ ++ select RANDOMIZE_BASE ++ select RELOCATABLE ++ select ARM64_SW_TTBR0_PAN ++ select CONFIG_UNMAP_KERNEL_AT_EL0 ++ select GCC_PLUGIN_STACKLEAK ++ select VMAP_STACK ++ ++config GENTOO_KERNEL_SELF_PROTECTION_X86_32 ++ bool "X86_32 KSPP Settings" ++ ++ depends on !X86_MSR && !MODIFY_LDT_SYSCALL && !M486 && X86_32 ++ default n ++ ++ select HIGHMEM64G ++ select X86_PAE ++ select RANDOMIZE_BASE ++ select RELOCATABLE ++ select PAGE_TABLE_ISOLATION ++ ++config GENTOO_KERNEL_SELF_PROTECTION_ARM ++ bool "ARM KSPP Settings" ++ ++ depends on !OABI_COMPAT && ARM ++ default n ++ ++ select VMSPLIT_3G ++ select STRICT_MEMORY_RWX ++ select CPU_SW_DOMAIN_PAN ++ ++endif ++ ++config GENTOO_PRINT_FIRMWARE_INFO ++ bool "Print firmware information that the kernel attempts to load" ++ ++ depends on GENTOO_LINUX ++ default y ++ ++ help ++ Enable this option to print information about firmware that the kernel ++ is attempting to load. This information can be accessible via the ++ dmesg command-line utility ++ ++ See the settings that become available for more details and fine-tuning. ++ ++endmenu ++ +diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig +index 5b24f3959255..3e470a3dab39 100644 +--- a/drivers/base/firmware_loader/Kconfig ++++ b/drivers/base/firmware_loader/Kconfig +@@ -70,6 +70,7 @@ config EXTRA_FIRMWARE_DIR + + config FW_LOADER_USER_HELPER + bool "Enable the firmware sysfs fallback mechanism" ++ depends on !GENTOO_LINUX_INIT_SYSTEMD + select FW_LOADER_PAGED_BUF + help + This option enables a sysfs loading facility to enable firmware +diff --git a/init/Kconfig b/init/Kconfig +index 11f8a845f259..c826ddeb9ab3 100644 +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -1008,6 +1008,7 @@ config CFS_BANDWIDTH + config RT_GROUP_SCHED + bool "Group scheduling for SCHED_RR/FIFO" + depends on CGROUP_SCHED ++ depends on !GENTOO_LINUX_INIT_SYSTEMD + default n + help + This feature lets you explicitly allocate real CPU bandwidth +@@ -1272,6 +1273,7 @@ config SCHED_AUTOGROUP + config SYSFS_DEPRECATED + bool "Enable deprecated sysfs features to support old userspace tools" + depends on SYSFS ++ depends on !GENTOO_LINUX_INIT_SYSTEMD + default n + help + This option adds code that switches the layout of the "block" class +diff --git a/mm/Kconfig b/mm/Kconfig +index c048dea7e342..81a1dfd69adc 100644 +--- a/mm/Kconfig ++++ b/mm/Kconfig +@@ -305,6 +305,8 @@ config KSM + config DEFAULT_MMAP_MIN_ADDR + int "Low address space to protect from user allocation" + depends on MMU ++ default 65536 if ( X86_64 || X86_32 || PPC64 || IA64 ) && GENTOO_KERNEL_SELF_PROTECTION ++ default 32768 if ( ARM64 || ARM ) && GENTOO_KERNEL_SELF_PROTECTION + default 4096 + help + This is the portion of low virtual memory which should be protected +diff --git a/security/Kconfig b/security/Kconfig +index fe6c0395fa02..6b1b81cd120e 100644 +--- a/security/Kconfig ++++ b/security/Kconfig +@@ -166,6 +166,7 @@ config HARDENED_USERCOPY + config HARDENED_USERCOPY_FALLBACK + bool "Allow usercopy whitelist violations to fallback to object size" + depends on HARDENED_USERCOPY ++ depends on !GENTOO_KERNEL_SELF_PROTECTION + default y + help + This is a temporary option that allows missing usercopy whitelists +@@ -181,6 +182,7 @@ config HARDENED_USERCOPY_PAGESPAN + bool "Refuse to copy allocations that span multiple pages" + depends on HARDENED_USERCOPY + depends on EXPERT ++ depends on !GENTOO_KERNEL_SELF_PROTECTION + help + When a multi-page allocation is done without __GFP_COMP, + hardened usercopy will reject attempts to copy it. There are, +diff --git a/security/selinux/Kconfig b/security/selinux/Kconfig +index 9e921fc72538..9e1f7ce887b6 100644 +--- a/security/selinux/Kconfig ++++ b/security/selinux/Kconfig +@@ -12,6 +12,7 @@ config SECURITY_SELINUX + config SECURITY_SELINUX_BOOTPARAM + bool "NSA SELinux boot parameter" + depends on SECURITY_SELINUX ++ depends on !GENTOO_KERNEL_SELF_PROTECTION + default n + help + This option adds a kernel parameter 'selinux', which allows SELinux diff --git a/sys-kernel/raspberrypi-sources/raspberrypi-sources-5.15.32_p20220331.ebuild b/sys-kernel/raspberrypi-sources/raspberrypi-sources-5.15.32_p20220331.ebuild new file mode 100644 index 000000000000..1a8fb5d7e9f2 --- /dev/null +++ b/sys-kernel/raspberrypi-sources/raspberrypi-sources-5.15.32_p20220331.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ETYPE=sources +K_EXP_GENPATCHES_NOUSE=1 +K_GENPATCHES_VER=2 +K_DEFCONFIG="bcmrpi_defconfig" +K_GENPATCHES_VER=1 +K_SECURITY_UNSUPPORTED=1 +K_WANT_GENPATCHES="base extras" + +inherit kernel-2 linux-info +detect_version +detect_arch + +MY_P=$(ver_cut 4-) +MY_P="1.${MY_P/p/}" + +DESCRIPTION="Raspberry Pi kernel sources" +HOMEPAGE="https://github.com/raspberrypi/linux" +SRC_URI=" + https://github.com/raspberrypi/linux/archive/${MY_P}.tar.gz -> linux-${KV_FULL}.tar.gz + ${GENPATCHES_URI} +" + +KEYWORDS="~arm ~arm64" + +PATCHES=("${FILESDIR}"/${PN}-$(ver_cut 1-3)-gentoo-kconfig.patch) + +UNIPATCH_EXCLUDE=" + 10* + 4567_distro-Gentoo-Kconfig.patch" + +pkg_setup() { + ewarn "" + ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way." + ewarn "If you need support, please contact the raspberrypi developers directly." + ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with" + ewarn "the ebuilds. Thank you." + ewarn "" + + kernel-2_pkg_setup +} + +src_unpack() { + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + cd "${WORKDIR}" || die + unpack linux-${PV}-raspberrypi.tar.gz + + # We want to rename the unpacked directory to a nice normalised string + # bug #762766 + mv linux-${MY_P} linux-${KV_FULL} || die "Unable to move source tree to ${KV_FULL}." + + # remove all backup files + find . -iname "*~" -exec rm {} \; 2>/dev/null +} + +src_prepare() { + # kernel-2_src_prepare doesn't apply PATCHES(). + default + + cd "${WORKDIR}/linux-${KV_FULL}" || die + + handle_genpatches --set-unipatch-list + [[ -n ${UNIPATCH_LIST} || -n ${UNIPATCH_LIST_DEFAULT} || -n ${UNIPATCH_LIST_GENPATCHES} ]] && \ + unipatch "${UNIPATCH_LIST_DEFAULT} ${UNIPATCH_LIST_GENPATCHES} ${UNIPATCH_LIST}" + + unpack_fix_install_path + + # Setup xmakeopts and cd into sourcetree. + env_setup_xmakeopts + cd "${S}" || die +} + +pkg_postinst() { + kernel-2_pkg_postinst +} + +pkg_postrm() { + kernel-2_pkg_postrm +} |