From owner-freebsd-ports@FreeBSD.ORG Tue May 9 21:36:53 2006 Return-Path: X-Original-To: freebsd-ports@freebsd.org Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 52E4916A456; Tue, 9 May 2006 21:36:53 +0000 (UTC) (envelope-from hans@lambermont.dyndns.org) Received: from lambermont.dyndns.org (lambermont.dyndns.org [82.93.47.245]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7FB8843D46; Tue, 9 May 2006 21:36:52 +0000 (GMT) (envelope-from hans@lambermont.dyndns.org) Received: by lambermont.dyndns.org (Postfix, from userid 1001) id BBEA522DDD3; Tue, 9 May 2006 23:36:51 +0200 (CEST) Date: Tue, 9 May 2006 23:36:51 +0200 To: Doug Barton Message-ID: <20060509213651.GE66029@leia.lambermont.dyndns.org> References: <445FC09E.2080601@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <445FC09E.2080601@FreeBSD.org> User-Agent: Mutt/1.4.2.1i From: hans@lambermont.dyndns.org (Hans Lambermont) Cc: freebsd-ports@freebsd.org Subject: Re: New version of portmaster available for testing 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: Tue, 09 May 2006 21:36:53 -0000 Doug Barton wrote: > I have been following the various discussions and feature requests > regarding sysutils/portmaster. I have a new version that I would > appreciate testing and feedback on. It has the following changes: > > 1. Implemented recursive 'make config' at the beginning of the run, so > it's easier to leave it running unattended for large updates. (This > can be toggled off) Great, and it works well. Here's one more process speedup option : Now portmaster is waiting whether to remove an old distfile or not -> maybe put these in the end, or in the beginning too like config ? > 2. Implemented a completely unattended mode which accepts the defaults > for all portmaster dialogues. (Note, this does not help with ports > that have interaction other than 'make config', such as ghostscript, > etc.) Haven't tested that yet. > 3. Added -u to sort(1) calls to try and address a bug report about > duplicate lines in +REQUIRED_BY files. I was not able to reproduce > this bug, but better safe than sorry. I added some debug code to try > and detect this error, please let me know if it comes up for you. I've seen lots of duplicate lines in +REQUIRED_BY files with earlier versions, but not with the 1.58 version so far. I cleaned it with this ugly thingie : find . -name "+REQUIRED_BY" -exec sh -c "mv {} {}.bak; sort -u {}.bak > {}" \; (improvements welcome ;-) > 4. Verbose mode is now slightly more informative about what's > happening. Great, but I didn't spot it yet. I think this one is also useful : Next to showing what to delete like : ===>>> Upgrade for libtheora-1.0.a4_1 to libtheora-1.0.a5 succeeded ===>>> Delete libtheora-1.0alpha4.tar.bz2? [n] y It would help to also show what is being kept (maybe only do this only in verbose mode). > 6. The -n flag now cancels the build of the port called on the command > line too. Ah yes, I was wondering about that one :) > The new version is available at http://dougbarton.us/portmaster, I > look forward to your feedback. Perhaps explicitly mention here that there was no +REQUIRED_BY file found to work with : ===>>> Warning! Potential unrecorded dependencies on lua-5.0.2_1 ===>>> From existing +CONTENTS files: filelight-0.6.4_4/+CONTENTS:@pkgdep lua-5.1 ... koffice-1.5.0,1/+CONTENTS:@pkgdep lua-5.1 ===>>> 26 ports ===>>> Install these as the new +REQUIRED_BY file? [n] And then, as mentioned in UPDATING/20060506, the lua port upgrade causes problems : ===> lua-5.0.2_1 conflicts with installed package(s): lua-5.1 UPDATING/20060506 says to fix this with : portupgrade -f -o lang/lua50 lua-5.1 What would be a portmaster equivalent ? One more thing. It would be great if portmaster could also be used to populate an empty system, given a set of port origins. I could not find such a tool so I wrote something myself. First I used portmaster -l on the production server to list the Root and Leaf ports (skipping Trunk and Branch ports as they would come in for free). Then I used pkg_info -o | grep '/' | sort -u to convert the names into their origin paths. I fed this list to this script I wrote (named it install_ports.sh) on the empty build system : -------------------------------------------------------------------------------- #!/bin/sh PORTS=$@ PORTSFORPHASE2="" PORTSDONE="" FAILLIST="" RETVAL=0 echo "===> Phase1: make config-recursive fetch-required checksum" for PORT in $PORTS; do cd /usr/ports/$PORT echo "===> START Phase 1 for $PORT" make config-recursive fetch-required checksum MRETVAL=$? if [ $MRETVAL -ne 0 ]; then echo "===> ABORT Phase 1 for $PORT, errorcode $MRETVAL" FAILLIST="$FAILLIST $PORT" else echo "===> END Phase 1 for $PORT" PORTSFORPHASE2="$PORTSFORPHASE2 $PORT" fi done echo "===> Phase2: make install clean" for PORT in $PORTS; do cd /usr/ports/$PORT echo "===> START Phase 2 for $PORT" make install clean MRETVAL=$? if [ $MRETVAL -ne 0 ]; then echo "===> ABORT Phase 2 for $PORT, errorcode $MRETVAL" FAILLIST="$FAILLIST $PORT" else echo "===> END Phase 2 for $PORT" PORTSDONE="$PORTSDONE $PORT" fi done echo "===> PORTS DONE: [$PORTSDONE]" echo "===> PORTS FAILED: [$FAILLIST]" -------------------------------------------------------------------------------- I think it would benefit portmaster if you'd add something like this. What do you think ? Oh, and thanks again for writing portmaster. regards, Hans Lambermont