202 lines
7.4 KiB
Diff
202 lines
7.4 KiB
Diff
|
From 1de7c2e7d4f3557bb45b9526016b766c7119c6ad Mon Sep 17 00:00:00 2001
|
||
|
From: Rob Crittenden <rcritten@redhat.com>
|
||
|
Date: Thu, 20 Aug 2020 16:52:13 -0400
|
||
|
Subject: [PATCH 05/11] Require jansson for IPA RPC calls, make xmlrpc optional
|
||
|
|
||
|
xmlrpc is now only used for certmaster
|
||
|
|
||
|
IPA will only make JSON RPC calls to retrieve certificates
|
||
|
---
|
||
|
configure.ac | 59 ++++++++++++++++++++++++++++++-------------------
|
||
|
src/Makefile.am | 33 ++++++++++++++++++++-------
|
||
|
2 files changed, 61 insertions(+), 31 deletions(-)
|
||
|
|
||
|
diff --git a/configure.ac b/configure.ac
|
||
|
index abcd6d84..14991244 100644
|
||
|
--- a/configure.ac
|
||
|
+++ b/configure.ac
|
||
|
@@ -278,29 +278,42 @@ if ! ${configure_dist_target_only:-false} ; then
|
||
|
CPPFLAGS="$savedCPPFLAGS"
|
||
|
LDFLAGS="$savedLDFLAGS"
|
||
|
|
||
|
- dnl PKG_CHECK_MODULES(XMLRPC,xmlrpc_client) # Not provided in upstream versions.
|
||
|
- savedCFLAGS="$CFLAGS"
|
||
|
- CFLAGS=
|
||
|
- AC_ARG_VAR(XMLRPC_C_CONFIG,[the full path of the xmlrpc-c-config command])
|
||
|
- AC_PATH_PROG(XMLRPC_C_CONFIG,[xmlrpc-c-config],,[$PATH$PATH_SEPARATOR/usr/xmlrpc/bin$PATH_SEPARATOR/usr/xmlrpc-c/bin])
|
||
|
- if test -z "$XMLRPC_C_CONFIG" ; then
|
||
|
- AC_MSG_ERROR(xmlrpc-c-config not found)
|
||
|
- fi
|
||
|
- AC_MSG_CHECKING(for XMLRPC CFLAGS)
|
||
|
- XMLRPC_CFLAGS="`${XMLRPC_C_CONFIG} client --cflags` `${XMLRPC_C_CONFIG} --cflags`"
|
||
|
- AC_MSG_RESULT([$XMLRPC_CFLAGS])
|
||
|
- AC_SUBST(XMLRPC_CFLAGS)
|
||
|
- AC_MSG_CHECKING(for XMLRPC LIBS)
|
||
|
- XMLRPC_LIBS="`${XMLRPC_C_CONFIG} client --libs` `${XMLRPC_C_CONFIG} --libs`"
|
||
|
- AC_MSG_RESULT([$XMLRPC_LIBS])
|
||
|
- AC_SUBST(XMLRPC_LIBS)
|
||
|
- CFLAGS="$CFLAGS $XMLRPC_CFLAGS"
|
||
|
- AC_CHECK_MEMBERS(struct xmlrpc_curl_xportparms.gssapi_delegation,,,
|
||
|
- [
|
||
|
- #include <xmlrpc-c/client.h>
|
||
|
- #include <xmlrpc-c/transport.h>
|
||
|
- ])
|
||
|
- CFLAGS="$savedCFLAGS"
|
||
|
+ PKG_CHECK_MODULES(JANSSON,jansson)
|
||
|
+ have_jansson=true
|
||
|
+
|
||
|
+ AC_ARG_WITH([xmlrpc],
|
||
|
+ [AC_HELP_STRING([--with-xmlrpc], [Enable XML-RPC support])],
|
||
|
+ [with_xmlrpc=${with_xmlrpc}],
|
||
|
+ [with_xmlrpc=no])
|
||
|
+ AS_IF([test x"$with_xmlrpc" = xyes], [AC_DEFINE([WITH_XMLRPC], [1],
|
||
|
+ [include XMLRPC support])])
|
||
|
+ AM_CONDITIONAL(WITH_XMLRPC,test x"$with_xmlrpc" = xyes)
|
||
|
+
|
||
|
+ AS_IF([test x"$with_xmlrpc" = xyes], [
|
||
|
+ dnl PKG_CHECK_MODULES(XMLRPC,xmlrpc_client) # Not provided in upstream versions.
|
||
|
+ savedCFLAGS="$CFLAGS"
|
||
|
+ CFLAGS=
|
||
|
+ AC_ARG_VAR(XMLRPC_C_CONFIG,[the full path of the xmlrpc-c-config command])
|
||
|
+ AC_PATH_PROG(XMLRPC_C_CONFIG,[xmlrpc-c-config],,[$PATH$PATH_SEPARATOR/usr/xmlrpc/bin$PATH_SEPARATOR/usr/xmlrpc-c/bin])
|
||
|
+ if test -z "$XMLRPC_C_CONFIG" ; then
|
||
|
+ AC_MSG_ERROR(xmlrpc-c-config not found)
|
||
|
+ fi
|
||
|
+ AC_MSG_CHECKING(for XMLRPC CFLAGS)
|
||
|
+ XMLRPC_CFLAGS="`${XMLRPC_C_CONFIG} client --cflags` `${XMLRPC_C_CONFIG} --cflags`"
|
||
|
+ AC_MSG_RESULT([$XMLRPC_CFLAGS])
|
||
|
+ AC_SUBST(XMLRPC_CFLAGS)
|
||
|
+ AC_MSG_CHECKING(for XMLRPC LIBS)
|
||
|
+ XMLRPC_LIBS="`${XMLRPC_C_CONFIG} client --libs` `${XMLRPC_C_CONFIG} --libs`"
|
||
|
+ AC_MSG_RESULT([$XMLRPC_LIBS])
|
||
|
+ AC_SUBST(XMLRPC_LIBS)
|
||
|
+ CFLAGS="$CFLAGS $XMLRPC_CFLAGS"
|
||
|
+ AC_CHECK_MEMBERS(struct xmlrpc_curl_xportparms.gssapi_delegation,,,
|
||
|
+ [
|
||
|
+ #include <xmlrpc-c/client.h>
|
||
|
+ #include <xmlrpc-c/transport.h>
|
||
|
+ ])
|
||
|
+ CFLAGS="$savedCFLAGS"
|
||
|
+ ])
|
||
|
|
||
|
savedCFLAGS="$CFLAGS"
|
||
|
savedCPPFLAGS="$CPPFLAGS"
|
||
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||
|
index 5343dbc4..13bd87d9 100644
|
||
|
--- a/src/Makefile.am
|
||
|
+++ b/src/Makefile.am
|
||
|
@@ -11,15 +11,17 @@ LDFLAGS += -Wl,-z,relro,-z,now
|
||
|
endif
|
||
|
man_MANS = certmonger.8 getcert.1 getcert-request.1 getcert-list.1 \
|
||
|
getcert-list-cas.1 getcert-start-tracking.1 getcert-stop-tracking.1 \
|
||
|
- selfsign-getcert.1 ipa-getcert.1 certmaster-getcert.1 \
|
||
|
+ selfsign-getcert.1 ipa-getcert.1 \
|
||
|
getcert-resubmit.1 certmonger-ipa-submit.8 \
|
||
|
- certmonger-certmaster-submit.8 \
|
||
|
certmonger-dogtag-ipa-renew-agent-submit.8 certmonger.conf.5 \
|
||
|
getcert-refresh.1 getcert-refresh-ca.1 local-getcert.1 \
|
||
|
certmonger-local-submit.8 getcert-status.1 \
|
||
|
certmonger-dogtag-submit.8 certmonger-scep-submit.8 \
|
||
|
getcert-add-ca.1 getcert-add-scep-ca.1 getcert-modify-ca.1 \
|
||
|
getcert-remove-ca.1 getcert-rekey.1
|
||
|
+if WITH_XMLRPC
|
||
|
+man_MANS += certmaster-getcert.1 certmonger-certmaster-submit.8
|
||
|
+endif
|
||
|
pkgsysconfdir = $(sysconfdir)/$(PACKAGE)
|
||
|
pkgsysconf_DATA = certmonger.conf
|
||
|
EXTRA_PROGRAMS =
|
||
|
@@ -105,8 +107,6 @@ libcm_a_SOURCES = \
|
||
|
submit-sn.c \
|
||
|
submit-u.c \
|
||
|
submit-u.h \
|
||
|
- submit-x.c \
|
||
|
- submit-x.h \
|
||
|
subproc.c \
|
||
|
subproc.h \
|
||
|
tdbus.c \
|
||
|
@@ -121,6 +121,11 @@ libcm_a_SOURCES = \
|
||
|
util-m.h \
|
||
|
util-n.c \
|
||
|
util-n.h
|
||
|
+if WITH_XMLRPC
|
||
|
+libcm_a_SOURCES += \
|
||
|
+ submit-x.c \
|
||
|
+ submit-x.h
|
||
|
+endif
|
||
|
libcm_o_a_SOURCES =
|
||
|
if HAVE_OPENSSL
|
||
|
libcm_o_a_SOURCES += \
|
||
|
@@ -158,11 +163,13 @@ ipa_getcert_SOURCES = ipa-getcert.c tm.c tm.h
|
||
|
ipa_getcert_LDADD = $(getcert_LDADD)
|
||
|
endif
|
||
|
if WITH_IPA
|
||
|
+if WITH_XMLRPC
|
||
|
bin_PROGRAMS += certmaster-getcert
|
||
|
certmaster_getcert_CFLAGS = $(getcert_CFLAGS)
|
||
|
certmaster_getcert_SOURCES = certmaster-getcert.c tm.c tm.h
|
||
|
certmaster_getcert_LDADD = $(getcert_LDADD)
|
||
|
endif
|
||
|
+endif
|
||
|
bin_PROGRAMS += selfsign-getcert
|
||
|
selfsign_getcert_CFLAGS = $(getcert_CFLAGS)
|
||
|
selfsign_getcert_SOURCES = selfsign-getcert.c tm.c tm.h
|
||
|
@@ -181,21 +188,28 @@ certmonger_session_SOURCES = main.c env-session.c tm.c tm.h
|
||
|
certmonger_session_LDADD = libcm.a \
|
||
|
$(OPENSSL_LIBS) $(CERTMONGER_LIBS) $(KRB5_LIBS) $(IDN_LIBS) \
|
||
|
$(GMP_LIBS) $(UUID_LIBS) $(POPT_LIBS) $(LTLIBICONV) $(LDAP_LIBS)
|
||
|
-noinst_PROGRAMS = tdbusm-check serial-check nl-check submit-x toklist
|
||
|
+noinst_PROGRAMS = tdbusm-check serial-check nl-check toklist
|
||
|
+if WITH_XMLRPC
|
||
|
+noinst_PROGRAMS += submit-x
|
||
|
+endif
|
||
|
tdbusm_check_SOURCES = tdbusm-check.c tm.c tm.h
|
||
|
tdbusm_check_LDADD = libcm.a $(CERTMONGER_LIBS) $(POPT_LIBS) $(LDAP_LIBS)
|
||
|
serial_check_LDADD = libcm.a $(CERTMONGER_LIBS) $(LTLIBICONV) $(LDAP_LIBS)
|
||
|
nl_check_LDADD = libcm.a $(CERTMONGER_LIBS) $(LDAP_LIBS)
|
||
|
+if WITH_XMLRPC
|
||
|
submit_x_CFLAGS = $(AM_CFLAGS) $(NSS_CFLAGS) -DCM_SUBMIT_X_MAIN
|
||
|
submit_x_SOURCES = submit-x.c submit-x.h submit-u.c submit-u.h log.c log.h \
|
||
|
tm.c tm.h
|
||
|
submit_x_LDADD = $(XMLRPC_LIBS) $(KRB5_LIBS) $(TALLOC_LIBS) \
|
||
|
$(GMP_LIBS) $(UUID_LIBS) $(POPT_LIBS)
|
||
|
+endif
|
||
|
toklist_CFLAGS = $(AM_CFLAGS) $(NSS_CFLAGS)
|
||
|
toklist_LDADD = $(NSS_LIBS) $(POPT_LIBS)
|
||
|
if WITH_CERTMASTER
|
||
|
+if WITH_XMLRPC
|
||
|
pkglibexec_PROGRAMS += certmaster-submit
|
||
|
endif
|
||
|
+endif
|
||
|
if WITH_IPA
|
||
|
pkglibexec_PROGRAMS += ipa-submit
|
||
|
endif
|
||
|
@@ -205,19 +219,22 @@ pkglibexec_PROGRAMS += local-submit
|
||
|
pkglibexec_PROGRAMS += scep-submit
|
||
|
endif
|
||
|
noinst_PROGRAMS += submit-h submit-d
|
||
|
-ipa_submit_CFLAGS = $(AM_CFLAGS) $(NSS_CFLAGS)
|
||
|
+ipa_submit_CFLAGS = $(AM_CFLAGS) $(NSS_CFLAGS) $(CURL_CFLAGS) $(JANSSON_CFLAGS)
|
||
|
ipa_submit_SOURCES = ipa.c srvloc.c srvloc.h store.h store-gen.c \
|
||
|
- submit-x.c submit-x.h submit-u.c submit-u.h \
|
||
|
+ submit-h.c submit-h.h submit-u.c submit-u.h \
|
||
|
submit-e.h util.c util.h log.c log.h tm.c tm.h
|
||
|
ipa_submit_LDADD = $(XMLRPC_LIBS) $(LDAP_LIBS) $(KRB5_LIBS) $(TALLOC_LIBS) \
|
||
|
$(GMP_LIBS) $(IDN_LIBS) $(OPENSSL_LIBS) $(UUID_LIBS) \
|
||
|
- $(RESOLV_LIBS) $(LTLIBICONV) $(POPT_LIBS)
|
||
|
+ $(RESOLV_LIBS) $(LTLIBICONV) $(POPT_LIBS) $(CURL_LIBS) \
|
||
|
+ $(JANSSON_LIBS)
|
||
|
+if WITH_XMLRPC
|
||
|
certmaster_submit_CFLAGS = $(AM_CFLAGS) $(NSS_CFLAGS)
|
||
|
certmaster_submit_SOURCES = certmaster.c submit-x.c submit-x.h \
|
||
|
submit-e.h submit-u.c submit-u.h util.c util.h log.c log.h \
|
||
|
tm.c tm.h
|
||
|
certmaster_submit_LDADD = $(XMLRPC_LIBS) $(KRB5_LIBS) $(TALLOC_LIBS) \
|
||
|
$(GMP_LIBS) $(UUID_LIBS) $(LTLIBICONV) $(POPT_LIBS)
|
||
|
+endif
|
||
|
dogtag_ipa_renew_agent_submit_CFLAGS = $(AM_CFLAGS) $(XML_CFLAGS) \
|
||
|
$(NSS_CFLAGS) $(CURL_CFLAGS) \
|
||
|
-DDOGTAG_IPA_RENEW_AGENT=1
|
||
|
--
|
||
|
2.25.4
|
||
|
|