Re: PATCH: gnome-libs-1-0 gnome-config.in fix



On Fri, Jan 12, 2001 at 10:52:36AM -0500, Miguel de Icaza wrote:
> 
> > This is a simple patch for gnome-libs-1-0 to fix a problem with the
> > gnome-config script.  To see the problem, do each of the following and
> > notice how the outputs are very different:
> > 
> > 	  gnome-config --cflags idl gtk
> > 	  gnome-config --cflags gtk idl
> > 
> > I committed this to HEAD a while ago and mailed some people about it
> > going into gnome-libs-1-0, but never got a reply.  Hollar if you have
> > any objections towards this patch beinng committed to gnome-libs-1-0.
> 
> Yes, I had an objection.  It is an incorrect patch (I recently sent a
> reply explaining why it was incorrect).
> 
> Basically the "IDL" target is a special target, and you should not be
> mixing "idl" with other targets.   Please revert the patch from HEAD.
> 
> Miguel.

I understand.  How about this other patch then?

Basically, it's pretty sucky that the output is inconsistent.  There's
3 ways to have a --cflags idl line (all incorrect uses according to
what you're saying, which makes sense, but accidents/misunderstood
uses still happen):

  Front  : gnome-config --cflags idl glib gtk
  Middle : gnome-config --cflags glib idl gtk
  End    : gnome-config --cflags glib gtk idl

And you'll get 3 different outputs, 2 of which will give bad output
and probably break something (either your compile or your orbit-idl),
and theres two ways to fix/force consistency of the output:

    1. Harmless
       This was the first patch, where all 3 of the input cases will
       give you the full --cflags of all your targets, which won't
       hurt anything, just give you a bunch of extra -Iblah/blah in
       some part of your build.

    2. Correct
       The patch attached to this mail, where all 3 of the input cases
       will give you only output equal to using --cflags idl by
       itself.  You say it should never be mixed with other targets,
       well, if it ever is, it will only give them results for the idl
       target.

It's just never cool to have options that will fail, especially if you
know the options will fail.  Given 2 of 3 ways to do something wrong,
somebody will do something wrong ("You mean I voted for Buchanon?" or
"But I didn't mean to vote for TWO Presidents!", there's about 26,000
Floridian's kicking themselves because their county had a poor ballot
system).  If there's a way to make consistent output for any input
case that forces correctness or prevents problems (the place I voted
had ballot booths where I pressed a button and a light turned on next
to my selection, it wasn't possible to pick 2 presidents because it
was designed to prevent this kind of invalidated vote), then I don't
see why we shouldn't.

It's not a big deal, if these arguments don't strike any new ideas, or
the new patch doesn't either, I'll go ahead and revert HEAD.

Jason.
? gnome-config.patch
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gnome-libs/ChangeLog,v
retrieving revision 1.463.4.38
diff -u -r1.463.4.38 ChangeLog
--- ChangeLog	2001/01/04 20:57:45	1.463.4.38
+++ ChangeLog	2001/01/13 08:28:31
@@ -1,3 +1,10 @@
+2001-01-06  Jason Leach  <jasonleach usa net>
+
+	* gnome-config.in: Fix to have consistent, logical output when
+	  using --cflags idl.  Previously the case was like so: `--cflags
+	  idl gtk glib` != `--cflags gtk idl glib` != '--cflags gtk glib
+	  idl`
+
 2001-01-04  Stanislav Brabec  <utx penguin cz>
 
 	* configure.in: Added support for db1 emulation in Berkeley DB3.
Index: gnome-config.in
===================================================================
RCS file: /cvs/gnome/gnome-libs/gnome-config.in,v
retrieving revision 1.20.4.6
diff -u -r1.20.4.6 gnome-config.in
--- gnome-config.in	2000/11/21 15:30:44	1.20.4.6
+++ gnome-config.in	2001/01/13 08:28:31
@@ -188,10 +188,11 @@
 	the_flags="$the_flags @GNOME_INCLUDEDIR@ @ORBIT_CFLAGS@"
         ;;
     idl)
-	the_flags="-I${datadir}/idl"
-	for extra in `echo $GNOME_PATH  | sed 's/:/ /g'`; do
-		the_flags="-I$extra/share/idl $the_flags"
+	for extra in `echo $GNOME_PATH | sed 's/:/ /g'`; do
+		extra_idl_flags="$extra_idl_flags -I${extra}/share/idl"
 	done
+	the_flags="-I${datadir}/idl $extra_idl_flags"
+	break
 	;;
     zvt)
 	the_libs="$the_libs @GNOME_LIBDIR@ @ZVT_LIBS@"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]