3 %bcond_without dist_kernel # without distribution kernel
4 %bcond_without kernel # don't build kernel modules
5 %bcond_without userspace # don't build userspace tools
6 %bcond_with verbose # verbose build (V=1)
7 %bcond_with multigl # package libGL in a way allowing concurrent install with nvidia/fglrx drivers
12 %undefine with_dist_kernel
14 %if "%{_alt_kernel}" != "%{nil}"
15 %undefine with_userspace
17 %if %{without userspace}
18 # nothing to be placed to debuginfo package
19 %define _enable_debug_packages 0
23 %define arch_sufix %{nil}
26 %define arch_sufix _64a
27 %define arch_dir x86_64
31 %define pname xorg-driver-video-fglrx
32 Summary: Linux Drivers for ATI graphics accelerators
33 Summary(pl.UTF-8): Sterowniki do akceleratorów graficznych ATI
36 Release: %{rel}%{?with_multigl:.mgl}
38 License: ATI Binary (parts are GPL)
40 Source0: http://dlmdownloads.ati.com/drivers/linux/ati-driver-installer-%(echo %{version} | tr . -)-x86.x86_64.run
41 # Source0-md5: 645e3b06f802e3edaa52244ff550c4f7
42 Source1: atieventsd.init
43 Source2: atieventsd.sysconfig
45 Source4: 10-fglrx.conf
46 Patch0: %{pname}-kh.patch
47 Patch1: %{pname}-smp.patch
48 Patch2: %{pname}-x86genericarch.patch
49 Patch3: %{pname}-desktop.patch
50 Patch4: %{pname}-nofinger.patch
51 Patch5: %{pname}-GPL-only.patch
52 Patch6: %{pname}-no-bkl.patch
53 Patch7: %{pname}-spinlock.patch
54 URL: http://ati.amd.com/support/drivers/linux/linux-radeon.html
55 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
56 BuildRequires: rpmbuild(macros) >= 1.379
57 BuildRequires: sed >= 4.0
58 Requires: %{pname}-libs = %{epoch}:%{version}-%{rel}
59 Requires: xorg-xserver-server
60 Requires: xorg-xserver-server(videodrv-abi) <= 10.0
61 Requires: xorg-xserver-server(videodrv-abi) >= 2.0
62 Suggests: %{name}-config
63 Suggests: kernel-video-firegl
64 Provides: xorg-xserver-module(glx)
65 Obsoletes: X11-driver-firegl < 1:7.0.0
66 Obsoletes: XFree86-driver-firegl < 1:7.0.0
67 Obsoletes: xorg-driver-video-fglrx-libdri
68 Obsoletes: xorg-driver-video-fglrx-libglx
69 %if %{without multigl}
70 Conflicts: xorg-driver-video-nvidia
71 Conflicts: xorg-xserver-libglx
73 ExclusiveArch: i586 i686 athlon pentium3 pentium4 %{x8664}
74 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76 %define _ccver %(rpm -q --qf "%{VERSION}" gcc | sed 's/\\..*//')
78 %define _noautoreqdep libGL.so.1
79 %define no_install_post_check_so 1
82 Display driver files for the ATI Radeon 8500, 9700, Mobility M9 and
83 the FireGL 8700/8800, E1, Z1/X1 graphics accelerators. This package
84 provides 2D display drivers and hardware accelerated OpenGL.
86 %description -l pl.UTF-8
87 Sterowniki do kart graficznych ATI Radeon 8500, 9700, Mobility M9 oraz
88 graficznych akceleratorów FireGL 8700/8800, E1, Z1/X1. Pakiet
89 dostarcza sterowniki obsługujące wyświetlanie 2D oraz sprzętowo
93 Summary: OpenGL (GL and GLX) ATI/AMD libraries
94 Summary(pl.UTF-8): Biblioteki OpenGL (GL i GLX) ATI/AMD
95 Group: X11/Development/Libraries
96 Requires(post,postun): /sbin/ldconfig
97 # 4.0 for Radeon HD 5000 Series
98 Provides: OpenGL = 3.3
99 Provides: OpenGL-GLX = 1.4
100 %if %{without multigl}
102 Conflicts: Mesa-libGL
104 Obsoletes: X11-OpenGL-core < 1:7.0.0
105 Obsoletes: X11-OpenGL-libGL < 1:7.0.0
106 Obsoletes: XFree86-OpenGL-core < 1:7.0.0
107 Obsoletes: XFree86-OpenGL-libGL < 1:7.0.0
110 ATI/AMD OpenGL (GL and GLX only) implementation libraries.
112 %description libs -l pl.UTF-8
113 Implementacja OpenGL (tylko GL i GLX) firmy ATI/AMD.
116 Summary: Header files for development for the ATI Radeon cards proprietary driver
117 Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem własnościowego sterownika dla kart ATI Radeon
118 Group: X11/Development/Libraries
119 Requires: %{pname}-libs = %{epoch}:%{version}-%{rel}
121 Requires: xorg-proto-glproto-devel
122 # 4.0 for Radeon HD 5000 Series
123 Provides: OpenGL-GLX-devel = 1.4
124 Provides: OpenGL-devel = 3.3
125 Obsoletes: X11-OpenGL-devel-base
126 Obsoletes: XFree86-OpenGL-devel-base
129 Header files for development for the ATI proprietary driver for ATI
130 Radeon graphic cards.
132 %description devel -l pl.UTF-8
133 Pliki nagłówkowe do programowania z użyciem własnościowego sterownika
134 ATI dla kart graficznych Radeon.
137 Summary: Static libraries for development for the ATI Radeon cards proprietary driver
138 Summary(pl.UTF-8): Biblioteki statyczne do programowania z użyciem własnościowego sterownika dla kart ATI Radeon
139 Group: X11/Development/Libraries
140 Requires: %{pname}-devel = %{epoch}:%{version}-%{release}
143 Static libraries for development for the ATI proprietary driver for
144 ATI Radeon graphic cards.
146 %description static -l pl.UTF-8
147 Biblioteki statyczne do programowania z użyciem własnościowego
148 sterownika ATI dla kart graficznych ATI Radeon.
151 Summary: ATI external events daemon
152 Summary(pl.UTF-8): Demon zewnętrznych zdarzeń ATI
154 Requires: %{pname} = %{epoch}:%{version}-%{rel}
156 Requires(post,preun): /sbin/chkconfig
159 %description atieventsd
160 The ATI External Events Daemon is a user-level application that
161 monitors various system events such as ACPI or hotplug, then notifies
162 the driver via the X extensions interface that the event has occured.
164 %description atieventsd -l pl.UTF-8
165 Demon zewnętrznych zdarzeń ATI jest aplikacją monitorującą różne
166 zdarzenia systemowe, takie jak ACPI lub hotplug, a następnie
167 informującą sterownik poprzez interfejs rozszerzeń X, że zaszło
171 Summary: Xorg configuration file to use fglrx module
172 Summary(pl.UTF-8): Plik konfiguracyjny modułu fglrx dla Xorg
174 Requires: %{name} = %{epoch}:%{version}-%{rel}
177 Without configuration file Xorg doesn't use fglrx module. If you want
178 to use it you should install this package or create own configuration
181 %description config -l pl.UTF-8
182 Bez odpowiedniej konfiguracji Xorg nie będzie używał modułu fglrx. Aby
183 to umożliwić należy zainstalować tą paczkę lub stworzyć własny plik
186 %package -n kernel%{_alt_kernel}-video-firegl
187 Summary: ATI kernel module for FireGL support
188 Summary(pl.UTF-8): Moduł jądra oferujący wsparcie dla ATI FireGL
189 Release: %{rel}@%{_kernel_ver_str}
192 %{?with_dist_kernel:%requires_releq_kernel}
193 %if "%{_alt_kernel}" != "%{nil}"
194 Provides: kernel-video-firegl = %{epoch}:%{version}-%{rel}@%{_kernel_ver_str}
196 Requires(post,postun): /sbin/depmod
198 %description -n kernel%{_alt_kernel}-video-firegl
199 ATI kernel module for FireGL support.
201 %description -n kernel%{_alt_kernel}-video-firegl -l pl.UTF-8
202 Moduł jądra oferujący wsparcie dla ATI FireGL.
207 sh %{SOURCE0} --extract .
209 cp arch/%{arch_dir}/lib/modules/fglrx/build_mod/* common/lib/modules/fglrx/build_mod
211 %if %{with dist_kernel}
222 install -d common%{_prefix}/{%{_lib},bin,sbin}
223 cp -r %{x11ver}%{arch_sufix}/usr/X11R6/%{_lib}/* common%{_libdir}
224 mv common%{_libdir}/modules/extensions/{fglrx/fglrx-libglx.so,libglx.so}
225 cp -r arch/%{arch_dir}/usr/X11R6/%{_lib}/* common%{_libdir}
226 cp -r arch/%{arch_dir}/usr/X11R6/%{_lib}/modules common%{_libdir}/xorg
227 cp -r arch/%{arch_dir}/usr/X11R6/bin/* common%{_bindir}
228 cp -r arch/%{arch_dir}/usr/sbin/* common%{_sbindir}
229 cp -r arch/%{arch_dir}/usr/%{_lib}/*.so* common%{_libdir}
230 mv common%{_libdir}/{fglrx/fglrx-libGL.so.1.2,libGL.so.1.2}
234 cd common/lib/modules/fglrx/build_mod
235 cp -f 2.6.x/Makefile .
236 %build_kernel_modules -c -m fglrx GCC_VER_MAJ=%{_ccver}
241 rm -rf $RPM_BUILD_ROOT
244 %install_kernel_modules -m common/lib/modules/fglrx/build_mod/fglrx -d misc
247 %if %{with userspace}
248 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/{ati,env.d,X11/xorg.conf.d},%{_bindir},%{_sbindir}} \
249 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_datadir}/ati,%{_mandir}/man8} \
250 $RPM_BUILD_ROOT{%{_libdir}/xorg/modules,%{_includedir}/{X11/extensions,GL}} \
251 $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d}
253 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/atieventsd
254 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/atieventsd
255 install %{SOURCE4} $RPM_BUILD_ROOT/etc/X11/xorg.conf.d
256 cp -r common%{_datadir}/doc/fglrx/examples/etc/acpi $RPM_BUILD_ROOT/etc
258 install common%{_bindir}/* $RPM_BUILD_ROOT%{_bindir}
259 install common/usr/X11R6/bin/* $RPM_BUILD_ROOT%{_bindir}
260 install common%{_sbindir}/* $RPM_BUILD_ROOT%{_sbindir}
262 rm $RPM_BUILD_ROOT%{_sbindir}/atigetsysteminfo.sh
264 cp -r common%{_libdir}/modules/* $RPM_BUILD_ROOT%{_libdir}/xorg/modules
265 ln -s %{_libdir}/xorg/modules/dri $RPM_BUILD_ROOT%{_libdir}
266 cp -r common%{_sysconfdir}/ati/control $RPM_BUILD_ROOT%{_sysconfdir}/ati/control
267 cp -r common%{_sysconfdir}/ati/signature $RPM_BUILD_ROOT%{_sysconfdir}/ati/signature
268 cp -r common%{_sysconfdir}/ati/amdpcsdb.default $RPM_BUILD_ROOT%{_sysconfdir}/ati/amdpcsdb.default
269 cp -r common%{_sysconfdir}/ati/atiogl.xml $RPM_BUILD_ROOT%{_sysconfdir}/ati/atiogl.xml
271 cp -r common%{_datadir}/ati/* $RPM_BUILD_ROOT%{_datadir}/ati
272 cp -r common%{_datadir}/icons/*.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
274 cp -r common%{_desktopdir}/*.desktop $RPM_BUILD_ROOT%{_desktopdir}
276 cp -r common%{_mandir}/man8/*.8 $RPM_BUILD_ROOT%{_mandir}/man8
279 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/ld.so.conf.d,%{_libdir}/fglrx}
281 echo %{_libdir}/fglrx >$RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/fglrx.conf
283 cp -r common%{_libdir}/lib*.a $RPM_BUILD_ROOT%{_libdir}
284 cp -r common%{_libdir}/lib*.so* $RPM_BUILD_ROOT%{_libdir}/fglrx
285 cp -r common%{_libdir}/lib*.cap $RPM_BUILD_ROOT%{_libdir}/fglrx
287 mv -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/{libglx.so,libglx.so.%{version}}
288 ln -sf libglx.so.%{version} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/libglx.so
290 /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/fglrx
291 ln -sf fglrx/libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/libGL.so
293 cp -r common%{_libdir}/lib* $RPM_BUILD_ROOT%{_libdir}
295 /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}
296 ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/libGL.so
299 install common%{_includedir}/GL/*.h $RPM_BUILD_ROOT%{_includedir}/GL
300 #install common/usr/X11R6/include/X11/extensions/*.h $RPM_BUILD_ROOT%{_includedir}/X11/extensions
301 echo "LIBGL_DRIVERS_PATH=%{_libdir}/xorg/modules/dri" > $RPM_BUILD_ROOT%{_sysconfdir}/env.d/LIBGL_DRIVERS_PATH
303 cd $RPM_BUILD_ROOT%{_libdir}
304 for f in libfglrx_dm; do
306 ln -s fglrx/$f.so.*.* $f.so
308 ln -s $f.so.*.* $f.so
313 install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
314 %{__sed} -e 's|@@prefix@@|%{_prefix}|g;s|@@libdir@@|%{_libdir}|g;s|@@includedir@@|%{_includedir}|g;s|@@version@@|%{version}|g' < %{SOURCE3} \
315 > $RPM_BUILD_ROOT%{_pkgconfigdir}/gl.pc
318 rm -rf $RPM_BUILD_ROOT
322 if [ ! -e %{_libdir}/xorg/modules/extensions/libglx.so ]; then
323 ln -sf libglx.so.%{version} %{_libdir}/xorg/modules/extensions/libglx.so
327 %post libs -p /sbin/ldconfig
328 %postun libs -p /sbin/ldconfig
331 /sbin/chkconfig --add atieventsd
332 %service atieventsd restart
335 if [ "$1" = "0" ]; then
336 %service -q atieventsd stop
337 /sbin/chkconfig --del atieventsd
340 %post -n kernel%{_alt_kernel}-video-firegl
341 %depmod %{_kernel_ver}
343 %postun -n kernel%{_alt_kernel}-video-firegl
344 %depmod %{_kernel_ver}
346 %if %{with userspace}
348 %defattr(644,root,root,755)
349 %doc ATI_LICENSE.TXT common%{_docdir}/fglrx/*.html common%{_docdir}/fglrx/articles common%{_docdir}/fglrx/user-manual
350 %dir %{_sysconfdir}/ati
351 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/control
352 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/signature
353 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/amdpcsdb.default
354 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/atiogl.xml
355 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/env.d/LIBGL_DRIVERS_PATH
356 %attr(755,root,root) %{_bindir}/*
357 %attr(755,root,root) %{_sbindir}/amdnotifyui
358 %{_desktopdir}/*.desktop
362 %ghost %{_libdir}/xorg/modules/extensions/libglx.so
363 %attr(755,root,root) %{_libdir}/xorg/modules/extensions/libglx.so.%{version}
365 %attr(755,root,root) %{_libdir}/xorg/modules/extensions/libglx.so
368 %attr(755,root,root) %{_libdir}/xorg/modules/dri/fglrx_dri.so
369 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/fglrx_drv.so
370 %dir %{_libdir}/xorg/modules/linux
371 %attr(755,root,root) %{_libdir}/xorg/modules/linux/libfglrxdrm.so
372 %attr(755,root,root) %{_libdir}/xorg/modules/amdxmm.so
373 %attr(755,root,root) %{_libdir}/xorg/modules/glesx.so
376 %defattr(644,root,root,755)
378 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf.d/fglrx.conf
379 %dir %{_libdir}/fglrx
380 %attr(755,root,root) %{_libdir}/fglrx/libAMDXvBA.so.*.*
381 %attr(755,root,root) %{_libdir}/fglrx/libAMDXvBA.so.1
382 %attr(755,root,root) %{_libdir}/fglrx/libXvBAW.so.*.*
383 %attr(755,root,root) %{_libdir}/fglrx/libXvBAW.so.1
384 %{_libdir}/fglrx/libAMDXvBA.cap
385 %attr(755,root,root) %{_libdir}/fglrx/libatiadlxx.so
386 %attr(755,root,root) %{_libdir}/fglrx/libaticalcl.so
387 %attr(755,root,root) %{_libdir}/fglrx/libaticaldd.so
388 %attr(755,root,root) %{_libdir}/fglrx/libaticalrt.so
389 %attr(755,root,root) %{_libdir}/fglrx/libatiuki.so.*.*
390 %attr(755,root,root) %{_libdir}/fglrx/libGL.so.*.*
391 %attr(755,root,root) %{_libdir}/fglrx/libGL.so.1
392 %attr(755,root,root) %{_libdir}/fglrx/libfglrx_dm.so.*.*
394 %attr(755,root,root) %{_libdir}/libAMDXvBA.so.*.*
395 %attr(755,root,root) %ghost %{_libdir}/libAMDXvBA.so.1
396 %attr(755,root,root) %{_libdir}/libXvBAW.so.*.*
397 %attr(755,root,root) %ghost %{_libdir}/libXvBAW.so.1
398 %{_libdir}/libAMDXvBA.cap
399 %attr(755,root,root) %{_libdir}/libatiadlxx.so
400 %attr(755,root,root) %{_libdir}/libaticalcl.so
401 %attr(755,root,root) %{_libdir}/libaticaldd.so
402 %attr(755,root,root) %{_libdir}/libaticalrt.so
403 %attr(755,root,root) %{_libdir}/libatiuki.so.*.*
404 %attr(755,root,root) %ghost %{_libdir}/libatiuki.so.1
405 %attr(755,root,root) %{_libdir}/libGL.so.*.*
406 %attr(755,root,root) %ghost %{_libdir}/libGL.so.1
407 %attr(755,root,root) %{_libdir}/libGL.so
408 %attr(755,root,root) %{_libdir}/libfglrx_dm.so.*.*
412 %defattr(644,root,root,755)
413 %attr(755,root,root) %{_libdir}/libfglrx_dm.so
416 %attr(755,root,root) %{_libdir}/libGL.so
418 %{_pkgconfigdir}/gl.pc
421 %defattr(644,root,root,755)
422 %{_libdir}/libfglrx_dm.a
425 %defattr(644,root,root,755)
426 %attr(754,root,root) /etc/rc.d/init.d/atieventsd
427 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/atieventsd
428 %attr(755,root,root) %{_sbindir}/atieventsd
429 %attr(755,root,root) %{_sysconfdir}/acpi/ati-powermode.sh
430 %{_sysconfdir}/acpi/events/*
431 %{_mandir}/man8/atieventsd.8*
434 %defattr(644,root,root,755)
435 %{_sysconfdir}/X11/xorg.conf.d/10-fglrx.conf
439 %files -n kernel%{_alt_kernel}-video-firegl
440 %defattr(644,root,root,755)
441 /lib/modules/%{_kernel_ver}/misc/*.ko*