I'm attempting to build squid-cache (squid-3.4.2) on Mavericks (10.9.1) with the following configure based on the SquidMan FAQ:
./configure --prefix=/usr/local/squid --disable-eui CFLAGS=-mmacosx-version-min=10.9 --enable-pf-transparent
The build fails at the kerberos helpers:
g++ -DHAVE_CONFIG_H -I../../.. -I../../../include -I../../../lib -I../../../src -I../../../include -I../../../libltdl -I../../.. -I../../../include -I../../../lib -I../../../src -I../../../include -I../../../libltdl -I. -Werror -Qunused-arguments -D_REENTRANT -g -O2 -march=native -std=c++0x -MT support_krb5.o -MD -MP -MF .deps/support_krb5.Tpo -c -o support_krb5.o support_krb5.cc
support_krb5.cc:47:13: error: 'krb5_cc_destroy' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
krb5_cc_destroy(kparam.context, kparam.cc);
^
/usr/include/krb5/krb5.h:1296:1: note: 'krb5_cc_destroy' declared here
krb5_cc_destroy (krb5_context context, krb5_ccache cache) KERBEROS_APPLE_DEPRECATED("use GSS.framework");
^
support_krb5.cc:48:9: error: 'krb5_free_context' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
krb5_free_context(kparam.context);
^
/usr/include/krb5/krb5.h:1456:20: note: 'krb5_free_context' declared here
void KRB5_CALLCONV krb5_free_context
^
support_krb5.cc:80:12: error: 'krb5_init_context' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_init_context(&kparam.context);
^
/usr/include/krb5/krb5.h:1452:31: note: 'krb5_init_context' declared here
krb5_error_code KRB5_CALLCONV krb5_init_context
^
support_krb5.cc:91:5: error: 'krb5_kt_default_name' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
krb5_kt_default_name(kparam.context, buf, KT_PATH_MAX);
^
/usr/include/krb5/krb5.h:1702:31: note: 'krb5_kt_default_name' declared here
krb5_error_code KRB5_CALLCONV krb5_kt_default_name
^
support_krb5.cc:98:12: error: 'krb5_kt_resolve' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_kt_resolve(kparam.context, keytab_name, &keytab);
^
/usr/include/krb5/krb5.h:1698:31: note: 'krb5_kt_resolve' declared here
krb5_error_code KRB5_CALLCONV krb5_kt_resolve
^
support_krb5.cc:104:12: error: 'krb5_kt_start_seq_get' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_kt_start_seq_get(kparam.context, keytab, &cursor);
^
/usr/include/krb5/krb5.h:1435:1: note: 'krb5_kt_start_seq_get' declared here
krb5_kt_start_seq_get(krb5_context context, krb5_keytab keytab,
^
support_krb5.cc:113:20: error: 'krb5_kt_next_entry' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
while ((code = krb5_kt_next_entry(kparam.context, keytab, &entry, &cursor)) == 0) {
^
/usr/include/krb5/krb5.h:1438:1: note: 'krb5_kt_next_entry' declared here
krb5_kt_next_entry(krb5_context context, krb5_keytab keytab,
^
support_krb5.cc:117:9: error: 'krb5_copy_principal' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
krb5_copy_principal(kparam.context, entry.principal, &principal_list[nprinc++]);
^
/usr/include/krb5/krb5.h:1633:31: note: 'krb5_copy_principal' declared here
krb5_error_code KRB5_CALLCONV krb5_copy_principal
^
support_krb5.cc:129:20: error: 'krb5_unparse_name' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_unparse_name(kparam.context, entry.principal, &principal_name);
^
/usr/include/krb5/krb5.h:1561:31: note: 'krb5_unparse_name' declared here
krb5_error_code KRB5_CALLCONV krb5_unparse_name
^
support_krb5.cc:140:16: error: 'krb5_free_keytab_entry_contents' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_free_keytab_entry_contents(kparam.context, &entry);
^
/usr/include/krb5/krb5.h:1709:31: note: 'krb5_free_keytab_entry_contents' declared here
krb5_error_code KRB5_CALLCONV krb5_free_keytab_entry_contents
^
support_krb5.cc:156:12: error: 'krb5_kt_end_seq_get' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_kt_end_seq_get(kparam.context, keytab, &cursor);
^
/usr/include/krb5/krb5.h:1441:1: note: 'krb5_kt_end_seq_get' declared here
krb5_kt_end_seq_get(krb5_context context, krb5_keytab keytab,
^
support_krb5.cc:175:12: error: 'krb5_cc_resolve' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_cc_resolve(kparam.context, mem_cache, &kparam.cc);
^
/usr/include/krb5/krb5.h:1728:31: note: 'krb5_cc_resolve' declared here
krb5_error_code KRB5_CALLCONV krb5_cc_resolve
^
support_krb5.cc:196:20: error: 'krb5_unparse_name' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_unparse_name(kparam.context, principal_list[i], &principal_name);
^
/usr/include/krb5/krb5.h:1561:31: note: 'krb5_unparse_name' declared here
krb5_error_code KRB5_CALLCONV krb5_unparse_name
^
support_krb5.cc:204:20: error: 'krb5_get_init_creds_keytab' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_get_init_creds_keytab(kparam.context, creds, principal_list[i], keytab, 0, NULL, NULL);
^
/usr/include/krb5/krb5.h:2337:1: note: 'krb5_get_init_creds_keytab' declared here
krb5_get_init_creds_keytab
^
support_krb5.cc:217:20: error: 'krb5_cc_initialize' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_cc_initialize(kparam.context, kparam.cc, principal_list[i]);
^
/usr/include/krb5/krb5.h:1292:1: note: 'krb5_cc_initialize' declared here
krb5_cc_initialize(krb5_context context, krb5_ccache cache,
^
support_krb5.cc:222:20: error: 'krb5_cc_store_cred' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_cc_store_cred(kparam.context, kparam.cc, creds);
^
/usr/include/krb5/krb5.h:1302:1: note: 'krb5_cc_store_cred' declared here
krb5_cc_store_cred (krb5_context context, krb5_ccache cache,
^
support_krb5.cc:228:17: error: 'krb5_free_principal' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
krb5_free_principal(kparam.context, creds->server);
^
/usr/include/krb5/krb5.h:1760:20: note: 'krb5_free_principal' declared here
void KRB5_CALLCONV krb5_free_principal
^
support_krb5.cc:236:20: error: 'krb5_parse_name' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_parse_name(kparam.context, service, &creds->server);
^
/usr/include/krb5/krb5.h:1549:31: note: 'krb5_parse_name' declared here
krb5_error_code KRB5_CALLCONV krb5_parse_name
^
support_krb5.cc:242:20: error: 'krb5_get_credentials' is deprecated: use GSS.framework
[-Werror,-Wdeprecated-declarations]
code = krb5_get_credentials(kparam.context, 0, kparam.cc, creds, &tgt_creds);
^
/usr/include/krb5/krb5.h:1486:31: note: 'krb5_get_credentials' declared here
krb5_error_code KRB5_CALLCONV krb5_get_credentials
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[4]: *** [support_krb5.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
I'm not quite sure how to resolve this issue.
My initial use of squid does not need kerberos, so after some configuration mining I found that this flag will turn off that part of the build:
--with-krb5-config=no
But then I end up with errors during the ldap helper build. (which I also don't need)...and then manually editing Makefiles becomes a deep rabbit hole which still results in build errors.
I would like to get this to build correctly "as-is" without substantial build changes. There seems to be very little knowledge online to help with this.
Does anyone have experience building this on os-x Mavericks? and, if-so, what are the changes I need?
Successfully compiled with :
--prefix=/usr/local
--disable-auth
--with-krb5-config=no
--disable-external-acl-helpers
--disable-eui
tested : ok
My hardware: