To port maintainers: portmaster -a

Hi,

This post probably belongs in an off-topic thread since it's not specific to any one port. I'd like to express my feedback generally to port maintainers.

The upgrade instructions posted in /usr/ports/UPDATING are generally excellent. And they can probably be enhanced to better serve users of your ports. Specifically,
Code:
portmaster -a
or
Code:
portupgrade -a
as a port update instruction is imprecise at best and inadvisable at worst.

The command would rebuild all ports for which a newer version exists in the ports tree. However, that includes even ports which do not have a dependency on or any relation at all to your port. And the user may have good reasons for refusing to install the newest version of any port unrelated to yours.

In addition, the command may not be entirely sufficient. If a dependent port were to be updated first, before your port, then
Code:
portmaster -a
might not rebuild a dependent port if it were up to date.

At the very least a choice of two options would be great. A less specific command of
Code:
portmaster -a
in addition to a more specific command of
Code:
portmaster -R -r
- or the equivalents - would probably be a big help at little cost. And if the former were truly appropriate, then a brief explanation why would help the users better gauge the impact of change.

Given the time, the users could pick and choose which ports to update. Keep in mind not everyone has yet acquired expert skill. But multiply those man-hours spent by the hundreds of thousands or millions, and you will probably agree that better and more specific update instructions will save countless hours and best serve your user base.

Sincerely, and thanks for your consideration.
 
The command would rebuild all ports for which a newer version exists in the ports tree. However, that includes even ports which do not have a dependency on or any relation at all to your port. And the user may have good reasons for refusing to install the newest version of any port unrelated to yours.

See /usr/local/etc/pkgtools.conf. Add such ports to HOLD_PKGS.

Not that I am in anyway a maintainer of portupgrade, but I don't believe portupgrade -a was intended to be use "willy-nilly". I've never used portmaster so I can't reply to anything said about it. But, with portupgrade -a, I can recall dependency build problems as you describe with portmaster and I've been using it for 5 years or so. The instructions to issue a portupgrade -a in UPDATING are usually for some major update to a monster port like GNOME that has some many dependents, that it makes sense. Just my 1/2 cents.
 
I did post my thoughts to the mailing list. I'll mark this thread as solved, since it was really intended just as feedback from a user.
 
I agree with what you are saying. Using a command that covers all of the ports is time consuming and not necessary. It's like saying: "we've changed the side view mirror on the car. To install it, disassemble the entire car, put the new one on, and reassemble."
 
You can use pkg_libcheck from sysutils/bsdadminscripts to check for ports that really need an update after a shared lib upgrade.
Just update the lib first, then run # pkg_libcheck and it will run ldd on all binaries and tell you if some libs are not found.
 
Pushrod said:
I agree with what you are saying. Using a command that covers all of the ports is time consuming and not necessary. It's like saying: "we've changed the side view mirror on the car. To install it, disassemble the entire car, put the new one on, and reassemble."

That's absolutely not what portmaster/portupgrade's -a flag does ...
 
DutchDaemon said:
That's absolutely not what portmaster/portupgrade's -a flag does ...

Indeed, it's more like "disassemble everything that hasn't been upgraded and rebuild it whether it fits your old car or not".
 
I didn't mean to start a thread that ends up as vi vs. emacs or Windows vs. linux. I just wanted to express to port maintainers that the -a switch is really overkill in most instances. Even png and perl have upgrade instructions tilted toward the -r switch.

There's a newer version of mysql in the ports tree. Great! But I don't want it yet. I have my reasons which are legitimate to me. There's also a newer version of perl, and samba, and ... do they really have anything at all to do with gtk anyway?

The reasons not to use the -a switch seem so numerous and obvious, especially given that an -r switch exists. At best the -a switch is imprecise, and at worst can do harm in an inappropriate circumstance.

My car isn't any better or worse than anyone else's. But please, please don't force me to work on it all darn weekend if I don't really need to. I don't really know if I need to rebuild my carbeurator or not. But if the instructions say to do so then I will. And I'll be bicycling to & fro for weeks on end afterward.

This forum aspires to level of professionalism that just doesn't seem to exist anywhere else. It is an extension of FreeBSD. And it seemed worthwhile to ask port maintainers to try their very best too. Nobody wants to be the weakest link in the chain..
 
Back
Top