-
Notifications
You must be signed in to change notification settings - Fork 43
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
Switch from extra-data to normal package (v2) #234
base: master
Are you sure you want to change the base?
Conversation
Started test build 97853 |
Build 97853 failed |
Thanks for finishing up and testing this! My main concerns are actually about Flathub infrastructure. barthalion is going to look into this at some point and will ensure that this transition can go smoothly. Also marking as a draft to ensure no green buttons are accidentally hit. |
8f6f7ff
to
118de21
Compare
Sync'd with |
Started test build 102118 |
Build 102118 failed |
Sorry about the delay but barts been busy so it might be a while. |
No worries at all, I completely understand. |
I'm thinking of opening individual pull requests for some of the commits here, because some of them are fixing actual issues which are unrelated to the move off of @TingPing Would that be okay with you? |
@guihkx Sure go ahead. @barthalion Is this still on your radar? |
Started test build 134664 |
Build 134664 failed |
Started test build 136984 |
Build 136984 failed |
Started test build 138891 |
Build 138891 failed |
anyone could help me with that?
also if I use make I do not get the 32bit version 32bit not here :: gonna ask in the other thread
|
@Hyphaed Did you make sure to check out my branch before running the instructions? The instructions won't work if you're on the EDIT: You also invoked the |
NVIDIA has updated its license [1], which in short gives us permission to distribute their drivers: 2. GRANT OF LICENSE 2.1 Rights and Limitations of Grant. NVIDIA hereby grants Customer the following non-exclusive, non-transferable right to use the SOFTWARE, with the following limitations: 2.1.1 Rights. Customer may install and use multiple copies of the SOFTWARE on a shared computer or concurrently on different computers, and make multiple back-up copies of the SOFTWARE, solely for Customer's use within Customer's Enterprise. "Enterprise" shall mean individual use by Customer or any legal entity (such as a corporation or university) and the subsidiaries it owns by more than fifty percent (50%). 2.1.2 Linux/FreeBSD Exception. Notwithstanding the foregoing terms of Section 2.1.1, SOFTWARE 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, provided that the binary files thereof are not modified in any way (except for unzipping of compressed files). [1] https://web.archive.org/web/20240128092200/https://www.nvidia.com/content/DriverDownloads/licence.php?lang=us Co-authored-by: Patrick Griffis <[email protected]>
2836a61
to
8a375a5
Compare
Started test build 148286 |
Build 148286 failed |
This is my take at solving #203, which is also pretty much a follow-up to #167.
Here are some pros of accepting this PR (in my opinion):
i386
build botAnd here are some potential cons (also in my opinion):
Potential throttling of download speeds by NVIDIA servers: I built every single driver version we currently have, just to make sure they would at least pass the build step. However, after downloading about half of the drivers at very high speeds (50 MB/s), subsequent downloads were slowed down to only 100 KB/s (!). I made sure to check that this issue wasn't being caused by my ISP, too. So, I'm not sure if Flathub servers will be affected by this, but it's something to keep in mind, because it might significantly slow down the build process.
Overall slower build time: This issue is not directly related to the issue above (although this one can be worsened by it), Instead, it has to do with the fact that by switching from extra-data, Flathub now has to download 91 GiB worth of driver files every time a new driver version is added. A potential way mitigate this, would be by Flathub admins allocating ~100 GB of storage to cache all these installers, but this number will only grow with time... :(
Those things aside, I should also note that my testing capabilities are limited because I only have an old NVIDIA GPU, and so the actual testing of the driver was solely done with version 470.223.02.
In any case, I have wrote some instructions below for any contributors willing to build and test this locally.
Closes #42
Closes #156
Closes #203
Closes #217
How to build/package locally
1. Open
versions.sh
and edit theDRIVER_VERSIONS
variable at the very end, informing the versions you want to package, separated by a white space. For example, to package only the545.29.06
driver:DRIVER_VERSIONS='545.29.06'
2. Invoke the
update-data.sh
script to make sure metadata files about the driver exist:3. Invoke the build command to build for your CPU architecture:
# hint: you can build for aarch64 by adding ARCH=aarch64 in front of make make
4. Create a local Flatpak remote named
nvidia-local
, pointing to therepo/
directory:5. Check what drivers you have in the repository:
6. Install the drivers accordingly, for example:
flatpak --user install nvidia-local org.freedesktop.Platform.GL.nvidia-560-35-03 # Don't forget the 32-bit driver... flatpak --user install nvidia-local org.freedesktop.Platform.GL32.nvidia-560-35-03
Testing
Perhaps the easiest way to test this is by installing Flatpak'd Steam. Because Steam requires the
multiarch
permission by default, testing the 32-bit part of the driver is easier.My tests consist in downloading x86 and x86_64 binaries of
vulkaninfo
(to test Vulkan) andglxinfo
(to test OpenGL), and then running these two tools within thecom.valvesoftware.Steam
app, and observe that their output is correct.Below are command-line only instructions on how to do that.
Testing Vulkan (x86_64 / x86)
Testing OpenGL (x86_64 / x86)