| Summary: | [java-overlay] dev-java/icedtea6-1.6.1-r1 fails to build with newer libXext/xextproto | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Diego Elio Pettenò (RETIRED) <flameeyes> |
| Component: | [OLD] Java | Assignee: | Java team <java> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | flo, x11 |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
Build log (bzip2)
replace X_ShmAttach with 1 condifional patch for includes |
||
|
Description
Diego Elio Pettenò (RETIRED)
2009-10-13 11:04:29 UTC
Created attachment 206950 [details]
Build log (bzip2)
What X does is final, we wont move it back, so for supporting new stuff icedtea needs to be patched... so, what's the preferred solution? include shmproto.h? I don't know what IceTea does with SHM, but here's a patch [1] that shows how to avoid conditional patches. @Diego, we don't yet have all the new protos and libraries for Xorg 7.5 and not all of them have proper blockers. Once we do all that, we'll need to organize portage-wide testing, bug reporting and patching before we can unmask those packages. I'll just add here for the record that the ABI is unchanged (for most libs) or backwards-compatible (for libXi for example). Thanks [1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=0a4c4c5fe8ebad2dd13f5770bd90a194eebb2890 Created attachment 206979 [details, diff]
replace X_ShmAttach with 1
apply in src_prepare, should fix the problem (compiling now)
The patch worked for me. At least I could compile icedtea6-1.6.1-r1 until the end. That patch is very wrong: the #includes need to be fixed, not the rest of the code. Putting such a patch in portage would be a big QA issue. Thanks yes it's a hack, the other solution would be to *conditionally* include include <X11/extensions/shmproto.h> (which needs type definitions which i don't know where they come from) depending on which version is installed, and i don't know the icedtea6 build system enough to do this. the hack worked for me for over 2 weeks without problems now (runing eclipse, jboss, etc almost daily) Created attachment 208672 [details, diff]
condifional patch for includes
This is a patch I'm going to use after testing. Includes shmproto.h and also Xmd.h with the needed definitions. It is applied conditionally if has_version >=x11-libs/libXext-1.1.1 which should be fine since the ABI is the same.
Of course some autoconf checks would be better but I'm not so good with it :) seems fedora also doesn't have a general solution yet, they have a patch that's only used in F12 (which has new libxext) and looks worse to me than this one.
For an autoconf patch, I think it would need to check not the version of xextproto but libxext, as it used to include only extensions/Xshm.h from libxext which contained definition of X_ShmAttach. So if libxext is >=1.1.1 then it needs to check also for xextproto 7.1.1 (to have shmproto.h) and create some HAVE_ define. And all this matters in the code only when MITSHM is defined - didn't check what sets this. Oh and meanwhile, the conditional 1.6.1-shmproto.patch was commited to 1.6.1-r1, so please svn up and test. it's working, thx Patch is upstream, albeit a bit different. We're done here. |