From b8a4109655d335052fff129b206061ecb5ad845a Mon Sep 17 00:00:00 2001 From: Piotr Karbowski <slashbeast@gentoo.org> Date: Mon, 6 Apr 2020 20:40:41 +0200 Subject: sys-power/bbswitch-0.8-r3: kernel 5.6 support; $CC fixes. Closes: https://bugs.gentoo.org/715500 Closes: https://bugs.gentoo.org/702730 Signed-off-by: Piotr Karbowski <slashbeast@gentoo.org> --- sys-power/bbswitch/bbswitch-0.8-r3.ebuild | 57 ++++++++++++++++++++++ sys-power/bbswitch/bbswitch-9999.ebuild | 11 +++-- .../bbswitch/files/bbswitch-0.8-kernel-5.6.patch | 52 ++++++++++++++++++++ 3 files changed, 116 insertions(+), 4 deletions(-) create mode 100644 sys-power/bbswitch/bbswitch-0.8-r3.ebuild create mode 100644 sys-power/bbswitch/files/bbswitch-0.8-kernel-5.6.patch (limited to 'sys-power/bbswitch') diff --git a/sys-power/bbswitch/bbswitch-0.8-r3.ebuild b/sys-power/bbswitch/bbswitch-0.8-r3.ebuild new file mode 100644 index 000000000000..90af8d532409 --- /dev/null +++ b/sys-power/bbswitch/bbswitch-0.8-r3.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit linux-mod toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Bumblebee-Project/${PN}.git" + EGIT_BRANCH="develop" +else + PATCHES=( + "${FILESDIR}/${PN}-0.8-kernel-4.12.patch" + "${FILESDIR}/${PN}-0.8-kernel-5.6.patch" + ) + SRC_URI="https://github.com/Bumblebee-Project/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 x86" +fi + +DESCRIPTION="Toggle discrete NVIDIA Optimus graphics card" +HOMEPAGE="https://github.com/Bumblebee-Project/bbswitch" + +SLOT="0" +LICENSE="GPL-3+" +IUSE="" + +DEPEND=" + virtual/linux-sources + sys-kernel/linux-headers +" +RDEPEND="" + +MODULE_NAMES="bbswitch(acpi)" + +pkg_setup() { + linux-mod_pkg_setup + + BUILD_TARGETS="default" + BUILD_PARAMS="KVERSION=${KV_FULL} CC=$(tc-getCC)" +} + +src_prepare() { + # Fix build failure, bug #513542 + sed "s%^KDIR :=.*%KDIR := ${KERNEL_DIR}%g" -i Makefile || die + + default +} + +src_install() { + einstalldocs + + insinto /etc/modprobe.d + newins "${FILESDIR}"/bbswitch.modprobe bbswitch.conf + + linux-mod_src_install +} diff --git a/sys-power/bbswitch/bbswitch-9999.ebuild b/sys-power/bbswitch/bbswitch-9999.ebuild index ad44354463cd..7efe9cf7ccdc 100644 --- a/sys-power/bbswitch/bbswitch-9999.ebuild +++ b/sys-power/bbswitch/bbswitch-9999.ebuild @@ -1,16 +1,19 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit linux-mod +inherit linux-mod toolchain-funcs if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/Bumblebee-Project/${PN}.git" EGIT_BRANCH="develop" else - PATCHES=( "${FILESDIR}/${PN}-0.8-kernel-4.12.patch" ) + PATCHES=( + "${FILESDIR}/${PN}-0.8-kernel-4.12.patch" + "${FILESDIR}/${PN}-0.8-kernel-5.6.patch" + ) SRC_URI="https://github.com/Bumblebee-Project/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~x86" fi @@ -34,7 +37,7 @@ pkg_setup() { linux-mod_pkg_setup BUILD_TARGETS="default" - BUILD_PARAMS="KVERSION=${KV_FULL}" + BUILD_PARAMS="KVERSION=${KV_FULL} CC=$(tc-getCC)" } src_prepare() { diff --git a/sys-power/bbswitch/files/bbswitch-0.8-kernel-5.6.patch b/sys-power/bbswitch/files/bbswitch-0.8-kernel-5.6.patch new file mode 100644 index 000000000000..aa95a21cdb04 --- /dev/null +++ b/sys-power/bbswitch/files/bbswitch-0.8-kernel-5.6.patch @@ -0,0 +1,52 @@ +From c2f808efeb0820edf23dbb66362ad3091321253f Mon Sep 17 00:00:00 2001 +From: Mateusz Mandera <mateusz.mandera@protonmail.com> +Date: Tue, 31 Mar 2020 15:11:30 +0200 +Subject: [PATCH] Use proc_ops structure for kernel version >= 5.6.0 + +Since 5.6.0, proc_create requires a proc_ops* argument +instead of file_operations*. +--- + bbswitch.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/bbswitch.c b/bbswitch.c +index d64cdae..9ca0e42 100644 +--- a/bbswitch.c ++++ b/bbswitch.c +@@ -42,6 +42,9 @@ + #include <linux/suspend.h> + #include <linux/seq_file.h> + #include <linux/pm_runtime.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) ++#include <linux/proc_fs.h> ++#endif + + #define BBSWITCH_VERSION "0.8" + +@@ -382,6 +385,15 @@ static int bbswitch_pm_handler(struct notifier_block *nbp, + return 0; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) ++static struct proc_ops bbswitch_fops = { ++ .proc_open = bbswitch_proc_open, ++ .proc_read = seq_read, ++ .proc_write = bbswitch_proc_write, ++ .proc_lseek = seq_lseek, ++ .proc_release= single_release ++}; ++#else + static struct file_operations bbswitch_fops = { + .open = bbswitch_proc_open, + .read = seq_read, +@@ -389,6 +401,7 @@ static struct file_operations bbswitch_fops = { + .llseek = seq_lseek, + .release= single_release + }; ++#endif + + static struct notifier_block nb = { + .notifier_call = &bbswitch_pm_handler +-- +2.26.0 + -- cgit v1.2.3-65-gdbad