Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 288855 - [java-overlay] dev-java/icedtea6-1.6.1-r1 fails to build with newer libXext/xextproto
Summary: [java-overlay] dev-java/icedtea6-1.6.1-r1 fails to build with newer libXext/x...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Java (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Java team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-10-13 11:04 UTC by Diego Elio Pettenò (RETIRED)
Modified: 2009-11-03 18:33 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Build log (bzip2) (dev-java:icedtea6-1.6.1-r1:20091013-104356.log.bz2,244.31 KB, application/x-bzip2)
2009-10-13 11:14 UTC, Diego Elio Pettenò (RETIRED)
Details
replace X_ShmAttach with 1 (icedtea6-1.6.1-fix-shm.patch,1.11 KB, patch)
2009-10-13 15:28 UTC, Florian Scandella
Details | Diff
condifional patch for includes (1.6.1-shmproto.patch,951 bytes, patch)
2009-10-29 20:59 UTC, Vlastimil Babka (Caster) (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Elio Pettenò (RETIRED) gentoo-dev 2009-10-13 11:04:29 UTC
The new xextproto/libXext moved the X_ShmAttach symbol from XShm.h to shmproto.h.

Not sure if this is an X11 bug or IcedTea that needs to fix it.

Portage 2.2_rc46 (default/linux/amd64/2008.0, gcc-4.4.1-asneeded, glibc-2.10.1-r0, 2.6.31 x86_64)
=================================================================
System uname: Linux-2.6.31-x86_64-Quad-Core_AMD_Opteron-tm-_Processor_2350-with-gentoo-2.0.1
Timestamp of tree: Tue, 13 Oct 2009 08:30:01 +0000
ccache version 2.4 [disabled]
app-shells/bash:     4.0_p33
dev-java/java-config: 2.1.9-r1
dev-lang/python:     2.6.3
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.8.0_rc3
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.5.1
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.64
sys-devel/automake:  1.10.2, 1.11
sys-devel/binutils:  2.20.51.0.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=barcelona -O2 -ftracer -pipe -ftree-vectorize -floop-block -g -ggdb -Wstrict-aliasing=2 -Wno-format-zero-length -Wformat=2 -Wno-error -Wno-pointer-sign -fno-strict-aliasing"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/init.d /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=barcelona -O2 -ftracer -pipe -ftree-vectorize -floop-block -g -ggdb -Wno-error -Wformat=2 -Wstrict-aliasing=2 -fvisibility-inlines-hidden"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--alphabetical --with-bdeps=n"
FEATURES="assume-digests autoaddcvs autoconfig collision-protect cvs distlocks fixpackages multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms sign splitdebug unmerge-logs unmerge-orphans userfetch userpriv usersandbox"
FFLAGS="-march=barcelona -O2 -ftracer -pipe -ftree-vectorize -g -ggdb"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common"
LINGUAS="en it"
MAKEOPTS="-j12 -s"
PKGDIR="/var/spool/portage/packages"
PORTAGE_COMPRESS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=ChangeLog"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/media/repos/gentoo-x86-sync"
PORTDIR_OVERLAY="/var/spool/portage/overlays/cross /var/spool/portage/overlays/lu_zero /var/spool/portage/overlays/eva /var/spool/portage/overlays/gnome-perf /var/spool/portage/overlays/layman/x11 /var/spool/portage/overlays/layman/gentopia /var/spool/portage/overlays/layman/dberkholz /var/spool/portage/overlays/layman/x11 /var/spool/portage/overlays/layman/desktop-effects /var/spool/portage/overlays/layman/tante_overlay /var/spool/portage/overlays/layman/emacs /var/spool/portage/overlays/layman/jokey /var/spool/portage/overlays/layman/java-overlay /var/spool/portage/overlays/layman/ruby /var/spool/portage/overlays/layman/graaff /var/spool/portage/overlays/layman/gechi /var/spool/portage/overlays/layman/gnome /media/repos/flame/flame-overlay /media/repos/flame/gentoo/ruby-scripts/ruby-ng-testbed /var/spool/portage/overlays/java-experimental"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowex 3dnowext S3TC a52 aac acl acpi4linux alsa amd64 apm audiofile avahi avi bluetooth bzip2 bzlib caps cdda cddb cdio cdr cjk cli crypt css cups custom-cflags custom-cxxflags dbus dlloader dnd dpms dri dts dvd dvdr dvdread emacs emboss fame ffmpeg flac foomaticdb gif gmp gnome gnome-keyring gnutls gpgme gphoto2 gtk gtk2 hal idn ieee1394 imlib imlib2 inotify ipv6 isdnlog ithreads java5 java6 joystick jpeg kdehiddenvisibility latex libnotify lm_sensors lx700 lzw lzw-tiff maildir matroska midi mmx mmx2 mmxext mng modules mozsvg mp3 mpeg mpeg4 mpm-threadpool mudflap multilib native network-cron nls no_wxgtk1 noantlr nobcel nobeanutils nobsh nocommonslogging nocommonsnet nodrm nojdepend nojsch nojython nolog4j nomotif nooro noregexp norhino noxalan noxerces nptl nptlonly nsplugin ogg oggvorbis openmp pam pch pdf pdflib pic pmount png policykit ppds pppd pulseaudio qemu-fast reflection rtc session snmp speex spell spl sse sse2 ssl ssse3 startup-notification stencil-buffer subversion svg svgz sysfs syslog tetex theora threads tiff truetype truetype-fonts type1 type1-fonts udev uncompressed-sounds unicode usb userlocales utf8 v4l v4l2 vhosts vorbis wxwindows x11vnc xcb xcomposite xorg xpm xv xvid zeroconf zlib zsh-completion zvbi" ALSA_CARDS="hda-intel usb-audio mpu401 ice1712" ALSA_PCM_PLUGINS="iec958 plug ioplug hooks empty route asym softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="prefork" CAMERAS="ptp2" ELIBC="glibc" GENTOO_RUBYLIB="ruby18 ruby19 jruby" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en it" LIRC_DEVICES="kworld" QEMU_SOFTMMU_TARGETS="i386 x86_64" SANE_BACKENDS="snapscan" USERLAND="GNU" VIDEO_CARDS="radeon" 
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Diego Elio Pettenò (RETIRED) gentoo-dev 2009-10-13 11:14:57 UTC
Created attachment 206950 [details]
Build log (bzip2)
Comment 2 Tomáš Chvátal (RETIRED) gentoo-dev 2009-10-13 11:23:52 UTC
What X does is final, we wont move it back, so for supporting new stuff icedtea needs to be patched...
Comment 3 Florian Scandella 2009-10-13 14:03:55 UTC
so, what's the preferred solution? include shmproto.h?
Comment 4 Rémi Cardona (RETIRED) gentoo-dev 2009-10-13 15:09:01 UTC
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
Comment 5 Florian Scandella 2009-10-13 15:28:58 UTC
Created attachment 206979 [details, diff]
replace X_ShmAttach with 1

apply in src_prepare, should fix the problem (compiling now)
Comment 6 Juergen Rose 2009-10-29 12:30:39 UTC
The patch worked for me. At least I could compile icedtea6-1.6.1-r1 until the end.
Comment 7 Rémi Cardona (RETIRED) gentoo-dev 2009-10-29 13:37:48 UTC
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
Comment 8 Florian Scandella 2009-10-29 15:25:28 UTC
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)
Comment 9 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2009-10-29 20:59:47 UTC
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.
Comment 10 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2009-10-30 10:45:26 UTC
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.
Comment 11 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2009-10-30 11:17:41 UTC
Oh and meanwhile, the conditional 1.6.1-shmproto.patch was commited to 1.6.1-r1, so please svn up and test.
Comment 12 Florian Scandella 2009-10-30 17:49:14 UTC
it's working, thx
Comment 13 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2009-11-03 18:33:13 UTC
Patch is upstream, albeit a bit different. We're done here.