Date: Sat, 22 Jun 2013 16:32:33 -0700 From: Kevin Oberman <rkoberman@gmail.com> To: Miroslav Lachman <000.fbsd@quip.cz> Cc: perl@freebsd.org, Lev Serebryakov <lev@freebsd.org>, Boris Samorodov <bsam@passap.ru>, apache@freebsd.org, FreeBSD Ports ML <freebsd-ports@freebsd.org> Subject: Re: "portmaster -r perl" rebuild almost everything, including apache24, php53 etc. Message-ID: <CAN6yY1uu1HYZ21z-YiZO8L3zU8sJsPneP086_NwENkji8XsPKw@mail.gmail.com> In-Reply-To: <51C56F47.4000001@quip.cz> References: <1306476328.20130621232328@serebryakov.spb.ru> <51C5611D.2000807@passap.ru> <607933663.20130622131234@serebryakov.spb.ru> <51C56F47.4000001@quip.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jun 22, 2013 at 2:32 AM, Miroslav Lachman <000.fbsd@quip.cz> wrote: > Lev Serebryakov wrote: > >> Hello, Boris. >> You wrote 22 =D0=B8=D1=8E=D0=BD=D1=8F 2013 =D0=B3., 12:32:29: >> >> Is it ok? >>>> >>> BS> Technically "portmaster -r perl" rebuild all that depends on perl. >> BS> So you get what you asked for. >> >> BS> Should almost whole ports be rebuilded at a minor perl upgrade is >> BS> another question. And I think that the most resent change in perl >> I'm surprised, that so many ports, which doesn't contain any perl >> code after build (like apache24 and php) depends on perl in runtime. >> Why? I understand, why all p5-* or nod_perl should be rebuild, but >> why php53 should!? For example, php53 doesn't contains perl >> dependency directly. Ok, it depend on apache24 in my configuration, >> let see at apache24. It has USE_PERL5=3Dyes. Let check, does it need i= t >> at runtime. >> >> % cd /usr/ports/www/apache24 >> % grep \\.pm pkg-plist >> % pkg info -lg apache\* | grep -E '/usr/local/(bin|sbin|lib|**libexec)' >> | xargs ldd | grep perl >> ldd: /usr/local/libexec/apache22/**httpd.exp: not a dynamic executable >> ldd: /usr/local/sbin/apachectl: not a dynamic executable >> ldd: /usr/local/sbin/apxs: not a dynamic executable >> ldd: /usr/local/sbin/dbmmanage: not a dynamic executable >> ldd: /usr/local/sbin/envvars: not a dynamic executable >> ldd: /usr/local/sbin/split-logfile: not a dynamic executable >> % grep perl /usr/local/sbin/apachectl /usr/local/sbin/apxs >> /usr/local/sbin/dbmmanage /usr/local/sbin/envvars >> /usr/local/sbin/split-logfile >> /usr/local/sbin/apxs:#!/usr/**bin/perl -w >> /usr/local/sbin/apxs: >> # perl variable. >> /usr/local/sbin/dbmmanage:#!/**usr/bin/perl >> /usr/local/sbin/dbmmanage:# http://www.perl.com/CPAN/** >> modules/by-module/HTTPD/HTTPD-**Tools-x.xx.tar.gz<http://www.perl.com/CP= AN/modules/by-module/HTTPD/HTTPD-Tools-x.xx.tar.gz> >> /usr/local/sbin/split-logfile:**#!/usr/bin/perl >> % >> >> Ok, apache24 need perl for its scripts and only for scripts, not for >> perl modules! Should we rebuild it on perl upgrade? I don't think so. >> Should we rebuild php53, which doesn't depends on these scripts, on >> perl upgrade? I'm sure, we shouldn't. Should we rebuild phpMyAdmin or >> Roundcube, pure-php software on perl upgrade!? IT IS MADNESS! >> > > It is an issue for a long time and can be partially fixed by > EXPLICIT_PACKAGE_DEPENDS=3Dtrue in make.conf > Then you will have recorded direct depencencies only. > > Miroslav Lachman > The problem is that many ports that contain no perl are dependent on another port that DOES require perl. And '-r' catches all of them. EXPLICIT_PACKAGE_DEPENDS=3Dtrue results in only recording immediate dependencies,but has negative impacts in that rebuilds in cases when you suspect some dependency needs fixing, it may well not be found any more. For perl I routinely recommend "portmaster p5-" to catch almost everything and then examining /usr/local/lib/perl5/site_perl for the old version to catch what is left. It is not hard to create a perl module that adds some different directory to @INC, but that is considered bad form. For shareable library version bumps, "pkg_libchk -o" can be used to find explicit dependencies so you can just rebuild these. I've posted details to this list several times. Google "oberman png pkg_libchk" --=20 R. Kevin Oberman, Network Engineer E-mail: rkoberman@gmail.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAN6yY1uu1HYZ21z-YiZO8L3zU8sJsPneP086_NwENkji8XsPKw>