Doug Barton
 
Personal Stuff

My home page

My Resume

My Corporate Website

My LinkedIn Page

I'm a twit!

Contact me

Nerd Stuff

Portmaster Funding Proposal

DNS related documentation I have written, including my bind-users@isc.org FAQ

Some documentation on Bash, including an article of mine on prompting

A script to help you manage your FreeBSD ports

PGP-related items including my key and some scripts I wrote to use PGP with Pine

An article about setting up an IPv6 Tunnel on a Linksys WRT54G

Some FreeBSD-related items

Fun Stuff

Some humorous pictures I've collected

A Redneck Farm Kid In The Marine Corps

Take a quiz that will illustrate your views about morality, relationships, and honesty.
Portmaster

I am currently trying to secure funding for continued development of portmaster. Please see the Portmaster Funding Proposal page for more details. Thanks.

Does the world really need one more port management tool? Well I'm not sure about the world, but I do know that none of the existing options worked for me, for a variety of reasons. The two biggest being that I do not want to have to install yet another language, and I do not want the overhead of a database to manage the information about what ports I have installed, etc.

The goals I started with for this project were to use /bin/sh so that nothing else would have to be installed for it to work, and to make use of the existing data in /var/db/pkg. I now have something that meets those goals, and does everything I want it to do, so I'm interested in sharing it with the community.

In addition to the above, the script has the following features:
  • User can specify the port to upgrade (or install) either by directory in /usr/ports (whether the port is already installed or not), or by directory in /var/db/pkg
  • Updates and repairs (as needed) entries for dependencies in both +CONTENTS and +REQUIRED_BY files for both the port that is being updated, and any ports that depend on it
  • Runs make config recursively before starting build
  • Recursively checks and upgrades (or installs) all dependencies
  • User can force upgrades of all dependent ports
  • Runs make clean before starting the build (can be disabled)
  • Offers the user the opportunity to delete stale distfiles
  • Supports /usr/ports/MOVED
  • Reads /usr/local/etc/portmaster.rc and $HOME/.portmasterrc for global and per-user defaults. These can be overridden by the command line
New features added based on user feedback:
  • Supports non-default settings of PORTSDIR and PKG_DBDIR
  • Update all installed ports that are out of date (or add the "force" option to update everything)
  • Interactive update mode (prompts for each update)
  • File glob'ing for ports in /var/db/pkg
  • Option to rebuild port, and ports that depend on it
  • Unattended mode which chooses defaults for portmaster options
  • Downloads port distfiles in the background
There are many other features that are detailed in the manual page.

If you are interested in this script, have suggestions for features, or other feedback, please drop me a line.

The script can now be found in ports/ports-mgmt/portmaster
If you have the FreeBSD ports collection installed, link to it here