Bug 1300792

Summary: python2-crypto is attempting to replace (obsolete) python-crypto from CentOS Extras
Product: [Fedora] Fedora EPEL Reporter: Robert Cooper <racooper>
Component: python-cryptoAssignee: Paul Howarth <paul>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: athmanem, bstinson, infra-sig, kevin, paul, s.adam
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-01-22 15:29:15 UTC 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:

Description Robert Cooper 2016-01-21 17:44:29 UTC
Description of problem:
python2-crypto from EPEL 7 is attempting to obsolete python-crypto from CentOS Extras repo.  Not normal expected behavior.

CentOS 7 Extras:

Name        : python-crypto
Arch        : x86_64
Version     : 2.6.1
Release     : 1.el7.centos
Size        : 2.3 M
Repo        : installed
From repo   : extras
Summary     : Cryptography library for Python
URL         : http://www.pycrypto.org/
License     : Public Domain and Python
Description : PyCrypto is a collection of both secure hash functions (such as MD5 and
            : SHA), and various encryption algorithms (AES, DES, RSA, ElGamal, etc.).


EPEL 7:

Name        : python2-crypto
Arch        : x86_64
Version     : 2.6.1
Release     : 9.el7
Size        : 475 k
Repo        : epel/x86_64
Summary     : Cryptography library for Python 2
URL         : http://www.pycrypto.org/
License     : Public Domain and Python
Description : PyCrypto is a collection of both secure hash functions (such as MD5 and
            : SHA), and various encryption algorithms (AES, DES, RSA, ElGamal, etc.).
            : 
            : This is the Python 2 build of the package.

Comment 1 Kevin Fenzi 2016-01-21 19:06:36 UTC
Moving to python-crypto component and adding paul since he made the changes that caused this. :)

Comment 2 Paul Howarth 2016-01-22 08:21:38 UTC
Why is this not normal expected behavior? EPEL's conflicting packages policy (https://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#Policy_for_Conflicting_Packages) only states that packages in the base RHEL channels can't be replaced by EPEL packages. I wasn't aware that there was any policy regarding CentOS Extras.

Looking at the original CentOS Extras package, it appears to be a clone (same spec) as the previous python-crypto release in EPEL, so any update I did of the python-cyrpto package in EPEL (e.g. for a security fix) would also have replaced the CentOS Extras package. I modernized the spec to use the now-standard python{2,3}- naming when adding Python3 support, and that resulted in the provides/obsoletes to replace the previous python-crypto package in EPEL. Given that the CentOS Extras package was identical to the EPEL one, I would say that its obsoletion was the intended result.

Is there any technical issue with the new package not working in exactly the same way as the old one?

If it's just a policy issue at your site that you want CentOS Extras packages to prevail over EPEL packages, that might be best done via some protection mechanism in yum. I suspect that many other packages in EPEL could potentially replace CentOS Extras ones, given that there's no policy I'm aware of that forbids them to do so.

Comment 3 Robert Cooper 2016-01-22 15:29:15 UTC
I'm not saying at all that there is a functionality issue or a policy issue, I just haven't come across a case of an EPEL package replacing a system provided package (even from extras) before. I wasn't sure if this was an actual bug, an oversight, or something to be concerned about at all.  I opened the ticket so that the issue would be documented. I appreciate your explanation, and will bring it up with CentOS as well.

Comment 4 Brian Stinson 2016-01-22 16:19:39 UTC
Some background: python-crypto was added into CentOS-Extras to bootstrap some dependencies for some of our build tools. We plan on tracking the EPEL packages for these dependencies in CentOS-Extras (for our developers who choose to not have EPEL enabled).

EPEL is not restricted by policy from updating packages in CentOS-Extras.

Comment 5 Paul Howarth 2016-01-22 17:31:51 UTC
Good to know, thanks.