Opened 12 years ago

Closed 11 years ago

#35728 closed update (fixed)

gsoap: update to version to 2.8.9 and patch header macro

Reported by: ajdudman Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.1.99
Keywords: haspatch Cc:
Port: gsoap

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Bump gsoap version to 2.8.9. Add patch to correct <gsoap/stdsoap2.h>. The SOAP_NEW(type) macro must be the old form without parenthesis for /usr/bin/gcc-4.2 on SL, i.e., __APPLE_CC__ 5666. I find this fix is useful, e.g., in building VirtualBox from the mercurial repository.

Attachments (3)

Portfile.diff (1.1 KB) - added by ajdudman 12 years ago.
gsoap Portfile changes in diff -u format
Portfile (1.6 KB) - added by ajdudman 12 years ago.
gsoap Portfile
patch-stdsoap2.h.diff (613 bytes) - added by ajdudman 12 years ago.
patch <gsoap/stdsoap2.h> SOAP_NEW(type) macro for use by Apple gcc-4.2 in SL

Download all attachments as: .zip

Change History (8)

Changed 12 years ago by ajdudman

Attachment: Portfile.diff added

gsoap Portfile changes in diff -u format

Changed 12 years ago by ajdudman

Attachment: Portfile added

gsoap Portfile

Changed 12 years ago by ajdudman

Attachment: patch-stdsoap2.h.diff added

patch <gsoap/stdsoap2.h> SOAP_NEW(type) macro for use by Apple gcc-4.2 in SL

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned
Summary: update gsoap to version to 2.8.9 and patch header macrogsoap: update to version to 2.8.9 and patch header macro

Thanks.

comment:3 in reply to:  description Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ajdudman@…:

Add patch to correct <gsoap/stdsoap2.h>. The SOAP_NEW(type) macro must be the old form without parenthesis for /usr/bin/gcc-4.2 on SL, i.e., __APPLE_CC__ 5666. I find this fix is useful, e.g., in building VirtualBox from the mercurial repository.

Could you elaborate on this patch? Where did it come from? Is there an upstream bug report about it? The port builds fine for me without the patch both on Mountain Lion with Xcode 4.4.1 and on Snow Leopard with Xcode 3.2.6. If it's not a build-time failure you're fixing but rather a runtime failure, what are the steps to reproduce the problem?

comment:4 Changed 12 years ago by ajdudman

The patch came from September 9, 2011. I was reading a webpage by pi-pixel for help in building VirtualBox, currently http://pi-pixel.tumblr.com/post/3021724967/how-to-compile-virtualbox-on-snow-leopard-with-macports
As you known macports's gsoap was then version 2.8.3.

Well the VirtualBox build uses soapcpp2 to generate code. In particular soapC.cpp, which is split into 20 files. Starting with out/darwin.amd64/release/obj/webservice/soapC-4.cpp many use SOAP_NEW macro. Please see the end of pi-pixel's webpage for the error he had got, and I too got. Briefly, g++ wrongly parsed that new operator as a variable-length array. He had developed a patch for gsoap 2.8.1 and Apple gcc build version 5664. I found it also necessary for gcc build version 5666 with both gsoap 2.8.1 and 2.8.3 last year. So I made my one-liner patch use critical value 5666 instead, but that is the entirety of the patch, with nothing else left for which to give attribution.

Much has changed in a year. Snow Leopard and Xcode and VirtualBox all updated. My Xcode is now at 3.2.6. I am unable to reproduce the error with today's VirtualBox-4.2.0-r42789. Thanks to time machine, I can go back to an older VirtualBox. Choosing 03 February 2012's VirtualBox-4.1.51-r39985, I can reproduce the erred build with an unpatched gsoap, and the correct build with a patched gsoap. It was never a build time error, nor really a run time error, instead a feature to workaround trouble various target compilers will have compiling the output code.

I am sorry for being picky. Personally, since VirtualBox code has advanced, I no longer have a pressing need for this patch. What ever you decide about the need for a patch, please let us still bump the gsoap version and specify the license.

Upstream has an closed bug ID: 3292955 engelen commented
You need to take a look at the SOAP_NEW macro in stdsoap2.h and change it there. SOAP_NEW(type) is either 'new(type)' or 'new type' for portability.

open bug ID: 3362640 status pending

open bug ID: 3519393 status open
Here is the active one. A patch is being developed which will include the SOAP_NEW macro. http://sourceforge.net/tracker/download.php?group_id=52781&atid=468021&file_id=441593&aid=3519393

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

Resolution: fixed
Status: assignedclosed

The three upstream bugs you mentioned have all been closed, so hopefully that means this problem is resolved. The port has been updated to 2.8.11; see #37147. If there are any further problems with the gsoap source code, please report them to the developers of gsoap, so that they can fix them and release a new version, to which we can then update the port.

Note: See TracTickets for help on using tickets.