blob: bd691e2ed6aae188d76c7f16e4033526f26a42ad [file] [log] [blame]
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
# shellcheck disable=SC2034
ETYPE="headers"
# shellcheck disable=SC2034
H_SUPPORTEDARCH="alpha amd64 arc arm arm64 avr32 bfin cris frv hexagon hppa ia64 m32r m68k metag microblaze mips mn10300 nios2 openrisc ppc ppc64 s390 score sh sparc tile x86 xtensa"
inherit kernel-2
detect_version
PATCH_VER="1"
SRC_URI="mirror://gentoo/gentoo-headers-base-${PV}.tar.xz
${PATCH_VER:+mirror://gentoo/gentoo-headers-${PV}-${PATCH_VER}.tar.xz}"
S="${WORKDIR}/gentoo-headers-base-${PV}"
KEYWORDS="*"
BDEPEND="
app-arch/xz-utils
dev-lang/perl"
[[ -n ${PATCH_VER} ]] && PATCHES=( "${WORKDIR}"/${PV} )
#
# NOTE: All the patches must be applicable using patch -p1.
#
PATCHES+=(
"${FILESDIR}/0001-UPSTREAM-media-videodev2.h-Add-v4l2-definition-for-HEVC.patch"
"${FILESDIR}/0002-BACKPORT-media-uapi-Move-parsed-H264-pixel-format-ou.patch"
"${FILESDIR}/0003-BACKPORT-media-uapi-Move-parsed-VP8-pixel-format-out.patch"
"${FILESDIR}/0004-CHROMIUM-v4l-Add-VP9-low-level-decoder-API-controls.patch"
"${FILESDIR}/0007-media-videodev2.h-add-IPU3-raw10-color.patch"
"${FILESDIR}/0008-videodev2.h-add-IPU3-meta-buffer-format.patch"
"${FILESDIR}/0009-uapi-intel-ipu3-Add-user-space-ABI-definitions.patch"
"${FILESDIR}/0010-virtwl-add-virtwl-driver.patch"
"${FILESDIR}/0011-BACKPORT-FROMLIST-v4l-Add-support-for-V4L2_BUF_TYPE_.patch"
"${FILESDIR}/0012-FROMLIST-media-rkisp1-Add-user-space-ABI-definitions.patch"
"${FILESDIR}/0013-FROMLIST-media-videodev2.h-v4l2-ioctl-add-rkisp1-met.patch"
"${FILESDIR}/0014-BACKPORT-add-qrtr-header-file.patch"
"${FILESDIR}/0015-BACKPORT-FROMGIT-media-v4l2-ctrl-Change-control-for-.patch"
"${FILESDIR}/0016-BACKPORT-FROMGIT-media-v4l2-ctrl-Add-control-for-VP9.patch"
"${FILESDIR}/0017-BACKPORT-FROMLIST-media-v4l-Add-JPEG_RAW-format.patch"
"${FILESDIR}/0018-BACKPORT-FROMLIST-v4l-Add-controls-for-jpeg-quantization-tables.patch"
"${FILESDIR}/0019-BACKPORT-media-uapi-linux-media.h-add-request-API.patch"
"${FILESDIR}/0020-BACKPORT-media-videodev2.h-add-request_fd-field-to-v.patch"
"${FILESDIR}/0021-BACKPORT-media-videodev2.h-Add-request_fd-field-to-v.patch"
"${FILESDIR}/0022-BACKPORT-media-videodev2.h-add-new-capabilities-for-.patch"
"${FILESDIR}/0023-FROMGIT-media-videodev2.h-add-v4l2_timeval_to_ns-inl.patch"
"${FILESDIR}/0024-UPSTREAM-nl80211-mac80211-mesh-add-hop-count-to-mpath.patch"
"${FILESDIR}/0025-UPSTREAM-nl80211-mac80211-mesh-add-mesh-path-change-c.patch"
"${FILESDIR}/0026-FROMLIST-Input_add_KEY_KBD_LAYOUT_NEXT.patch"
"${FILESDIR}/0030-BACKPORT-sync-nl80211.h-to-v5.8.patch"
"${FILESDIR}/0031-FROMLIST-media-pixfmt-Add-Mediatek-ISP-P1-image-meta.patch"
"${FILESDIR}/0032-BACKPORT-add-udmabuf-header.patch"
"${FILESDIR}/0033-FROMGIT-Input-add-privacy-screen-toggle-keycode.patch"
"${FILESDIR}/0034-UPSTREAM-Input-add-REL_WHEEL_HI_RES-and-REL_HWHEEL_H.patch"
"${FILESDIR}/0035-BACKPORT-Input-Add-FULL_SCREEN-ASPECT_RATIO-SELECTIV.patch"
"${FILESDIR}/0036-CHROMIUM-Add-fscrypt-header.patch"
"${FILESDIR}/0038-BACKPORT-Add-io_uring-IO-interface.patch"
"${FILESDIR}/0039-BACKPORT-net-qualcomm-rmnet-Export-mux_id-and-flags-to-netlink.patch"
"${FILESDIR}/0040-CHROMIUM-v4l2-add-upstream-V4L2-H.264-stateless-cont.patch"
"${FILESDIR}/0040-BACKPORT-y2038-add-64-bit-time_t-syscalls-to-all-32-.patch"
"${FILESDIR}/0042-CHROMIUM-linux-headers-update-headers-with-UVC-1.5-R.patch"
"${FILESDIR}/0043-BACKPORT-vfs-add-faccessat2-syscall.patch"
"${FILESDIR}/0044-CHROMIUM-v4l2-controls-use-very-high-ID-for-ROI-auto.patch"
"${FILESDIR}/0045-CHROMIUM-media-add-vb2-buffer-memory-coherency-hints.patch"
"${FILESDIR}/0046-CHROMIUM-v4l2-add-upstream-V4L2-VP8-stateless-contro.patch"
"${FILESDIR}/0047-BACKPORT-drm-add-panfrost_drm.h.patch"
"${FILESDIR}/0048-ASoC-SOF-Add-userspace-ABI-support.patch"
"${FILESDIR}/0049-CHROMIUM-v4l2-add-finalized-upstream-V4L2-VP9-statel.patch"
"${FILESDIR}/0051-CHROMIUM-v4l2-add-upstream-work-in-progress-V4L2-AV1.patch"
"${FILESDIR}/0052-BACKPORT-add-rseq-syscall-definitions.patch"
"${FILESDIR}/0053-BACKPORT-fanotify-add-support-for-create-attrib-move.patch"
"${FILESDIR}/0054-BACKPORT-LoadPin-Enable-loading-from-trusted-dm-veri.patch"
"${FILESDIR}/0055-CHROMIUM-v4l2-add-upstream-V4L2-HEVC-stateless-contr.patch"
"${FILESDIR}/0056-BACKPORT-add-close_range-syscall-definitions.patch"
"${FILESDIR}/0057-BACKPORT-fanotify-add-API-to-attach-detach-super-blo.patch"
"${FILESDIR}/0058-BACKPORT-kexec-file-load.patch"
"${FILESDIR}/0059-BACKPORT-media-v4l2-Add-v4l2-control-IDs-for-HEVC-encoder.patch"
# Only needed for RK3399 libv4lplugins
"${FILESDIR}/0099-CHROMIUM-v4l-Add-config-store-support.patch"
)
src_unpack() {
# avoid kernel-2_src_unpack
default
}
src_prepare() {
# avoid kernel-2_src_prepare
default
}
src_install() {
kernel-2_src_install
find "${ED}" \( -name '.install' -o -name '*.cmd' \) -delete || die
# delete empty directories
find "${ED}" -empty -type d -delete || die
}
src_test() {
# Make sure no uapi/ include paths are used by accident.
grep -E -r \
-e '# *include.*["<]uapi/' \
"${D}" && die "#include uapi/xxx detected"
einfo "Possible unescaped attribute/type usage"
grep -E -r \
-e '(^|[[:space:](])(asm|volatile|inline)[[:space:](]' \
-e '\<([us](8|16|32|64))\>' \
.
einfo "Missing linux/types.h include"
grep -E -l -r -e '__[us](8|16|32|64)' "${ED}" | xargs grep -L linux/types.h
emake ARCH="$(tc-arch-kernel)" headers_check
}