/[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 97724 - (show annotations) (download)
Fri May 13 00:36:19 2011 UTC (12 years, 11 months ago) by anssi
File size: 31182 byte(s)
- new version 11.5 aka 8.85
  o fixes intel/fglrx switching on PowerXpress
  o fixes some cases of suspend not working

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-5
49 # Advertised version, for description:
50 %define mversion 11.5
51 # driver version from ati-packager-helper.sh:
52 %define iversion 8.85
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 -d -m755 %{buildroot}%{_includedir}/X11/extensions
385 #install -m644 common/usr/X11R6/include/X11/extensions/*.h %{buildroot}%{_includedir}/X11/extensions
386
387 # install binaries
388 install -d -m755 %{buildroot}%{_sbindir}
389 install -m755 %{archdir}/usr/sbin/* %{buildroot}%{_sbindir}
390 install -m755 common/usr/sbin/* %{buildroot}%{_sbindir}
391 install -d -m755 %{buildroot}%{_bindir}
392 install -m755 %{archdir}/usr/X11R6/bin/* %{buildroot}%{_bindir}
393 install -m755 common/usr/X11R6/bin/* %{buildroot}%{_bindir}
394 %if !%{atibuild}
395 # install self-built binaries
396 install -m755 fglrx_tools/fgl_glxgears/fgl_glxgears %{buildroot}%{_bindir}
397 %endif
398
399 # atieventsd initscript
400 install -d -m755 %{buildroot}%{_initrddir}
401 install -m755 %{SOURCE2} %{buildroot}%{_initrddir}/atieventsd
402
403 # amdcccle data files
404 install -d -m755 %{buildroot}%{_datadir}/ati/amdcccle
405 rm -f amdcccle.langs
406 for fullname in common/usr/share/ati/amdcccle/*.qm; do
407 file=$(basename $fullname)
408 lang=${file#*_}
409 lang=${lang%%.qm}
410 %if !%{bundle_qt}
411 # qt localization not necessary with non-bundled qt
412 [ "$file" = "${file#qt}" ] || continue
413 %endif
414 install -m644 $fullname %{buildroot}%{_datadir}/ati/amdcccle
415 echo "%%lang($lang) %{_datadir}/ati/amdcccle/$file" >> amdcccle.langs
416 done
417
418 # amdcccle super-user mode
419 install -d -m755 %{buildroot}%{_sysconfdir}/security/console.apps
420 install -d -m755 %{buildroot}%{_sysconfdir}/pam.d
421 install -m644 common/etc/security/console.apps/* %{buildroot}%{_sysconfdir}/security/console.apps
422 ln -s su %{buildroot}%{_sysconfdir}/pam.d/amdcccle-su
423
424 # man pages
425 install -d -m755 %{buildroot}%{_mandir}/man1 %{buildroot}%{_mandir}/man8
426 install -m644 common/usr/share/man/man8/* %{buildroot}%{_mandir}/man8
427
428 # menu entry
429 install -d -m755 %{buildroot}%{_datadir}/applications
430 install -m644 common/usr/share/applications/* %{buildroot}%{_datadir}/applications
431 sed -i 's,^Icon=.*$,Icon=%{drivername}-amdcccle,' %{buildroot}%{_datadir}/applications/*.desktop
432 # control center doesn't really use GNOME/KDE libraries:
433 sed -i 's,GNOME;KDE;,,' %{buildroot}%{_datadir}/applications/*.desktop
434
435 # icons
436 install -d -m755 %{buildroot}%{_miconsdir} %{buildroot}%{_iconsdir} %{buildroot}%{_liconsdir}
437 %if !%{atibuild}
438 convert common/usr/share/icons/ccc_large.xpm -resize 16x16 %{buildroot}%{_miconsdir}/%{drivername}-amdcccle.png
439 convert common/usr/share/icons/ccc_large.xpm -resize 32x32 %{buildroot}%{_iconsdir}/%{drivername}-amdcccle.png
440 convert common/usr/share/icons/ccc_large.xpm -resize 48x48 %{buildroot}%{_liconsdir}/%{drivername}-amdcccle.png
441 %else
442 install -m644 common/usr/share/icons/ccc_large.xpm %{buildroot}%{_iconsdir}/%{drivername}-amdcccle.xpm
443 %endif
444
445 # install libraries
446 install -d -m755 %{buildroot}%{_libdir}/%{drivername}
447 install -m755 %{archdir}/usr/X11R6/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
448 install -m755 %{archdir}/usr/X11R6/%{_lib}/fglrx/* %{buildroot}%{_libdir}/%{drivername}
449 install -m755 %{archdir}/usr/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
450 mv %{buildroot}%{_libdir}/%{drivername}/{fglrx-,}libGL.so.1.2
451 chmod 0644 %{buildroot}%{_libdir}/%{drivername}/*.a
452 /sbin/ldconfig -n %{buildroot}%{_libdir}/%{drivername}
453 # create devel symlinks
454 for file in %{buildroot}%{_libdir}/%{drivername}/*.so.*.*; do
455 ln -s $(basename $file) ${file%%.so*}.so;
456 done
457 %ifarch x86_64
458 install -d -m755 %{buildroot}%{_prefix}/lib/%{drivername}
459 install -m755 arch/x86/usr/X11R6/lib/fglrx/* %{buildroot}%{_prefix}/lib/%{drivername}
460 install -m755 arch/x86/usr/lib/*.* %{buildroot}%{_prefix}/lib/%{drivername}
461 mv %{buildroot}%{_prefix}/lib/%{drivername}/{fglrx-,}libGL.so.1.2
462 /sbin/ldconfig -n %{buildroot}%{_prefix}/lib/%{drivername}
463 # create devel symlinks
464 for file in %{buildroot}%{_prefix}/lib/%{drivername}/*.so.*.*; do
465 ln -s $(basename $file) ${file%%.so*}.so;
466 done
467 %endif
468
469 %if %{bundle_qt}
470 # install the bundled Qt4 libs on distros with qt4 < 4.4.2
471 install -d -m755 %{buildroot}%{_libdir}/%{drivername}-qt4
472 install -m755 %{archdir}/usr/share/ati/%{_lib}/* %{buildroot}%{_libdir}/%{drivername}-qt4
473 # RPATH of amdcccle points to datadir, we create a symlink there:
474 install -d -m755 %{buildroot}/usr/share/ati
475 ln -s %{_libdir}/%{drivername}-qt4 %{buildroot}/usr/share/ati/%{_lib}
476 %endif
477
478 # install X.org files
479 install -d -m755 %{buildroot}%{xorg_libdir}/modules/drivers
480 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/drivers/*.so* %{buildroot}%{xorg_libdir}/modules/drivers
481 install -d -m755 %{buildroot}%{xorg_libdir}/modules/linux
482 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/linux/*.so* %{buildroot}%{xorg_libdir}/modules/linux
483 install -m644 %{xverdir}/usr/X11R6/%{_lib}/modules/*.*o %{buildroot}%{xorg_libdir}/modules
484 install -d -m755 %{buildroot}%{ati_extdir}
485 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/extensions/fglrx/*.so* %{buildroot}%{ati_extdir}
486 mv %{buildroot}%{ati_extdir}/{fglrx-,}libglx.so
487
488 # etc files
489 install -d -m755 %{buildroot}%{_sysconfdir}/ati
490 install -m644 common/etc/ati/* %{buildroot}%{_sysconfdir}/ati
491 chmod 0755 %{buildroot}%{_sysconfdir}/ati/*.sh
492
493 # dri libraries
494 install -d -m755 %{buildroot}%{xorg_dridir}
495 install -m755 %{archdir}/usr/X11R6/%{_lib}/modules/dri/* %{buildroot}%{xorg_dridir}
496 %ifarch x86_64
497 install -d -m755 %{buildroot}%{xorg_dridir32}
498 install -m755 arch/x86/usr/X11R6/lib/modules/dri/* %{buildroot}%{xorg_dridir32}
499 %endif
500
501 # ld.so.conf
502 install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL
503 echo "%{_libdir}/%{drivername}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
504 %ifarch x86_64
505 echo "%{_prefix}/lib/%{drivername}" >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
506 %endif
507 touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf
508
509 # XvMCConfig
510 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
511 echo "libAMDXvBA.so.1" > %{buildroot}%{_sysconfdir}/%{drivername}/XvMCConfig
512
513 # PowerXpress intel
514 ln -s %{_sysconfdir}/ld.so.conf.d/GL/standard.conf %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
515
516 # install ldetect-lst pcitable files for backports
517 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
518 [ $(stat -c%s pcitable.fglrx.lst) -gt 500 ]
519 %if "%{ldetect_cards_name}" != ""
520 install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d
521 gzip -c pcitable.fglrx.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
522 %endif
523
524 install -d -m755 %{buildroot}%{_datadir}/ati
525 cat > %{buildroot}%{_datadir}/ati/amd-uninstall.sh <<EOF
526 #!/bin/bash
527 # parameters as per AMD: [--force | --dry-run]
528 dryrun=
529 while [ -n "\$*" ]; do
530 case "\$1" in
531 --dryrun) dryrun="--test" ;;
532 --force) ;;
533 *) echo "Unknown option for \$0." >&2 ;;
534 esac
535 shift
536 done
537
538 # AMD documentation suggests doing rpm -V and use --force to override it,
539 # but it doesn't make sense with the update-alternatives setup, so we just
540 # check package presence.
541 pkgs=
542 rpm -q --quiet %{driverpkgname} && pkgs="\$pkgs %{driverpkgname}"
543 rpm -q --quiet dkms-%{drivername} && pkgs="\$pkgs dkms-%{drivername}"
544 rpm -q --quiet %{drivername}-control-center && pkgs="\$pkgs %{drivername}-control-center"
545 rpm -q --quiet %{drivername}-devel && pkgs="\$pkgs %{drivername}-devel"
546 [ -n "\$pkgs" ] || { echo "The AMD proprietary driver is not installed." >&2; exit 1; }
547 urpme --auto \$dryrun \$pkgs || { echo "Failed to uninstall the AMD proprietary driver." >&2; exit 1; }
548 [ -n "\$dryrun" ] || echo "The AMD proprietary driver has been uninstalled."
549 EOF
550 chmod 0755 %{buildroot}%{_datadir}/ati/amd-uninstall.sh
551
552 # PowerXpress (switchable graphics)
553 # - path hardcoded into driver
554 install -d -m755 %{buildroot}%{_libdir}/fglrx
555 cat > %{buildroot}%{_libdir}/fglrx/switchlibGL <<EOF
556 #!/bin/sh
557
558 amd_target="%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}"
559 intel_target="%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf"
560
561 case \$1 in
562 amd)
563 update-alternatives --set gl_conf "\$amd_target" >/dev/null
564 ;;
565 intel)
566 update-alternatives --set gl_conf "\$intel_target" >/dev/null
567 ;;
568 query)
569 case \$(readlink -f "%{_sysconfdir}/ld.so.conf.d/GL.conf") in
570 \$amd_target)
571 echo "amd"
572 ;;
573 \$intel_target)
574 echo "intel"
575 ;;
576 *)
577 echo "unknown"
578 ;;
579 esac
580 ;;
581 esac
582 EOF
583 chmod 0755 %{buildroot}%{_libdir}/fglrx/switchlibGL
584
585 # It is not feasible to configure these separately with the alternatives
586 # system, so use the same script for both.
587 ln -s switchlibGL %{buildroot}%{_libdir}/fglrx/switchlibglx
588
589 %pre -n %{driverpkgname}
590 # Handle alternatives-era /etc/ati directory
591 # It may confuse rpm due to it containing %config files
592 if [ -L %{_sysconfdir}/ati ]; then
593 rm %{_sysconfdir}/ati
594 fi
595
596 %post -n %{driverpkgname}
597 # Migrate from pre-alternatives files
598 if [ ! -L %{_datadir}/applications/mandriva-amdcccle.desktop -a -e %{_datadir}/applications/mandriva-amdcccle.desktop ]; then
599 rm -f %{_datadir}/applications/mandriva-amdcccle.desktop
600 fi
601
602 %{_sbindir}/update-alternatives \
603 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} %{priority} \
604 --slave %{_sysconfdir}/X11/XvMCConfig xvmcconfig %{_sysconfdir}/%{drivername}/XvMCConfig \
605 --slave %{_libdir}/libAMDXvBA.cap %{_lib}AMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
606 %ifarch x86_64
607 --slave %{_prefix}/lib/libAMDXvBA.cap libAMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
608 %endif
609 --slave %{xorg_extra_modules} xorg_extra_modules %{ati_extdir}
610
611 # Alternative for PowerXpress intel (switchable graphics)
612 # This is a separate alternative so that this situation can be differentiated
613 # from standard intel configuration by tools (e.g. so that radeon driver won't
614 # be loaded despite fglrx not being configured anymore).
615 %{_sbindir}/update-alternatives \
616 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf 50
617
618 if [ "$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" = "%{_sysconfdir}/ld.so.conf.d/GL/ati-hd2000.conf" ]; then
619 # Switch from the obsolete hd2000 branch:
620 %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
621 fi
622 # When upgrading from alternatives setup, rpm may consider /etc/ati/atiogl.xml
623 # to exist due to the symlink, even when we remove it in %pre:
624 if [ -e %{_sysconfdir}/ati/atiogl.xml.rpmnew -a ! -e %{_sysconfdir}/ati/atiogl.xml ]; then
625 mv %{_sysconfdir}/ati/atiogl.xml.rpmnew %{_sysconfdir}/ati/atiogl.xml
626 echo "Moved %{_sysconfdir}/ati/atiogl.xml.rpmnew back to %{_sysconfdir}/ati/atiogl.xml."
627 fi
628
629 # empty line so that /sbin/ldconfig is not passed to update-alternatives
630
631 # Call /sbin/ldconfig explicitely due to alternatives
632 /sbin/ldconfig -X
633 %_post_service atieventsd
634 %if "%{ldetect_cards_name}" != ""
635 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
636 %endif
637
638 %posttrans -n %{driverpkgname}
639 # RPM seems to leave out the active /etc/fglrx* directory, likely due to
640 # it being confused with the /etc/ati symlink. We have to clean up ourself:
641 for dir in %{_sysconfdir}/fglrx %{_sysconfdir}/fglrx-hd2000; do
642 if [ -d $dir ]; then
643 for file in $dir/*; do
644 case "$(basename $file)" in
645 control | signature | logo_mask.xbm.example | logo.xbm.example)
646 # non-config files, rpm would normally remove
647 rm $file;;
648 authatieventsd.sh | fglrxprofiles.csv | fglrxrc | atiogl.xml)
649 # config files, check for modifications
650 case "$(stat -c%s $file)" in
651 545 | 838 | 2769 | 10224 | 11018)
652 rm $file;;
653 *)
654 echo "Saving $file as %{_sysconfdir}/ati/$(basename $file).rpmsave."
655 mv $file %{_sysconfdir}/ati/$(basename $file).rpmsave;;
656 esac
657 ;;
658 esac
659 done
660 [ $(ls -c $dir | wc -l) -eq 0 ] && rm -r $dir
661 fi
662 done
663 true
664
665 %preun -n %{driverpkgname}
666 %_preun_service atieventsd
667
668 %postun -n %{driverpkgname}
669 if [ ! -f %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} ]; then
670 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
671 fi
672 if [ ! -f %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf ]; then
673 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
674 fi
675 # Call /sbin/ldconfig explicitely due to alternatives
676 /sbin/ldconfig
677 %if "%{ldetect_cards_name}" != ""
678 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
679 %endif
680
681 %pre -n %{drivername}-control-center
682 # Handle alternatives-era directory,
683 # it may confuse rpm.
684 if [ -L %{_datadir}/ati ]; then
685 rm %{_datadir}/ati
686 fi
687
688 %post -n %{drivername}-control-center
689 [ -d %{_datadir}/fglrx ] && rm -r %{_datadir}/fglrx
690 [ -d %{_datadir}/fglrx-hd2000 ] && rm -r %{_datadir}/fglrx-hd2000
691 true
692
693 %post -n dkms-%{drivername}
694 /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
695 /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
696 /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
697
698 # rmmod any old driver if present and not in use (e.g. by X)
699 rmmod fglrx > /dev/null 2>&1 || true
700
701 %preun -n dkms-%{drivername}
702 /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
703
704 # rmmod any old driver if present and not in use (e.g. by X)
705 rmmod fglrx > /dev/null 2>&1 || true
706
707 %clean
708 rm -rf %{buildroot}
709
710 %files -n %{driverpkgname}
711 %defattr(-,root,root)
712 %doc README.install.urpmi README.manual-setup
713 %doc README.8.600.upgrade.urpmi
714 # the documentation files are grossly out of date; the configuration options
715 # described in configure.html seem to be used by the driver, though, so it is
716 # packaged, while the other html files are not:
717 %doc common/usr/share/doc/fglrx/configure.html
718 %doc common/usr/share/doc/fglrx/ATI_LICENSE.TXT
719
720 %if "%{ldetect_cards_name}" != ""
721 %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
722 %endif
723
724 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
725 %dir %{_sysconfdir}/ld.so.conf.d/GL
726 %{_sysconfdir}/ld.so.conf.d/GL/ati.conf
727
728 %dir %{_sysconfdir}/%{drivername}
729 %{_sysconfdir}/%{drivername}/XvMCConfig
730 %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
731
732 %dir %{_sysconfdir}/ati
733 %{_sysconfdir}/ati/control
734 %{_sysconfdir}/ati/signature
735 %config(noreplace) %{_sysconfdir}/ati/atiogl.xml
736 %{_sysconfdir}/ati/logo.xbm.example
737 %{_sysconfdir}/ati/logo_mask.xbm.example
738 %config %{_sysconfdir}/ati/authatieventsd.sh
739 %{_sysconfdir}/ati/amdpcsdb.default
740
741 %{_initrddir}/atieventsd
742
743 %{_sbindir}/atieventsd
744 %{_sbindir}/amdnotifyui
745 %{_sbindir}/atigetsysteminfo.sh
746
747 %{_bindir}/amdupdaterandrconfig
748 %{_bindir}/amdxdg-su
749 %{_bindir}/aticonfig
750 %{_bindir}/atiodcli
751 %{_bindir}/atiode
752 %{_bindir}/fgl_glxgears
753 %{_bindir}/fglrxinfo
754
755 %{xorg_libdir}/modules/drivers/fglrx_drv.so
756 %{xorg_libdir}/modules/linux/libfglrxdrm.so
757 %{xorg_libdir}/modules/amdxmm.*o
758 %{xorg_libdir}/modules/glesx.*o
759
760 %dir %{ati_extdir}
761 %{ati_extdir}/libglx.so
762
763 %{xorg_dridir}/fglrx_dri.so
764 %ifarch x86_64
765 %{xorg_dridir32}/fglrx_dri.so
766 %endif
767
768 %dir %{_libdir}/%{drivername}
769 %{_libdir}/%{drivername}/libGL.so.1
770 %{_libdir}/%{drivername}/libGL.so.1.*
771 %{_libdir}/%{drivername}/libaticalcl.so
772 %{_libdir}/%{drivername}/libaticaldd.so
773 %{_libdir}/%{drivername}/libaticalrt.so
774 %{_libdir}/%{drivername}/libatiuki.so.1*
775 %ifarch x86_64
776 %dir %{_prefix}/lib/%{drivername}
777 %{_prefix}/lib/%{drivername}/libGL.so.1
778 %{_prefix}/lib/%{drivername}/libGL.so.1.*
779 %{_prefix}/lib/%{drivername}/libaticalcl.so
780 %{_prefix}/lib/%{drivername}/libaticaldd.so
781 %{_prefix}/lib/%{drivername}/libaticalrt.so
782 %{_prefix}/lib/%{drivername}/libatiuki.so.1*
783 %endif
784
785 %{_libdir}/%{drivername}/libfglrx_dm.so.1*
786 %{_libdir}/%{drivername}/libatiadlxx.so
787 %{_libdir}/%{drivername}/libAMDXvBA.cap
788 %{_libdir}/%{drivername}/libAMDXvBA.so.1*
789 %{_libdir}/%{drivername}/libXvBAW.so.1*
790
791 # PowerXpress
792 %{_libdir}/fglrx/switchlibGL
793 %{_libdir}/fglrx/switchlibglx
794
795 %dir %{_datadir}/ati
796 %{_datadir}/ati/amd-uninstall.sh
797
798 %{_mandir}/man8/atieventsd.8*
799
800 %files -n %{drivername}-control-center -f amdcccle.langs
801 %defattr(-,root,root)
802 %doc common/usr/share/doc/amdcccle/*
803 %{_sysconfdir}/security/console.apps/amdcccle-su
804 %{_sysconfdir}/pam.d/amdcccle-su
805 %{_bindir}/amdcccle
806 %dir %{_datadir}/ati
807 %dir %{_datadir}/ati/amdcccle
808 %if %{atibuild}
809 %{_iconsdir}/%{drivername}-amdcccle.xpm
810 %else
811 %{_miconsdir}/%{drivername}-amdcccle.png
812 %{_iconsdir}/%{drivername}-amdcccle.png
813 %{_liconsdir}/%{drivername}-amdcccle.png
814 %endif
815 %{_datadir}/applications/amdcccle.desktop
816 %{_datadir}/applications/amdccclesu.desktop
817 %if %{bundle_qt}
818 %dir %{_libdir}/%{drivername}-qt4
819 %{_libdir}/%{drivername}-qt4/libQtCore.so.4
820 %{_libdir}/%{drivername}-qt4/libQtGui.so.4
821 %{_datadir}/ati/%{_lib}
822 %endif
823
824 %files -n %{drivername}-devel
825 %defattr(-,root,root)
826 %{_libdir}/%{drivername}/libfglrx_dm.a
827 %{_libdir}/%{drivername}/libfglrx_dm.so
828 %{_libdir}/%{drivername}/libAMDXvBA.so
829 %{_libdir}/%{drivername}/libXvBAW.so
830 %dir %{_includedir}/GL
831 %{_includedir}/GL/*ATI.h
832 %dir %{_includedir}/ATI
833 %dir %{_includedir}/ATI/GL
834 %{_includedir}/ATI/GL/*.h
835 %{_libdir}/%{drivername}/libGL.so
836 %{_libdir}/%{drivername}/libatiuki.so
837 %ifarch x86_64
838 %{_prefix}/lib/%{drivername}/libGL.so
839 %{_prefix}/lib/%{drivername}/libatiuki.so
840 %endif
841
842 %files -n dkms-%{drivername}
843 %defattr(-,root,root)
844 %{_usrsrc}/%{drivername}-%{version}-%{release}

  ViewVC Help
Powered by ViewVC 1.1.30