#12698 closed defect (fixed)
gcc43 install causes "list must have an even number of elements"
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | High | Milestone: | |
Component: | ports | Version: | 1.5.2 |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt), mww@…, edkosh@…, e_wiemann@… | |
Port: |
Description
Several people on the list have now reported that installing gcc43 causes something in MacPorts (the registry?) to get corrupted. Observe:
$ port installed The following ports are currently installed: apache2 @2.2.4_1 (active) apr @1.2.11_0+universal (active) [snip] xrender @0.9.0_1+darwin_8+universal (active) zlib @1.2.3_1+universal (active) $ sudo port destroot gcc43 ---> Verifying checksum(s) for gcc43 ---> Extracting gcc43 ---> Configuring gcc43 ---> Building gcc43 with target bootstrap ---> Staging gcc43 into destroot $ sudo port install gcc43 ---> Installing gcc43 4.3-20070907_0+darwin_8 list must have an even number of elements Error: Status 1 encountered during processing. $ port installed Error: port installed failed: list must have an even number of elements No ports are installed. $
I confirmed this just now on a MacBook Pro 2.16GHz with Mac OS X 10.4.10, Xcode 2.4.1 and MacPorts 1.5.2. This is very bizarre. I do not know if this is a port bug or a base bug. It seems to me that a port bug shouldn't be able to corrupt the registry though, so I think base is at least partially at fault here.
After destrooting I looked at the list of installed files. The file and directories didn't have any weird characters in their names (they all matched the regex [a-z0-9.+_-]).
Attachments (1)
Change History (7)
comment:1 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | edkosh@… e_wiemann@… added |
---|
Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | gcc43.diff added |
---|
possible solution; currently testing
comment:2 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
I believe r28362 introduced this bug, and I believe the attached patch to the gcc43 portfile will fix it. I'm currently installing gcc43 again to see if that fixes it.
comment:3 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Confirmed that the patch does fix the issue. Committed in r29009; hope you don't mind, mww, but I felt it was best to fix this problem as soon as possible.
comment:4 Changed 17 years ago by mww@…
Resolution: | → fixed |
---|---|
Status: | new → closed |
I don't mind people fixing my bugs - thanks! :)
comment:5 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)
Milestone: | MacPorts base bugs → Port Bugs |
---|
To anyone whose MacPorts install has been rendered confused by the broken version of gcc43, you can recover by moving the damaged gcc43 receipt out of the way:
sudo mv /opt/local/var/macports/receipts/gcc43/4.3-20070831_0+darwin_8 /tmp/
or:
sudo mv /opt/local/var/macports/receipts/gcc43/4.3-20070907_0+darwin_8 /tmp/
depending on what version you have.
I guess I'll switch the milestone to Port Bugs and leave this closed, but someone should really still take a look at base and see if the situation can be improved so that this kind of total breakage is prevented in the future. port
should probably have complained right away that the variant specification was malformed. port lint
should also have detected a problem.
This problem was reported by Edwin Koshimoto about gcc43-4.3-20070831_0 on 2007-09-07 and by Eckhard Wiemann about gcc43-4.3-20070907_0 on 2007-09-12.