ports/133344: net/nss_ldap fails to compile if world was installed with WITHOUT_KERBEROS=YES in /etc/src.conf

Alex Bakhtin bakhtin at amt.ru
Fri Apr 3 16:20:05 UTC 2009


>Number:         133344
>Category:       ports
>Synopsis:       net/nss_ldap fails to compile if world was installed with WITHOUT_KERBEROS=YES in /etc/src.conf
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 03 16:20:04 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Alex Bakhtin
>Release:        7.2-PRERELEASE
>Organization:
AMT Group
>Environment:
FreeBSD amtkit-CHANGEME.proactive.amt.ru 7.2-PRERELEASE FreeBSD 7.2-PRERELEASE #7: Tue Mar 31 14:52:22 MSD 2009     root at amtkit-CHANGEME.lab.amt.ru:/usr/obj/usr/src/sys/AMTKIT  amd64

>Description:
net/nss_ldap fails to compile if there is no KERBEROS header files installed
(WITHOUT_KERBEROS=YES in /etc/src.conf).

> sudo make
===>  Extracting for nss_ldap-1.264_1
=> MD5 Checksum OK for nss_ldap-264.tar.gz.
=> SHA256 Checksum OK for nss_ldap-264.tar.gz.
/bin/cp /usr/ports/net/nss_ldap/files/bsdnss.c /var/ports/usr/ports/net/nss_ldap/work/nss_ldap-264
===>  Patching for nss_ldap-1.264_1
===>  Applying FreeBSD patches for nss_ldap-1.264_1
===>   nss_ldap-1.264_1 depends on executable: gmake - found
===>   nss_ldap-1.264_1 depends on file: /usr/local/bin/automake-1.9 - found
===>   nss_ldap-1.264_1 depends on file: /usr/local/bin/autoconf-2.62 - found
===>   nss_ldap-1.264_1 depends on shared library: ldap-2.3.2 - found
===>  Configuring for nss_ldap-1.264_1
autoheader-2.62: WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
autoheader-2.62: WARNING: and `config.h.top', to define templates for `config.h.in'
autoheader-2.62: WARNING: is deprecated and discouraged.
autoheader-2.62:
autoheader-2.62: WARNING: Using the third argument of `AC_DEFINE' and
autoheader-2.62: WARNING: `AC_DEFINE_UNQUOTED' allows one to define a template without
autoheader-2.62: WARNING: `acconfig.h':
autoheader-2.62:
autoheader-2.62: WARNING:   AC_DEFINE([NEED_FUNC_MAIN], 1,
autoheader-2.62:                [Define if a function `main' is needed.])
autoheader-2.62:
autoheader-2.62: WARNING: More sophisticated templates can also be produced, see the
autoheader-2.62: WARNING: documentation.
checking build system type... amd64-portbld-freebsd7.2
checking host system type... amd64-portbld-freebsd7.2
checking target system type... amd64-portbld-freebsd7.2
checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether gmake sets $(MAKE)... yes
checking for gcc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking for style of include used by gmake... GNU
checking dependency style of cc... gcc3
checking how to run the C preprocessor... cc -E
checking for a BSD-compatible install... /usr/bin/install -c -o root -g wheel
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking lber.h usability... yes
checking lber.h presence... yes
checking for lber.h... yes
checking ldap.h usability... yes
checking ldap.h presence... yes
checking for ldap.h... yes
checking ldap_ssl.h usability... no
checking ldap_ssl.h presence... no
checking for ldap_ssl.h... no
checking nss.h usability... yes
checking nss.h presence... yes
checking for nss.h... yes
checking irs.h usability... no
checking irs.h presence... no
checking for irs.h... no
checking thread.h usability... no
checking thread.h presence... no
checking for thread.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking synch.h usability... no
checking synch.h presence... no
checking for synch.h... no
checking malloc.h usability... no
checking malloc.h presence... no
checking for malloc.h... no
checking shadow.h usability... no
checking shadow.h presence... no
checking for shadow.h... no
checking prot.h usability... no
checking prot.h presence... no
checking for prot.h... no
checking port_before.h usability... no
checking port_before.h presence... no
checking for port_before.h... no
checking port_after.h usability... no
checking port_after.h presence... no
checking for port_after.h... no
checking aliases.h usability... no
checking aliases.h presence... no
checking for aliases.h... no
checking net/route.h usability... no
checking net/route.h presence... yes
configure: WARNING: net/route.h: present but cannot be compiled
configure: WARNING: net/route.h:     check for missing prerequisite headers?
configure: WARNING: net/route.h: see the Autoconf documentation
configure: WARNING: net/route.h:     section "Present But Cannot Be Compiled"
configure: WARNING: net/route.h: proceeding with the preprocessor's result
configure: WARNING: net/route.h: in the future, the compiler will take precedence
checking for net/route.h... yes
checking netinet/if_ether.h usability... no
checking netinet/if_ether.h presence... yes
configure: WARNING: netinet/if_ether.h: present but cannot be compiled
configure: WARNING: netinet/if_ether.h:     check for missing prerequisite headers?
configure: WARNING: netinet/if_ether.h: see the Autoconf documentation
configure: WARNING: netinet/if_ether.h:     section "Present But Cannot Be Compiled"
configure: WARNING: netinet/if_ether.h: proceeding with the preprocessor's result
configure: WARNING: netinet/if_ether.h: in the future, the compiler will take precedence
checking for netinet/if_ether.h... yes
checking netinet/ether.h usability... no
checking netinet/ether.h presence... no
checking for netinet/ether.h... no
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking alignof.h usability... no
checking alignof.h presence... no
checking for alignof.h... no
checking rpc/rpcent.h usability... yes
checking rpc/rpcent.h presence... yes
checking for rpc/rpcent.h... yes
checking sys/byteorder.h usability... no
checking sys/byteorder.h presence... no
checking for sys/byteorder.h... no
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking libc-lock.h usability... no
checking libc-lock.h presence... no
checking for libc-lock.h... no
checking bits/libc-lock.h usability... no
checking bits/libc-lock.h presence... no
checking for bits/libc-lock.h... no
checking sasl.h usability... no
checking sasl.h presence... no
checking for sasl.h... no
checking sasl/sasl.h usability... no
checking sasl/sasl.h presence... no
checking for sasl/sasl.h... no
checking for strings.h... (cached) yes
checking gssldap.h usability... no
checking gssldap.h presence... no
checking for gssldap.h... no
checking gsssasl.h usability... no
checking gsssasl.h presence... no
checking for gsssasl.h... no
checking gssapi/gssapi_krb5.h usability... no
checking gssapi/gssapi_krb5.h presence... no
checking for gssapi/gssapi_krb5.h... no
checking gssapi.h usability... yes
checking gssapi.h presence... yes
checking for gssapi.h... yes
checking krb5.h usability... no
checking krb5.h presence... no
checking for krb5.h... no
checking for main in -lresolv... no
checking for main in -lnsl... no
checking for main in -lsocket... no
checking for strtok_r... yes
checking for sigaction... yes
checking for sigset... no
checking for res_search... yes
checking for dn_expand... yes
checking resolv.h usability... no
checking resolv.h presence... yes
configure: WARNING: resolv.h: present but cannot be compiled
configure: WARNING: resolv.h:     check for missing prerequisite headers?
configure: WARNING: resolv.h: see the Autoconf documentation
configure: WARNING: resolv.h:     section "Present But Cannot Be Compiled"
configure: WARNING: resolv.h: proceeding with the preprocessor's result
configure: WARNING: resolv.h: in the future, the compiler will take precedence
checking for resolv.h... yes
checking for snprintf... yes
checking for gethostbyname... yes
checking for nsdispatch... yes
checking for main in -lpthread_nonshared... no
checking for pthread_atfork... yes
checking for pthread_once... yes
checking for ether_aton... yes
checking for ether_ntoa... yes
checking for struct ether_addr... yes
checking for socklen_t... yes
checking for pw_change in struct passwd... yes
checking for pw_expire in struct passwd... yes
checking size of unsigned int... 4
checking size of unsigned long... 8
checking size of uid_t... 4
checking size of gid_t... 4
checking for dlopen in -ldl... no
checking for gss_krb5_ccache_name in -lgssapi... no
checking for gss_krb5_ccache_name in -lgssapi_krb5... no
checking for main in -lcom_err... yes
checking for main in -lkrb5... no
checking for sasl_client_init in -lsasl2... no
checking for main in -llber... yes
checking for main in -lldap... yes
checking for ldap_gss_bind in -lgssldap... no
checking for sasl_auxprop_request... no
checking for ldap_init... yes
checking for ldap_get_lderrno... no
checking for ldap_parse_result... yes
checking for ldap_memfree... yes
checking for ldap_controls_free... yes
checking for ldap_ld_free... yes
checking for ldap_explode_rdn... yes
checking for ldap_set_option... yes
checking for ldap_get_option... yes
checking for ldap_sasl_interactive_bind_s... yes
checking for ldap_initialize... yes
checking for ldap_search_ext... yes
checking for ldap_create_control... yes
checking for ldap_create_page_control... no
checking for ldap_parse_page_control... no
checking for ldapssl_client_init... no
checking for ldap_start_tls_s... yes
checking for ldap_pvt_tls_set_option... yes
checking for ldap_start_tls... yes
checking for gethostbyname_r... yes
checking whether gethostbyname_r takes 6 arguments... 6
checking for ldap_set_rebind_proc... yes
checking whether ldap_set_rebind_proc takes 3 arguments... 3
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
===>  Building for nss_ldap-1.264_1
gmake  all-am
gmake[1]: Entering directory `/var/ports/usr/ports/net/nss_ldap/work/nss_ldap-264'
if cc -DHAVE_CONFIG_H -I. -I. -I.   -I/usr/local/include -DLDAP_REFERRALS -DLDAP_DEPRECATED -DPIC -D_REENTRANT  -O2 -fno-strict-aliasing -pipe -march=native -DLDAP_DEPRECATED -Wall -fPIC -MT ldap-nss.o -MD -MP -MF ".deps/ldap-nss.Tpo" -c -o ldap-nss.o ldap-nss.c; \
        then mv -f ".deps/ldap-nss.Tpo" ".deps/ldap-nss.Po"; else rm -f ".deps/ldap-nss.Tpo"; exit 1; fi
In file included from ldap-nss.c:82:
/usr/include/gssapi.h:3:2: warning: #warning "this file includes <gssapi.h> which is deprecated, use <gssapi/gssapi.h> instead"
ldap-nss.c:88:18: error: krb5.h: No such file or directory
gmake[1]: *** [ldap-nss.o] Error 1
gmake[1]: Leaving directory `/var/ports/usr/ports/net/nss_ldap/work/nss_ldap-264'
gmake: *** [all] Error 2
*** Error code 1

