Comments (8)
Thank you @stdweird for reporting this.
I've asked Red Hat for guidance on how to generate that hash value. The comment above it says
The exact mechanism for generating the hash is unspecified.
from yum-packaging-precompiled-kmod.
@kmittman i'm not sure what you mean with "asked Red Hat", but if you want, i can open a support case (or better, reopen one)
i am trying to convince nvidia support that they have the same issue on their official el8 yum repos
from yum-packaging-precompiled-kmod.
Yes, that would be helpful if you could open a support case (and please forward me the bug id).
By repository do you mean https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/ ?
That is also maintained by my team and the YAML file is generated using the genmodules.py script here on GitHub.
from yum-packaging-precompiled-kmod.
@kmittman ah, then you are the person to talk to. our original case was 02740416, i just opened https://access.redhat.com/support/cases/#/case/02808189
From the original case:
Doing quick research, we can see that a context is an option that was created to fix the problem when creating multiples module builds for a single dist-git commit of a modulemd file.
Today, we uniquely identify a module build in a variety of systems with <name>-<stream>-<version> (NSV) where version is derived from the dist-git commit timestamp. Here we’ll have an httpd-2.4 module built on f26 and an http-2.4 module built on f27: two different module builds with the same name, stream, and version. How can we tell them apart?
We will introduce a new value called the context of a built module and include it in the modulemd metadata that gets carried with the built module.
For user facing cases (dnf installation) it will generally be hidden. The old NSV value will still appear. If a user ever needs to surface the value, client tooling can find it in the modulemd metadata. The additional identifier will give users access to explicit pointers to the content that is installed:
For cloning a machine.
For comparing two installed hosts.
For reporting bugs.
Some build and compose time systems will have to be modified to use the context as part of a new unique identifier. NSVC will be the <name>-<stream>-<version>-<context>. The systems in question are PDC, koji/brew, pungi, and bodhi.
The context value will be a hash, generating as the first step in the build process (but after expansion). Consider what metadata needs to be hashed: we think that hashing the whole modulemd is problematic, because the modulemd can and will be modified after build time. Therefore, the context_hash value will need to be derived from only the stuff that uniquely identifies the build and runtime context of the module -- name, stream, version and crucially, its dependencies.
For more details, please access https://docs.fedoraproject.org/en-US/modularity/architecture/consuming/dnf-behavior/ and https://fedoraproject.org/wiki/Infrastructure/Factory2/Focus/StreamExpansion#New_Problems.
from yum-packaging-precompiled-kmod.
I did some asking around and as far as I can tell the quote from @stdweird is accurate, hash the (name, stream, version, dependencies) and truncate it to 10-12 characters. I was told 12 characters max for the current specification, but apparently it's being changed: https://github.com/fedora-modularity/libmodulemd/blob/c64837f31fd1eef37836f5aa376c40984b7edb15/yaml_specs/modulemd_stream_v3.yaml#L77. What I was told was:
As long as they aren't doing stream expansion, it won't matter. The context is for differentiating against the same module:stream:version that's built against two different buildroots. The important part is uniqueness.
from yum-packaging-precompiled-kmod.
Okay I opened a pull request #17 for the proposed change, ex: context: ab14487fb703
. Generated a new YAML file modules.yaml (attached), which can be compared to what is currently in the repository: modules.yaml.gz
note: the only differences should be the version
key-values (timestamp based) and addition of context
key-values
from yum-packaging-precompiled-kmod.
This change is now in the repository.
- Entry point: https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/repodata/repomd.xml
repomd.xml
points to 4f1cac1a3d52e5d053963f899db9f89b2d68db01961a7259048666570b1d3dd5-modules.yaml.gz- YAML file
document: modulemd
version: 2
data:
name: nvidia-driver
stream: latest
version: 20201123080310
context: 750b3266c2ee
Closing. @stdweird please re-open if this still does not work for you.
from yum-packaging-precompiled-kmod.
@kmittman thanks a lot. i confirm that satellite can now sync the repo without issues
from yum-packaging-precompiled-kmod.
Related Issues (20)
- CentOS Stream target? HOT 1
- Update /fm profile HOT 1
- Package kmod-nvidia-460.91.03-4.18.0-305.7.1-460.91.03-3.el8_4.x86_64.rpm is not signed HOT 2
- kmod-nvidia-470.57.02-4.18.0-305.17.1 for kernel version 4.18.0-305.17.1.el8_4 and NVIDIA driver 470.57.02 could be found HOT 3
- no kernel module package kmod-nvidia-470.57.02-4.18.0-305.19.1 for kernel version 4.18.0-305.19.1.el8_4 and NVIDIA driver 470.57.02 could be found HOT 3
- Screen blank after installing drivers HOT 7
- Building modules for CentOS Stream
- precompiled kmod packages unavailable for kernel 4.18.0-348.23.1 HOT 5
- RHEL 9 HOT 1
- precompiled kmod packages unavailable for kernel 4.18.0-372.16.1 HOT 21
- Kernel version string updated release tags HOT 8
- RHEL7 inconsistency between the file mode of ld.gold.nvidia and the defattr HOT 6
- Drivers not working on laptop (Dell XPS 9520) with switchable graphics HOT 1
- Help compiling latest nvidia package NVIDIA-Linux-x86_64-525.60.11.run HOT 2
- Package flagged as installonly prevents yum update from succeeding HOT 8
- Investigate EL kernel version alignment
- Migrate genmodules.py to cuda-repo-management
- kmod-nvidia-535.54.03-5.14.0-284.18.1-535.86.10-1.el9_2.x86_64.rpm is missing HOT 2
- ld file permissions do not match what is declared in the rpm manifest
- Benefiting from RHEL's kABI stability
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yum-packaging-precompiled-kmod.