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

CentOS-Stream-8/9 dependency fixes - backport to b0.71 #2896

Conversation

ndokos
Copy link
Member

@ndokos ndokos commented Jun 14, 2022

Centos-Stream-8/9: change the 'ansible' dependency to 'ansible-core'.
Everybody else (at least for now) can get its hands on an 'ansible'
package (EPEL packages it for RHEL: it has a dependency on
'ansible-core' and includes some curated roles).

Centos-Stream-8/9: change the 'ansible' dependency to 'ansible-core'.
Everybody else (at least for now) can get its hands on an 'ansible'
package (EPEL packages it for RHEL: it has a dependency on
'ansible-core' and includes some curated roles).
@ndokos ndokos added Agent packaging Issues related to software packaging Installation labels Jun 14, 2022
@ndokos ndokos added this to the v0.71 milestone Jun 14, 2022
@ndokos ndokos requested a review from portante June 14, 2022 20:10
@ndokos ndokos self-assigned this Jun 14, 2022
@ndokos ndokos requested a review from webbnh June 14, 2022 22:18
webbnh
webbnh previously approved these changes Jun 15, 2022
Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

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

Looks good -- I'm glad the mysteries have been solved!

(I found a few nits, and perhaps you could strengthen a couple of the comments.)

agent/rpm/pbench-agent.spec.j2 Outdated Show resolved Hide resolved
agent/rpm/pbench-agent.spec.j2 Outdated Show resolved Hide resolved
agent/rpm/pbench-agent.spec.j2 Show resolved Hide resolved
Copy link
Member

@webbnh webbnh left a comment

Choose a reason for hiding this comment

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

👍

ndokos added a commit that referenced this pull request Jun 15, 2022
* CentOS-Stream-8/9 dependency fixes

Centos-Stream-8/9: change the 'ansible' dependency to 'ansible-core'.
Everybody else (at least for now) can get its hands on an 'ansible'
package (EPEL packages it for RHEL: it has a dependency on
'ansible-core' and includes some curated roles).

* Fixes from review comments on companion PR #2896
@ndokos ndokos merged commit 133c2c3 into distributed-system-analysis:b0.71 Jun 16, 2022
@ndokos ndokos deleted the centos-stream-dependency-backport branch June 16, 2022 01:22
ndokos added a commit to ndokos/pbench that referenced this pull request Jun 17, 2022
This reverts PR distributed-system-analysis#2893 (and its backport to b0.71 distributed-system-analysis#2896).

Simplify the ansible and python dependencies as much as possible.

For ansible:

- RHEL7 has only an `ansible' package available from EPEL.
- Everything else (RHEL8, RHEL9, CentOS-Stream-8, CentOS-Stream-9,
  Fedora 35 and Fedora 36) have `ansible-core' available from the
  standard distro repos. That's all we need for our purposes.

We add `ansible' as a RHEL8 dependency and `ansible-core' as a
dependency for everything else.

For python, it is more complicated:

- RHEL7, RHEL9, CentOS-Stream-9 and the Fedoras have a `python3'
  package available from the standard distro repos. The actual version
  varies by distro: 3.6 for RHEL7, 3.9.10 for RHEL9/CentOS-Stream-9,
  3.10.0-1 for Fedora 35, 3.10.4-1 for Fedora 36.

- RHEL8 and CentOS-Stream-8 have python36, python38 and python39
  packages available through the module system.

We use the generic `python3' package on most distros, and standardize
on `python38' for RHEL8/CentOS-Stream-8.

In addition, there is a little refactoring (e.g. `python3-pip' is a
common dependency, so it is made unconditional; as a different
example, I pulled out the RHEL8 python3-click dependency, in order to
allow the rest to be shared between RHEL/CentOS8 and RHEL/CentOS9 -
that leaves `python3-click' sticking out however). There are probably
more opportunities for such refactoring, but I have not attempted them
here.
ndokos added a commit to ndokos/pbench that referenced this pull request Jun 17, 2022
This reverts PR distributed-system-analysis#2893 (and its backport to b0.71 distributed-system-analysis#2896).

Simplify the ansible and python dependencies as much as possible.

For ansible:

- RHEL7 has only an `ansible' package available from EPEL.
- Everything else (RHEL8, RHEL9, CentOS-Stream-8, CentOS-Stream-9,
  Fedora 35 and Fedora 36) have `ansible-core' available from the
  standard distro repos. That's all we need for our purposes.

We add `ansible' as a RHEL8 dependency and `ansible-core' as a
dependency for everything else.

For python, it is more complicated:

- RHEL7, RHEL9, CentOS-Stream-9 and the Fedoras have a `python3'
  package available from the standard distro repos. The actual version
  varies by distro: 3.6 for RHEL7, 3.9.10 for RHEL9/CentOS-Stream-9,
  3.10.0-1 for Fedora 35, 3.10.4-1 for Fedora 36.

- RHEL8 and CentOS-Stream-8 have python36, python38 and python39
  packages available through the module system.

We use the generic `python3' package on most distros, and standardize
on `python38' for RHEL8/CentOS-Stream-8.

In addition, there is a little refactoring (e.g. `python3-pip' is a
common dependency, so it is made unconditional; as a different
example, I pulled out the RHEL8 python3-click dependency, in order to
allow the rest to be shared between RHEL/CentOS8 and RHEL/CentOS9 -
that leaves `python3-click' sticking out however). There are probably
more opportunities for such refactoring, but I have not attempted them
here.
ndokos added a commit to ndokos/pbench that referenced this pull request Jun 24, 2022
This effectively reverts PR distributed-system-analysis#2893 (and its backport to b0.71 distributed-system-analysis#2896).

Simplify the python dependencies as much as possible:

- RHEL7, RHEL9, CentOS-Stream-9 and the Fedoras have a `python3'
  package available from the standard distro repos. The actual version
  varies by distro: 3.6 for RHEL7, 3.9.10 for RHEL9/CentOS-Stream-9,
  3.10.0-1 for Fedora 35, 3.10.4-1 for Fedora 36.

- RHEL8 and CentOS-Stream-8 have python36, python38 and python39
  packages available through the module system.

We use the generic `python3' package on most distros, and standardize
on `python38' for RHEL8/CentOS-Stream-8. That is mostly treated using
a jinja2 loop and a (new) target.json file that generates the separate
conditionals for RHEL/CentOS Stream 8 on one hand and the rest on the
other.

Unfortunately, I had to treat RHEL7 separately from the rest because
it is missing a python cffi package that all the others have. I haven't
found a clean way to deal with that in jinja2, so it is an explicit
RPM conditional in the spec file.

Also, the Fedoras are treated separately, at least for now.

I am testing by setting the release in subscription-manager now
(wherever possible: there is no 7.9 release which I don't understand -
this needs investigation - and there is no 9.1 release yet which is
understandable.

However, that means that RHEL 8.4 and 8.5 have an `ansible' package
and 8.6 has an `ansible-core' package available. I've hard-coded
`ansible-core' in the spec file (except on RHEL7) which breaks the
installation on 8.4 and 8.5. I don't know how to deal with this problem.
ndokos added a commit to ndokos/pbench that referenced this pull request Jun 24, 2022
This effectively reverts PR distributed-system-analysis#2893 (and its backport to b0.71 distributed-system-analysis#2896).

Simplify the python dependencies as much as possible:

- RHEL7, RHEL9, CentOS-Stream-9 and the Fedoras have a `python3'
  package available from the standard distro repos. The actual version
  varies by distro: 3.6 for RHEL7, 3.9.10 for RHEL9/CentOS-Stream-9,
  3.10.0-1 for Fedora 35, 3.10.4-1 for Fedora 36.

- RHEL8 and CentOS-Stream-8 have python36, python38 and python39
  packages available through the module system.

We use the generic `python3' package on most distros, and standardize
on `python38' for RHEL8/CentOS-Stream-8. That is mostly treated using
a jinja2 loop and a (new) target.json file that generates the separate
conditionals for RHEL/CentOS Stream 8 on one hand and the rest on the
other.

Unfortunately, I had to treat RHEL7 separately from the rest because
it is missing a python cffi package that all the others have. I haven't
found a clean way to deal with that in jinja2, so it is an explicit
RPM conditional in the spec file.

Also, the Fedoras are treated separately, at least for now.

I am testing by setting the release in subscription-manager now
(wherever possible: there is no 7.9 release which I don't understand -
this needs investigation - and there is no 9.1 release yet which is
understandable).

However, that means that RHEL 8.4 and 8.5 have an `ansible' package
and 8.6 has an `ansible-core' package available. I've hard-coded
`ansible-core' in the spec file (except on RHEL7) which breaks the
installation on 8.4 and 8.5. I don't know how to deal with this problem.

Modify dockerfile to enable python39.  Since we standardized on
python39 for CentOS-Stream-8, we enable that module here and stop
worrying about python36.
ndokos added a commit to ndokos/pbench that referenced this pull request Jun 24, 2022
This effectively reverts PR distributed-system-analysis#2893 (and its backport to b0.71 distributed-system-analysis#2896).

Simplify the python dependencies as much as possible:

- RHEL7, RHEL9, CentOS-Stream-9 and the Fedoras have a `python3'
  package available from the standard distro repos. The actual version
  varies by distro: 3.6 for RHEL7, 3.9.10 for RHEL9/CentOS-Stream-9,
  3.10.0-1 for Fedora 35, 3.10.4-1 for Fedora 36.

- RHEL8 and CentOS-Stream-8 have python36, python38 and python39
  packages available through the module system.

We use the generic `python3' package on most distros, and standardize
on `python39' for RHEL8/CentOS-Stream-8. That is mostly treated using
a jinja2 loop and a (new) target.json file that generates the separate
conditionals for RHEL/CentOS Stream 8 on one hand and the rest on the
other.

Unfortunately, I had to treat RHEL7 separately from the rest because
it is missing a python cffi package that all the others have. I haven't
found a clean way to deal with that in jinja2, so it is an explicit
RPM conditional in the spec file.

Also, the Fedoras are treated separately, at least for now.

I am testing by setting the release in subscription-manager now
(wherever possible: there is no 7.9 release which I don't understand -
this needs investigation - and there is no 9.1 release yet which is
understandable).

However, that means that RHEL 8.4 and 8.5 have an `ansible' package
and 8.6 has an `ansible-core' package available. I've hard-coded
`ansible-core' in the spec file (except on RHEL7) which breaks the
installation on 8.4 and 8.5. I don't know how to deal with this problem.

Modify dockerfile to enable python39.  Since we standardized on
python39 for CentOS-Stream-8, we enable that module here and stop
worrying about python36.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Agent Installation packaging Issues related to software packaging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants