Bug 1042882

Summary: Potential issues caused by non-namespaced RPM provides and libraries
Product: Red Hat Software Collections Reporter: Honza Horak <hhorak>
Component: pythonAssignee: Python Maintainers <python-maint>
Status: CLOSED WONTFIX QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: python27CC: bkabrda
Target Milestone: ---   
Target Release: 2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-09 08:02:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1042837    

Description Honza Horak 2013-12-13 14:56:25 UTC
Collection python27 seems to provide unprefixed RPM providers, which can be also caused by shipping the same libraries as could be shipped outside of SCL environment. Refer to tracker bug #1042837 for more info why this can be problem and check/fix all suspicious provides, please.

General discussions about the issues and why unprefixed symbols/libraries are problem should take place in the tracker bug #1042837.

Components checked for collection python27:
python27
python27-babel
python27-build
python27-mod_wsgi
python27-MySQL-python
python27-numpy
python27-numpy-f2py
python27-python
python27-python-babel
python27-python-bson
python27-python-coverage
python27-python-debug
python27-python-devel
python27-python-docutils
python27-python-jinja2
python27-python-libs
python27-python-markupsafe
python27-python-nose
python27-python-nose-docs
python27-python-psycopg2
python27-python-psycopg2-doc
python27-python-pygments
python27-python-pymongo
python27-python-pymongo-gridfs
python27-python-setuptools
python27-python-simplejson
python27-python-six
python27-python-sphinx
python27-python-sphinx-doc
python27-python-sqlalchemy
python27-python-test
python27-python-tools
python27-python-virtualenv
python27-python-werkzeug
python27-python-werkzeug-doc
python27-runtime
python27-scipy
python27-suitesparse
python27-suitesparse-devel
python27-suitesparse-doc
python27-suitesparse-static
python27-tbb
python27-tbb-devel
python27-tbb-doc
python27-tkinter

Potential problems found in collection python27 by components:
-----------------------------------------------------------------
Suspicious provides for package python27-mod_wsgi
mod_wsgi.so()(64bit)

Suspicious provides for package python27-MySQL-python
_mysql.so()(64bit)

Suspicious provides for package python27-numpy
_capi.so()(64bit)
_compiled_base.so()(64bit)
_dotblas.so()(64bit)
_dummy.so()(64bit)
fftpack_lite.so()(64bit)
lapack_lite.so()(64bit)
mtrand.so()(64bit)
multiarray.so()(64bit)
multiarray_tests.so()(64bit)
scalarmath.so()(64bit)
umath.so()(64bit)
umath_tests.so()(64bit)

Suspicious provides for package python27-python-debug
_bisectmodule_d.so()(64bit)
_bsddb_d.so()(64bit)
_codecs_cn_d.so()(64bit)
_codecs_hk_d.so()(64bit)
_codecs_iso2022_d.so()(64bit)
_codecs_jp_d.so()(64bit)
_codecs_kr_d.so()(64bit)
_codecs_tw_d.so()(64bit)
_collectionsmodule_d.so()(64bit)
_cryptmodule_d.so()(64bit)
_csv_d.so()(64bit)
_ctypes_d.so()(64bit)
_ctypes_test_d.so()(64bit)
_curses_d.so()(64bit)
_curses_panel_d.so()(64bit)
_elementtree_d.so()(64bit)
_functoolsmodule_d.so()(64bit)
_hashlib_d.so()(64bit)
_heapq_d.so()(64bit)
_hotshot_d.so()(64bit)
_io_d.so()(64bit)
_json_d.so()(64bit)
_localemodule_d.so()(64bit)
_lsprof_d.so()(64bit)
_multibytecodecmodule_d.so()(64bit)
_multiprocessing_d.so()(64bit)
_randommodule_d.so()(64bit)
_socketmodule_d.so()(64bit)
_sqlite3_d.so()(64bit)
_ssl_d.so()(64bit)
_struct_d.so()(64bit)
_testcapimodule_d.so()(64bit)
_tkinter_d.so()(64bit)
arraymodule_d.so()(64bit)
audioop_d.so()(64bit)
binascii_d.so()(64bit)
bz2_d.so()(64bit)
cPickle_d.so()(64bit)
cStringIO_d.so()(64bit)
cmathmodule_d.so()(64bit)
datetime_d.so()(64bit)
dbm_d.so()(64bit)
dlmodule_d.so()(64bit)
fcntlmodule_d.so()(64bit)
future_builtins_d.so()(64bit)
gdbmmodule_d.so()(64bit)
grpmodule_d.so()(64bit)
imageop_d.so()(64bit)
itertoolsmodule_d.so()(64bit)
libpython2.7_d.so.1.0()(64bit)
linuxaudiodev_d.so()(64bit)
math_d.so()(64bit)
mmapmodule_d.so()(64bit)
nismodule_d.so()(64bit)
operator_d.so()(64bit)
ossaudiodev_d.so()(64bit)
parsermodule_d.so()(64bit)
pyexpat_d.so()(64bit)
readline_d.so()(64bit)
resource_d.so()(64bit)
selectmodule_d.so()(64bit)
spwdmodule_d.so()(64bit)
stropmodule_d.so()(64bit)
syslog_d.so()(64bit)
termios_d.so()(64bit)
timemodule_d.so()(64bit)
timingmodule_d.so()(64bit)
unicodedata_d.so()(64bit)
xxsubtype_d.so()(64bit)
zlibmodule_d.so()(64bit)

