From owner-freebsd-ports@FreeBSD.ORG Sat Mar 26 18:16:05 2011 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12E1A1065672 for ; Sat, 26 Mar 2011 18:16:05 +0000 (UTC) (envelope-from matthias.andree@gmx.de) Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.23]) by mx1.freebsd.org (Postfix) with SMTP id 8C9FA8FC14 for ; Sat, 26 Mar 2011 18:16:04 +0000 (UTC) Received: (qmail invoked by alias); 26 Mar 2011 18:15:59 -0000 Received: from dtmd-4d054363.pool.mediaWays.net (EHLO [192.168.178.26]) [77.5.67.99] by mail.gmx.net (mp035) with SMTP; 26 Mar 2011 19:15:59 +0100 X-Authenticated: #428038 X-Provags-ID: V01U2FsdGVkX18/VWpdCgA/jcfyKiF05ddc/z7KQT4zWOnJjvxTLM TLTpLVHTPa0e7C Message-ID: <4D8E2D62.3080602@gmx.de> Date: Sat, 26 Mar 2011 19:16:02 +0100 From: Matthias Andree User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.15) Gecko/20110303 Mnenhy/0.8.3 Thunderbird/3.1.9 MIME-Version: 1.0 To: freebsd-ports@freebsd.org References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 Subject: Re: Updating multiple ports with portmaster X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Mar 2011 18:16:05 -0000 Am 26.03.2011 17:58, schrieb b. f.: >> I have a questions about the use of portmaster when upgrading multiple >> ports and how to correctly use wildcards. >> >> For example, I have this from pkg_version: >> >> p5-Digest-SHA-5.50< needs updating (port has 5.61) >> p5-IO-Socket-SSL-1.38< needs updating (port has 1.39) >> p5-IPC-Cmd-0.68< needs updating (port has 0.70) >> p5-Math-BigInt-1.99< needs updating (port has 1.993) >> p5-Module-Build-0.3607_1< needs updating (port has >> 0.3624) >> p5-Module-CoreList-2.42< needs updating (port has 2.45) >> p5-Module-Load-Conditional-0.38< needs updating (port has 0.44) >> p5-Params-Check-0.26_1< needs updating (port has 0.28) >> p5-Test-Harness-3.22< needs updating (port has 3.23) >> p5-URI-1.56< needs updating (port has 1.58) >> >> When I was using portupgrade, I could type... >> >> portupgrade p5-* >> >> ...and it would upgrade only the ports that needed upgrading and >> dependancies. But if I try... >> >> portmaster p5-* >> >> ===>>> The following actions will be taken if you choose to proceed: >> Re-install p5-Digest-SHA1-2.13 >> Re-install p5-IO-Compress-2.033 >> Re-install p5-Compress-Raw-Bzip2-2.033 >> Re-install p5-Compress-Raw-Zlib-2.033 >> Re-install p5-HTML-Tagset-3.20 >> Re-install p5-HTML-Parser-3.68 >> Upgrade p5-Digest-SHA-5.50 to p5-Digest-SHA-5.61 >> Re-install p5-Mail-SpamAssassin-3.3.1_3 >> Re-install p5-Archive-Tar-1.76 >> Re-install p5-IO-Zlib-1.10_1 >> Re-install p5-IO-String-1.08 >> Re-install p5-Package-Constants-0.02 >> Re-install p5-Encode-Detect-1.01 >> Re-install p5-ExtUtils-CBuilder-0.2802_1,1 >> Upgrade p5-IPC-Cmd-0.68 to p5-IPC-Cmd-0.70 >> Re-install p5-Locale-Maketext-Simple-0.21 >> Upgrade p5-Module-Load-Conditional-0.38 to >> p5-Module-Load-Conditional-0.44 >> Upgrade p5-Module-CoreList-2.42 to p5-Module-CoreList-2.45 >> Re-install p5-Module-Load-0.18 >> Upgrade p5-Params-Check-0.26_1 to p5-Params-Check-0.28 >> Re-install p5-version-0.88 >> Upgrade p5-Module-Build-0.3607_1 to p5-Module-Build-0.3624 >> Install devel/p5-CPAN-Meta-YAML >> Re-install p5-ExtUtils-Install-1.54 >> Re-install p5-ExtUtils-ParseXS-2.22.03 >> Install devel/p5-Module-Metadata >> Install devel/p5-Perl-OSType >> Upgrade p5-Test-Harness-3.22 to p5-Test-Harness-3.23 >> Re-install p5-Net-DNS-0.66_1 >> Re-install p5-Net-IP-1.25_2 >> Re-install p5-IO-Socket-INET6-2.65 >> Re-install p5-Socket6-0.23 >> Re-install p5-Digest-HMAC-1.02 >> Re-install p5-Mail-Tools-2.07 >> Re-install p5-TimeDate-1.20,1 >> Re-install p5-NetAddr-IP-4.038 >> Upgrade p5-IO-Socket-SSL-1.38 to p5-IO-Socket-SSL-1.39 >> Re-install p5-Net-SSLeay-1.36 >> Re-install p5-libwww-5.837 >> Upgrade p5-URI-1.56 to p5-URI-1.58 >> Re-install p5-YAML-Tiny-1.44 >> Re-install p5-Time-HiRes-1.9721,1 >> Re-install p5-Locale-gettext-1.05_3 >> Upgrade p5-Math-BigInt-1.99 to p5-Math-BigInt-1.993 >> Re-install p5-ExtUtils-MakeMaker-6.56 >> Re-install p5-MIME-Base64-3.13 >> Re-install p5-YAML-0.72 >> Re-install p5-Error-0.17016 >> Re-install p5-Net-DNS-Resolver-Programmable-0.003 >> Re-install p5-Mail-SPF-2.007 >> >> ...it wants to upgrade and reinstall every port that I have installed >> that begins with p5-* >> >> Is there a way to get portmaster to behave like portupgrade did and >> only upgrade what needs to be upgraded? >> > > This is documented in the portmaster(1) manpage. You can use -a to > update all ports that need to be updated. To update a subset of > those, you could (1) use -i with -a or a glob (by the way, the * > isn't needed with portmaster -- see the portmaster(1) manpage), and > respond in the negative to prompts to update or re-install those you > wish to exclude; (2) use -x with -a or a glob, to exclude certain > ports; or (3) feed portmaster a list of globs that match only those > ports that you want to be updated. In your case, for (3), if you only > wanted to update those p5-* ports that need to be updated, but not > other ports that need to be updated, you could use something like: > > pkg_version -qos p5- -l '<' | xargs portmaster > > Of course, since some new versions of p5-* ports may depend upon new > versions of other, non p5-* ports, updating only the p5-* ports isn't > guaranteed to work. portmaster takes care of that, except if there are downstream dependencies that stop working with updated ports on your list -- but that's rather rarely observed and usually documented in /usr/ports/UPDATING -- but even then, portmaster -a -i would likely help. -- Matthias Andree