Don't call exit (again) (was: Re: [26399]
trunk/dports/math/nestedsums/Portfile)
Jordan K. Hubbard
jkh at brierdr.com
Fri Jun 22 15:57:32 PDT 2007
That seems a lot more complicated than my ui_fatal procedure
suggestion. :-)
- Jordan
On Jun 21, 2007, at 1:48 PM, Ryan Schmidt wrote:
> On Jun 21, 2007, at 15:14, Landon Fuller wrote:
>
>> On Jun 21, 2007, at 02:45, Ryan Schmidt wrote:
>>
>>> On Jun 21, 2007, at 04:31, Ryan Schmidt wrote:
>>>
>>>> But could you please not output messages and exit merely in a
>>>> platform statement? Please do so only within a stage such as pre-
>>>> fetch, e.g.:
>>>>
>>>> platfrom darwin 7 {
>>>> pre-fetch {
>>>> ui_msg "GiNaC is not supported on Panther (OS X 10.3.x)."
>>>> exit 1
>>>> }
>>>> }
>>>>
>>>> Otherwise, people running port info, portindex, etc. on darwin 7
>>>> will be inconvenienced by the exit.
>>>
>>> Sorry; I didn't see Chris already made these points.
>>
>> It really bears re-iterating though. Calling exit(1) in a Portfile
>> is just bad news, at any stage. Maybe we should remove that
>> procedure from the Portfile Tcl interpreter ...
>
> Well, true, but the only reason anyone's using it is to handle the
> situation where a port is incompatible with some OS version or some
> processor architecture. If we had a way of specifying that in the
> portfile syntax, then we wouldn't need to call exit. It would also
> have the advantage of standardizing the message that gets output to
> the user in these situations, rather than leaving it up to the
> portfile author in each case. Hmm.... Maybe
>
> platform darwin 7 {
> incompatible
> }
>
> ? Based on the auto-selected platform variant, MacPorts could then
> construct nice error strings.
>
> However, this wouldn't address an earlier concern of mine: why is a
> port incompatible with an OS? Is the OS too old or is it too new? We
> might have ports that need both situations. We could say
>
> platform darwin 7 {
> incompatible too_new
> }
>
> where the default is too_old. Or we could say
>
> platform darwin 7 {
> too_new
> }
>
> But that still doesn't tell the user which OS version(s) would be
> acceptable. Maybe we should think differently... not a platform
> variant, but some other directive:
>
> darwin.minimum 7
> darwin.maximum 8
>
> One could specify either or both (or none) of these. This would
> satisfy all variants, and would enable MacPorts to construct helpful
> messages to the user. ("Sorry, ${name} requires at least Mac OS X
> 10.3." or "Sorry, ${name} only works on Mac OS X 10.2 and earlier.")
>
> Doesn't address the processor architecture issue... that could still
> be
>
> platform i386 {
> incompatible
> }
>
> ("Sorry, ${name} is not compatible with Intel processors.")
>
> There could even be some options:
>
> platform i386 {
> incompatible temporary
> }
>
> ("Sorry, ${name} is not compatible with Intel processors at this
> time.")
>
> platform powerpc {
> incompatible permanent
> }
>
> ("Sorry, ${name} is not (and will never be) compatible with PowerPC
> processors.")
>
> Finally.... maybe we could still allow the port author to either add
> to or replace the default message.
>
> platform powerpc {
> incompatible permanent "Sorry, ${name} is written in Intel assembly
> code, so it cannot work on PowerPC processors."
> }
>
>
> _______________________________________________
> macports-dev mailing list
> macports-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/macports-dev
More information about the macports-dev
mailing list