git: cf4f63cf4a9d - main - security/oath-toolkit: update to 2.6.7 release

From: Alex Dupre <ale_at_FreeBSD.org>
Date: Mon, 31 Jan 2022 12:23:01 UTC
The branch main has been updated by ale:

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

commit cf4f63cf4a9d4b27bf6bae3a6fed38aba8106513
Author:     Alex Dupre <ale@FreeBSD.org>
AuthorDate: 2022-01-31 12:18:03 +0000
Commit:     Alex Dupre <ale@FreeBSD.org>
CommitDate: 2022-01-31 12:22:47 +0000

    security/oath-toolkit: update to 2.6.7 release
---
 security/oath-toolkit/Makefile                     | 10 ++-
 security/oath-toolkit/distinfo                     |  6 +-
 .../files/patch-liboath_tests_tst__basic.c         | 11 +++
 .../patch-liboath_tests_tst__totp__validate.c      | 20 +++++
 .../files/patch-libpskc_tests_tst__basic.c         | 11 +++
 .../oath-toolkit/files/patch-pam__oath_Makefile.in | 11 +++
 .../oath-toolkit/files/patch-pam__oath_configure   | 11 +++
 .../files/patch-pam__oath_pam__modutil.c           | 85 ++++++++++++++++++++++
 .../files/patch-pam__oath_pam__modutil.h           | 20 +++++
 .../oath-toolkit/files/patch-pam__oath_pam__oath.c | 20 +++++
 .../files/patch-pam__oath_tests_Makefile.in        | 11 +++
 11 files changed, 212 insertions(+), 4 deletions(-)

diff --git a/security/oath-toolkit/Makefile b/security/oath-toolkit/Makefile
index 05551537a896..8d794306bfa4 100644
--- a/security/oath-toolkit/Makefile
+++ b/security/oath-toolkit/Makefile
@@ -1,17 +1,25 @@
 # Created by: Alex Dupre <ale@FreeBSD.org>
 
 PORTNAME=	oath-toolkit
-PORTVERSION=	2.6.2
+PORTVERSION=	2.6.7
 CATEGORIES=	security
 MASTER_SITES=	SAVANNAH
 
 MAINTAINER=	ale@FreeBSD.org
 COMMENT=	Library, tools, and PAM module for OATH authentication
 
+LICENSE=	GPLv3+ LGPL20+
+LICENSE_COMB=	multi
+
+LIB_DEPENDS=	libltdl.so:devel/libltdl
+
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--with-html-dir=${DOCSDIR}
 USES=		gmake libtool pathfix pkgconfig
+USE_GNOME=	libxslt
 USE_LDCONFIG=	yes
+INSTALL_TARGET=	install-strip
+TEST_TARGET=	check
 
 OPTIONS_DEFINE=	PSKC DOCS
 OPTIONS_DEFAULT=PSKC
