Opened 12 years ago
Closed 12 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)
Change History (8)
Changed 12 years ago by ajdudman
Attachment: | Portfile.diff added |
---|
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: | new → assigned |
Summary: | update gsoap to version to 2.8.9 and patch header macro → gsoap: update to version to 2.8.9 and patch header macro |
Thanks.
comment:3 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 12 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
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.
gsoap Portfile changes in diff -u format