In view of the likely upcoming removal of gcc from the default buildroot, it would make sense to add gcc as a dependency of perl-ExtUtils-CBuilder, given that the entire purpose of the module is to compile the C portions of perl modules. This would fix a significant of number of perl modules that FTBFS without gcc in the default buildroot, as can be seen by looking at the logs from the failed builds: https://ignatenkobrain.fedorapeople.org/gcc-removal.txt
I did not yet look at the problem thoroughly. I remember we had a dependency on gcc somewhere sometime and people did not like that installing Perl core modules installs gcc. I need to look into it more deeply. Because I do not want noarch packages to bring gcc into build root via some transitive dependency. Also Perl guidelines states that archfull packages should build-require perl-devel. I do not want tell people that they should build-require EU::CBuilder instead.
CBuilder::Base::compile() does: my @cc = $self->split_like_shell($args{'C++'} ? $cf->{cxx} : $cf->{cc}); $self->do_system(@cc, @flags, $args{source}) Should we also hard-require gcc-c++? Or do we aim to "good enough" solution?
Looking at the gcc-removal.txt file, all of the failures mentioning EU::CB are failing when trying to run gcc rather than g++. So I'm inclined to add a hard dependency on gcc (the module is pretty much useless without it) and a soft one on gcc-c++.
(In reply to Petr Pisar from comment #1) > Also Perl guidelines states that archfull packages should > build-require perl-devel. I do not want tell people that they should > build-require EU::CBuilder instead. Not all archful packages use EU::CBuilder; those that don't should pull in gcc themselves, but those that do use EU::CBuilder could reasonably expect it to "just work" I think.
I would add both dependencies.
Compare to cmake bug #923024. cmake does not run-require any compiler although it defaults to C++ and dies if it cannot find g++. I will probably add both compilers as a hard dependency.
I did some tests and if we want perl-ExtUtils-CBuilder to require gcc, we need to remove dependency on ExtUtils::CBuilder from perl-Module-Build. That will break 36 packages in Fedora. Module-Build requires ExtUtils::CBuilder in META data, but at the same time documents that Module::Build users should require ExtUtils::CBuilder explicitly. I'm keen to go this way and fix the 36 packages. I will send an e-mail to perl-devel list the attract more attention and more ideas.
The perl-devel message <https://lists.fedoraproject.org/archives/list/perl-devel@lists.fedoraproject.org/message/MWK6MLOWOIJ2UVMRILR3FAZZRE3X6OCM/>.
There were no objections. The change is implemented in: perl-ExtUtils-CBuilder-0.280230-3.fc29 perl-ExtUtils-MakeMaker-7.32-2.fc29 perl-Module-Build-0.42.24-6.fc29 I also removed a hard dependency on perl-devel from perl-ExtUtils-MakeMaker. I also noticed that perl-Module-Install pulls in perl-devel and gcc transitively. I will find out why.
I finished adding ExtUtils::CBuilder dependency to spec files. I omitted some of them where it came as a transitive dependency of some other already used XS-builder used module because I do not feel competent nor motivate to hunt the specific piece of line responsible for executing gcc in foreign packages. I fell little bit uneasy with this change.
perl-Net-IDN-Encode-2.400-7.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-b2c056d6b0
perl-Net-IDN-Encode-2.400-7.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-b2c056d6b0
perl-Net-IDN-Encode-2.400-7.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.