Opened 17 years ago

Closed 17 years ago

Last modified 15 years ago

#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)

gcc43.diff (847 bytes) - added by ryandesign (Ryan Carsten Schmidt) 17 years ago.
possible solution; currently testing

Download all attachments as: .zip

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: newclosed

I don't mind people fixing my bugs - thanks! :)

comment:5 Changed 17 years ago by ryandesign (Ryan Carsten Schmidt)

Milestone: MacPorts base bugsPort 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.

comment:6 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.