/[packages]/cauldron/bumblebee/current/SPECS/bumblebee.spec
ViewVC logotype

Contents of /cauldron/bumblebee/current/SPECS/bumblebee.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 602593 - (show annotations) (download)
Wed Mar 12 07:46:00 2014 UTC (10 years, 6 months ago) by akien
File size: 5411 byte(s)
Add nvidia-settings launcher script to bumblebee-nvidia

1 # Package should be built first against core, and then against nonfree
2 # The core build produces the bumblebee and bumblebee-nouveau RPMs,
3 # whereas the nonfree build produces the bumblebee-nvidia RPM
4 %if "%{?distro_section}" == "nonfree"
5 %define driver nvidia
6 %else
7 %define driver nouveau
8 %endif
9
10 Name: bumblebee
11 Summary: Support for NVIDIA Optimus laptops on Linux
12 Group: System/Kernel and hardware
13 Version: 3.2.1
14 Release: %mkrel 7
15 License: GPLv3+
16 URL: https://github.com/Bumblebee-Project/bumblebee
17 # source from git repo git://github.com/Bumblebee-Project/Bumblebee.git
18 Source0: https://github.com/downloads/Bumblebee-Project/Bumblebee/%{name}-%{version}.tar.gz
19 BuildRequires: pkgconfig(x11)
20 BuildRequires: pkgconfig(glib-2.0)
21 BuildRequires: pkgconfig(libbsd)
22 BuildRequires: help2man
23 Requires(pre): rpm-helper
24 Requires(pre): update-alternatives
25 Requires(post): systemd-units
26 Requires(preun):systemd-units
27 Requires: %{name}-bin
28 # VirtualGl is the default bridge for upstream, the alternative being primus
29 # As of now (3.2.1-5) primus shows better performances and compability, so we use it as default
30 Suggests: virtualgl
31 Suggests: %mklibname virtualgl
32 Requires: kmod(bbswitch)
33
34 %description
35 Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in
36 GNU/Linux systems. These laptops are built in such a way that the NVIDIA
37 graphics card can be used on demand so that battery life is improved and
38 temperature is kept low.
39
40 It disables the discrete graphics card if no client is detected, and start
41 an X server making use of NVIDIA card if requested then let software GL
42 implementations (such as VirtualGL or primus) copy frames to the visible
43 display that runs on the integrated graphics. The ability to use discrete
44 graphics depends on the driver: open source nouveau and proprietary nvidia.
45
46 %if "%{?distro_section}" != "nonfree"
47 %files
48 %doc README.markdown doc/RELEASE_NOTES_3_2_1
49 %{_sysconfdir}/bash_completion.d/bumblebee
50 %dir %{_sysconfdir}/bumblebee/
51 %config(noreplace) %{_sysconfdir}/bumblebee/xorg.conf.nouveau
52 %config(noreplace) %{_sysconfdir}/bumblebee/xorg.conf.nvidia
53 %config(noreplace) %{_sysconfdir}/bumblebee/xorg.conf.d/10-dummy.conf
54 %{_udevrulesdir}/99-bumblebee-nvidia-dev.rules
55 %{_unitdir}/bumblebeed.service
56 %{_bindir}/bumblebee-bugreport
57 %{_mandir}/man1/bumblebeed.1.*
58 %{_mandir}/man1/optirun.1.*
59
60 %pre
61 %_pre_groupadd %{name}
62 if [ "$1" -eq "1" ];then
63 users=$(getent passwd | awk -F: '$3 >= 500 && $3 < 60000 {print $1}')
64 for user in $users; do
65 gpasswd -a $user bumblebee
66 done
67 /usr/sbin/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/standard.conf
68 fi
69
70 %post
71 %_post_service bumblebeed
72 # Simple: still needs this since in release 3 services were not set
73 # enabled and seams that still isnt properly handeled in %%_post_service
74 if [ "$1" -ge "1" ]; then
75 # Enable (but don't start) the unit by default
76 /bin/systemctl enable bumblebeed.service
77 # Start bumblebeed service
78 /bin/systemctl start bumblebeed.service
79 fi
80
81 %preun
82 %_preun_service bumblebeed
83
84 %postun
85 # We need this since "%%_postun_groupdel %%{name}" doesnt remove the group if
86 # set to a user
87 if [ "$1" -eq "0" ];then
88 /usr/sbin/groupdel bumblebee
89 fi
90 %endif
91
92 %package %{driver}
93 Summary: Bumblebee configuration files and binaries for %{driver} driver
94 Group: System/Kernel and hardware
95 Requires: %{name} = %{version}
96 %if "%{?distro_section}" == "nonfree"
97 Requires: nvidia
98 Requires: primus-nvidia
99 Conflicts: %{name}-nouveau
100 %else
101 Requires: x11-driver-video-nouveau
102 Requires: primus-nouveau
103 Conflicts: %{name}-nvidia
104 %endif
105 Provides: %{name}-bin = %{version}
106
107 %description %{driver}
108 Bumblebee configuration files and binaries built against
109 the %{driver} driver.
110
111 %files %{driver}
112 %config(noreplace) %{_sysconfdir}/bumblebee/bumblebee.conf
113 %{_sbindir}/bumblebeed
114 %{_bindir}/nvidia-settings
115 %{_bindir}/optirun
116
117 #--------------------------------------------------------------------
118 %prep
119 %setup -q
120
121 %build
122 %configure2_5x --with-udev-rules=%{_udevrulesdir} \
123 CONF_BRIDGE=primus \
124 %if "%{?distro_section}" == "nonfree"
125 CONF_DRIVER=nvidia \
126 CONF_DRIVER_MODULE_NVIDIA=nvidia-current \
127 %else
128 CONF_DRIVER=nouveau \
129 %endif
130 %ifarch x86_64
131 CONF_LDPATH_NVIDIA=%{_libdir}/nvidia-current:%{_usr}/lib/nvidia-current \
132 CONF_MODPATH_NVIDIA=%{_libdir}/nvidia-current/xorg,%{_usr}/lib/nvidia-current/xorg,%{_libdir}/xorg/modules,%{_usr}/lib/xorg/modules \
133 CONF_PRIMUS_LD_PATH=%{_libdir}/primus:%{_usr}/lib/primus
134 %else
135 CONF_LDPATH_NVIDIA=%{_libdir}/nvidia-current \
136 CONF_MODPATH_NVIDIA=%{_libdir}/nvidia-current/xorg,%{_libdir}/xorg/modules \
137 CONF_PRIMUS_LD_PATH=%{_libdir}/primus
138 %endif
139
140 %make CFLAGS="%{optflags}"
141
142 %install
143 %if "%{?distro_section}" == "nonfree"
144 install -D -m644 conf/bumblebee.conf %{buildroot}%{_sysconfdir}/bumblebee/bumblebee.conf
145 install -D -m755 bin/bumblebeed %{buildroot}%{_sbindir}/bumblebeed
146 install -D -m755 bin/optirun %{buildroot}%{_bindir}/optirun
147 %else
148 %makeinstall_std
149 install -D -m644 scripts/systemd/bumblebeed.service %{buildroot}%{_unitdir}/bumblebeed.service
150 %endif
151
152 # Create nvidia-settings launcher script
153 cat > %{buildroot}%{_bindir}/nvidia-settings << EOF
154 #!/bin/sh
155 optirun -b none %{_libdir}/nvidia-current/bin/nvidia-settings -c :8
156 EOF
157 chmod +x %{buildroot}%{_bindir}/nvidia-settings

  ViewVC Help
Powered by ViewVC 1.1.30