#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')