git: e89f84156a8f - main - security/krb5: Support libedit in base

From: Cy Schubert <cy_at_FreeBSD.org>
Date: Wed, 09 Aug 2023 23:46:58 UTC
The branch main has been updated by cy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e89f84156a8fcb2f81c1f962845f4456b2f62f63

commit e89f84156a8fcb2f81c1f962845f4456b2f62f63
Author:     Cy Schubert <cy@FreeBSD.org>
AuthorDate: 2023-08-09 23:15:50 +0000
Commit:     Cy Schubert <cy@FreeBSD.org>
CommitDate: 2023-08-09 23:43:03 +0000

    security/krb5: Support libedit in base
    
    Even though libedit is in base FreeBSD, the krb5 ports still depend
    on devel/libedit when the LIBEDIT option is selected. This is because
    ./configure uses pkgconf to determine if libedit exists, ignoring
    libedit in FreeBSD base. This patch adds a new LIBEDIT_BASE option
    which enables LIBEDIT (LIBEDIT_BASE) without installing the
    devel/libedit port.
    
    The GNU READLINE option will remain the default for now but it is
    planned to switch the default to LIBEDIT_BASE at some point. This is
    to reduce the dependency on GNU software and to bring it more into
    line with the planned MIT KRB5 import into FreeBSD base.
---
 security/krb5-119/Makefile                       |  6 ++++--
 security/krb5-119/files/patch-configure.ac       | 17 +++++++++++++++++
 security/krb5-119/files/patch-util_ss_listen.c   | 14 ++++++++++++++
 security/krb5-120/Makefile                       |  6 ++++--
 security/krb5-120/files/patch-configure.ac       | 17 +++++++++++++++++
 security/krb5-120/files/patch-util_ss_listen.c   | 14 ++++++++++++++
 security/krb5-121/Makefile                       |  6 ++++--
 security/krb5-121/files/patch-configure.ac       | 17 +++++++++++++++++
 security/krb5-121/files/patch-util_ss_listen.c   | 14 ++++++++++++++
 security/krb5-devel/Makefile                     |  4 +++-
 security/krb5-devel/files/patch-configure.ac     | 17 +++++++++++++++++
 security/krb5-devel/files/patch-util_ss_listen.c | 14 ++++++++++++++
 12 files changed, 139 insertions(+), 7 deletions(-)

diff --git a/security/krb5-119/Makefile b/security/krb5-119/Makefile
index 0cd71c5fdfa6..c4abab6469aa 100644
--- a/security/krb5-119/Makefile
+++ b/security/krb5-119/Makefile
@@ -22,7 +22,7 @@ CONFLICTS=		heimdal krb5 krb5-118 krb5-12*
 CONFLICTS_BUILD=	boringssl
 
 KERBEROSV_URL=		http://web.mit.edu/kerberos/
-USES=			compiler:c++11-lang cpe gmake gettext-runtime \
+USES=			autoreconf compiler:c++11-lang cpe gmake gettext-runtime \
 			gssapi:bootstrap,mit libtool:build localbase \
 			perl5 pkgconfig ssl
 BROKEN_SSL=	openssl30 openssl31
@@ -45,7 +45,7 @@ CPE_PRODUCT=		kerberos
 OPTIONS_DEFINE=		EXAMPLES NLS KRB5_PDF KRB5_HTML DNS_FOR_REALM LDAP LMDB
 OPTIONS_DEFAULT=	KRB5_PDF KRB5_HTML READLINE
 OPTIONS_RADIO=		CMD_LINE_EDITING
-OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT
+OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT LIBEDIT_BASE
 CMD_LINE_EDITING_DESC=	Command line editing for kadmin and ktutil
 KRB5_PDF_DESC=		Install krb5 PDF documentation
 KRB5_HTML_DESC=		Install krb5 HTML documentation
@@ -64,6 +64,8 @@ READLINE_USES=		readline
 READLINE_CONFIGURE_WITH=readline
 LIBEDIT_USES=		libedit
 LIBEDIT_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_DESC=	Use libedit in FreeBSD base
 
 .if defined(KRB5_HOME)
 PREFIX=			${KRB5_HOME}
