Closed Bug 286030 Opened 20 years ago Closed 9 years ago

More gss fun (particularly the upcoming GNU GSS library)

Categories

(Core :: Networking, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: dalgoda, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Build Identifier: firefox-1.0.1-source.tar.bz2

On ftp://alpha.gnu.org/gnu/gss, there is a new GNU GSS library being developed.

It uses the library -lgss, but the include file is gss.h NOT gssapi.h.

This seriously confuses configure and then later,
extensions/negotiateauth/nsNegotiateAuthFactory.cpp.

That is configure will set GSSAPI_LIB, but NOT GSSAPI_INCLUDES.

Reproducible: Always

Steps to Reproduce:
Have no GSS installed on system.

Install GNU GSS (I usused 0.0.15 in this case).

Try to build any Mozilla product (I used firefox-1.0.1).  Probably has to be
something with the negotiateauth extension enabled.
Actual Results:  
Configure will end up with this configuration:

nexus@thune[9:32pm]src/firefox/firefox-1.0.1-build(535) grep GSS config.status 
s%@GSSAPI_INCLUDES@%%g
s%@GSSAPI_LIBS@%-L/usr/lib -lgss%g

Now, when compiling, we end up with this:

/usr/bin/make export
make[1]: Entering directory
`/usr/src/firefox/firefox-1.0.1-build/extensions/negotiateauth'
make[1]: Nothing to be done for `export'.
make[1]: Leaving directory
`/usr/src/firefox/firefox-1.0.1-build/extensions/negotiateauth'
/usr/bin/make libs
make[1]: Entering directory
`/usr/src/firefox/firefox-1.0.1-build/extensions/negotiateauth'
nsNegotiateAuthFactory.cpp
c++ -o nsNegotiateAuthFactory.o -c -DOSTYPE=\"Linux2.4\" -DOSARCH=\"Linux\"
-DHAVE_DEPENDENT_LIBS -DUSE_GSSAPI  -I../../dist/include/xpcom
-I../../dist/include/string -I../../dist/include/necko -I../../dist/include/pref
-I../../dist/include/negotiateauth -I../../dist/include
-I/usr/src/firefox/firefox-1.0.1-build/dist/include/nspr     -I.
-I/usr/X11R6/include   -fPIC  -I/usr/X11R6/include -fno-rtti -fno-exceptions
-Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth
-Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic
-fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O  -I/usr/X11R6/include
-DMOZILLA_CLIENT -include ../../mozilla-config.h
-Wp,-MD,.deps/nsNegotiateAuthFactory.pp
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthFactory.cpp
In file included from
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthFactory.cpp:64:
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthGSSAPI.h:74:
error: `gss_OID' does not name a type
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthGSSAPI.h:77:
error: `gss_ctx_id_t' does not name a type
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthGSSAPI.h:77:
error: extra semicolon
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthGSSAPI.h:78:
error: `gss_OID' does not name a type
../../../firefox-1.0.1/extensions/negotiateauth/nsNegotiateAuthGSSAPI.h:78:
error: extra semicolon
make[1]: *** [nsNegotiateAuthFactory.o] Error 1
make[1]: Leaving directory
`/usr/src/firefox/firefox-1.0.1-build/extensions/negotiateauth'
make: *** [all] Error 2


Which isn't too surprising, since we think we have GSS libraries, but not GSS
headers.

Additionally, trying to build using --without-gssapi doesn't help any, as the
configure code just assumes that whatever with_gssapi to (which is `no' in this
case) must be the directory where gss lives:

nexus@thune[10:38pm]src/firefox/firefox-1.0.1-build(567) grep GSS config.status
s%@GSSAPI_INCLUDES@%%g
s%@GSSAPI_LIBS@%-Lno/lib -lgss%g

Expected Results:  
Several things.

First, if --without-gssapi is given, then do not try to find gssapi.

Second, only try to build with gss if both the library and appropriate header
files are found.  Only one or the other is generally a bad thing.

Third, and less concerned about, try gss.h in addition to the other gss header
files.
Assignee: chase → darin
Component: Build Config → Networking
Product: Mozilla Application Suite → Core
QA Contact: build-config → benc
Version: unspecified → Trunk
> s%@GSSAPI_INCLUDES@%%g

fwiw that's expected if the header is in /usr/include (since finding headers
there requires no special flags)
Good point.  My bad.

I got distracted by the GSSAPI_INCLUDES here.

That should then be something like:

GSSAPI_LIBS && (HAVE_GSSAPI_H || HAVE_GSSAPI_GSSAPI_H || HAVE_GSSAPI_GENERIC_H
|| HAVE_GSSAPI_GSSAPI_GENERIC_H)

Hmmm... strange... I don't see any of those set in any *config*.h.in.  They're
only referenced in configure and ./extensions/negotiateauth/nsNegotiateAuthGSSAPI.h

Is that a hold over from something?  Or did I miss where that stuff might
actually be set?

[Hard for me to test right now as I removed the offending libgss.  And I also
happen to have started rebuilding my system from scratch starting with glibc.]
Getting all these variants of GSSAPI compiling and linking properly into Mozilla
is a real pain.  MIT and Sun GSSAPI are known to work, but other than that :-(
I believe that we still have trouble with heimdal.
Not surprising.

I'm not too worried about Moz working with GNU GSS.

I just don't want the build to choke if it's the only GSS implementation present.
This is an automated message, with ID "auto-resolve01".

This bug has had no comments for a long time. Statistically, we have found that
bug reports that have not been confirmed by a second user after three months are
highly unlikely to be the source of a fix to the code.

While your input is very important to us, our resources are limited and so we
are asking for your help in focussing our efforts. If you can still reproduce
this problem in the latest version of the product (see below for how to obtain a
copy) or, for feature requests, if it's not present in the latest version and
you still believe we should implement it, please visit the URL of this bug
(given at the top of this mail) and add a comment to that effect, giving more
reproduction information if you have it.

If it is not a problem any longer, you need take no action. If this bug is not
changed in any way in the next two weeks, it will be automatically resolved.
Thank you for your help in this matter.

The latest beta releases can be obtained from:
Firefox:     http://www.mozilla.org/projects/firefox/
Thunderbird: http://www.mozilla.org/products/thunderbird/releases/1.5beta1.html
Seamonkey:   http://www.mozilla.org/projects/seamonkey/
Please give Firefox 1.5b1 a try.  It compiles against its own copy of gssapi.h,
and then it attempts to load the system GSSAPI implementation at runtime.  You
can set a pref to control which library is loaded.  Perhaps this bug can be
closed WORKSFORME?
Assignee: darin → nobody
QA Contact: benc → networking
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.