On Friday 28 April 2006 04:56 pm, Stephen Hahn wrote:
> Since this topic arose during a discussion about developer readiness
> of opensolaris, and got reasonably well characterized, and appears to
> be gating on other improvements, I thought we should discuss further
> with a draft in hand.
>
> Comments welcomed.
>
> - Stephen
Not sure my vote/opinion matters, but +1.
ajd
>
> ----
>
> PSARC/2006/xxx
> /usr/gnu
> Stephen Hahn (sch at sun.com) [and anyone else who dares to be forever
> blamed for this]
>
> 1. Summary
>
> A new directory hierarchy, to contain GNU utilities under their
> original names, is proposed. A guideline for the provision of
> 'g'-prefixed variants in /usr/bin is also presented.
>
> This case seeks Minor release binding.
>
> 2. Discussion
>
> In an attempt to provide a more complete offering for software
> developers on OpenSolaris distributions (as well as other goals),
> this case proposes the introduction of /usr/gnu as a location for
> alternate implementations of standard tools, as well as other
> components, produced by the GNU project.
>
> 2.1. Expected use
>
> Much like the use of the XPG4 [1] and XPG6 [2 - 4] environments, the
> expected use of the /usr/gnu environment is to either prefer its
> binary components to the system defaults, via a setting like
>
> PATH=/usr/gnu/bin:...:/usr/bin
>
> or to use these components as a fallback, if other environments do
> not provide a component, with a setting like
>
> PATH=/usr/bin:...:/usr/gnu/bin
>
> 2.2. Reliance on /usr/gnu/bin utilities
>
> The individual utilities' stability levels dictate their
> appropriateness for use by other components.
>
> 2.3. 'g' Prefixing
>
> Historically, introduction of GNU utilities into /usr/bin has been
> done with a 'g' character prefixed to the utility name. This
> proposal amends this practice: the 'g'-prefixed version should be
> provided if already introduced. In cases where another operating
> system has provided a 'g'-prefixed version, the project team
> introducing a GNU component may choose to also provide one;
> otherwise, additional 'g'-prefixed components in /usr/bin are
> discouraged.
>
> 2.4. Manual pages
>
> In the interest of reducing manual page scavenger hunts, this
> proposal recommends the introduction of a new manual page section,
> 1G, to cover the introduced utilities. (Sections 1MG, 3LIBG, and so
> forth can be added as necessary.)
>
> Management of the manual path then proceeds along similar lines as
> the executable path in Section 2.1:
>
> MANPATH=/usr/man,1g,1
>
> to prefer the GNU project environment reference manual, and
>
> MANPATH=/usr/man,1,1g
>
> to use the GNU environment manual as a fallback.
>
> 2.5. Future possibilities
>
> One possible future direction is to extract the legacy tools from
> /usr/{bin,sbin} and provide them in a new, stable path like
> /usr/sunos/{bin,sbin}. The selection of the top-level /usr
> components can then be made a configurable aspect of the system, via
> one or more mechanisms.
>
> 3. Interfaces
>
> /usr/gnu Directory hierarchy Stable
> /bin
> /sbin
> /lib
> /info
> /etc
>
> /usr/share/man/man1g
> Manual page section Stable
>
> 4. References
>
> [1] J. Tornatore, PSARC/1994/161: XCU4 Conformance (XPG4
> Commands/Utilities component), 1994.
>
> [2] C. Fields, PSARC/2004/431: Add /usr/xpg6/bin/ex, 2004.
>
> [3] C. Fields, PSARC/2004/494: Add /usr/xpg6/bin/stty, 2004.
>
> [4] C. Fields, PSARC/2005/683: Add /usr/xpg4/bin/crontab and
> /usr/xpg6/bin/crontab, 2005.