summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanne Grunau <j@jannau.net>2024-05-19 15:40:50 +0200
committerSam James <sam@gentoo.org>2024-05-19 17:46:38 +0100
commitcb4377173212fc0e7f5ac75a68bb6536bb7beb2c (patch)
treed44266b330050ea653121840be121b02b724eabe
parentmail-client/roundcube: drop 1.5.5 (diff)
downloadgentoo-cb4377173212fc0e7f5ac75a68bb6536bb7beb2c.tar.gz
gentoo-cb4377173212fc0e7f5ac75a68bb6536bb7beb2c.tar.bz2
gentoo-cb4377173212fc0e7f5ac75a68bb6536bb7beb2c.zip
sys-kernel/asahi-sources: add 6.8.9_p6
This switches asahi-sources to patch based build based on genpatches for stable releases and asahi patches as requested from github on top. This requires a little bit of cleanup. The asahi "patchset" contains a SPI change merged in 6.8.2. So revert this first so the asahi patches apply cleanly. The desired RUST support in asahi "patchset" creates circular dependencies with GCC_PLUGIN_RANDSTRUCT slected by GENTOO_KERNEL_SELF_PROTECTION_COMMON. Remove randstruct from the latter to break the circular dependencies. Signed-off-by: Janne Grunau <j@jannau.net> Closes: https://github.com/gentoo/gentoo/pull/36743 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--sys-kernel/asahi-sources/Manifest4
-rw-r--r--sys-kernel/asahi-sources/asahi-sources-6.8.9_p6.ebuild78
-rw-r--r--sys-kernel/asahi-sources/files/asahi-6.8-config-gentoo-Drop-RANDSTRUCT-from-GENTOO_KERNEL_SEL.patch40
-rw-r--r--sys-kernel/asahi-sources/files/asahi-6.8.2_revert_spi_stable_asahi.patch46
4 files changed, 168 insertions, 0 deletions
diff --git a/sys-kernel/asahi-sources/Manifest b/sys-kernel/asahi-sources/Manifest
index 0c86b984215f..742e602c34cf 100644
--- a/sys-kernel/asahi-sources/Manifest
+++ b/sys-kernel/asahi-sources/Manifest
@@ -1,3 +1,7 @@
+DIST genpatches-6.8-12.base.tar.xz 687664 BLAKE2B 3c27ee511c258f3659d7f8cd5b6d470ffa10a2fc95bd536b272e0bb20c368dfc8c512f23fdc025e85ad90d6f628a58c80d8d15ec0ef8898caf7461162cf2dec2 SHA512 cd845b49341366190834b9782c9ffa270608a35e616ff483b40094913f6d01809421b80a7830117b606e57e6bb0ed9b0ed6dc14220826364fc9d2ee6a5916ad6
+DIST genpatches-6.8-12.extras.tar.xz 3736 BLAKE2B 15a15ca3097dc42ac5855e59fe61c961854c1afa8adc719c761ac58bb7c869d3240c228b0963a91927a9bc0af6998b4c40e4d286faf7d2defc2f21029d11c114 SHA512 4f1c8c07e81c0d1ed110bd4512d2a16c3e202c47d8ab6bedf5213cf6c2f8675e9b543e52dbce50fbbf550d88252e2c1c19c2465ddd7907f11a2979fa92466a7c
+DIST linux-6.8.tar.xz 142502100 BLAKE2B c6f17f816cea16e629f63e9379b98888713f57b2c5173306926471f139a9d612a0c74e119341f8075390e55e203d787d9edeb4ad5a064b18870f6f0f7ffaafb2 SHA512 5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068
DIST linux-asahi-6.8.8-2.tar.gz 235265018 BLAKE2B cf543955971865d65c048b7021a8bf4d9711294afd49e4ce31bf3e4761dea8724950a52a7b6b852645760e0abb1ca2abe1ac6c3feafbcb933a53e56dcc4044e4 SHA512 101566de3777517d151effcdd2e38b6a5d5961754734cdabfae7c359bbf0f35e2c7a4ecb912d4c300adb3f09ecaa31eafaf076d849171e0e5244ec29a0bf30a4
DIST linux-asahi-6.8.9-3.tar.gz 235275610 BLAKE2B 8ee3ff2572a02851d66239c65187312a0f67aa492d9c3b3a734e291b250acbf9450960c745687ff98a339e4cc14a2eab7675c08d39f88de0c0aa7c320d20bdc8 SHA512 ebd854b357a1d0a7663129f48956da559bc23a4347836dd0c3a3eb8cd47013ed86d83711dc2b7a221c28f51bd0c42c0b1ea2302ef45ee4a2ddfbfacf33e6efc2
DIST linux-asahi-6.8.9-5.tar.gz 235264452 BLAKE2B 5a08d3df1d0e1fc274a68f29ab592c790421d58dafa5533b7f526f13c5046d668e0c864b9a71f2c5b736a1890a65ba0877694b11bbde9acf5ff873f7a8a5a167 SHA512 e592959bfd546588df26bcec6b6de86dc3450d6ae89b073b272dd41b9927a7c2b09b9f8ff77b3cc80393b65821062eddabe351f177bfc1f732f11d685594412f
+DIST linux-asahi-6.8.9-6.patch 5163031 BLAKE2B de6411c7f6bb95fec4162648c89d6bf6be5e863d4647877c4cbbb9e4c8540b12b1dacd42c26a1d3561a36fe6c79650caf5e0481338764a10101cec53921043c7 SHA512 0cc24bf50c16cb6fc59bf9bd025babcdca081bc789da5791d0fd914c65d31342cc632998fe4a667296ee3ed067b311dc105e994e2a77d569bac3a8ed48fb5ecc
diff --git a/sys-kernel/asahi-sources/asahi-sources-6.8.9_p6.ebuild b/sys-kernel/asahi-sources/asahi-sources-6.8.9_p6.ebuild
new file mode 100644
index 000000000000..a0aa5d1ee2e2
--- /dev/null
+++ b/sys-kernel/asahi-sources/asahi-sources-6.8.9_p6.ebuild
@@ -0,0 +1,78 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+ETYPE="sources"
+
+CKV="$(ver_cut 1-3)"
+K_SECURITY_UNSUPPORTED="1"
+K_WANT_GENPATCHES="base extras"
+K_GENPATCHES_VER="12"
+K_NODRYRUN="1"
+
+inherit kernel-2
+detect_version
+detect_arch
+
+if [[ ${PV} != ${PV/_rc} ]] ; then
+ # $PV is expected to be of following form: 6.0_rc5_p1
+ MY_TAG="$(ver_cut 6)"
+ MY_BASE="$(ver_rs 2 - $(ver_cut 1-4))"
+else
+ # $PV is expected to be of following form: 5.19.0_p1
+ MY_TAG="$(ver_cut 5)"
+ if [[ "$(ver_cut 3)" == "0" ]] ; then
+ MY_BASE="$(ver_cut 1-2)"
+ else
+ MY_BASE="$(ver_cut 1-3)"
+ fi
+fi
+
+EXTRAVERSION="-asahi-${MY_TAG}"
+
+ASAHI_TAG="asahi-${MY_BASE}-${MY_TAG}"
+
+DESCRIPTION="Asahi Linux kernel sources"
+HOMEPAGE="https://asahilinux.org"
+SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI}
+ https://github.com/AsahiLinux/linux/compare/v${MY_BASE}...${ASAHI_TAG}.patch
+ -> linux-${ASAHI_TAG}.patch
+"
+KV_FULL="${PVR/_p/-asahi-}"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+KEYWORDS="~arm64"
+IUSE="rust"
+
+DEPEND="
+ ${DEPEND}
+ rust? (
+ || (
+ >=dev-lang/rust-bin-1.76[rust-src,rustfmt]
+ >=dev-lang/rust-1.76[rust-src,rustfmt]
+ )
+ dev-util/bindgen
+ )
+"
+
+UNIPATCH_STRICTORDER="yes"
+UNIPATCH_LIST="
+ ${FILESDIR}/asahi-6.8-config-gentoo-Drop-RANDSTRUCT-from-GENTOO_KERNEL_SEL.patch
+ ${FILESDIR}/asahi-6.8.2_revert_spi_stable_asahi.patch
+ ${DISTDIR}/linux-asahi-6.8.9-6.patch
+ ${FILESDIR}/asahi-sources-6.6.0_p16-enable-speakers-stage1.patch
+ ${FILESDIR}/asahi-sources-6.6.0_p16-enable-speakers-stage2.patch
+"
+
+src_prepare() {
+ default
+
+ # remove asahi upstream set localversion, use EXTRAVERSION instead
+ rm localversion.05-asahi
+}
+
+pkg_postinst() {
+ einfo "For more information about Asahi Linux please visit ${HOMEPAGE},"
+ einfo "or consult the Wiki at https://github.com/AsahiLinux/docs/wiki."
+ kernel-2_pkg_postinst
+}
diff --git a/sys-kernel/asahi-sources/files/asahi-6.8-config-gentoo-Drop-RANDSTRUCT-from-GENTOO_KERNEL_SEL.patch b/sys-kernel/asahi-sources/files/asahi-6.8-config-gentoo-Drop-RANDSTRUCT-from-GENTOO_KERNEL_SEL.patch
new file mode 100644
index 000000000000..0e99029145e5
--- /dev/null
+++ b/sys-kernel/asahi-sources/files/asahi-6.8-config-gentoo-Drop-RANDSTRUCT-from-GENTOO_KERNEL_SEL.patch
@@ -0,0 +1,40 @@
+From 7bc5223ed71bdee422c01c67b0456c4238b4a36e Mon Sep 17 00:00:00 2001
+From: Janne Grunau <j@jannau.net>
+Date: Sat, 18 May 2024 11:47:46 +0200
+Subject: [PATCH 1/1] config: gentoo: Drop RANDSTRUCT from
+ GENTOO_KERNEL_SELF_PROTECTION_COMMON
+
+It is incompatible with RUST and the current method of selected it
+results in Kconfig breakage due to circular dependencies. Drop it for
+asahi-kernel.
+
+Signed-off-by: Janne Grunau <j@jannau.net>
+---
+ distro/Kconfig | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/distro/Kconfig b/distro/Kconfig
+index 9166e4a9abe6..ad4b417e0da7 100644
+--- a/distro/Kconfig
++++ b/distro/Kconfig
+@@ -174,7 +174,7 @@ 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 && !PROC_KCORE && !COMPAT_VDSO && !KEXEC && !HIBERNATION && !LEGACY_PTYS && !X86_X32_ABI && !MODIFY_LDT_SYSCALL && GCC_PLUGINS && !IOMMU_DEFAULT_DMA_LAZY && !IOMMU_DEFAULT_PASSTHROUGH && IOMMU_DEFAULT_DMA_STRICT && SECURITY && !ARCH_EPHEMERAL_INODES && RANDSTRUCT_PERFORMANCE
++ depends on GENTOO_LINUX && !ACPI_CUSTOM_METHOD && !COMPAT_BRK && !PROC_KCORE && !COMPAT_VDSO && !KEXEC && !HIBERNATION && !LEGACY_PTYS && !X86_X32_ABI && !MODIFY_LDT_SYSCALL && GCC_PLUGINS && !IOMMU_DEFAULT_DMA_LAZY && !IOMMU_DEFAULT_PASSTHROUGH && IOMMU_DEFAULT_DMA_STRICT && SECURITY && !ARCH_EPHEMERAL_INODES
+
+ select BUG
+ select STRICT_KERNEL_RWX
+@@ -221,8 +221,6 @@ config GENTOO_KERNEL_SELF_PROTECTION_COMMON
+ select GCC_PLUGIN_LATENT_ENTROPY
+ select GCC_PLUGIN_STRUCTLEAK
+ select GCC_PLUGIN_STRUCTLEAK_BYREF_ALL
+- select GCC_PLUGIN_RANDSTRUCT
+- select GCC_PLUGIN_RANDSTRUCT_PERFORMANCE
+ select ZERO_CALL_USED_REGS if CC_HAS_ZERO_CALL_USED_REGS
+
+ help
+--
+2.45.0
+
diff --git a/sys-kernel/asahi-sources/files/asahi-6.8.2_revert_spi_stable_asahi.patch b/sys-kernel/asahi-sources/files/asahi-6.8.2_revert_spi_stable_asahi.patch
new file mode 100644
index 000000000000..fc6522e205b8
--- /dev/null
+++ b/sys-kernel/asahi-sources/files/asahi-6.8.2_revert_spi_stable_asahi.patch
@@ -0,0 +1,46 @@
+diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
+index 46f153548760..d1b297f438f1 100644
+--- a/drivers/spi/spi.c
++++ b/drivers/spi/spi.c
+@@ -1042,14 +1042,10 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
+ if (spi->mode & SPI_CS_HIGH)
+ enable = !enable;
+
+- /*
+- * Handle chip select delays for GPIO based CS or controllers without
+- * programmable chip select timing.
+- */
+- if ((spi_is_csgpiod(spi) || !spi->controller->set_cs_timing) && !activate)
+- spi_delay_exec(&spi->cs_hold, NULL);
+-
+ if (spi_is_csgpiod(spi)) {
++ if (!spi->controller->set_cs_timing && !activate)
++ spi_delay_exec(&spi->cs_hold, NULL);
++
+ if (!(spi->mode & SPI_NO_CS)) {
+ /*
+ * Historically ACPI has no means of the GPIO polarity and
+@@ -1083,16 +1079,16 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
+ if ((spi->controller->flags & SPI_CONTROLLER_GPIO_SS) &&
+ spi->controller->set_cs)
+ spi->controller->set_cs(spi, !enable);
++
++ if (!spi->controller->set_cs_timing) {
++ if (activate)
++ spi_delay_exec(&spi->cs_setup, NULL);
++ else
++ spi_delay_exec(&spi->cs_inactive, NULL);
++ }
+ } else if (spi->controller->set_cs) {
+ spi->controller->set_cs(spi, !enable);
+ }
+-
+- if (spi_is_csgpiod(spi) || !spi->controller->set_cs_timing) {
+- if (activate)
+- spi_delay_exec(&spi->cs_setup, NULL);
+- else
+- spi_delay_exec(&spi->cs_inactive, NULL);
+- }
+ }
+
+ #ifdef CONFIG_HAS_DMA