I'm submitting the following *full* case on my own behalf. 

Note that I'm not filing using the "normal" 20q format.  I think this case
will be easier to understand without it.  The major concerns raised in
this case have to do with our compatibility guarantees, which is why this
case must be handled as a full review.  The content itself is fairly straight
forward.

I'm hoping to have a slot on the agenda for discussion on Oct. 21, 2009.

Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         EOF of libucb
    1.2. Name of Document Author/Supplier:
         Author:  Garrett D'Amore
    1.3  Date of This Document:
        08 October, 2009
4. Technical Description

EOF of /usr/ucblib
------------------

We have already removed Source Compatibility for legacy SunOS 4.x (BSD) 
applications.  Right now we retain some of the infrastructure to support
legacy applications at *run-time* in the form of these libraries located
under /usr/ucblib  (with both .so and .so.1, and 32 and 64-bit variants as
appropriate):

        libcurses
        libdbm
        librpcsoc
        libtermcap
        libucb

Its our belief that these libraries should not be used in any applications,
even at run time.  This is ancient, legacy stuff, best avoided by everyone.

There is quite a collection of advice to developers that these libraries
should be avoided, including in the man pages for the libraries themselves,
as well as numerous internet forum, mailing list, and usenet postings, spanning
a history well over a decade.

While this kind of removal is not normally appropriate for a "minor" release,
the unique rules surrounding the release of OpenSolaris (and subsequently
Solaris.Next) makes this seem a particularly good opportunity to finally
ditch this bit of baggage from the 1980's.

RISKS
-----

The main risk is that some software out there might still be using these
libraries.  This would be particularly unfortunate, since those applications
will cease to function.  A web search found only one common case, which is the
Mplayer and associated ffmpeg open source video player, where this was found
to be an issue.  (In this case, a recompile of the open source application
without /usr/ucb in the compiler/linker search paths resolves the problem.)

MITIGATION
-----------

Fortunately, for applications that might have this problem but which
cannot be recompiled (such as when source code is not available), we do have
a mitigation strategy.  The delivery of S10C (PSARC 2009/253) will make
it possible to use these applications in a legacy Solaris 10 container,
which will still have the /usr/ucblib libraries.

Its possible therefore that the Members might decide to insist that
this project not deliver before the S10C project does.

Its worth mentioning that this mitigation strategy is not perfect, since the
S10C project does not necessarily support all applications. 

However, we believe that the S10C project will cover the bulk of any
applcations that need this kind of support, and we truly believe the number
of such applicattions to be vanishingly small. 

COMMANDS IN /usr/ucb/
---------------------

One possible concern is our own commands that are delivered in /usr/ucb.

The project team has undertaken the effort to investigate these further.
All of them have now been converted (in a local workspace) to use safer
modern SYSV libraries located in /usr/lib ... with just a couple of minor
exceptions.

reset and tset use libtermcap in ways such that the terminfo replacement
does not provide equivalent functionality.  While we believe that these
utilities should be converted to use native terminfo instead of termcap,
it turns out that it is simply more expedient to link a private copy of
libtermcap statically against these two utilities.  Updating them to use
terminfo should be the subject of another effort, with a separate CR.

The remaining commands are the plotting commands, which the project team
is hoping to EOF separately per PSARC 2009/540.

With these changes, we no longer have a need for any of these libraries
to build our own software.


6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                ON
    6.5. ARC review type: OnePager
    6.6. ARC Exposure: open

Reply via email to