/[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 174609 - (show annotations) (download)
Wed Nov 30 22:08:14 2011 UTC (12 years, 4 months ago) by anssi
File size: 31924 byte(s)
replace ATI references with AMD where appropriate

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 # %amdbuild is used to enable the AMD installer --buildpkg mode.
35 # The macros version, rel, amd_dir, distsuffix need to be manually defined.
36 # The macro mdkversion can also be overridden.
37 %define amdbuild 0
38 %{?_without_amd: %global amdbuild 0}
39 %{?_with_amd: %global amdbuild 1}
40
41 %if !%{amdbuild}
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-11
49 # Advertised version, for description:
50 %define mversion 11.11
51 # driver version from ati-packager-helper.sh:
52 %define iversion 8.911
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 AMD has made late changes (in amdbuild 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 %{amdbuild}
86 # AMD/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 AMD 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: AMD proprietary X.org driver and libraries
135 Name: %{name}
136 Version: %{version}
137 Release: %{release}
138 %if !%{amdbuild}
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 !%{amdbuild}
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 %if !%{amdbuild}
164 BuildRequires: mesagl-devel
165 BuildRequires: libxmu-devel
166 BuildRequires: libxaw-devel
167 BuildRequires: libxp-devel
168 BuildRequires: libxtst-devel
169 BuildRequires: imake
170 # Used by atieventsd:
171 Suggests: acpid
172 BuildRequires: ImageMagick
173 %endif
174
175 %description
176 Source package of the AMD proprietary driver. Binary packages are
177 named x11-driver-video-fglrx on %{_vendor}.
178 %if !%{amdbuild}
179 This package corresponds to AMD Catalyst version %mversion.
180 %endif
181
182 %package -n %{driverpkgname}
183 Summary: AMD proprietary X.org driver and libraries
184 Group: System/Kernel and hardware
185 Requires(post): update-alternatives >= 1.9.0
186 Requires(postun): update-alternatives
187 Obsoletes: ati_igp
188 Suggests: %{drivername}-control-center = %{version}
189 Obsoletes: ati < %{version}-%{release}
190 Provides: ati = %{version}-%{release}
191 Requires: kmod(fglrx) = %{version}
192 Requires: x11-server-common >= 1.9
193 %if !%{amdbuild}
194 # Conflict with the next videodrv ABI break.
195 # The driver may support multiple ABI versions and therefore
196 # a strict version-specific requirement would not be enough.
197 # (ahmad) since X Server 1.10 ABI is now 10 (upstream jumped from 8 to 10)
198 # make it +2 for now
199 ### This is problematic as it can cause removal of xserver instead (Anssi 04/2011)
200 ### Conflicts: xserver-abi(videodrv-%(echo $((%{videodrv_abi} + 1))))
201 %endif
202 Provides: atieventsd = %{version}-%{release}
203 Obsoletes: atieventsd < %{version}-%{release}
204
205 %description -n %{driverpkgname}
206 AMD proprietary X.org graphics driver, related libraries and
207 configuration tools.
208
209 NOTE: You should use XFdrake to configure your AMD card. The
210 correct packages will be automatically installed and configured.
211
212 If you do not want to use XFdrake, see README.manual-setup.
213
214 The graphical configuration utility, AMD Catalyst Control Center
215 Linux Edition, is contained in the package
216 %{drivername}-control-center.
217 %if !%{amdbuild}
218 This package corresponds to AMD Catalyst version %mversion.
219 %endif
220
221 %package -n %{drivername}-control-center
222 Summary: AMD Catalyst Control Center Linux Edition
223 Group: System/Kernel and hardware
224 Requires: %{driverpkgname} = %{version}
225 Obsoletes: ati-utils < %{version}-%{release}
226 Provides: ati-utils = %{version}-%{release}
227 Provides: amdcccle = %{version}-%{release}
228 Obsoletes: ati-ccc < %{version}-%{release}
229 Obsoletes: ati-control-center < %{version}-%{release}
230 Provides: ati-control-center = %{version}-%{release}
231 %if !%{bundle_qt}
232 # 2009.0 and 2009.1 have this one in updates only
233 Requires: %{_lib}qtcore4 >= 3:4.5.2
234 %endif
235
236 %description -n %{drivername}-control-center
237 AMD Catalyst Control Center Linux Edition, a graphical configuration
238 utility for the AMD proprietary X.org driver.
239 %if !%{amdbuild}
240 This package corresponds to AMD Catalyst version %mversion.
241 %endif
242
243 %package -n dkms-%{drivername}
244 Summary: AMD proprietary kernel module
245 Group: System/Kernel and hardware
246 Requires: dkms
247 Requires(post): dkms
248 Requires(preun): dkms
249 Obsoletes: dkms-ati < %{version}-%{release}
250 Provides: dkms-ati = %{version}-%{release}
251 Requires: %{driverpkgname} = %{version}
252
253 %description -n dkms-%{drivername}
254 AMD proprietary kernel module. This is to be used with the
255 %{driverpkgname} package.
256 %if !%{amdbuild}
257 This package corresponds to AMD Catalyst version %mversion.
258 %endif
259
260 %package -n %{drivername}-devel
261 Summary: AMD proprietary development libraries and headers
262 Group: Development/C
263 Requires: %{driverpkgname} = %{version}-%{release}
264 Obsoletes: ati-devel < %{version}-%{release}
265 Provides: ati-devel = %{version}-%{release}
266
267 %description -n %{drivername}-devel
268 AMD proprietary development libraries and headers. This package is
269 not required for normal use.
270
271 The main driver package name is %{driverpkgname}.
272
273 %prep
274 %setup -T -c
275 %if %{amdbuild}
276 ln -s %{amd_dir}/%{xverdir} %{amd_dir}/arch .
277 # patches affects common, so we cannot symlink it:
278 cp -a %{amd_dir}/common .
279 %else
280 %if %ubuntu_prerelease
281 %setup -q -T -D -a 0
282 ln -s . common
283 %else
284 sh %{SOURCE0} --extract .
285 %endif
286
287 mkdir fglrx_tools
288 tar -xzf common/usr/src/ati/fglrx_sample_source.tgz -C fglrx_tools
289 %if %ubuntu_prerelease
290 [ -d "%xverdir" ] || (echo This driver version does not support your X.org server. Please wait for a new release from AMD. >&2; false)
291 %else
292 [ "%iversion" = "$(./ati-packager-helper.sh --version)" ]
293 %endif
294 %endif
295
296 cd common # ensure patches do not touch outside
297 %patch3 -p2
298 %patch9 -p2
299 %patch10 -p2
300 cd ..
301
302 cat > README.install.urpmi <<EOF
303 This driver is for ATI Radeon HD 2000 and newer cards.
304 Reconfiguring is not necessary when upgrading from a previous %{_vendor} AMD
305 driver package.
306
307 Use XFdrake to configure X to use the correct AMD driver. Any needed
308 packages will be automatically installed if not already present.
309 1. Run XFdrake as root.
310 2. Go to the Graphics Card list.
311 3. Select your card (it is usually already autoselected).
312 4. Answer any questions asked and then quit.
313
314 If you do not want to use XFdrake or it does not work correctly for
315 you, see README.manual-setup for manual installation instructions.
316 EOF
317
318 cat > README.manual-setup <<EOF
319 This file describes the procedure for the manual installation of this AMD
320 driver package. You can find the instructions for the recommended automatic
321 installation in the file 'README.install.urpmi' in this directory.
322
323 - Open %{_sysconfdir}/X11/xorg.conf and make the following changes:
324 o Change the Driver to "fglrx" in the Device section
325 o Make the line below the only 'glx' related line in the Module section:
326 Load "glx"
327 o Remove any 'ModulePath' lines from the Files section
328 - Run "update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}" as root.
329 - Run "ldconfig" as root.
330 EOF
331
332 cat > README.8.600.upgrade.urpmi <<EOF
333 REMOVED GRAPHICS DRIVER SUPPORT NOTIFICATION:
334 Versions 8.600 and later of AMD Proprietary Graphics driver (fglrx) only
335 support Radeon HD 2000 (r600) or newer cards.
336
337 If you have an older Radeon card or are unsure, please reconfigure your
338 driver:
339 1. Run XFdrake as root or select Graphical server configuration in
340 %{_vendor} Control Center.
341 2. Go to the Graphics Card list.
342 3. Select your card (it is usually already autoselected).
343 4. Answer any questions asked and then quit.
344 EOF
345
346 %build
347 %if !%{amdbuild}
348 # %amdbuild is done with minimal buildrequires
349 cd fglrx_tools/fgl_glxgears
350 xmkmf
351 %make RMAN=/bin/true CC="%__cc %optflags -I../../common/usr/include" EXTRA_LDOPTIONS="%{?ldflags}"
352 cd -
353 %endif
354
355 %install
356 rm -rf %{buildroot}
357
358 # dkms
359 install -d -m755 %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
360 cp -a common/lib/modules/fglrx/build_mod/* %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
361 cp -a %{archdir}/lib/modules/fglrx/build_mod/* %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}
362
363 #install -d -m755 %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/patches
364 #install -m644 %{SOURCE3} %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/patches
365
366 cat > %{buildroot}%{_usrsrc}/%{drivername}-%{version}-%{release}/dkms.conf <<EOF
367 PACKAGE_NAME="%{drivername}"
368 PACKAGE_VERSION="%{version}-%{release}"
369 BUILT_MODULE_NAME[0]="fglrx"
370 DEST_MODULE_LOCATION[0]="/kernel/drivers/char/drm"
371 # uname_v set to none so that make.sh doesn't try to use "uname -v" to see
372 # if the target kernel is SMP (we may be compiling for a different kernel)
373 MAKE[0]="sh make.sh --uname_r=\${kernelver} --uname_v=none --kernel-dir=\${kernel_source_dir} --no-proc-probe --norootcheck"
374 CLEAN="rm -rf 2.6.x/.tmp_versions; make -C2.6.x clean"
375 AUTOINSTALL="yes"
376 EOF
377
378 # headers
379 install -d -m755 %{buildroot}%{_includedir}
380 cp -a common/usr/include/* %{buildroot}%{_includedir}
381 chmod 0644 %{buildroot}%{_includedir}/*/*.h
382
383 # install binaries
384 install -d -m755 %{buildroot}%{_sbindir}
385 install -m755 %{archdir}/usr/sbin/* %{buildroot}%{_sbindir}
386 install -m755 common/usr/sbin/* %{buildroot}%{_sbindir}
387 install -d -m755 %{buildroot}%{_bindir}
388 install -m755 %{archdir}/usr/X11R6/bin/* %{buildroot}%{_bindir}
389 install -m755 common/usr/X11R6/bin/* %{buildroot}%{_bindir}
390 %if !%{amdbuild}
391 # install self-built binaries
392 install -m755 fglrx_tools/fgl_glxgears/fgl_glxgears %{buildroot}%{_bindir}
393 %endif
394 # compatibility symlink
395 ln -s aticonfig %{buildroot}%{_bindir}/amdconfig
396
397 # atieventsd initscript
398 install -d -m755 %{buildroot}%{_initrddir}
399 install -m755 %{SOURCE2} %{buildroot}%{_initrddir}/atieventsd
400
401 # amdcccle data files
402 install -d -m755 %{buildroot}%{_datadir}/ati/amdcccle
403 rm -f amdcccle.langs
404 for fullname in common/usr/share/ati/amdcccle/*.qm; do
405 file=$(basename $fullname)
406 lang=${file#*_}
407 lang=${lang%%.qm}
408 %if !%{bundle_qt}
409 # qt localization not necessary with non-bundled qt
410 [ "$file" = "${file#qt}" ] || continue
411 %endif
412 install -m644 $fullname %{buildroot}%{_datadir}/ati/amdcccle
413 echo "%%lang($lang) %{_datadir}/ati/amdcccle/$file" >> amdcccle.langs
414 done
415
416 # amdcccle super-user mode
417 install -d -m755 %{buildroot}%{_sysconfdir}/security/console.apps
418 install -d -m755 %{buildroot}%{_sysconfdir}/pam.d
419 install -m644 common/etc/security/console.apps/* %{buildroot}%{_sysconfdir}/security/console.apps
420 ln -s su %{buildroot}%{_sysconfdir}/pam.d/amdcccle-su
421
422 # man pages
423 install -d -m755 %{buildroot}%{_mandir}/man1 %{buildroot}%{_mandir}/man8
424 install -m644 common/usr/share/man/man8/* %{buildroot}%{_mandir}/man8
425
426 # menu entry
427 install -d -m755 %{buildroot}%{_datadir}/applications
428 install -m644 common/usr/share/applications/* %{buildroot}%{_datadir}/applications
429 sed -i 's,^Icon=.*$,Icon=%{drivername}-amdcccle,' %{buildroot}%{_datadir}/applications/*.desktop
430 # control center doesn't really use GNOME/KDE libraries:
431 sed -i 's,GNOME;KDE;,,' %{buildroot}%{_datadir}/applications/*.desktop
432
433 # icons
434 install -d -m755 %{buildroot}%{_miconsdir} %{buildroot}%{_iconsdir} %{buildroot}%{_liconsdir}
435 %if !%{amdbuild}
436 convert common/usr/share/icons/ccc_large.xpm -resize 16x16 %{buildroot}%{_miconsdir}/%{drivername}-amdcccle.png
437 convert common/usr/share/icons/ccc_large.xpm -resize 32x32 %{buildroot}%{_iconsdir}/%{drivername}-amdcccle.png
438 convert common/usr/share/icons/ccc_large.xpm -resize 48x48 %{buildroot}%{_liconsdir}/%{drivername}-amdcccle.png
439 %else
440 install -m644 common/usr/share/icons/ccc_large.xpm %{buildroot}%{_iconsdir}/%{drivername}-amdcccle.xpm
441 %endif
442
443 # install libraries
444 install -d -m755 %{buildroot}%{_libdir}/%{drivername}
445 install -m755 %{archdir}/usr/X11R6/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
446 install -m755 %{archdir}/usr/X11R6/%{_lib}/fglrx/* %{buildroot}%{_libdir}/%{drivername}
447 install -m755 %{archdir}/usr/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
448 mv %{buildroot}%{_libdir}/%{drivername}/{fglrx-,}libGL.so.1.2
449 chmod 0644 %{buildroot}%{_libdir}/%{drivername}/*.a
450 /sbin/ldconfig -n %{buildroot}%{_libdir}/%{drivername}
451 # create devel symlinks
452 for file in %{buildroot}%{_libdir}/%{drivername}/*.so.*.*; do
453 ln -s $(basename $file) ${file%%.so*}.so;
454 done
455 %ifarch x86_64
456 install -d -m755 %{buildroot}%{_prefix}/lib/%{drivername}
457 install -m755 arch/x86/usr/X11R6/lib/fglrx/* %{buildroot}%{_prefix}/lib/%{drivername}
458 install -m755 arch/x86/usr/lib/*.* %{buildroot}%{_prefix}/lib/%{drivername}
459 mv %{buildroot}%{_prefix}/lib/%{drivername}/{fglrx-,}libGL.so.1.2
460 /sbin/ldconfig -n %{buildroot}%{_prefix}/lib/%{drivername}
461 # create devel symlinks
462 for file in %{buildroot}%{_prefix}/lib/%{drivername}/*.so.*.*; do
463 ln -s $(basename $file) ${file%%.so*}.so;
464 done
465 %endif
466
467 %if %{bundle_qt}
468 # install the bundled Qt4 libs on distros with qt4 < 4.4.2
469 install -d -m755 %{buildroot}%{_libdir}/%{drivername}-qt4
470 install -m755 %{archdir}/usr/share/ati/%{_lib}/* %{buildroot}%{_libdir}/%{drivername}-qt4
471 # RPATH of amdcccle points to datadir, we create a symlink there:
472 install -d -m755 %{buildroot}/usr/share/ati
473 ln -s %{_libdir}/%{drivername}-qt4 %{buildroot}/usr/share/ati/%{_lib}
474 %endif
475
476 # install X.org files
477 install -d -m755 %{buildroot}%{xorg_libdir}/modules/drivers
478 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/drivers/*.so* %{buildroot}%{xorg_libdir}/modules/drivers
479 install -d -m755 %{buildroot}%{xorg_libdir}/modules/linux
480 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/linux/*.so* %{buildroot}%{xorg_libdir}/modules/linux
481 install -m644 %{xverdir}/usr/X11R6/%{_lib}/modules/*.*o %{buildroot}%{xorg_libdir}/modules
482 install -d -m755 %{buildroot}%{ati_extdir}
483 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/extensions/fglrx/*.so* %{buildroot}%{ati_extdir}
484 mv %{buildroot}%{ati_extdir}/{fglrx-,}libglx.so
485
486 # etc files
487 install -d -m755 %{buildroot}%{_sysconfdir}/ati
488 install -m644 common/etc/ati/* %{buildroot}%{_sysconfdir}/ati
489 chmod 0755 %{buildroot}%{_sysconfdir}/ati/*.sh
490
491 # dri libraries
492 install -d -m755 %{buildroot}%{xorg_dridir}
493 install -m755 %{archdir}/usr/X11R6/%{_lib}/modules/dri/* %{buildroot}%{xorg_dridir}
494 %ifarch x86_64
495 install -d -m755 %{buildroot}%{xorg_dridir32}
496 install -m755 arch/x86/usr/X11R6/lib/modules/dri/* %{buildroot}%{xorg_dridir32}
497 %endif
498
499 # ld.so.conf
500 install -d -m755 %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL
501 echo "%{_libdir}/%{drivername}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
502 %ifarch x86_64
503 echo "%{_prefix}/lib/%{drivername}" >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
504 %endif
505 touch %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL.conf
506
507 # XvMCConfig
508 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
509 echo "libAMDXvBA.so.1" > %{buildroot}%{_sysconfdir}/%{drivername}/XvMCConfig
510
511 # PowerXpress intel - use Mesa libGL but still keep AMD specific libs in search path
512 echo "%{_libdir}/mesa" > %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
513 %ifarch x86_64
514 echo "%{_prefix}/lib/mesa" >> %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
515 %endif
516 cat %{buildroot}%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} >> %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
517
518 # install ldetect-lst pcitable files for backports
519 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
520 [ $(stat -c%s pcitable.fglrx.lst) -gt 500 ]
521 %if "%{ldetect_cards_name}" != ""
522 install -d -m755 %{buildroot}%{_datadir}/ldetect-lst/pcitable.d
523 gzip -c pcitable.fglrx.lst > %{buildroot}%{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
524 %endif
525
526 install -d -m755 %{buildroot}%{_datadir}/ati
527 cat > %{buildroot}%{_datadir}/ati/amd-uninstall.sh <<EOF
528 #!/bin/bash
529 # parameters as per AMD: [--force | --dry-run]
530 dryrun=
531 while [ -n "\$*" ]; do
532 case "\$1" in
533 --dryrun) dryrun="--test" ;;
534 --force) ;;
535 --preserve) ;;
536 --quick) ;;
537 --getUninstallVersion) exit 2 ;;
538 *) echo "Unknown option for \$0." >&2 ;;
539 esac
540 shift
541 done
542
543 # AMD documentation suggests doing rpm -V and use --force to override it,
544 # but it doesn't make sense with the update-alternatives setup, so we just
545 # check package presence.
546 pkgs=
547 rpm -q --quiet %{driverpkgname} && pkgs="\$pkgs %{driverpkgname}"
548 rpm -q --quiet dkms-%{drivername} && pkgs="\$pkgs dkms-%{drivername}"
549 rpm -q --quiet %{drivername}-control-center && pkgs="\$pkgs %{drivername}-control-center"
550 rpm -q --quiet %{drivername}-devel && pkgs="\$pkgs %{drivername}-devel"
551 [ -n "\$pkgs" ] || { echo "The AMD proprietary driver is not installed." >&2; exit 1; }
552 urpme --auto \$dryrun \$pkgs || { echo "Failed to uninstall the AMD proprietary driver." >&2; exit 1; }
553 [ -n "\$dryrun" ] || echo "The AMD proprietary driver has been uninstalled."
554 EOF
555 chmod 0755 %{buildroot}%{_datadir}/ati/amd-uninstall.sh
556
557 # PowerXpress (switchable graphics)
558 # - path hardcoded into driver
559 install -d -m755 %{buildroot}%{_libdir}/fglrx
560 cat > %{buildroot}%{_libdir}/fglrx/switchlibGL <<EOF
561 #!/bin/sh
562
563 amd_target="%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}"
564 intel_target="%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf"
565
566 case \$1 in
567 amd)
568 update-alternatives --set gl_conf "\$amd_target" >/dev/null
569 ldconfig -X
570 ;;
571 intel)
572 update-alternatives --set gl_conf "\$intel_target" >/dev/null
573 ldconfig -X
574 ;;
575 query)
576 case \$(readlink -f "%{_sysconfdir}/ld.so.conf.d/GL.conf") in
577 \$amd_target)
578 echo "amd"
579 ;;
580 \$intel_target)
581 echo "intel"
582 ;;
583 *)
584 echo "unknown"
585 ;;
586 esac
587 ;;
588 esac
589 EOF
590 chmod 0755 %{buildroot}%{_libdir}/fglrx/switchlibGL
591
592 # It is not feasible to configure these separately with the alternatives
593 # system, so use the same script for both.
594 # Note: using a symlink here fails as the driver checks go+w without
595 # dereferencing the symlink.
596 cp -a %{buildroot}%{_libdir}/fglrx/switchlibGL %{buildroot}%{_libdir}/fglrx/switchlibglx
597
598 %pre -n %{driverpkgname}
599 # Handle alternatives-era /etc/ati directory
600 # It may confuse rpm due to it containing %config files
601 if [ -L %{_sysconfdir}/ati ]; then
602 rm %{_sysconfdir}/ati
603 fi
604
605 %post -n %{driverpkgname}
606 # Migrate from pre-alternatives files
607 if [ ! -L %{_datadir}/applications/mandriva-amdcccle.desktop -a -e %{_datadir}/applications/mandriva-amdcccle.desktop ]; then
608 rm -f %{_datadir}/applications/mandriva-amdcccle.desktop
609 fi
610
611 %{_sbindir}/update-alternatives \
612 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} %{priority} \
613 --slave %{_sysconfdir}/X11/XvMCConfig xvmcconfig %{_sysconfdir}/%{drivername}/XvMCConfig \
614 --slave %{_libdir}/libAMDXvBA.cap %{_lib}AMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
615 %ifarch x86_64
616 --slave %{_prefix}/lib/libAMDXvBA.cap libAMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
617 %endif
618 --slave %{xorg_extra_modules} xorg_extra_modules %{ati_extdir}
619
620 # Alternative for PowerXpress intel (switchable graphics)
621 # This is a separate alternative so that this situation can be differentiated
622 # from standard intel configuration by tools (e.g. so that radeon driver won't
623 # be loaded despite fglrx not being configured anymore).
624 %{_sbindir}/update-alternatives \
625 --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf 50
626
627 if [ "$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" = "%{_sysconfdir}/ld.so.conf.d/GL/ati-hd2000.conf" ]; then
628 # Switch from the obsolete hd2000 branch:
629 %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
630 fi
631 # When upgrading from alternatives setup, rpm may consider /etc/ati/atiogl.xml
632 # to exist due to the symlink, even when we remove it in %pre:
633 if [ -e %{_sysconfdir}/ati/atiogl.xml.rpmnew -a ! -e %{_sysconfdir}/ati/atiogl.xml ]; then
634 mv %{_sysconfdir}/ati/atiogl.xml.rpmnew %{_sysconfdir}/ati/atiogl.xml
635 echo "Moved %{_sysconfdir}/ati/atiogl.xml.rpmnew back to %{_sysconfdir}/ati/atiogl.xml."
636 fi
637
638 # Call /sbin/ldconfig explicitely due to alternatives
639 /sbin/ldconfig -X
640 %_post_service atieventsd
641 %if "%{ldetect_cards_name}" != ""
642 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
643 %endif
644
645 # Clear driver version numbers from amdpcsdb as suggested by AMD.
646 # (fixes version display in amdcccle after upgrade)
647 amdconfig --del-pcs-key=LDC,ReleaseVersion &>/dev/null || :
648 amdconfig --del-pcs-key=LDC,Catalyst_Version &>/dev/null || :
649
650 %posttrans -n %{driverpkgname}
651 # RPM seems to leave out the active /etc/fglrx* directory, likely due to
652 # it being confused with the /etc/ati symlink. We have to clean up ourself:
653 for dir in %{_sysconfdir}/fglrx %{_sysconfdir}/fglrx-hd2000; do
654 if [ -d $dir ]; then
655 for file in $dir/*; do
656 case "$(basename $file)" in
657 control | signature | logo_mask.xbm.example | logo.xbm.example)
658 # non-config files, rpm would normally remove
659 rm $file;;
660 authatieventsd.sh | fglrxprofiles.csv | fglrxrc | atiogl.xml)
661 # config files, check for modifications
662 case "$(stat -c%s $file)" in
663 545 | 838 | 2769 | 10224 | 11018)
664 rm $file;;
665 *)
666 echo "Saving $file as %{_sysconfdir}/ati/$(basename $file).rpmsave."
667 mv $file %{_sysconfdir}/ati/$(basename $file).rpmsave;;
668 esac
669 ;;
670 esac
671 done
672 [ $(ls -c $dir | wc -l) -eq 0 ] && rm -r $dir
673 fi
674 done
675 true
676
677 %preun -n %{driverpkgname}
678 %_preun_service atieventsd
679
680 %postun -n %{driverpkgname}
681 if [ ! -f %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} ]; then
682 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
683 fi
684 if [ ! -f %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf ]; then
685 %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
686 fi
687 # Call /sbin/ldconfig explicitely due to alternatives
688 /sbin/ldconfig -X
689 %if "%{ldetect_cards_name}" != ""
690 [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
691 %endif
692
693 %pre -n %{drivername}-control-center
694 # Handle alternatives-era directory,
695 # it may confuse rpm.
696 if [ -L %{_datadir}/ati ]; then
697 rm %{_datadir}/ati
698 fi
699
700 %post -n %{drivername}-control-center
701 [ -d %{_datadir}/fglrx ] && rm -r %{_datadir}/fglrx
702 [ -d %{_datadir}/fglrx-hd2000 ] && rm -r %{_datadir}/fglrx-hd2000
703 true
704
705 %post -n dkms-%{drivername}
706 /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
707 /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
708 /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
709
710 # rmmod any old driver if present and not in use (e.g. by X)
711 rmmod fglrx > /dev/null 2>&1 || true
712
713 %preun -n dkms-%{drivername}
714 /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
715
716 # rmmod any old driver if present and not in use (e.g. by X)
717 rmmod fglrx > /dev/null 2>&1 || true
718
719 %clean
720 rm -rf %{buildroot}
721
722 %files -n %{driverpkgname}
723 %defattr(-,root,root)
724 %doc README.install.urpmi README.manual-setup
725 %doc README.8.600.upgrade.urpmi
726 # the documentation files are grossly out of date; the configuration options
727 # described in configure.html seem to be used by the driver, though, so it is
728 # packaged, while the other html files are not:
729 %doc common/usr/share/doc/fglrx/configure.html
730 %doc common/usr/share/doc/fglrx/LICENSE.TXT
731
732 %if "%{ldetect_cards_name}" != ""
733 %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
734 %endif
735
736 %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
737 %dir %{_sysconfdir}/ld.so.conf.d/GL
738 %{_sysconfdir}/ld.so.conf.d/GL/ati.conf
739
740 %dir %{_sysconfdir}/%{drivername}
741 %{_sysconfdir}/%{drivername}/XvMCConfig
742 %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
743
744 %dir %{_sysconfdir}/ati
745 %{_sysconfdir}/ati/control
746 %{_sysconfdir}/ati/signature
747 %config(noreplace) %{_sysconfdir}/ati/atiogl.xml
748 %{_sysconfdir}/ati/logo.xbm.example
749 %{_sysconfdir}/ati/logo_mask.xbm.example
750 %config %{_sysconfdir}/ati/authatieventsd.sh
751 %{_sysconfdir}/ati/amdpcsdb.default
752
753 %{_initrddir}/atieventsd
754
755 %{_sbindir}/atieventsd
756 %{_sbindir}/amdnotifyui
757 %{_sbindir}/atigetsysteminfo.sh
758
759 %{_bindir}/amdconfig
760 %{_bindir}/amdupdaterandrconfig
761 %{_bindir}/amdxdg-su
762 %{_bindir}/aticonfig
763 %{_bindir}/atiodcli
764 %{_bindir}/atiode
765 %{_bindir}/fgl_glxgears
766 %{_bindir}/fglrxinfo
767
768 %{xorg_libdir}/modules/drivers/fglrx_drv.so
769 %{xorg_libdir}/modules/linux/libfglrxdrm.so
770 %{xorg_libdir}/modules/amdxmm.*o
771 %{xorg_libdir}/modules/glesx.*o
772
773 %dir %{ati_extdir}
774 %{ati_extdir}/libglx.so
775
776 %{xorg_dridir}/fglrx_dri.so
777 %ifarch x86_64
778 %{xorg_dridir32}/fglrx_dri.so
779 %endif
780
781 %dir %{_libdir}/%{drivername}
782 %{_libdir}/%{drivername}/libGL.so.1
783 %{_libdir}/%{drivername}/libGL.so.1.*
784 %{_libdir}/%{drivername}/libOpenCL.so.1
785 %{_libdir}/%{drivername}/libaticalcl.so
786 %{_libdir}/%{drivername}/libaticaldd.so
787 %{_libdir}/%{drivername}/libaticalrt.so
788 %{_libdir}/%{drivername}/libatiuki.so.1*
789 %{_prefix}/lib/%{drivername}/libamdocl32.so
790 %ifarch x86_64
791 %dir %{_prefix}/lib/%{drivername}
792 %{_libdir}/%{drivername}/libamdocl64.so
793 %{_prefix}/lib/%{drivername}/libGL.so.1
794 %{_prefix}/lib/%{drivername}/libGL.so.1.*
795 %{_prefix}/lib/%{drivername}/libOpenCL.so.1
796 %{_prefix}/lib/%{drivername}/libaticalcl.so
797 %{_prefix}/lib/%{drivername}/libaticaldd.so
798 %{_prefix}/lib/%{drivername}/libaticalrt.so
799 %{_prefix}/lib/%{drivername}/libatiuki.so.1*
800 %endif
801
802 %{_libdir}/%{drivername}/libfglrx_dm.so.1*
803 %{_libdir}/%{drivername}/libatiadlxx.so
804 %{_libdir}/%{drivername}/libAMDXvBA.cap
805 %{_libdir}/%{drivername}/libAMDXvBA.so.1*
806 %{_libdir}/%{drivername}/libXvBAW.so.1*
807
808 # PowerXpress
809 %{_libdir}/fglrx/switchlibGL
810 %{_libdir}/fglrx/switchlibglx
811
812 %dir %{_datadir}/ati
813 %{_datadir}/ati/amd-uninstall.sh
814
815 %{_mandir}/man8/atieventsd.8*
816
817 %files -n %{drivername}-control-center -f amdcccle.langs
818 %defattr(-,root,root)
819 %doc common/usr/share/doc/amdcccle/*
820 %{_sysconfdir}/security/console.apps/amdcccle-su
821 %{_sysconfdir}/pam.d/amdcccle-su
822 %{_bindir}/amdcccle
823 %dir %{_datadir}/ati
824 %dir %{_datadir}/ati/amdcccle
825 %if %{amdbuild}
826 %{_iconsdir}/%{drivername}-amdcccle.xpm
827 %else
828 %{_miconsdir}/%{drivername}-amdcccle.png
829 %{_iconsdir}/%{drivername}-amdcccle.png
830 %{_liconsdir}/%{drivername}-amdcccle.png
831 %endif
832 %{_datadir}/applications/amdcccle.desktop
833 %{_datadir}/applications/amdccclesu.desktop
834 %if %{bundle_qt}
835 %dir %{_libdir}/%{drivername}-qt4
836 %{_libdir}/%{drivername}-qt4/libQtCore.so.4
837 %{_libdir}/%{drivername}-qt4/libQtGui.so.4
838 %{_datadir}/ati/%{_lib}
839 %endif
840
841 %files -n %{drivername}-devel
842 %defattr(-,root,root)
843 %{_libdir}/%{drivername}/libfglrx_dm.a
844 %{_libdir}/%{drivername}/libfglrx_dm.so
845 %{_libdir}/%{drivername}/libAMDXvBA.so
846 %{_libdir}/%{drivername}/libXvBAW.so
847 %dir %{_includedir}/GL
848 %{_includedir}/GL/*ATI.h
849 %dir %{_includedir}/ATI
850 %dir %{_includedir}/ATI/GL
851 %{_includedir}/ATI/GL/*.h
852 %{_libdir}/%{drivername}/libGL.so
853 %{_libdir}/%{drivername}/libatiuki.so
854 %ifarch x86_64
855 %{_prefix}/lib/%{drivername}/libGL.so
856 %{_prefix}/lib/%{drivername}/libatiuki.so
857 %endif
858
859 %files -n dkms-%{drivername}
860 %defattr(-,root,root)
861 %{_usrsrc}/%{drivername}-%{version}-%{release}

  ViewVC Help
Powered by ViewVC 1.1.30