pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/security/oath-toolkit



Module Name:    pkgsrc
Committed By:   sborrill
Date:           Mon Aug 22 07:42:52 UTC 2022

Modified Files:
        pkgsrc/security/oath-toolkit: Makefile PLIST distinfo
        pkgsrc/security/oath-toolkit/patches: patch-liboath_gl_fflush.c
Added Files:
        pkgsrc/security/oath-toolkit: options.mk
        pkgsrc/security/oath-toolkit/patches: patch-pam__oath_Makefile.in
            patch-pam__oath_configure.ac patch-pam__oath_pam__modutil.c
            patch-pam__oath_pam__modutil.h patch-pam__oath_pam__oath.c
Removed Files:
        pkgsrc/security/oath-toolkit/patches: patch-liboath_gl_fseeko.c

Log Message:
oath-toolkit: update to 2.6.7

Changes since 2.4.1:

Version 2.6.7 (released 2021-05-01)

    pam_oath: Support variables in usersfile string parameter.  the
usersfile string in the pam_oath configuration file.  The placeholder values
allow the user credentials file to be stored in a file path that is relative
to the user, and mimics similar behavior found in
google-authenticator-libpam.

The motivation for these changes is to allow for non-privileged processes to
use pam_oath (e.g., for 2FA with xscreensaver).  Non-privileged and non-suid
programs are unable to use pam_oath.  These changes are a proposed
alternative to a suid helper binary as well.

Thanks to Jason Graham for the patch.  See
https://gitlab.com/oath-toolkit/oath-toolkit/-/merge_requests/12.

    doc: Fix project URL in man pages.  Thanks to Jason Graham
for the patch.  Fixes
https://gitlab.com/oath-toolkit/oath-toolkit/-/issues/19.

    build: Drop use of libxml's AM_PATH_XML2 in favor of pkg-config.

    build: Modernize autotools usage.  Most importantly, no longer use
-Werror with AM_INIT_AUTOMAKE to make rebuilding from source more safe with
future automake versions.

    Updated gnulib files.

Version 2.6.6 (released 2021-01-20)

    oathtool: Handle HOTP --counter values larger than 0x7FFFFFFFFFFFFFFF.
Thanks to Jason Lai for report.

    doc: GTK-DOC manual improvements.

    Updated gnulib files.  Fixes test-parse-datetime self-check.  Fixes
https://gitlab.com/oath-toolkit/oath-toolkit/-/issues/20.

Version 2.6.5 (released 2020-12-29)

    oathtool: Support for reading KEY and OTP from standard input or
filename.  KEY and OTP may now be given as - to mean stdin, or @FILE to read
from a particular file.  This is recommended on multi-user systems, since
secrets as command line parameters leak.  Based on a patch from Ian Jackson.
Fixes #6.

    pam_oath: Fix unlikely logic fail on out of memory conditions.  Patch
from Matthias Gerstner.

    Doc fixes.

Version 2.6.4 (released 2020-11-11)

    libpskc: New --with-xmlsec-crypto-engine to hard-code crypto engine.
Fixes https://gitlab.com/oath-toolkit/oath-toolkit/-/issues/16.  Use it like
--with-xmlsec-crypto-engine=gnutls or --with-xmlsec-crypto-engine=openssl if
the default dynamic loading fails because of runtime linker search path
issues.

    oathtool --totp --verbose now prints TOTP hash mode.  Fixes
https://gitlab.com/oath-toolkit/oath-toolkit/-/issues/4.

    oathtool: Hash names (e.g., SHA256) for --totp are now upper case.
Fixes https://gitlab.com/oath-toolkit/oath-toolkit/-/issues/3.  Lower/mixed
case hash names are supported for compatibility.

    pam_oath: Fail gracefully for missing users.  Fixes
https://savannah.nongnu.org/support/index.php?109111.  This allows you to
incrementally add support for OATH authentication instead of forcing it on
all users.  See updated pam_oath/README on the [user_unknown=ignore
success=ok] parameter that can now be supplied to PAM configuration.  Patch
by Antoine Beaupra

    Fix libpskc memory corruption bug.  Fixes
