The following is especially important to all "open/free" distros including Indiana, since those cannot ship with / depend on closed non-re-distributable libraries:
As I already had written in my 05:45AM message, dirtily working around the issue described below costed less than 20 minutes, here is the patch that gets all the gtk/gdk based X-clients (Gnome, FF, TB ... ) working again, with Xorg's libXext, instead of Sun's one: bash-3.00$ pwd /FOX/MERCURIAL_20070830thu/XXX__fox-gate/XW_NV/open-src/lib/libXext bash-3.00$ ls -al *.patch -rw-r--r-- 1 bochnig other 3069 Oct 3 15:11 XineramaGetState_and_XineramaGetInfo__fake_libXext.patch bash-3.00$ cat XineramaGetState_and_XineramaGetInfo__fake_libXext.patch ############################################################################### # # XineramaGetState_and_XineramaGetInfo__fake_libXext.patch 0.1 # # @SEE http://www.opensolaris.org/jive/thread.jspa?threadID=41001&tstart=0 # ############################################################################### # # XineramaGetState_and_XineramaGetInfo__fake_libXext.patch 0.1 # # Copyright 2007 Martin Bochnig, MartUX.org All rights reserved. # Use subject to license terms. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, and/or sell copies of the Software, and to permit persons # to whom the Software is furnished to do so, provided that the above # copyright notice(s) and this permission notice appear in all copies of # the Software and that both the above copyright notice(s) and this # permission notice appear in supporting documentation. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT # OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR # HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL # INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # Except as contained in this notice, the name of a copyright holder # shall not be used in advertising or otherwise to promote the sale, use # or other dealings in this Software without prior written authorization # of the copyright holder. # # @(#)Makefile 0.1 07/10/03 # --- src/Makefile.in 2006-10-13 22:09:51.000000000 +0200 +++ src/Makefile.in 2007-10-03 14:48:34.624660000 +0200 @@ -58,7 +58,7 @@ libXext_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libXext_la_OBJECTS = DPMS.lo MITMisc.lo XAppgroup.lo XEVI.lo \ XLbx.lo XMultibuf.lo XSecurity.lo XShape.lo XShm.lo XSync.lo \ - XTestExt1.lo Xcup.lo Xdbe.lo extutil.lo globals.lo + XTestExt1.lo Xcup.lo Xdbe.lo extutil.lo globals.lo XineramaGetState_and_XineramaGetInfo__fake_libXext.lo libXext_la_OBJECTS = $(am_libXext_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -217,7 +217,8 @@ Xcup.c \ Xdbe.c \ extutil.c \ - globals.c + globals.c \ + XineramaGetState_and_XineramaGetInfo__fake_libXext.c all: all-am --- src/XineramaGetState_and_XineramaGetInfo__fake_libXext.c 1970-01-01 01:00:00.000000000 +0100 +++ src/XineramaGetState_and_XineramaGetInfo__fake_libXext.c 2007-10-03 14:37:16.087893000 +0200 @@ -0,0 +1,10 @@ +void XineramaGetState(void *p) +{ + return; +} + +void XineramaGetInfo(void *p) +{ + return; +} + Regards, %martin On Wed Oct 3 06:09AM MEST 2007 Martin Bochnig wrote: > Just to be clear: Setting LD_RUN_PATH (build host) and/or LD_LIBRARY_PATH_32 > (on the [build host {bad} or] client) to "/usr/openwin/lib" is not the > "solution" I am looking for, nor is using any libtool- or ld-flags. > > I rather would like to see both of the following two things: > > #0.) Desktop/JDS should no longer depend on any deprecated call > #1.) *Solely* for the sake of backwards compatibility: An open-up Sun's > proprietary libXext, so that we can add proprietary functionality to Xorg's > default version of libXext (de facto standard since 6.8), via automatically > patching the diffs in before each src tree generation. > > What do you think? > > %martin > > p.s. Did you already hear some info from g11n regarding where SUNWxorg-xkb > has gone? > >>> On Wed Oct 3 05:51AM MEST 2007 Martin Bochnig wrote: >> I just found Moinak has asked the same question already: >> http://www.opensolaris.org/jive/thread.jspa?messageID=153375 >> >> %m >>> On Wed Oct 3 05:45AM MEST 2007 Martin Bochnig wrote: >>> Modern (gtk/gdk based) desktop applications shipping as part of SXCR are >>> linked against /usr/lib/libgdk-x11-2.0.so.0, which in turn still depends on >>> the deprecated libXext-function XineramaGetState(), which gets reported as >>> missing symbol, whenever an (unpatched default) libXext is found/used by >>> the runtime linker, before the Sun-provided historic >>> /usr/openwin/lib/libXext.so.0 would be found/used. >>> This has led to one of the issues, that prevented me from calling >>> http://www.martux.org/xorg/fox-gate/20070930sun/bin_pkgadd/Xorg7.2.0_opensol_sparc_snv70_binary_pkgadd__fox-gate_20070930.tar.gz >>> a more_mature_than_alpha-release. Because the previous release >>> http://www.martux.org/xorg/OLD/20070503__7.2.0/bin_pkgadd_packages/ >>> had not shipped with libXext at all, no problems arised when replacing >>> Xsun: Gnome could be started, so coud firefox, thunderbird et al. Because >>> the first flavour of libXext that would have been found would always be the >>> very version, /usr/lib/libgdk-x11-2.0.so.0 once had been linked against. >>> Now that I have added libXext to the fox-gate framework (encouraged >>> by/derived from Moinak's work) the default unpatched version at >>> /usr/X11/lib/libXext.so.0.0.0 would be found first, attempted to use, and >>> then the default error handling mechanism of exit()'ing would be gone, >>> printing that nice message to stderr: >>> >>> ld.so.1: gnome-session: fatal: relocation error: file >>> /usr/lib/libgdk-x11-2.0.so.0: symbol XineramaGetState: referenced symbol >>> not found >>> >>> It is naturally a question of a few minutes to either add such a symbol to >>> /FOX/MERCURIAL_20070830thu/XXX__fox-gate/XW_NV/open-src/lib/libXext/libXext.patch >>> and change the Makefile to alawys apply that patch (and let that function >>> do nothing, but make the linker's symbol table happy). Or to add such a >>> symbol to an almost empty fake-lib (and LD_PRELOAD it, or link against >>> that). >>> >>> But those are only hacks/workarounds. >>> Are there plans to open up Sun's version of libXext, or does it even exist >>> for download already, somewhere? One could then go and make Xorg's new >>> libXext backward compatible to Sun-provided X-clients in a properly >>> engineered manner. Don't know. >>> >>> References: >>> >>> Even SGI listed XineramaGetState(3X11) as >>> "This API call is deprecated by the new call, >>> XineramaActive(3X11). Only run-time backward compatibility >>> is provided. For compilation, use the API proposed by Xorg." >>> Years ago! >>> (Then I don't quite understand why state of the art JDS stuff is still >>> depending on it, on the latest versions of SX[C-D]R ?) >>> >>> http://docs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=man&fname=/usr/share/catman/p_man/cat3/Xext/XineramaGetState.z >>> http://blogs.sun.com/alanc/date/20050602 >>> http://www.google.com/search?hl=en&q=%22XineramaGetState%3A%22&btnG=Search >>> >>> -- >>> %martin >>>