Stop in /usr/ports/net/nss_ldap.

>How-To-Repeat:
1. Insert WITHOUT_KERBEROS=YES into /etc/src.conf
2. Install system (into jail f.e.) via make buildworld/installworld
3. In new system cd /usr/ports/net/nss_ldap && make

>Fix:
There are two problems:
1. Reference to kerberos turned on by default in Makefile.
2. nss_ldap v 264 doesn't check HAVE_KRB5_H before including krb5.h.


Patch attached with submission follows:

diff -u -r /usr/ports/net/nss_ldap/Makefile /home/bakhtin/work/nss_ldap/Makefile
--- /usr/ports/net/nss_ldap/Makefile	2009-01-05 22:04:27.000000000 +0300
+++ /home/bakhtin/work/nss_ldap/Makefile	2009-04-03 20:01:18.000000000 +0400
@@ -33,8 +33,7 @@
 CONFIGURE_ARGS=	--with-ldap-conf-file=${PREFIX}/etc/nss_ldap.conf \
 		--with-ldap-secret-file=${PREFIX}/etc/nss_ldap.secret \
 		--enable-rfc2307bis \
-		--enable-paged-results \
-		--enable-configurable-krb5-ccname-env
+		--enable-paged-results 
 
 MAN5=	nss_ldap.5
 
diff -u -r /usr/ports/net/nss_ldap/files/patch-ldap-nss.c /home/bakhtin/work/nss_ldap/files/patch-ldap-nss.c
--- /usr/ports/net/nss_ldap/files/patch-ldap-nss.c	2006-05-27 20:31:57.000000000 +0400
+++ /home/bakhtin/work/nss_ldap/files/patch-ldap-nss.c	2009-04-03 20:00:30.000000000 +0400
@@ -9,3 +9,11 @@
  #include <sasl/sasl.h>
  #elif defined(HAVE_SASL_H)
  #include <sasl.h>
+@@ -84,7 +84,7 @@
+ #include <gssapi/gssapi.h>
+ #include <gssapi/gssapi_krb5.h>
+ #endif
+-#ifdef CONFIGURE_KRB5_CCNAME
++#if defined(CONFIGURE_KRB5_CCNAME) && defined(HAVE_KRB5_H)
+ #include <krb5.h>
+ #endif


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list