Something is confused in my MacPorts setup. After a selfupdate tonight (which got version 1.4) it tries to upgrade the same ports over and over again, even though they don't need upgrading. For example when I execute "port -uf upgrade gnucash" I get the sequence ---> Deactivating expat 2.0.0_1 ---> Uninstalling expat 2.0.0_1 ---> Installing expat 2.0.0_1 ---> Activating expat 2.0.0_1 I've seen this for expat about 6 times so far, and similar things happen with many other ports. At least it's not rebuilding the ports, so it doesn't take too long. Also, it tries to install XFree86 even though I have Apple's X11 installed (correctly I think, I've been using it for years and have installed many ports that depend on it). After telling me it won't install XFree86 because I have X11 installed, it then proceeds to install it anyway. Does anyone have any idea what is wrong? -- Mike Alexander mta@umich.edu Ann Arbor, MI PGP key ID: BEA343A6
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I see this behavior often enough to know that the best way to prevent this is to actually run this command 'port -uvfn upgrade gnucash'. HTH - -Altoine Mike Alexander wrote:
Something is confused in my MacPorts setup. After a selfupdate tonight (which got version 1.4) it tries to upgrade the same ports over and over again, even though they don't need upgrading. For example when I execute "port -uf upgrade gnucash" I get the sequence
---> Deactivating expat 2.0.0_1 ---> Uninstalling expat 2.0.0_1 ---> Installing expat 2.0.0_1 ---> Activating expat 2.0.0_1
I've seen this for expat about 6 times so far, and similar things happen with many other ports. At least it's not rebuilding the ports, so it doesn't take too long.
Also, it tries to install XFree86 even though I have Apple's X11 installed (correctly I think, I've been using it for years and have installed many ports that depend on it). After telling me it won't install XFree86 because I have X11 installed, it then proceeds to install it anyway.
Does anyone have any idea what is wrong?
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGEyhMS0foIafBdlkRAnqsAKCUT9op/LdfFc27vYVc3N52GSrJQQCfebg9 ZYM3XGtHkPM6iYcx22Jauow= =5yA4 -----END PGP SIGNATURE-----
On Apr 3, 2007, at 23:16, Mike Alexander wrote:
Something is confused in my MacPorts setup. After a selfupdate tonight (which got version 1.4) it tries to upgrade the same ports over and over again, even though they don't need upgrading. For example when I execute "port -uf upgrade gnucash" I get the sequence
---> Deactivating expat 2.0.0_1 ---> Uninstalling expat 2.0.0_1 ---> Installing expat 2.0.0_1 ---> Activating expat 2.0.0_1
I've seen this for expat about 6 times so far, and similar things happen with many other ports. At least it's not rebuilding the ports, so it doesn't take too long.
You have requested that MacPorts force the reinstallation or upgrade of gnucash and all its dependencies by using the -f flag. Unfortunately MacPorts is not very smart here, and will reinstall each port each time it is encountered in the dependency chain, which may be many times. You should either use port -u upgrade gnucash to upgrade gnucash and all dependencies, *but only if that's necessary*, or use port -ufn upgrade gnucash to force the upgrade or reinstallation of gnucash and only gnucash (and none of the dependencies).
Also, it tries to install XFree86 even though I have Apple's X11 installed (correctly I think, I've been using it for years and have installed many ports that depend on it). After telling me it won't install XFree86 because I have X11 installed, it then proceeds to install it anyway.
Does anyone have any idea what is wrong?
I don't know what's going on there. You do have both X11User.pkg and X11SDK.pkg installed? Check /Library/ Receipts to verify that this is so. XFree86 was just updated to a new version. I don't know if that changed its behavior at all.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 So what is the correct, fail-safe, guaranteed to work syntax to upgrade a port? I keeping thinking that passing the "u" argument would do it but not so much. port upgrade <some port> fails, if there are dependencies, regardless of the presence of the "u." I have to use "f" and it doesn't seem right that I should have to force something that is supposed to be possible without it. the last message I saw on this suggested using -ufn. this unpacks as "upgrade" "force" "no dependencies." Why isn't just "u" sufficient? - -- Paul Beard contact info: www.paulbeard.org/paulbeard.vcf pictures: http://www.flickr.com/photos/pdb206/ Are you trying to win an argument or solve a problem? -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (Darwin) iD8DBQFGGCMsfHLPwpj1/JQRAmWuAKCt4PrKczo1mn19uyvwVlwac7aZ1ACcCLBV jB6k/3fPZ8uC1M2lSqwdDLI= =YR1J -----END PGP SIGNATURE-----
On Apr 7, 2007, at 18:03, Paul Beard wrote:
So what is the correct, fail-safe, guaranteed to work syntax to upgrade a port? I keeping thinking that passing the "u" argument would do it but not so much. port upgrade <some port> fails, if there are dependencies, regardless of the presence of the "u." I have to use "f" and it doesn't seem right that I should have to force something that is supposed to be possible without it.
the last message I saw on this suggested using -ufn. this unpacks as "upgrade" "force" "no dependencies." Why isn't just "u" sufficient?
If some other ports depend on the port you're trying to upgrade, then port will complain, unless you use the force option. I wish it weren't that way -- I wish port were smart enough to figure out that you are installing an upgrade to the port, not merely uninstalling the port, therefore it should allow the (momentary) uninstallation. However, port is not that smart. -ufn is suggested because -u uninstalls the previous version, -f forces the uninstallation, and -n prevents dependencies from also being forced to rebuild, which they otherwise would be with -f.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Apr 7, 2007, at 4:49 PM, Ryan Schmidt wrote:
If some other ports depend on the port you're trying to upgrade, then port will complain, unless you use the force option. I wish it weren't that way -- I wish port were smart enough to figure out that you are installing an upgrade to the port, not merely uninstalling the port, therefore it should allow the (momentary) uninstallation. However, port is not that smart.
It seems confusing to have word commands (install/uninstall) along with single-letter arguments, in that case. port upgrade <some port> should (says a guy who can't code) just upgrade the port, upgrade any dependences (by which I mean things it depends on) if needed, and clean up after itself. Dependent ports, things that rely on the port you upgrade, do not get upgraded automagically. So, theoretically, if you upgrade gettext, you have to upgrade libiconv and expat. But if you upgrade expat, gettext is not upgraded. - -- Paul Beard contact info: www.paulbeard.org/paulbeard.vcf pictures: http://www.flickr.com/photos/pdb206/ Are you trying to win an argument or solve a problem? -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (Darwin) iD8DBQFGGDH0fHLPwpj1/JQRAqsbAJ4yDdYw7edsP2JDuXJwH0w96oheLgCgtYwA TWh77yzwmEtme5TgWFYPlGI= =d8Yo -----END PGP SIGNATURE-----
On Apr 7, 2007, at 8:06 PM, Paul Beard wrote:
On Apr 7, 2007, at 4:49 PM, Ryan Schmidt wrote:
If some other ports depend on the port you're trying to upgrade, then port will complain, unless you use the force option. I wish it weren't that way -- I wish port were smart enough to figure out that you are installing an upgrade to the port, not merely uninstalling the port, therefore it should allow the (momentary) uninstallation. However, port is not that smart.
It seems confusing to have word commands (install/uninstall) along with single-letter arguments, in that case. port upgrade <some port> should (says a guy who can't code) just upgrade the port, upgrade any dependences (by which I mean things it depends on) if needed, and clean up after itself.
That's what it does (sort of). It's just that most of the time, it's faster do do: port -unf upgrade outdated port upgrade foo will attempt to upgrade foo and anything else in it's dependency tree that needs upgrading. It's just that it decides to play it safe and not uninstall/deactivate anything that something else is using unless you force it to (so upgrade won't break existing installs).
Dependent ports, things that rely on the port you upgrade, do not get upgraded automagically.
That's correct, because in the 'normal' case it's not what you want to have happen. You can request it to happen with -R.
So, theoretically, if you upgrade gettext, you have to upgrade libiconv and expat. But if you upgrade expat, gettext is not upgraded.
-- Daniel J. Luke +========================================================+ | *---------------- dluke@geeklair.net ----------------* | | *-------------- http://www.geeklair.net -------------* | +========================================================+ | Opinions expressed are mine and do not necessarily | | reflect the opinions of my employer. | +========================================================+
participants (5)
-
Altoine Barker
-
Daniel J. Luke
-
Mike Alexander
-
Paul Beard
-
Ryan Schmidt