Stephen - this looks great.

Definitely +1.

Apologies for not responding sooner, but having kicked things off with the query on problems with building OSS on Solaris I headed off for a long weekend (May Day bank holiday in Ireland, as all marathon runners know) :) But laca as always covered all the bases, I owe him lots of beer.

So having:
All gnu tools moved into /usr where no naming conflict exists sounds great. This coupled with Bartt's original proposal to move tools out of /usr/sfw where no naming conflict/ compatibility issues, should really help the cause of building OSS on Solaris. I assume this will cover things like automake, autoconf and so on.

Reading all the post was a little confused as to why /usr/gnu as opposed to /usr/oss ?But seems clear from the proposal that this is purely to define the namespace clearly and not let it become another /usr/sfw general oss bucket. So if we have other tools that do conflict with what's in /usr and are not GNU, such as the Samba example Danek brought up we'll just need to handle these on a case by case basis.

JR

P.s. The URL for the Original /. post is:

http://slashdot.org/comments.pl?sid=183611&cid=15166267
"- It takes me twice as long to build any OSS on Solaris - no one is really developing on it consistently. Ever tried building Firefox on Solaris?"

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

----

PSARC/2006/xxx
/usr/gnu
Stephen Hahn ([EMAIL PROTECTED]) [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.


_______________________________________________
tools-discuss mailing list
tools-discuss@opensolaris.org

Reply via email to