Starting with sudo 1.9.0, sudo ships with a log server for storing
centralized I/O (session) logs.  It also has the ability to use
plugins written in Python.  I've converted it to a multi-package
port so people who are not interested in those additions don't need
to install them.

This is the first time I've done anything with multi-packages so
I'd appreciate it if someone could give this a look and let me know
if I've done anything wrong.

I have tested the packages both with and without the gettext and
ldap flavors.

Thanks!

 - todd

Index: security/sudo/Makefile
===================================================================
RCS file: /cvs/ports/security/sudo/Makefile,v
retrieving revision 1.38
diff -u -p -u -r1.38 Makefile
--- security/sudo/Makefile      30 Jan 2020 18:47:11 -0000      1.38
+++ security/sudo/Makefile      19 Jun 2020 20:19:06 -0000
@@ -1,18 +1,22 @@
 # $OpenBSD: Makefile,v 1.38 2020/01/30 18:47:11 millert Exp $
 
-COMMENT=       execute a command as another user
+COMMENT-main=  execute a command as another user
+COMMENT-logsrv=        sudo I/O log server
+COMMENT-python=        sudo Python plugin
 
-DISTNAME=      sudo-1.8.31
+V=             1.9.1
+DISTNAME=      sudo-${V}
 CATEGORIES=    security
 
+PKGNAME-main=  sudo-${V}
+PKGNAME-logsrv=        sudo-logsrv-${V}
+PKGNAME-python=        sudo-python-${V}
+
 MAINTAINER=    Todd C. Miller <mill...@openbsd.org>
 
 # ISC-style license
 PERMIT_PACKAGE=        Yes
 
-WANTLIB+=      c util z
-
-
 HOMEPAGE=      https://www.sudo.ws/
 
 MASTER_SITES=  https://www.sudo.ws/dist/ \
@@ -27,24 +31,55 @@ CONFIGURE_ARGS+=    --with-insults \
                        --with-logfac=authpriv \
                        --with-libtool=system \
                        --disable-path-info \
+                       --enable-openssl \
                        --enable-zlib=system
 
 SHARED_LIBS=   sudo_util       0.0
 
+PSEUDO_FLAVORS=        no_python
 FLAVORS=       gettext ldap
 FLAVOR?=
 
-.if ${FLAVOR:Mldap}
+# There are (up to) three sub-packages.  The python sub-package
+# can be disabled by the no_python pseudo-flavor, see below.
+MULTI_PACKAGES=        -main -logsrv
+RUN_DEPENDS-logsrv=    ${BASE_PKGPATH},-main
+RUN_DEPENDS-python=    ${BASE_PKGPATH},-main ${MODPY_RUN_DEPENDS}
+MODPY_RUNDEP=  No
+
+# All sub-packages depend on these libraries
+WANTLIB=       c util z crypto ssl
+
+# The gettext flavor influences LIB_DEPENDS and WANTLIB for all sub-packages
+.if ${FLAVOR:Mgettext}
+CONFIGURE_ARGS +=      --enable-nls=${LOCALBASE}
+LIB_DEPENDS+=          devel/gettext,-runtime
+WANTLIB+=              iconv intl
+.else
+CONFIGURE_ARGS +=      --disable-nls
+.endif
+
+# It is now safe to set sub-package WANTLIB and LIB_DEPENDS
+WANTLIB-main=          ${WANTLIB}
+WANTLIB-logsrv=                ${WANTLIB}
+WANTLIB-python=                ${WANTLIB}
+LIB_DEPENDS-main=      ${LIB_DEPENDS}
+LIB_DEPENDS-logsrv=    ${LIB_DEPENDS}
+LIB_DEPENDS-python=    ${LIB_DEPENDS}
+
+.if ${FLAVOR:L:Mldap}
 CONFIGURE_ARGS+=       --with-ldap=${LOCALBASE}
-LIB_DEPENDS+=          databases/openldap
-WANTLIB+=              crypto lber-2.4 ldap-2.4 sasl2 ssl
+LIB_DEPENDS-main+=     databases/openldap
+WANTLIB-main+=         lber-2.4 ldap-2.4 sasl2
 .endif
-.if ${FLAVOR:Mgettext}
-CONFIGURE_ARGS += --enable-nls=${LOCALBASE}
-LIB_DEPENDS+=  devel/gettext,-runtime
-WANTLIB+=      iconv intl
+
+.if ${FLAVOR:L:Mno_python}
+CONFIGURE_ARGS+=       --disable-python
 .else
