From owner-freebsd-perl@FreeBSD.ORG Sat Jun 22 23:32:34 2013 Return-Path: Delivered-To: perl@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 2258EE8C; Sat, 22 Jun 2013 23:32:34 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-ob0-x235.google.com (mail-ob0-x235.google.com [IPv6:2607:f8b0:4003:c01::235]) by mx1.freebsd.org (Postfix) with ESMTP id BBE5D137C; Sat, 22 Jun 2013 23:32:33 +0000 (UTC) Received: by mail-ob0-f181.google.com with SMTP id 16so9762037obc.12 for ; Sat, 22 Jun 2013 16:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=6BO4gF8VQj3jlUM++ahd9N+3bRE/y2St5aBIlXCtE8Y=; b=dXnAs37kWsZSFjF5YbJshRj9D8L0feeWJ/+RJPCCMJJJ/4dTHqjRLAgiSC/L8Mr2mG gtn7oKOY0KW0969yuUa+n57aMdlmX3G+rPusKDGHmtWTRmhUABNxrJcR+1vcVRcTIgZQ UrKXOK5fcnvxrqTy8VbYa8g61v3Tfn6z5RzXfNI8Qmq36NjhjdRG+xHXE3RtuMA63bRh f03rqQZ+BmSC5ERkRuj15c3xBpkV0FebBWY8zZKDH/9Posi/2m8Qxhxsi2893+Q4Yxhr xWQ+I0Zqbb/4WksOclCW73t9Gcy4SXyMDKBtbHDZ8w39fVH8ZA3Th1GcFbDzqirwL6Nz df4A== MIME-Version: 1.0 X-Received: by 10.60.178.196 with SMTP id da4mr3814754oec.11.1371943953313; Sat, 22 Jun 2013 16:32:33 -0700 (PDT) Sender: kob6558@gmail.com Received: by 10.76.112.212 with HTTP; Sat, 22 Jun 2013 16:32:33 -0700 (PDT) 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> Date: Sat, 22 Jun 2013 16:32:33 -0700 X-Google-Sender-Auth: qLbmceKoi8eAFVaDjoLoLRtw56k Message-ID: Subject: Re: "portmaster -r perl" rebuild almost everything, including apache24, php53 etc. From: Kevin Oberman To: Miroslav Lachman <000.fbsd@quip.cz> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: perl@freebsd.org, Lev Serebryakov , Boris Samorodov , apache@freebsd.org, FreeBSD Ports ML X-BeenThere: freebsd-perl@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: maintainer of a number of perl-related ports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Jun 2013 23:32:34 -0000 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 >> /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