https://savannah.nongnu.org/support/?108736.  Thanks to David Woodhouse and
Jaroslav A karvada for report, self check and patch.

    Fix man pages.  Fixes https://savannah.nongnu.org/support/?108312.
Thanks to Jaroslav A karvada for the patch.

    Build fixes.

Version 2.6.3 (released 2020-11-07)

    pam_oath: Fix self-tests.

    build: Update gnulib. Fix compiler warnings.

    Doc fixes.

Version 2.6.2 (released 2016-08-27)

    doc: Version controlled source code repository moved to GitLab.

Version 2.6.1 (released 2015-07-31)

    liboath: Fix make check on 32-bit systems.  Report and patch by
Christian Hesse.

Version 2.6.0 (released 2015-05-19)

    liboath: Support TOTP with HMAC-SHA256 and HMAC-SHA512.  This adds new
APIs oath_totp_generate2, oath_totp_validate4 and
oath_totp_validate4_callback.

    oathtool: The --totp parameter now take an optional argument to specify
MAC.  For example use --totp=sha256 to use HMAC-SHA256.  When --totp is used
the default HMAC-SHA1 is used, as before.

    pam_oath: Mention in README that you shouldn???t use insecure keys.
Suggested by Robin.

    pam_oath: Check return value from strdup.  Patch by Eero Hakkinen.

    The files gdoc and expect.oath are now included in the tarball.
Suggested by Jaroslav A karvada.


To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 pkgsrc/security/oath-toolkit/Makefile
cvs rdiff -u -r1.5 -r1.6 pkgsrc/security/oath-toolkit/PLIST
cvs rdiff -u -r1.13 -r1.14 pkgsrc/security/oath-toolkit/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/security/oath-toolkit/options.mk
cvs rdiff -u -r1.3 -r1.4 \
    pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fflush.c
cvs rdiff -u -r1.2 -r0 \
    pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fseeko.c
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/security/oath-toolkit/patches/patch-pam__oath_Makefile.in \
    pkgsrc/security/oath-toolkit/patches/patch-pam__oath_configure.ac \
    pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.c \
    pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.h \
    pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__oath.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/security/oath-toolkit/Makefile
diff -u pkgsrc/security/oath-toolkit/Makefile:1.23 pkgsrc/security/oath-toolkit/Makefile:1.24
--- pkgsrc/security/oath-toolkit/Makefile:1.23  Mon Apr 18 19:12:00 2022
+++ pkgsrc/security/oath-toolkit/Makefile       Mon Aug 22 07:42:52 2022
@@ -1,11 +1,10 @@
-# $NetBSD: Makefile,v 1.23 2022/04/18 19:12:00 adam Exp $
+# $NetBSD: Makefile,v 1.24 2022/08/22 07:42:52 sborrill Exp $
 
-DISTNAME=      oath-toolkit-2.4.1
-PKGREVISION=   8
+DISTNAME=      oath-toolkit-2.6.7
 CATEGORIES=    security
 MASTER_SITES=  http://download.savannah.gnu.org/releases/oath-toolkit/
 
-MAINTAINER=    pettai%NetBSD.org@localhost
+MAINTAINER=    sborrill%NetBSD.org@localhost
 HOMEPAGE=      https://www.nongnu.org/oath-toolkit/
 COMMENT=       OATH (Open AuTHentication) Toolkit
 LICENSE=       gnu-lgpl-v2.1 AND gnu-gpl-v3
@@ -14,17 +13,18 @@ GNU_CONFIGURE=      yes
 USE_TOOLS+=    pkg-config
 USE_LIBTOOL=   yes
 
-USE_TOOLS+=    autoconf automake m4 autoreconf
+USE_TOOLS+=    autoconf automake m4 autoreconf perl
 
 BUILD_DEPENDS+=        automake>=1.14:../../devel/automake
 TOOL_DEPENDS+= gtk-doc-[0-9]*:../../textproc/gtk-doc
 
 PKGCONFIG_OVERRIDE+=   liboath/liboath.pc.in
 
+.include "options.mk"
+
 pre-configure:
        cd ${WRKSRC} && autoreconf -fi
 
 .include "../../textproc/libxml2/buildlink3.mk"
 .include "../../security/xmlsec1/buildlink3.mk"