Suspicious provides for package python27-python-libs
_bisectmodule.so()(64bit)
_bsddb.so()(64bit)
_codecs_cn.so()(64bit)
_codecs_hk.so()(64bit)
_codecs_iso2022.so()(64bit)
_codecs_jp.so()(64bit)
_codecs_kr.so()(64bit)
_codecs_tw.so()(64bit)
_collectionsmodule.so()(64bit)
_cryptmodule.so()(64bit)
_csv.so()(64bit)
_ctypes.so()(64bit)
_curses.so()(64bit)
_curses_panel.so()(64bit)
_elementtree.so()(64bit)
_functoolsmodule.so()(64bit)
_hashlib.so()(64bit)
_heapq.so()(64bit)
_hotshot.so()(64bit)
_io.so()(64bit)
_json.so()(64bit)
_localemodule.so()(64bit)
_lsprof.so()(64bit)
_multibytecodecmodule.so()(64bit)
_multiprocessing.so()(64bit)
_randommodule.so()(64bit)
_socketmodule.so()(64bit)
_sqlite3.so()(64bit)
_ssl.so()(64bit)
_struct.so()(64bit)
arraymodule.so()(64bit)
audioop.so()(64bit)
binascii.so()(64bit)
bz2.so()(64bit)
cPickle.so()(64bit)
cStringIO.so()(64bit)
cmathmodule.so()(64bit)
datetime.so()(64bit)
dbm.so()(64bit)
dlmodule.so()(64bit)
fcntlmodule.so()(64bit)
future_builtins.so()(64bit)
gdbmmodule.so()(64bit)
grpmodule.so()(64bit)
imageop.so()(64bit)
itertoolsmodule.so()(64bit)
libpython2.7.so.1.0()(64bit)
linuxaudiodev.so()(64bit)
math.so()(64bit)
mmapmodule.so()(64bit)
nismodule.so()(64bit)
operator.so()(64bit)
ossaudiodev.so()(64bit)
parsermodule.so()(64bit)
pyexpat.so()(64bit)
readline.so()(64bit)
resource.so()(64bit)
selectmodule.so()(64bit)
spwdmodule.so()(64bit)
stropmodule.so()(64bit)
syslog.so()(64bit)
termios.so()(64bit)
timemodule.so()(64bit)
timingmodule.so()(64bit)
unicodedata.so()(64bit)
xxsubtype.so()(64bit)
zlibmodule.so()(64bit)

Suspicious provides for package python27-python-markupsafe
_speedups.so()(64bit)

Suspicious provides for package python27-python-psycopg2
_psycopg.so()(64bit)

Suspicious provides for package python27-python-simplejson
_speedups.so()(64bit)

Suspicious provides for package python27-python-sqlalchemy
cprocessors.so()(64bit)
cresultproxy.so()(64bit)

Suspicious provides for package python27-python-test
_ctypes_test.so()(64bit)
_testcapimodule.so()(64bit)

