Bug 4051

Summary: server<->lib cross-pollination causes kitten death
Product: xorg Reporter: George - <fufutos610>
Component: Server/Input/XKBAssignee: Daniel Stone <daniel>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: high CC: gajownik
Version: 7.0.0   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard: 2011BRB_Reviewed
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 6141    
Attachments:
Description Flags
symlink.sh: put xkb imported files to separate subdirs
none
Makefiles for xkb and new subdirs none

Description George - 2005-08-12 07:53:13 UTC
X11R7-RC0 requires libxkbfile, this is done in configure.ac:

AC_DEFINE(XKB,1,[Build XKB])
AC_DEFINE(XKB_IN_SERVER,1,[Build XKB server])
AC_DEFINE(XKB_DFLT_DISABLED,0,[Enable XKB per default])
REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"

X11R7 should not require xkbfile since it builds its own copy
under xorg-server/xkb. The fix is to remove the following line:

REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"

I tested this on linux. Xorg does not need to link agaist libxkbfile
and most importantly against libX11.

A little off-topic but relevant:
*    the files duplicated from xkbfile to xorg-server retain their
     names except from xkbmisc.c which is renamed to xkbfmisc.c,
     why is that ?

*    I think its a good idea to add an appendix to the "modular tree
     developer guide" with the files that have been duplicated for
     the needs of the modular tree. Here is a quick list from symlink.sh:

	app/xprop/dsimple.[hc]
	app/xwd/dsimple.[hc]
	app/xwininfo/dsimple.[hc]
	app/xedit/print*.[hc]

	xserver/xorg/xkb/XKB*.[hc]
	xserver/xorg/xkb/xkb[a-z]*.[hc]
Comment 1 George - 2005-08-12 08:32:56 UTC
Requires the xkbfile header files to be duplicated as well,
or leave the requirement for xkbfile (to get the header files)
but don't link against it or libX11.
Comment 2 Daniel Stone 2005-10-05 18:02:19 UTC
xkbmisc.c is renamed to xkbfmisc.c because we already have XKBMisc.c (from
libX11 sources), and need to avoid name collisions on case-agnostic systems.
Comment 3 George - 2005-10-06 04:02:24 UTC
(In reply to comment #2)
> xkbmisc.c is renamed to xkbfmisc.c because we already have XKBMisc.c (from
> libX11 sources), and need to avoid name collisions on case-agnostic systems.

better then put the imported files in separate subdirs (like libxkbfile, libX11)
to avoid clash with original xserver/xkb and between them
Comment 4 George - 2005-10-07 05:07:57 UTC
Created attachment 3504 [details] [review]
symlink.sh: put xkb imported files to separate subdirs

Putting imported files to separate subdirs makes it clear that these files are
imported code from the respective libs. It also avoids name clashes.

The patch also imports libxkbfile header files. I think this makes sense since
most of the src files of the library are also imported.

With this patch the xkbfile requirement to build xserver can be dropped from
configure.ac
Comment 5 George - 2005-10-07 05:15:02 UTC
Created attachment 3505 [details] [review]
Makefiles for xkb and new subdirs
Comment 6 Daniel Stone 2006-03-05 21:05:40 UTC
i'm fixing this particular pathological behaviour
Comment 7 Daniel Stone 2006-03-05 21:05:56 UTC
-
Comment 8 Daniel Stone 2006-04-01 04:36:02 UTC
a great deal of this is now gone.  all we have left is XkbRF_*, and the XKM
reading functions.
Comment 9 Daniel Stone 2006-05-31 12:08:24 UTC
this patch was against the script for the symlink.sh stuff, and is now thus
irrelevant
Comment 10 Daniel Stone 2007-02-27 01:27:37 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 11 Jeremy Huddleston Sequoia 2011-10-17 16:21:09 UTC
Should this be closed as fixed?  My Xorg isn't linking against libxkbfile
Comment 12 Daniel Stone 2012-08-08 18:43:45 UTC
yep.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.