.de Sc
\\s-1\\$1\\s0\\$2
..
.ds cA 2009/150
.ds aR \s-1PSARC\s0
.LP
.so ../../amac
.Co
.ds LF \fI\*(aR/\*(cA\fP
.ds RF \fICopyright 2009 Sun Microsystems\fP
.if n .ds CF
.IP \fBSubject:\fP 15
shmux
.IP "\fBSubmitted by:\fP" 15
Lily Li
.IP \fBFile:\fP 15
\*(aR/\*(cA/opinion.ms
.IP \fBDate:\fP 15
March 11th, 2009
.IP "\fBCommittee:\fP" 15
James D. Carlson,
Kais Belgaied,
Mark Carlson,
Richard Matthews,
Darren Moffat,
Glenn Skinner.
.IP "\fBProduct Approval Committee:\fP" 15

Solaris PAC
.br
solaris-pac@sun.com

.pn 2
.NH
Summary
.LP
This project proposes to integrate "shmux," an open source utility
that automates remote shell access, into Solaris and OpenSolaris.
.NH
Decision & Precedence Information
.LP
The project is approved as specified in reference [1], but as modified
by the required technical changes listed in Appendix A below.
.LP
The project may deliver in a patch/micro release of Solaris or
OpenSolaris via the SFW consolidation.
.NH
Interfaces
.LP
The project exports the following interfaces.
.if n .ne 8
.if t .ne 3
.TS H
box;
c s s
l | l | l.
Interfaces Exported
_
Interface	Classification	Comments
_
.TH
/usr/bin/shmux	Uncommitted	executable location
shmux	Uncommitted	command line syntax
commands	Volatile	interactive mode
exit codes	Uncommitted
SHMUX_*	Uncommitted	environment variables
SUNWshmux	Uncommitted	package name
.TE
.LP
.NH
Opinion
.LP
The only substantive issue discussed during ARC review was in regard
to the -p and -P command line options, described in reference [2].
These options are designed to invoke fping to check for server
liveness before attempting connection.
.LP
This design leads to a list of problems.  First, fping on Solaris
cannot be used by an ordinary user, because it requires elevated
privileges to use raw sockets.  This means that it would not work
right by default on Solaris or OpenSolaris, even though the same
option presently works correctly on Linux.
.LP
This issue led to a discussion of other problems related to this
design.  The success of "ping" (ICMP) bears no relationship to the
success of a subsequent TCP connection.  They are different protocols.
Moreover, one can easily test the success of TCP connections by using
non-blocking sockets and short timers.  The project team did not
dispute this contention and this discussion led to the technical
change required, described below.
.LP
An ARC member suggested on the mailing list that advice be sent to the
management teams regarding the cost of "free" software, which led to
the advice given in section 6 below.
.NH
Minority Opinion(s)
.LP
None
.NH
Advisory Information
.LP
The Solaris PAC and the management of project teams involved in
importing open source software are reminded that "free software" is
sometimes "free" in the same way a puppy is free.  It may not be
sufficient to import the package as-is.
.NH
Appendices
.NH 2
Appendix A: Technical Changes Required
.LP
.RS
.IP 1.
The utility must be modified to remove its dependence on fping and
should (to preserve the user interface) re-use the existing "-p" and
"-P" options to control the behavior of connect(), using non-blocking
sockets, poll/select for write, and short timers as necessary.
.RE
.NH 2
Appendix B: Technical Changes Advised
.LP
None
.NH 2
Appendix C: Reference Material
.LP
Unless stated otherwise, path names are relative to the case
directory \*(aR/\*(cA.
.IP 1.
Project proposal
.br
File:
proposal.txt
.IP 2.
shmux draft man page
.br
File:
materials/shmux.1.txt
