Bug 1925103
| Summary: | [RFE] Leapp could give some clues to explain why a 3rd party package is removed | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Christophe Besson <cbesson> |
| Component: | leapp-repository | Assignee: | Leapp Notifications Bot <leapp-notifications-bot> |
| Status: | NEW --- | QA Contact: | upgrades-and-conversions |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | 7.9 | CC: | amepatil, dhjoshi, fkrska, jcastran, peter.vreman, podvody, pstodulk, rmetrich |
| Target Milestone: | rc | Keywords: | FutureFeature |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1818077, 1818088 | ||
This also impacts RedHat Signed packages of RHSCL, e.g. git2.27 The libssh2 is removed in RHEL8, but it is used by httpd24-libcurl that is then used by rh-git227-git-core |
Description of problem: Leapp indicates a 3rd party package will be removed without much details. Looking into the dependency of the package(s) in question, it appears it requires `groovy`, a package which has been removed in RHEL 8. Improving the warning could help / ease the user experience, as this kind of 3rd party can be the most important thing installed on the machine. Version-Release number of selected component (if applicable): leapp-repository-0.12.0-2.el7_9.noarch How reproducible: 100% Steps to Reproduce: 1. Create a fake package with a dependency which is removed during the DNF transaction 2. Run a leapp upgrade Actual results: "The following packages have not been signed by Red Hat and may be removed during the upgrade process in case Red Hat-signed packages to be removed during the upgrade depend on them" Expected results: The package %s has not been signed by Red Hat and may be removed during the upgrade process, due to its dependency to %s. Additional info: Just tried a basic and incomplete script (without recursion): ~~~ import rpm, json msg = "The package %s has not been signed by Red Hat and may be removed during the upgrade process, due to its dependency to %s" third_party = [] ts = rpm.TransactionSet() data = ts.dbMatch() for pkg in data: if pkg['vendor'] == 'Red Hat, Inc.' or 'gpg-pubkey' in pkg['name']: continue deps = [] for dep in pkg[rpm.RPMTAG_REQUIRENAME]: if '/' in dep or '(' in dep: continue deps.append(dep) third_party.append({"name": pkg['name'], "deps": deps}) with open('/etc/leapp/files/pes-events.json', 'r') as fh: pes = json.loads(fh.read()) for pkg in third_party: for dep in pkg['deps']: for x in pes['packageinfo']: if dep == x['in_packageset']['package'][0]['name'] \ and x['out_packageset'] is None: print(msg % (pkg['name'], dep)) break ~~~ ~~~ # rpm -q --requires empty /bin/bash bash groovy rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 # ./check.py The package empty has not been signed by Red Hat and may be removed during the upgrade process, due to its dependency to groovy ~~~