net-mgmt/adcli: Remove homegrown Hiemdal support

The local patch adding Hiemdal support was causing 'adcli join' command to fail.
Hiemdal is going away neverthless, so remove this patch.
While here, fix Makefile style.

Sponsored by:	Serenity Cybersecurity, LLC
This commit is contained in:
Gleb Popov
2024-05-23 14:30:19 +03:00
parent aa50e1eb06
commit b8e4873139
6 changed files with 60 additions and 668 deletions
+10 -32
View File
@@ -1,8 +1,7 @@
PORTNAME= adcli
PORTVERSION= 0.9.2
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= net-mgmt net security
MASTER_SITES= https://gitlab.freedesktop.org/realmd/adcli/-/archive/${PORTVERSION}/
MAINTAINER= ports@virtual-estates.net
COMMENT= Tool for performing actions on an Active Directory domain
@@ -14,44 +13,23 @@ BUILD_DEPENDS= xsltproc:textproc/libxslt \
docbook-xml>0:textproc/docbook-xml \
docbook-xsl>0:textproc/docbook-xsl
USES= autoreconf gssapi:mit,flags iconv ldap libtool localbase tar:bz2
USE_GITLAB= yes
GL_SITE= https://gitlab.freedesktop.org
GL_ACCOUNT= realmd
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX=${PREFIX}/share
TEST_TARGET= check
OPTIONS_DEFINE= DOCS
OPTIONS_SINGLE= GSSAPI
OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT
OPTIONS_DEFAULT= GSSAPI_BASE
CONFIGURE_ARGS= ${GSSAPI_CONFIGURE_ARGS}
# xsltproc and docbook are needed to create the man-page. xmlto is only
# required for generating HTML-documents, which are optional.
CONFIGURE_ENV+= ac_cv_path_KRB5_CONFIG=${KRB5CONFIG} \
ac_cv_path_XMLTO=${PORT_OPTIONS:MDOCS:S|DOCS|${LOCALBASE}/bin/xmlto|:S|^$|${TRUE}|}
CONFIGURE_ARGS= --sysconfdir=/etc
TEST_TARGET= check
CFLAGS+= -I${ICONV_INCLUDE_PATH}
LDFLAGS+= -L${ICONV_LIB_PATH} ${ICONV_LIB}
USES= autoreconf iconv ldap libtool localbase tar:bz2
OPTIONS_DEFINE= DOCS
DOCS_BUILD_DEPENDS= xmlto:textproc/xmlto
GSSAPI_BASE_USES= gssapi
GSSAPI_MIT_USES= gssapi:mit,flags
GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags
GSSAPI_BASE_CONFIGURE_ARGS= --sysconfdir=/etc
GSSAPI_BASE_CONFIGURE_ENV= KRB5_CFLAGS="-I${GSSAPIINCDIR}" \
KRB5_LIBS="${GSSAPILIBS}"
GSSAPI_HEIMDAL_CONFIGURE_ARGS= --sysconfdir=${LOCALBASE}/etc
GSSAPI_HEIMDAL_CONFIGURE_ENV= KRB5_CFLAGS="-I${GSSAPIINCDIR}/heimdal" \
KRB5_LIBS="${GSSAPILDFLAGS} ${GSSAPILIBS}"
GSSAPI_MIT_CONFIGURE_ARGS= --sysconfdir=${LOCALBASE}/etc
GSSAPI_MIT_CONFIGURE_ENV= KRB5_CFLAGS="-I${GSSAPIINCDIR}/gssapi" \
KRB5_LIBS="${GSSAPILDFLAGS} ${GSSAPILIBS} -lk5crypto"
GSSAPI_BASE_CFLAGS+= -DHEIMDAL
GSSAPI_HEIMDAL_CFLAGS+= -DHEIMDAL
# Quiets down warnings inside MIT's headers:
GSSAPI_MIT_CFLAGS+= -DTARGET_OS_MAC=0
post-build:
${RM} ${WRKSRC}/doc/html/adcli-docs.proc # An empty file...
@@ -1,6 +1,7 @@
--- configure.ac 2021-02-20 08:51:40.000000000 -0500
+++ configure.ac 2021-10-12 16:57:31.442711000 -0400
@@ -104,5 +104,8 @@
--- configure.ac.orig 2022-09-28 17:04:28 UTC
+++ configure.ac
@@ -103,7 +103,10 @@ for lib in "" "-lresolv"; do
saved_LIBS="$LIBS"
LIBS="$LIBS $lib"
AC_LINK_IFELSE([
- AC_LANG_PROGRAM([#include <resolv.h>],
@@ -8,9 +9,11 @@
+ [#include <netinet/in.h>]
+ [#include <arpa/nameser.h>]
+ [#include <resolv.h>]],
[res_query (0, 0, 0, 0, 0)])
],
@@ -269,11 +272,4 @@
[res_query (0, 0, 0, 0, 0);
ns_get32 (NULL);
ns_get16 (NULL);])
@@ -285,13 +288,6 @@ else
AC_MSG_ERROR([cat is not available])
else
AC_DEFINE_UNQUOTED(BIN_CAT, "$BIN_CAT", [path to cat, used in unit test])
-fi
@@ -22,3 +25,4 @@
- AC_DEFINE_UNQUOTED(BIN_TAC, "$BIN_TAC", [path to tac, used in unit test])
fi
AC_PATH_PROG(BIN_REV, rev, no)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,10 @@
--- library/adconn.c.orig 2022-09-28 17:04:28 UTC
+++ library/adconn.c
@@ -31,6 +31,7 @@
#include <krb5/krb5.h>
#include <ldap.h>
#include <sasl/sasl.h>
+#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
@@ -0,0 +1,10 @@
--- library/addisco.c.orig 2022-09-28 17:04:28 UTC
+++ library/addisco.c
@@ -32,6 +32,7 @@
#include <arpa/inet.h>
#include <arpa/nameser.h>
+#include <netinet/in.h>
#include <assert.h>
#include <netdb.h>
@@ -0,0 +1,20 @@
--- library/adkrb5.c.orig 2022-09-28 17:04:28 UTC
+++ library/adkrb5.c
@@ -250,7 +250,7 @@ _adcli_krb5_get_keyblock (krb5_context k5,
krb5_error_code code;
code = krb5_kt_start_seq_get (k5, keytab, &cursor);
- if (code == KRB5_KT_END || code == ENOENT)
+ if (code == KRB5_KT_END || code == KRB5_KT_NOTFOUND)
return 0;
else if (code != 0)
return code;
@@ -303,7 +303,7 @@ _adcli_krb5_keytab_copy_entries (krb5_context k5,
code = _adcli_krb5_get_keyblock (k5, keytab, &entry.key,
match_enctype_and_kvno, &closure);
if (code != 0 || closure.matched == 0) {
- return code != 0 ? code : ENOKEY;
+ return code != 0 ? code : KRB5_KT_NOTFOUND;
}
entry.principal = principal;