From nobody Wed Oct 20 18:47:19 2021 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4F80C180D35D; Wed, 20 Oct 2021 18:47:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HZKNR1qjtz4Yr5; Wed, 20 Oct 2021 18:47:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1F0AE4F97; Wed, 20 Oct 2021 18:47:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 19KIlJim088503; Wed, 20 Oct 2021 18:47:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 19KIlJhO088502; Wed, 20 Oct 2021 18:47:19 GMT (envelope-from git) Date: Wed, 20 Oct 2021 18:47:19 GMT Message-Id: <202110201847.19KIlJhO088502@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Mikhail Teterin Subject: git: d30374f60a18 - main - net-mgmt/adcli: Upgrade to 0.9.1, fix generation of documentation. List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mi X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d30374f60a188dadfc6e15cfff0a1d5aa94d7ac4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by mi: URL: https://cgit.FreeBSD.org/ports/commit/?id=d30374f60a188dadfc6e15cfff0a1d5aa94d7ac4 commit d30374f60a188dadfc6e15cfff0a1d5aa94d7ac4 Author: Mikhail Teterin AuthorDate: 2021-10-20 18:01:15 +0000 Commit: Mikhail Teterin CommitDate: 2021-10-20 18:46:46 +0000 net-mgmt/adcli: Upgrade to 0.9.1, fix generation of documentation. The older version (0.8.x) cannot deal with newer ADs. Requested by: University of California in Santa Cruz. --- net-mgmt/adcli/Makefile | 20 +++-- net-mgmt/adcli/distinfo | 6 +- net-mgmt/adcli/files/patch-configure | 32 +++++-- net-mgmt/adcli/files/patch-doc | 17 ++++ net-mgmt/adcli/files/patch-heimdal | 166 ++++++++++++++++++++++++++++------- net-mgmt/adcli/pkg-plist | 10 +++ 6 files changed, 201 insertions(+), 50 deletions(-) diff --git a/net-mgmt/adcli/Makefile b/net-mgmt/adcli/Makefile index 0c1d00e2ae6e..54ae14e7cb89 100644 --- a/net-mgmt/adcli/Makefile +++ b/net-mgmt/adcli/Makefile @@ -1,10 +1,9 @@ # Created by: Mikhail T. PORTNAME= adcli -PORTVERSION= 0.8.2 -PORTREVISION= 1 +PORTVERSION= 0.9.1 CATEGORIES= net-mgmt net security -MASTER_SITES= https://www.freedesktop.org/software/realmd/releases/ +MASTER_SITES= https://gitlab.freedesktop.org/sbose/adcli//uploads/30880d967e79cee789194435e70fbf30/ MAINTAINER= mi@aldan.algebra.com COMMENT= Tool for performing actions on an Active Directory domain @@ -24,14 +23,19 @@ OPTIONS_SINGLE= GSSAPI OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT OPTIONS_DEFAULT= GSSAPI_BASE +# 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=${TRUE} + ac_cv_path_XMLTO=${PORT_OPTIONS:MDOCS:S|DOCS|${LOCALBASE}/bin/xmlto|:S|^$|${TRUE}|} CONFIGURE_ARGS= --sysconfdir=/etc +USES= autoreconf + # Kerberos may or may not be there, but LDAP always is: -CFLAGS+= -I${LOCALBASE}/include -DLDAP_DEPRECATED=0 +CFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib +DOCS_BUILD_DEPENDS= xmlto:textproc/xmlto GSSAPI_BASE_USES= gssapi GSSAPI_MIT_USES= gssapi:mit,flags GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags @@ -45,9 +49,13 @@ GSSAPI_HEIMDAL_CONFIGURE_ENV= KRB5_CFLAGS="-I${GSSAPIINCDIR}/heimdal" \ GSSAPI_MIT_CONFIGURE_ARGS= --sysconfdir=${LOCALBASE}/etc GSSAPI_MIT_CONFIGURE_ENV= KRB5_CFLAGS="-I${GSSAPIINCDIR}/gssapi" \ KRB5_LIBS="${GSSAPILDFLAGS} ${GSSAPILIBS} -lk5crypto" -# Quiets down warnings inside MIT's headers: + 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... + .include diff --git a/net-mgmt/adcli/distinfo b/net-mgmt/adcli/distinfo index 739bc8adf37a..a1f2e3234167 100644 --- a/net-mgmt/adcli/distinfo +++ b/net-mgmt/adcli/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1551371775 -SHA256 (adcli-0.8.2.tar.gz) = 72f6db406e35d96de2bdc413a5ed69f28a4a735c08670c6556713c3f83921aa4 -SIZE (adcli-0.8.2.tar.gz) = 467168 +TIMESTAMP = 1634140826 +SHA256 (adcli-0.9.1.tar.gz) = 8d8a2814d6792f4b06feeaefacf6f6c3605fcfa46ba6c938314386434c1a6952 +SIZE (adcli-0.9.1.tar.gz) = 504052 diff --git a/net-mgmt/adcli/files/patch-configure b/net-mgmt/adcli/files/patch-configure index af9a311dd1dd..86fdeacb99bb 100644 --- a/net-mgmt/adcli/files/patch-configure +++ b/net-mgmt/adcli/files/patch-configure @@ -1,10 +1,24 @@ ---- configure 2016-01-19 15:01:43.000000000 -0500 -+++ configure 2016-06-15 16:55:50.354029000 -0400 -@@ -13209,4 +13209,7 @@ - /* end confdefs.h. */ +--- configure.ac 2021-02-20 08:51:40.000000000 -0500 ++++ configure.ac 2021-10-12 16:57:31.442711000 -0400 +@@ -104,5 +104,8 @@ + LIBS="$LIBS $lib" + AC_LINK_IFELSE([ +- AC_LANG_PROGRAM([#include ], ++ AC_LANG_PROGRAM([[#include ] ++ [#include ] ++ [#include ] ++ [#include ]], + [res_query (0, 0, 0, 0, 0)]) + ], +@@ -269,11 +272,4 @@ + else + AC_DEFINE_UNQUOTED(BIN_CAT, "$BIN_CAT", [path to cat, used in unit test]) +-fi +- +-AC_PATH_PROG(BIN_TAC, tac, no) +-if test "$BIN_TAC" = "no" ; then +- AC_MSG_ERROR([tac is not available]) +-else +- AC_DEFINE_UNQUOTED(BIN_TAC, "$BIN_TAC", [path to tac, used in unit test]) + fi -+#include -+#include -+#include - #include - int diff --git a/net-mgmt/adcli/files/patch-doc b/net-mgmt/adcli/files/patch-doc new file mode 100644 index 000000000000..6fd1ff97d7b4 --- /dev/null +++ b/net-mgmt/adcli/files/patch-doc @@ -0,0 +1,17 @@ +See: + + https://gitlab.freedesktop.org/realmd/adcli/-/issues/26 + +--- doc/Makefile.am 2020-11-11 05:48:13.000000000 -0500 ++++ doc/Makefile.am 2021-10-14 13:36:38.468268000 -0400 +@@ -54,7 +54,8 @@ + $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl + +-permissions.xml: ../library/adenroll.c adcli.xml ++permissions.xml: ../library/adenroll.c + echo "" > $@ +- grep '".*".*/\* :ADPermissions: ' $< | sed -e 's#.*"\(.*\)".*/\* :ADPermissions: \(.*\)\*/$$#\1\2#' | sed -e 's#\*##g' >> $@ ++ sed -n -e 's#.*"\(.*\)".* /\* :ADPermissions: \(.*\) \*/$$#\1\2#p' $? \ ++ | sed -e 's# *\* *##g' >> $@ + echo "" >> $@ + diff --git a/net-mgmt/adcli/files/patch-heimdal b/net-mgmt/adcli/files/patch-heimdal index 1b8605ab8632..7c4438cb70c2 100644 --- a/net-mgmt/adcli/files/patch-heimdal +++ b/net-mgmt/adcli/files/patch-heimdal @@ -65,21 +65,30 @@ Submitted upstream: +#endif #include ---- library/adenroll.c 2015-12-11 05:37:01.000000000 -0500 -+++ library/adenroll.c 2016-06-15 19:46:42.925270000 -0400 -@@ -29,5 +29,10 @@ +--- library/adenroll.c 2021-02-20 08:51:40.000000000 -0500 ++++ library/adenroll.c 2021-10-12 20:53:10.777253000 -0400 +@@ -29,5 +29,11 @@ #include -#include +#ifdef HEIMDAL +# include +# define krb5_free_data_contents(ctx, data) krb5_data_free(data) ++# define krb5_free_enctypes(ctx, enctypes) free(enctypes) +#else +# include +#endif #include #include -@@ -228,5 +233,9 @@ generate_host_password (adcli_enroll *e +@@ -315,5 +321,7 @@ + char *password; + krb5_context k5; ++#ifndef HEIMDAL + krb5_error_code code; ++#endif + krb5_data buffer; + int at; +@@ -330,6 +338,10 @@ buffer.data = password + at; +#ifdef HEIMDAL @@ -89,7 +98,15 @@ Submitted upstream: return_val_if_fail (code == 0, NULL); +#endif -@@ -895,5 +904,6 @@ set_password_with_computer_creds (adcli_ + at += filter (buffer.data, buffer.length); +@@ -1302,5 +1314,5 @@ + _adcli_err ("Cannot set %s password: %.*s%s%s", + s_or_c (enroll), +- (int)result_code_string.length, result_code_string.data, ++ (int)result_code_string.length, (char *)result_code_string.data, + message ? ": " : "", message ? message : ""); + res = ADCLI_ERR_CREDENTIALS; +@@ -1350,5 +1362,6 @@ } - code = krb5_change_password (k5, &creds, enroll->computer_password, @@ -97,14 +114,21 @@ Submitted upstream: + code = krb5_set_password (k5, &creds, enroll->computer_password, NULL, &result_code, &result_code_string, &result_string); -@@ -1252,5 +1262,5 @@ ensure_host_keytab (adcli_result res, +@@ -1372,5 +1385,5 @@ + #endif + _adcli_err ("Cannot change computer password: %.*s%s%s", +- (int)result_code_string.length, result_code_string.data, ++ (int)result_code_string.length, (char *)result_code_string.data, + message ? ": " : "", message ? message : ""); + res = ADCLI_ERR_CREDENTIALS; +@@ -1749,5 +1762,5 @@ return_unexpected_if_fail (code == 0); - enroll->keytab_name = name; + enroll->keytab_name = realloc(name, strlen(name) + 1); enroll->keytab_name_is_krb5 = 1; } -@@ -1268,6 +1278,6 @@ load_keytab_entry (krb5_context k5, +@@ -1765,6 +1778,6 @@ krb5_error_code code; krb5_principal principal; - const char *realm; @@ -113,7 +137,7 @@ Submitted upstream: + size_t len, entry_realm_len; char *value; char *name; -@@ -1275,11 +1285,22 @@ load_keytab_entry (krb5_context k5, +@@ -1772,11 +1785,22 @@ /* Skip over any entry without a principal or realm */ principal = entry->principal; - if (!principal || !principal->realm.length) @@ -138,14 +162,14 @@ Submitted upstream: + value = _adcli_str_dupn (entry_realm, entry_realm_len); adcli_conn_set_domain_realm (enroll->conn, value); _adcli_info ("Found realm in keytab: %s", value); -@@ -1290,5 +1311,5 @@ load_keytab_entry (krb5_context k5, +@@ -1787,5 +1811,5 @@ /* Only look at entries that match the realm */ len = strlen (realm); - if (principal->realm.length != len && strncmp (realm, principal->realm.data, len) != 0) + if (entry_realm_len != len && strncmp (realm, entry_realm, len) != 0) return TRUE; -@@ -1388,7 +1409,13 @@ match_principal_and_kvno (krb5_context k +@@ -1888,7 +1912,13 @@ } -#define DEFAULT_SALT 1 @@ -161,7 +185,7 @@ Submitted upstream: +static krb5_salt * build_principal_salts (adcli_enroll *enroll, krb5_context k5, -@@ -1396,23 +1423,29 @@ build_principal_salts (adcli_enroll *enr +@@ -1896,23 +1926,29 @@ { krb5_error_code code; - krb5_data *salts; @@ -199,7 +223,7 @@ Submitted upstream: - assert (count == i); return salts; } -@@ -1420,10 +1453,15 @@ build_principal_salts (adcli_enroll *enr +@@ -1920,10 +1956,15 @@ static void free_principal_salts (krb5_context k5, - krb5_data *salts) @@ -216,16 +240,16 @@ Submitted upstream: +#endif free (salts); -@@ -1440,5 +1478,5 @@ add_principal_to_keytab (adcli_enroll *e +@@ -1976,5 +2017,5 @@ krb5_data password; krb5_error_code code; - krb5_data *salts; + krb5_salt *salts; krb5_enctype *enctypes; -@@ -1525,5 +1563,9 @@ update_keytab_for_principals (adcli_enro +@@ -2076,5 +2117,9 @@ res = add_principal_to_keytab (enroll, k5, enroll->keytab_principals[i], - name, &which_salt); + name, &which_salt, flags); +#ifdef HEIMDAL + krb5_xfree(name); +#else @@ -233,12 +257,26 @@ Submitted upstream: +#endif if (res != ADCLI_SUCCESS) ---- library/adkrb5.c 2015-12-07 03:59:59.000000000 -0500 -+++ library/adkrb5.c 2016-06-15 19:41:21.641988000 -0400 -@@ -28,5 +28,9 @@ +@@ -3349,5 +3394,10 @@ + /* check that ENCTYPE_UNKNOWN is filtered out */ + check_enctypes[0] = permitted_enctypes[0]; ++#ifdef HEIMDAL ++ /* XXX Not sure, if this is needed under Heimdal at all */ ++ check_enctypes[1] = KRB5_ENCTYPE_NULL; ++#else + check_enctypes[1] = ENCTYPE_UNKNOWN; ++#endif + check_enctypes[2] = 0; + adcli_enroll_set_keytab_enctypes (enroll, check_enctypes); +--- library/adkrb5.c 2021-02-20 08:51:40.000000000 -0500 ++++ library/adkrb5.c 2021-10-12 21:44:40.955444000 -0400 +@@ -28,5 +28,12 @@ #include -#include ++#ifndef ENOKEY ++# define ENOKEY ENOTCAPABLE ++#endif +#ifdef HEIMDAL +# include +#else @@ -246,7 +284,7 @@ Submitted upstream: +#endif #include -@@ -79,5 +83,9 @@ +@@ -83,5 +90,9 @@ /* See if we should remove this entry */ if (!match_func (k5, &entry, match_data)) { +#ifdef HEIMDAL @@ -256,7 +294,7 @@ Submitted upstream: +#endif continue; } -@@ -92,5 +100,9 @@ +@@ -96,5 +107,9 @@ code = krb5_kt_remove_entry (k5, keytab, &entry); +#ifdef HEIMDAL @@ -266,14 +304,61 @@ Submitted upstream: +#endif if (code != 0) -@@ -213,5 +225,5 @@ +@@ -220,14 +235,20 @@ + void *data) + { +- krb5_boolean similar = FALSE; + match_enctype_kvno *closure = data; ++#ifndef HEIMDAL ++ krb5_boolean similar = FALSE; + krb5_error_code code; ++#endif + + assert (closure->enctype); + ++#ifndef HEIMDAL + code = krb5_c_enctype_compare (k5, closure->enctype, entry->key.enctype, + &similar); + + if (code == 0 && entry->vno == closure->kvno && similar) { ++#else ++ if (krb5_kt_compare(k5, entry, NULL, closure->kvno, closure->enctype)) { ++#endif + closure->matched = 1; + return 1; +@@ -267,5 +288,11 @@ + } + +- code = krb5_copy_keyblock_contents (k5, &entry.key, keyblock); ++ code = krb5_copy_keyblock_contents (k5, ++#ifdef HEIMDAL ++ &entry.keyblock, ++#else ++ &entry.key, ++#endif ++ keyblock); + krb5_free_keytab_entry_contents (k5, &entry); + break; +@@ -301,5 +328,10 @@ + memset (&entry, 0, sizeof (entry)); + +- code = _adcli_krb5_get_keyblock (k5, keytab, &entry.key, ++ code = _adcli_krb5_get_keyblock (k5, keytab, ++#ifdef HEIMDAL ++ &entry.keyblock, ++#else ++ &entry.key, ++#endif + match_enctype_and_kvno, &closure); + if (code != 0 || closure.matched == 0) { +@@ -329,5 +361,5 @@ krb5_data *password, krb5_enctype *enctypes, - krb5_data *salt) + const krb5_salt *salt) { krb5_keytab_entry entry; -@@ -222,5 +234,10 @@ +@@ -338,5 +370,10 @@ memset (&entry, 0, sizeof(entry)); +#ifdef HEIMDAL @@ -284,22 +369,22 @@ Submitted upstream: +#endif if (code != 0) return code; -@@ -248,5 +265,5 @@ +@@ -364,5 +401,5 @@ krb5_data *password, krb5_enctype *enctypes, - krb5_data *salt) + const krb5_salt *salt) { krb5_error_code code; -@@ -274,5 +291,5 @@ +@@ -390,5 +427,5 @@ krb5_data *password, krb5_enctype *enctypes, - krb5_data *salts, + const krb5_salt *salts, int *discovered) { -@@ -286,5 +303,11 @@ - return_val_if_fail (code == 0, code); +@@ -420,5 +457,11 @@ + } - for (i = 0; salts[i].data != NULL; i++) { + for (i = 0; @@ -310,8 +395,8 @@ Submitted upstream: +#endif + i++) { code = _adcli_krb5_keytab_test_salt (k5, scratch, principal, kvno, - password, enctypes, &salts[i]); -@@ -305,11 +328,15 @@ + password, salt_enctypes, &salts[i]); +@@ -440,11 +483,15 @@ krb5_principal principal, const char *host_netbios, - krb5_data *salt) @@ -331,7 +416,7 @@ Submitted upstream: + char *data; /* -@@ -318,41 +345,55 @@ +@@ -453,41 +500,55 @@ */ - realm = krb5_princ_realm (k5, principal); @@ -414,9 +499,26 @@ Submitted upstream: +#endif #include #include ---- library/adutil.c 2016-01-19 14:56:21.000000000 -0500 -+++ library/adutil.c 2016-06-15 18:34:42.841301000 -0400 -@@ -295,5 +295,5 @@ _adcli_strv_set (char ***field, +--- library/adutil.c 2021-02-20 08:51:40.000000000 -0500 ++++ library/adutil.c 2021-10-12 22:06:04.556460000 -0400 +@@ -38,4 +38,9 @@ + #include + #include ++#ifdef __linux__ ++# include ++#else ++# include /* le32toh() */ ++#endif + + static adcli_message_func message_func = NULL; +@@ -84,4 +89,6 @@ + } + ++static void messagev(adcli_message_type, const char *, va_list) GNUC_PRINTF(2, 0); ++ + static void + messagev (adcli_message_type type, +@@ -414,5 +421,5 @@ char * -_adcli_str_dupn (void *data, diff --git a/net-mgmt/adcli/pkg-plist b/net-mgmt/adcli/pkg-plist index c03f2d2554d2..af16c078e164 100644 --- a/net-mgmt/adcli/pkg-plist +++ b/net-mgmt/adcli/pkg-plist @@ -1,7 +1,17 @@ sbin/adcli man/man8/adcli.8.gz +%%PORTDOCS%%%%DOCSDIR%%/adcli.html +%%PORTDOCS%%%%DOCSDIR%%/contrib.html +%%PORTDOCS%%%%DOCSDIR%%/devel-building-style.html +%%PORTDOCS%%%%DOCSDIR%%/devel-building.html +%%PORTDOCS%%%%DOCSDIR%%/devel-debugging.html +%%PORTDOCS%%%%DOCSDIR%%/devel-testing.html +%%PORTDOCS%%%%DOCSDIR%%/devel.html %%PORTDOCS%%%%DOCSDIR%%/gtk-doc.css +%%PORTDOCS%%%%DOCSDIR%%/guide.html %%PORTDOCS%%%%DOCSDIR%%/home.png +%%PORTDOCS%%%%DOCSDIR%%/index.html +%%PORTDOCS%%%%DOCSDIR%%/index.sgml %%PORTDOCS%%%%DOCSDIR%%/left.png %%PORTDOCS%%%%DOCSDIR%%/right.png %%PORTDOCS%%%%DOCSDIR%%/style.css