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

RFE: provide mechanism to ensure package X comes from repo Y #2584

Closed
miabbott opened this issue Feb 16, 2021 · 4 comments
Closed

RFE: provide mechanism to ensure package X comes from repo Y #2584

miabbott opened this issue Feb 16, 2021 · 4 comments

Comments

@miabbott
Copy link
Member

An idea that @cgwalters had in openshift/os#478 (comment)

Also I'd like to add first-class support to rpm-ostree for something like this in a treefile:

packages-query:
  - name: NetworkManager
    repo: rhaos-rhel-8

which would be like a YAML encoding that would compile down into libdnf/libsolv filtering to say that that package must come from the rpm-md repo named rhaos-rhel-8.

@jlebon
Copy link
Member

jlebon commented Feb 18, 2021

I was thinking this could make sense in lockfiles too, but having it in the treefile makes more sense in the end. That way it sits alongside the list of enabled repos.

@cgwalters
Copy link
Member

This one is almost a dup of #2326 but...we might want to do it separately from that.

@cgwalters
Copy link
Member

Another thing we could do here is:

packages-query:
   - name: stalld
     optional: true

This would make it a bit easier to handle situations like openshift/os#512

jlebon added a commit to jlebon/rpm-ostree that referenced this issue Apr 27, 2021
This addresses the server compose side of
coreos#2584.

One tricky bit is handling overrides across included treefiles (or
really, even within a single treefile): as usual, higher-level treefiles
should override lowel-level ones. Rust makes it pretty nice to handle.

For now this just supports a `repo` field, but one could imagine e.g.
`repos` (which takes an array of repoids instead), or e.g.
`exclude-repos`.

The actual core implementation otherwise is pretty straightforward.

This should help a lot in RHCOS where we currently use lots of
`exclude=` in repo files to get it to do what we want.

This is also a kind of a requirement for modularity support because as
soon as rpm-ostree becomes modules-aware, modular filtering logic will
break composes which assume rpm-ostree treats modular and non-modular
packages the same.
jlebon added a commit to jlebon/rpm-ostree that referenced this issue Apr 27, 2021
This addresses the server compose side of
coreos#2584.

One tricky bit is handling overrides across included treefiles (or
really, even within a single treefile): as usual, higher-level treefiles
should override lowel-level ones. Rust makes it pretty nice to handle.

For now this just supports a `repo` field, but one could imagine e.g.
`repos` (which takes an array of repoids instead), or e.g.
`exclude-repos`.

The actual core implementation otherwise is pretty straightforward.

This should help a lot in RHCOS where we currently use many `exclude=`
directives in repo files to get it to do what we want.

This is also kind of a requirement for modularity support because as
soon as rpm-ostree becomes modules-aware, modular filtering logic will
break composes which assume rpm-ostree treats modular and non-modular
packages the same.
jlebon added a commit to jlebon/rpm-ostree that referenced this issue Apr 28, 2021
This addresses the server compose side of
coreos#2584.

One tricky bit is handling overrides across included treefiles (or
really, even within a single treefile): as usual, higher-level treefiles
should override lowel-level ones. Rust makes it pretty nice to handle.

For now this just supports a `repo` field, but one could imagine e.g.
`repos` (which takes an array of repoids instead), or e.g.
`exclude-repos`.

The actual core implementation otherwise is pretty straightforward.

This should help a lot in RHCOS where we currently use many `exclude=`
directives in repo files to get it to do what we want.

This is also kind of a requirement for modularity support because as
soon as rpm-ostree becomes modules-aware, modular filtering logic will
break composes which assume rpm-ostree treats modular and non-modular
packages the same.
jlebon added a commit to jlebon/rpm-ostree that referenced this issue Apr 29, 2021
This addresses the server compose side of
coreos#2584.

One tricky bit is handling overrides across included treefiles (or
really, even within a single treefile): as usual, higher-level treefiles
should override lowel-level ones. Rust makes it pretty nice to handle.

For now this just supports a `repo` field, but one could imagine e.g.
`repos` (which takes an array of repoids instead), or e.g.
`exclude-repos`.

The actual core implementation otherwise is pretty straightforward.

This should help a lot in RHCOS where we currently use many `exclude=`
directives in repo files to get it to do what we want.

This is also kind of a requirement for modularity support because as
soon as rpm-ostree becomes modules-aware, modular filtering logic will
break composes which assume rpm-ostree treats modular and non-modular
packages the same.
jlebon added a commit to jlebon/rpm-ostree that referenced this issue Apr 29, 2021
This addresses the server compose side of
coreos#2584.

One tricky bit is handling overrides across included treefiles (or
really, even within a single treefile): as usual, higher-level treefiles
should override lowel-level ones. Rust makes it pretty nice to handle.

For now this just supports a `repo` field, but one could imagine e.g.
`repos` (which takes an array of repoids instead), or e.g.
`exclude-repos`.

The actual core implementation otherwise is pretty straightforward.

This should help a lot in RHCOS where we currently use many `exclude=`
directives in repo files to get it to do what we want.

This is also kind of a requirement for modularity support because as
soon as rpm-ostree becomes modules-aware, modular filtering logic will
break composes which assume rpm-ostree treats modular and non-modular
packages the same.
cgwalters pushed a commit that referenced this issue Apr 30, 2021
This addresses the server compose side of
#2584.

One tricky bit is handling overrides across included treefiles (or
really, even within a single treefile): as usual, higher-level treefiles
should override lowel-level ones. Rust makes it pretty nice to handle.

For now this just supports a `repo` field, but one could imagine e.g.
`repos` (which takes an array of repoids instead), or e.g.
`exclude-repos`.

The actual core implementation otherwise is pretty straightforward.

This should help a lot in RHCOS where we currently use many `exclude=`
directives in repo files to get it to do what we want.

This is also kind of a requirement for modularity support because as
soon as rpm-ostree becomes modules-aware, modular filtering logic will
break composes which assume rpm-ostree treats modular and non-modular
packages the same.
@jlebon
Copy link
Member

jlebon commented Jun 3, 2021

This was fixed by #2787 and is in the latest release.

@jlebon jlebon closed this as completed Jun 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants