Today I was trying to build my first package on OBS, specifically a package for Nvidia NCCL library. Arch-based, Nix, and Debian/Ubuntu-based distros provide it, so I was following the Arch build script as a guideline.
The issue is that to build it, I need Nvidia CUDA libraries installed, but openSUSE doesn’t provide them in any way. I thought it was a problem with the license, but recently, openSUSE started distributing the Nvidia drivers, which exactly like CUDA allows to be redistributed for Linux/BSD systems:
Those portions of the SDK designed exclusively for use on the Linux or FreeBSD operating systems, or other operating systems derived from the source code to these operating systems, may be copied and redistributed for use in accordance with this Agreement, provided that the object code files are not modified in any way (except for unzipping of compressed files).
So the question is, why doesn’t openSUSE distribute the CUDA libraries? Couldn’t I create a home: project for it? If so, which license should I use? For instance, Arch uses an “Nvidia custom” tag for the license field of the cuda package, but I don’t think OBS would accept it, isn’t it?
@00sapo you can’t on the openSUSE Build Service, now there is nothing stopping you from creating your own build service instance and building with that…
Indeed, I noticed that the drivers I was referring to are actually hosted under the nvidia.com domain. Is there any community service hosting non-OSI software?
Honestly, I definitely don’t agree with such a strict policy. Nvidia stuffs should be an exception unless equivalent software is provided as open-source…
@00sapo It is what it is, openSUSE has a special agreement to build and Nvidia to distribute.
Why not just build locally and create the rpm? Whilst it says RedHat, the same spec works with openSUSE in this case as it’s just installing the compiled binaries/libraries.
Because when Nvidia drivers update, you need to also check the versions of CUDA, NCCL, and all depending packages. Installing from locally built RPM or via the official scipt (.run) will make my system (and the software I develop) buggy in 3… 2… 1… boom!
I’m trying to understand if I could create RPM for cuda and NCCL on packman’s OBS…