Many (if not most) users on Gentoo use Perl only when the GNU autotools is required to emerge some piece of software. They do not need the full-blown Perl. Some distributions, like Debian, Mandr* and ex-Connectiva (before they were bought by Mandr*Soft), provide a package named "perl-base", which contains the interpreter executable and a subset of the modules. I merged the file list for perl-base from the three distributions mentionned above and added some files to the list to get autotools working. I sucessfully emerged xine-lib 1.0.1-r1 with my minimal perl install. As you may have guessed, I added a minimal flag to IUSE. The main changes are the addition of src_remove_extra_files() called conditionally at the end of src_install() and a conditionnal install target reducing emerge time when "minimal" is used. Size went down from ~12300 Kib to 940 Kib! Of course, more testing is needed. Either patch yourself a test ebuild or use mine, make a package of your current perl, emerge perl using the new ebuild, then emerge software when you have to. When you encounter a missing Perl module error when emerging, please report it here. Reproducible: Didn't try Steps to Reproduce:
Created attachment 60593 [details] My ebuild with minimal USE flag support and other personal tweaks
Created attachment 60763 [details] Updated ebuild with support for pod2man You must have pod2man if don't want wget build to fail. It added around 52 Kib to the tbz2 size (I am still under the Mib :-)). Also, binutils would like to have pod2man to generate its manual pages, but not having it is not fatal unlike wget.
From the gentoo-embedded list An archive link: http://marc.theaimsgroup.com/?l=gentoo-embedded&m=111812930800365&w=2 > One of the problems perl exposes (bugged one maintainer, but no answer), > is that each time you rebuild it, it builds .ph versions of all the > installed .h headers (the more pkgs in the mean time on the dev box, the > more files). All distros I have seen limit the creation to some > well-known/really needed files (they check if a pkg is installed, get the > list of headers from pkg, and build only those). Such a behaviour could be > also desired at least for USE=minimal. > Peter This is something I have not looked yet but certainly worth I spend some time on it.
Not sure what the poster is referring to - there was a bug for this, which was the proper way to bring it up - and the creation of ph files is now completely limited to those that are truly necessary. I'm not ignoring this bug, btw - just trying to grok how to deal with it. Here's my issue: say we offer a minimal perl install per this bug request. Maybe it provides a virtual for perl (though in that case you have to wait until we can provide versioned virtuals so that apps that dep on having perl-5.X.X for a certain functionality in the core interpreter can have their dependancy met) - that still leaves us with then needing to create an ebuild for every single module that used to be provided by the core install but isn't because they're using minimal perl. I think I need more time to think on this one :) There is a use flag for minimal that might make this more doable if merged into the mainstream ebuild, but even then we would need to consider folks that install minimal, but then later on decide they want package foo - which has no dep for bar because prior to minimal it was part of the core install. ack. ie, i'm here, thinking, blogging, not sleeping
...On the other hand, and I just thought of this...if our perl became minimal default (with a PDEPEND for !minimal calling a post-emerge of the other modules in perl-core as needed) this would solve things like conflicts between core modules and ebuilds...a lot of collision protects would be fixed...hmmm...need to pass this to -dev and see what other folks think...i'm too on the fense to make a decision at the moment
Not sure if this is the right bug to report this, but I'm running a USE="minimal" perl install here, and trying to upgrade autoconf results in: Making all in m4sugar make[2]: Entering directory `/var/tmp/portage/autoconf-2.59-r7/work/autoconf-2. 59/lib/m4sugar' ../../tests/autom4te \ --language=m4sugar \ --freeze \ --output=m4sugar.m4f Can't locate loadable object for module Data::Dumper in @INC (@INC contains: / var/tmp/portage/autoconf-2.59-r7/work/autoconf-2.59/tests/../lib /etc/perl /usr/ lib/perl5/site_perl/5.8.7/i686-linux /usr/lib/perl5/site_perl/5.8.7 /usr/lib/ perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i686-linux /usr/lib/perl5/ vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5. 8.6/i686-linux /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.7/i686-linux /usr/ lib/perl5/5.8.7 /usr/local/lib/site_perl .) at /var/tmp/portage/autoconf-2.59- r7/work/autoconf-2.59/tests/../lib/Autom4te/C4che.pm line 35 Compilation failed in require at /var/tmp/portage/autoconf-2.59-r7/work/ autoconf-2.59/tests/../lib/Autom4te/C4che.pm line 35. BEGIN failed--compilation aborted at /var/tmp/portage/autoconf-2.59-r7/work/ autoconf-2.59/tests/../lib/Autom4te/C4che.pm line 35. Compilation failed in require at /var/tmp/portage/autoconf-2.59-r7/work/ autoconf-2.59/tests/.././bin/autom4te line 39. BEGIN failed--compilation aborted at /var/tmp/portage/autoconf-2.59-r7/work/ autoconf-2.59/tests/.././bin/autom4te line 39. make[2]: *** [m4sugar.m4f] Error 2 make[2]: Leaving directory `/var/tmp/portage/autoconf-2.59-r7/work/autoconf-2. 59/lib/m4sugar' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/autoconf-2.59-r7/work/autoconf-2. 59/lib' make: *** [all-recursive] Error 1 emerge -pv perl autoconf [ebuild R ] dev-lang/perl-5.8.7 +berkdb -build -debug -doc +gdbm -ithreads -minimal* -perlsuid 0 kB [ebuild U ] sys-devel/autoconf-2.59-r7 [2.59-r6] -emacs 0 kB Re-emerging with -minimal now, hope this works; let me know if you need more info or if I shoud file another bug.
I'd like to confirm the previous post. With this bug I am unable to "emerge system" on a fresh install with the "minimal" USE flag. This needs fixing! (I would upgrade the severity... but I can't ;])
This is a real bug. Unfortunately, I cannot reproduce it on my system. I correctly emerged autoconf 2.59-r6 and 2.59-r7 using perl 5.8.6-r5. I cannot try perl 5.8.7 yet because I am still on dial up :-( @Peter Gantner What is the result of your emerge perl and autoconf without the minimal USE flag? Can you also supply the your perl package contents (file list) ? Of course, only if you emerged a full perl-5.8.7 without problems. @Porges Can you supply the output of emerge -pv system | grep perl ? I would like to know which version of perl it tries to install.
Mass re-assign.
The problem Peter Gantner and Porges got (see comments #6 and #7) is caused by bug #110453. A fix is available and I successfully emerged autoconf-2.59-r7 using a patched perl 5.8.7-r1 ebuild. I would like to include ${prV}/File/Temp.pm in the minimal set. Many perl scripts use it for temporary file handling. I also have to investigate why the minimal perl 5.8.7 tbz2 grew by ~350Kib. And no, it is not because of ${prV}/File/Temp.pm (around ~64Kib uncompressed, and the *compressed* tarball grew much more).
Dead bug.