diff --git a/security/krb5-119/files/patch-configure.ac b/security/krb5-119/files/patch-configure.ac
new file mode 100644
index 000000000000..abbae0e771b3
--- /dev/null
+++ b/security/krb5-119/files/patch-configure.ac
@@ -0,0 +1,17 @@
+--- configure.ac.orig	2023-08-07 11:38:21.000000000 -0700
++++ configure.ac	2023-08-09 14:49:19.833149000 -0700
+@@ -1356,8 +1356,12 @@
+     AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
+     AC_MSG_NOTICE([Using libedit for readline support])
+   elif test "x$with_libedit" = xyes; then
+-    # We were explicitly asked for libedit and couldn't find it.
+-    AC_MSG_ERROR([Could not detect libedit with pkg-config])
++    AC_MSG_NOTICE([Using libedit in FreeBSD base])
++    AC_CHECK_LIB([edit], [main], :,
++               AC_MSG_ERROR([Could not detect libedit]))
++    AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
++    RL_CFLAGS=-DFreeBSD_BASE_EDITLINE
++    RL_LIBS='-ledit'
+   else
+     AC_MSG_NOTICE([Not using any readline support])
+   fi
diff --git a/security/krb5-119/files/patch-util_ss_listen.c b/security/krb5-119/files/patch-util_ss_listen.c
new file mode 100644
index 000000000000..127784b0e2c0
--- /dev/null
+++ b/security/krb5-119/files/patch-util_ss_listen.c
@@ -0,0 +1,14 @@
+--- util/ss/listen.c.orig	2023-08-07 11:38:21.000000000 -0700
++++ util/ss/listen.c	2023-08-09 13:09:30.816661000 -0700
+@@ -15,7 +15,11 @@
+ #include <sys/param.h>
+ 
+ #if defined(HAVE_LIBEDIT)
++#if defined(FreeBSD_BASE_EDITLINE)
++#include <edit/readline/readline.h>
++#else
+ #include <editline/readline.h>
++#endif
+ #elif defined(HAVE_READLINE)
+ #include <readline/readline.h>
+ #include <readline/history.h>
diff --git a/security/krb5-120/Makefile b/security/krb5-120/Makefile
index d2557352ae56..dd175bf24bd6 100644
--- a/security/krb5-120/Makefile
+++ b/security/krb5-120/Makefile
@@ -19,7 +19,7 @@ CONFLICTS=		heimdal krb5 krb5-11* krb5-121
 CONFLICTS_BUILD=	boringssl
 
 KERBEROSV_URL=		http://web.mit.edu/kerberos/
-USES=			compiler:c++11-lang cpe gmake gettext-runtime \
+USES=			autoreconf compiler:c++11-lang cpe gmake gettext-runtime \
 			gssapi:bootstrap,mit libtool:build localbase \
 			perl5 pkgconfig ssl
 USE_CSTD=		gnu99
@@ -39,7 +39,7 @@ CPE_PRODUCT=		kerberos
 OPTIONS_DEFINE=		EXAMPLES NLS KRB5_PDF KRB5_HTML DNS_FOR_REALM LDAP LMDB
 OPTIONS_DEFAULT=	KRB5_PDF KRB5_HTML READLINE
 OPTIONS_RADIO=		CMD_LINE_EDITING
-OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT
+OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT LIBEDIT_BASE
 CMD_LINE_EDITING_DESC=	Command line editing for kadmin and ktutil
 KRB5_PDF_DESC=		Install krb5 PDF documentation
 KRB5_HTML_DESC=		Install krb5 HTML documentation
@@ -58,6 +58,8 @@ READLINE_USES=		readline
 READLINE_CONFIGURE_WITH=readline
 LIBEDIT_USES=		libedit
 LIBEDIT_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_DESC=	Use libedit in FreeBSD base
 
 .if defined(KRB5_HOME)
 PREFIX=			${KRB5_HOME}
