s3-waf: work around broken cups-config --libs output
authorAndrew Tridgell <tridge@samba.org>
Mon, 21 Feb 2011 02:58:13 +0000 (13:58 +1100)
committerAndrew Tridgell <tridge@samba.org>
Tue, 22 Feb 2011 01:51:09 +0000 (02:51 +0100)
"cups-config --libs" returns -lgssapi_krb5, which ties it to the
system krb5 library. It should get this via the indirect dependency of
libcups.so instead.

Work around this by using 'cups' as the library and avoid using --libs
in the cups-config command

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

source3/wscript

index bf4536b92f92ea9cc84f44bca740fdadae634365..d3c41b624e800c6e4ca2a696acd947f663cb8506 100644 (file)
@@ -530,10 +530,13 @@ msg.msg_acctrightslen = sizeof(fd);
     if Options.options.with_cups:
         conf.find_program('cups-config', var='CUPS_CONFIG')
         if conf.env.CUPS_CONFIG:
-           conf.check_cfg(path=conf.env.CUPS_CONFIG, args="--cflags --ldflags --libs",
+            # we would normally use --libs here, but cups-config incorrectly adds
+            # gssapi_krb5 and other libraries to its --libs output. That breaks the use
+            # of an in-tree heimdal kerberos
+           conf.check_cfg(path=conf.env.CUPS_CONFIG, args="--cflags --ldflags",
                            package="", uselib_store="cups")
         conf.CHECK_HEADERS('cups/cups.h cups/language.h', lib='cups')
-        conf.CHECK_FUNCS_IN('httpConnect httpConnectEncrypt', conf.env.LIB_cups)
+        conf.CHECK_FUNCS_IN('httpConnect httpConnectEncrypt', 'cups')
         if conf.CONFIG_SET('HAVE_CUPS_CUPS_H') and conf.CONFIG_SET('HAVE_CUPS_LANGUAGE_H'):
             conf.DEFINE('HAVE_CUPS', '1')
         else: