Not really. The /opt/local directory hierarchy is root:admin, and the work directories exist as part of this hierarchy, so simply creating the work directory requires root privileges. This is in general a Good Thing, as it means unprivileged users can't build their own packages through port. You could go and modify the /opt/local/var/db/dports/build tree to be user-writable, at which point you can *build* software without sudo (using, say, port destroot <software>, though you'd have to install dependencies first or it will try to do so and fail at installation), and then install it with sudo.

If you set the entire /opt/local tree to be user-writable, you should be able to fully install stuff without sudo, as long as it doesn't go out of that tree (a common exception that comes to mind is stuff that installs in /Applications/DarwinPorts).

I assume you're concerned about random software build processes being run with root privileges, yes? It seems to me the best solution is to run the actual configure/build/destroot steps themselves in an unprivileged child process (after ensuring that the extracted source is user-writable). Is that what you'd be interested in seeing?

On Feb 1, 2007, at 2:41 AM, Michael K. Edwards wrote:

Oh, on that note -- is there a sensible way to avoid having anything

other than the actual package installation step run as root?  If I had

any sense I would have asked that before the first time I typed "port

install".


-- 
Kevin Ballard
http://kevin.sb.org
eridius@macports.org
http://www.tildesoft.com