diff --git a/security/oath-toolkit/distinfo b/security/oath-toolkit/distinfo
index d020f7b8ec83..dc985d05f962 100644
--- a/security/oath-toolkit/distinfo
+++ b/security/oath-toolkit/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1472638195
-SHA256 (oath-toolkit-2.6.2.tar.gz) = b03446fa4b549af5ebe4d35d7aba51163442d255660558cd861ebce536824aa0
-SIZE (oath-toolkit-2.6.2.tar.gz) = 4295786
+TIMESTAMP = 1643620380
+SHA256 (oath-toolkit-2.6.7.tar.gz) = 36eddfce8f2f36347fb257dbf878ba0303a2eaafe24eaa071d5cd302261046a9
+SIZE (oath-toolkit-2.6.7.tar.gz) = 5625279
diff --git a/security/oath-toolkit/files/patch-liboath_tests_tst__basic.c b/security/oath-toolkit/files/patch-liboath_tests_tst__basic.c
new file mode 100644
index 000000000000..e1583b1c584a
--- /dev/null
+++ b/security/oath-toolkit/files/patch-liboath_tests_tst__basic.c
@@ -0,0 +1,11 @@
+--- liboath/tests/tst_basic.c.orig	2022-01-31 11:26:43 UTC
++++ liboath/tests/tst_basic.c
+@@ -57,7 +57,7 @@ main (void)
+       return 1;
+     }
+ 
+-  if (OATH_VERSION_NUMBER < 0x02060300 || OATH_VERSION_NUMBER >= 0x03000000)
++  if (OATH_VERSION_NUMBER < 0x02060200 || OATH_VERSION_NUMBER >= 0x03000000)
+     {
+       printf ("OATH_VERSION_NUMBER out of range?!\n");
+       return 1;
diff --git a/security/oath-toolkit/files/patch-liboath_tests_tst__totp__validate.c b/security/oath-toolkit/files/patch-liboath_tests_tst__totp__validate.c
new file mode 100644
index 000000000000..616fcd5ee021
--- /dev/null
+++ b/security/oath-toolkit/files/patch-liboath_tests_tst__totp__validate.c
@@ -0,0 +1,20 @@
+--- liboath/tests/tst_totp_validate.c.orig	2022-01-31 11:03:27 UTC
++++ liboath/tests/tst_totp_validate.c
+@@ -156,7 +156,7 @@ main (void)
+ 	}
+       if (otp_counter != tv[i].otp_counter)
+ 	{
+-	  printf ("validate3 loop %ld failed (counter %d != %d)?!\n",
++	  printf ("validate3 loop %ld failed (counter %ld != %ld)?!\n",
+ 		  i, otp_counter, tv[i].otp_counter);
+ 	  return 1;
+ 	}
+@@ -184,7 +184,7 @@ main (void)
+ 	}
+       if (otp_counter != tv[i].otp_counter)
+ 	{
+-	  printf ("validate3_callback loop %ld failed (counter %d != %d)?!\n",
++	  printf ("validate3_callback loop %ld failed (counter %ld != %ld)?!\n",
+ 		  i, otp_counter, tv[i].otp_counter);
+ 	  return 1;
+ 	}
diff --git a/security/oath-toolkit/files/patch-libpskc_tests_tst__basic.c b/security/oath-toolkit/files/patch-libpskc_tests_tst__basic.c
new file mode 100644
index 000000000000..e69b5c0425d7
--- /dev/null
+++ b/security/oath-toolkit/files/patch-libpskc_tests_tst__basic.c
@@ -0,0 +1,11 @@
+--- libpskc/tests/tst_basic.c.orig	2022-01-31 11:38:13 UTC
++++ libpskc/tests/tst_basic.c
+@@ -70,7 +70,7 @@ main (void)
+       return 1;
+     }
+ 
+-  if (PSKC_VERSION_NUMBER < 0x02060300 || PSKC_VERSION_NUMBER >= 0x03000000)
++  if (PSKC_VERSION_NUMBER < 0x02060200 || PSKC_VERSION_NUMBER >= 0x03000000)
+     {
+       printf ("PSKC_VERSION_NUMBER out of range?!\n");
+       return 1;
diff --git a/security/oath-toolkit/files/patch-pam__oath_Makefile.in b/security/oath-toolkit/files/patch-pam__oath_Makefile.in
new file mode 100644
index 000000000000..427bdc6233bb
--- /dev/null
+++ b/security/oath-toolkit/files/patch-pam__oath_Makefile.in
@@ -0,0 +1,11 @@
+--- pam_oath/Makefile.in.orig	2022-01-31 11:17:51 UTC
++++ pam_oath/Makefile.in
+@@ -414,7 +414,7 @@ AM_CPPFLAGS = -I$(builddir)/../liboath
+ EXTRA_DIST = README
+ pammoddir = $(PAMDIR)
+ pammod_LTLIBRARIES = pam_oath.la
+-pam_oath_la_SOURCES = pam_oath.c
++pam_oath_la_SOURCES = pam_oath.c pam_modutil.c pam_modutil.h
+ # XXX add -Wl,-x too?  PAM documentation suggests it.
+ pam_oath_la_LIBADD = ../liboath/liboath.la
+ pam_oath_la_LDFLAGS = -module -avoid-version
diff --git a/security/oath-toolkit/files/patch-pam__oath_configure b/security/oath-toolkit/files/patch-pam__oath_configure
new file mode 100644
index 000000000000..154fc0917915
--- /dev/null
+++ b/security/oath-toolkit/files/patch-pam__oath_configure
@@ -0,0 +1,11 @@
+--- pam_oath/configure.orig	2022-01-31 11:20:05 UTC
++++ pam_oath/configure
+@@ -12156,8 +12156,6 @@ if test "x$ac_cv_header_security_pam_modutil_h" = xyes
+ #define HAVE_SECURITY_PAM_MODUTIL_H 1
+ _ACEOF
+ 
+-else
+-  as_fn_error $? "PAM header files not found, install libpam-dev." "$LINENO" 5
+ fi
+ 
+ done
diff --git a/security/oath-toolkit/files/patch-pam__oath_pam__modutil.c b/security/oath-toolkit/files/patch-pam__oath_pam__modutil.c
new file mode 100644
index 000000000000..aabd50957e26
--- /dev/null
+++ b/security/oath-toolkit/files/patch-pam__oath_pam__modutil.c
@@ -0,0 +1,85 @@
+--- pam_oath/pam_modutil.c.orig	2022-01-31 11:03:40 UTC
++++ pam_oath/pam_modutil.c
+@@ -0,0 +1,82 @@
++#include <config.h>
++
++#ifndef HAVE_SECURITY_PAM_MODUTIL_H
++
++#include "pam_modutil.h"
++
++#ifdef HAVE_SECURITY_PAM_APPL_H
++#include <security/pam_appl.h>
++#endif
++#ifdef HAVE_SECURITY_PAM_MODULES_H
++#include <security/pam_modules.h>
++#endif
++
++#include <errno.h>
++#include <pwd.h>
++#include <stddef.h>
++#include <stdlib.h>
++#include <unistd.h>
++
++#define PWD_INITIAL_LENGTH      0x400
++#define PWD_ABSURD_PWD_LENGTH   0x4000
++
++void _pam_modutil_cleanup(pam_handle_t *pamh, void *data, int error_status) {
++    if (data) {
++        (void) free(data);
++    }
++}
++
++struct passwd *pam_modutil_getpwnam(pam_handle_t *pamh, const char *user) {
++    void *buffer = NULL;
++    size_t length = PWD_INITIAL_LENGTH;
++    long sc_init_length = sysconf(_SC_GETPW_R_SIZE_MAX);
++
++    if (sc_init_length != -1 && sc_init_length < PWD_ABSURD_PWD_LENGTH) {
++        length = (size_t) sc_init_length;
++    }
++
++    do {
++        int status;
++        void *new_buffer;
++        struct passwd *result = NULL;
++
++        new_buffer = realloc(buffer, sizeof(struct passwd) + length);
++        if (new_buffer == NULL) {
++            // out of memory
++            if (buffer) {
++                free(buffer);
++            }
++            return NULL;
++        }
++        buffer = new_buffer;
++
++        status = getpwnam_r(user, buffer,
++                            sizeof(struct passwd) + (char *) buffer,
++                            length, &result);
++        if (!status && result) {
++            status = pam_set_data(pamh, "_pammodutil_getpwnam", result,
++                                  _pam_modutil_cleanup);
++            if (status == PAM_SUCCESS) {
++                return result;
++            }
++            // unable to set data item
++            free(buffer);
++            return NULL;
++        }
++        if (status != ERANGE) {
++            // no matching record found (if status == 0)
++            // or getpwnam_r encountered an error
++            free(buffer);
++            return NULL;
++        }
++
++        length <<= 1;
++    } while (length < PWD_ABSURD_PWD_LENGTH);
++
++    // exceeded maximum buffer size
++    free(buffer);
++    return NULL;
++}
++#else
++typedef int make_iso_compilers_happy;
++#endif  /* HAVE_SECURITY_PAM_MODUTIL_H */
diff --git a/security/oath-toolkit/files/patch-pam__oath_pam__modutil.h b/security/oath-toolkit/files/patch-pam__oath_pam__modutil.h
new file mode 100644
index 000000000000..929a3951d5c4
--- /dev/null
+++ b/security/oath-toolkit/files/patch-pam__oath_pam__modutil.h
@@ -0,0 +1,20 @@
+--- pam_oath/pam_modutil.h.orig	2022-01-31 11:03:40 UTC
++++ pam_oath/pam_modutil.h
+@@ -0,0 +1,17 @@
++#ifndef PAM_MODUTIL_H
++#define PAM_MODUTIL_H
++
++#ifdef HAVE_SECURITY_PAM_MODUTIL_H
++#include <security/pam_modutil.h>
++#else
++
++#ifdef HAVE_SECURITY_PAM_MODULES_H
++#include <security/pam_modules.h>
++#endif
++
++#include <pwd.h>
++
++struct passwd *pam_modutil_getpwnam(pam_handle_t *pamh, const char *user);
++
++#endif
++#endif
diff --git a/security/oath-toolkit/files/patch-pam__oath_pam__oath.c b/security/oath-toolkit/files/patch-pam__oath_pam__oath.c
new file mode 100644
index 000000000000..29aad9f52fa9
--- /dev/null
+++ b/security/oath-toolkit/files/patch-pam__oath_pam__oath.c
@@ -0,0 +1,20 @@
+--- pam_oath/pam_oath.c.orig	2021-05-01 17:10:32 UTC
++++ pam_oath/pam_oath.c
+@@ -21,6 +21,7 @@
+ #include <config.h>
+ 
+ #include "oath.h"
++#include "pam_modutil.h"
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -42,9 +43,6 @@
+ 
+ #ifdef HAVE_SECURITY_PAM_APPL_H
+ #include <security/pam_appl.h>
+-#endif
+-#ifdef HAVE_SECURITY_PAM_MODUTIL_H
+-#include <security/pam_modutil.h>
+ #endif
+ #ifdef HAVE_SECURITY_PAM_MODULES_H
+ #include <security/pam_modules.h>
diff --git a/security/oath-toolkit/files/patch-pam__oath_tests_Makefile.in b/security/oath-toolkit/files/patch-pam__oath_tests_Makefile.in
new file mode 100644
index 000000000000..4912d58fdaf6
--- /dev/null
+++ b/security/oath-toolkit/files/patch-pam__oath_tests_Makefile.in
@@ -0,0 +1,11 @@
+--- pam_oath/tests/Makefile.in.orig	2022-01-31 12:02:54 UTC
++++ pam_oath/tests/Makefile.in
+@@ -102,7 +102,7 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-TESTS = test-pam_oath$(EXEEXT) $(am__append_1)
++TESTS = $(am__append_1)
+ @ROOT_TESTS_TRUE@am__append_1 = run-root-tests.sh
+ subdir = tests
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4