From owner-freebsd-ports@FreeBSD.ORG Mon Jan 7 02:42:27 2008 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 DB8E816A419 for ; Mon, 7 Jan 2008 02:42:27 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mx21.fluidhosting.com [204.14.89.4]) by mx1.freebsd.org (Postfix) with SMTP id 9198813C474 for ; Mon, 7 Jan 2008 02:42:27 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: (qmail 28589 invoked by uid 399); 7 Jan 2008 02:42:26 -0000 Received: from localhost (HELO lap.dougb.net) (dougb@dougbarton.us@127.0.0.1) by localhost with ESMTP; 7 Jan 2008 02:42:26 -0000 X-Originating-IP: 127.0.0.1 Message-ID: <47819190.4030909@FreeBSD.org> Date: Sun, 06 Jan 2008 18:42:24 -0800 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 2.0.0.9 (X11/20071119) MIME-Version: 1.0 To: freebsd-ports@freebsd.org X-Enigmail-Version: 0.95.5 OpenPGP: id=D5B2F0FB Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Portmaster 2.0-beta1 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: Mon, 07 Jan 2008 02:42:27 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 Howdy! I'm very happy to say that I have a shiny new version of portmaster available for testing. There are a couple of nice new features, but more importantly the code has been totally reorganized, and in several cases totally rewritten. I am also proud to say that all of the advertised features now work as advertised. :) The most exciting new feature is the completely new dependency updater. I finally took the time to write the line-oriented version of update_contents() that I wanted to write in the first place, so no more sed, and no more warnings sent to $PAGER. This version relies entirely on exact matches to DEPORIGIN to do its work, so it's 100% reliable. Which is to say, reliable enough for me to ask you to test it now. :) This is a long message, so if you want to jump into using the new version that's fine, but before you do anything else, please do this: cd mkdir backup-pkg cd backup-pkg cp -Rp /var/db/pkg . portmaster --check-depends # This is the new version of course diff -ur pkg /var/db/pkg > pkg.diff Then look at the results. The code lets you know if it updates a +REQUIRED_BY file or @pkgdep entry, but it also silently deletes duplicate pkgdep/DEPORIGIN lines from your +CONTENTS files, so if you see something that looks like it's been deleted inappropriately check the rewritten +CONTENTS file to see if there is one and only one entry left in it. I don't think you will, but if you have any problems with this feature, please let me know ASAP. So what else is new? The code has been extensively cleaned and reorganized. A lot of micro-optimizations have been done to eliminate duplicated work, avoid using external commands when not necessary, etc. I won't promise you'll notice an overwhelming speed increase, but it has definitely moved in the right direction. Totally new features: 1. --check-depends, which as described above calls the new functions to parse existing +CONTENTS files for dependency data, use that data to update +REQUIRED_BY, and update the +CONTENTS files themselves. These same routines are also used for updating ports. 2. A "fetch only" feature (-F) that will go get distfiles for new versions of installed ports by default, and can also be used to get the files for all of your installed ports, or certain branches by using the -aft options. (Warning, 'portmaster -afF' spawns a child for every single port you have installed, so use with caution.) 3. An option to hide the build and install process by saving it to a log (-H). These logs are deleted on successful install, and saved if the update process aborts. 4. We now keep track of all the ports that get updated or installed in a given invocation, and print the list at the very end of the process. If you've only installed one port this is skipped, unless you're doing -a. 5. There is now a little "map" to show you where you are in the process of the form "parent >> child >> grandchild >> etc." Please let me know what you think of that, if it's useful, should be behind -v, etc. Improved features: 1. When showing the pkg-message/+DISPLAY files at the end of the process, all files are grouped together and spit out to $PAGER (or just cat if -u). This way if there is an error you can see what you need to know about the ports that _were_ successfully installed. This comes right before the list of installed ports that is the very last thing to happen. 2. There is now much more sanity checking on user input so that we can bail out early if there is a problem. 3. The error messages have been completely re-done to be more informative, and many of them include helpful suggestions on how to fix the problems. 4. In the expunge (-e) feature, if there is dependency data for the port you want to delete we now offer you the chance to delete that instead of just aborting. (Use at your own risk!) 5. The "save old shared libs" feature (-w) is now a lot more efficient, only runs ldconfig when it has to, and uses /etc/rc.d/ldconfig. Everything else should work the same way, so please let me know if it doesn't. If ($DEITY forbid) you actually do have a problem, check the RCS Id on the file on my web site to see if I've made an update. I don't plan to announce every little bug fix on the list. The next big goal is to support the SU_CMD stuff, which doesn't look too hard to do from here. Once that's done and y'all have a chance to test it, version 2.0 will go into the ports tree. You can get the new version here: http://dougbarton.us/portmaster Enjoy! Doug - -- This .signature sanitized for your protection -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.7 (FreeBSD) iD8DBQFHgZGPyIakK9Wy8PsRA+KsAJ9dvpDU/tLuxIRdy3qj1yJ6WKnVKwCeJuVw 0jglTuENhygybN7BXr9R3kk= =9xDk -----END PGP SIGNATURE-----