sun microsystems Systems Architecture Committee _________________________________________________________________ Subject: shmux Submitted by: Lily Li File: PSARC/2009/150/opinion.ms Date: March 11th, 2009 Committee: James D. Carlson, Kais Belgaied, Mark Carl- son, Richard Matthews, Darren Moffat, Glenn Skinner. Product Approval Committee: Solaris PAC solaris-pac@sun.com 1. Summary This project proposes to integrate "shmux," an open source utility that automates remote shell access, into Solaris and OpenSolaris. 2. Decision & Precedence Information The project is approved as specified in reference [1], but as modified by the required technical changes listed in Appendix A below. The project may deliver in a patch/micro release of Solaris or OpenSolaris via the SFW consolidation. 3. Interfaces The project exports the following interfaces. _________________________________________________________ | Interfaces Exported | |______________|________________|_______________________| |Interface | Classification| Comments | |______________|________________|_______________________| |/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 | |______________|________________|_______________________| PSARC/2009/150 Copyright 2009 Sun Microsystems - 2 - _________________________________________________________ | Interfaces Exported | |______________|________________|_______________________| |Interface | Classification| Comments | |______________|________________|_______________________| |______________|________________|_______________________| 4. Opinion 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 connec- tion. 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 Open- Solaris, even though the same option presently works correctly on Linux. This issue led to a discussion of other problems related to this design. The success of "ping" (ICMP) bears no rela- tionship 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. 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. 5. Minority Opinion(s) None 6. Advisory Information 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. 7. Appendices 7.1. Appendix A: Technical Changes Required 1. The utility must be modified to remove its PSARC/2009/150 Copyright 2009 Sun Microsystems - 3 - 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. 7.2. Appendix B: Technical Changes Advised None 7.3. Appendix C: Reference Material Unless stated otherwise, path names are relative to the case directory PSARC/2009/150. 1. Project proposal File: proposal.txt 2. shmux draft man page File: materials/shmux.1.txt PSARC/2009/150 Copyright 2009 Sun Microsystems