]> git.pld-linux.org Git - packages/X11-driver-firegl.git/blobdiff - X11-driver-firegl.spec
- rel 2
[packages/X11-driver-firegl.git] / X11-driver-firegl.spec
index 9312480d8c303d3925d06e790a81b44e88d5be5c..a2ae30b9a9fc7259e96dec2e544f20adb7b52521 100644 (file)
@@ -1,38 +1,76 @@
 #
 # Conditional build:
-# _without_dist_kernel
-#
-# TODO:
-# - kernel modules (SMP)
+%bcond_without dist_kernel     # without distribution kernel
+%bcond_without kernel          # don't build kernel modules
+%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_eq_x11     1:6.9.0
+%define                _max_x11        1:7.0.0
+%define                x11ver          x690
+
+%if %{without kernel}
+%undefine with_dist_kernel
+%endif
+
+%ifarch %{ix86}
+%define                need_x86        1
+%define                need_amd64      0%{?with_incall:1}
+%define                arch_sufix      ""
+%define                arch_dir        x86
+%else
+%define                need_x86        0%{?with_incall:1}
+%define                need_amd64      1
+%define                arch_sufix      _64a
+%define                arch_dir        x86_64
+%endif
 
 Summary:       Linux Drivers for ATI graphics accelerators
 Summary(pl):   Sterowniki do akceleratorów graficznych ATI
-Name:          XFree86-driver-firegl
-Version:       3.2.8
-Release:       1
-License:       ATI Binary
+Name:          X11-driver-firegl
+Version:       8.23.7
+%define                _rel    2
+Release:       %{_rel}
+License:       ATI Binary (parts are GPL)
 Vendor:                ATI
-Group:         X11/XFree86
-URL:           http://www.ati.com/support/drivers/linux/radeon-linux.html
-Source0:       http://www2.ati.com/drivers/firegl/fglrx-glc22-4.3.0-%{version}.i586.rpm
-# Source0-md5: 824aaaafd4b4867c2456860ea5eff5ec
+Group:         X11
+%if %{need_x86}
+Source0:       http://dlmdownloads.ati.com/drivers/linux/ati-driver-installer-%{version}-i386.run
+# Source0-md5: 3cc417f243a227163ac8a73e3f467240
+%endif
+%if %{need_amd64}
+Source1:       http://dlmdownloads.ati.com/drivers/linux/64bit/ati-driver-installer-%{version}-x86_64.run
+# Source1-md5: 9b5b56edf50464a182f0b61586f19c23
+%endif
 Patch0:                firegl-panel.patch
-Patch1:                XFree86-driver-firegl-kh.patch  
+Patch1:                firegl-panel-ugliness.patch
+Patch2:                %{name}-kh.patch
+Patch3:                %{name}-viak8t.patch
+URL:           http://www.ati.com/support/drivers/linux/radeon-linux.html
+#BuildRequires:        X11-devel >= %{_min_eq_x11}     # disabled for now
 BuildRequires: cpio
-%{!?_without_dist_kernel:BuildRequires:         kernel-headers >= 2.2.0 }
-BuildRequires: rpm-utils
-Requires:      XFree86-Xserver
-Requires:      XFree86-libs >= 4.3.0
-Requires:      XFree86-modules >= 4.3.0
-Requires:      kernel-video-firegl = %{version}
-Provides:      XFree86-OpenGL-core
+%{?with_dist_kernel:BuildRequires:     kernel-module-build >= 2.6.14}
+%{?with_userspace:BuildRequires:       qt-devel}
+BuildRequires: rpmbuild(macros) >= 1.213
+Requires:      X11-OpenGL-core >= %{_min_eq_x11}
+Requires:      X11-Xserver
+%{?with_kernel:Requires:       X11-driver-firegl(kernel)}
+Requires:      X11-libs < %{_max_x11}
+Requires:      X11-libs >= %{_min_eq_x11}
+Requires:      X11-modules < %{_max_x11}
+Requires:      X11-modules >= %{_min_eq_x11}
+Provides:      X11-OpenGL-libGL
+Provides:      XFree86-OpenGL-libGL
 Obsoletes:     Mesa
+Obsoletes:     X11-OpenGL-libGL
 Obsoletes:     XFree86-OpenGL-libGL
-Provides:      XFree86-OpenGL-libGL
-ExclusiveArch: i586 i686 athlon
+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
@@ -51,13 +89,13 @@ akcelerowany OpenGL.
 %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
-%{!?_without_dist_kernel:%requires_releq_kernel_up}
-PreReq:                modutils >= 2.3.18-2
+%{?with_dist_kernel:%requires_releq_kernel_up}
 Requires(post,postun): /sbin/depmod
