/[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 100206 - (show annotations) (download)
Sun May 22 21:26:41 2011 UTC (12 years, 11 months ago) by anssi
File size: 31208 byte(s)
- run ldconfig after alternatives call in PowerXpress switcher script

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 2
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 ldconfig -X
565 ;;
566 intel)
567 update-alternatives --set gl_conf "\$intel_target" >/dev/null
568 ldconfig -X
569 ;;
570 query)
571 case \$(readlink -f "%{_sysconfdir}/ld.so.conf.d/GL.conf") in
572 \$amd_target)
573 echo "amd"
574 ;;
575 \$intel_target)
576 echo "intel"
577 ;;
578 *)
579 echo "unknown"
580 ;;
581 esac
582 ;;
583 esac
584 EOF
585 chmod 0755 %{buildroot}%{_libdir}/fglrx/switchlibGL
586
587 # It is not feasible to configure these separately with the alternatives
588 # system, so use the same script for both.
589 ln -s switchlibGL %{buildroot}%{_libdir}/fglrx/switchlibglx
590
591 %pre -n %{driverpkgname}
592 # Handle alternatives-era /etc/ati directory
593 # It may confuse rpm due to it containing %config files
594 if [ -L %{_sysconfdir}/ati ]; then
595 rm %{_sysconfdir}/ati
596 fi
597
598 %post -n %{driverpkgname}
599 # Migrate from pre-alternatives files
600 if [ ! -L %{_datadir}/applications/mandriva-amdcccle.desktop -a -e %{_datadir}/applications/mandriva-amdcccle.desktop ]; then
601 rm -f %{_datadir}/applications/mandriva-amdcccle.desktop
602 fi
603
604 %{_sbindir}/update-alternatives \
605 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} %{priority} \
606 --slave %{_sysconfdir}/X11/XvMCConfig xvmcconfig %{_sysconfdir}/%{drivername}/XvMCConfig \
607 --slave %{_libdir}/libAMDXvBA.cap %{_lib}AMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
608 %ifarch x86_64
609 --slave %{_prefix}/lib/libAMDXvBA.cap libAMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
610 %endif
611 --slave %{xorg_extra_modules} xorg_extra_modules %{ati_extdir}
612
613 # Alternative for PowerXpress intel (switchable graphics)
614 # This is a separate alternative so that this situation can be differentiated
615 # from standard intel configuration by tools (e.g. so that radeon driver won't
616 # be loaded despite fglrx not being configured anymore).
617 %{_sbindir}/update-alternatives \
618 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf 50
619
620 if [ "$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" = "%{_sysconfdir}/ld.so.conf.d/GL/ati-hd2000.conf" ]; then
621 # Switch from the obsolete hd2000 branch:
622 %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
623 fi
624 # When upgrading from alternatives setup, rpm may consider /etc/ati/atiogl.xml
625 # to exist due to the symlink, even when we remove it in %pre:
626 if [ -e %{_sysconfdir}/ati/atiogl.xml.rpmnew -a ! -e %{_sysconfdir}/ati/atiogl.xml ]; then
627 mv %{_sysconfdir}/ati/atiogl.xml.rpmnew %{_sysconfdir}/ati/atiogl.xml
628 echo "Moved %{_sysconfdir}/ati/atiogl.xml.rpmnew back to %{_sysconfdir}/ati/atiogl.xml."
629 fi
630
631 # empty line so that /sbin/ldconfig is not passed to update-alternatives
632
633 # Call /sbin/ldconfig explicitely due to alternatives
634 /sbin/ldconfig -X
635 %_post_service atieventsd
636 %if "%{ldetect_cards_name}" != ""
637 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
638 %endif
639
640 %posttrans -n %{driverpkgname}
641 # RPM seems to leave out the active /etc/fglrx* directory, likely due to
642 # it being confused with the /etc/ati symlink. We have to clean up ourself:
643 for dir in %{_sysconfdir}/fglrx %{_sysconfdir}/fglrx-hd2000; do
644 if [ -d $dir ]; then
645 for file in $dir/*; do
646 case "$(basename $file)" in
647 control | signature | logo_mask.xbm.example | logo.xbm.example)
648 # non-config files, rpm would normally remove
649 rm $file;;
650 authatieventsd.sh | fglrxprofiles.csv | fglrxrc | atiogl.xml)
651 # config files, check for modifications
652 case "$(stat -c%s $file)" in
653 545 | 838 | 2769 | 10224 | 11018)
654 rm $file;;
655 *)
656 echo "Saving $file as %{_sysconfdir}/ati/$(basename $file).rpmsave."
657 mv $file %{_sysconfdir}/ati/$(basename $file).rpmsave;;
658 esac
659 ;;
660 esac
661 done
662 [ $(ls -c $dir | wc -l) -eq 0 ] && rm -r $dir
663 fi
664 done
665 true
666
667 %preun -n %{driverpkgname}
668 %_preun_service atieventsd
669
670 %postun -n %{driverpkgname}
671 if [ ! -f %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} ]; then
672 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
673 fi
674 if [ ! -f %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf ]; then
675 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
676 fi
677 # Call /sbin/ldconfig explicitely due to alternatives
678 /sbin/ldconfig
679 %if "%{ldetect_cards_name}" != ""
680 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
681 %endif
682
683 %pre -n %{drivername}-control-center
684 # Handle alternatives-era directory,
685 # it may confuse rpm.
686 if [ -L %{_datadir}/ati ]; then
687 rm %{_datadir}/ati
688 fi
689
690 %post -n %{drivername}-control-center
691 [ -d %{_datadir}/fglrx ] && rm -r %{_datadir}/fglrx
692 [ -d %{_datadir}/fglrx-hd2000 ] && rm -r %{_datadir}/fglrx-hd2000
693 true
694
695 %post -n dkms-%{drivername}
696 /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
697 /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
698 /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
699
700 # rmmod any old driver if present and not in use (e.g. by X)
701 rmmod fglrx > /dev/null 2>&1 || true
702
703 %preun -n dkms-%{drivername}
704 /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
705
706 # rmmod any old driver if present and not in use (e.g. by X)
707 rmmod fglrx > /dev/null 2>&1 || true
708
709 %clean
710 rm -rf %{buildroot}
711
712 %files -n %{driverpkgname}
713 %defattr(-,root,root)
714 %doc README.install.urpmi README.manual-setup
715 %doc README.8.600.upgrade.urpmi
716 # the documentation files are grossly out of date; the configuration options
717 # described in configure.html seem to be used by the driver, though, so it is
718 # packaged, while the other html files are not:
719 %doc common/usr/share/doc/fglrx/configure.html
720 %doc common/usr/share/doc/fglrx/ATI_LICENSE.TXT
721
722 %if "%{ldetect_cards_name}" != ""
723 %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
724 %endif
725
726 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
727 %dir %{_sysconfdir}/ld.so.conf.d/GL
728 %{_sysconfdir}/ld.so.conf.d/GL/ati.conf
729
730 %dir %{_sysconfdir}/%{drivername}
731 %{_sysconfdir}/%{drivername}/XvMCConfig
732 %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
733
734 %dir %{_sysconfdir}/ati
735 %{_sysconfdir}/ati/control
736 %{_sysconfdir}/ati/signature
737 %config(noreplace) %{_sysconfdir}/ati/atiogl.xml
738 %{_sysconfdir}/ati/logo.xbm.example
739 %{_sysconfdir}/ati/logo_mask.xbm.example
740 %config %{_sysconfdir}/ati/authatieventsd.sh
741 %{_sysconfdir}/ati/amdpcsdb.default
742
743 %{_initrddir}/atieventsd
744
745 %{_sbindir}/atieventsd
746 %{_sbindir}/amdnotifyui
747 %{_sbindir}/atigetsysteminfo.sh
748
749 %{_bindir}/amdupdaterandrconfig
750 %{_bindir}/amdxdg-su
751 %{_bindir}/aticonfig
752 %{_bindir}/atiodcli
753 %{_bindir}/atiode
754 %{_bindir}/fgl_glxgears
755 %{_bindir}/fglrxinfo
756
757 %{xorg_libdir}/modules/drivers/fglrx_drv.so
758 %{xorg_libdir}/modules/linux/libfglrxdrm.so
759 %{xorg_libdir}/modules/amdxmm.*o
760 %{xorg_libdir}/modules/glesx.*o
761
762 %dir %{ati_extdir}
763 %{ati_extdir}/libglx.so
764
765 %{xorg_dridir}/fglrx_dri.so
766 %ifarch x86_64
767 %{xorg_dridir32}/fglrx_dri.so
768 %endif
769
770 %dir %{_libdir}/%{drivername}
771 %{_libdir}/%{drivername}/libGL.so.1
772 %{_libdir}/%{drivername}/libGL.so.1.*
773 %{_libdir}/%{drivername}/libaticalcl.so
774 %{_libdir}/%{drivername}/libaticaldd.so
775 %{_libdir}/%{drivername}/libaticalrt.so
776 %{_libdir}/%{drivername}/libatiuki.so.1*
777 %ifarch x86_64
778 %dir %{_prefix}/lib/%{drivername}
779 %{_prefix}/lib/%{drivername}/libGL.so.1
780 %{_prefix}/lib/%{drivername}/libGL.so.1.*
781 %{_prefix}/lib/%{drivername}/libaticalcl.so
782 %{_prefix}/lib/%{drivername}/libaticaldd.so
783 %{_prefix}/lib/%{drivername}/libaticalrt.so
784 %{_prefix}/lib/%{drivername}/libatiuki.so.1*
785 %endif
786
787 %{_libdir}/%{drivername}/libfglrx_dm.so.1*
788 %{_libdir}/%{drivername}/libatiadlxx.so
789 %{_libdir}/%{drivername}/libAMDXvBA.cap
790 %{_libdir}/%{drivername}/libAMDXvBA.so.1*
791 %{_libdir}/%{drivername}/libXvBAW.so.1*
792
793 # PowerXpress
794 %{_libdir}/fglrx/switchlibGL
795 %{_libdir}/fglrx/switchlibglx
796
797 %dir %{_datadir}/ati
798 %{_datadir}/ati/amd-uninstall.sh
799
800 %{_mandir}/man8/atieventsd.8*
801
802 %files -n %{drivername}-control-center -f amdcccle.langs
803 %defattr(-,root,root)
804 %doc common/usr/share/doc/amdcccle/*
805 %{_sysconfdir}/security/console.apps/amdcccle-su
806 %{_sysconfdir}/pam.d/amdcccle-su
807 %{_bindir}/amdcccle
808 %dir %{_datadir}/ati
809 %dir %{_datadir}/ati/amdcccle
810 %if %{atibuild}
811 %{_iconsdir}/%{drivername}-amdcccle.xpm
812 %else
813 %{_miconsdir}/%{drivername}-amdcccle.png
814 %{_iconsdir}/%{drivername}-amdcccle.png
815 %{_liconsdir}/%{drivername}-amdcccle.png
816 %endif
817 %{_datadir}/applications/amdcccle.desktop
818 %{_datadir}/applications/amdccclesu.desktop
819 %if %{bundle_qt}
820 %dir %{_libdir}/%{drivername}-qt4
821 %{_libdir}/%{drivername}-qt4/libQtCore.so.4
822 %{_libdir}/%{drivername}-qt4/libQtGui.so.4
823 %{_datadir}/ati/%{_lib}
824 %endif
825
826 %files -n %{drivername}-devel
827 %defattr(-,root,root)
828 %{_libdir}/%{drivername}/libfglrx_dm.a
829 %{_libdir}/%{drivername}/libfglrx_dm.so
830 %{_libdir}/%{drivername}/libAMDXvBA.so
831 %{_libdir}/%{drivername}/libXvBAW.so
832 %dir %{_includedir}/GL
833 %{_includedir}/GL/*ATI.h
834 %dir %{_includedir}/ATI
835 %dir %{_includedir}/ATI/GL
836 %{_includedir}/ATI/GL/*.h
837 %{_libdir}/%{drivername}/libGL.so
838 %{_libdir}/%{drivername}/libatiuki.so
839 %ifarch x86_64
840 %{_prefix}/lib/%{drivername}/libGL.so
841 %{_prefix}/lib/%{drivername}/libatiuki.so
842 %endif
843
844 %files -n dkms-%{drivername}
845 %defattr(-,root,root)
846 %{_usrsrc}/%{drivername}-%{version}-%{release}

  ViewVC Help
Powered by ViewVC 1.1.30