Opened 13 years ago

Closed 12 years ago

Last modified 7 years ago

#12805 closed defect (fixed)

BUG: curl +gss fails to compile

Reported by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.5.2
Keywords: Cc: ryandesign (Ryan Schmidt), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), cooljeanius (Eric Gallager)
Port: curl

Description

The file lib/krb5.c attempts to include gssapi.h, which is not provided by the package gss. There is already a fix in the file lib/urldata.h, and the same fix can be used.

Attachments (4)

Portfile.diff (291 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 13 years ago.
krb5.diff (358 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 13 years ago.
Portfile.2.diff (279 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 13 years ago.
Portfile.3.diff (300 bytes) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 13 years ago.

Download all attachments as: .zip

Change History (19)

Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.diff added

Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: krb5.diff added

comment:1 Changed 13 years ago by ryandesign (Ryan Schmidt)

Milestone: Port Bugs

What error is encountered when this patch is not present?

Does this patch need to be reported upstream? Has it been reported/fixed upstream?

comment:2 Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

The error was: /usr/bin/gcc-4.0 -DHAVE_CONFIG_H -I../include -I../lib -I../lib -I/opt/local/include -I/opt/local/include -I/opt/local/include -O2 -MT krb5.lo -MD -MP -MF .deps/krb5.Tpo -c krb5.c -fno-common -DPIC -o .libs/krb5.o krb5.c:55:20: error: gssapi.h: No such file or directory

As far as I can tell, the variables set by configure to control the gss library are: HAVE_GSSGNU HAVE_GSSHEIMDAL HAVE_GSSMIT

As MacPorts has opted to use GNU GSSLib, HAVE_GSSGNU is correctly set to 1. The file lib/urldata.h makes use of HAVE_GSSGNU. The file lib/krb5.c also tries to include a gss header, but does NOT make use of HAVE_GSSGNU.

This seems to me to be an error, but I am certainly no expert. At the very least it prevents compiling using MacPorts. I have not reported this upstream.

comment:3 Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

According to the curl documentation (http://curl.haxx.se/docs/install.html), GSSAPI support requires the MIT or Heimdal Kerberos 5 packages to be installed. It makes no mention of gss.

Changing the port from gss to heimdal

  • depends_lib-append port:gss

+ depends_lib-append port:heimdal fixed the compilation of "curl +gss" without any further patches.

comment:4 Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Despite the upgrade to curl a while back, I believe this previous assertion still holds.
GSSAPI support requires the MIT or Heimdal Kerberos 5 packages (not gss).

Attached is a proposed patch.

Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.2.diff added

Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: Portfile.3.diff added

comment:5 Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

With the recent change to heimdal (r35247), I have attached yet another proposed fix.

comment:6 Changed 13 years ago by ryandesign (Ryan Schmidt)

Your new fix Portfile.3.diff makes the gss variant no longer depend on the gss port. Where does it get the gss functions from then? a gss library provided with Mac OS X? If so, is this gss library the same on 10.3, 10.4 and 10.5? If so, is there any reason not to make this functionality the default and remove the gss variant?

Or, should we use your fix Portfile.2.diff adapted for heimdal's new location?

comment:7 Changed 13 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

The gss functionality would come from Mac OS X. If I understand the explanation in #14775, heimdal is not yet known to work well with the Mac OS X kerberos implementation.

Unfortunately, I can not say how the gss implementations compare in the various Mac OS X versions. I only have access to Leopard.

Kerberos (as the GSSAPI mechanism implementation) seems to hold a strange place in MacPorts. Several port (e.g. php4, php5, nrpe, fetchmail, ...) seem to rely on the system kerberos. The postgresql port seems to rely on it inadvertently (as discussed in #14697). Kerberos seems to be an unwritten exception to the MacPorts policy of using its own libraries.

Given this, I would humbly suggest that Portfile.3.diff is an acceptable fix.

comment:8 Changed 12 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… added

Cc Me!

comment:9 Changed 12 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

May I go ahead and commit the Portfile.3.diff patch?

comment:10 Changed 12 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: newclosed

Fixed in r43772 (maintainer timeout).

comment:11 Changed 12 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:12 Changed 11 years ago by ryandesign (Ryan Schmidt)

Even more fixed in r63928. (Now an already-installed gss or kerberos5 won't still get used.)

comment:13 Changed 11 years ago by ryandesign (Ryan Schmidt)

Port: curl added

comment:14 in reply to:  12 Changed 7 years ago by cooljeanius (Eric Gallager)

Replying to ryandesign@…:

Even more fixed in r63928. (Now an already-installed gss or kerberos5 won't still get used.)

Wouldn't it be better to use conflicts_build-append from the conflicts_build 1.0 portgroup here instead of conflicts-append? From reading this issue, it seems to be just a build-time conflict instead of an install-time conflict, right?

comment:15 Changed 7 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

Note: See TracTickets for help on using tickets.