<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>