-.include "../../mk/pam.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/security/oath-toolkit/PLIST
diff -u pkgsrc/security/oath-toolkit/PLIST:1.5 pkgsrc/security/oath-toolkit/PLIST:1.6
--- pkgsrc/security/oath-toolkit/PLIST:1.5      Tue Sep 23 19:39:50 2014
+++ pkgsrc/security/oath-toolkit/PLIST  Mon Aug 22 07:42:52 2022
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.5 2014/09/23 19:39:50 joerg Exp $
+@comment $NetBSD: PLIST,v 1.6 2022/08/22 07:42:52 sborrill Exp $
 bin/oathtool
 bin/pskctool
 include/liboath/oath.h
@@ -14,7 +14,7 @@ lib/liboath.la
 lib/libpskc.la
 lib/pkgconfig/liboath.pc
 lib/pkgconfig/libpskc.pc
-lib/security/pam_oath.la
+${PLIST.pam}lib/security/pam_oath.la
 man/man1/oathtool.1
 man/man1/pskctool.1
 man/man3/oath_authenticate_usersfile.3
@@ -31,11 +31,14 @@ man/man3/oath_init.3
 man/man3/oath_strerror.3
 man/man3/oath_strerror_name.3
 man/man3/oath_totp_generate.3
+man/man3/oath_totp_generate2.3
 man/man3/oath_totp_validate.3
 man/man3/oath_totp_validate2.3
 man/man3/oath_totp_validate2_callback.3
 man/man3/oath_totp_validate3.3
 man/man3/oath_totp_validate3_callback.3
+man/man3/oath_totp_validate4.3
+man/man3/oath_totp_validate4_callback.3
 man/man3/oath_totp_validate_callback.3
 man/man3/pskc_add_keypackage.3
 man/man3/pskc_build_xml.3
@@ -150,25 +153,28 @@ share/gtk-doc/html/liboath/api-index-1-1
 share/gtk-doc/html/liboath/api-index-1-4-0.html
 share/gtk-doc/html/liboath/api-index-1-6-0.html
 share/gtk-doc/html/liboath/api-index-1-8-0.html
+share/gtk-doc/html/liboath/api-index-2-4-0.html
+share/gtk-doc/html/liboath/api-index-2-6-0.html
 share/gtk-doc/html/liboath/api-index-full.html
+share/gtk-doc/html/liboath/deprecated-api-index.html
 share/gtk-doc/html/liboath/home.png
 share/gtk-doc/html/liboath/index.html
-share/gtk-doc/html/liboath/index.sgml
 share/gtk-doc/html/liboath/intro.html
+share/gtk-doc/html/liboath/left-insensitive.png
 share/gtk-doc/html/liboath/left.png
-share/gtk-doc/html/liboath/liboath-oath.html
+share/gtk-doc/html/liboath/liboath-oath.h.html
 share/gtk-doc/html/liboath/liboath.devhelp2
+share/gtk-doc/html/liboath/right-insensitive.png
 share/gtk-doc/html/liboath/right.png
 share/gtk-doc/html/liboath/style.css
+share/gtk-doc/html/liboath/up-insensitive.png
 share/gtk-doc/html/liboath/up.png
 share/gtk-doc/html/libpskc/api-index-2-2-0.html
 share/gtk-doc/html/libpskc/api-index-full.html
-share/gtk-doc/html/libpskc/ch02s02.html
-share/gtk-doc/html/libpskc/ch02s03.html
-share/gtk-doc/html/libpskc/ch02s04.html
+share/gtk-doc/html/libpskc/deprecated-api-index.html
 share/gtk-doc/html/libpskc/home.png
 share/gtk-doc/html/libpskc/index.html
-share/gtk-doc/html/libpskc/index.sgml
+share/gtk-doc/html/libpskc/left-insensitive.png
 share/gtk-doc/html/libpskc/left.png
 share/gtk-doc/html/libpskc/libpskc-container.html
 share/gtk-doc/html/libpskc/libpskc-enums.html
