# TODO # - /usr/lib64/fglrx/libSlotMaximizerBe.so # # Conditional build: %bcond_without dist_kernel # without distribution kernel %bcond_without kernel # don't build kernel modules %bcond_without userspace # don't build userspace tools %bcond_with verbose # verbose build (V=1) %define x11ver xpic %if %{without kernel} %undefine with_dist_kernel %endif # The goal here is to have main, userspace, package built once with # simple release number, and only rebuild kernel packages with kernel # version as part of release number, without the need to bump release # with every kernel change. %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace} %{error:kernel and userspace cannot be built at the same time on PLD builders} exit 1 %endif %if "%{_alt_kernel}" != "%{nil}" %if 0%{?build_kernels:1} %{error:alt_kernel and build_kernels are mutually exclusive} exit 1 %endif %undefine with_userspace %global _build_kernels %{alt_kernel} %else %global _build_kernels %{?build_kernels:,%{?build_kernels}} %endif %if %{without userspace} # nothing to be placed to debuginfo package %define _enable_debug_packages 0 %endif %define kbrs %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo "BuildRequires:kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2" ; done) %define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done) %define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done) %ifarch %{ix86} %define arch_sufix %{nil} %define arch_dir x86 %else %define arch_sufix _64a %define arch_dir x86_64 %endif %define rel 27 %define pname xorg-driver-video-fglrx-legacy Summary: Linux Drivers for AMD graphics accelerators Summary(pl.UTF-8): Sterowniki do akceleratorów graficznych AMD Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel} Version: 13.1 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}} License: AMD Binary (parts are GPL) Group: X11 # Download http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx?type=2.4.1&product=2.4.1.3.42&lang=English # or go to http://support.amd.com/ click through "download drivers", desktop -> radeon hd -> 4xxx -> linux Source0: http://www2.ati.com/drivers/legacy/amd-driver-installer-catalyst-%{version}-legacy-linux-x86.x86_64.zip # Source0-md5: c07fd1332abe4c742a9a0d0e0d0a90de Source1: atieventsd.init Source2: atieventsd.sysconfig Source3: gl.pc.in Source4: 10-fglrx.conf Source5: 10-fglrx-modules.conf Patch0: xorg-driver-video-fglrx-kh.patch Patch1: xorg-driver-video-fglrx-smp.patch Patch2: xorg-driver-video-fglrx-x86genericarch.patch Patch3: xorg-driver-video-fglrx-desktop.patch Patch4: xorg-driver-video-fglrx-nofinger.patch Patch5: xorg-driver-video-fglrx-GPL-only.patch Patch6: xorg-driver-video-fglrx-kernel-fpu.patch Patch7: linux-3.5.0-missing_do_mmap.patch Patch8: linux-3.7.patch URL: http://ati.amd.com/support/drivers/linux/linux-radeon.html BuildRequires: rpmbuild(macros) >= 1.678 %{?with_dist_kernel:%{expand:%kbrs}} BuildRequires: sed >= 4.0 Requires: %{pname}-libs = %{epoch}:%{version}-%{rel} Requires: xorg-xserver-server Requires: xorg-xserver-server(videodrv-abi) <= 12.1 Requires: xorg-xserver-server(videodrv-abi) >= 2.0 Suggests: kernel-video-firegl Provides: xorg-driver-video Provides: xorg-xserver-module(glx) Obsoletes: X11-driver-firegl < 1:7.0.0 Obsoletes: XFree86-driver-firegl < 1:7.0.0 Obsoletes: xorg-driver-video-fglrx-config Obsoletes: xorg-driver-video-fglrx-legacy-12.x Obsoletes: xorg-driver-video-fglrx-libdri Obsoletes: xorg-driver-video-fglrx-libglx ExclusiveArch: i586 i686 athlon pentium3 pentium4 %{x8664} BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n) %define _ccver %(rpm -q --qf "%{VERSION}" gcc | sed 's/\\..*//') %define _noautoreqdep libGL.so.1 %define no_install_post_check_so 1 %description AMD Display driver for the Radeon HD 2000/3000/4000 (R600/R700) series. This package provides 2D display drivers and hardware accelerated OpenGL. %description -l pl.UTF-8 Sterownik AMD do kart graficznych Radeon HD 2000/3000/4000 (R600/R700). Pakiet dostarcza sterowniki obsługujące wyświetlanie 2D oraz sprzętowo akcelerowany OpenGL. %package libs Summary: OpenGL (GL and GLX) AMD libraries Summary(pl.UTF-8): Biblioteki OpenGL (GL i GLX) AMD Group: X11/Development/Libraries Requires(post,postun): /sbin/ldconfig # 4.0 for Radeon HD 5000 Series Provides: OpenGL = 3.3 Provides: OpenGL-GLX = 1.4 Obsoletes: X11-OpenGL-core < 1:7.0.0 Obsoletes: X11-OpenGL-libGL < 1:7.0.0 Obsoletes: XFree86-OpenGL-core < 1:7.0.0 Obsoletes: XFree86-OpenGL-libGL < 1:7.0.0 Obsoletes: xorg-driver-video-fglrx-legacy-12.x-libs %description libs AMD OpenGL (GL and GLX only) implementation libraries. %description libs -l pl.UTF-8 Implementacja OpenGL (tylko GL i GLX) firmy AMD. %package devel Summary: Header files for development for the AMD Radeon cards proprietary driver Summary(pl.UTF-8): Pliki nagłówkowe do programowania z użyciem własnościowego sterownika dla kart AMD Radeon Group: X11/Development/Libraries Requires: %{pname}-libs = %{epoch}:%{version}-%{rel} # or more? Requires: xorg-proto-glproto-devel # 4.0 for Radeon HD 5000 Series Provides: OpenGL-GLX-devel = 1.4 Provides: OpenGL-devel = 3.3 Obsoletes: X11-OpenGL-devel-base Obsoletes: XFree86-OpenGL-devel-base Obsoletes: xorg-driver-video-fglrx-legacy-12.x-devel %description devel Header files for development for the AMD proprietary driver for AMD Radeon graphic cards. %description devel -l pl.UTF-8 Pliki nagłówkowe do programowania z użyciem własnościowego sterownika AMD dla kart graficznych Radeon. %package static Summary: Static libraries for development for the AMD Radeon cards proprietary driver Summary(pl.UTF-8): Biblioteki statyczne do programowania z użyciem własnościowego sterownika dla kart AMD Radeon Group: X11/Development/Libraries Requires: %{pname}-devel = %{epoch}:%{version}-%{rel} Obsoletes: xorg-driver-video-fglrx-legacy-12.x-static %description static Static libraries for development for the AMD proprietary driver for AMD Radeon graphic cards. %description static -l pl.UTF-8 Biblioteki statyczne do programowania z użyciem własnościowego sterownika AMD dla kart graficznych AMD Radeon. %package atieventsd Summary: AMD external events daemon Summary(pl.UTF-8): Demon zewnętrznych zdarzeń AMD Group: Daemons Requires: %{pname} = %{epoch}:%{version}-%{rel} Requires: acpid Requires(post,preun): /sbin/chkconfig Requires: rc-scripts Obsoletes: xorg-driver-video-fglrx-legacy-12.x-atieventsd %description atieventsd The AMD External Events Daemon is a user-level application that monitors various system events such as ACPI or hotplug, then notifies the driver via the X extensions interface that the event has occured. %description atieventsd -l pl.UTF-8 Demon zewnętrznych zdarzeń AMD jest aplikacją monitorującą różne zdarzenia systemowe, takie jak ACPI lub hotplug, a następnie informującą sterownik poprzez interfejs rozszerzeń X, że zaszło zdarzenie. %define kernel_pkg()\ %package -n kernel%{_alt_kernel}-video-firegl-legacy\ Summary: AMD kernel module for FireGL support\ Summary(pl.UTF-8): Moduł jądra oferujący wsparcie dla AMD FireGL\ Release: %{rel}@%{_kernel_ver_str}\ License: AMD\ Group: Base/Kernel\ Requires(post,postun): /sbin/depmod\ %if %{with dist_kernel}\ %requires_releq_kernel\ Requires(postun): %releq_kernel\ %endif\ Provides: kernel%{_alt_kernel}-video-firegl = %{epoch}:%{version}-%{rel}@%{_kernel_ver_str}\ Obsoletes: kernel%{_alt_kernel}-video-firegl-legacy-12.x\ \ %description -n kernel%{_alt_kernel}-video-firegl-legacy\ AMD kernel module for FireGL support.\ \ %description -n kernel%{_alt_kernel}-video-firegl-legacy -l pl.UTF-8\ Moduł jądra oferujący wsparcie dla AMD FireGL.\ \ %if %{with kernel}\ %files -n kernel%{_alt_kernel}-video-firegl-legacy\ %defattr(644,root,root,755)\ /lib/modules/%{_kernel_ver}/misc/*.ko*\ %endif\ \ %post -n kernel%{_alt_kernel}-video-firegl-legacy\ %depmod %{_kernel_ver}\ \ %postun -n kernel%{_alt_kernel}-video-firegl-legacy\ %depmod %{_kernel_ver}\ %{nil} %define build_kernel_pkg()\ cp -pf common/lib/modules/fglrx/build_mod/2.6.x/Makefile common/lib/modules/fglrx/build_mod/\ %build_kernel_modules -C common/lib/modules/fglrx/build_mod -m fglrx GCC_VER_MAJ=%{_ccver}\ %install_kernel_modules -D installed -m common/lib/modules/fglrx/build_mod/fglrx -d misc\ %{nil} %{?with_kernel:%{expand:%kpkg}} %prep #%setup -q -c -T %setup -q -c sh amd-driver-installer-catalyst-%{version}-legacy-linux-x86.x86_64.run --extract . cp -p arch/%{arch_dir}/lib/modules/fglrx/build_mod/* common/lib/modules/fglrx/ cat >>common/lib/modules/fglrx/build_mod/2.6.x/Makefile < $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/fglrx64.conf %else echo %{_libdir}/fglrx > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/fglrx.conf %endif cp -a common%{_libdir}/lib* $RPM_BUILD_ROOT%{_libdir}/fglrx mv -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions/{,fglrx}/libglx.so /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/fglrx ln -sf libGL.so.1 $RPM_BUILD_ROOT%{_libdir}/fglrx/libGL.so ln -sf libfglrx_dm.so.*.* $RPM_BUILD_ROOT%{_libdir}/fglrx/libfglrx_dm.so cp -p common%{_includedir}/GL/*.h $RPM_BUILD_ROOT%{_includedir}/GL echo "LIBGL_DRIVERS_PATH=%{_libdir}/xorg/modules/dri" > $RPM_BUILD_ROOT%{_sysconfdir}/env.d/LIBGL_DRIVERS_PATH install -d $RPM_BUILD_ROOT%{_pkgconfigdir} %{__sed} -e 's|@@prefix@@|%{_prefix}|g;s|@@libdir@@|%{_libdir}|g;s|@@includedir@@|%{_includedir}|g;s|@@version@@|%{version}|g' < %{SOURCE3} \ > $RPM_BUILD_ROOT%{_pkgconfigdir}/gl.pc %endif %clean rm -rf $RPM_BUILD_ROOT %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %post atieventsd /sbin/chkconfig --add atieventsd %service atieventsd restart %preun atieventsd if [ "$1" = "0" ]; then %service -q atieventsd stop /sbin/chkconfig --del atieventsd fi %if %{with userspace} %files %defattr(644,root,root,755) %doc LICENSE.TXT common%{_docdir}/fglrx/*.html common%{_docdir}/fglrx/articles common%{_docdir}/fglrx/user-manual %dir %{_sysconfdir}/ati %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/control %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/signature %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/amdpcsdb.default %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ati/atiogl.xml %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/env.d/LIBGL_DRIVERS_PATH %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_sbindir}/amdnotifyui %{_desktopdir}/*.desktop %{_pixmapsdir}/*.xpm %{_datadir}/ati %dir %{_libdir}/xorg/modules/extensions/fglrx %attr(755,root,root) %{_libdir}/xorg/modules/extensions/fglrx/libglx.so %{_libdir}/dri %attr(755,root,root) %{_libdir}/xorg/modules/dri/fglrx_dri.so %attr(755,root,root) %{_libdir}/xorg/modules/drivers/fglrx_drv.so %dir %{_libdir}/xorg/modules/linux %attr(755,root,root) %{_libdir}/xorg/modules/linux/libfglrxdrm.so %attr(755,root,root) %{_libdir}/xorg/modules/amdxmm.so %attr(755,root,root) %{_libdir}/xorg/modules/glesx.so %{_sysconfdir}/X11/xorg.conf.d/10-fglrx.conf %{_sysconfdir}/X11/xorg.conf.d/10-fglrx-modules.conf %files libs %defattr(644,root,root,755) %dir %{_sysconfdir}/OpenCL %dir %{_sysconfdir}/OpenCL/vendors %{_sysconfdir}/OpenCL/vendors/*.icd %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ld.so.conf.d/fglrx*.conf %dir %{_libdir}/fglrx %attr(755,root,root) %{_libdir}/fglrx/libAMDXvBA.so.*.* %attr(755,root,root) %ghost %{_libdir}/fglrx/libAMDXvBA.so.1 %attr(755,root,root) %{_libdir}/fglrx/libOpenCL.so.1 %attr(755,root,root) %{_libdir}/fglrx/libSlotMaximizerAg.so %ifarch %{ix86} %attr(755,root,root) %{_libdir}/fglrx/libSlotMaximizerBe.so %endif %attr(755,root,root) %{_libdir}/fglrx/libXvBAW.so.*.* %attr(755,root,root) %ghost %{_libdir}/fglrx/libXvBAW.so.1 %{_libdir}/fglrx/libAMDXvBA.cap %attr(755,root,root) %{_libdir}/fglrx/libamdocl*.so %attr(755,root,root) %{_libdir}/fglrx/libatiadlxx.so %attr(755,root,root) %{_libdir}/fglrx/libaticalcl.so %attr(755,root,root) %{_libdir}/fglrx/libaticaldd.so %attr(755,root,root) %{_libdir}/fglrx/libaticalrt.so %attr(755,root,root) %{_libdir}/fglrx/libatiuki.so.*.* %attr(755,root,root) %ghost %{_libdir}/fglrx/libatiuki.so.1 %attr(755,root,root) %{_libdir}/fglrx/libGL.so.*.* %attr(755,root,root) %ghost %{_libdir}/fglrx/libGL.so.1 %attr(755,root,root) %{_libdir}/fglrx/libfglrx_dm.so.*.* %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/fglrx/libfglrx_dm.so %attr(755,root,root) %{_libdir}/fglrx/libGL.so %{_includedir}/GL %{_pkgconfigdir}/gl.pc %files static %defattr(644,root,root,755) %{_libdir}/fglrx/libfglrx_dm.a %files atieventsd %defattr(644,root,root,755) %attr(754,root,root) /etc/rc.d/init.d/atieventsd %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/atieventsd %attr(755,root,root) %{_sbindir}/atieventsd %attr(755,root,root) %{_sysconfdir}/acpi/ati-powermode.sh %{_sysconfdir}/acpi/events/* %{_mandir}/man8/atieventsd.8* %endif