#loadInstalled('nvidia-kernel.recipe') class Nvidia(CPackageRecipe): name = 'nvidia' # version = NvidiaKernel.version version = '1.0_9625' buildRequires = ['atk:devel', 'chkconfig:runtime', 'glib:devel', 'gtk:devel', 'libX11:devel', 'libXext:devel', 'pango:devel', 'desktop-file-utils:runtime'] def setup(r): r.macros.version = r.version.replace('_','-') r.macros.url = 'http://download.nvidia.com/XFree86/Linux-x86' r.addSource('%(url)s/%(version)s/NVIDIA-Linux-x86-%(version)s-pkg0.run') r.addSource('nvidia.init') r.Run('sh NVIDIA-Linux-x86-%(version)s-pkg0.run -x') # Extract only # Copy the files we need r.macros.root = 'NVIDIA-Linux-x86-%(version)s-pkg0/usr' r.Install('%(root)s/lib/*.s*', '%(libdir)s/') r.Install('%(root)s/lib/tls/*.s*','%(libdir)s/tls/') r.Install('%(root)s/share/man/man1/*', '%(datadir)s/man/man1/') r.Remove('/man/man1/nvidia-installer.1.gz') r.Install('%(root)s/share/doc/*','%(datadir)s/doc/') r.Install('%(root)s/X11R6/lib/libX*', '%(libdir)s/') r.Run(""" echo "===============================================" sed -i %(root)s/share/applications/nvidia-settings.desktop -e "s,__PIXMAP_PATH__,%(datadir)s/pixmaps,g" -e "s,__UTILS_PATH__,%(bindir)s,g" -e "s,__DOCS_PATH__,%(datadir)s/pixmaps,g" sed -i %(root)s/share/applications/nvidia-settings.desktop -e "s/Application;/GNOME;/g" echo "===============================================" """) r.Desktopfile('%(root)s/share/applications/nvidia-settings.desktop') r.Install('%(root)s/share/pixmaps/nvidia-settings.png','%(datadir)s/pixmaps/') r.Install('%(root)s/X11R6/lib/modules/drivers/*','/usr/lib/xorg/modules/drivers/') r.Install('%(root)s/X11R6/lib/modules/extensions/*', '/usr/lib/xorg/modules/extensions/') r.MakeDirs('%(bindir)s') r.Install('%(root)s/bin/nvidia-{settings,xconfig,bug-report.sh}','%(bindir)s') # Add missing symlinks # the Copy bellow should not be needed but otherwise # libGL.so.1 ends linked against (!) Mesa's libGL.so.2... # have no effect in stock X but breaks Xgl bigtime... # r.Copy('%(libdir)s/libGL.so.1.0.9625', # '%(libdir)s/libGL.so.1') r.SharedLibrary(subtrees='/usr/lib/xorg/modules/extensions/') r.SharedLibrary(subtrees='/usr/lib/xorg/modules/drivers/') r.SharedLibrary(subtrees='/usr/lib/') r.SharedLibrary(subtrees='/usr/lib/tls') r.ComponentSpec('lib', 'libglx.so') r.ComponentSpec('lib', 'libXvMCNVIDIA.a') # The kernel side is in nvidia-kernel, and we need the kernel # modules that match this version exactly r.Requires('nvidia-kernel:runtime(%(version)s)', '/usr/lib/xorg/modules/drivers/nvidia_drv.o') # We want to make sure that the kernel module can require the # matching userspace code r.ComponentProvides('%(version)s') r.Install('nvidia.init','%(initdir)s/nvidia')