+Provides:      X11-driver-firegl(kernel)
 
 %description -n kernel-video-firegl
 ATI kernel module for FireGL support.
@@ -65,38 +103,118 @@ ATI kernel module for FireGL support.
 %description -n kernel-video-firegl -l pl
 Modu³ j±dra oferuj±cy wsparcie dla ATI FireGL.
 
+%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:       %{_rel}@%{_kernel_ver_str}
+License:       ATI
+Vendor:                ATI
+Group:         Base/Kernel
+%{?with_dist_kernel:%requires_releq_kernel_smp}
+Requires(post,postun): /sbin/depmod
+Provides:      X11-driver-firegl(kernel)
+
+%description -n kernel-smp-video-firegl
+ATI kernel module for FireGL support.
+
+%description -n kernel-smp-video-firegl -l pl
+Modu³ j±dra oferuj±cy wsparcie dla ATI FireGL.
+
 %prep
 %setup -q -c -T
-rpm2cpio %{SOURCE0} | cpio -i -d
-bzip2 -d -v usr/X11R6/bin/*.bz2
-mkdir panel_src
-tar -xzf usr/src/ATI/fglrx_panel_sources.tgz -C panel_src
+
+%ifarch %{x8664}
+sh %{SOURCE1} --extract .
+%else
+sh %{SOURCE0} --extract .
+%endif
+
+cp arch/%{arch_dir}/lib/modules/fglrx/build_mod/* common/lib/modules/fglrx/build_mod
+
+install -d panel_src
+tar -xzf common/usr/src/ATI/fglrx_panel_sources.tgz -C panel_src
 %patch0 -p1
-%{!?_without_dist_kernel:%patch1 -p1}
+%patch1 -p1
+cd common
+%{?with_dist_kernel:%patch2 -p1}
+%patch3 -p1
+cd -
+
+install -d common%{_prefix}/{%{_lib},bin}
+cp -r %{x11ver}%{arch_sufix}%{_prefix}/%{_lib}/* common%{_prefix}/%{_lib}
+cp -r %{x11ver}%{arch_sufix}%{_bindir}/* common%{_bindir}
+cp -r arch/%{arch_dir}%{_prefix}/%{_lib}/* common%{_prefix}/%{_lib}
+cp -r arch/%{arch_dir}%{_bindir}/* common%{_bindir}
 
 %build
-cd lib/modules/fglrx/build_mod/
-cp make.sh make.sh.org && rm -f make.sh
-sed -e 's#gcc#%{kgcc}#g' -e 's#`id -u` -ne 0#`id -u` -ne `id -u`#g' make.sh.org > make.sh
-chmod 755 make.sh
-./make.sh
-cd ../../../../panel_src
-%{__make} MK_QTDIR=/usr \
+%if %{with kernel}
+cd common/lib/modules/fglrx/build_mod
+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
+        install -d o/include/linux
+        ln -sf %{_kernelsrcdir}/config-$cfg o/.config
+        ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers
+        ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h
+        %{__make} -C %{_kernelsrcdir} O=$PWD/o prepare scripts
+       %{__make} -C %{_kernelsrcdir} clean \
+               RCS_FIND_IGNORE="-name '*.ko' -o" \
+               M=$PWD O=$PWD/o \
+               %{?with_verbose:V=1}
+       %{__make} -C %{_kernelsrcdir} modules \
+               M=$PWD O=$PWD/o \
+               %{?with_verbose:V=1}
+       mv fglrx{,-$cfg}.ko
+done
+cd -
+%endif
+
+%if %{with userspace}
+%{__make} -C panel_src \
+       C="%{__cc}" \
+       CC="%{__cxx}" \
+       CCFLAGS="%{rpmcflags} -DFGLRX_USE_XEXTENSIONS" \
+       MK_QTDIR=/usr \
        LIBQT_DYN=qt-mt
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/X11/extensions}
-install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/
 
-install lib/modules/fglrx/build_mod/fglrx.o            $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc/
+%if %{with kernel}
+cd common/lib/modules/fglrx/build_mod
+install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc
+
+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 \
+       $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/fglrx.ko
+%endif
+cd -
+%endif
+
+%if %{with userspace}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_includedir}/X11/extensions} \
+       $RPM_BUILD_ROOT/usr/{%{_lib},include/GL}
+
+install common%{_bindir}/{fgl_glxgears,fglrxinfo,aticonfig} \
+       $RPM_BUILD_ROOT%{_bindir}
+install panel_src/fireglcontrol.qt3.gcc%(gcc -dumpversion) \
+       $RPM_BUILD_ROOT%{_bindir}/fireglcontrol
+cp -r common%{_prefix}/%{_lib}/* $RPM_BUILD_ROOT%{_libdir}
 
-install usr/X11R6/bin/{fgl_glxgears,fglrxconfig,fglrxinfo} $RPM_BUILD_ROOT%{_bindir}
-install panel_src/{fireglcontrol.qt3.gcc3.3.1,fireglcontrol} $RPM_BUILD_ROOT%{_bindir}
-cp -r usr/X11R6/lib/* $RPM_BUILD_ROOT%{_libdir}/
+ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/libGL.so
 
-cd $RPM_BUILD_ROOT%{_libdir}
-ln -s libGL.so.* libGL.so
+# OpenGL ABI for Linux compatibility
+ln -sf %{_libdir}/libGL.so.1 $RPM_BUILD_ROOT/usr/%{_lib}/libGL.so.1
+ln -sf %{_libdir}/libGL.so $RPM_BUILD_ROOT/usr/%{_lib}/libGL.so
+
+install common/usr/include/GL/*.h $RPM_BUILD_ROOT/usr/include/GL
+install common%{_includedir}/X11/extensions/*.h $RPM_BUILD_ROOT%{_includedir}/X11/extensions
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -105,20 +223,55 @@ rm -rf $RPM_BUILD_ROOT
 %postun        -p /sbin/ldconfig
 
 %post  -n kernel-video-firegl
-/sbin/depmod -a %{!?_without_dist_kernel:-F /boot/System.map-%{_kernel_ver} }%{_kernel_ver}
+%depmod %{_kernel_ver}
 
 %postun -n kernel-video-firegl
-/sbin/depmod -a %{!?_without_dist_kernel:-F /boot/System.map-%{_kernel_ver} }%{_kernel_ver}
+%depmod %{_kernel_ver}
+
+%post  -n kernel-smp-video-firegl
+%depmod %{_kernel_ver}smp
 
+%postun -n kernel-smp-video-firegl
+%depmod %{_kernel_ver}smp
+
+%if %{with userspace}
 %files
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/*
-%attr(755,root,root) %{_libdir}/lib*.so*
-%attr(755,root,root) %{_libdir}/modules/*/*.so
-%attr(755,root,root) %{_libdir}/modules/*/*.o
-%attr(644,root,root) %{_libdir}/modules/*/*.a
-%attr(755,root,root) /usr/X11R6/lib/libfglrx_gamma.a
+%attr(755,root,root) %{_libdir}/libGL.so.*.*
+%attr(755,root,root) %{_libdir}/libGL.so
+%attr(755,root,root) %{_libdir}/libfglrx_dm.so.*.*
+%attr(755,root,root) %{_libdir}/libfglrx_gamma.so.*.*
+%attr(755,root,root) %{_libdir}/libfglrx_pp.so.*.*
+# Linux OpenGL ABI compatibility symlinks
+%attr(755,root,root) /usr/%{_lib}/libGL.so.1
+%attr(755,root,root) /usr/%{_lib}/libGL.so
+
+%attr(755,root,root) %{_libdir}/modules/dri/atiogl_a_dri.so
+%attr(755,root,root) %{_libdir}/modules/dri/fglrx_dri.so
+%attr(755,root,root) %{_libdir}/modules/drivers/fglrx_drv.so
+%attr(755,root,root) %{_libdir}/modules/linux/libfglrxdrm.so
+%doc ATI_LICENSE.TXT common%{_docdir}/fglrx/*.html common%{_docdir}/fglrx/articles common%{_docdir}/fglrx/release-notes common%{_docdir}/fglrx/user-manual
 
+# -devel
+#%attr(755,root,root) %{_libdir}/libfglrx_gamma.so
+#%{_includedir}/X11/include/libfglrx_gamma.h
+#/usr/include/GL/glATI.h
+#/usr/include/GL/glxATI.h
+
+# -static
+#%{_libdir}/libfglrx_gamma.a
+#%{_libdir}/libfglrx_pp.a
+%endif
+
+%if %{with kernel}
 %files -n kernel-video-firegl
 %defattr(644,root,root,755)
-/lib/modules/%{_kernel_ver}/misc/*.o*
+/lib/modules/%{_kernel_ver}/misc/*.ko*
+
+%if %{with smp} && %{with dist_kernel}
+%files -n kernel-smp-video-firegl
+%defattr(644,root,root,755)
+/lib/modules/%{_kernel_ver}smp/misc/*.ko*
+%endif
+%endif
This page took 0.085192 seconds and 4 git commands to generate.