2007-07-30 kl. 21.03 skrev Ryan Schmidt:
Problems caused by old Xcode versions are reported by users with some regularity. I suppose we could add something to the FAQ, but users don't always read the FAQ, and the first step of the first section of the installation guide already reads: "Download and install the latest version of Xcode Tools—do not install an older version from the OS X 10.4 install disk or some ports may fail to install."
We should not allow users to run into this problem. Can we please modify MacPorts base to issue a fatal error and refuse to do anything unless the latest Xcode (2.4.1 on 10.4.x, 1.5.x on 10.3.x) is installed? I think this would be a good idea. When new versions of Xcode are released, we can update base as needed.
This is now http://trac.macports.org/projects/macports/ticket/12794 I believe it is valid to print out a warning if Xcode is older than 2.4 for Tiger and 1.5 for Panther (no direct warning for Jaguar yet)
Tentative -1, simply because Xcode is a massive download. Most things will build with an outdated version, I don't think it's particularly nice to force people to download a gigabyte update if they don't need and/or want to. Also, we shouldn't try to second guess people who do know what they're doing with an "unsupported" Xcode version.
Fine, then print a big honkin' warning. If MacPorts ever encounters an error during the configure or build phase of a port, have it print something like this at the end:
YOU ARE USING AN OUTDATED VERSION OF XCODE, AND THIS MAY HAVE CAUSED THE PROBLEM YOU JUST ENCOUNTERED. Please go to http://developer.apple.com/ and download and install the latest version of Xcode. Then clean this port and try installing or upgrading it again.
I have added the version checks to configure, to do something with. They are then called $XCODE_VERSION and $MACOSX_VERSION (naturally?) Technically Xcode isn't strictly required*, but shouldn't be outdated. --anders PS. When I say "not really required" I mean that it is possible both to run with a limited subset of the full Xcode installation and also possible to run MacPorts without any compilation tools at all - i.e. if you _know_what_you_are_getting_yourself_into_ So while it is perfectly valid to print out a warning, I don't think it should abort any interesting experiments with building in chroots and using binary archives for the more technical user. But it also needs a matching *runtime* check for GCC, in port(1).