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

Use el8/9 epel qpid proton 0.37.0+ #559

Merged
merged 1 commit into from
Jan 23, 2024

Conversation

jrafanie
Copy link
Member

@jrafanie jrafanie commented Dec 1, 2023

Undo #409 now that we're ready to use the upstream packages in el8 or el9 epel qpid proton 0.37.0+

To be merged with ManageIQ/manageiq#22271
Needed for ManageIQ/manageiq#22696

Followup: #560

Undo ManageIQ#409 now that
we're ready to use the upstream packages in el8 or el9 epel qpid proton 0.37.0+

To be merged with ManageIQ/manageiq#22271
Prerequisite to ManageIQ/manageiq#22698
Needed for ManageIQ/manageiq#22696
@Fryguy
Copy link
Member

Fryguy commented Dec 1, 2023

We might need something on appliance upgrade as well, since these are in kickstart.

@jrafanie
Copy link
Member Author

jrafanie commented Dec 1, 2023

We might need something on appliance upgrade as well, since these are in kickstart.

Good point. I'm not sure how to do that. I will need to ask @bdunne. I assume these commands write values in the /etc/yum.repos.d directory but will need to followup on the upgrade for this.

EDIT: Added #560 to track the upgrade.

@agrare
Copy link
Member

agrare commented Dec 1, 2023

I'm working on getting the proper qpid-proton-c package installed,

I can disable the exclude by adding the following to the manageiq-gemset spec

%pre gemset
# Disable the qpid-proton exclude and use the standard EPEL package
dnf config-manager --setopt=epel.exclude= --save

But that leaves qpid-proton-c as 0.30.0-2.el8 after the rpm install.

If I add a version requirement Requires: qpid-proton-c >= 0.37.0 then the dnf install fails because the manageiq-gemset%pre hasn't run yet.

If I manually run dnf config-manager --setopt=epel.exclude= --save then install the RPMs then the qpid-proton-c package is updated as expected

  Upgrading        : qpid-proton-c-0.37.0-1.el8.x86_64                                                                                     3/20 
  Running scriptlet: qpid-proton-c-0.37.0-1.el8.x86_64  

Obviously not ideal...

@Fryguy
Copy link
Member

Fryguy commented Dec 1, 2023

Is it possible to put the dnf config-manager --setopt=epel.exclude= --save in a package that would get installed first, or is there no guarantee to the order?

@agrare
Copy link
Member

agrare commented Dec 1, 2023

Package dependencies will guarantee the order but I think that DNF resolves the requirements before actually installing any package, but I can test it

@miq-bot
Copy link
Member

miq-bot commented Dec 4, 2023

Checked commit jrafanie@698465e with ruby 2.7.8, rubocop 1.56.3, haml-lint 0.51.0, and yamllint
0 files checked, 0 offenses detected
Everything looks fine. 👍

jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 8, 2023
Note, we still need to add it to ci.yaml and bump qpid_proton to 0.37.0
once the following work is done:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 8, 2023
Fixes an issue in their extension of ruby's URI library which
was broken when they used private class instance variable schemes which
is changed in ruby 3.1.

Fixed in 0.37.0 of qpid-proton:
apache/qpid-proton@6bcdfeb
apache/qpid-proton@ec535e7

Requires that qpid_proton can be packaged and upgraded as part of:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 8, 2023
Fixes an issue in their extension of ruby's URI library which
was broken when they used private class instance variable schemes which
is changed in ruby 3.1.

Fixed in 0.37.0 of qpid-proton:
apache/qpid-proton@6bcdfeb
apache/qpid-proton@ec535e7

Requires that qpid_proton can be packaged and upgraded as part of:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 18, 2023
Note, we still need to add it to ci.yaml and bump qpid_proton to 0.37.0
once the following work is done:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 18, 2023
Note, we still need to add it to ci.yaml and bump qpid_proton to 0.37.0
once the following work is done:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 18, 2023
Fixes an issue in their extension of ruby's URI library which
was broken when they used private class instance variable schemes which
is changed in ruby 3.1.

