Latest kernel driver RPM packages pull all X11 stack??

Hi there,

Did anyone else notice that the recently announced [1] “repackaging” of the Linux kernel driver in the CUDA packages repository [2] seems to be pulling the whole X11 stack (from Xorg server to gtk3, fonts and hicolor-icon-theme)?

Does that mean that all headless compute systems now need to install a full graphical stack just to run CUDA compute kernels? That seems quite unpractical…

But here what happens on a freshly deployed CentOS 7.6 system:

# cd /etc/yum.repos.d/
# wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo

# # yum install nvidia-kmod
Package nvidia-kmod is obsoleted by kmod-nvidia-latest-dkms, trying to install 3:kmod-nvidia-latest-dkms-418.87.00-1.el7.x86_64 instead
Resolving Dependencies
--> Running transaction check
---> Package kmod-nvidia-latest-dkms.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: nvidia-driver = 3:418.87.00 for package: 3:kmod-nvidia-latest-dkms-418.87.00-1.el7.x86_64
--> Running transaction check
---> Package nvidia-driver-latest.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: nvidia-modprobe-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-xconfig-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-settings-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-NvFBCOpenGL(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-libs(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-devel(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-cuda(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-cuda-libs(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-libXNVCtrl-latest-devel(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-driver-latest-NVML(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: nvidia-libXNVCtrl-latest(x86-64) = 3:418.87.00 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: xorg-x11-server-Xorg(x86-64) >= 1.16 for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: yum-plugin-nvidia for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: libnvidia-tls.so.418.87.00()(64bit) for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Processing Dependency: libnvidia-glcore.so.418.87.00()(64bit) for package: 3:nvidia-driver-latest-418.87.00-1.el7.x86_64
--> Running transaction check
---> Package nvidia-driver-latest-NVML.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-driver-latest-NvFBCOpenGL.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: libGL.so.1()(64bit) for package: 3:nvidia-driver-latest-NvFBCOpenGL-418.87.00-1.el7.x86_64
---> Package nvidia-driver-latest-cuda.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: nvidia-persistenced-latest = 3:418.87.00 for package: 3:nvidia-driver-latest-cuda-418.87.00-1.el7.x86_64
---> Package nvidia-driver-latest-cuda-libs.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-driver-latest-devel.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-driver-latest-libs.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: libglvnd-gles(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libvdpau(x86-64) >= 0.5 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libglvnd-opengl(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libglvnd(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: libglvnd-egl(x86-64) >= 1.0 for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
--> Processing Dependency: vulkan-filesystem for package: 3:nvidia-driver-latest-libs-418.87.00-1.el7.x86_64
---> Package nvidia-libXNVCtrl-latest.x86_64 3:418.87.00-1.el7 will be installed
---> Package nvidia-libXNVCtrl-latest-devel.x86_64 3:418.87.00-1.el7 will be installed
--> Processing Dependency: libX11-devel for package: 3:nvidia-libXNVCtrl-latest-devel-418.87.00-1.el7.x86_64
[...]
Dependencies Resolved

========================================================================================================================================
 Package                             Arch      Version                        Repository                                           Size
========================================================================================================================================
Installing:
 kmod-nvidia-latest-dkms             x86_64    3:418.87.00-1.el7              cuda                                                 13 M
Installing for dependencies:
 adwaita-cursor-theme                noarch    3.28.0-1.el7                   base                                                641 k
 adwaita-icon-theme                  noarch    3.28.0-1.el7                   base                                                 11 M
 at-spi2-atk                         x86_64    2.26.2-1.el7                   base                                                 81 k
 at-spi2-core                        x86_64    2.28.0-1.el7                   base                                                158 k
 atk                                 x86_64    2.28.1-1.el7                   base                                                263 k
 cairo                               x86_64    1.15.12-3.el7                  base                                                741 k
 cairo-gobject                       x86_64    1.15.12-3.el7                  base                                                 25 k
 colord-libs                         x86_64    1.3.4-1.el7                    base                                                185 k
 dconf                               x86_64    0.28.0-4.el7                   base                                                106 k
 dejavu-fonts-common                 noarch    2.33-6.el7                     base                                                 64 k
 dejavu-sans-fonts                   noarch    2.33-6.el7                     base                                                1.4 M
 fontconfig                          x86_64    2.13.0-4.3.el7                 base                                                254 k
 fontpackages-filesystem             noarch    1.44-8.el7                     base                                                9.9 k
 fribidi                             x86_64    1.0.2-1.el7                    base                                                 79 k
 gdk-pixbuf2                         x86_64    2.36.12-3.el7                  base                                                570 k
 glib-networking                     x86_64    2.56.1-1.el7                   base                                                145 k
 graphite2                           x86_64    1.3.10-1.el7_3                 base                                                115 k
 gsettings-desktop-schemas           x86_64    3.28.0-2.el7                   base                                                605 k
 gtk-update-icon-cache               x86_64    3.22.30-3.el7                  base                                                 28 k
 gtk2                                x86_64    2.24.31-1.el7                  base                                                3.4 M
 gtk3                                x86_64    3.22.30-3.el7                  base                                                4.4 M
 harfbuzz                            x86_64    1.7.5-2.el7                    base                                                267 k
 hicolor-icon-theme                  noarch    0.12-7.el7                     base                                                 42 k
 jasper-libs                         x86_64    1.900.1-33.el7                 base                                                150 k
 jbigkit-libs                        x86_64    2.0-11.el7                     base                                                 46 k
 json-glib                           x86_64    1.4.2-2.el7                    base                                                134 k
 lcms2                               x86_64    2.6-3.el7                      base                                                150 k
 libX11-devel                        x86_64    1.6.5-2.el7                    base                                                980 k
 libXau-devel                        x86_64    1.0.8-2.1.el7                  base                                                 14 k
 libXcomposite                       x86_64    0.4.4-4.1.el7                  base                                                 22 k
 libXcursor                          x86_64    1.1.15-1.el7                   base                                                 30 k
 libXdamage                          x86_64    1.1.4-4.1.el7                  base                                                 20 k
 libXdmcp                            x86_64    1.1.2-6.el7                    base                                                 34 k
 libXfixes                           x86_64    5.0.3-1.el7                    base                                                 18 k
 libXfont2                           x86_64    2.0.3-1.el7                    base                                                143 k
 libXft                              x86_64    2.3.2-2.el7                    base                                                 58 k
 libXi                               x86_64    1.7.9-1.el7                    base                                                 40 k
 libXinerama                         x86_64    1.1.3-2.1.el7                  base                                                 14 k
 libXrandr                           x86_64    1.5.1-2.el7                    base                                                 27 k
 libXrender                          x86_64    0.9.10-1.el7                   base                                                 26 k
 libXtst                             x86_64    1.2.3-1.el7                    base                                                 20 k
 libXxf86vm                          x86_64    1.1.4-1.el7                    base                                                 18 k
 libdrm                              x86_64    2.4.91-3.el7                   base                                                153 k
 libepoxy                            x86_64    1.5.2-1.el7                    base                                                211 k
 libfontenc                          x86_64    1.1.3-3.el7                    base                                                 31 k
 libglvnd                            x86_64    1:1.0.1-0.8.git5baa1e5.el7     base                                                 89 k
 libglvnd-egl                        x86_64    1:1.0.1-0.8.git5baa1e5.el7     base                                                 44 k
 libglvnd-gles                       x86_64    1:1.0.1-0.8.git5baa1e5.el7     base                                                 34 k
 libglvnd-glx                        x86_64    1:1.0.1-0.8.git5baa1e5.el7     base                                                125 k
 libglvnd-opengl                     x86_64    1:1.0.1-0.8.git5baa1e5.el7     base                                                 43 k
 libgusb                             x86_64    0.2.9-1.el7                    base                                                 40 k
 libjpeg-turbo                       x86_64    1.2.90-6.el7                   base                                                134 k
 libmodman                           x86_64    2.0.1-8.el7                    base                                                 28 k
 libpciaccess                        x86_64    0.14-1.el7                     base                                                 26 k
 libproxy                            x86_64    0.4.11-11.el7                  base                                                 64 k
 libsoup                             x86_64    2.62.2-2.el7                   base                                                411 k
 libthai                             x86_64    0.1.14-9.el7                   base                                                187 k
 libtiff                             x86_64    4.0.3-27.el7_3                 base                                                170 k
 libvdpau                            x86_64    1.1.1-3.el7                    base                                                 34 k
 libwayland-client                   x86_64    1.15.0-1.el7                   base                                                 33 k
 libwayland-cursor                   x86_64    1.15.0-1.el7                   base                                                 20 k
 libwayland-egl                      x86_64    1.15.0-1.el7                   base                                                 13 k
 libwayland-server                   x86_64    1.15.0-1.el7                   base                                                 39 k
 libxcb-devel                        x86_64    1.13-1.el7                     base                                                1.1 M
 libxkbcommon                        x86_64    0.7.1-1.el7                    base                                                108 k
 libxkbfile                          x86_64    1.0.9-3.el7                    base                                                 83 k
 libxshmfence                        x86_64    1.2-1.el7                      base                                                7.2 k
 mesa-libEGL                         x86_64    18.0.5-4.el7_6                 updates                                             102 k
 mesa-libGL                          x86_64    18.0.5-4.el7_6                 updates                                             162 k
 mesa-libgbm                         x86_64    18.0.5-4.el7_6                 updates                                              38 k
 mesa-libglapi                       x86_64    18.0.5-4.el7_6                 updates                                              44 k
 nvidia-driver-latest                x86_64    3:418.87.00-1.el7              cuda                                                5.6 M
 nvidia-driver-latest-NVML           x86_64    3:418.87.00-1.el7              cuda                                                568 k
 nvidia-driver-latest-NvFBCOpenGL    x86_64    3:418.87.00-1.el7              cuda                                                137 k
 nvidia-driver-latest-cuda           x86_64    3:418.87.00-1.el7              cuda                                                395 k
 nvidia-driver-latest-cuda-libs      x86_64    3:418.87.00-1.el7              cuda                                                 32 M
 nvidia-driver-latest-devel          x86_64    3:418.87.00-1.el7              cuda                                                 18 k
 nvidia-driver-latest-libs           x86_64    3:418.87.00-1.el7              cuda                                                 45 M
 nvidia-libXNVCtrl-latest            x86_64    3:418.87.00-1.el7              cuda                                                 54 k
 nvidia-libXNVCtrl-latest-devel      x86_64    3:418.87.00-1.el7              cuda                                                 62 k
 nvidia-modprobe-latest              x86_64    3:418.87.00-1.el7              cuda                                                 72 k
 nvidia-persistenced-latest          x86_64    3:418.87.00-1.el7              cuda                                                100 k
 nvidia-settings-latest              x86_64    3:418.87.00-1.el7              cuda                                                3.9 M
 nvidia-xconfig-latest               x86_64    3:418.87.00-1.el7              cuda                                                272 k
 pango                               x86_64    1.42.4-2.el7_6                 updates                                             280 k
 pixman                              x86_64    0.34.0-1.el7                   base                                                248 k
 rest                                x86_64    0.8.1-2.el7                    base                                                 63 k
 vulkan-filesystem                   noarch    1.1.73.0-1.el7                 base                                                6.2 k
 xkeyboard-config                    noarch    2.24-1.el7                     base                                                834 k
 xorg-x11-proto-devel                noarch    2018.4-1.el7                   base                                                280 k
 xorg-x11-server-Xorg                x86_64    1.20.1-5.6.el7_6               updates                                             1.4 M
 xorg-x11-server-common              x86_64    1.20.1-5.6.el7_6               updates                                              54 k
 xorg-x11-xkb-utils                  x86_64    7.7-14.el7                     base                                                103 k
 yum-plugin-nvidia                   noarch    0.3-1.el7                      cuda                                                9.9 k

Transaction Summary
========================================================================================================================================
Install  1 Package (+94 Dependent packages)

Total download size: 135 M
Installed size: 411 M
Is this ok [y/d/N]:

I’ll go with “No”, it’s not ok to pull 411M of dependencies, including icon packs and fonts, just to install a kernel module…

From what I can see, the problem comes from the fact that all the nvidia-* RPMs depend on nvidia-settings, which in turns depends on Xorg and the whole shebang.

It would be great if that dependency issue could be fixed quickly.

[1] https://news.developer.nvidia.com/nvidia-and-red-hat-simplifying-nvidia-gpu-driver-deployment-on-red-hat-enterprise-linux/
[2] https://developer.download.nvidia.com/compute/cuda/repos

Have you ever tried the packaging from negativo17 [1] or rpmfusion [2]? They don’t seem to have this issue

Netagivo17 - Nvidia driver, CUDA tools and libraries – negativo17.org
RPMfusion - https://rpmfusion.org/