diff --git a/security/krb5-120/files/patch-configure.ac b/security/krb5-120/files/patch-configure.ac
new file mode 100644
index 000000000000..abbae0e771b3
--- /dev/null
+++ b/security/krb5-120/files/patch-configure.ac
@@ -0,0 +1,17 @@
+--- configure.ac.orig	2023-08-07 11:38:21.000000000 -0700
++++ configure.ac	2023-08-09 14:49:19.833149000 -0700
+@@ -1356,8 +1356,12 @@
+     AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
+     AC_MSG_NOTICE([Using libedit for readline support])
+   elif test "x$with_libedit" = xyes; then
+-    # We were explicitly asked for libedit and couldn't find it.
+-    AC_MSG_ERROR([Could not detect libedit with pkg-config])
++    AC_MSG_NOTICE([Using libedit in FreeBSD base])
++    AC_CHECK_LIB([edit], [main], :,
++               AC_MSG_ERROR([Could not detect libedit]))
++    AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
++    RL_CFLAGS=-DFreeBSD_BASE_EDITLINE
++    RL_LIBS='-ledit'
+   else
+     AC_MSG_NOTICE([Not using any readline support])
+   fi
diff --git a/security/krb5-120/files/patch-util_ss_listen.c b/security/krb5-120/files/patch-util_ss_listen.c
new file mode 100644
index 000000000000..127784b0e2c0
--- /dev/null
+++ b/security/krb5-120/files/patch-util_ss_listen.c
@@ -0,0 +1,14 @@
+--- util/ss/listen.c.orig	2023-08-07 11:38:21.000000000 -0700
++++ util/ss/listen.c	2023-08-09 13:09:30.816661000 -0700
+@@ -15,7 +15,11 @@
+ #include <sys/param.h>
+ 
+ #if defined(HAVE_LIBEDIT)
++#if defined(FreeBSD_BASE_EDITLINE)
++#include <edit/readline/readline.h>
++#else
+ #include <editline/readline.h>
++#endif
+ #elif defined(HAVE_READLINE)
+ #include <readline/readline.h>
+ #include <readline/history.h>
diff --git a/security/krb5-121/Makefile b/security/krb5-121/Makefile
index 3338cd4fbe6f..4ba2b5aa5cea 100644
--- a/security/krb5-121/Makefile
+++ b/security/krb5-121/Makefile
@@ -19,7 +19,7 @@ CONFLICTS=		heimdal krb5 krb5-11* krb5-120
 CONFLICTS_BUILD=	boringssl
 
 KERBEROSV_URL=		http://web.mit.edu/kerberos/
-USES=			compiler:c++11-lang cpe gmake gettext-runtime \
+USES=			autoreconf compiler:c++11-lang cpe gmake gettext-runtime \
 			gssapi:bootstrap,mit libtool:build localbase \
 			perl5 pkgconfig ssl
 USE_CSTD=		gnu99
@@ -39,7 +39,7 @@ CPE_PRODUCT=		kerberos
 OPTIONS_DEFINE=		EXAMPLES NLS KRB5_PDF KRB5_HTML DNS_FOR_REALM LDAP LMDB
 OPTIONS_DEFAULT=	KRB5_PDF KRB5_HTML READLINE
 OPTIONS_RADIO=		CMD_LINE_EDITING
-OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT
+OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT LIBEDIT_BASE
 CMD_LINE_EDITING_DESC=	Command line editing for kadmin and ktutil
 KRB5_PDF_DESC=		Install krb5 PDF documentation
 KRB5_HTML_DESC=		Install krb5 HTML documentation
@@ -58,6 +58,8 @@ READLINE_USES=		readline
 READLINE_CONFIGURE_WITH=readline
 LIBEDIT_USES=		libedit
 LIBEDIT_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_DESC=	Use libedit in FreeBSD base
 
 .if defined(KRB5_HOME)
 PREFIX=			${KRB5_HOME}
