Error after trying to upgrade installed

Ryan Schmidt ryandesign at macports.org
Fri Jan 23 04:27:51 PST 2009


On Jan 19, 2009, at 07:37, robert delius royar wrote:

> So much traffic on this thread, so much time spent answering  
> questions. But I do not recall any of the answerers trying
> port provides /opt/local/lib/libintl.dylib

Sorry; I thought it was already understood that libintl is the  
internationalization library and that it is provided by gettext.


> That would have pointerd out that the initial problem of gettext  
> wanting to reinstall itself (perhaps for no good reason) had  
> removed the dylibs that gettext provides and uses, itself.

"For no good reason" depends on your situation. In this particular  
case, gettext was updated from 0.17_3 to 0.17_4 because some 64-bit  
issues were corrected. If anyone had installed 0.17_3 with the  
+universal variant and had requested 64-bit architectures in the  
universal_archs variable in macports.conf, they would have had an  
incorrectly-functioning gettext, so for those users, it was necessary  
to force a rebuild by increasing the port's revision. If you did not  
have gettext installed with the +universal variant, or had not  
selected any 64-bit architectures in macports.conf (the default is  
only the 32-bit architectures ppc and i386) then you would not have  
been affected and would not need to rebuild gettext.

When using MacPorts, you can either assume that MacPorts maintainers  
know what they are doing and if they are requesting you to rebuild a  
port (as evidenced by it showing up in "port outdated") then you  
rebuild it. Or if you have the inclination you can dig deeper,  
subscribe to the macports-changes mailing list, monitor the changes  
taking place to the ports you use, and evaluate for yourself whether  
you need the changes provided in a new port revision, and if you  
don't, then don't upgrade the port until it's updated again later  
with a fix that you do want.

For many users the former strategy is sufficient, even to the point  
of just running "sudo port sync" and "sudo port upgrade outdated" and  
letting MacPorts take care of everything.


> I believe this highlights some error in the 1.70 base.  I say this  
> because it seems to be faulty UI that allows a user to specify a  
> variant that when in place the port command can be broken in a  
> simple upgrade.

I agree it's a MacPorts base issue. A ticket has now also been filed  
for this issue:

http://trac.macports.org/ticket/18149

In it, I comment:

"Actually it surprises me that MacPorts base is shelling out to an ln  
command at all; why aren't we using the [file link] Tcl command?"

Does anybody know the answer? I haven't yet looked through the  
history of base to see if the commit messages give any indication.


> I mention above "perhaps for no good reason" because last week when  
> I upgraded graphviz which upgraded gd2, I got into a loop of trying  
> to upgrade freetype, zlib and gettext, none of which were outdated  
> according to port.  I finally had to force the reinstallation of  
> zlib and gettext, force uninstall gd2, freetype, zlib, and gettext  
> and start over.

Without seeing exactly what commands you typed and what output you  
got, I can only speculate that perhaps you used the -f flag to port  
upgrade and did not also use the -n flag. This can result in  
dependencies being rebuilt even if they are not outdated -- possibly  
even multiple times. Nobody wants this, so one should never use the - 
f flag with port upgrade without also using the -n flag. However,  
MacPorts should never get in any kind of "loop". It might seem that  
way, but if you let it run all the way through (which might take  
prohibitively long) it would eventually end, so it's not a loop.


> That was not the first time I had seen this loop of upgrading a  
> port that was the same version as the curreny installed version,  
> followed by failing to install the "new" version because a version  
> was already in place (the same version).  In some cases the process  
> stopps there; in others it moves to the next port that it either  
> "thinks" should be upgraded or really should be.  Then if that port  
> depends on one of the ports it has mistakenly identified as  
> outdated, it goes into the same pattern.  On a few occassions I  
> have found libraries from those ports which wer not in need of  
> replacement--but replaced anyway--missing. TimeMachine is useful,  
> then,

If you could provide actual commands typed and verbatim output  
received the next time you encounter this problem, that might be  
helpful to getting it resolved.


> I have the last model of the G5 iMac running 10.5.6, and the  
> portinstalltype is direct, and portarchivemode is no.  1.7 seems as  
> though it has sections that are not sure what "direct" mode is by  
> the way; some ports I have upgraded recently report "activating."   
> I have not used image mode on this machine at all.

Direct mode is certainly less well tested than image mode. I've never  
used it. Is there a particular reason why you are using it?

There are ports that define post-activation phases. Perhaps those are  
getting executed even in direct mode, and that is why you see  
MacPorts stating it is activating a port, even though in direct mode  
there isn't an activation phase...

If you could say exactly what ports do this, we could investigate  
further.




More information about the macports-users mailing list