@@ -182,11 +188,17 @@ share/gtk-doc/html/libpskc/pskc-referenc
 share/gtk-doc/html/libpskc/pskc-tutorial-libpskc-create.html
 share/gtk-doc/html/libpskc/pskc-tutorial-libpskc-sign.html
 share/gtk-doc/html/libpskc/pskc-tutorial-libpskc-verify.html
+share/gtk-doc/html/libpskc/pskc-tutorial-library.html
+share/gtk-doc/html/libpskc/pskc-tutorial-pskctool-sign.html
+share/gtk-doc/html/libpskc/pskc-tutorial-pskctool-validate.html
+share/gtk-doc/html/libpskc/pskc-tutorial-pskctool-verify.html
 share/gtk-doc/html/libpskc/pskc-tutorial-pskctool.html
 share/gtk-doc/html/libpskc/pskc-tutorial-quickstart.html
 share/gtk-doc/html/libpskc/pskc-tutorial.html
+share/gtk-doc/html/libpskc/right-insensitive.png
 share/gtk-doc/html/libpskc/right.png
 share/gtk-doc/html/libpskc/style.css
+share/gtk-doc/html/libpskc/up-insensitive.png
 share/gtk-doc/html/libpskc/up.png
 share/xml/pskc/catalog-pskc.xml
 share/xml/pskc/pskc-schema.xsd

Index: pkgsrc/security/oath-toolkit/distinfo
diff -u pkgsrc/security/oath-toolkit/distinfo:1.13 pkgsrc/security/oath-toolkit/distinfo:1.14
--- pkgsrc/security/oath-toolkit/distinfo:1.13  Tue Oct 26 11:17:21 2021
+++ pkgsrc/security/oath-toolkit/distinfo       Mon Aug 22 07:42:52 2022
@@ -1,7 +1,11 @@
-$NetBSD: distinfo,v 1.13 2021/10/26 11:17:21 nia Exp $
+$NetBSD: distinfo,v 1.14 2022/08/22 07:42:52 sborrill Exp $
 
-BLAKE2s (oath-toolkit-2.4.1.tar.gz) = 1c708e16554736cfe5d38e4b6ff4e2eda945c9bc72cfb889f0ce4aec6078c44d
-SHA512 (oath-toolkit-2.4.1.tar.gz) = 2a3440d5c97afef00dacd235d5471e8bf68086dfdb20234a894e7534d75670808fef444fe1062525800bc5ffe368898302e6cf250cd76b7238cd602d7d05e89b
-Size (oath-toolkit-2.4.1.tar.gz) = 4136649 bytes
-SHA1 (patch-liboath_gl_fflush.c) = d957eed6c3e653ee53bbcf0b95b0c032f092b07d
-SHA1 (patch-liboath_gl_fseeko.c) = bd67a1af8c01a2dbf849f8612cbb18470cb3b248
+BLAKE2s (oath-toolkit-2.6.7.tar.gz) = 60abf1cd8341cc5ed887aea4c58928bfcac3347ab43dd3704bd69cf5e9a7e5ec
+SHA512 (oath-toolkit-2.6.7.tar.gz) = 50edff75c8366887d69cf4740c4cc3bdfc3e43cbd4910ff40f735bca489f0953d7e5a21130f12782ac7a1f2fb00f0db313aff139085f23daba78a69bc7b2eb12
+Size (oath-toolkit-2.6.7.tar.gz) = 5625279 bytes
+SHA1 (patch-liboath_gl_fflush.c) = 65b10470b8ba45973d11e3bdf32b9511461f87dc
+SHA1 (patch-pam__oath_Makefile.in) = c3fd5dea44e6c604e77dbe81ff7b062dc12925bf
+SHA1 (patch-pam__oath_configure.ac) = 525c51b98d0fc444440aa77a9b821b4c820cca31
+SHA1 (patch-pam__oath_pam__modutil.c) = f60b9d7a71efd79425be7ca3257d1a37b3d806fb
+SHA1 (patch-pam__oath_pam__modutil.h) = fe361f7430cf8a26c74653b4dbc42c01825f90f2
+SHA1 (patch-pam__oath_pam__oath.c) = f138397e7f5593f248c3ff761449b968ce6d9129

