From fd49fb559f1ea1cee4dc4710d044b153205c503f Mon Sep 17 00:00:00 2001 From: Richard PALO Date: Sat, 24 Sep 2016 16:19:59 +0200 Subject: diverse krb5 updates Update krb5.buildlink.mk to set "reasonable" default for KRB5_DEFAULT by checking first for native installed version prior to using traditional default of 'heimdal' mit-krb5/builtin.mk had erroneous checks for the following string "Massachusetts Institute of Technology", which needs to be on one line. Unfortunately recent versions of MIT krb5 don't necessarily respect this, so push the check off to krb5-config --version looking for the string "Kerberos 5 release". Also, certain distros prefer krb5/krb5.h over krb5.h for the real location of the native include file. Finally, both mit-krb5 and heimdal buildlink3.mk were updated to do the expected environment setup of KRB5_CONFIG, using the builtin values as appropriate or not for KRB5_CONFIG, simplifying somewhat the builtin.mk scripts. diff --git a/mk/krb5.buildlink3.mk b/mk/krb5.buildlink3.mk index 3f1c340..cd6fb25 100644 --- a/mk/krb5.buildlink3.mk +++ b/mk/krb5.buildlink3.mk @@ -28,14 +28,29 @@ KRB5_BUILDLINK3_MK:= ${KRB5_BUILDLINK3_MK}+ .include "../../mk/bsd.prefs.mk" .if !empty(KRB5_BUILDLINK3_MK:M+) -KRB5_DEFAULT?= heimdal +_KRB5_PKGS?= heimdal mit-krb5 KRB5_ACCEPTED?= ${_KRB5_PKGS} + +# check first to see if there is a native implementation +# if KRB5_DEFAULT is not explicitly set +# +. if !defined(KRB5_DEFAULT) +. for _krb5 in ${KRB5_ACCEPTED} +CHECK_BUILTIN.${_krb5}:= yes +.include "../../security/${_krb5}/builtin.mk" +. if !empty(IS_BUILTIN.${_krb5}:tl:Myes) +KRB5_DEFAULT?= ${_krb5} +. endif +CHECK_BUILTIN.${_krb5}:= no +. endfor +. else # use traditional default +KRB5_DEFAULT?= heimdal +. endif + # This is an exhaustive list of all of the Kerberos 5 implementations # that may be used with krb5.buildlink3.mk, in order of precedence. # -_KRB5_PKGS?= heimdal mit-krb5 - _KRB5_DEFAULT= ${KRB5_DEFAULT} _KRB5_ACCEPTED= ${KRB5_ACCEPTED} diff --git a/security/heimdal/buildlink3.mk b/security/heimdal/buildlink3.mk index d81c0fe..dcb2062 100644 --- a/security/heimdal/buildlink3.mk +++ b/security/heimdal/buildlink3.mk @@ -26,7 +26,13 @@ CHECK_BUILTIN.heimdal:= no .if !empty(USE_BUILTIN.heimdal:M[nN][oO]) .include "../../databases/sqlite3/buildlink3.mk" .include "../../mk/bdb.buildlink3.mk" +KRB5_CONFIG?= ${BUILDLINK_PREFIX.heimdal}/bin/krb5-config +.else +KRB5_CONFIG?= ${KRB5_CONFIG.heimdal} .endif +ALL_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} +CONFIGURE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} +MAKE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} .endif # HEIMDAL_BUILDLINK3_MK BUILDLINK_TREE+= -heimdal diff --git a/security/heimdal/builtin.mk b/security/heimdal/builtin.mk index 569efb0..348328d 100644 --- a/security/heimdal/builtin.mk +++ b/security/heimdal/builtin.mk @@ -105,16 +105,11 @@ MAKEVARS+= USE_BUILTIN.heimdal CHECK_BUILTIN.heimdal?= no .if !empty(CHECK_BUILTIN.heimdal:M[nN][oO]) -. if !empty(USE_BUILTIN.heimdal:M[nN][oO]) +. if !empty(USE_BUILTIN.heimdal:M[yY][eE][sS]) BUILDLINK_API_DEPENDS.heimdal+= heimdal>=0.6 -KRB5_CONFIG?= ${BUILDLINK_PREFIX.heimdal}/bin/krb5-config -CONFIGURE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} -MAKE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} -. endif - -. if !empty(USE_BUILTIN.heimdal:M[yY][eE][sS]) . if !empty(SH_KRB5_CONFIG:M__nonexistent__) +KRB5_CONFIG.heimdal?= ${BUILDLINK_DIR}/bin/krb5-config BUILDLINK_TARGETS+= fake-krb5-config fake-krb5-config: @@ -125,12 +120,8 @@ fake-krb5-config: $${src} >$${dst}; \ ${CHMOD} a+x $${dst} -KRB5_CONFIG?= ${BUILDLINK_DIR}/bin/krb5-config -. else -KRB5_CONFIG?= ${SH_KRB5_CONFIG} . endif -CONFIGURE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} -MAKE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} +KRB5_CONFIG.heimdal?= ${SH_KRB5_CONFIG:Q} . endif .endif # CHECK_BUILTIN.heimdal diff --git a/security/mit-krb5/buildlink3.mk b/security/mit-krb5/buildlink3.mk index bbcedb4..deca637 100644 --- a/security/mit-krb5/buildlink3.mk +++ b/security/mit-krb5/buildlink3.mk @@ -7,6 +7,19 @@ MIT_KRB5_BUILDLINK3_MK:= BUILDLINK_API_DEPENDS.mit-krb5+= mit-krb5>=1.4 BUILDLINK_PKGSRCDIR.mit-krb5?= ../../security/mit-krb5 + +CHECK_BUILTIN.mit-krb5:= yes +.include "../../security/mit-krb5/builtin.mk" +CHECK_BUILTIN.mit-krb5:= no +.if !empty(USE_BUILTIN.mit-krb5:tl:Myes) +KRB5_CONFIG?= ${KRB5_CONFIG.mit-krb5} +.else +KRB5_CONFIG?= ${BUILDLINK_PREFIX.mit-krb5}/bin/krb5-config +.endif +ALL_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} +CONFIGURE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} +MAKE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} + .endif # MIT_KRB5_BUILDLINK3_MK BUILDLINK_TREE+= -mit-krb5 diff --git a/security/mit-krb5/builtin.mk b/security/mit-krb5/builtin.mk index dc839a6..2c76cba 100644 --- a/security/mit-krb5/builtin.mk +++ b/security/mit-krb5/builtin.mk @@ -11,9 +11,8 @@ BUILTIN_FIND_HEADERS.H_MIT_KRB5= krb5/krb5.h .elif !empty(MACHINE_PLATFORM:MSunOS-*-*) BUILTIN_FIND_HEADERS.H_MIT_KRB5= kerberosv5/krb5.h .else -BUILTIN_FIND_HEADERS.H_MIT_KRB5= krb5.h +BUILTIN_FIND_HEADERS.H_MIT_KRB5= krb5/krb5.h krb5.h .endif -BUILTIN_FIND_GREP.H_MIT_KRB5= Massachusetts Institute of Technology BUILTIN_FIND_FILES_VAR:= SH_KRB5_CONFIG BUILTIN_FIND_FILES.SH_KRB5_CONFIG= /usr/bin/krb5-config BUILTIN_FIND_FILES.SH_KRB5_CONFIG+= /usr/lib/mit/bin/krb5-config @@ -28,7 +27,8 @@ BUILTIN_FIND_GREP.SH_KRB5_CONFIG= ^[ ]*--version) .if !defined(IS_BUILTIN.mit-krb5) IS_BUILTIN.mit-krb5= no . if empty(H_MIT_KRB5:M__nonexistent__) && empty(H_MIT_KRB5:M${LOCALBASE}/*) -IS_BUILTIN.mit-krb5= yes +IS_BUILTIN.mit-krb5!= ${SH_KRB5_CONFIG} --version | \ + ${GREP} -q 'Kerberos 5 release' && ${ECHO} "yes" || ${ECHO} "no" . endif .endif MAKEVARS+= IS_BUILTIN.mit-krb5 @@ -82,9 +82,6 @@ MAKEVARS+= USE_BUILTIN.mit-krb5 CHECK_BUILTIN.mit-krb5?= no .if !empty(CHECK_BUILTIN.mit-krb5:M[nN][oO]) . if !empty(USE_BUILTIN.mit-krb5:M[yY][eE][sS]) -KRB5_CONFIG?= ${SH_KRB5_CONFIG} -ALL_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} - BUILDLINK_CPPFLAGS.mit-krb5!= ${SH_KRB5_CONFIG} --cflags BUILDLINK_LDFLAGS.mit-krb5!= ${SH_KRB5_CONFIG} --libs @@ -93,7 +90,7 @@ BUILDLINK_LDFLAGS.mit-krb5!= ${SH_KRB5_CONFIG} --libs # MIT version does so we install a fake script which strips them out. # . if ${OPSYS} == "SunOS" -KRB5_CONFIG= ${BUILDLINK_DIR}/bin/krb5-config +KRB5_CONFIG.mit-krb5= ${BUILDLINK_DIR}/bin/krb5-config BUILDLINK_CPPFLAGS.mit-krb5+= -I/usr/include/gssapi BUILDLINK_LDFLAGS.mit-krb5+= -lgss BUILDLINK_TARGETS+= fake-krb5-config @@ -111,10 +108,7 @@ fake-krb5-config: fi . endif -. else -KRB5_CONFIG?= ${BUILDLINK_PREFIX.mit-krb5}/bin/krb5-config -CONFIGURE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} -MAKE_ENV+= KRB5_CONFIG=${KRB5_CONFIG:Q} +KRB5_CONFIG.mit-krb5?= ${SH_KRB5_CONFIG:Q} . endif .endif # CHECK_BUILTIN.mit-krb5