gcc43 installed corrupted receipt; made MacPorts unusable
N_Ox
n.oxyde at gmail.com
Thu Sep 13 06:13:25 PDT 2007
Le 13 sept. 07 à 12:43, Ryan Schmidt a écrit :
> So we had a problem with the gcc43 port (until it was fixed in
> r29009) where just attempting to install gcc43 rendered the entire
> port system unusable, because MacPorts couldn't process the receipt
> that got installed. See this ticket:
>
> http://trac.macports.org/projects/macports/ticket/12698
>
> The problem occurred when variant descriptions were added to the
> port like this (in r28362):
>
> variant odcctools
> description "some description" {
> [snip]
> }
>
> Those of us less familiar with tcl syntax rules (me; probably most
> of us) probably didn't catch that this should have been written:
>
> variant odcctools \
> description "some description" {
> [snip]
> }
>
> or:
>
> variant odcctools description "some description" {
> [snip]
> }
>
> I don't know enough about tcl to understand why the original
> version was unacceptable, and in particular, if it was
> unacceptable, why it didn't blow up much earlier. What surprised me
> was that "port lint" didn't find anything wrong, and that "port
> install" didn't complain at all about the port, until the entire
> thing exploded during the install phase. "port info" gave a slight
> clue when it printed "(Variants: universal, darwin_8,
> powerpc, )" (the two variants didn't show up, but there was a comma
> and a blank after the powerpc variant). "port variants" similarly
> didn't show the two variants, but had an extra blank line at the end.
>
> What can we do to prevent portfiles malformed in this manner from
> breaking MacPorts in the future? It seems that there are parts of
> the code that are assuming things that are not true in portfiles
> malformed in this way. Perhaps to be more robust we should add more
> sanity-checking code to base. But I'm not sure where or how.
>
Shouldn't it just check if variant procedure is called with either 1
or 4 arguments?
--
Anthony Ramine, the infamous MacPorts Trac slave.
nox at macports.org
More information about the macports-dev
mailing list