This is a e-mail I received as a receipient of the wine developers e-mail list. It shows <perhaps> a enhancement that could be made to RedHat to make it more developer friendly, directly. Read the whole e-mail before you dismiss it as venting. Bill Cameron Systems Software Engineer Green Hills Software, Inc cameron ---------------------- On Thu, 11 Feb 1999, Ulrich Weigand wrote: This had the strange effect for me that after the configure check for the X11/xpm.h header that was recently added, configure thought that I didnt have Xpm installed, and Wine was compiled without Xpm. (Before that check was added, everything was working fine, because the compiler finds Xpm ...) Agh, all the problems RedHat have caused. autoconf should have a RedHat test and warn users that they should get Debian or something instead. Hm? You want to know what I mean? Okay. RedHat separates the libraries and the headers into separate packages (the headers go into a devel package). So these lusers install the libraries but dont think of themselves as developers and forget to install the associated devel package. What happens next is that autoconf finds the library, but then the compilation fails because the headers arent there. So Wine had to add these header checks too, something for which autoconf wasnt designed, with the result you just got. OK, now people wonder, Debian separates the libraries and headers into separate packages too, so wouldnt Debian have the same problem? Nope. Watch: $ cd /usr/X11R6/lib $ ls -l libXpm*  rw-rr-- 1 root root 78832 Jan 25 1998 libXpm.a lrwxrwxrwx 1 root root 14 Nov 17 16:52 libXpm.so -> libXpm.so.4.10 lrwxrwxrwx 1 root root 14 Nov 17 16:52 libXpm.so.4 -> libXpm.so.4.10  rw-rr-- 1 root root 53408 Jan 25 1998 libXpm.so.4.10 $ dpkg -S libXpm.so xpm4g-dev: /usr/X11R6/lib/libXpm.so xpm4g: /usr/X11R6/lib/libXpm.so.4.10 xpm4g: /usr/X11R6/lib/libXpm.so.4 The main symlink required for linking is in the dev package. So if the dev package isnt installed, libXpm.so wouldnt be detected. Thus these header checks wouldnt be necessary for Debian, and wouldnt have these problems. RedHat is pretty braindead, IMHO. - configure should be fixed to include the -I header for the X11 include directory with the X11 header checks (unfortunately Im not very familiar with autoconf/configure; maybe one of the autoconf gurus can fix this?) - compiling Wine without Xpm is rather pointless in the current state. Shouldnt we either completely abort compilation of Wine if Xpm is not present, or else implement some workaround so that Wine will at least start up ? Will this work? (the offset you may get when you apply is because I cut out the stuff that enables my memory protector) This is how autoconf macros do it to mess with LIBS, so thought I could use it for CFLAGS too. ChangeLog (if accepted): Fixed X library header file detection. Index: wine/configure.in RCS file: /home/wine/wine/configure.in,v retrieving revision 1.28 diff -u -r1.28 configure.in --- wine/configure.in 1999/02/05 17:40:47 1.28 +++ wine/configure.in 1999/02/11 04:11:06 @@ -97,6 +103,8 @@ if test $have_x = yes then XLIB=-lXext -lX11  ac_save_CFLAGS=$CFLAGS  CFLAGS=$CFLAGS $X_CFLAGS dnl Check for -lXpm AC_CHECK_HEADERS(X11/xpm.h) @@ -130,6 +138,8 @@ then AC_CHECK_LIB(MesaGL,OSMesaCreateContext,AC_DEFINE (HAVE_LIBMESAGL) X_PRE_LIBS=$X_PRE_LIBS -lMesaGL,,$X_LIBS -lXext -lX11 -lm) fi +  CFLAGS=$ac_save_CFLAGS else XLIB= X_CFLAGS= @@ -666,6 +676,12 @@ echo *** X support, which currently does not work, and would probably not be echo *** what you want anyway. You will need to install devel packages of echo *** Xlib/Xfree86 and Xpm at the very least. +elif test $ac_cv_lib_Xpm_XpmCreatePixmapFromData = no +then  echo  echo *** Warning: Xpm development files not found. Wine will be built without  echo *** Xpm support, which currently does not work. You will need to install  echo *** devel packages of Xpm. fi if test $ac_cv_lib_ncurses_resizeterm = no -a $ac_cv_lib_ncurses_waddch = yes
The gist of this report seems to be a suggestion that putting the foo.so link of a shared library (in this case libXpm.so) into the foo-devel package would permit more efficient testing of the existence of libraries within autoconf. This is typically the way rpm's containing shared libraries are packaged by Red Hat. In particular bash$ rpm -qf /usr/X11R6/lib/libXpm.so xpm-devel-3.4j-3