Suspicious provides for package python27-scipy
__odrpack.so()(64bit)
__umfpack.so()(64bit)
_arpack.so()(64bit)
_bsr.so()(64bit)
_cblas.so()(64bit)
_clapack.so()(64bit)
_cobyla.so()(64bit)
_coo.so()(64bit)
_csc.so()(64bit)
_csgraph.so()(64bit)
_csr.so()(64bit)
_dia.so()(64bit)
_distance_wrap.so()(64bit)
_dop.so()(64bit)
_fblas.so()(64bit)
_fftpack.so()(64bit)
_fitpack.so()(64bit)
_flapack.so()(64bit)
_flinalg.so()(64bit)
_hierarchy_wrap.so()(64bit)
_interpolate.so()(64bit)
_iterative.so()(64bit)
_lbfgsb.so()(64bit)
_min_spanning_tree.so()(64bit)
_minpack.so()(64bit)
_nd_image.so()(64bit)
_nnls.so()(64bit)
_odepack.so()(64bit)
_quadpack.so()(64bit)
_rank.so()(64bit)
_shortest_path.so()(64bit)
_slsqp.so()(64bit)
_spectral.so()(64bit)
_superlu.so()(64bit)
_tools.so()(64bit)
_traversal.so()(64bit)
_ufuncs.so()(64bit)
_ufuncs_cxx.so()(64bit)
_vq.so()(64bit)
_zeros.so()(64bit)
calc_lwork.so()(64bit)
cblas.so()(64bit)
ckdtree.so()(64bit)
clapack.so()(64bit)
convolve.so()(64bit)
dfitpack.so()(64bit)
fblas.so()(64bit)
flapack.so()(64bit)
futil.so()(64bit)
interpnd.so()(64bit)
lsoda.so()(64bit)
minpack2.so()(64bit)
mio5_utils.so()(64bit)
mio_utils.so()(64bit)
moduleTNC.so()(64bit)
mvn.so()(64bit)
qhull.so()(64bit)
sigtools.so()(64bit)
specfun.so()(64bit)
spline.so()(64bit)
statlib.so()(64bit)
streams.so()(64bit)
vode.so()(64bit)
vonmises_cython.so()(64bit)

Suspicious provides for package python27-suitesparse
libamd.so.2()(64bit)
libbtf.so.1()(64bit)
libcamd.so.2()(64bit)
libccolamd.so.2()(64bit)
libcholmod.so.2()(64bit)
libcolamd.so.2()(64bit)
libcxsparse.so.3()(64bit)
libklu.so.1()(64bit)
libldl.so.2()(64bit)
librbio.so.2()(64bit)
libspqr.so.1()(64bit)
libsuitesparseconfig.so.4()(64bit)
libumfpack.so.5()(64bit)

Suspicious provides for package python27-tbb
libtbb.so.2()(64bit)
libtbbmalloc.so.2()(64bit)
libtbbmalloc_proxy.so.2()(64bit)

Suspicious provides for package python27-tbb-devel
pkgconfig(tbb) = 4.1.3
pkgconfig(tbbmalloc) = 4.1.3
pkgconfig(tbbmalloc_proxy) = 4.1.3

Suspicious provides for package python27-tkinter
_tkinter.so()(64bit)

Comment 2 Marcela Mašláňová 2013-12-18 11:18:15 UTC
Please, apply for libraries like libperl.so, libruby.so, libv8.so prefix, as documented in http://docs.fedoraproject.org/en-US/Fedora_Contributor_Documentation/1/html/Software_Collections_Guide/sect-Prefixing_the_Library_Major_soname_with_the_Collection_Name.html.

Comment 3 Bohuslav "Slavek" Kabrda 2013-12-18 14:37:26 UTC
Ok, so out of these, there are some provides that might theoretically be problematic:

Suspicious provides for package python27-python-debug
libpython2.7_d.so.1.0()(64bit)

Suspicious provides for package python27-python-libs
libpython2.7.so.1.0()(64bit)

Suspicious provides for package python27-suitesparse
libamd.so.2()(64bit)
libbtf.so.1()(64bit)
libcamd.so.2()(64bit)
libccolamd.so.2()(64bit)
libcholmod.so.2()(64bit)
libcolamd.so.2()(64bit)
libcxsparse.so.3()(64bit)
libklu.so.1()(64bit)
libldl.so.2()(64bit)
librbio.so.2()(64bit)
libspqr.so.1()(64bit)
libsuitesparseconfig.so.4()(64bit)
libumfpack.so.5()(64bit)

Suspicious provides for package python27-tbb
libtbb.so.2()(64bit)
libtbbmalloc.so.2()(64bit)
libtbbmalloc_proxy.so.2()(64bit)

Suspicious provides for package python27-tbb-devel
pkgconfig(tbb) = 4.1.3
pkgconfig(tbbmalloc) = 4.1.3
pkgconfig(tbbmalloc_proxy) = 4.1.3


So this will require patching python27-python, python27-suitesparse and python27-tbb (only the first one applies to RHEL 7).
Because of changing the libpython.so provide, all of python binary extension packages will need to be rebuilt (all of these apply to RHEL 7, too). That means 12 packages:
python27-MySQL-python
python27-mod_wsgi
python27-numpy
python27-python
python27-python-coverage
python27-python-libs
python27-python-markupsafe
python27-python-psycopg2
python27-python-pymongo
python27-python-simplejson
python27-python-sqlalchemy
python27-scipy

Comment 5 Bohuslav "Slavek" Kabrda 2015-01-09 08:02:48 UTC
This won't get fixed in python27, since it has a potential of breaking customer builds depending on the SCL. Since none of these potential problems caused any real world issues, we will only tackle this in newly introduced SCLs.