%bcond_without smp # don't build SMP module
%bcond_without userspace # don't build userspace tools
%bcond_with verbose # verbose build (V=1)
-#
+%bcond_without incall # include all sources in srpm
+
+%define _min_x11 6.8.0
+
+%if %{without kernel}
+%undefine with_dist_kernel
+%endif
-%define _min_xfree 4.3.0
-%define _gcc_ver %(gcc -dumpversion)
+%ifarch %{ix86}
+%define need_x86 1
+%else
+%define need_x86 0%{?with_incall:1}
+%endif
+%ifarch %{x8664}
+%define need_amd64 1
+%else
+%define need_amd64 0%{?with_incall:1}
+%endif
Summary: Linux Drivers for ATI graphics accelerators
Summary(pl): Sterowniki do akceleratorów graficznych ATI
-Name: XFree86-driver-firegl
-Version: 3.7.6
-Release: 1
+Name: X11-driver-firegl
+Version: 8.12.10
+%define _rel 3
+Release: %{_rel}
License: ATI Binary (parts are GPL)
Vendor: ATI
Group: X11/XFree86
-Source0: http://www2.ati.com/drivers/linux/fglrx-%{_min_xfree}-%{version}.i386.rpm
-# Source0-md5: 8538c3669fd6eab3d17c3669e2d88235
+%if %{need_x86}
+Source0: http://www2.ati.com/drivers/linux/fglrx_6_8_0-%{version}-1.i386.rpm
+# Source0-md5: 9c6397047331aadaa2c379ca78245810
+%endif
+%if %{need_amd64}
+Source1: http://www2.ati.com/drivers/linux/fglrx64_6_8_0-%{version}-1.x86_64.rpm
+# Source1-md5: a54abd8af43d3066faccda4cecec851c
+%endif
Patch0: firegl-panel.patch
-Patch1: XFree86-driver-firegl-kh.patch
+Patch1: firegl-panel-ugliness.patch
+Patch2: %{name}-kernel-2_6_11.patch
+Patch3: %{name}-kh.patch
+Patch4: %{name}-viak8t.patch
URL: http://www.ati.com/support/drivers/linux/radeon-linux.html
BuildRequires: cpio
-%if %{with kernel} && %{with dist_kernel}
-BuildRequires: kernel-source >= 2.6.0
-%endif
-BuildRequires: rpm-utils
-BuildRequires: rpmbuild(macros) >= 1.118
-# not used at the moment (see commented make in panel_src)
-#BuildRequires: XFree86-OpenGL-devel
-#BuildRequires: qt-devel
-Requires: XFree86-Xserver
-Requires: XFree86-libs >= %{_min_xfree}
-Requires: XFree86-modules >= %{_min_xfree}
-%{?with_dist_kernel:Requires: kernel-video-firegl = %{version} }
-Provides: XFree86-OpenGL-core = %{_min_xfree}
+%{?with_dist_kernel:BuildRequires: kernel-module-build >= 2.6.7}
+BuildRequires: rpmbuild(macros) >= 1.213
+%{?with_userspace:BuildRequires: qt-devel}
+#BuildRequires: X11-devel >= %{_min_x11} # disabled for now
+Requires: X11-OpenGL-core >= %{_min_x11}
+Requires: X11-Xserver
+Requires: X11-driver-firegl(kernel)
+Requires: X11-libs >= %{_min_x11}
+Requires: X11-modules >= %{_min_x11}
+Provides: X11-OpenGL-libGL
Provides: XFree86-OpenGL-libGL
Obsoletes: Mesa
+Obsoletes: X11-OpenGL-libGL
Obsoletes: XFree86-OpenGL-libGL
-ExclusiveArch: i586 i686 athlon pentium3 pentium4
+Obsoletes: XFree86-driver-firegl
+ExclusiveArch: i586 i686 athlon pentium3 pentium4 %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _noautoreqdep libGL.so.1.2
+%define _noautoreqdep libGL.so.1
%define _prefix /usr/X11R6
%define _mandir %{_prefix}/man
%package -n kernel-video-firegl
Summary: ATI kernel module for FireGL support
Summary(pl): Modu³ j±dra oferuj±cy wsparcie dla ATI FireGL
-Release: %{release}@%{_kernel_ver_str}
+Release: %{_rel}@%{_kernel_ver_str}
License: ATI
Vendor: ATI
Group: Base/Kernel
%{?with_dist_kernel:%requires_releq_kernel_up}
-PreReq: modutils >= 2.3.18-2
Requires(post,postun): /sbin/depmod
+Provides: X11-driver-firegl(kernel)
%description -n kernel-video-firegl
ATI kernel module for FireGL support.
%package -n kernel-smp-video-firegl
Summary: ATI kernel module for FireGL support
Summary(pl): Modu³ j±dra oferuj±cy wsparcie dla ATI FireGL
-Release: %{release}@%{_kernel_ver_str}
+Release: %{_rel}@%{_kernel_ver_str}
License: ATI
Vendor: ATI
Group: Base/Kernel
%{?with_dist_kernel:%requires_releq_kernel_smp}
-PreReq: modutils >= 2.3.18-2
Requires(post,postun): /sbin/depmod
+Provides: X11-driver-firegl(kernel)
%description -n kernel-smp-video-firegl
ATI kernel module for FireGL support.
%prep
%setup -q -c -T
+%ifarch %{x8664}
+rpm2cpio %{SOURCE1} | cpio -i -d
+%else
rpm2cpio %{SOURCE0} | cpio -i -d
-bzip2 -d -v usr/X11R6/bin/*.bz2
+%endif
install -d panel_src
tar -xzf usr/src/ATI/fglrx_panel_sources.tgz -C panel_src
+
%patch0 -p1
-%{?with_dist_kernel:%patch1 -p1}
+%patch1 -p1
+%patch2 -p1
+%{?with_dist_kernel:%patch3 -p1}
+%patch4 -p1
%build
%if %{with kernel}
cd lib/modules/fglrx/build_mod
-cp 2.6.x/Makefile .
+cp -f 2.6.x/Makefile .
for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do
- if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
- exit 1
- fi
- %{__make} -C %{_kernelsrcdir} mrproper \
- SUBDIRS=$PWD \
- O=$PWD \
- %{?with_verbose:V=1}
- rm -rf include
- install -d include/{linux,config}
- ln -sf %{_kernelsrcdir}/config-$cfg .config
- ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
- touch include/config/MARKER
- %{__make} -C %{_kernelsrcdir} modules \
- SUBDIRS=$PWD \
- O=$PWD \
- %{?with_verbose:V=1}
- mv fglrx.ko fglrx-$cfg.ko
+ if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then
+ exit 1
+ fi
+ rm -rf include
+ install -d include/{linux,config}
+ ln -sf %{_kernelsrcdir}/config-$cfg .config
+ ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h include/linux/autoconf.h
+ ln -sf %{_kernelsrcdir}/include/asm-%{_target_base_arch} include/asm
+%if %{without dist_kernel}
+ ln -sf %{_kernelsrcdir}/scripts
+%endif
+ touch include/config/MARKER
+ %{__make} -C %{_kernelsrcdir} clean \
+ RCS_FIND_IGNORE="-name '*.ko' -o" \
+ M=$PWD O=$PWD \
+ %{?with_verbose:V=1}
+ %{__make} -C %{_kernelsrcdir} modules \
+ M=$PWD O=$PWD \
+ %{?with_verbose:V=1}
+ mv fglrx{,-$cfg}.ko
done
cd -
%endif
%if %{with userspace}
-#%{__make} -C panel_src \
-# MK_QTDIR=/usr \
-# LIBQT_DYN=qt-mt
+%{__make} -C panel_src \
+ CCFLAGS="%{rpmcflags} -DFGLRX_USE_XEXTENSIONS" \
+ MK_QTDIR=/usr \
+ LIBQT_DYN=qt-mt
%endif
%install
cd lib/modules/fglrx/build_mod
install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
-install fglrx-%{?with_dist_files:up}%{!?with_dist_kernel:nondist}.ko \
+install fglrx-%{?with_dist_kernel:up}%{!?with_dist_kernel:nondist}.ko \
$RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/fglrx.ko
%if %{with smp} && %{with dist_kernel}
install fglrx-smp.ko \
install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/X11/extensions} \
$RPM_BUILD_ROOT/usr/{%{_lib},include/GL}
-install usr/X11R6/bin/{fgl_glxgears,fglrxconfig,fglrxinfo} $RPM_BUILD_ROOT%{_bindir}
-#install panel_src/{fireglcontrol.qt3.gcc%{_gcc_ver},fireglcontrol} $RPM_BUILD_ROOT%{_bindir}
-cp -r usr/X11R6/lib/* $RPM_BUILD_ROOT%{_libdir}
+install usr/X11R6/bin/{fgl_glxgears,fglrxconfig,fglrxinfo} \
+ $RPM_BUILD_ROOT%{_bindir}
+install panel_src/fireglcontrol.qt3.gcc%(gcc -dumpversion) \
+ $RPM_BUILD_ROOT%{_bindir}/fireglcontrol
+cp -r usr/X11R6/%{_lib}/* $RPM_BUILD_ROOT%{_libdir}
ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/libGL.so