-CONFIGURE_ARGS += --disable-nls
+MULTI_PACKAGES+=       -python
+CONFIGURE_ARGS+=       --enable-python
+MODULES=               lang/python
+MODPY_VERSION=         ${MODPY_DEFAULT_VERSION_3}
 .endif
 
 # Don't set owner on install in fake mode
Index: security/sudo/distinfo
===================================================================
RCS file: /cvs/ports/security/sudo/distinfo,v
retrieving revision 1.29
diff -u -p -u -r1.29 distinfo
--- security/sudo/distinfo      30 Jan 2020 18:47:11 -0000      1.29
+++ security/sudo/distinfo      19 Jun 2020 18:41:00 -0000
@@ -1,2 +1,2 @@
-SHA256 (sudo-1.8.31.tar.gz) = fqjZejzuTIROCIfqehvYDrVMyY/XeWZ3bLGoBlOtRU8=
-SIZE (sudo-1.8.31.tar.gz) = 3350674
+SHA256 (sudo-1.9.1.tar.gz) = KUEWzv4QoCdzkX/HRA2DhLkllVvJam4Oqhl3yDs0rf8=
+SIZE (sudo-1.9.1.tar.gz) = 3834744
Index: security/sudo/pkg/DESCR
===================================================================
RCS file: security/sudo/pkg/DESCR
diff -N security/sudo/pkg/DESCR
--- security/sudo/pkg/DESCR     22 Jun 2015 15:52:16 -0000      1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,6 +0,0 @@
-Sudo (su "do") allows a system administrator to delegate authority
-to give certain users (or groups of users) the ability to run some
-(or all) commands as root or another user while providing an audit
-trail of the commands and their arguments.
-
-Sudo is free software, distributed under an ISC-style license.
Index: security/sudo/pkg/DESCR-logsrv
===================================================================
RCS file: security/sudo/pkg/DESCR-logsrv
diff -N security/sudo/pkg/DESCR-logsrv
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/DESCR-logsrv      19 Jun 2020 19:10:11 -0000
@@ -0,0 +1,4 @@
+The sudo logserver, sudo_logsrvd, can be used to centralize storage
+of sudo event and I/O (session) logs.  I/O Logs created by sudo_logsrvd
+can be replayed via the sudoreplay utility in the same way as logs
+generated directly by the sudoers plugin.
Index: security/sudo/pkg/DESCR-main
===================================================================
RCS file: security/sudo/pkg/DESCR-main
diff -N security/sudo/pkg/DESCR-main
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/DESCR-main        19 Jun 2020 20:32:16 -0000
@@ -0,0 +1,4 @@
+Sudo (su "do") allows a system administrator to delegate authority
+to give certain users (or groups of users) the ability to run some
+(or all) commands as root or another user while providing an audit
+trail of the commands and their arguments.
Index: security/sudo/pkg/DESCR-python
===================================================================
RCS file: security/sudo/pkg/DESCR-python
diff -N security/sudo/pkg/DESCR-python
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/DESCR-python      19 Jun 2020 19:11:01 -0000
@@ -0,0 +1,3 @@
+The sudo Python plugin can be used to write sudo 1.9 plugins in
+Python instead of C.  The API closely follows the C sudo plugin API
+described by sudo_plugin(5).
Index: security/sudo/pkg/PFRAG.gettext
===================================================================
RCS file: security/sudo/pkg/PFRAG.gettext
diff -N security/sudo/pkg/PFRAG.gettext
--- security/sudo/pkg/PFRAG.gettext     10 Jul 2015 15:16:03 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,53 +0,0 @@
-@comment $OpenBSD: PFRAG.gettext,v 1.1 2015/07/10 15:16:03 espie Exp $
-share/locale/ca/LC_MESSAGES/sudo.mo
-share/locale/ca/LC_MESSAGES/sudoers.mo
-share/locale/cs/LC_MESSAGES/sudo.mo
-share/locale/cs/LC_MESSAGES/sudoers.mo
-share/locale/da/LC_MESSAGES/sudo.mo
-share/locale/da/LC_MESSAGES/sudoers.mo
-share/locale/de/LC_MESSAGES/sudo.mo
-share/locale/de/LC_MESSAGES/sudoers.mo
-share/locale/el/LC_MESSAGES/sudoers.mo
-share/locale/eo/LC_MESSAGES/sudo.mo
-share/locale/eo/LC_MESSAGES/sudoers.mo
-share/locale/es/LC_MESSAGES/sudo.mo
-share/locale/eu/LC_MESSAGES/sudo.mo
-share/locale/eu/LC_MESSAGES/sudoers.mo
-share/locale/fi/LC_MESSAGES/sudo.mo
-share/locale/fi/LC_MESSAGES/sudoers.mo
-share/locale/fr/LC_MESSAGES/sudo.mo
-share/locale/fr/LC_MESSAGES/sudoers.mo
-share/locale/gl/LC_MESSAGES/sudo.mo
-share/locale/hr/LC_MESSAGES/sudo.mo
-share/locale/hr/LC_MESSAGES/sudoers.mo
-share/locale/it/LC_MESSAGES/sudo.mo
-share/locale/it/LC_MESSAGES/sudoers.mo
-share/locale/ja/LC_MESSAGES/sudo.mo
-share/locale/ja/LC_MESSAGES/sudoers.mo
-share/locale/lt/
-share/locale/lt/LC_MESSAGES/
-share/locale/lt/LC_MESSAGES/sudoers.mo
-share/locale/nb/LC_MESSAGES/sudo.mo
-share/locale/nb/LC_MESSAGES/sudoers.mo
-share/locale/nl/LC_MESSAGES/sudo.mo
-share/locale/nl/LC_MESSAGES/sudoers.mo
-share/locale/pl/LC_MESSAGES/sudo.mo
-share/locale/pl/LC_MESSAGES/sudoers.mo
-share/locale/pt_BR/LC_MESSAGES/sudo.mo
-share/locale/pt_BR/LC_MESSAGES/sudoers.mo
-share/locale/ru/LC_MESSAGES/sudo.mo
-share/locale/ru/LC_MESSAGES/sudoers.mo
-share/locale/sl/LC_MESSAGES/sudo.mo
-share/locale/sl/LC_MESSAGES/sudoers.mo
-share/locale/sr/LC_MESSAGES/sudo.mo
-share/locale/sr/LC_MESSAGES/sudoers.mo
-share/locale/sv/LC_MESSAGES/sudo.mo
-share/locale/sv/LC_MESSAGES/sudoers.mo
-share/locale/tr/LC_MESSAGES/sudo.mo
-share/locale/tr/LC_MESSAGES/sudoers.mo
-share/locale/uk/LC_MESSAGES/sudo.mo
-share/locale/uk/LC_MESSAGES/sudoers.mo
-share/locale/vi/LC_MESSAGES/sudo.mo
-share/locale/vi/LC_MESSAGES/sudoers.mo
-share/locale/zh_CN/LC_MESSAGES/sudo.mo
-share/locale/zh_CN/LC_MESSAGES/sudoers.mo
Index: security/sudo/pkg/PFRAG.gettext-main
===================================================================
RCS file: security/sudo/pkg/PFRAG.gettext-main
diff -N security/sudo/pkg/PFRAG.gettext-main
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/PFRAG.gettext-main        10 Jul 2015 15:16:03 -0000
@@ -0,0 +1,53 @@
+@comment $OpenBSD: PFRAG.gettext,v 1.1 2015/07/10 15:16:03 espie Exp $
+share/locale/ca/LC_MESSAGES/sudo.mo
+share/locale/ca/LC_MESSAGES/sudoers.mo
+share/locale/cs/LC_MESSAGES/sudo.mo
+share/locale/cs/LC_MESSAGES/sudoers.mo
+share/locale/da/LC_MESSAGES/sudo.mo
+share/locale/da/LC_MESSAGES/sudoers.mo
+share/locale/de/LC_MESSAGES/sudo.mo
+share/locale/de/LC_MESSAGES/sudoers.mo
+share/locale/el/LC_MESSAGES/sudoers.mo
+share/locale/eo/LC_MESSAGES/sudo.mo
+share/locale/eo/LC_MESSAGES/sudoers.mo
+share/locale/es/LC_MESSAGES/sudo.mo
+share/locale/eu/LC_MESSAGES/sudo.mo
+share/locale/eu/LC_MESSAGES/sudoers.mo
+share/locale/fi/LC_MESSAGES/sudo.mo
+share/locale/fi/LC_MESSAGES/sudoers.mo
+share/locale/fr/LC_MESSAGES/sudo.mo
+share/locale/fr/LC_MESSAGES/sudoers.mo
+share/locale/gl/LC_MESSAGES/sudo.mo
+share/locale/hr/LC_MESSAGES/sudo.mo
+share/locale/hr/LC_MESSAGES/sudoers.mo
+share/locale/it/LC_MESSAGES/sudo.mo
+share/locale/it/LC_MESSAGES/sudoers.mo
+share/locale/ja/LC_MESSAGES/sudo.mo
+share/locale/ja/LC_MESSAGES/sudoers.mo
+share/locale/lt/
+share/locale/lt/LC_MESSAGES/
+share/locale/lt/LC_MESSAGES/sudoers.mo
+share/locale/nb/LC_MESSAGES/sudo.mo
+share/locale/nb/LC_MESSAGES/sudoers.mo
+share/locale/nl/LC_MESSAGES/sudo.mo
+share/locale/nl/LC_MESSAGES/sudoers.mo
+share/locale/pl/LC_MESSAGES/sudo.mo
+share/locale/pl/LC_MESSAGES/sudoers.mo
+share/locale/pt_BR/LC_MESSAGES/sudo.mo
+share/locale/pt_BR/LC_MESSAGES/sudoers.mo
+share/locale/ru/LC_MESSAGES/sudo.mo
+share/locale/ru/LC_MESSAGES/sudoers.mo
+share/locale/sl/LC_MESSAGES/sudo.mo
+share/locale/sl/LC_MESSAGES/sudoers.mo
+share/locale/sr/LC_MESSAGES/sudo.mo
+share/locale/sr/LC_MESSAGES/sudoers.mo
+share/locale/sv/LC_MESSAGES/sudo.mo
+share/locale/sv/LC_MESSAGES/sudoers.mo
+share/locale/tr/LC_MESSAGES/sudo.mo
+share/locale/tr/LC_MESSAGES/sudoers.mo
+share/locale/uk/LC_MESSAGES/sudo.mo
+share/locale/uk/LC_MESSAGES/sudoers.mo
+share/locale/vi/LC_MESSAGES/sudo.mo
+share/locale/vi/LC_MESSAGES/sudoers.mo
+share/locale/zh_CN/LC_MESSAGES/sudo.mo
+share/locale/zh_CN/LC_MESSAGES/sudoers.mo
Index: security/sudo/pkg/PLIST
===================================================================
RCS file: security/sudo/pkg/PLIST
diff -N security/sudo/pkg/PLIST
--- security/sudo/pkg/PLIST     31 Dec 2019 21:54:25 -0000      1.7
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,47 +0,0 @@
-@comment $OpenBSD: PLIST,v 1.7 2019/12/31 21:54:25 millert Exp $
-@bin bin/cvtsudoers
-@mode 04555
-@bin bin/sudo
-@mode
-bin/sudoedit
-@bin bin/sudoreplay
-include/sudo_plugin.h
-libexec/sudo/
-libexec/sudo/group_file.la
-@so libexec/sudo/group_file.so
-libexec/sudo/libsudo_util.la
-@lib libexec/sudo/libsudo_util.so.${LIBsudo_util_VERSION}
-libexec/sudo/sudo_noexec.la
-@so libexec/sudo/sudo_noexec.so
-libexec/sudo/sudoers.la
-@so libexec/sudo/sudoers.so
-libexec/sudo/system_group.la
-@so libexec/sudo/system_group.so
-@man man/man1/cvtsudoers.1
-@man man/man5/sudo.conf.5
-@man man/man5/sudoers.5
-@man man/man5/sudoers_timestamp.5
-@man man/man8/sudo.8
-@man man/man8/sudo_plugin.8
-@man man/man8/sudoedit.8
-@man man/man8/sudoreplay.8
-@man man/man8/visudo.8
-@bin sbin/visudo
-share/doc/sudo/
-share/doc/sudo/CONTRIBUTORS
-share/doc/sudo/ChangeLog
-share/doc/sudo/HISTORY
-share/doc/sudo/LICENSE
-share/doc/sudo/NEWS
-share/doc/sudo/README
-share/doc/sudo/TROUBLESHOOTING
-share/doc/sudo/UPGRADE
-share/examples/sudo/
-share/examples/sudo/sudo.conf
-share/examples/sudo/sudoers
-share/examples/sudo/sudoers.OpenBSD
-@mode 0440
-@sample ${SYSCONFDIR}/sudoers
-@mode
-share/examples/sudo/syslog.conf
-%%gettext%%
Index: security/sudo/pkg/PLIST-logsrv
===================================================================
RCS file: security/sudo/pkg/PLIST-logsrv
diff -N security/sudo/pkg/PLIST-logsrv
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/PLIST-logsrv      19 Jun 2020 20:24:42 -0000
@@ -0,0 +1,10 @@
+@comment $OpenBSD: PLIST-logsrv,v$
+@rcscript ${RCDIR}/sudo_logsrvd
+@man man/man5/sudo_logsrv.proto.5
+@man man/man5/sudo_logsrvd.conf.5
+@man man/man8/sudo_logsrvd.8
+@man man/man8/sudo_sendlog.8
+@bin sbin/sudo_logsrvd
+@bin sbin/sudo_sendlog
+share/examples/sudo/sudo_logsrvd.conf
+@sample ${SYSCONFDIR}/sudo_logsrvd.conf
Index: security/sudo/pkg/PLIST-main
===================================================================
RCS file: security/sudo/pkg/PLIST-main
diff -N security/sudo/pkg/PLIST-main
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/PLIST-main        19 Jun 2020 19:12:11 -0000
@@ -0,0 +1,52 @@
+@comment $OpenBSD: PLIST,v 1.7 2019/12/31 21:54:25 millert Exp $
+@bin bin/cvtsudoers
+@mode 04555
+@bin bin/sudo
+@mode
+bin/sudoedit
+@bin bin/sudoreplay
+include/sudo_plugin.h
+libexec/sudo/
+libexec/sudo/audit_json.la
+@so libexec/sudo/audit_json.so
+libexec/sudo/group_file.la
+@so libexec/sudo/group_file.so
+libexec/sudo/libsudo_util.la
+@lib libexec/sudo/libsudo_util.so.${LIBsudo_util_VERSION}
+libexec/sudo/sample_approval.la
+@so libexec/sudo/sample_approval.so
+libexec/sudo/sudo_noexec.la
+@so libexec/sudo/sudo_noexec.so
+libexec/sudo/sudoers.la
+@so libexec/sudo/sudoers.so
+libexec/sudo/system_group.la
+@so libexec/sudo/system_group.so
+@man man/man1/cvtsudoers.1
+@man man/man5/sudo.conf.5
+@man man/man5/sudoers.5
+@man man/man5/sudoers_timestamp.5
+@man man/man8/sudo.8
+@man man/man8/sudo_plugin.8
+@man man/man8/sudoedit.8
+@man man/man8/sudoreplay.8
+@man man/man8/visudo.8
+@bin sbin/visudo
+share/doc/sudo/
+share/doc/sudo/CONTRIBUTORS
+share/doc/sudo/ChangeLog
+share/doc/sudo/HISTORY
+share/doc/sudo/LICENSE
+share/doc/sudo/NEWS
+share/doc/sudo/README
+share/doc/sudo/TROUBLESHOOTING
+share/doc/sudo/UPGRADE
+share/examples/sudo/
+share/examples/sudo/sudo.conf
+share/examples/sudo/sudoers
+share/examples/sudo/sudoers.OpenBSD
+@mode 0440
+@sample ${SYSCONFDIR}/sudoers
+@mode
+@sample ${SYSCONFDIR}/sudo.conf
+share/examples/sudo/syslog.conf
+%%gettext%%
Index: security/sudo/pkg/PLIST-python
===================================================================
RCS file: security/sudo/pkg/PLIST-python
diff -N security/sudo/pkg/PLIST-python
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/PLIST-python      19 Jun 2020 20:24:42 -0000
@@ -0,0 +1,11 @@
+@comment $OpenBSD: PLIST-python,v$
+libexec/sudo/python_plugin.la
+@so libexec/sudo/python_plugin.so
+@man man/man8/sudo_plugin_python.8
+share/examples/sudo/example_approval_plugin.py
+share/examples/sudo/example_audit_plugin.py
+share/examples/sudo/example_conversation.py
+share/examples/sudo/example_debugging.py
+share/examples/sudo/example_group_plugin.py
+share/examples/sudo/example_io_plugin.py
+share/examples/sudo/example_policy_plugin.py
Index: security/sudo/pkg/sudo_logsrvd.rc
===================================================================
RCS file: security/sudo/pkg/sudo_logsrvd.rc
diff -N security/sudo/pkg/sudo_logsrvd.rc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ security/sudo/pkg/sudo_logsrvd.rc   19 Jun 2020 19:54:06 -0000
@@ -0,0 +1,9 @@
+#!/bin/ksh
+#
+# $OpenBSD$
+
+daemon="${TRUEPREFIX}/sbin/sudo_logsrvd"
+
+. /etc/rc.d/rc.subr
+
+rc_cmd $1

Reply via email to