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

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     *) 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 anssi 97724 # 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 anssi 100206 ldconfig -X
565 anssi 97724 ;;
566     intel)
567     update-alternatives --set gl_conf "\$intel_target" >/dev/null
568 anssi 100206 ldconfig -X
569 anssi 97724 ;;
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 ahmad 58193 %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 anssi 87276 --slave %{xorg_extra_modules} xorg_extra_modules %{ati_extdir}
612 anssi 97724
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 ahmad 58193 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 ahmad 58195
631 ahmad 58193 # empty line so that /sbin/ldconfig is not passed to update-alternatives
632 ahmad 58195
633 ahmad 58193 # 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 anssi 97724 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 ahmad 58193 # 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 anssi 97724 %{_sysconfdir}/%{drivername}/pxpress-free.ld.so.conf
733 ahmad 58193
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 anssi 97724 # PowerXpress
794     %{_libdir}/fglrx/switchlibGL
795     %{_libdir}/fglrx/switchlibglx
796    
797 anssi 87413 %dir %{_datadir}/ati
798     %{_datadir}/ati/amd-uninstall.sh
799    
800 ahmad 58193 %{_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