<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c6cc8a82d3dea06ba9771e794e2b68afd9b57798">https://github.com/macports/macports-ports/commit/c6cc8a82d3dea06ba9771e794e2b68afd9b57798</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new c6cc8a82d3d sudosh2: new port (v1.0.7)
</span>c6cc8a82d3d is described below

<span style='display:block; white-space:pre;color:#808000;'>commit c6cc8a82d3dea06ba9771e794e2b68afd9b57798
</span>Author: Herby Gillot <herby.gillot@gmail.com>
AuthorDate: Wed Feb 21 20:02:16 2024 -0500

<span style='display:block; white-space:pre;color:#404040;'>    sudosh2: new port (v1.0.7)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    https://github.com/squash/sudosh2
</span>---
 shells/sudosh2/Portfile                | 60 +++++++++++++++++++++
 shells/sudosh2/files/patch-getopt.diff | 95 ++++++++++++++++++++++++++++++++++
 2 files changed, 155 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/shells/sudosh2/Portfile b/shells/sudosh2/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0db3200b6af
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/shells/sudosh2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        squash sudosh2 1.0.7 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    sudosh is an auditing shell filter and can be used as a login shell.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    {*}${description} sudosh is an auditing shell filter and can be used as a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    login shell. Sudosh records all keystrokes and output and can play back \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the session as just like a VCR. Sudosh2 is a continuation of the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    development of sudosh. Sudosh2 is an auditing layer between sudo and a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    user\'s shell, that can also be used as a login shell. User sessions are \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    recorded and are available for later playback by the system \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    administrator. sudosh2 does not record command history except when \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    executed remotely via ssh\'s command option. If you\'re looking for \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    something to just log commands, there are other tools for that. sudosh2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    does not log sessions to syslog. If you need to consolidate session logs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    to a single location, logging them to a network filesystem is currently \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the recommended option. sudosh2 was forked from sudosh, which was pulled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    by its original developer when a commercial company bought it from him. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    The initial project goals were to fix several major bugs, make it 64 bit \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    safe, and port to newer versions of Unix operating systems. The initial \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    targets were RHEL5 and Solaris 10, but most recent free Unix systems \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    should work perfectly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          shells security
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+installs_libs       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             OSL-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {gmail.com:herby.gillot @herbygillot} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  3384d399f9fe08c603458cbfbe4f2330d5286d05 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  deff53402cc1d27c149fe4031e1e9961a32f32424252c099a7d5edcef74f5f4a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    148232
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts           sudosh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_autoreconf      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.cmd      autoreconf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.args     -fvi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:autoconf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:automake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libtool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --disable-silent-rules \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --mandir=${prefix}/share/man \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --sysconfdir=${prefix}/etc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-getopt.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.c_standard 2017
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/shells/sudosh2/files/patch-getopt.diff b/shells/sudosh2/files/patch-getopt.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3bb33e5b5c9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/shells/sudosh2/files/patch-getopt.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,95 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./src/getopt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./src/getopt.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,7 +63,7 @@ the executable file might be covered by the GNU General Public License. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This needs to come after some library #include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    to get __GNU_LIBRARY__ defined.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__GNU_LIBRARY__) || defined(__OpenBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__GNU_LIBRARY__) || defined(__OpenBSD__) || defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Don't include stdlib.h for non-GNU C libraries because some of them
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    contain conflicting prototypes for getopt.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,7 +162,7 @@ static enum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } ordering;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__GNU_LIBRARY__) || defined(__OpenBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__GNU_LIBRARY__) || defined(__OpenBSD__) || defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* We want to avoid inclusion of string.h with non-GNU libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    because there are many ways it can cause trouble.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    On some systems, it contains special magic macros that don't work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -177,9 +177,7 @@ static enum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *getenv ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-my_index (str, chr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     const char *str;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int chr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++my_index (const char *str, int chr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   while (*str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -223,8 +221,7 @@ static int last_nonopt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the new indices of the non-options in ARGV after they are moved.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-exchange (argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     char **argv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++exchange (char **argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int bottom = first_nonopt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int middle = last_nonopt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,8 +278,7 @@ exchange (argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Initialize the internal data when the first call is made.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_getopt_initialize (optstring)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     const char *optstring;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_getopt_initialize (const char *optstring)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Start processing options with ARGV-element 1 (since ARGV-element 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      is the program name); the sequence of previously skipped
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -369,13 +365,13 @@ _getopt_initialize (optstring)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    long-named options.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int argc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     char *const *argv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     const char *optstring;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     const struct option *longopts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int *longind;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int long_only;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_getopt_internal (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int argc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  char *const *argv,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *optstring,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const struct option *longopts,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int *longind, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int long_only)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   optarg = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -672,10 +668,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-getopt (argc, argv, optstring)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     int argc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     char *const *argv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     const char *optstring;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++getopt (int argc, char *const *argv, const char *optstring)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return _getopt_internal (argc, argv, optstring,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      (const struct option *) 0, (int *) 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./src/getopt.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./src/getopt.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,7 +94,7 @@ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define optional_argument 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if __STDC__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(__GNU_LIBRARY__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__GNU_LIBRARY__) || defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Many other libraries have conflicting prototypes for getopt, with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    differences in the consts, in stdlib.h.  To avoid compilation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    errors, only prototype getopt for the GNU C library.  */
</span></pre><pre style='margin:0'>

</pre>