Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nvidia-x11: rewrite build #13950

Closed
wants to merge 2 commits into from
Closed

Conversation

codyopel
Copy link
Member

nvidia-x11: rewrite build

  • Support for version 361+
    • NVIDIA has added experimental support for EGL, bringing wayland
      support closer
    • Support for NVIDIA's new GLVND libraries
  • Fix i686 support (for whatever thats worth)
    • Cuda UVM is only supported on x86_64 for 346+
  • Fix kernel modules for some platforms & versions
  • Use the long-lived driver as the default
    • Previously it was unclear what the practice is for the default.
  • Add long-lived, short-lived, beta, vulkan drivers
    • Available as "nvidia/nvidiaLongLived", "nvidiaShortLived",
      "nvidiaBeta", & "nvidiaVulkan" in services.xserver.videoDrivers
  • Remove support for 173.xx
    • This driver branch requires a version of xorg-server that is no longer
      supported in nixpkgs.
  • Fix patchelf allowing --shrink-rpath to be used
  • Install everything explicitly to catch build failures due to changes
  • Cleanup shared object version symlinking, .so
  • Cuda fixes
    • Add missing cuda executables, libraries and manpages
  • GTK+3 support and used by default (GTK+3 is supported for 346+)
    • nvidia-settings now works correctly on high dpi displays
  • Add additional separation of kernelspace and userspace to fix packaging of
    packages building against the nvidia-drivers. This is currently incomplete,
    but the ground work for doing so is complete.
  • Add a consistent source unpack method
  • Add nvidia default application profiles
  • Add better documentation to builder
  • Add X.Org driver config
  • Add NVIDIA ICD config
  • Cleanup buildinputs (add missing deps & remove unused)

cc @vcunat
After taking a quick look at the current build I didn't want to decipher what is broken and what isn't. This is basically copied verbatim from my build in https://github.com/triton/triton/tree/master/pkgs/all-pkgs/nvidia-drivers, so it contain fixes for all branches and platforms. I don't currently have a system to test this on, but I believe I fixed all attribute names so that it should just work within nixpkgs.

+ Support for version 361+
  - NVIDIA has added experimental support for EGL, bringing wayland
    support closer
  - Support for NVIDIA's new GLVND libraries
+ Fix i686 support (for whatever thats worth)
  - Cuda UVM is only supported on x86_64 for 346+
+ Fix kernel modules for some platforms & versions
+ Use the long-lived driver as the default
  - Previously it was unclear what the practice is for the default.
+ Add long-lived, short-lived, beta, vulkan drivers
  - Available as "nvidia/nvidiaLongLived", "nvidiaShortLived",
    "nvidiaBeta", & "nvidiaVulkan" in services.xserver.videoDrivers
+ Remove support for 173.xx
  - This driver branch requires a version of xorg-server that is no longer
    supported in nixpkgs.
+ Fix patchelf allowing --shrink-rpath to be used
+ Install everything explicitly to catch build failures due to changes
+ Cleanup shared object version symlinking, *.so*
+ Cuda fixes
  - Add missing cuda executables, libraries and manpages
+ GTK+3 support and used by default (GTK+3 is supported for 346+)
  - nvidia-settings now works correctly on high dpi displays
+ Add additional separation of kernelspace and userspace to fix packaging of
  packages building against the nvidia-drivers. This is currently imcomplete,
  but the ground work for doing so is complete.
+ Add a consistent source unpack method
+ Add nvidia default application profiles
+ Add better documentation to builder
+ Add X.Org driver config
+ Add NVIDIA ICD config
+ Cleanup buildinputs (add missing deps & remove unused)

cc @vcunat
@mention-bot
Copy link

By analyzing the blame information on this pull request, we identified @vcunat, @edolstra and @shlevy to be potential reviewers

@codyopel
Copy link
Member Author

Related discussion:
#12719
Resolves issue:
#13942

@codyopel
Copy link
Member Author

@vcunat
Also, all branches build except the beta branch because NVIDIA renamed libGL.so.1 -> libGL.so.1.0.0 in a point release and the generic builder is based on using major versions for such changes.

@vcunat
Copy link
Member

vcunat commented Mar 16, 2016

We should patch out the "triton" strings, I think... but I only skimmed all this for now. I'll try to do a better review later today or tomorrow, unless someone beats me.

vcunat added a commit that referenced this pull request Mar 16, 2016
optionals
optionalString
singleton;
};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't do this, it's unnecessarily verbose.

@edolstra
Copy link
Member

I'm concerned about the maintainability of a nearly 600-line build script, which is nearly quadruple the size of the previous builder.sh. Where does that increase come from?

GTK+3 is still not the default in Nixpkgs, so I don't think programs should use it if they can also use GTK+2, in order not to end up with multiple versions of GTK+3 in the system closure.

pkgs/os-specific/linux/nvidia-x11 should use callPackages rather than relying on a channel argument.

@codyopel
Copy link
Member Author

@edolstra
I only opened the PR at the request of @vcunat . If it isn't what you want you can manually add the fixes from my changes. I detailed the necessary changes in a linked PR that will resolve the errors, because as it stands there are packaging errors that will cause the driver to segfault. These changes do not effect me, so they are what they are, take it or leave it. Also the builder is longer because it is a generic builder for all versions, that also includes better tests for catching errors.

lol, in 2016 you still prefer gtk2 as the default, have fun with that

@vcunat
Copy link
Member

vcunat commented Mar 16, 2016

I see this won't be as easy as I hoped, so I reverted that update for now to avoid crashes until we find a working and "acceptable" solution.

@codyopel
Copy link
Member Author

changes in 364.12 beta: triton/triton@acc4ffa

@domenkozar
Copy link
Member

@vcunat does nvidia work now on 16.03 without this PR?

@vcunat
Copy link
Member

vcunat commented Mar 27, 2016

Yes, as I posted, for now I had reverted the branches to 358.16, as that version worked reliably and it really isn't that old.

@dezgeg
Copy link
Contributor

dezgeg commented Mar 18, 2017

Sounds like the issue got solved some other way, closing.

@dezgeg dezgeg closed this Mar 18, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants