Bug 1042880 - Potential issues caused by non-namespaced RPM provides and libraries
Summary: Potential issues caused by non-namespaced RPM provides and libraries
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Software Collections
Classification: Red Hat
Component: perl
Version: rh-perl520
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 2.0
Assignee: perl-maint-list
QA Contact: Martin Kyral
URL:
Whiteboard:
Depends On:
Blocks: 1042837 1057175
TreeView+ depends on / blocked
 
Reported: 2013-12-13 14:56 UTC by Honza Horak
Modified: 2015-06-04 09:33 UTC (History)
2 users (show)

Fixed In Version: rh-perl520-2.0-6.el6,rh-perl520-mod_perl-2.0.8-5.20150122svn1653807.el6,rh-perl520-perl-5.20.1-321.el6,rh-perl520-perl-Algorithm-Diff-1.1903-1.el6,rh-perl520-perl-App-a2p-1.007-5.el6,rh-perl520-perl-App-find2perl-1.003-5.el6
Doc Type: Bug Fix
Doc Text:
Cause: Enabling software collections repository in the package manager. Consequence: Installing a Red Hat Enterprise Linux package could install some of the software collections packages instead of the true package from the Red Hat Enterprise package repository. As a result, the code provided by the Red Hat Enterprise Linux package might not work. Fix: All dependency symbols specific to the Perl software collections exported on the RPM level were mangled in order not to conflict with Red Hat Enterprise Linux packages. Result: Enabling software collection repository is safe and does not have influence on resolving dependencies among Red Hat Enterprise Linux packages.
Clone Of:
: 1057175 (view as bug list)
Environment:
Last Closed: 2015-06-04 09:33:52 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2015:1065 0 normal SHIPPED_LIVE new packages: rh-perl520 2015-06-04 13:24:47 UTC

