Hide Forgot
Description of problem: Bug 905482 - perl's Config libs contains -lgdbm but it is not in perl-devel (https://bugzilla.redhat.com/show_bug.cgi?id=905482) opened a huge can of worms by requiring glibc-devel, db4-devel and gdbm-devel. Now virtually anyone who's using the 'perl-devel' package is forced to install kernel headers (a dependency of glibc-devel) along with other packages they aren't necessarily using. It's not uncommon for a package to be compiled against other libraries to support them, but for this reason alone it shouldn't be a dependency. If you install python-devel into your environment, you aren't additionally forced to install all of the dependencies it's compiled against. Why should perl-devel be different? Version-Release number of selected component (if applicable): perl-5.10.1-136 How reproducible: just install an earlier version of perl-devel to accommodate package requirements (like spamassassin has and amavisd-new). run an update on your system and find out that it wants to now haul in glibc-devel, gdbm-devel, and db4-devel. Then glibc-devel in turn has a dependency of kernel-headers... No one wants this on their production system. Expected results: I want to run yum update perl-devel and just update perl-devel. Dependencies are okay, but they shouldn't be included for the soul sake of a lazy developer who just couldn't have included them himself in the same yum command which is all #905482 turned out to be. Additional info: perl.spec (http://ftp.redhat.com/redhat/linux/enterprise/6Server/en/os/SRPMS/perl-5.10.1-136.el6.src.rpm) line: 358 Please remove: Requires: glibc-devel, gdbm-devel, db4-devel
perl-devel is for building Perl packages. The word package does not mean RPM package. It means Perl package as defined by CPAN. I.e. a source archive delivering possibly many Perl modules and a build script (Makefile.PL or Build.PL usually) to build and install them. Perl modules are common to be written in C. Those are so called XS modules. To build those modules, perl headers are needed. Those perl headers include glibc headers, hence perl-devel depends on glibc-devel. Therefore it's correct to pull glibc-devel in by perl-devel.
(In reply to Petr Pisar from comment #1) > perl-devel is for building Perl packages. The word package does not mean RPM > package. It means Perl package as defined by CPAN. I.e. a source archive > delivering possibly many Perl modules and a build script (Makefile.PL or > Build.PL usually) to build and install them. So please name these perl modules on CPAN which are not packaged in Fedora and are uses libdb or libgdbm. I don't see even single such package and this is why I've proposed *only partial solution* by remove only two packages from devel dependencies which will not hurt ANY build package .. Even if such packages exist and if they will be not detecting libdb or libgdbm and relaying that -gdbm or -ldb will be delivered by $Config{perrlib} or $Config{libs} *build of such modules will fail* now even if gdbm-devel or libdb-devel will be installed. All because none $Config variables are offering those libraries!!! Do you see this now? If you will find such modules please let me know I promise I'll try to fix those modules :) However I'm 100% sure that my help will be not necessary :P > Perl modules are common to be written in C. Those are so called XS modules. > To build those modules, perl headers are needed. Those perl headers include > glibc headers, hence perl-devel depends on glibc-devel. > > Therefore it's correct to pull glibc-devel in by perl-devel. Of course because it is rally hard to write anything which is not using glibc-devel. Most of the perl-devel C header files are using glibc headers and *only by this* glibc-devel should be in perl-devel Reguires list. If you have impression that I'm suggesting do this it is only impression and it is not even correct impression. What I'm suggesting is only remove -lc from all $Config variables. But again such subject is not the scope of this ticket. This ticket is ONLY about remove two Requires from generated perl-devel package and nothing more. I've added few other comments because you are mention things which are not correct according what linker is doing or what was done in 4 years ago affected perl module. By this you seems still you are thinking that adding four years ago to perl-devel additional static dependencies was correct. No, despite that this fixed this module build it was not correct fix and now this fix even has been obsoleted by what changes in mean time in perl. My change is only about mirror what perl-devel really offers or more precisely not offers to other perl modules build procedures. Do you see this now? Petr .. please focus on the subject :( Again: this ticket is ONLY about remove gdbm-devel and libdb-devel dependencies which are added manually to devel subpackage.
Please ignore my last comment. By mistake I've commented wrong ticket :)