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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114953 - (show annotations) (download)
Mon Jun 27 21:44:39 2011 UTC (12 years, 9 months ago) by ahmad
File size: 31696 byte(s)
- Update to 11.6 aka 8.861
1
2 ##############################################################################
3 # This .spec file is dual licensed. It can be distributed either with the #
4 # terms of GPL version 2 or newer, or with the MIT license included below. #
5 # Removing either GPL or MIT license when distributing this file is allowed. #
6 ##############################################################################
7 # - start of MIT license -
8 # Copyright (c) 2007-2009 Anssi Hannula, Luiz Fernando Capitulino, Colin Guthrie, Thomas Backlund
9 #
10 # Permission is hereby granted, free of charge, to any person
11 # obtaining a copy of this software and associated documentation
12 # files (the "Software"), to deal in the Software without
13 # restriction, including without limitation the rights to use,
14 # copy, modify, merge, publish, distribute, sublicense, and/or sell
15 # copies of the Software, and to permit persons to whom the
16 # Software is furnished to do so, subject to the following
17 # conditions:
18 #
19 # The above copyright notice and this permission notice shall be
20 # included in all copies or substantial portions of the Software.
21 #
22 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
24 # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
27 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
29 # OTHER DEALINGS IN THE SOFTWARE.
30 # - end of MIT license -
31
32 %define name fglrx
33
34 # %atibuild is used to enable the ATI installer --buildpkg mode.
35 # The macros version, rel, ati_dir, distsuffix need to be manually defined.
36 # The macro mdkversion can also be overridden.
37 %define atibuild 0
38 %{?_without_ati: %global atibuild 0}
39 %{?_with_ati: %global atibuild 1}
40
41 %if !%{atibuild}
42 # NOTE: These version definitions are overridden by ati-packager.sh when
43 # building with the --buildpkg method of the installer.
44
45 # When updating, please add new ids to ldetect-lst (merge2pcitable.pl).
46
47 # version in installer filename:
48 %define oversion 11-6
49 # Advertised version, for description:
50 %define mversion 11.6
51 # driver version from ati-packager-helper.sh:
52 %define iversion 8.861
53 # release:
54 %define rel 1
55 # rpm version (adds 0 in order to not go backwards if iversion is two-decimal)
56 %define version %{iversion}%([ $(echo %iversion | wc -c) -le 5 ] && echo 0)
57 %else
58 # Best-effort if ATI has made late changes (in atibuild mode)
59 %define _default_patch_fuzz 2
60 %endif
61
62 %define priority 1000
63 %define release %mkrel %{rel}
64
65 # set to 1 for a prerelease driver with an ubuntu tarball as source
66 %define ubuntu_prerelease 0
67
68 %define driverpkgname x11-driver-video-fglrx
69 %define drivername fglrx
70 %define xorg_version pic
71 # highest supported videodrv abi
72 %define videodrv_abi 10
73 %define xorg_libdir %{_libdir}/xorg
74 %define xorg_dridir %{_libdir}/dri
75 %define xorg_dridir32 %{_prefix}/lib/dri
76 %define ld_so_conf_file ati.conf
77 %define ati_extdir %{_libdir}/%{drivername}/xorg
78 %define xorg_extra_modules %{_libdir}/xorg/extra-modules
79 %define bundle_qt 0
80 # The entry in Cards+ this driver should be associated with, if there is
81 # no entry in ldetect-lst default pcitable:
82 # cooker ldetect-lst should be up-to-date
83 %define ldetect_cards_name %nil
84
85 %if %{atibuild}
86 # ATI cards not listed in main ldetect-lst pcitable are not likely
87 # to be supported by radeon which is from the same time period.
88 # radeonhd has greater chance of working due to it not using ID lists.
89 # (main pcitable entries override our entries)
90 %define ldetect_cards_name ATI Radeon HD 2000 and later (vesa/fglrx)
91 %endif
92
93 %ifarch %ix86
94 %define xverdir x%{xorg_version}
95 %define archdir arch/x86
96 %endif
97 %ifarch x86_64
98 %define xverdir x%{xorg_version}_64a
99 %define archdir arch/x86_64
100 %endif
101
102 # Other packages should not require any ATI specific proprietary libraries
103 # (if that is really necessary, we may want to split that specific lib out),
104 # and this package should not be pulled in when libGL.so.1 is required.
105 %define _provides_exceptions \\.so
106
107 %define qt_requires_exceptions %nil
108 %if %{bundle_qt}
109 # do not require Qt if it is bundled
110 %define qt_requires_exceptions \\|libQtCore\\.so\\|libQtGui\\.so
111 %endif
112
113 # do not require fglrx stuff, they are all included
114 %define common_requires_exceptions libfglrx.\\+\\.so\\|libati.\\+\\.so%{qt_requires_exceptions}
115
116 %ifarch x86_64
117 # (anssi) Allow installing of 64-bit package if the runtime dependencies
118 # of 32-bit libraries are not satisfied. If a 32-bit package that requires
119 # libGL.so.1 is installed, the 32-bit mesa libs are pulled in and that will
120 # pull the dependencies of 32-bit fglrx libraries in as well.
121 %define _requires_exceptions %common_requires_exceptions\\|lib.*so\\.[^(]\\+\\(([^)]\\+)\\)\\?$
122 %else
123 %define _requires_exceptions %common_requires_exceptions
124 %endif
125
126 # (anssi) Do not require qt for amdnotifyui (used as event notifier, as
127 # of 04/2010 only for DisplayPort failures). installing
128 # fglrx-control-center will satisfy the dependency.
129 # It is not moved to fglrx-control-center as due to its small size it may
130 # be wanted on e.g. KDE Ones, which can't have the full fglrx-control-center,
131 # and due to it having nothing to do with fglrx-control-center.
132 %define _exclude_files_from_autoreq ^%{_sbindir}/amdnotifyui$
133
134 Summary: ATI proprietary X.org driver and libraries
135 Name: %{name}
136 Version: %{version}
137 Release: %{release}
138 %if !%{atibuild}
139 %if !%{ubuntu_prerelease}
140 Source0: https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-%{oversion}-x86.x86_64.run
141 %else
142 Source0: fglrx-installer_%{iversion}.orig.tar.gz
143 %endif
144 %endif
145 Source1: ati-packager.sh
146 Source2: atieventsd.init
147 %if !%{atibuild}
148 # Generates fglrx.spec from Mandriva SVN for use in AMD installer
149 # archive. Requires kenobi access for fetching names for changelog.
150 # (for manual use)
151 Source10: generate-fglrx-spec-from-svn.sh
152 %endif
153 Patch3: fglrx-authfile-locations.patch
154 Patch9: fglrx-make_sh-custom-kernel-dir.patch
155 # do not probe /proc for kernel info as we may be building for a
156 # different kernel
157 Patch10: fglrx-make_sh-no-proc-probe.patch
158
159 License: Freeware
160 URL: http://ati.amd.com/support/driver.html
161 Group: System/Kernel and hardware
162 ExclusiveArch: %{ix86} x86_64
163 BuildRoot: %{_tmppath}/%{name}-root
164 %if !%{atibuild}
165 BuildRequires: mesagl-devel
166 BuildRequires: libxmu-devel
167 BuildRequires: libxaw-devel
168 BuildRequires: libxp-devel
169 BuildRequires: libxtst-devel
170 BuildRequires: imake
171 # Used by atieventsd:
172 Suggests: acpid
173 BuildRequires: ImageMagick
174 %endif
175
176 %description
177 Source package of the ATI proprietary driver. Binary packages are
178 named x11-driver-video-fglrx on %{_vendor}.
179 %if !%{atibuild}
180 This package corresponds to ATI Catalyst version %mversion.
181 %endif
182
183 %package -n %{driverpkgname}
184 Summary: ATI proprietary X.org driver and libraries
185 Group: System/Kernel and hardware
186 Requires(post): update-alternatives >= 1.9.0
187 Requires(postun): update-alternatives
188 Obsoletes: ati_igp
189 Suggests: %{drivername}-control-center = %{version}
190 Obsoletes: ati < %{version}-%{release}
191 Provides: ati = %{version}-%{release}
192 Requires: kmod(fglrx) = %{version}
193 Requires: x11-server-common >= 1.9
194 %if !%{atibuild}
195 # Conflict with the next videodrv ABI break.
196 # The driver may support multiple ABI versions and therefore
197 # a strict version-specific requirement would not be enough.
198 # (ahmad) since X Server 1.10 ABI is now 10 (upstream jumped from 8 to 10)
199 # make it +2 for now
200 ### This is problematic as it can cause removal of xserver instead (Anssi 04/2011)
201 ### Conflicts: xserver-abi(videodrv-%(echo $((%{videodrv_abi} + 1))))
202 %endif
203 Provides: atieventsd = %{version}-%{release}
204 Obsoletes: atieventsd < %{version}-%{release}
205
206 %description -n %{driverpkgname}
207 ATI proprietary X.org graphics driver, related libraries and
208 configuration tools.
209
210 NOTE: You should use XFdrake to configure your ATI card. The
211 correct packages will be automatically installed and configured.
212
213 If you do not want to use XFdrake, see README.manual-setup.
214
215 The graphical configuration utility, AMD Catalyst Control Center
216 Linux Edition, is contained in the package
217 %{drivername}-control-center.
218 %if !%{atibuild}
219 This package corresponds to ATI Catalyst version %mversion.
220 %endif
221
222 %package -n %{drivername}-control-center
223 Summary: AMD Catalyst Control Center Linux Edition
224 Group: System/Kernel and hardware
225 Requires: %{driverpkgname} = %{version}
226 Obsoletes: ati-utils < %{version}-%{release}
227 Provides: ati-utils = %{version}-%{release}
228 Provides: amdcccle = %{version}-%{release}
229 Obsoletes: ati-ccc < %{version}-%{release}
230 Obsoletes: ati-control-center < %{version}-%{release}
231 Provides: ati-control-center = %{version}-%{release}
232 %if !%{bundle_qt}
233 # 2009.0 and 2009.1 have this one in updates only
234 Requires: %{_lib}qtcore4 >= 3:4.5.2
235 %endif
236
237 %description -n %{drivername}-control-center
238 AMD Catalyst Control Center Linux Edition, a graphical configuration
239 utility for the ATI proprietary X.org driver.
240 %if !%{atibuild}
241 This package corresponds to ATI Catalyst version %mversion.
242 %endif
243
244 %package -n dkms-%{drivername}
245 Summary: ATI proprietary kernel module
246 Group: System/Kernel and hardware
247 Requires: dkms
248 Requires(post): dkms
249 Requires(preun): dkms
250 Obsoletes: dkms-ati < %{version}-%{release}
251 Provides: dkms-ati = %{version}-%{release}
252 Requires: %{driverpkgname} = %{version}
253
254 %description -n dkms-%{drivername}
255 ATI proprietary kernel module. This is to be used with the
256 %{driverpkgname} package.
257 %if !%{atibuild}
258 This package corresponds to ATI Catalyst version %mversion.
259 %endif
260
261 %package -n %{drivername}-devel
262 Summary: ATI proprietary development libraries and headers
263 Group: Development/C
264 Requires: %{driverpkgname} = %{version}-%{release}
265 Obsoletes: ati-devel < %{version}-%{release}
266 Provides: ati-devel = %{version}-%{release}
267
268 %description -n %{drivername}-devel
269 ATI proprietary development libraries and headers. This package is
270 not required for normal use.
271
272 The main driver package name is %{driverpkgname}.
273
274 %prep
275 %setup -T -c
276 %if %{atibuild}
277 ln -s %{ati_dir}/%{xverdir} %{ati_dir}/arch .
278 # patches affects common, so we cannot symlink it:
279 cp -a %{ati_dir}/common .
280 %else
281 %if %ubuntu_prerelease
282 %setup -q -T -D -a 0
283 ln -s . common
284 %else
285 sh %{SOURCE0} --extract .
286 %endif
287
288 mkdir fglrx_tools
289 tar -xzf common/usr/src/ati/fglrx_sample_source.tgz -C fglrx_tools
290 %if %ubuntu_prerelease
291 [ -d "%xverdir" ] || (echo This driver version does not support your X.org server. Please wait for a new release from ATI. >&2; false)
292 %else
293 [ "%iversion" = "$(./ati-packager-helper.sh --version)" ]
294 %endif
295 %endif
296
297 cd common # ensure patches do not touch outside
298 %patch3 -p2
299 %patch9 -p2
300 %patch10 -p2
301 cd ..
302
303 cat > README.install.urpmi <<EOF
304 This driver is for ATI Radeon HD 2000 and newer cards.
305 Reconfiguring is not necessary when upgrading from a previous %{_vendor} ATI
306 driver package.
307
308 Use XFdrake to configure X to use the correct ATI driver. Any needed
309 packages will be automatically installed if not already present.
310 1. Run XFdrake as root.
311 2. Go to the Graphics Card list.
312 3. Select your card (it is usually already autoselected).
313 4. Answer any questions asked and then quit.
314
315 If you do not want to use XFdrake or it does not work correctly for
316 you, see README.manual-setup for manual installation instructions.
317 EOF
318
319 cat > README.manual-setup <<EOF
320 This file describes the procedure for the manual installation of this ATI
321 driver package. You can find the instructions for the recommended automatic
322 installation in the file 'README.install.urpmi' in this directory.
323
324 - Open %{_sysconfdir}/X11/xorg.conf and make the following changes:
325 o Change the Driver to "fglrx" in the Device section
326 o Make the line below the only 'glx' related line in the Module section:
327 Load "glx"
328 o Remove any 'ModulePath' lines from the Files section
329 - Run "update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}" as root.
330 - Run "ldconfig" as root.
331 EOF
332
333 cat > README.8.600.upgrade.urpmi <<EOF
334 REMOVED GRAPHICS DRIVER SUPPORT NOTIFICATION:
335 Versions 8.600 and later of ATI Proprietary Graphics driver (fglrx) only
336 support Radeon HD 2000 (r600) or newer cards.
337
338 If you have an older Radeon card or are unsure, please reconfigure your
339 driver:
340 1. Run XFdrake as root or select Graphical server configuration in
341 %{_vendor} Control Center.
342 2. Go to the Graphics Card list.
343 3. Select your card (it is usually already autoselected).
344 4. Answer any questions asked and then quit.
345 EOF
346
347 %build
348 %if !%{atibuild}
349 # %atibuild is done with minimal buildrequires
350 cd fglrx_tools/fgl_glxgears
351 xmkmf
352 %make RMAN=/bin/true CC="%__cc %optflags -I../../common/usr/include" EXTRA_LDOPTIONS="%{?ldflags}"
353 cd -
354 %endif
355
356 %install
357 rm -rf %{buildroot}
358
359 # dkms
360 install -d -m755 %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
361 cp -a common/lib/modules/fglrx/build_mod/* %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
362 cp -a %{archdir}/lib/modules/fglrx/build_mod/* %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
363
364 #install -d -m755 %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/patches
365 #install -m644 %{SOURCE3} %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/patches
366
367 cat > %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf <<EOF
368 PACKAGE_NAME="%{drivername}"
369 PACKAGE_VERSION="%{version}-%{release}"
370 BUILT_MODULE_NAME[0]="fglrx"
371 DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
372 # uname_v set to none so that make.sh doesn't try to use "uname -v" to see
373 # if the target kernel is SMP (we may be compiling for a different kernel)
374 MAKE[0]="sh make.sh --uname_r=\${kernelver} --uname_v=none --kernel-dir=\${kernel_source_dir} --no-proc-probe --norootcheck"
375 CLEAN="rm -rf 2.6.x/.tmp_versions; make -C2.6.x clean"
376 AUTOINSTALL="yes"
377 EOF
378
379 # headers
380 install -d -m755 %{buildroot}%{_includedir}
381 cp -a common/usr/include/* %{buildroot}%{_includedir}
382 chmod 0644 %{buildroot}%{_includedir}/*/*.h
383
384 # install binaries
385 install -d -m755 %{buildroot}%{_sbindir}
386 install -m755 %{archdir}/usr/sbin/* %{buildroot}%{_sbindir}
387 install -m755 common/usr/sbin/* %{buildroot}%{_sbindir}
388 install -d -m755 %{buildroot}%{_bindir}
389 install -m755 %{archdir}/usr/X11R6/bin/* %{buildroot}%{_bindir}
390 install -m755 common/usr/X11R6/bin/* %{buildroot}%{_bindir}
391 %if !%{atibuild}
392 # install self-built binaries
393 install -m755 fglrx_tools/fgl_glxgears/fgl_glxgears %{buildroot}%{_bindir}
394 %endif
395
396 # atieventsd initscript
397 install -d -m755 %{buildroot}%{_initrddir}
398 install -m755 %{SOURCE2} %{buildroot}%{_initrddir}/atieventsd
399
400 # amdcccle data files
401 install -d -m755 %{buildroot}%{_datadir}/ati/amdcccle
402 rm -f amdcccle.langs
403 for fullname in common/usr/share/ati/amdcccle/*.qm; do
404 file=$(basename $fullname)
405 lang=${file#*_}
406 lang=${lang%%.qm}
407 %if !%{bundle_qt}
408 # qt localization not necessary with non-bundled qt
409 [ "$file" = "${file#qt}" ] || continue
410 %endif
411 install -m644 $fullname %{buildroot}%{_datadir}/ati/amdcccle
412 echo "%%lang($lang) %{_datadir}/ati/amdcccle/$file" >> amdcccle.langs
413 done
414
415 # amdcccle super-user mode
416 install -d -m755 %{buildroot}%{_sysconfdir}/security/console.apps
417 install -d -m755 %{buildroot}%{_sysconfdir}/pam.d
418 install -m644 common/etc/security/console.apps/* %{buildroot}%{_sysconfdir}/security/console.apps
419 ln -s su %{buildroot}%{_sysconfdir}/pam.d/amdcccle-su
420
421 # man pages
422 install -d -m755 %{buildroot}%{_mandir}/man1 %{buildroot}%{_mandir}/man8
423 install -m644 common/usr/share/man/man8/* %{buildroot}%{_mandir}/man8
424
425 # menu entry
426 install -d -m755 %{buildroot}%{_datadir}/applications
427 install -m644 common/usr/share/applications/* %{buildroot}%{_datadir}/applications
428 sed -i 's,^Icon=.*$,Icon=%{drivername}-amdcccle,' %{buildroot}%{_datadir}/applications/*.desktop
429 # control center doesn't really use GNOME/KDE libraries:
430 sed -i 's,GNOME;KDE;,,' %{buildroot}%{_datadir}/applications/*.desktop
431
432 # icons
433 install -d -m755 %{buildroot}%{_miconsdir} %{buildroot}%{_iconsdir} %{buildroot}%{_liconsdir}
434 %if !%{atibuild}
435 convert common/usr/share/icons/ccc_large.xpm -resize 16x16 %{buildroot}%{_miconsdir}/%{drivername}-amdcccle.png
436 convert common/usr/share/icons/ccc_large.xpm -resize 32x32 %{buildroot}%{_iconsdir}/%{drivername}-amdcccle.png
437 convert common/usr/share/icons/ccc_large.xpm -resize 48x48 %{buildroot}%{_liconsdir}/%{drivername}-amdcccle.png
438 %else
439 install -m644 common/usr/share/icons/ccc_large.xpm %{buildroot}%{_iconsdir}/%{drivername}-amdcccle.xpm
440 %endif
441
442 # install libraries
443 install -d -m755 %{buildroot}%{_libdir}/%{drivername}
444 install -m755 %{archdir}/usr/X11R6/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
445 install -m755 %{archdir}/usr/X11R6/%{_lib}/fglrx/* %{buildroot}%{_libdir}/%{drivername}
446 install -m755 %{archdir}/usr/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
447 mv %{buildroot}%{_libdir}/%{drivername}/{fglrx-,}libGL.so.1.2
448 chmod 0644 %{buildroot}%{_libdir}/%{drivername}/*.a
449 /sbin/ldconfig -n %{buildroot}%{_libdir}/%{drivername}
450 # create devel symlinks
451 for file in %{buildroot}%{_libdir}/%{drivername}/*.so.*.*; do
452 ln -s $(basename $file) ${file%%.so*}.so;
453 done
454 %ifarch x86_64
455 install -d -m755 %{buildroot}%{_prefix}/lib/%{drivername}
456 install -m755 arch/x86/usr/X11R6/lib/fglrx/* %{buildroot}%{_prefix}/lib/%{drivername}
457 install -m755 arch/x86/usr/lib/*.* %{buildroot}%{_prefix}/lib/%{drivername}
458 mv %{buildroot}%{_prefix}/lib/%{drivername}/{fglrx-,}libGL.so.1.2
459 /sbin/ldconfig -n %{buildroot}%{_prefix}/lib/%{drivername}
460 # create devel symlinks
461 for file in %{buildroot}%{_prefix}/lib/%{drivername}/*.so.*.*; do
462 ln -s $(basename $file) ${file%%.so*}.so;
463 done
464 %endif
465
466 %if %{bundle_qt}
467 # install the bundled Qt4 libs on distros with qt4 < 4.4.2
468 install -d -m755 %{buildroot}%{_libdir}/%{drivername}-qt4
469 install -m755 %{archdir}/usr/share/ati/%{_lib}/* %{buildroot}%{_libdir}/%{drivername}-qt4
470 # RPATH of amdcccle points to datadir, we create a symlink there:
471 install -d -m755 %{buildroot}/usr/share/ati
472 ln -s %{_libdir}/%{drivername}-qt4 %{buildroot}/usr/share/ati/%{_lib}
473 %endif
474
475 # install X.org files
476 install -d -m755 %{buildroot}%{xorg_libdir}/modules/drivers
477 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/drivers/*.so* %{buildroot}%{xorg_libdir}/modules/drivers
478 install -d -m755 %{buildroot}%{xorg_libdir}/modules/linux
479 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/linux/*.so* %{buildroot}%{xorg_libdir}/modules/linux
480 install -m644 %{xverdir}/usr/X11R6/%{_lib}/modules/*.*o %{buildroot}%{xorg_libdir}/modules
481 install -d -m755 %{buildroot}%{ati_extdir}
482 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/extensions/fglrx/*.so* %{buildroot}%{ati_extdir}
483 mv %{buildroot}%{ati_extdir}/{fglrx-,}libglx.so
484
485 # etc files
486 install -d -m755 %{buildroot}%{_sysconfdir}/ati
487 install -m644 common/etc/ati/* %{buildroot}%{_sysconfdir}/ati
488 chmod 0755 %{buildroot}%{_sysconfdir}/ati/*.sh
489
490 # dri libraries
491 install -d -m755 %{buildroot}%{xorg_dridir}
492 install -m755 %{archdir}/usr/X11R6/%{_lib}/modules/dri/* %{buildroot}%{xorg_dridir}
493 %ifarch x86_64
494 install -d -m755 %{buildroot}%{xorg_dridir32}
495 install -m755 arch/x86/usr/X11R6/lib/modules/dri/* %{buildroot}%{xorg_dridir32}
496 %endif
497
498 # ld.so.conf
499 install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL
500 echo "%{_libdir}/%{drivername}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
501 %ifarch x86_64
502 echo "%{_prefix}/lib/%{drivername}" >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
503 %endif
504 touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf
505
506 # XvMCConfig
507 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
508 echo "libAMDXvBA.so.1" > %{buildroot}%{_sysconfdir}/%{drivername}/XvMCConfig
509
510 # PowerXpress intel - use Mesa libGL but still keep ATI specific libs in search path
511 echo "%{_libdir}/mesa" > %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
512 %ifarch x86_64
513 echo "%{_prefix}/lib/mesa" >> %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
514 %endif
515 cat %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} >> %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
516
517 # install ldetect-lst pcitable files for backports
518 sed -ne 's|^\s*FGL_ASIC_ID(\(0x....\)).*|\1|gp' common/lib/modules/fglrx/build_mod/fglrxko_pci_ids.h | tr '[:upper:]' '[:lower:]' | sort -u | sed 's,^.*$,0x1002\t\0\t"%{ldetect_cards_name}",' > pcitable.fglrx.lst
519 [ $(stat -c%s pcitable.fglrx.lst) -gt 500 ]
520 %if "%{ldetect_cards_name}" != ""
521 install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d
522 gzip -c pcitable.fglrx.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
523 %endif
524
525 install -d -m755 %{buildroot}%{_datadir}/ati
526 cat > %{buildroot}%{_datadir}/ati/amd-uninstall.sh <<EOF
527 #!/bin/bash
528 # parameters as per AMD: [--force | --dry-run]
529 dryrun=
530 while [ -n "\$*" ]; do
531 case "\$1" in
532 --dryrun) dryrun="--test" ;;
533 --force) ;;
534 --preserve) ;;
535 --quick) ;;
536 --getUninstallVersion) exit 2 ;;
537 *) echo "Unknown option for \$0." >&2 ;;
538 esac
539 shift
540 done
541
542 # AMD documentation suggests doing rpm -V and use --force to override it,
543 # but it doesn't make sense with the update-alternatives setup, so we just
544 # check package presence.
545 pkgs=
546 rpm -q --quiet %{driverpkgname} && pkgs="\$pkgs %{driverpkgname}"
547 rpm -q --quiet dkms-%{drivername} && pkgs="\$pkgs dkms-%{drivername}"
548 rpm -q --quiet %{drivername}-control-center && pkgs="\$pkgs %{drivername}-control-center"
549 rpm -q --quiet %{drivername}-devel && pkgs="\$pkgs %{drivername}-devel"
550 [ -n "\$pkgs" ] || { echo "The AMD proprietary driver is not installed." >&2; exit 1; }
551 urpme --auto \$dryrun \$pkgs || { echo "Failed to uninstall the AMD proprietary driver." >&2; exit 1; }
552 [ -n "\$dryrun" ] || echo "The AMD proprietary driver has been uninstalled."
553 EOF
554 chmod 0755 %{buildroot}%{_datadir}/ati/amd-uninstall.sh
555
556 # PowerXpress (switchable graphics)
557 # - path hardcoded into driver
558 install -d -m755 %{buildroot}%{_libdir}/fglrx
559 cat > %{buildroot}%{_libdir}/fglrx/switchlibGL <<EOF
560 #!/bin/sh
561
562 amd_target="%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}"
563 intel_target="%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf"
564
565 case \$1 in
566 amd)
567 update-alternatives --set gl_conf "\$amd_target" >/dev/null
568 ldconfig -X
569 ;;
570 intel)
571 update-alternatives --set gl_conf "\$intel_target" >/dev/null
572 ldconfig -X
573 ;;
574 query)
575 case \$(readlink -f "%{_sysconfdir}/ld.so.conf.d/GL.conf") in
576 \$amd_target)
577 echo "amd"
578 ;;
579 \$intel_target)
580 echo "intel"
581 ;;
582 *)
583 echo "unknown"
584 ;;
585 esac
586 ;;
587 esac
588 EOF
589 chmod 0755 %{buildroot}%{_libdir}/fglrx/switchlibGL
590
591 # It is not feasible to configure these separately with the alternatives
592 # system, so use the same script for both.
593 # Note: using a symlink here fails as the driver checks go+w without
594 # dereferencing the symlink.
595 cp -a %{buildroot}%{_libdir}/fglrx/switchlibGL %{buildroot}%{_libdir}/fglrx/switchlibglx
596
597 %pre -n %{driverpkgname}
598 # Handle alternatives-era /etc/ati directory
599 # It may confuse rpm due to it containing %config files
600 if [ -L %{_sysconfdir}/ati ]; then
601 rm %{_sysconfdir}/ati
602 fi
603
604 %post -n %{driverpkgname}
605 # Migrate from pre-alternatives files
606 if [ ! -L %{_datadir}/applications/mandriva-amdcccle.desktop -a -e %{_datadir}/applications/mandriva-amdcccle.desktop ]; then
607 rm -f %{_datadir}/applications/mandriva-amdcccle.desktop
608 fi
609
610 %{_sbindir}/update-alternatives \
611 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} %{priority} \
612 --slave %{_sysconfdir}/X11/XvMCConfig xvmcconfig %{_sysconfdir}/%{drivername}/XvMCConfig \
613 --slave %{_libdir}/libAMDXvBA.cap %{_lib}AMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
614 %ifarch x86_64
615 --slave %{_prefix}/lib/libAMDXvBA.cap libAMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
616 %endif
617 --slave %{xorg_extra_modules} xorg_extra_modules %{ati_extdir}
618
619 # Alternative for PowerXpress intel (switchable graphics)
620 # This is a separate alternative so that this situation can be differentiated
621 # from standard intel configuration by tools (e.g. so that radeon driver won't
622 # be loaded despite fglrx not being configured anymore).
623 %{_sbindir}/update-alternatives \
624 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf 50
625
626 if [ "$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" = "%{_sysconfdir}/ld.so.conf.d/GL/ati-hd2000.conf" ]; then
627 # Switch from the obsolete hd2000 branch:
628 %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
629 fi
630 # When upgrading from alternatives setup, rpm may consider /etc/ati/atiogl.xml
631 # to exist due to the symlink, even when we remove it in %pre:
632 if [ -e %{_sysconfdir}/ati/atiogl.xml.rpmnew -a ! -e %{_sysconfdir}/ati/atiogl.xml ]; then
633 mv %{_sysconfdir}/ati/atiogl.xml.rpmnew %{_sysconfdir}/ati/atiogl.xml
634 echo "Moved %{_sysconfdir}/ati/atiogl.xml.rpmnew back to %{_sysconfdir}/ati/atiogl.xml."
635 fi
636
637 # Call /sbin/ldconfig explicitely due to alternatives
638 /sbin/ldconfig -X
639 %_post_service atieventsd
640 %if "%{ldetect_cards_name}" != ""
641 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
642 %endif
643
644 # Clear driver version numbers from amdpcsdb as suggested by AMD.
645 # (fixes version display in amdcccle after upgrade)
646 aticonfig --del-pcs-key=LDC,ReleaseVersion &>/dev/null || :
647 aticonfig --del-pcs-key=LDC,Catalyst_Version &>/dev/null || :
648
649 %posttrans -n %{driverpkgname}
650 # RPM seems to leave out the active /etc/fglrx* directory, likely due to
651 # it being confused with the /etc/ati symlink. We have to clean up ourself:
652 for dir in %{_sysconfdir}/fglrx %{_sysconfdir}/fglrx-hd2000; do
653 if [ -d $dir ]; then
654 for file in $dir/*; do
655 case "$(basename $file)" in
656 control | signature | logo_mask.xbm.example | logo.xbm.example)
657 # non-config files, rpm would normally remove
658 rm $file;;
659 authatieventsd.sh | fglrxprofiles.csv | fglrxrc | atiogl.xml)
660 # config files, check for modifications
661 case "$(stat -c%s $file)" in
662 545 | 838 | 2769 | 10224 | 11018)
663 rm $file;;
664 *)
665 echo "Saving $file as %{_sysconfdir}/ati/$(basename $file).rpmsave."
666 mv $file %{_sysconfdir}/ati/$(basename $file).rpmsave;;
667 esac
668 ;;
669 esac
670 done
671 [ $(ls -c $dir | wc -l) -eq 0 ] && rm -r $dir
672 fi
673 done
674 true
675
676 %preun -n %{driverpkgname}
677 %_preun_service atieventsd
678
679 %postun -n %{driverpkgname}
680 if [ ! -f %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} ]; then
681 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
682 fi
683 if [ ! -f %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf ]; then
684 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
685 fi
686 # Call /sbin/ldconfig explicitely due to alternatives
687 /sbin/ldconfig -X
688 %if "%{ldetect_cards_name}" != ""
689 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
690 %endif
691
692 %pre -n %{drivername}-control-center
693 # Handle alternatives-era directory,
694 # it may confuse rpm.
695 if [ -L %{_datadir}/ati ]; then
696 rm %{_datadir}/ati
697 fi
698
699 %post -n %{drivername}-control-center
700 [ -d %{_datadir}/fglrx ] && rm -r %{_datadir}/fglrx
701 [ -d %{_datadir}/fglrx-hd2000 ] && rm -r %{_datadir}/fglrx-hd2000
702 true
703
704 %post -n dkms-%{drivername}
705 /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
706 /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
707 /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
708
709 # rmmod any old driver if present and not in use (e.g. by X)
710 rmmod fglrx > /dev/null 2>&1 || true
711
712 %preun -n dkms-%{drivername}
713 /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
714
715 # rmmod any old driver if present and not in use (e.g. by X)
716 rmmod fglrx > /dev/null 2>&1 || true
717
718 %clean
719 rm -rf %{buildroot}
720
721 %files -n %{driverpkgname}
722 %defattr(-,root,root)
723 %doc README.install.urpmi README.manual-setup
724 %doc README.8.600.upgrade.urpmi
725 # the documentation files are grossly out of date; the configuration options
726 # described in configure.html seem to be used by the driver, though, so it is
727 # packaged, while the other html files are not:
728 %doc common/usr/share/doc/fglrx/configure.html
729 %doc common/usr/share/doc/fglrx/ATI_LICENSE.TXT
730
731 %if "%{ldetect_cards_name}" != ""
732 %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
733 %endif
734
735 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
736 %dir %{_sysconfdir}/ld.so.conf.d/GL
737 %{_sysconfdir}/ld.so.conf.d/GL/ati.conf
738
739 %dir %{_sysconfdir}/%{drivername}
740 %{_sysconfdir}/%{drivername}/XvMCConfig
741 %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
742
743 %dir %{_sysconfdir}/ati
744 %{_sysconfdir}/ati/control
745 %{_sysconfdir}/ati/signature
746 %config(noreplace) %{_sysconfdir}/ati/atiogl.xml
747 %{_sysconfdir}/ati/logo.xbm.example
748 %{_sysconfdir}/ati/logo_mask.xbm.example
749 %config %{_sysconfdir}/ati/authatieventsd.sh
750 %{_sysconfdir}/ati/amdpcsdb.default
751
752 %{_initrddir}/atieventsd
753
754 %{_sbindir}/atieventsd
755 %{_sbindir}/amdnotifyui
756 %{_sbindir}/atigetsysteminfo.sh
757
758 %{_bindir}/amdupdaterandrconfig
759 %{_bindir}/amdxdg-su
760 %{_bindir}/aticonfig
761 %{_bindir}/atiodcli
762 %{_bindir}/atiode
763 %{_bindir}/fgl_glxgears
764 %{_bindir}/fglrxinfo
765
766 %{xorg_libdir}/modules/drivers/fglrx_drv.so
767 %{xorg_libdir}/modules/linux/libfglrxdrm.so
768 %{xorg_libdir}/modules/amdxmm.*o
769 %{xorg_libdir}/modules/glesx.*o
770
771 %dir %{ati_extdir}
772 %{ati_extdir}/libglx.so
773
774 %{xorg_dridir}/fglrx_dri.so
775 %ifarch x86_64
776 %{xorg_dridir32}/fglrx_dri.so
777 %endif
778
779 %dir %{_libdir}/%{drivername}
780 %{_libdir}/%{drivername}/libGL.so.1
781 %{_libdir}/%{drivername}/libGL.so.1.*
782 %{_libdir}/%{drivername}/libaticalcl.so
783 %{_libdir}/%{drivername}/libaticaldd.so
784 %{_libdir}/%{drivername}/libaticalrt.so
785 %{_libdir}/%{drivername}/libatiuki.so.1*
786 %ifarch x86_64
787 %dir %{_prefix}/lib/%{drivername}
788 %{_prefix}/lib/%{drivername}/libGL.so.1
789 %{_prefix}/lib/%{drivername}/libGL.so.1.*
790 %{_prefix}/lib/%{drivername}/libaticalcl.so
791 %{_prefix}/lib/%{drivername}/libaticaldd.so
792 %{_prefix}/lib/%{drivername}/libaticalrt.so
793 %{_prefix}/lib/%{drivername}/libatiuki.so.1*
794 %endif
795
796 %{_libdir}/%{drivername}/libfglrx_dm.so.1*
797 %{_libdir}/%{drivername}/libatiadlxx.so
798 %{_libdir}/%{drivername}/libAMDXvBA.cap
799 %{_libdir}/%{drivername}/libAMDXvBA.so.1*
800 %{_libdir}/%{drivername}/libXvBAW.so.1*
801
802 # PowerXpress
803 %{_libdir}/fglrx/switchlibGL
804 %{_libdir}/fglrx/switchlibglx
805
806 %dir %{_datadir}/ati
807 %{_datadir}/ati/amd-uninstall.sh
808
809 %{_mandir}/man8/atieventsd.8*
810
811 %files -n %{drivername}-control-center -f amdcccle.langs
812 %defattr(-,root,root)
813 %doc common/usr/share/doc/amdcccle/*
814 %{_sysconfdir}/security/console.apps/amdcccle-su
815 %{_sysconfdir}/pam.d/amdcccle-su
816 %{_bindir}/amdcccle
817 %dir %{_datadir}/ati
818 %dir %{_datadir}/ati/amdcccle
819 %if %{atibuild}
820 %{_iconsdir}/%{drivername}-amdcccle.xpm
821 %else
822 %{_miconsdir}/%{drivername}-amdcccle.png
823 %{_iconsdir}/%{drivername}-amdcccle.png
824 %{_liconsdir}/%{drivername}-amdcccle.png
825 %endif
826 %{_datadir}/applications/amdcccle.desktop
827 %{_datadir}/applications/amdccclesu.desktop
828 %if %{bundle_qt}
829 %dir %{_libdir}/%{drivername}-qt4
830 %{_libdir}/%{drivername}-qt4/libQtCore.so.4
831 %{_libdir}/%{drivername}-qt4/libQtGui.so.4
832 %{_datadir}/ati/%{_lib}
833 %endif
834
835 %files -n %{drivername}-devel
836 %defattr(-,root,root)
837 %{_libdir}/%{drivername}/libfglrx_dm.a
838 %{_libdir}/%{drivername}/libfglrx_dm.so
839 %{_libdir}/%{drivername}/libAMDXvBA.so
840 %{_libdir}/%{drivername}/libXvBAW.so
841 %dir %{_includedir}/GL
842 %{_includedir}/GL/*ATI.h
843 %dir %{_includedir}/ATI
844 %dir %{_includedir}/ATI/GL
845 %{_includedir}/ATI/GL/*.h
846 %{_libdir}/%{drivername}/libGL.so
847 %{_libdir}/%{drivername}/libatiuki.so
848 %ifarch x86_64
849 %{_prefix}/lib/%{drivername}/libGL.so
850 %{_prefix}/lib/%{drivername}/libatiuki.so
851 %endif
852
853 %files -n dkms-%{drivername}
854 %defattr(-,root,root)
855 %{_usrsrc}/%{drivername}-%{version}-%{release}

  ViewVC Help
Powered by ViewVC 1.1.30