Index: pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fflush.c
diff -u pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fflush.c:1.3 pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fflush.c:1.4
--- pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fflush.c:1.3  Sat Mar 16 20:52:38 2013
+++ pkgsrc/security/oath-toolkit/patches/patch-liboath_gl_fflush.c      Mon Aug 22 07:42:52 2022
@@ -1,11 +1,13 @@
-$NetBSD: patch-liboath_gl_fflush.c,v 1.3 2013/03/16 20:52:38 pettai Exp $
+$NetBSD: patch-liboath_gl_fflush.c,v 1.4 2022/08/22 07:42:52 sborrill Exp $
 
---- liboath/gl/fflush.c.orig   2013-01-03 22:33:04.000000000 +0000
-+++ liboath/gl/fflush.c
-@@ -96,7 +96,7 @@ update_fpos_cache (FILE *fp _GL_UNUSED_P
-                    off_t pos _GL_UNUSED_PARAMETER)
+Fix build on NetBSD
+
+--- liboath/gl/fflush.c.orig   2021-01-20 12:13:56.000000000 +0000
++++ liboath/gl/fflush.c        2022-08-17 10:41:26.973082601 +0100
+@@ -101,7 +101,7 @@
  {
- #  if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
+ #  if defined __sferror || defined __DragonFly__ || defined __ANDROID__
+   /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
 -#   if defined __CYGWIN__
 +#   if defined(__CYGWIN__) || defined(__NetBSD__)
    /* fp_->_offset is typed as an integer.  */

Added files:

Index: pkgsrc/security/oath-toolkit/options.mk
diff -u /dev/null pkgsrc/security/oath-toolkit/options.mk:1.1
--- /dev/null   Mon Aug 22 07:42:52 2022
+++ pkgsrc/security/oath-toolkit/options.mk     Mon Aug 22 07:42:52 2022
@@ -0,0 +1,16 @@
+# $NetBSD: options.mk,v 1.1 2022/08/22 07:42:52 sborrill Exp $
+
+PKG_OPTIONS_VAR=       PKG_OPTIONS.oath-toolkit
+PKG_SUPPORTED_OPTIONS+=        pam
+PKG_SUGGESTED_OPTIONS= pam
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+=   pam
+
+.if !empty(PKG_OPTIONS:Mpam)
+PLIST.pam=             yes
+.  include "../../mk/pam.buildlink3.mk"
+.else
+CONFIGURE_ARGS+=       --disable-pam
+.endif

Index: pkgsrc/security/oath-toolkit/patches/patch-pam__oath_Makefile.in
diff -u /dev/null pkgsrc/security/oath-toolkit/patches/patch-pam__oath_Makefile.in:1.1
--- /dev/null   Mon Aug 22 07:42:52 2022
+++ pkgsrc/security/oath-toolkit/patches/patch-pam__oath_Makefile.in    Mon Aug 22 07:42:52 2022
@@ -0,0 +1,62 @@
+$NetBSD: patch-pam__oath_Makefile.in,v 1.1 2022/08/22 07:42:52 sborrill Exp $
+
+Use local fragment of libpam, from FreeBSD
+
+--- pam_oath/Makefile.in.orig  2022-02-01 11:49:49 UTC
++++ pam_oath/Makefile.in
+@@ -149,7 +149,7 @@ am__uninstall_files_from_dir = { \
+ am__installdirs = "$(DESTDIR)$(pammoddir)"
+ LTLIBRARIES = $(pammod_LTLIBRARIES)
+ pam_oath_la_DEPENDENCIES = ../liboath/liboath.la
+-am_pam_oath_la_OBJECTS = pam_oath.lo
++am_pam_oath_la_OBJECTS = pam_oath.lo pam_modutil.lo
+ pam_oath_la_OBJECTS = $(am_pam_oath_la_OBJECTS)
+ AM_V_lt = $(am__v_lt_@AM_V@)
+ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+@@ -173,7 +173,8 @@ am__v_at_1 = 
+ DEFAULT_INCLUDES = -I.@am__isrc@
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__maybe_remake_depfiles = depfiles
+-am__depfiles_remade = ./$(DEPDIR)/pam_oath.Plo
++am__depfiles_remade = ./$(DEPDIR)/pam_modutil.Plo \
++      ./$(DEPDIR)/pam_oath.Plo
+ am__mv = mv -f
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@@ -414,7 +416,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
+@@ -516,6 +518,7 @@ mostlyclean-compile:
+ distclean-compile:
+       -rm -f *.tab.c
+ 
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_modutil.Plo@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_oath.Plo@am__quote@ # am--include-marker
+ 
+ $(am__depfiles_remade):
+@@ -896,7 +904,8 @@ clean-am: clean-generic clean-libtool clean-pammodLTLI
+ 
+ distclean: distclean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+-              -rm -f ./$(DEPDIR)/pam_oath.Plo
++              -rm -f ./$(DEPDIR)/pam_modutil.Plo
++      -rm -f ./$(DEPDIR)/pam_oath.Plo
+       -rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-hdr distclean-libtool distclean-tags
+@@ -944,7 +953,8 @@ installcheck-am:
+ maintainer-clean: maintainer-clean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+       -rm -rf $(top_srcdir)/autom4te.cache
+-              -rm -f ./$(DEPDIR)/pam_oath.Plo
++              -rm -f ./$(DEPDIR)/pam_modutil.Plo
++      -rm -f ./$(DEPDIR)/pam_oath.Plo
+       -rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
Index: pkgsrc/security/oath-toolkit/patches/patch-pam__oath_configure.ac
diff -u /dev/null pkgsrc/security/oath-toolkit/patches/patch-pam__oath_configure.ac:1.1
--- /dev/null   Mon Aug 22 07:42:52 2022
+++ pkgsrc/security/oath-toolkit/patches/patch-pam__oath_configure.ac   Mon Aug 22 07:42:52 2022
@@ -0,0 +1,15 @@
+$NetBSD: patch-pam__oath_configure.ac,v 1.1 2022/08/22 07:42:52 sborrill Exp $
+
+Use local fragment of libpam, from FreeBSD
+
+--- pam_oath/configure.ac.orig 2022-08-17 14:42:32.924331123 +0000
++++ pam_oath/configure.ac      2022-08-17 14:43:19.893846965 +0000
+@@ -29,8 +29,6 @@
+ 
+ AC_CHECK_HEADERS([security/pam_appl.h], [],
+   [AC_MSG_ERROR([[PAM header files not found, install libpam-dev.]])])
+-AC_CHECK_HEADERS([security/pam_modutil.h], [],
+-  [AC_MSG_ERROR([[PAM header files not found, install libpam-dev.]])])
+ AC_CHECK_HEADERS([security/pam_modules.h security/_pam_macros.h], [], [],
+   [#include <security/pam_appl.h>])
+ 
Index: pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.c
diff -u /dev/null pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.c:1.1
--- /dev/null   Mon Aug 22 07:42:52 2022
+++ pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.c Mon Aug 22 07:42:52 2022
@@ -0,0 +1,89 @@
+$NetBSD: patch-pam__oath_pam__modutil.c,v 1.1 2022/08/22 07:42:52 sborrill Exp $
+
+Use local fragment of libpam, from FreeBSD
+
+--- 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 */
Index: pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.h
diff -u /dev/null pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.h:1.1
--- /dev/null   Mon Aug 22 07:42:52 2022
+++ pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__modutil.h Mon Aug 22 07:42:52 2022
@@ -0,0 +1,24 @@
+$NetBSD: patch-pam__oath_pam__modutil.h,v 1.1 2022/08/22 07:42:52 sborrill Exp $
+
+Use local fragment of libpam, from FreeBSD
+
+--- 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
Index: pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__oath.c
diff -u /dev/null pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__oath.c:1.1
--- /dev/null   Mon Aug 22 07:42:52 2022
+++ pkgsrc/security/oath-toolkit/patches/patch-pam__oath_pam__oath.c    Mon Aug 22 07:42:52 2022
@@ -0,0 +1,24 @@
+$NetBSD: patch-pam__oath_pam__oath.c,v 1.1 2022/08/22 07:42:52 sborrill Exp $
+
+Use local fragment of libpam, from FreeBSD
+
+--- 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>



Home | Main Index | Thread Index | Old Index