Description Honza Horak 2013-12-13 14:56:06 UTC
Collection perl516 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 perl516:
perl516
perl516-build
perl516-mod_perl
perl516-mod_perl-devel
perl516-perl
perl516-perl-Archive-Extract
perl516-perl-Archive-Tar
perl516-perl-autodie
perl516-perl-B-Lint
perl516-perl-BSD-Resource
perl516-perl-Capture-Tiny
perl516-perl-Carp
perl516-perl-CGI
perl516-perl-Class-Inspector
perl516-perl-Class-Load
perl516-perl-Class-Load-XS
perl516-perl-Class-Singleton
perl516-perl-Clone
perl516-perl-Compress-Raw-Bzip2
perl516-perl-Compress-Raw-Zlib
perl516-perl-constant
perl516-perl-core
perl516-perl-CPAN
perl516-perl-CPAN-Meta
perl516-perl-CPAN-Meta-Requirements
perl516-perl-CPAN-Meta-YAML
perl516-perl-CPANPLUS
perl516-perl-CPANPLUS-Dist-Build
perl516-perl-Data-Dumper
perl516-perl-Data-OptList
perl516-perl-Data-Peek
perl516-perl-DateTime
perl516-perl-DateTime-Locale
perl516-perl-DateTime-TimeZone
perl516-perl-DBD-MySQL
perl516-perl-DBD-Pg
perl516-perl-DBD-SQLite
perl516-perl-DB_File
perl516-perl-DBI
perl516-perl-DBIx-Simple
perl516-perl-devel
perl516-perl-Devel-StackTrace
perl516-perl-Devel-Symdump
perl516-perl-Digest
perl516-perl-Digest-MD5
perl516-perl-Digest-SHA
perl516-perl-Dist-CheckConflicts
perl516-perl-Encode
perl516-perl-Encode-devel
perl516-perl-Env
perl516-perl-Exporter
perl516-perl-ExtUtils-CBuilder
perl516-perl-ExtUtils-Embed
perl516-perl-ExtUtils-Install
perl516-perl-ExtUtils-MakeMaker
perl516-perl-ExtUtils-Manifest
perl516-perl-ExtUtils-ParseXS
perl516-perl-FCGI
perl516-perl-File-CheckTree
perl516-perl-File-Copy-Recursive
perl516-perl-File-Fetch
perl516-perl-File-Path
perl516-perl-File-ShareDir
perl516-perl-File-Slurp
perl516-perl-File-Temp
perl516-perl-Filter
perl516-perl-Getopt-Long
perl516-perl-HTTP-Tiny
perl516-perl-Inline
perl516-perl-Inline-Files
perl516-perl-IO-Compress
perl516-perl-IO-String
perl516-perl-IO-Zlib
perl516-perl-IPC-Cmd
perl516-perl-IPC-Run3
perl516-perl-JSON-PP
perl516-perl-libs
perl516-perl-Linux-Pid
perl516-perl-List-MoreUtils
perl516-perl-Locale-Codes
perl516-perl-Locale-Maketext
perl516-perl-Locale-Maketext-Simple
perl516-perl-Log-Message
perl516-perl-Log-Message-Simple
perl516-perl-macros
perl516-perl-Module-Build
perl516-perl-Module-CoreList
perl516-perl-Module-Implementation
perl516-perl-Module-Load
perl516-perl-Module-Load-Conditional
perl516-perl-Module-Loaded
perl516-perl-Module-Metadata
perl516-perl-Module-Pluggable
perl516-perl-Module-Runtime
perl516-perl-Net-Daemon
perl516-perl-Number-Compare
perl516-perl-Object-Accessor
perl516-perl-Package-Anon
perl516-perl-Package-Constants
perl516-perl-Package-Generator
perl516-perl-Package-Stash
perl516-perl-Package-Stash-XS
perl516-perl-Params-Check
perl516-perl-Params-Util
perl516-perl-Params-Validate
perl516-perl-parent
perl516-perl-Parse-CPAN-Meta
perl516-perl-Parse-RecDescent
perl516-perl-PathTools
perl516-perl-Perl-OSType
perl516-perl-PlRPC
perl516-perl-Pod-Checker
perl516-perl-Pod-Coverage
perl516-perl-Pod-Escapes
perl516-perl-Pod-LaTeX
perl516-perl-podlators
perl516-perl-Pod-Parser
perl516-perl-Pod-Perldoc
perl516-perl-Pod-Simple
perl516-perl-Pod-Usage
perl516-perl-Probe-Perl
perl516-perl-Readonly
perl516-perl-Readonly-XS
perl516-perl-Scalar-List-Utils
perl516-perl-Socket
perl516-perl-Storable
perl516-perl-Sub-Exporter
perl516-perl-Sub-Install
perl516-perl-Sub-Name
perl516-perl-Sub-Uplevel
perl516-perl-Sys-Syslog
perl516-perl-Taint-Runtime
perl516-perl-Term-UI
perl516-perl-Test-CPAN-Meta
perl516-perl-Test-Fatal
perl516-perl-Test-Harness
perl516-perl-Test-NoWarnings
perl516-perl-Test-Output
perl516-perl-Test-Pod
perl516-perl-Test-Pod-Coverage
perl516-perl-Test-Requires
perl516-perl-tests
perl516-perl-Test-Script
perl516-perl-Test-Simple
perl516-perl-Test-Simple-tests
perl516-perl-Test-Taint
perl516-perl-Test-Tester
perl516-perl-Test-Warn
perl516-perl-Test-Without-Module
perl516-perl-Text-Glob
perl516-perl-Text-ParseWords
perl516-perl-Text-Soundex
perl516-perl-Text-Unidecode
perl516-perl-Thread-Queue
perl516-perl-threads
perl516-perl-threads-shared
perl516-perl-Tie-IxHash
perl516-perl-Time-HiRes
perl516-perl-Time-Local
perl516-perl-Time-Piece
perl516-perl-Tree-DAG_Node
perl516-perl-Try-Tiny
perl516-perl-version
perl516-perl-Version-Requirements
perl516-perl-YAML
perl516-runtime

Potential problems found in collection perl516 by components:
-----------------------------------------------------------------
Suspicious provides for package perl516-mod_perl
APR.so()(64bit)
Access.so()(64bit)
Base64.so()(64bit)
Brigade.so()(64bit)
Bucket.so()(64bit)
BucketAlloc.so()(64bit)
BucketType.so()(64bit)
CmdParms.so()(64bit)
Command.so()(64bit)
Connection.so()(64bit)
ConnectionUtil.so()(64bit)
Const.so()(64bit)
Date.so()(64bit)
Directive.so()(64bit)
Error.so()(64bit)
Filter.so()(64bit)
FilterRec.so()(64bit)
Finfo.so()(64bit)
Global.so()(64bit)
HookRun.so()(64bit)
IpSubnet.so()(64bit)
Log.so()(64bit)
MPM.so()(64bit)
Module.so()(64bit)
OS.so()(64bit)
PerlIO.so()(64bit)
Pool.so()(64bit)
Process.so()(64bit)
Provider.so()(64bit)
RequestIO.so()(64bit)
RequestRec.so()(64bit)
RequestUtil.so()(64bit)
Response.so()(64bit)
ServerRec.so()(64bit)
ServerUtil.so()(64bit)
SockAddr.so()(64bit)
Socket.so()(64bit)
Status.so()(64bit)
String.so()(64bit)
SubProcess.so()(64bit)
SubRequest.so()(64bit)
Table.so()(64bit)
URI.so()(64bit)
UUID.so()(64bit)
Util.so()(64bit)
mod_perl.so()(64bit)

