2 %bcond_without kernel # don't build kernel modules
3 %bcond_without userspace # don't build userspace tools
4 %bcond_with verbose # verbose build (V=1)
8 # The goal here is to have main, userspace, package built once with
9 # simple release number, and only rebuild kernel packages with kernel
10 # version as part of release number, without the need to bump release
11 # with every kernel change.
12 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
13 %{error:kernel and userspace cannot be built at the same time on PLD builders}
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 sver 151217a-297685e
33 #define rel 0.beta%{betaver}.3
36 %define pname xorg-driver-video-fglrx
37 Summary: Linux Drivers for AMD/ATI graphics accelerators
38 Summary(pl.UTF-8): Sterowniki do akceleratorów graficznych AMD/ATI
39 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
41 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
43 License: AMD Binary (parts are GPL)
45 # http://support.amd.com/en-us/download/linux -> Linux
46 # wget --referer=http://support.amd.com/ https://www2.ati.com/drivers/linux/radeon-crimson-15.12-15.302-151217a-297685e.zip
47 #Source0: https://www2.ati.com/drivers/linux/radeon-crimson-15.12-15.302-151217a-297685e.zip
48 Source0: radeon-crimson-%{version}-%{intver}-%{sver}.zip
49 # Source0-md5: 39808c8a9bcc9041f1305e3531b60622
50 %define vver %(echo %{version} | tr . -)
51 Source1: atieventsd.init
52 Source2: atieventsd.sysconfig
54 Source4: 10-fglrx.conf
55 Source5: 10-fglrx-modules.conf
56 Patch0: %{pname}-kh.patch
57 Patch1: %{pname}-smp.patch
58 Patch2: %{pname}-x86genericarch.patch
59 Patch3: %{pname}-desktop.patch
60 Patch4: %{pname}-nofinger.patch
61 Patch5: %{pname}-GPL-only.patch
62 Patch6: %{pname}-intel_iommu.patch
63 Patch7: linux-3.18.18.patch
64 Patch8: linux-4.0.patch
65 Patch9: linux-4.2.patch
66 Patch10: linux-4.3.patch
67 Patch11: linux-4.4.patch
68 Patch12: linux-4.5.patch
69 Patch13: linux-4.6.patch
70 Patch14: linux-4.7.patch
71 URL: http://ati.amd.com/support/drivers/linux/linux-radeon.html
72 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
73 BuildRequires: rpmbuild(macros) >= 1.701
74 BuildRequires: sed >= 4.0
75 Requires: %{pname}-libs = %{epoch}:%{version}-%{rel}
76 Requires: xorg-xserver-server
77 Requires: xorg-xserver-server(videodrv-abi) <= 19.0
78 Requires: xorg-xserver-server(videodrv-abi) >= 2.0
79 Suggests: kernel-video-firegl
80 Provides: xorg-driver-video
81 Provides: xorg-xserver-module(glx)
82 Obsoletes: X11-driver-firegl < 1:7.0.0
83 Obsoletes: XFree86-driver-firegl < 1:7.0.0
84 Obsoletes: xorg-driver-video-fglrx-config
85 Obsoletes: xorg-driver-video-fglrx-libdri
86 Obsoletes: xorg-driver-video-fglrx-libglx
87 ExclusiveArch: i586 i686 athlon pentium3 pentium4 %{x8664}
88 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
90 %define _ccver %(rpm -q --qf "%{VERSION}" gcc | sed 's/\\..*//')
92 %define _noautoreqdep libGL.so.1
93 %define no_install_post_check_so 1
96 AMD display driver which allows for hardware accelerated rendering
97 with Radeon R9 Fury, R9 300, R7 300, R9 200, R7 200, HD 7000, HD 6000,
98 HD 5000, and ATI Mobility Radeon.
100 %description -l pl.UTF-8
101 Sterownik AMD umożliwiający sprzętowo akcelerowany rendering do kart
102 graficznych Radeon R9 Fury, R9 300, R7 300, R9 200, R7 200, HD 7000,
103 HD 6000, HD 5000 oraz ATI Mobility Radeon.
106 Summary: OpenGL (GL and GLX) ATI/AMD libraries
107 Summary(pl.UTF-8): Biblioteki OpenGL (GL i GLX) ATI/AMD
108 Group: X11/Development/Libraries
109 Requires(post,postun): /sbin/ldconfig
110 # 4.0 for Radeon HD 5000 Series
111 Provides: OpenGL = 3.3
112 Provides: OpenGL-GLX = 1.4
113 Obsoletes: X11-OpenGL-core < 1:7.0.0
114 Obsoletes: X11-OpenGL-libGL < 1:7.0.0
115 Obsoletes: XFree86-OpenGL-core < 1:7.0.0
116 Obsoletes: XFree86-OpenGL-libGL < 1:7.0.0
119 ATI/AMD OpenGL (GL and GLX only) implementation libraries.
121 %description libs -l pl.UTF-8
122 Implementacja OpenGL (tylko GL i GLX) firmy ATI/AMD.
125 Summary: Header files for development for the ATI Radeon cards proprietary driver
126 Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem własnościowego sterownika dla kart ATI Radeon
127 Group: X11/Development/Libraries
128 Requires: %{pname}-libs = %{epoch}:%{version}-%{rel}
130 Requires: xorg-proto-glproto-devel
131 # 4.0 for Radeon HD 5000 Series
132 Provides: OpenGL-GLX-devel = 1.4
133 Provides: OpenGL-devel = 3.3
134 Obsoletes: X11-OpenGL-devel-base
135 Obsoletes: XFree86-OpenGL-devel-base
138 Header files for development for the ATI proprietary driver for ATI
139 Radeon graphic cards.
141 %description devel -l pl.UTF-8
142 Pliki nagłówkowe do programowania z użyciem własnościowego sterownika
143 ATI dla kart graficznych Radeon.
146 Summary: Static libraries for development for the ATI Radeon cards proprietary driver
147 Summary(pl.UTF-8): Biblioteki statyczne do programowania z użyciem własnościowego sterownika dla kart ATI Radeon
148 Group: X11/Development/Libraries
149 Requires: %{pname}-devel = %{epoch}:%{version}-%{rel}
152 Static libraries for development for the ATI proprietary driver for
153 ATI Radeon graphic cards.
155 %description static -l pl.UTF-8
156 Biblioteki statyczne do programowania z użyciem własnościowego
157 sterownika ATI dla kart graficznych ATI Radeon.
160 Summary: ATI external events daemon
161 Summary(pl.UTF-8): Demon zewnętrznych zdarzeń ATI
163 Requires: %{pname} = %{epoch}:%{version}-%{rel}
165 Requires(post,preun): /sbin/chkconfig
168 %description atieventsd
169 The ATI External Events Daemon is a user-level application that
170 monitors various system events such as ACPI or hotplug, then notifies
171 the driver via the X extensions interface that the event has occured.
173 %description atieventsd -l pl.UTF-8
174 Demon zewnętrznych zdarzeń ATI jest aplikacją monitorującą różne
175 zdarzenia systemowe, takie jak ACPI lub hotplug, a następnie
176 informującą sterownik poprzez interfejs rozszerzeń X, że zaszło
179 %define kernel_pkg()\
180 %package -n kernel%{_alt_kernel}-video-firegl\
181 Summary: ATI kernel module for FireGL support\
182 Summary(pl.UTF-8): Moduł jądra oferujący wsparcie dla ATI FireGL\
183 Release: %{rel}@%{_kernel_ver_str}\
186 Requires(post,postun): /sbin/depmod\
187 %requires_releq_kernel\
188 Requires(postun): %releq_kernel\
189 Provides: kernel%{_alt_kernel}-video-firegl = %{epoch}:%{version}-%{rel}@%{_kernel_ver_str}\
191 %description -n kernel%{_alt_kernel}-video-firegl\
192 ATI kernel module for FireGL support.\
194 %description -n kernel%{_alt_kernel}-video-firegl -l pl.UTF-8\
195 Moduł jądra oferujący wsparcie dla ATI FireGL.\
198 %files -n kernel%{_alt_kernel}-video-firegl\
199 %defattr(644,root,root,755)\
200 /lib/modules/%{_kernel_ver}/misc/*.ko*\
203 %post -n kernel%{_alt_kernel}-video-firegl\
204 %depmod %{_kernel_ver}\
206 %postun -n kernel%{_alt_kernel}-video-firegl\
207 %depmod %{_kernel_ver}\
210 %define build_kernel_pkg()\
211 cp -pf common/lib/modules/fglrx/build_mod/2.6.x/Makefile common/lib/modules/fglrx/build_mod\
212 %build_kernel_modules -C common/lib/modules/fglrx/build_mod -m fglrx GCC_VER_MAJ=%{_ccver}\
213 %install_kernel_modules -D installed -m common/lib/modules/fglrx/build_mod/fglrx -d misc\
216 %{?with_kernel:%{expand:%create_kernel_packages}}
220 sh ./fglrx-%{intver}/amd-driver-installer-%{intver}-x86.x86_64.run --extract .
222 cp -p arch/%{arch_dir}/lib/modules/fglrx/build_mod/* common/lib/modules/fglrx/
223 cat >>common/lib/modules/fglrx/build_mod/2.6.x/Makefile <<EOF
225 ln -s \$(LIBIP_PREFIX)/libfglrx_ip.a \$(M)
244 install -d common{%{_prefix}/{%{_lib},bin,sbin},/etc}
245 cp -a %{x11ver}%{arch_sufix}/usr/X11R6/%{_lib}/* common%{_libdir}
246 mv common%{_libdir}/modules/extensions/{fglrx/fglrx-libglx.so,libglx.so}
247 cp -a arch/%{arch_dir}/usr/X11R6/%{_lib}/* common%{_libdir}
248 cp -a arch/%{arch_dir}/usr/X11R6/%{_lib}/modules common%{_libdir}/xorg
249 cp -a arch/%{arch_dir}/usr/X11R6/bin/* common%{_bindir}
250 cp -a arch/%{arch_dir}/usr/bin/* common%{_bindir}
251 cp -a arch/%{arch_dir}/usr/sbin/* common%{_sbindir}
252 cp -a arch/%{arch_dir}/usr/%{_lib}/*.so* common%{_libdir}
253 mv common%{_libdir}/{fglrx/fglrx-libGL.so.1.2,libGL.so.1.2}
254 cp -a arch/%{arch_dir}/etc/* common/etc
257 %{?with_kernel:%{expand:%build_kernel_packages}}
260 rm -rf $RPM_BUILD_ROOT
263 install -d $RPM_BUILD_ROOT
264 cp -a installed/* $RPM_BUILD_ROOT
267 %if %{with userspace}
268 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{ati,env.d,X11/xorg.conf.d,ld.so.conf.d} \
269 $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_includedir}/GL} \
270 $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_datadir}/ati,%{_mandir}/man8} \
271 $RPM_BUILD_ROOT%{_libdir}/{fglrx,xorg/modules/extensions/fglrx} \
272 $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d} \
273 $RPM_BUILD_ROOT%{_sysconfdir}/OpenCL/vendors
275 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/atieventsd
276 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/atieventsd
278 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/X11/xorg.conf.d
279 cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/X11/xorg.conf.d
280 sed -i -e 's|@@LIBDIR@@|%{_libdir}|g' $RPM_BUILD_ROOT/etc/X11/xorg.conf.d/10-fglrx-modules.conf
282 cp -a common%{_datadir}/doc/fglrx/examples/etc/acpi $RPM_BUILD_ROOT/etc
283 install -p common/etc/OpenCL/vendors/*.icd $RPM_BUILD_ROOT%{_sysconfdir}/OpenCL/vendors
285 install -p common%{_bindir}/* $RPM_BUILD_ROOT%{_bindir}
286 install -p common/usr/X11R6/bin/* $RPM_BUILD_ROOT%{_bindir}
287 install -p common%{_sbindir}/* $RPM_BUILD_ROOT%{_sbindir}
289 rm $RPM_BUILD_ROOT%{_sbindir}/atigetsysteminfo.sh
291 cp -a common%{_libdir}/modules/* $RPM_BUILD_ROOT%{_libdir}/xorg/modules
292 ln -s %{_libdir}/xorg/modules/dri $RPM_BUILD_ROOT%{_libdir}
293 cp -a common%{_sysconfdir}/ati/control $RPM_BUILD_ROOT%{_sysconfdir}/ati/control
294 cp -a common%{_sysconfdir}/ati/signature $RPM_BUILD_ROOT%{_sysconfdir}/ati/signature
295 cp -a common%{_sysconfdir}/ati/amdpcsdb.default $RPM_BUILD_ROOT%{_sysconfdir}/ati/amdpcsdb.default
297 cp -a common%{_datadir}/ati/* $RPM_BUILD_ROOT%{_datadir}/ati
298 cp -a common%{_datadir}/icons/*.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
300 cp -r common%{_desktopdir}/*.desktop $RPM_BUILD_ROOT%{_desktopdir}
302 cp -a common%{_mandir}/man8/*.8 $RPM_BUILD_ROOT%{_mandir}/man8
305 echo %{_libdir}/fglrx > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/fglrx64.conf
307 echo %{_libdir}/fglrx > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/fglrx.conf
310 cp -a common%{_libdir}/lib* $RPM_BUILD_ROOT%{_libdir}/fglrx
312 mv -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/{,fglrx}/libglx.so
314 /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/fglrx
315 ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/fglrx/libGL.so
316 (cd $RPM_BUILD_ROOT%{_libdir}/fglrx ; ln -sf libfglrx_dm.so.*.* libfglrx_dm.so)
318 cp -p common%{_includedir}/GL/*.h $RPM_BUILD_ROOT%{_includedir}/GL
319 echo "LIBGL_DRIVERS_PATH=%{_libdir}/xorg/modules/dri" > $RPM_BUILD_ROOT%{_sysconfdir}/env.d/LIBGL_DRIVERS_PATH
321 install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
322 %{__sed} -e 's|@@prefix@@|%{_prefix}|g;s|@@libdir@@|%{_libdir}|g;s|@@includedir@@|%{_includedir}|g;s|@@version@@|%{version}|g' < %{SOURCE3} \
323 > $RPM_BUILD_ROOT%{_pkgconfigdir}/gl.pc
327 rm -rf $RPM_BUILD_ROOT
329 %post libs -p /sbin/ldconfig
330 %postun libs -p /sbin/ldconfig
333 /sbin/chkconfig --add atieventsd
334 %service atieventsd restart
337 if [ "$1" = "0" ]; then
338 %service -q atieventsd stop
339 /sbin/chkconfig --del atieventsd
342 %if %{with userspace}
344 %defattr(644,root,root,755)
345 %doc LICENSE.TXT common%{_docdir}/fglrx/*.html common%{_docdir}/fglrx/articles common%{_docdir}/fglrx/user-manual
346 %dir %{_sysconfdir}/ati
347 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/control
348 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/signature
349 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/amdpcsdb.default
350 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/env.d/LIBGL_DRIVERS_PATH
351 %attr(755,root,root) %{_bindir}/*
352 %attr(755,root,root) %{_sbindir}/amdnotifyui
353 %{_desktopdir}/*.desktop
356 %dir %{_libdir}/xorg/modules/extensions/fglrx
357 %attr(755,root,root) %{_libdir}/xorg/modules/extensions/fglrx/libglx.so
359 %attr(755,root,root) %{_libdir}/xorg/modules/dri/fglrx_dri.so
360 %attr(755,root,root) %{_libdir}/xorg/modules/drivers/fglrx_drv.so
361 %dir %{_libdir}/xorg/modules/linux
362 %attr(755,root,root) %{_libdir}/xorg/modules/linux/libfglrxdrm.so
363 %attr(755,root,root) %{_libdir}/xorg/modules/amdxmm.so
364 %attr(755,root,root) %{_libdir}/xorg/modules/glesx.so
365 %{_sysconfdir}/X11/xorg.conf.d/10-fglrx.conf
366 %{_sysconfdir}/X11/xorg.conf.d/10-fglrx-modules.conf
369 %defattr(644,root,root,755)
370 %dir %{_sysconfdir}/OpenCL
371 %dir %{_sysconfdir}/OpenCL/vendors
372 %{_sysconfdir}/OpenCL/vendors/*.icd
373 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf.d/fglrx*.conf
374 %dir %{_libdir}/fglrx
375 %attr(755,root,root) %{_libdir}/fglrx/libAMDXvBA.so.*.*
376 %attr(755,root,root) %ghost %{_libdir}/fglrx/libAMDXvBA.so.1
377 %attr(755,root,root) %{_libdir}/fglrx/libOpenCL.so.1
378 %attr(755,root,root) %{_libdir}/fglrx/libXvBAW.so.*.*
379 %attr(755,root,root) %ghost %{_libdir}/fglrx/libXvBAW.so.1
380 %{_libdir}/fglrx/libAMDXvBA.cap
381 %attr(755,root,root) %{_libdir}/fglrx/libamdocl*.so
382 %attr(755,root,root) %{_libdir}/fglrx/libatiadlxx.so
383 %attr(755,root,root) %{_libdir}/fglrx/libaticalcl.so
384 %attr(755,root,root) %{_libdir}/fglrx/libaticaldd.so
385 %attr(755,root,root) %{_libdir}/fglrx/libaticalrt.so
386 %attr(755,root,root) %{_libdir}/fglrx/libatiuki.so.*.*
387 %attr(755,root,root) %ghost %{_libdir}/fglrx/libatiuki.so.1
388 %attr(755,root,root) %{_libdir}/fglrx/libGL.so.*.*
389 %attr(755,root,root) %ghost %{_libdir}/fglrx/libGL.so.1
390 %attr(755,root,root) %{_libdir}/fglrx/libfglrx_dm.so.*.*
393 %defattr(644,root,root,755)
394 %attr(755,root,root) %{_libdir}/fglrx/libfglrx_dm.so
395 %attr(755,root,root) %{_libdir}/fglrx/libGL.so
397 %{_pkgconfigdir}/gl.pc
400 %defattr(644,root,root,755)
401 %{_libdir}/fglrx/libfglrx_dm.a
404 %defattr(644,root,root,755)
405 %attr(754,root,root) /etc/rc.d/init.d/atieventsd
406 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/atieventsd
407 %attr(755,root,root) %{_sbindir}/atieventsd
408 %attr(755,root,root) %{_sysconfdir}/acpi/ati-powermode.sh
409 %{_sysconfdir}/acpi/events/*
410 %{_mandir}/man8/atieventsd.8*