From owner-freebsd-stable@FreeBSD.ORG Fri Jul 31 20:00:27 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D2648106564A for ; Fri, 31 Jul 2009 20:00:27 +0000 (UTC) (envelope-from ben@morrow.me.uk) Received: from relay.ptn-ipout02.plus.net (relay.ptn-ipout02.plus.net [212.159.7.36]) by mx1.freebsd.org (Postfix) with ESMTP id 6C9488FC13 for ; Fri, 31 Jul 2009 20:00:27 +0000 (UTC) (envelope-from ben@morrow.me.uk) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsEFAFLjckrUOFPl/2dsb2JhbACBUtMEhBgFgUo Received: from plesk-mail01.plus.net ([212.56.83.229]) by relay.ptn-ipout02.plus.net with ESMTP; 31 Jul 2009 20:31:46 +0100 Received: (qmail 22442 invoked from network); 31 Jul 2009 19:31:46 +0000 Received: from host81-155-197-140.range81-155.btcentralplus.com (HELO osiris.mauzo.dyndns.org) (81.155.197.140) by plesk-mail01.plus.net with SMTP; 31 Jul 2009 19:31:46 +0000 Received: (qmail 5365 invoked by uid 1001); 31 Jul 2009 19:31:45 -0000 Date: Fri, 31 Jul 2009 20:31:45 +0100 From: Ben Morrow To: dougb@FreeBSD.org, freebsd-stable@freebsd.org Message-ID: <20090731193145.GA3750@osiris.mauzo.dyndns.org> Mail-Followup-To: dougb@FreeBSD.org, freebsd-stable@freebsd.org References: <1248027417.14210.110.camel@neo.cse.buffalo.edu> <200907232335.54973.mel.flynn+fbsd.current@mailing.thruhere.net> <4A6FF5FA.5010904@FreeBSD.org> <200907282342.25038.mel.flynn+fbsd.current@mailing.thruhere.net> <4A707534.8000808@FreeBSD.org> <20090729170601.GA2841@tafi.alm.flutnet.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A709981.80600@FreeBSD.org> X-Newsgroups: gmane.os.freebsd.current,gmane.os.freebsd.stable Organization: Who, me? User-Agent: Mutt/1.5.17 (2007-11-01) Cc: Subject: Re: portmaster -R (Was: Re: HEADS-UP: Shared Library Versions bumped...) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Jul 2009 20:00:28 -0000 Quoth Doug Barton : > > How about this? When the user has -[rf] but not -R, and there are flag > files present, ask if they should be cleared before beginning to do > anything. Otherwise (no -[rf]) ignore them. Sound good? Since my machine has spent the last 48hrs or so rebuilding everything that depended on jpeg-6b and python25 (it's a pretty old machine), I've been wondering if an option to say '*don't* rewrite the dependencies of other ports to refer to the new version' would be a good solution here. Normally this is a helpful thing to do, but when you're trying to reinstall a few ports low in the dependency chain and then rebuild everything that needs rebuilding it would be helpful to have the ones that haven't been rebuilt still depend on the old (now deleted) package, so they can be identified. -r (and -Rr) don't help here, since lots of large ports depend on *both* jpeg and python, and I was specifically trying to avoid rebuilding them all twice. AFAICT -r doesn't allow you to ask for two ports plus all combined dependants at once. I ended up taking the pkg_info -R list for both pkgs before the upgrade, sorting it into dependency order, and stripping entries off the front every time something failed and I had to restart, which is a little too manual for my taste :). (The list had to be sorted, otherwise port A might depend on port B that came later in the list, and when portmaster got to B in the list it would reinstall it again unnecessarily.) It also occurs to me that this could be completely automated if ports had a LAST_COMPATIBLE_VER field or some such, which tells you whether or not an upgrade-in-place is safe. portmaster could even ask 'you've just upgraded from foo-1.2 to foo-2.1 which is not compatible: do you want to rebuild which depended on the old version?'. Ben