Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Summary: Bumblebee daemon
- Name: bumblebee
- Version: 3.0.0
- Release: 1%{?dist}
- License: GNU GPLv3
- Group: System Environment/Base
- Source0: Bumblebee.tar.bz2
- # To re-create the source tarball, run the following command:
- # git clone git://github.com/Bumblebee-Project/Bumblebee.git
- # Then tar/bzip the resulting directory up creating Bumblebee.tar.bz2.
- BuildRoot: %{_tmppath}/%{name}-root
- BuildRequires: libbsd-devel
- Requires: VirtualGL
- %description
- Bumblebee daemon is a rewrite of the original Bumblebee
- (https://github.com/Bumblebee-Project/Bumblebee-old)
- service, providing an elegant and stable means of managing Optimus
- hybrid graphics chipsets. A primary goal of this project is to not only
- enable use of the discrete GPU for rendering, but also to enable
- smart power management of the dGPU when it's not in use.
- See: https://github.com/Bumblebee-Project/Bumblebee
- http://bumblebee-project.org/
- For further information.
- %prep
- %setup -n Bumblebee
- %build
- %if 0%{?fedora} >=15
- autoreconf -fi
- %else
- # Hack needed for compatability with older autoconf included with RHEL 6 and older fedoras.
- # fedora 14 came with version 2.66, fedora 13 had 2.65 and RHEL 6 has version 2.63.
- # Bumping the requirements down for older fedoras may or may not work and has not been tested.
- mv $RPM_BUILD_DIR/Bumblebee/configure.ac $RPM_BUILD_DIR/Bumblebee/configure-fix.ac
- sed -e "s|2.68|2.63|g" $RPM_BUILD_DIR/Bumblebee/configure-fix.ac > $RPM_BUILD_DIR/Bumblebee/configure.ac
- autoreconf -fi
- %{__cat} <<EOF >bumblebeed.svinit
- #!/bin/sh
- #
- # $Id: bumblebeed,v 1.0 2012/05/06 gsgatlin
- # Startup script for the bumblebeed daemon, RedHat style.
- #
- # chkconfig: - 50 10
- # description: Bumblebee supporting nVidia Optimus cards
- . /etc/init.d/functions
- NAME=bumblebeed
- BIN='/usr/sbin/bumblebeed'
- [ -x "\$BIN" ] || exit 1
- RETVAL=0
- start(){
- echo -n \$"Starting bumblebeed daemon: "
- daemon "\$BIN" --daemon
- RETVAL=\$?
- echo
- touch /var/lock/subsys/bumblebeed
- return \$RETVAL
- }
- stop(){
- echo -n \$"Stopping bumblebeed daemon: "
- killproc "\$NAME"
- echo
- RETVAL=\$?
- rm -f /var/lock/subsys/bumblebeed
- return \$RETVAL
- }
- restart(){
- stop
- start
- }
- case "\$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- status)
- status bumblebeed
- ;;
- condrestart)
- [ -e /var/lock/subsys/bumblebeed ] && restart
- ;;
- *)
- echo \$"Usage: \$0 {start|stop|status|restart|condrestart}"
- RETVAL=1
- esac
- exit \$RETVAL
- EOF
- %endif
- %configure
- # On older 32 bit machines only we must remove the "-fstack-protector" CFLAGS because
- # the daemon crashes after a single use. See:
- # https://github.com/Bumblebee-Project/Bumblebee/issues/153
- # For further information.
- %ifarch i686
- %if 0%{?fedora} >=15
- make %{?_smp_mflags}
- %else
- make %{?_smp_mflags} CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables"
- %endif
- %else
- make %{?_smp_mflags}
- %endif
- %install
- [ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT
- make DESTDIR=$RPM_BUILD_ROOT install
- # systemd is a replacement for SysVinit beginning with fedora 15.
- # Fedora 15 does not like symlinks in /etc/systemd/system/ with "enable" for some reason.
- %if 0%{?fedora} >=15
- mkdir -p $RPM_BUILD_ROOT/%{_unitdir}/
- mkdir -p $RPM_BUILD_ROOT/etc/systemd/system/
- install -m 644 $RPM_BUILD_DIR/Bumblebee/scripts/systemd/bumblebeed.service $RPM_BUILD_ROOT/%{_unitdir}/
- install -m 644 $RPM_BUILD_DIR/Bumblebee/scripts/systemd/bumblebeed.service $RPM_BUILD_ROOT/etc/systemd/system/bumblebeed.service
- #ln -s %{_unitdir}/bumblebeed.service $RPM_BUILD_ROOT/etc/systemd/system/bumblebeed.service
- %else
- mkdir -p $RPM_BUILD_ROOT/etc/init.d/
- # We must make our own init script which is more compatible with Red Hat type
- # systems like RHEL 6 or CentOS 6, etc. This is also required for older fedoras like 14 and lower.
- #install -m 755 $RPM_BUILD_DIR/Bumblebee/scripts/sysvinit/bumblebeed $RPM_BUILD_ROOT/etc/init.d/bumblebeed
- install -m 755 $RPM_BUILD_DIR/Bumblebee/bumblebeed.svinit $RPM_BUILD_ROOT/etc/init.d/bumblebeed
- %endif
- cp $RPM_BUILD_DIR/Bumblebee/conf/bumblebee.conf $RPM_BUILD_ROOT/etc/bumblebee/bumblebee-nouveau.conf
- %clean
- [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
- %post
- if [ $1 = 1 ]; then
- # Initial installation
- %if 0%{?fedora} >= 15
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
- /bin/systemctl enable bumblebeed.service >/dev/null 2>&1 || :
- /bin/systemctl start bumblebeed.service >/dev/null 2>&1 || :
- %else
- /sbin/chkconfig --add bumblebeed >/dev/null 2>&1 || :
- /sbin/chkconfig --level 2345 bumblebeed on >/dev/null 2>&1 || :
- /sbin/service bumblebeed start >/dev/null 2>&1 || :
- %endif
- /usr/sbin/groupadd bumblebee >/dev/null 2>&1 || :
- for user in `cat /etc/passwd | grep /home | cut -d: -f1`; do
- /usr/sbin/usermod -a -G bumblebee $user >/dev/null 2>&1 || :
- done
- # Lets use a symlink but only if there is not one there already...
- if [ ! -h /etc/bumblebee/bumblebee.conf ]; then
- ln -sf /etc/bumblebee/bumblebee-nouveau.conf /etc/bumblebee/bumblebee.conf >/dev/null 2>&1 || :
- fi
- fi
- #always
- %if 0%{?fedora} >= 15
- /bin/systemctl try-restart bumblebeed.service >/dev/null 2>&1 || :
- %else
- /sbin/service bumblebeed restart >/dev/null 2>&1 || :
- %endif
- %preun
- if [ $1 = 0 ]; then
- # Package removal, not upgrade
- %if 0%{?fedora} >= 15
- /bin/systemctl --no-reload disable bumblebeed.service >/dev/null 2>&1 || :
- /bin/systemctl stop bumblebeed.service >/dev/null 2>&1 || :
- %else
- /sbin/service bumblebeed stop >/dev/null 2>&1 || :
- /sbin/chkconfig --level 2345 bumblebeed off >/dev/null 2>&1 || :
- /sbin/chkconfig --del bumblebeed >/dev/null 2>&1 || :
- %endif
- \rm -rf /etc/bumblebee/bumblebee.conf >/dev/null 2>&1 || :
- fi
- %postun
- %if 0%{?fedora} >= 15
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
- if [ $1 -ge 1 ]; then
- # Package upgrade, not uninstall
- /bin/systemctl try-restart bumblebeed.service >/dev/null 2>&1 || :
- fi
- %endif
- %files
- %defattr(-,root,root,-)
- %doc /usr/share/doc/bumblebee/README.markdown
- %doc /usr/share/doc/bumblebee/RELEASE_NOTES_3_0
- %exclude /etc/bumblebee/bumblebee.conf
- %config(noreplace) /etc/bumblebee/bumblebee-nouveau.conf
- /etc/bash_completion.d/bumblebee
- /etc/bumblebee/xorg.conf.nouveau
- /etc/bumblebee/xorg.conf.nvidia
- /usr/bin/bumblebee-bugreport
- /usr/bin/optirun
- /usr/sbin/bumblebeed
- %if 0%{?fedora} >=15
- %{_unitdir}/bumblebeed.service
- /etc/systemd/system/bumblebeed.service
- %else
- /etc/init.d/bumblebeed
- %endif
- %changelog
- * Wed May 16 2012 Gary Gatling <gsgatlin@ncsu.edu> - 3.0.0-1
- - Initial build of a bumblebee rpm suitable for a fedora/RHEL
- or RHEL/clone.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement