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

Rebase libsolv and add epoch #863

Open
wants to merge 6 commits into
base: rpm/develop
Choose a base branch
from

Conversation

pcreech
Copy link
Member

@pcreech pcreech commented Jan 23, 2024

No description provided.

@pcreech pcreech changed the title Rebase libsolv and add epoch [WIP] Rebase libsolv and add epoch Jan 23, 2024
@@ -1,60 +1,59 @@
%global python3_pkgversion 3.11
Copy link
Member

Choose a reason for hiding this comment

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

Do we really need to drop the python 3.11 bindings?

Copy link
Member Author

Choose a reason for hiding this comment

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

we probably want to keep it even :D Hence why I [wip] 'ed it

I did the initial copy over, but have not had a chance to update it to also build for python 3.11

* Mon Nov 20 2023 Patrick Creech <pcreech@redhat.com> - 0.7.22-6
- Obsolete python39-libsolv as well
* Mon Jan 22 2024 Patrick Creech <pcreech@redhat.com> - 1:0.7.20-6
- Rebase libsolv and add epoc
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- Rebase libsolv and add epoc
- Rebase libsolv and add epoch

Comment on lines 51 to 39
Version: 0.7.22
Version: 0.7.20
Copy link
Member

Choose a reason for hiding this comment

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

Why are we downgrading things?

Copy link
Member

Choose a reason for hiding this comment

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

additionally: how are we going to handle EL9 which ships libsolv-0.7.24 today.

Copy link
Member

@evgeni evgeni Feb 20, 2024

Choose a reason for hiding this comment

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

and what about https://github.com/pulp/pulp_rpm/blob/main/requirements.txt#L7 (this has been true since pulp_rpm 3.17, which is pulpcore 3.16+)

Copy link
Member Author

Choose a reason for hiding this comment

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

I have confirmed with pulp that while the requirements.txt for pip is 0.7.21, the functionality required should be back-ported into the OS provided libsolv. We should be able to modify that requirements.txt via spec to loosen the requirement. (it's not exactly true in a purely upstream pip installed context, hence the need for spec modificaiton).

Ideally, we should probably stop shipping libsolv on el9. Revert back to using system libsolv, and only ship 3.11 bindings for it. As far as "how", i'm not entirely sure. I need to do a little research in this space.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, if we can avoid building the lib and only do the bindings, that'd be awesome.
But the last time I looked at this, I ran away pretty quickly, as the bindings are essentially generated from the lib source and you can't build them w/o the lib (or, if you build both and only ship the bindings, who the hell guarantees that the lib from the OS and the bindings from the lib you don't ship actually match up)

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok, so after some research and some help from fedora-devel matrix channel, we can build the python binding in a statically linked way. I played around with this locally, and it also appears to be the way solv is distributed by pypi. Therefore it won't override system libsolv, but won't use it either. Meaning we can safely decouple from system libsolv, unless we have good reason to keep it coupled.

Copy link
Member

Choose a reason for hiding this comment

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

Ah, so you build a pythonX-solv that contains a copy of libsolv but that's only used inside the Python X context? Fair

Copy link
Member Author

Choose a reason for hiding this comment

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

Yup :D best way out of this mess I can figure out.

@pcreech
Copy link
Member Author

pcreech commented Feb 28, 2024

Still a little "WIP", but I think I have the strategy.

We introduce "libsolv" with an epoch, but otherwise 1-1 with system libsolv. This should fix the el8 issue. (still need to fix it to only build on el8)

We also introduce a 'python-solv' package for both el8 and el9, which provides a python3.11-solv. This should allow us to not be version locked with system libsolv, and keep us out of the game of dealing with an epoch on el9, and we can get out of this mess with libsolv when we drop el8.

@evgeni
Copy link
Member

evgeni commented Mar 12, 2024

So I briefly tested the EL9 python-solv package, and besides the wrong name, it seems to have a working python solv stack, without being linked to the system libsolv. Yay.

Just to unfuck my brain, the plan is to:

  • On EL8
    • Ship libsolv rebased on the version from EL8, but with an epoch to effectively force a downgrade from the version we currently have
    • Ship python3.11-solv built from the special sauce here
  • On EL9
    • Not ship any of the libsolv things (EL9 is newer than what we have today) [TODO: This is not what this PR does right now]
    • Ship python3.11-solv built from the special sauce here

Question: Would a version like 0.7.22+really+0.7.20 for libsolv on EL8 be of any benefit (I hate epochs), as it would allow Base EL to ship a 0.7.z with z>22 that will naturally upgrade from ours, eliminating our need to keep uptodate with EL patches (as that is what we're buying here).

@pcreech
Copy link
Member Author

pcreech commented Mar 21, 2024

Question: Would a version like 0.7.22+really+0.7.20 for libsolv on EL8 be of any benefit (I hate epochs), as it would allow Base EL to ship a 0.7.z with z>22 that will naturally upgrade from ours, eliminating our need to keep uptodate with EL patches (as that is what we're buying here).

Sadly, no. There is not a way to "upgrade" out of a module, and we are in the module at this point. I'm not a fan of epochs either, but this is kinda the reason they exist in RPM land, and translate better. We will never "upgrade" out of this state sadly.


Currently fleshing out the small updates, should be g2g soon

@pcreech pcreech changed the title [WIP] Rebase libsolv and add epoch Rebase libsolv and add epoch Mar 21, 2024
@pcreech
Copy link
Member Author

pcreech commented Mar 21, 2024

4051d18 will need to be removed once we are ready to merge. This commit is only to bypass the version/release check that keeps failing due to rebasing on a new version/release with epoc. It really doesn't like the release for some reason.

@Odilhao
Copy link
Member

Odilhao commented Mar 21, 2024

[rpm-copr test]

@pcreech pcreech force-pushed the libsolv-epoc branch 2 times, most recently from 202a039 to 4051d18 Compare March 21, 2024 19:12
Copy link
Member

@evgeni evgeni left a comment

Choose a reason for hiding this comment

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

python3-solv is still in the el9 comos, but should not?

There's got to be a way around this error
@evgeni
Copy link
Member

evgeni commented Apr 12, 2024

[test rpm-copr] as I have no idea why it failed and the logs are gone

@evgeni
Copy link
Member

evgeni commented Apr 12, 2024

el9 comps still contain ruby-solv and python3-solv.

@evgeni
Copy link
Member

evgeni commented Apr 12, 2024

aha, building libsolv on EL8 fails: error: line 145: Unknown tag: %python_provide: ERROR: python3-solv not recognized.

@pcreech
Copy link
Member Author

pcreech commented Apr 15, 2024

This PR will be superseded by two other PRs breaking the individual items apart.

python-solv - #938
libsolv - {}

@Odilhao
Copy link
Member

Odilhao commented Jul 31, 2024

Can we close this @pcreech ?

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.

None yet

4 participants