%define bbswitch_ver 0.4.1 Summary: bbswitch Linux kernel module for Bumblebee Name: bbswitch Version: %{bbswitch_ver} Release: 1%{?dist} License: GNU GPLv3 Group: System Environment/Base Source0: bbswitch.tar.bz2 # To re-create the source tarball, run the following command: # git clone git://github.com/Bumblebee-Project/bbswitch.git # Then tar/bzip the resulting directory up creating bbswitch.tar.bz2. BuildRoot: %{_tmppath}/%{name}-root %ifarch i686 %if 0%{?fedora} >=15 Requires: kernel-PAE-devel %endif %endif Requires: dkms gcc kernel-devel %description bbswitch is a Linux kernel module which automatically detects the required ACPI calls for two kinds of Optimus laptops. It has been verified to work with "real" Optimus and "legacy" Optimus laptops. See: https://github.com/Bumblebee-Project/bbswitch/ For further information. For now, if you require nvidia module support with bumblebee you must install bbswitch. In addition, even with nouveau, bbswitch will work after a suspend whereas vga_switcharoo in the kernel might not. See: https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods for further information. %prep %setup -n bbswitch #Next, create the auto-loading module file now so we can install it later... %if 0%{?fedora} >=15 %{__cat} <bbswitch.modules #!/bin/sh if [ ! -f /proc/acpi/bbswitch ] ; then exec /sbin/modprobe bbwsitch >/dev/null 2>&1 fi EOF %else %{__cat} <bbswitch.modules #!/bin/sh echo -n "Loading bbswitch module..." if /sbin/modprobe bbswitch then echo "SUCCESS" else echo "FAILURE" fi EOF %endif %build %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT # Its easier to do the work of building this here... mkdir -p $RPM_BUILD_ROOT/usr/src/bbswitch-%{bbswitch_ver} install -m 644 $RPM_BUILD_DIR/bbswitch/bbswitch.c $RPM_BUILD_ROOT/usr/src/bbswitch-%{bbswitch_ver}/bbswitch.c install -m 644 $RPM_BUILD_DIR/bbswitch/Makefile $RPM_BUILD_ROOT/usr/src/bbswitch-%{bbswitch_ver}/Makefile install -m 644 $RPM_BUILD_DIR/bbswitch/dkms/dkms.conf $RPM_BUILD_ROOT/usr/src/bbswitch-%{bbswitch_ver}/dkms.conf # For the next section below, I needed a way to load the module at boot time. For more information see: # http://docs.fedoraproject.org/en-US/Fedora/15/html/Deployment_Guide/sec-Persistent_Module_Loading.html mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/modules/ install -m 755 $RPM_BUILD_DIR/bbswitch/bbswitch.modules $RPM_BUILD_ROOT/etc/sysconfig/modules/bbswitch.modules %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %post /usr/sbin/dkms add -m bbswitch -v %{bbswitch_ver} >/dev/null 2>&1 || : /usr/sbin/dkms build -m bbswitch -v %{bbswitch_ver} >/dev/null 2>&1 || : /usr/sbin/dkms install -m bbswitch -v %{bbswitch_ver} >/dev/null 2>&1 || : /sbin/modprobe bbswitch >/dev/null 2>&1 || : %preun /sbin/rmmod bbswitch >/dev/null 2>&1 || : /usr/sbin/dkms remove -m bbswitch -v %{bbswitch_ver} --all >/dev/null 2>&1 || : %files %defattr(-,root,root,-) %doc README.md NEWS /usr/src/bbswitch-%{bbswitch_ver}/bbswitch.c /usr/src/bbswitch-%{bbswitch_ver}/Makefile /usr/src/bbswitch-%{bbswitch_ver}/dkms.conf /etc/sysconfig/modules/bbswitch.modules %changelog * Sat Apr 28 2012 Gary Gatling - 0.4.1-1 - Initial build of a dkms based bbswitch rpm suitable (?) for a newish fedora or RHEL 6.