Advertisement
Guest User

Untitled

a guest
May 16th, 2012
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.64 KB | None | 0 0
  1. Summary: Bumblebee daemon
  2. Name: bumblebee
  3. Version: 3.0.0
  4. Release: 1%{?dist}
  5. License: GNU GPLv3
  6. Group: System Environment/Base
  7. Source0: Bumblebee.tar.bz2
  8. # To re-create the source tarball, run the following command:
  9. # git clone git://github.com/Bumblebee-Project/Bumblebee.git
  10. # Then tar/bzip the resulting directory up creating Bumblebee.tar.bz2.
  11. BuildRoot: %{_tmppath}/%{name}-root
  12. BuildRequires: libbsd-devel
  13. Requires: VirtualGL
  14.  
  15. %description
  16. Bumblebee daemon is a rewrite of the original Bumblebee
  17. (https://github.com/Bumblebee-Project/Bumblebee-old)
  18. service, providing an elegant and stable means of managing Optimus
  19. hybrid graphics chipsets. A primary goal of this project is to not only
  20. enable use of the discrete GPU for rendering, but also to enable
  21. smart power management of the dGPU when it's not in use.
  22.  
  23. See: https://github.com/Bumblebee-Project/Bumblebee
  24. http://bumblebee-project.org/
  25.  
  26. For further information.
  27.  
  28. %prep
  29.  
  30. %setup -n Bumblebee
  31.  
  32. %build
  33.  
  34. %if 0%{?fedora} >=15
  35. autoreconf -fi
  36. %else
  37. # Hack needed for compatability with older autoconf included with RHEL 6 and older fedoras.
  38. # fedora 14 came with version 2.66, fedora 13 had 2.65 and RHEL 6 has version 2.63.
  39. # Bumping the requirements down for older fedoras may or may not work and has not been tested.
  40. mv $RPM_BUILD_DIR/Bumblebee/configure.ac $RPM_BUILD_DIR/Bumblebee/configure-fix.ac
  41. sed -e "s|2.68|2.63|g" $RPM_BUILD_DIR/Bumblebee/configure-fix.ac > $RPM_BUILD_DIR/Bumblebee/configure.ac
  42. autoreconf -fi
  43.  
  44.  
  45. %{__cat} <<EOF >bumblebeed.svinit
  46. #!/bin/sh
  47. #
  48. # $Id: bumblebeed,v 1.0 2012/05/06 gsgatlin
  49. # Startup script for the bumblebeed daemon, RedHat style.
  50. #
  51. # chkconfig: - 50 10
  52. # description: Bumblebee supporting nVidia Optimus cards
  53.  
  54. . /etc/init.d/functions
  55.  
  56.  
  57. NAME=bumblebeed
  58. BIN='/usr/sbin/bumblebeed'
  59.  
  60.  
  61.  
  62. [ -x "\$BIN" ] || exit 1
  63.  
  64. RETVAL=0
  65.  
  66. start(){
  67. echo -n \$"Starting bumblebeed daemon: "
  68. daemon "\$BIN" --daemon
  69. RETVAL=\$?
  70. echo
  71. touch /var/lock/subsys/bumblebeed
  72. return \$RETVAL
  73. }
  74.  
  75. stop(){
  76. echo -n \$"Stopping bumblebeed daemon: "
  77. killproc "\$NAME"
  78. echo
  79. RETVAL=\$?
  80. rm -f /var/lock/subsys/bumblebeed
  81. return \$RETVAL
  82. }
  83.  
  84. restart(){
  85. stop
  86. start
  87. }
  88.  
  89. case "\$1" in
  90. start)
  91. start
  92. ;;
  93. stop)
  94. stop
  95. ;;
  96. restart)
  97. restart
  98. ;;
  99. status)
  100. status bumblebeed
  101. ;;
  102. condrestart)
  103. [ -e /var/lock/subsys/bumblebeed ] && restart
  104. ;;
  105. *)
  106. echo \$"Usage: \$0 {start|stop|status|restart|condrestart}"
  107. RETVAL=1
  108. esac
  109.  
  110. exit \$RETVAL
  111. EOF
  112. %endif
  113.  
  114. %configure
  115.  
  116. # On older 32 bit machines only we must remove the "-fstack-protector" CFLAGS because
  117. # the daemon crashes after a single use. See:
  118. # https://github.com/Bumblebee-Project/Bumblebee/issues/153
  119. # For further information.
  120.  
  121. %ifarch i686
  122. %if 0%{?fedora} >=15
  123. make %{?_smp_mflags}
  124. %else
  125. 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"
  126. %endif
  127. %else
  128. make %{?_smp_mflags}
  129. %endif
  130.  
  131.  
  132. %install
  133. [ "$RPM_BUILD_ROOT" != "/" ] && rm -fr $RPM_BUILD_ROOT
  134. make DESTDIR=$RPM_BUILD_ROOT install
  135.  
  136. # systemd is a replacement for SysVinit beginning with fedora 15.
  137. # Fedora 15 does not like symlinks in /etc/systemd/system/ with "enable" for some reason.
  138. %if 0%{?fedora} >=15
  139. mkdir -p $RPM_BUILD_ROOT/%{_unitdir}/
  140. mkdir -p $RPM_BUILD_ROOT/etc/systemd/system/
  141. install -m 644 $RPM_BUILD_DIR/Bumblebee/scripts/systemd/bumblebeed.service $RPM_BUILD_ROOT/%{_unitdir}/
  142. install -m 644 $RPM_BUILD_DIR/Bumblebee/scripts/systemd/bumblebeed.service $RPM_BUILD_ROOT/etc/systemd/system/bumblebeed.service
  143. #ln -s %{_unitdir}/bumblebeed.service $RPM_BUILD_ROOT/etc/systemd/system/bumblebeed.service
  144. %else
  145. mkdir -p $RPM_BUILD_ROOT/etc/init.d/
  146.  
  147. # We must make our own init script which is more compatible with Red Hat type
  148. # systems like RHEL 6 or CentOS 6, etc. This is also required for older fedoras like 14 and lower.
  149. #install -m 755 $RPM_BUILD_DIR/Bumblebee/scripts/sysvinit/bumblebeed $RPM_BUILD_ROOT/etc/init.d/bumblebeed
  150.  
  151. install -m 755 $RPM_BUILD_DIR/Bumblebee/bumblebeed.svinit $RPM_BUILD_ROOT/etc/init.d/bumblebeed
  152.  
  153. %endif
  154. cp $RPM_BUILD_DIR/Bumblebee/conf/bumblebee.conf $RPM_BUILD_ROOT/etc/bumblebee/bumblebee-nouveau.conf
  155.  
  156.  
  157. %clean
  158. [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
  159.  
  160.  
  161. %post
  162. if [ $1 = 1 ]; then
  163. # Initial installation
  164. %if 0%{?fedora} >= 15
  165. /bin/systemctl daemon-reload >/dev/null 2>&1 || :
  166. /bin/systemctl enable bumblebeed.service >/dev/null 2>&1 || :
  167. /bin/systemctl start bumblebeed.service >/dev/null 2>&1 || :
  168. %else
  169. /sbin/chkconfig --add bumblebeed >/dev/null 2>&1 || :
  170. /sbin/chkconfig --level 2345 bumblebeed on >/dev/null 2>&1 || :
  171. /sbin/service bumblebeed start >/dev/null 2>&1 || :
  172. %endif
  173. /usr/sbin/groupadd bumblebee >/dev/null 2>&1 || :
  174. for user in `cat /etc/passwd | grep /home | cut -d: -f1`; do
  175. /usr/sbin/usermod -a -G bumblebee $user >/dev/null 2>&1 || :
  176. done
  177. # Lets use a symlink but only if there is not one there already...
  178. if [ ! -h /etc/bumblebee/bumblebee.conf ]; then
  179. ln -sf /etc/bumblebee/bumblebee-nouveau.conf /etc/bumblebee/bumblebee.conf >/dev/null 2>&1 || :
  180. fi
  181.  
  182. fi
  183. #always
  184. %if 0%{?fedora} >= 15
  185. /bin/systemctl try-restart bumblebeed.service >/dev/null 2>&1 || :
  186. %else
  187. /sbin/service bumblebeed restart >/dev/null 2>&1 || :
  188. %endif
  189.  
  190. %preun
  191. if [ $1 = 0 ]; then
  192. # Package removal, not upgrade
  193. %if 0%{?fedora} >= 15
  194. /bin/systemctl --no-reload disable bumblebeed.service >/dev/null 2>&1 || :
  195. /bin/systemctl stop bumblebeed.service >/dev/null 2>&1 || :
  196. %else
  197. /sbin/service bumblebeed stop >/dev/null 2>&1 || :
  198. /sbin/chkconfig --level 2345 bumblebeed off >/dev/null 2>&1 || :
  199. /sbin/chkconfig --del bumblebeed >/dev/null 2>&1 || :
  200. %endif
  201. \rm -rf /etc/bumblebee/bumblebee.conf >/dev/null 2>&1 || :
  202. fi
  203.  
  204. %postun
  205. %if 0%{?fedora} >= 15
  206. /bin/systemctl daemon-reload >/dev/null 2>&1 || :
  207. if [ $1 -ge 1 ]; then
  208. # Package upgrade, not uninstall
  209. /bin/systemctl try-restart bumblebeed.service >/dev/null 2>&1 || :
  210. fi
  211. %endif
  212.  
  213. %files
  214. %defattr(-,root,root,-)
  215. %doc /usr/share/doc/bumblebee/README.markdown
  216. %doc /usr/share/doc/bumblebee/RELEASE_NOTES_3_0
  217. %exclude /etc/bumblebee/bumblebee.conf
  218. %config(noreplace) /etc/bumblebee/bumblebee-nouveau.conf
  219. /etc/bash_completion.d/bumblebee
  220. /etc/bumblebee/xorg.conf.nouveau
  221. /etc/bumblebee/xorg.conf.nvidia
  222. /usr/bin/bumblebee-bugreport
  223. /usr/bin/optirun
  224. /usr/sbin/bumblebeed
  225. %if 0%{?fedora} >=15
  226. %{_unitdir}/bumblebeed.service
  227. /etc/systemd/system/bumblebeed.service
  228. %else
  229. /etc/init.d/bumblebeed
  230. %endif
  231.  
  232. %changelog
  233. * Wed May 16 2012 Gary Gatling <gsgatlin@ncsu.edu> - 3.0.0-1
  234. - Initial build of a bumblebee rpm suitable for a fedora/RHEL
  235. or RHEL/clone.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement