summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Karbowski <slashbeast@gentoo.org>2020-04-06 20:40:41 +0200
committerPiotr Karbowski <slashbeast@gentoo.org>2020-04-06 20:42:10 +0200
commitb8a4109655d335052fff129b206061ecb5ad845a (patch)
tree9b374f4c794ad0fbc38f110c2e3f0ce526f4319d /sys-power
parentnet-im/spectrum2: drop old version (diff)
downloadgentoo-b8a4109655d335052fff129b206061ecb5ad845a.tar.gz
gentoo-b8a4109655d335052fff129b206061ecb5ad845a.tar.bz2
gentoo-b8a4109655d335052fff129b206061ecb5ad845a.zip
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>
Diffstat (limited to 'sys-power')
-rw-r--r--sys-power/bbswitch/bbswitch-0.8-r3.ebuild57
-rw-r--r--sys-power/bbswitch/bbswitch-9999.ebuild11
-rw-r--r--sys-power/bbswitch/files/bbswitch-0.8-kernel-5.6.patch52
3 files changed, 116 insertions, 4 deletions
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 00000000000..90af8d53240
--- /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 ad44354463c..7efe9cf7ccd 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 00000000000..aa95a21cdb0
--- /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
+