Fixed in 0.37.0 of qpid-proton:
apache/qpid-proton@6bcdfeb
apache/qpid-proton@ec535e7

Requires that qpid_proton can be packaged and upgraded as part of:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Dec 18, 2023
Fixes an issue in their extension of ruby's URI library which
was broken when they used private class instance variable schemes which
is changed in ruby 3.1.

Fixed in 0.37.0 of qpid-proton:
apache/qpid-proton@6bcdfeb
apache/qpid-proton@ec535e7

Requires that qpid_proton can be packaged and upgraded as part of:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
jrafanie added a commit to jrafanie/manageiq-rpm_build that referenced this pull request Jan 3, 2024
We'll need to drop the dnf epel exclude since it previously excluded qpid-proton.
Therefore, users will either need to run this manually or we'll provide a script
that will do it:

```
dnf config-manager --setopt=epel.exclude= --save
```

See the discussion in ManageIQ/manageiq-appliance-build#559 (comment)
jrafanie added a commit to jrafanie/manageiq that referenced this pull request Jan 3, 2024
Fixes an issue in their extension of ruby's URI library which
was broken when they used private class instance variable schemes which
is changed in ruby 3.1.

Fixed in 0.37.0 of qpid-proton:
apache/qpid-proton@6bcdfeb
apache/qpid-proton@ec535e7

Requires that qpid_proton can be packaged and upgraded as part of:
ManageIQ#22271
ManageIQ/manageiq-appliance-build#559
ManageIQ/manageiq-appliance-build#560
@Fryguy
Copy link
Member

Fryguy commented Jan 3, 2024

Is it possible to put the dnf config-manager --setopt=epel.exclude= --save in a package that would get installed first, or is there no guarantee to the order?

Package dependencies will guarantee the order but I think that DNF resolves the requirements before actually installing any package, but I can test it

This just got me thinking that it might be interesting to have an "installer" RPM. So you'd dnf upgrade the installer, then run the installer, which could run any "pre-install" steps, then it would run dnf upgrade on the rest. We were talking about having a script that the user could run beforehand, but this would simplify even that script step.

cc @bdunne

jrafanie added a commit to jrafanie/manageiq-rpm_build that referenced this pull request Jan 3, 2024
We'll need to drop the dnf epel exclude since it previously excluded qpid-proton.
Therefore, users will either need to run this manually or we'll provide a script
that will do it:

```
dnf config-manager --setopt=epel.exclude= --save
```

See the discussion in ManageIQ/manageiq-appliance-build#559 (comment)
@jrafanie
Copy link
Member Author

jrafanie commented Jan 3, 2024

This just got me thinking that it might be interesting to have an "installer" RPM. So you'd dnf upgrade the installer, then run the installer, which could run any "pre-install" steps, then it would run dnf upgrade on the rest. We were talking about having a script that the user could run beforehand, but this would simplify even that script step.

cc @bdunne

wouldn't you still have a dependency tree of

installer rpm
|
 \
  - manageiq-*
  |
  - manageiq-gemset
     \
      - qpid-proton-c >= 0.37.0

If manageiq* doesn't depend on the installer, you can upgrade the manageiq* rpms without the installer. I'm not sure how you'd force it to be in sync.

If you have the tree above, you can't resolve the qpid-proton-c dependency until you run the command to clear the dnf epel exclusion. I think it's a chicken and egg problem.

@Fryguy
Copy link
Member

Fryguy commented Jan 5, 2024

@jrafanie As discussed, no, the idea is the installer/upgrader rpm would be independent. Then any "special" pre-install stuff could be put in a script. In fact, since it's pre-install, we would also know what version we are coming from and can make different choices.

I will open a separate issue to discuss the details - this will be for radjabov anyway.

@bdunne bdunne merged commit 15ed008 into ManageIQ:master Jan 23, 2024
2 checks passed
@bdunne bdunne assigned bdunne and unassigned agrare Jan 23, 2024
@jrafanie jrafanie deleted the use_epel_qid_proton branch January 24, 2024 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants