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

Reimplement repoquery in a more generic way #10514

Draft
wants to merge 2 commits into
base: rpm/develop
Choose a base branch
from

Conversation

ekohl
Copy link
Member

@ekohl ekohl commented Feb 29, 2024

This approach is based on rpmdist-repoquery where a certain directory structure is used to track repositories. That is then selected, together with a releasever.

Our own repositories are made generic by using DNF_VAR_$var, which makes branching easier.

It also uses true modularity. For that it hacks together a temporary installroot and uses fakeroot to pretend to be root, because dnf insists you need to be root to enable a module. Due to only using real DNF, we can rely on the modulary metadata and dependency resolution to select the correct modules. Again, reducing duplication.

A major motivation for this is the upcoming CentOS Stream 8 EOL where the repositories will be archived. This new repository structure allows easy switching to another Enterprise Linux for repoclosure checks.

This needs a different approach in how we configure repoclosure in obal and the wrapper scripts should probably live in another repository as well. Another excercise is the EL7 repoclosure check.

dnfwrapper Outdated
Copy link
Member Author

Choose a reason for hiding this comment

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

This is essentially the same as rpmdistro-repoquery but without the repoquery in the last line. We can talk to the maintainers to provide this. While talking about this I was pointed to fedrq as well, which may be nicer.

Comment on lines +3 to +6
DNF_VAR_foremanver=nightly
DNF_VAR_katellover=nightly
DNF_VAR_candlepinver=nightly
DNF_VAR_puppetver=7
Copy link
Member Author

Choose a reason for hiding this comment

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

It would be nice if these were provided by the package manifest.

ekohl added 2 commits May 31, 2024 12:42
This makes it easier to update to version 8.
This approach is based on rpmdist-repoquery where a certain directory
structure is used to track repositories. That is then selected, together
with a releasever.

Our own repositories are made generic by using DNF_VAR_$var, which makes
branching easier.

It also uses true modularity. For that it hacks together a temporary
installroot and uses fakeroot to pretend to be root, because dnf insists
you need to be root to enable a module. Due to only using real DNF, we
can rely on the modulary metadata and dependency resolution to select
the correct modules. Again, reducing duplication.

A major motivation for this is the upcoming CentOS Stream 8 EOL where
the repositories will be archived. This new repository structure allows
easy switching to another Enterprise Linux for repoclosure checks.

This needs a different approach in how we configure repoclosure in obal
and the wrapper scripts should probably live in another repository as
well. Another excercise is the EL7 repoclosure check.
@ekohl ekohl force-pushed the rpm/develop-improve-repos branch from d1746d1 to 486bb75 Compare May 31, 2024 10:43
@ekohl
Copy link
Member Author

ekohl commented May 31, 2024

Rebased to resolve conflicts. I've also opened #10869 for the first commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant