Skip to content

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 labels Jun 14, 2022
@ndokos ndokos requested a review from portante June 14, 2022 19:44
@ndokos ndokos self-assigned this Jun 14, 2022
@ndokos ndokos mentioned this pull request Jun 14, 2022
@ndokos ndokos added this to the v0.72 milestone Jun 14, 2022
@ndokos ndokos added Installation Audit Of and relating to server side changes to data and removed Audit Of and relating to server side changes to data labels Jun 14, 2022
npalaska
npalaska 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.

👍

@ndokos ndokos merged commit d8a7fdb into distributed-system-analysis:main Jun 15, 2022
@ndokos ndokos deleted the centos-stream-dependency branch June 15, 2022 18:43
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.
portante pushed a commit that referenced this pull request Jun 25, 2022
This effectively reverts PR #2893.

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 the base docker file to enable `python39`.  Since we standardized
on `python39` for CentOS-Stream-8, we enable that module 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.

4 participants