"the best" port update tool

Doug Barton dougb at FreeBSD.org
Wed Aug 23 06:30:19 UTC 2006


I wanted to let some others respond to this post before I did, but now that
they have ...

Michael W. Lucas wrote:
> Hi,
> 
> After a database headache caused by my own doofusity,

D'oh, I hate when that happens. :)

> A search of the mailing list archive doesn't seem to lead me to a
> clear successor or improvement upon portupgrade.  Is portupgrade still
> as good as it gets, or are we headed towards another tool any time
> soon?

My view is that portupgrade and portmaster are serving two different
audiences, with a non-trivial set of users in common. I rarely ever use
pre-built packages, so I don't really plan to duplicate portupgrade's
package handling abilities. I also really dislike the idea of external
databases, so between that and ruby I never even tried portupgrade myself.
Like mergemaster, the portmaster script grew organically out of some simple
stuff that I got tired of doing over and over again by hand, and has now
evolved to be fairly full featured, in large part as a result of user
requests and feedback.

IMO portmaster now contains a fairly complete set of tools to manage your
ports. Combined with sysutils/portconf you have the same basic functionality
of portupgrade without the overhead of external databases or a scripting
language that's not in the base.

This is not to say that there is anything _wrong_ with portupgrade. If you
use it and like it, or more importantly if you need its tools, knock
yourself out. As I said above, portmaster isn't for everyone, it's just one
possible way to tackle a subset of the problems portupgrade is designed for.

Responding to bits of some of the other posts ...

Jiawei Ye wrote:
> 3) Portmaster
> This is what I am using now,

Nice to hear! And thanks to the others that had kind things to say about it
as well.

> along with portconf to define per-port
> make flags and options. The only things I miss from portmaster are the
> pkg_deinstall ability

I think the new -e option, and the enhanced -s option come close to what
you're looking for. If you'd like to let me know what else you think we
should do here, I'll be glad to think it over.

> and an easy way to define alternative dependancies.

That turns out to be a rather icky problem, but mezz came up with an
interesting idea that I need to work through in more detail, so it's not
hopeless. :)

> Speed doesn't seem to be a problem compared to
> portmanager though it is written as a shell script.

Thanks! I have worked pretty hard to try and optimize all the things that
portmaster is actually doing, as opposed to time spent waiting for the ports
tree.

> One feature from portupgrade I would like to see in portmaster is the
> ability to go on upgrading other ports if one of them failed.

That gets very tricky, since portmaster does a depth first traversal of the
dependencies, so if something fails it's very likely that the things "above"
it would fail as well. But as always, patches are welcome. :)

Scot Hetzel wrote:
> While the portmanager, portupgrade, and portmaster tools allow you to
> keep your specific port options in a file,

Not that it's a major issue, but portmaster does not actually have this
feature.

> they are incompatible with
> each other and when building directly from /usr/ports, as the port
> options in these seperate files are not available to the other tools
> or to /usr/ports.  This deficiency has been fixed with the
> sysutils/portconf port, where you can specify your port options in
> PREFIX/etc/ports.conf file, and these tools and direct building from
> /usr/ports will use these port options.

Now this I agree with, portconf is a great tool.

> For example if you need a global WRKDIRPREFIX, you can use the
> following in the ports.conf file:
>
> */*: WRKDIRPREFIX=/usr/obj

You _could_ do it this way. You could also put your globals in
/etc/make.conf. Although the more time goes by, the less comfortable I am
with stuff in make.conf.

In any case, I hope this helps answer Michael's original question, even if
it is more info that he was bargaining for. :)

Doug

-- 

    This .signature sanitized for your protection



More information about the freebsd-ports mailing list