From owner-freebsd-ports@FreeBSD.ORG Sat Mar 26 16:58:48 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 997A61065680 for ; Sat, 26 Mar 2011 16:58:48 +0000 (UTC) (envelope-from bf1783@googlemail.com) Received: from mail-pw0-f54.google.com (mail-pw0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 723BC8FC17 for ; Sat, 26 Mar 2011 16:58:48 +0000 (UTC) Received: by pwj8 with SMTP id 8so378565pwj.13 for ; Sat, 26 Mar 2011 09:58:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:reply-to:date:message-id:subject :from:to:cc:content-type; bh=YHCeBPxkc57+VMPzSqrraWOODHuJhUnncNbKux0i5JQ=; b=hwA8AYhkOAjk4V9KRyJOSIxAF5SFzbx2C8OymDE3RlZOfw/X4dL8NUzQT+aAhpxjx7 QpIII9grHcJMrarIa10Gcw6CngLJQ/pIRkK8bQJdoLyUI5PDRgW8ncPVejdZkkl+IM9g D3uXBRJhsIbf7Jl+YBTky5I5RoJnSfkn3t8kA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:reply-to:date:message-id:subject:from:to:cc :content-type; b=abNYFv4ClCcSA0UykIXcjcBiwScYVZ7TkwIyQyr6VrBI+qo/Es2awlg6flA2Elr9r/ 32G6U0lDWXi5TC37r398rTLrCN1m1P5dS/AtayPMUOhLfuItzOV4JdajtmJS+xADpWCT 4HncjdIOeAztRy4gsKjPc7O81lznuIqdG5wr8= MIME-Version: 1.0 Received: by 10.142.44.13 with SMTP id r13mr1884320wfr.328.1301158727727; Sat, 26 Mar 2011 09:58:47 -0700 (PDT) Received: by 10.142.170.1 with HTTP; Sat, 26 Mar 2011 09:58:47 -0700 (PDT) Date: Sat, 26 Mar 2011 16:58:47 +0000 Message-ID: From: "b. f." To: "Ron (Lists)" Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-ports@FreeBSD.org Subject: Re: Updating multiple ports with portmaster X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: bf1783@gmail.com List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Mar 2011 16:58:48 -0000 > 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. b.