From owner-freebsd-ports@FreeBSD.ORG Tue Jul 2 19:06:50 2013 Return-Path: Delivered-To: freebsd-ports@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 C91D1352 for ; Tue, 2 Jul 2013 19:06:50 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-ob0-x230.google.com (mail-ob0-x230.google.com [IPv6:2607:f8b0:4003:c01::230]) by mx1.freebsd.org (Postfix) with ESMTP id 96C511FD7 for ; Tue, 2 Jul 2013 19:06:50 +0000 (UTC) Received: by mail-ob0-f176.google.com with SMTP id v19so6026736obq.35 for ; Tue, 02 Jul 2013 12:06:50 -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=85mV3FsW2L1iAV5XCtxCFnsJJtl+4/RlwdEw0gmzICA=; b=Vkfh4ySQb87c6awifcxr6hQPA+cjy61YvBKxGm9UGZnSyLvZ0DCTYZ5xK9k92C1BKM QGmmb1NhVVfdqi+F1Rv3RySGm3RDq0OlJ2Vm/b7oSY3FKDaKae+p/Lju29VHtbdaAvPL NDiD/aRofplkehLOToZhe+LfI4b2Vv+/8/Uag3iCSOeGAwlsqhRQZ35uWPI9RhmFcHu/ 9Qb2WgtnQyNs53nYXYbVDiTnfB1CHV3PfQjPHoeve5Xk7rLHSnF2rr1Ibye3P6G6WMQT 9RrTFTCrQR49c47Fp1+/ho4DUENeoR8/YLw/3X7FhY2tFrUUPquhIh/STmqMaEGdq0P6 re0g== MIME-Version: 1.0 X-Received: by 10.182.111.199 with SMTP id ik7mr4885643obb.44.1372792009880; Tue, 02 Jul 2013 12:06:49 -0700 (PDT) Sender: kob6558@gmail.com Received: by 10.76.112.212 with HTTP; Tue, 2 Jul 2013 12:06:49 -0700 (PDT) In-Reply-To: References: <1306476328.20130621232328@serebryakov.spb.ru> <51C5611D.2000807@passap.ru> Date: Tue, 2 Jul 2013 12:06:49 -0700 X-Google-Sender-Auth: GwRDaWuSqTuWilHZ8cXu-y0_Unw Message-ID: Subject: Re: "portmaster -r perl" rebuild almost everything, including apache24, php53 etc. From: Kevin Oberman To: Anton Yuzhaninov Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: FreeBSD Ports ML X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Jul 2013 19:06:50 -0000 On Tue, Jul 2, 2013 at 9:11 AM, Anton Yuzhaninov wrote: > On Sat, 22 Jun 2013 12:32:29, Boris Samorodov wrote: > BS> 21.06.2013 23:23, Lev Serebryakov =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > >> I have old 9-STABEL eserver, which was converted to pkg-ng some time > >> ago. This server has perl5.12, apache24, php53, some php modules, etc= . > >> installed via ports. > >> > >> I've tried to upgrade perl5.12 with recommended "portmaster -r perl" > >> and it rebuild almost everything, including apache, php, all php > >> modules, all apache modules, midnigght commander (mc) and lot more. > BS> > BS> Well, for me it's not "all" at amount POV: > BS> ----- > BS> % pkg info | wc -l > BS> 726 > BS> % pkg info -r perl | wc -l > BS> 234 > > This is because dependencies stored in package database are recursive. > Even with pkgng. > > With old /var/db/pkg was not easy to recursively calculete dependencies > when need, and this recursive list was pre-calculeted and stored. I > don't know why this is not fixed in pkgng. > > For example if you have ports: > A -> B -> C -> D > in package database stored, that A depends on B+C+D, but should only > be stored that A depends on B. > > This recursive dependencies causes different problems - many extra ports > to rebuild is only one of this problems. > > glib among others depends on perl, so with recursive dependencies all > ports, that depends on glib will be rebuild by portmaster -r perl with > no profit from this rebuild. > > portmaster/upgrade -r perl5.xx is safe, but re-installs a huge number of ports that simply don't need it. Instead, I do the following: portmaster lang/perl5 p5- net-snmp ImageMagick dvdrip This will catch almost every perl module. If you don't have net-snmp, dvdrip, or ImageMagick installed on your system, leave them off the command. Once that is done, go to /usr/local/lib/perl5/site_perl. Then cd to the directory for the OLD version that you just replaced. (e.g. "cd 5.14.2".) Check for any remaining regular files (not directories) under this location "find . -type f" should do the trick. Use pkg_info or pkg info to find out which port installed the files, if any are found and re-install that port. portmaster p5-XML-Parser (don't know why, but something odd seems to happen with that file after a perl update, so you can re-install it AGAIN, just to be sure. Yes, it's more complicated and may have some cases where something is missed, but it seems to work for me. --=20 R. Kevin Oberman, Network Engineer E-mail: rkoberman@gmail.com