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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 100285 - (hide annotations) (download)
Tue May 24 01:42:40 2011 UTC (12 years, 11 months ago) by anssi
File size: 31271 byte(s)
update amd-uninstall.sh script with new options
1 ahmad 58193
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 anssi 97724 %define oversion 11-5
49 ahmad 58193 # Advertised version, for description:
50 anssi 97724 %define mversion 11.5
51 ahmad 58193 # driver version from ati-packager-helper.sh:
52 anssi 97724 %define iversion 8.85
53 ahmad 58193 # release:
54 anssi 100206 %define rel 2
55 ahmad 58193 # 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 anssi 93515 %define ubuntu_prerelease 0
67 ahmad 58193
68     %define driverpkgname x11-driver-video-fglrx
69     %define drivername fglrx
70     %define xorg_version pic
71     # highest supported videodrv abi
72 ahmad 79744 %define videodrv_abi 10
73 ahmad 58193 %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 ahmad 58195 named x11-driver-video-fglrx on %{_vendor}.
179 ahmad 58193 %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 66360 # (ahmad) since X Server 1.10 ABI is now 10 (upstream jumped from 8 to 10)
199     # make it +2 for now
200 anssi 87413 ### This is problematic as it can cause removal of xserver instead (Anssi 04/2011)
201     ### Conflicts: xserver-abi(videodrv-%(echo $((%{videodrv_abi} + 1))))
202 ahmad 58193 %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 ahmad 58195 Reconfiguring is not necessary when upgrading from a previous %{_vendor} ATI
306 ahmad 58193 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 ahmad 58195 %{_vendor} Control Center.
342 ahmad 58193 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 ahmad 79744 #install -d -m755 %{buildroot}%{_includedir}/X11/extensions
385     #install -m644 common/usr/X11R6/include/X11/extensions/*.h %{buildroot}%{_includedir}/X11/extensions
386 ahmad 58193
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 anssi 97724 for fullname in common/usr/share/ati/amdcccle/*.qm; do
407     file=$(basename $fullname)
408     lang=${file#*_}
409 ahmad 58193 lang=${lang%%.qm}
410 anssi 97724 %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 ahmad 58193 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 anssi 93515 install -m755 %{archdir}/usr/X11R6/%{_lib}/fglrx/* %{buildroot}%{_libdir}/%{drivername}
449 anssi 97724 install -m755 %{archdir}/usr/%{_lib}/*.* %{buildroot}%{_libdir}/%{drivername}
450 anssi 93515 mv %{buildroot}%{_libdir}/%{drivername}/{fglrx-,}libGL.so.1.2
451     chmod 0644 %{buildroot}%{_libdir}/%{drivername}/*.a
452 ahmad 58193 /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 anssi 93515 install -m755 arch/x86/usr/X11R6/lib/fglrx/* %{buildroot}%{_prefix}/lib/%{drivername}
460 anssi 97724 install -m755 arch/x86/usr/lib/*.* %{buildroot}%{_prefix}/lib/%{drivername}
461 anssi 93515 mv %{buildroot}%{_prefix}/lib/%{drivername}/{fglrx-,}libGL.so.1.2
462 ahmad 58193 /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 anssi 93515 install -m755 %{xverdir}/usr/X11R6/%{_lib}/modules/extensions/fglrx/*.so* %{buildroot}%{ati_extdir}
486     mv %{buildroot}%{ati_extdir}/{fglrx-,}libglx.so
487 ahmad 58193
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 anssi 87413 install -d -m755 %{buildroot}%{_sysconfdir}/%{drivername}
511 ahmad 58193 echo "libAMDXvBA.so.1" > %{buildroot}%{_sysconfdir}/%{drivername}/XvMCConfig
512    
513 anssi 97724 # PowerXpress intel
514     ln -s %{_sysconfdir}/ld.so.conf.d/GL/standard.conf %{buildroot}%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
515    
516 ahmad 58193 # 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 anssi 87413 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 anssi 100285 --preserve) ;;
534     --quick) ;;
535     --getUninstallVersion) exit 2 ;;
536 anssi 87413 *) echo "Unknown option for \$0." >&2 ;;
537     esac
538     shift
539     done
540    
541     # AMD documentation suggests doing rpm -V and use --force to override it,
542     # but it doesn't make sense with the update-alternatives setup, so we just
543     # check package presence.
544     pkgs=
545     rpm -q --quiet %{driverpkgname} && pkgs="\$pkgs %{driverpkgname}"
546     rpm -q --quiet dkms-%{drivername} && pkgs="\$pkgs dkms-%{drivername}"
547     rpm -q --quiet %{drivername}-control-center && pkgs="\$pkgs %{drivername}-control-center"
548     rpm -q --quiet %{drivername}-devel && pkgs="\$pkgs %{drivername}-devel"
549     [ -n "\$pkgs" ] || { echo "The AMD proprietary driver is not installed." >&2; exit 1; }
550     urpme --auto \$dryrun \$pkgs || { echo "Failed to uninstall the AMD proprietary driver." >&2; exit 1; }
551     [ -n "\$dryrun" ] || echo "The AMD proprietary driver has been uninstalled."
552     EOF
553     chmod 0755 %{buildroot}%{_datadir}/ati/amd-uninstall.sh
554    
555 anssi 97724 # PowerXpress (switchable graphics)
556     # - path hardcoded into driver
557     install -d -m755 %{buildroot}%{_libdir}/fglrx
558     cat > %{buildroot}%{_libdir}/fglrx/switchlibGL <<EOF
559     #!/bin/sh
560    
561     amd_target="%{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}"
562     intel_target="%{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf"
563    
564     case \$1 in
565     amd)
566     update-alternatives --set gl_conf "\$amd_target" >/dev/null
567 anssi 100206 ldconfig -X
568 anssi 97724 ;;
569     intel)
570     update-alternatives --set gl_conf "\$intel_target" >/dev/null
571 anssi 100206 ldconfig -X
572 anssi 97724 ;;
573     query)
574     case \$(readlink -f "%{_sysconfdir}/ld.so.conf.d/GL.conf") in
575     \$amd_target)
576     echo "amd"
577     ;;
578     \$intel_target)
579     echo "intel"
580     ;;
581     *)
582     echo "unknown"
583     ;;
584     esac
585     ;;
586     esac
587     EOF
588     chmod 0755 %{buildroot}%{_libdir}/fglrx/switchlibGL
589    
590     # It is not feasible to configure these separately with the alternatives
591     # system, so use the same script for both.
592     ln -s switchlibGL %{buildroot}%{_libdir}/fglrx/switchlibglx
593    
594 ahmad 58193 %pre -n %{driverpkgname}
595     # Handle alternatives-era /etc/ati directory
596     # It may confuse rpm due to it containing %config files
597     if [ -L %{_sysconfdir}/ati ]; then
598     rm %{_sysconfdir}/ati
599     fi
600    
601     %post -n %{driverpkgname}
602     # Migrate from pre-alternatives files
603     if [ ! -L %{_datadir}/applications/mandriva-amdcccle.desktop -a -e %{_datadir}/applications/mandriva-amdcccle.desktop ]; then
604     rm -f %{_datadir}/applications/mandriva-amdcccle.desktop
605     fi
606    
607     %{_sbindir}/update-alternatives \
608     --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} %{priority} \
609     --slave %{_sysconfdir}/X11/XvMCConfig xvmcconfig %{_sysconfdir}/%{drivername}/XvMCConfig \
610     --slave %{_libdir}/libAMDXvBA.cap %{_lib}AMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
611     %ifarch x86_64
612     --slave %{_prefix}/lib/libAMDXvBA.cap libAMDXvBA_cap %{_libdir}/%{drivername}/libAMDXvBA.cap \
613     %endif
614 anssi 87276 --slave %{xorg_extra_modules} xorg_extra_modules %{ati_extdir}
615 anssi 97724
616     # Alternative for PowerXpress intel (switchable graphics)
617     # This is a separate alternative so that this situation can be differentiated
618     # from standard intel configuration by tools (e.g. so that radeon driver won't
619     # be loaded despite fglrx not being configured anymore).
620     %{_sbindir}/update-alternatives \
621     --install %{_sysconfdir}/ld.so.conf.d/GL.conf gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf 50
622    
623 ahmad 58193 if [ "$(readlink -e %{_sysconfdir}/ld.so.conf.d/GL.conf)" = "%{_sysconfdir}/ld.so.conf.d/GL/ati-hd2000.conf" ]; then
624     # Switch from the obsolete hd2000 branch:
625     %{_sbindir}/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
626     fi
627     # When upgrading from alternatives setup, rpm may consider /etc/ati/atiogl.xml
628     # to exist due to the symlink, even when we remove it in %pre:
629     if [ -e %{_sysconfdir}/ati/atiogl.xml.rpmnew -a ! -e %{_sysconfdir}/ati/atiogl.xml ]; then
630     mv %{_sysconfdir}/ati/atiogl.xml.rpmnew %{_sysconfdir}/ati/atiogl.xml
631     echo "Moved %{_sysconfdir}/ati/atiogl.xml.rpmnew back to %{_sysconfdir}/ati/atiogl.xml."
632     fi
633 ahmad 58195
634 ahmad 58193 # empty line so that /sbin/ldconfig is not passed to update-alternatives
635 ahmad 58195
636 ahmad 58193 # Call /sbin/ldconfig explicitely due to alternatives
637     /sbin/ldconfig -X
638     %_post_service atieventsd
639     %if "%{ldetect_cards_name}" != ""
640     [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
641     %endif
642    
643     %posttrans -n %{driverpkgname}
644     # RPM seems to leave out the active /etc/fglrx* directory, likely due to
645     # it being confused with the /etc/ati symlink. We have to clean up ourself:
646     for dir in %{_sysconfdir}/fglrx %{_sysconfdir}/fglrx-hd2000; do
647     if [ -d $dir ]; then
648     for file in $dir/*; do
649     case "$(basename $file)" in
650     control | signature | logo_mask.xbm.example | logo.xbm.example)
651     # non-config files, rpm would normally remove
652     rm $file;;
653     authatieventsd.sh | fglrxprofiles.csv | fglrxrc | atiogl.xml)
654     # config files, check for modifications
655     case "$(stat -c%s $file)" in
656     545 | 838 | 2769 | 10224 | 11018)
657     rm $file;;
658     *)
659     echo "Saving $file as %{_sysconfdir}/ati/$(basename $file).rpmsave."
660     mv $file %{_sysconfdir}/ati/$(basename $file).rpmsave;;
661     esac
662     ;;
663     esac
664     done
665     [ $(ls -c $dir | wc -l) -eq 0 ] && rm -r $dir
666     fi
667     done
668     true
669    
670     %preun -n %{driverpkgname}
671     %_preun_service atieventsd
672    
673     %postun -n %{driverpkgname}
674     if [ ! -f %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file} ]; then
675     %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/ld.so.conf.d/GL/%{ld_so_conf_file}
676     fi
677 anssi 97724 if [ ! -f %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf ]; then
678     %{_sbindir}/update-alternatives --remove gl_conf %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
679     fi
680 ahmad 58193 # Call /sbin/ldconfig explicitely due to alternatives
681     /sbin/ldconfig
682     %if "%{ldetect_cards_name}" != ""
683     [ -x %{_sbindir}/update-ldetect-lst ] && %{_sbindir}/update-ldetect-lst || :
684     %endif
685    
686     %pre -n %{drivername}-control-center
687     # Handle alternatives-era directory,
688     # it may confuse rpm.
689     if [ -L %{_datadir}/ati ]; then
690     rm %{_datadir}/ati
691     fi
692    
693     %post -n %{drivername}-control-center
694     [ -d %{_datadir}/fglrx ] && rm -r %{_datadir}/fglrx
695     [ -d %{_datadir}/fglrx-hd2000 ] && rm -r %{_datadir}/fglrx-hd2000
696     true
697    
698     %post -n dkms-%{drivername}
699     /usr/sbin/dkms --rpm_safe_upgrade add -m %{drivername} -v %{version}-%{release} &&
700     /usr/sbin/dkms --rpm_safe_upgrade build -m %{drivername} -v %{version}-%{release} &&
701     /usr/sbin/dkms --rpm_safe_upgrade install -m %{drivername} -v %{version}-%{release} --force
702    
703     # rmmod any old driver if present and not in use (e.g. by X)
704     rmmod fglrx > /dev/null 2>&1 || true
705    
706     %preun -n dkms-%{drivername}
707     /usr/sbin/dkms --rpm_safe_upgrade remove -m %{drivername} -v %{version}-%{release} --all
708    
709     # rmmod any old driver if present and not in use (e.g. by X)
710     rmmod fglrx > /dev/null 2>&1 || true
711    
712     %clean
713     rm -rf %{buildroot}
714    
715     %files -n %{driverpkgname}
716     %defattr(-,root,root)
717     %doc README.install.urpmi README.manual-setup
718     %doc README.8.600.upgrade.urpmi
719     # the documentation files are grossly out of date; the configuration options
720     # described in configure.html seem to be used by the driver, though, so it is
721     # packaged, while the other html files are not:
722     %doc common/usr/share/doc/fglrx/configure.html
723     %doc common/usr/share/doc/fglrx/ATI_LICENSE.TXT
724    
725     %if "%{ldetect_cards_name}" != ""
726     %{_datadir}/ldetect-lst/pcitable.d/40%{drivername}.lst.gz
727     %endif
728    
729     %ghost %{_sysconfdir}/ld.so.conf.d/GL.conf
730     %dir %{_sysconfdir}/ld.so.conf.d/GL
731     %{_sysconfdir}/ld.so.conf.d/GL/ati.conf
732    
733     %dir %{_sysconfdir}/%{drivername}
734     %{_sysconfdir}/%{drivername}/XvMCConfig
735 anssi 97724 %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
736 ahmad 58193
737     %dir %{_sysconfdir}/ati
738     %{_sysconfdir}/ati/control
739     %{_sysconfdir}/ati/signature
740     %config(noreplace) %{_sysconfdir}/ati/atiogl.xml
741     %{_sysconfdir}/ati/logo.xbm.example
742     %{_sysconfdir}/ati/logo_mask.xbm.example
743     %config %{_sysconfdir}/ati/authatieventsd.sh
744     %{_sysconfdir}/ati/amdpcsdb.default
745    
746     %{_initrddir}/atieventsd
747    
748     %{_sbindir}/atieventsd
749     %{_sbindir}/amdnotifyui
750     %{_sbindir}/atigetsysteminfo.sh
751    
752     %{_bindir}/amdupdaterandrconfig
753     %{_bindir}/amdxdg-su
754     %{_bindir}/aticonfig
755     %{_bindir}/atiodcli
756     %{_bindir}/atiode
757     %{_bindir}/fgl_glxgears
758     %{_bindir}/fglrxinfo
759    
760     %{xorg_libdir}/modules/drivers/fglrx_drv.so
761     %{xorg_libdir}/modules/linux/libfglrxdrm.so
762     %{xorg_libdir}/modules/amdxmm.*o
763     %{xorg_libdir}/modules/glesx.*o
764    
765     %dir %{ati_extdir}
766     %{ati_extdir}/libglx.so
767    
768     %{xorg_dridir}/fglrx_dri.so
769     %ifarch x86_64
770     %{xorg_dridir32}/fglrx_dri.so
771     %endif
772    
773     %dir %{_libdir}/%{drivername}
774     %{_libdir}/%{drivername}/libGL.so.1
775     %{_libdir}/%{drivername}/libGL.so.1.*
776     %{_libdir}/%{drivername}/libaticalcl.so
777     %{_libdir}/%{drivername}/libaticaldd.so
778     %{_libdir}/%{drivername}/libaticalrt.so
779     %{_libdir}/%{drivername}/libatiuki.so.1*
780     %ifarch x86_64
781     %dir %{_prefix}/lib/%{drivername}
782     %{_prefix}/lib/%{drivername}/libGL.so.1
783     %{_prefix}/lib/%{drivername}/libGL.so.1.*
784     %{_prefix}/lib/%{drivername}/libaticalcl.so
785     %{_prefix}/lib/%{drivername}/libaticaldd.so
786     %{_prefix}/lib/%{drivername}/libaticalrt.so
787     %{_prefix}/lib/%{drivername}/libatiuki.so.1*
788     %endif
789    
790     %{_libdir}/%{drivername}/libfglrx_dm.so.1*
791     %{_libdir}/%{drivername}/libatiadlxx.so
792     %{_libdir}/%{drivername}/libAMDXvBA.cap
793     %{_libdir}/%{drivername}/libAMDXvBA.so.1*
794     %{_libdir}/%{drivername}/libXvBAW.so.1*
795    
796 anssi 97724 # PowerXpress
797     %{_libdir}/fglrx/switchlibGL
798     %{_libdir}/fglrx/switchlibglx
799    
800 anssi 87413 %dir %{_datadir}/ati
801     %{_datadir}/ati/amd-uninstall.sh
802    
803 ahmad 58193 %{_mandir}/man8/atieventsd.8*
804    
805     %files -n %{drivername}-control-center -f amdcccle.langs
806     %defattr(-,root,root)
807     %doc common/usr/share/doc/amdcccle/*
808     %{_sysconfdir}/security/console.apps/amdcccle-su
809     %{_sysconfdir}/pam.d/amdcccle-su
810     %{_bindir}/amdcccle
811     %dir %{_datadir}/ati
812     %dir %{_datadir}/ati/amdcccle
813     %if %{atibuild}
814     %{_iconsdir}/%{drivername}-amdcccle.xpm
815     %else
816     %{_miconsdir}/%{drivername}-amdcccle.png
817     %{_iconsdir}/%{drivername}-amdcccle.png
818     %{_liconsdir}/%{drivername}-amdcccle.png
819     %endif
820     %{_datadir}/applications/amdcccle.desktop
821     %{_datadir}/applications/amdccclesu.desktop
822     %if %{bundle_qt}
823     %dir %{_libdir}/%{drivername}-qt4
824     %{_libdir}/%{drivername}-qt4/libQtCore.so.4
825     %{_libdir}/%{drivername}-qt4/libQtGui.so.4
826     %{_datadir}/ati/%{_lib}
827     %endif
828    
829     %files -n %{drivername}-devel
830     %defattr(-,root,root)
831     %{_libdir}/%{drivername}/libfglrx_dm.a
832     %{_libdir}/%{drivername}/libfglrx_dm.so
833     %{_libdir}/%{drivername}/libAMDXvBA.so
834     %{_libdir}/%{drivername}/libXvBAW.so
835     %dir %{_includedir}/GL
836     %{_includedir}/GL/*ATI.h
837     %dir %{_includedir}/ATI
838     %dir %{_includedir}/ATI/GL
839     %{_includedir}/ATI/GL/*.h
840     %{_libdir}/%{drivername}/libGL.so
841     %{_libdir}/%{drivername}/libatiuki.so
842     %ifarch x86_64
843     %{_prefix}/lib/%{drivername}/libGL.so
844     %{_prefix}/lib/%{drivername}/libatiuki.so
845     %endif
846    
847     %files -n dkms-%{drivername}
848     %defattr(-,root,root)
849     %{_usrsrc}/%{drivername}-%{version}-%{release}

  ViewVC Help
Powered by ViewVC 1.1.30