diff --git a/security/krb5-121/files/patch-configure.ac b/security/krb5-121/files/patch-configure.ac
new file mode 100644
index 000000000000..abbae0e771b3
--- /dev/null
+++ b/security/krb5-121/files/patch-configure.ac
@@ -0,0 +1,17 @@
+--- configure.ac.orig	2023-08-07 11:38:21.000000000 -0700
++++ configure.ac	2023-08-09 14:49:19.833149000 -0700
+@@ -1356,8 +1356,12 @@
+     AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
+     AC_MSG_NOTICE([Using libedit for readline support])
+   elif test "x$with_libedit" = xyes; then
+-    # We were explicitly asked for libedit and couldn't find it.
+-    AC_MSG_ERROR([Could not detect libedit with pkg-config])
++    AC_MSG_NOTICE([Using libedit in FreeBSD base])
++    AC_CHECK_LIB([edit], [main], :,
++               AC_MSG_ERROR([Could not detect libedit]))
++    AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
++    RL_CFLAGS=-DFreeBSD_BASE_EDITLINE
++    RL_LIBS='-ledit'
+   else
+     AC_MSG_NOTICE([Not using any readline support])
+   fi
diff --git a/security/krb5-121/files/patch-util_ss_listen.c b/security/krb5-121/files/patch-util_ss_listen.c
new file mode 100644
index 000000000000..127784b0e2c0
--- /dev/null
+++ b/security/krb5-121/files/patch-util_ss_listen.c
@@ -0,0 +1,14 @@
+--- util/ss/listen.c.orig	2023-08-07 11:38:21.000000000 -0700
++++ util/ss/listen.c	2023-08-09 13:09:30.816661000 -0700
+@@ -15,7 +15,11 @@
+ #include <sys/param.h>
+ 
+ #if defined(HAVE_LIBEDIT)
++#if defined(FreeBSD_BASE_EDITLINE)
++#include <edit/readline/readline.h>
++#else
+ #include <editline/readline.h>
++#endif
+ #elif defined(HAVE_READLINE)
+ #include <readline/readline.h>
+ #include <readline/history.h>
diff --git a/security/krb5-devel/Makefile b/security/krb5-devel/Makefile
index ad7f424f7e98..1bafbad0a465 100644
--- a/security/krb5-devel/Makefile
+++ b/security/krb5-devel/Makefile
@@ -40,7 +40,7 @@ CPE_PRODUCT=		kerberos
 OPTIONS_DEFINE=		EXAMPLES NLS DNS_FOR_REALM LDAP LMDB
 OPTIONS_DEFAULT=	KRB5_PDF KRB5_HTML READLINE
 OPTIONS_RADIO=		CMD_LINE_EDITING
-OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT
+OPTIONS_RADIO_CMD_LINE_EDITING=	READLINE LIBEDIT LIBEDIT_BASE
 CMD_LINE_EDITING_DESC=	Command line editing for kadmin and ktutil
 DNS_FOR_REALM_DESC=	Enable DNS lookups for Kerberos realm names
 DNS_FOR_REALM_CONFIGURE_ENABLE=	dns-for-realm
@@ -57,6 +57,8 @@ READLINE_USES=		readline
 READLINE_CONFIGURE_WITH=readline
 LIBEDIT_USES=		libedit
 LIBEDIT_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_CONFIGURE_WITH=	libedit
+LIBEDIT_BASE_DESC=	Use libedit in FreeBSD base
 
 .if defined(KRB5_HOME)
 PREFIX=			${KRB5_HOME}
diff --git a/security/krb5-devel/files/patch-configure.ac b/security/krb5-devel/files/patch-configure.ac
new file mode 100644
index 000000000000..abbae0e771b3
--- /dev/null
+++ b/security/krb5-devel/files/patch-configure.ac
@@ -0,0 +1,17 @@
+--- configure.ac.orig	2023-08-07 11:38:21.000000000 -0700
++++ configure.ac	2023-08-09 14:49:19.833149000 -0700
+@@ -1356,8 +1356,12 @@
+     AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
+     AC_MSG_NOTICE([Using libedit for readline support])
+   elif test "x$with_libedit" = xyes; then
+-    # We were explicitly asked for libedit and couldn't find it.
+-    AC_MSG_ERROR([Could not detect libedit with pkg-config])
++    AC_MSG_NOTICE([Using libedit in FreeBSD base])
++    AC_CHECK_LIB([edit], [main], :,
++               AC_MSG_ERROR([Could not detect libedit]))
++    AC_DEFINE([HAVE_LIBEDIT], 1, [Define if building with libedit.])
++    RL_CFLAGS=-DFreeBSD_BASE_EDITLINE
++    RL_LIBS='-ledit'
+   else
+     AC_MSG_NOTICE([Not using any readline support])
+   fi
diff --git a/security/krb5-devel/files/patch-util_ss_listen.c b/security/krb5-devel/files/patch-util_ss_listen.c
new file mode 100644
index 000000000000..127784b0e2c0
--- /dev/null
+++ b/security/krb5-devel/files/patch-util_ss_listen.c
@@ -0,0 +1,14 @@
+--- util/ss/listen.c.orig	2023-08-07 11:38:21.000000000 -0700
++++ util/ss/listen.c	2023-08-09 13:09:30.816661000 -0700
+@@ -15,7 +15,11 @@
+ #include <sys/param.h>
+ 
+ #if defined(HAVE_LIBEDIT)
++#if defined(FreeBSD_BASE_EDITLINE)
++#include <edit/readline/readline.h>
++#else
+ #include <editline/readline.h>
++#endif
+ #elif defined(HAVE_READLINE)
+ #include <readline/readline.h>
+ #include <readline/history.h>