Opened 12 years ago

Closed 12 years ago

#19921 closed defect (fixed)

Ice 3.3.1 requires mcpp 2.7.2 not 2.7

Reported by: n.a.hawes@… Owned by: blair (Blair Zajac)
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: Cc:
Port: ice-cpp

Description (last modified by mf2k (Frank Schima))

Ice 3.3.1 should be built with mcpp 2.7.2, but the ice-cpp port downloads mcpp 2.7 instead. I'm curious as to why it doesn't use the mcpp 2.7.2 port that I already have installed!

The use of 2.7 results in an error when using slice2cpp, e.g.

../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice --stream ../../../slice/Ice/BuiltinSequences.ice

terminate called after throwing an instance of 'IceUtil::NullHandleException'
  what():  ../../include/IceUtil/Handle.h:46: IceUtil::NullHandleException

For more see: http://www.zeroc.com/forums/bug-reports/4258-build-problem-ice-3-3-1-a.html

Requirement is listed here: http://www.zeroc.com/download.html#src

Attachments (3)

ice-cpp-mcpp-ugrade-and-patches.diff (1.9 KB) - added by n.a.hawes@… 12 years ago.
patch-Ice-3.3.1-1.diff (6.1 KB) - added by n.a.hawes@… 12 years ago.
patch-Ice-3.3.1-2.diff (716 bytes) - added by n.a.hawes@… 12 years ago.

Download all attachments as: .zip

Change History (14)

comment:1 Changed 12 years ago by mf2k (Frank Schima)

Description: modified (diff)
Owner: changed from macports-tickets@… to blair@…

comment:2 Changed 12 years ago by blair (Blair Zajac)

This works for me.

Can you send a patch for the changes you are suggesting.

Thanks, Blair

comment:3 Changed 12 years ago by n.a.hawes@…

Me? I'm afraid I don't know how the port system works, so wouldn't be a good person to generate a patch!

comment:4 Changed 12 years ago by blair (Blair Zajac)

Well, sorry, between the fact that I don't have any spare cycles and it works on all our systems, it would be best if you generate the patch.

Just look at the Portfile for the pieces that mention mcpp and upgrade it to 2.7.2.

$ port cat ice-cpp

Blair

comment:5 Changed 12 years ago by n.a.hawes@…

For some reason the ice-cpp port downloads and compiles its own version of mcpp from source instead of using the mcpp port. Is there a reason why this would be done? Maybe I'm missing something fundamental.

comment:6 Changed 12 years ago by blair (Blair Zajac)

If I recall correctly, when I wrote this port the mcpp port wasn't up to date with the version Ice needed plus Ice required some patches to fix issues in 2.7.2, which have since been folded into 2.7.2.2. So I think it should work updating to 2.7.2.2. I don't know if Ice requires linking statically

The mcpp port doesn't install the library that Ice needs:

$ port contents mcpp
  /opt/local/bin/mcpp
  /opt/local/share/doc/mcpp/LICENSE
  /opt/local/share/doc/mcpp/mcpp-manual-jp.html
  /opt/local/share/doc/mcpp/mcpp-manual.html
  /opt/local/share/doc/mcpp/NEWS
  /opt/local/share/doc/mcpp/README
  /opt/local/share/man/man1/mcpp.1.gz

So the Ice port could just download 2.7.2 and remove the patches.

comment:7 Changed 12 years ago by n.a.hawes@…

Just looking at the lib issue too. The library is installed as the +mcpplib variant of mcpp. Is it possible to specify a variant in the depends_lib part of the Portfile? I tried just writing the obvious, but it didn't work.

comment:8 Changed 12 years ago by blair (Blair Zajac)

No, you can't add variants to depends_lib. But you can depend upon it anyway and we can make a request that mcpp include the libraries also.

comment:9 Changed 12 years ago by blair (Blair Zajac)

I made this ticket #19942.

comment:10 Changed 12 years ago by n.a.hawes@…

I've made the above changes (ice-cpp port now downloads and installs mcpp 2.7.2 with --enable-mcpplib). I have also added two patches to ice-cpp which are available from ZeroC (http://www.zeroc.com/forums/patches/4275-patch-1-ice-3-3-1-slice2html-creates-bad-links.html and http://www.zeroc.com/forums/patches/4340-patch-2-ice-3-3-1-slice-compilers-abort.html). I will attach the diff for the Portfile plus the two new patches.

Changed 12 years ago by n.a.hawes@…

Changed 12 years ago by n.a.hawes@…

Attachment: patch-Ice-3.3.1-1.diff added

Changed 12 years ago by n.a.hawes@…

Attachment: patch-Ice-3.3.1-2.diff added

comment:11 Changed 12 years ago by blair (Blair Zajac)

Resolution: fixed
Status: newclosed

Thanks for the help, I used your patches and folded them into Portfile. It now uses mcpp from the separate port and includes the two upstream patches.

Fixed in r52979, r52982, r52984.

Note: See TracTickets for help on using tickets.