Suspicious provides for package perl516-perl-CPAN
cpan = 1.9800

Suspicious provides for package perl516-perl-Package-Stash-XS
XS.so()(64bit)

Suspicious provides for package perl516-perl-Text-Soundex
Soundex.so()(64bit)

Comment 2 Petr Pisar 2013-12-16 08:46:26 UTC
These should be filtered by %perl_default_filter macro which uses %{perl_vendorarch} which comes from rpm system macros.

Comment 3 Marcela Mašláňová 2013-12-18 11:12:31 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 5 Marcela Mašláňová 2014-01-23 15:14:18 UTC
mod_perl solved by rebuild.

libperl.so must stay because we would create incompatibility between RHSCL-1.0 and RHSCL-1.1. The infix can be added in RHSCL-2.0.

Comment 6 Petr Pisar 2015-01-26 11:49:21 UTC
This will be addressed in rh-perl520. The collection-specific prefix or infix will be rh-perl520.

Comment 7 Petr Pisar 2015-01-26 14:20:15 UTC
This is current state for rh-perl520 on RHEL-6:

# repoquery --repoid=perl520add --requires rh-perl520\* | sort -u | grep -v -e 'rh-perl520'
db4-devel
gdbm-devel
glibc-devel
groff
libbz2.so.1()(64bit)
libcrypto.so.10()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libcrypt.so.1()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libdb-4.7.so()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libdl.so.2()(64bit)
libgdbm.so.2()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6()(64bit)
libmysqlclient.so.16(libmysqlclient_16)(64bit)
libmysqlclient.so.16()(64bit)
libnsl.so.1()(64bit)
libpq.so.5()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0()(64bit)
libresolv.so.2()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
librt.so.1()(64bit)
libsqlite3.so.0()(64bit)
libssl.so.10()(64bit)
libutil.so.1()(64bit)
libz.so.1(ZLIB_1.2.0.2)(64bit)
libz.so.1(ZLIB_1.2.0.8)(64bit)
libz.so.1(ZLIB_1.2.2.3)(64bit)
libz.so.1(ZLIB_1.2.2)(64bit)
libz.so.1()(64bit)
postgresql-server
rtld(GNU_HASH)
/sbin/ldconfig
scl-utils
scl-utils-build
systemtap-sdt-devel
/usr/bin/perl

# repoquery --repoid=perl520add --provides rh-perl520\* | sort -u | grep -v -e 'rh-perl520'

So the only suspicious dependency is a run-require on /usr/bin/perl. This comes from collection dependency generators (/usr/lib/rpm/perl.{prov,req}.stack). Unfortunately one needs to use system perl for generating the dependencies because the generators are run out of collection environment and of course they have to be available for building the collection perl interpreter itself.

Comment 9 Martin Kyral 2015-05-15 14:58:04 UTC
Bugfix verified. There are no non-namespaced provides:

# rpm -qa rh-perl520* --provides | sort -u | grep -v -e 'rh-perl520'
#

and the list of non-namespaced requires looks sane:

# rpm -qa rh-perl520* --requires | sort -u | grep -v -e 'rh-perl520'        
gdbm-devel
glibc-devel
groff
httpd24-httpd-devel(x86-64)
httpd24-httpd-mmn = 20120211x8664
libaprutil-1.so.0()(64bit)
libapr-1.so.0()(64bit)
libbz2.so.1()(64bit)
libcrypto.so.10()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libcrypt.so.1()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6()(64bit)
libdb-devel
libdb-5.3.so()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libdl.so.2()(64bit)
libexpat.so.1()(64bit)
libgdbm_compat.so.4()(64bit)
libgdbm.so.4()(64bit)
liblber-2.4.so.2()(64bit)
libldap_r-2.4.so.2()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6()(64bit)
libmysqlclient.so.18(libmysqlclient_18)(64bit)
libmysqlclient.so.18()(64bit)
libnsl.so.1()(64bit)
libpq.so.5()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0()(64bit)
libresolv.so.2()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
librt.so.1()(64bit)
libsqlite3.so.0()(64bit)
libssl.so.10()(64bit)
libutil.so.1()(64bit)
libz.so.1(ZLIB_1.2.0.2)(64bit)
libz.so.1(ZLIB_1.2.0.8)(64bit)
libz.so.1(ZLIB_1.2.2.3)(64bit)
libz.so.1(ZLIB_1.2.2)(64bit)
libz.so.1()(64bit)
postgresql-server
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
/sbin/ldconfig
scl-utils
systemtap-sdt-devel
/usr/bin/perl
#

Comment 11 errata-xmlrpc 2015-06-04 09:33:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2015-1065.html


Note You need to log in before you can comment on or make changes to this bug.