Ryan Schmidt ryandesign at
Wed Sep 16 23:00:44 PDT 2009

On Sep 17, 2009, at 00:42, Scott Haneda wrote:

> On Sep 16, 2009, at 10:25 PM, Ryan Schmidt wrote:
>> On Sep 17, 2009, at 00:23, Ryan Schmidt wrote:
>>> On Sep 17, 2009, at 00:19, Scott Haneda wrote:
>>>> So this ui_msg is not designed to abort, it is just informational?
>>> It is just informational. It does not abort. mysql5 installs  
>>> without server support. The message reminds you if you want server  
>>> support you now have to additionally install mysql5-server.
>> I used the same approach when I removed variants from graphviz and  
>> php5. Would it be better to abort the installation process and  
>> force the user to deal with the situation right there?
> I tend to lean on it should abort then.  If the new way is to mysql5- 
> server then the +server method probably should not do anything.

Indeed, the +server variant does currently not do anything -- except  
print a message explaining to the user that it doesn't do anything  

> If it still installs and does not even install the launchd item, to  
> me, that is a little confusing.

The port still installs, but the variant no longer causes any changes  
in the installation.

My hope was that a user could "sudo port upgrade", would notice the  
message that they now need to add a new port, and that they would then  
install that port. One drawback with the current implementation is  
they will still see the message about the variant being obsolete even  
if they have already installed the corresponding separate port. This  
would be easy to correct, for example by having the separate port  
install a flag file somewhere and having the variant check for the  
presence of that file.

The other drawback is that the user might not see the message, as  
happened for you because of the copious amount of information shown by  
debug mode. Other users upgrading many many ports at once might also  
miss the message as it scrolls off the top of their terminal. The  
alternative would be to have the port stop with an error message if  
the obsolete variants are selected. In order to proceed with the  
upgrade, the user would have to install the port without these  
variants, and then install the relevant separate ports. This might be  
the better thing to do. It would require the user to acknowledge the  

> I have never seen it done in MacPorts, but can it be interactive?  Y/ 
> N for wanting to continue as it stands, or abort, clean, and maybe  
> even allow the user to move into a mysql5-server install right there.

No, it cannot be interactive. There is no means for this to occur.

To take an example, the mysql5 port cannot cause the mysql5-server  
port to install, because the mysql5-server port depends on the mysql5  
port. It would create a circular dependency.

More information about the macports-users mailing list