I am sponsoring this case for Jeff Trawick. Timeout set to 2008/11/13.
Template Version: @(#)sac_nextcase %I% %G% SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
Sun Web Stack 1.4
1.2. Name of Document Author/Supplier:
Author: Jeff Trawick
1.3 Date of This Document:
13 November, 2008
4. Technical Description
Sun Web Stack 1.4
November 13, 2008
Jeff Trawick <jeffrey.trawick at sun.com>
1. Summary and motivation
1.1. Introduction
Sun Web Stack provides a collection of the technologies commonly
known as LAMP (Linux, Apache, MySQL, PHP) as well as several
additional commonly used Web Tier technologies. This collection
exists today in OpenSolaris, and is commonly referred to as the
OpenSolaris Web Stack (http://opensolaris.org/os/project/webstack/).
While Sun Web Stack is a new product, architecturally it is a porting
effort of the existing OpenSolaris Web Stack onto the following
platforms:
- Solaris 10 (SPARC and x86)
- Red Hat Enterprise Linux (RHEL) 5 (x86)
Feature parity across all three platforms is a primary
requirement, thus it is a goal of the Sun Web Stack product to be
strictly a port of the OpenSolaris Web Stack onto these platforms.
This means the product will contain precisely the same version of
each component and each component will be configured to support
the same options and features as in OpenSolaris.
Sun Web Stack is a subset of the components available under the
umbrella of the OpenSolaris Web Stack project. The chosen subset
may be expanded in future releases depending on customer interest.
The software will be available without charge, but without
product support, on Solaris 10 and RHEL 5 as it is for OpenSolaris.
Support contracts will be available for purchase by customers.
(Note: The direction for future releases of Sun Web Stack is to
provide additional enterprise features which are not freely
available. No such value adds are provided in this initial release.)
This is the initial release of the Sun Web Stack product therefore
it can be considered a baseline Major release, despite the 1.4
marketing release number.
2. Technical description
2.1. API and ABI compatibility
There is no previous Sun Web Stack release, so the
discussion here primarily covers future Sun Web Stack major
and minor updates and how they relate to the compatibility
characteristics of the various open source features.
Each open source feature included within Sun Web Stack has
its own notion of compatibility. For example, new Apache
HTTP Server micro revisions, such as 2.2.1, 2.2.2, etc.,
are binary compatible with previous Apache HTTP Server
2.2.x micro revisions, whereas new Apache HTTP Server minor
revisions, such as 2.0.x, 2.2.x, are not binary compatible
with previous ones. With Apache Portable Runtime, on the
other hand, only major revisions are not backwards compatible,
and micro revisions are forwards and backwards compatible.
Upgrades of the open source packages from one Sun Web Stack
release to the next will be managed such that no incompatible
changes are introduced within a minor Sun Web Stack release
(1.4, 1.5, etc.), but instead will be postponed to the next
major Sun Web Stack release (2.0, 3.0, etc.). These major
Sun Web Stack releases will inevitably break API and ABI
compatibility becasue of the need to maintain currency with
the current stable versions of the various open source
projects, which themselves only support a particular stable
branch for a limited period of time.
2.1.1. Compatibility with other builds of the same open source
software
Some enterprise customers may be using commercial products
which provide plug-ins or extensions for some of the open
source features, notably Apache. It is a goal to maintain
compatibility with the ABIs of the open source projects so that
binary-only plug-ins or extensions can be used with the Sun Web
Stack offering of that open source feature.
For example, the Apache HTTP Server 2.2.9 included within
Sun Web Stack should be compatible with binary modules for
Apache 2.2.x (x<=9) provided that the same word size and a
compatible compiler were used.
In the event that market demands require that we ship a new
incompatible version of a component before it is time for the next
Major release of Sun Web Stack, the versioned directory structure
permits shipping multiple versions of the same component. As with
other aspects of Sun Web Stack, this is the same approach taken in
OpenSolaris.
2.2. Configuration Settings
Sample configuration files will be provided for each, as on
OpenSolaris.
2.3. Services (daemon) Support
Many of the features of Sun Web Stack are network services, which
should be controllable by the standard platform interfaces, whether
manually or with system startup and shutdown.
2.3.1. Solaris 10
SMF definitions will be provided for each service (Apache, lighttpd,
MySQL, etc.) so that they can be controlled using the SMF interfaces.
2.3.2. RHEL 5
SysV Init scripts will be provided for each service.
2.4. Platform-specific features
2.4.1. Dtrace
It is a long term goal of Sun Web Stack to provide Solaris-specific
enhancements based on Dtrace for all key features. Several of the
web stack features in OpenSolaris, including Apache and PHP, include
such enhancements. Those will be retained on Solaris 10, but will
not be available on RHEL 5.
2.4.2. 64-bit exploitation
In OpenSolaris, 32-bit versions are provided for all binaries and
64-bit support is provided for selected features, including Apache
and MySQL.
2.4.2.1. Solaris 10
64-bit support will match that in OpenSolaris.
2.4.2.2. RHEL 5
No 64-bit support will be provided. The 32-bit binaries will
however be supported on both the 32-bit and 64-bit variations of
RHEL 5.
2.5. Packaging and delivery
This case delivers Sun Web Stack 1.4 as native packages for
Solaris 10 (SVR4) and RHEL 5 (rpms).
(Note: Sun Web Stack 1.4 will also support Update Center 2. A separate
case will follow to cover that delivery; it is not part of this case.)
6. Interfaces
6.1 Imported Interfaces
6.1.1 OpenSolaris Web Stack component
As documented in section 1, Sun Web Stack is a port of a subset of
OpenSolaris Web Stack components. This case imports the definition
of all these components from the following cases:
Primary features:
LSARC/2008/541 Apache and APR Updates
LSARC/2008/191 Deliver Lighttpd 1.4.x into OpenSolaris
LSARC/2008/126 memcached 1.2.5 to be included in OpenSolaris
LSARC/2008/599 Update MySQL to 5.0.67
LSARC/2008/538 Including PHP 5.2.6 within OpenSolaris
PSARC/2008/543 Python 2.5 for Solaris
PSARC/2007/600 Including Ruby 1.8 with Solaris
WSARC/2007/554 Deliver Squid into OpenSolaris
PSARC/2008/065 Tomcat 5.5
Additional Apache modules:
mod_dtrace, mod_fcgid, mod_jk:
PSARC/2008/090 Additional Apache2 Modules
mod_perl:
PSARC/2007/586 Including Apache 2.2.6 with Solaris
PHP extensions:
APC, dtrace, idn, memcache, suhosin, tcpwrap, xdebug:
PSARC/2007/656 PHP5 Feature Enhancements
6.1.2 New imported interfaces for Solaris 10 and Linux
Interface: ST CLI (stclient)
Stability: Stable
Exporting Project: Sun Service Tag ARC V1.1 Case PSARC/2007/473
Used by: Sun Web Stack registration command (Appendix 2)
6.2 Exported Interfaces
The following additional and/or modified interfaces are exported
by this case:
6.2.1 Filesystem paths
The web stack components are bundled in OpenSolaris, and their
filesystem paths reflect that bundling in their use of system
directories (e.g., /usr/apache2, /usr/mysql, etc.).
SWS on Solaris 10 and RedHat is an add-on product and its files
are not installed in system directories, other than SMF manifests
(Solaris 10) and init scripts (RedHat).
When porting to Solaris 10 and RedHat, filesystem paths were
modified as follows from the existing OpenSolaris (bundled)
locations:
Configuration files
OpenSolaris (existing) /etc/$component/*
Solaris 10 /etc/opt/webstack/$component/*
RedHat /etc/opt/sun/webstack/$component/*
Run-time variable files
OpenSolaris (existing) /var/$component/*
Solaris 10 /var/opt/webstack/$component/*
RedHat /var/opt/sun/webstack/$component/*
All static files (binaries, libraries, docs, etc.)
OpenSolaris (existing) /usr/* and elsewhere
Solaris 10 /opt/webstack/$component/*
RedHat /opt/sun/webstack/$component/*
6.2.2 Support Libraries (Project Private)
In order to maintain feature parity with the OpenSolaris version of
Web Stack components, the Sun Web Stack porting effort may include
several private support libraries when the corresponding library in
Solaris 10 or RedHat Linux is either missing or too far out of date
to be useful. All the support libraries are Project Private and not
documented for direct customer use.
6.2.3 New Command-line interfaces
Sun Web Stack 1.4 has a simple command line installer. Future major
releases of the product may (or may not) alter the installation
procedure, so the current simple installer is Uncommitted.
Installer CLI name Uncommitted Defined in Appendix 1
Installer CLI options Uncommitted Defined in Appendix 1
Installer meta package names Uncommitted Defined in Appendix 1
Installer meta package mappings Uncommitted Defined in Appendix 1
Registration CLI name Uncommitted Defined in Appendix 2
6.2.4 Solaris 10-specific items
6.2.4.1 SVR4 package names
Feature Package name Stability
---------------------------- ------------ ---------
Apache HTTP Server sun-apache22 Uncommitted
Apache module mod_dtrace sun-apache22-dtrace Uncommitted
Apache module mod_fcgid sun-apache22-fcgid Uncommitted
Apache module mod_jk sun-apache22-jk Uncommitted
Apache module mod_perl sun-apache22-perl Uncommitted
lighttpd HTTP server sun-lighttpd14 Uncommitted
memcached sun-memcached Uncommitted
MySQL sun-mysql50 Uncommitted
PHP sun-php52 Uncommitted
PHP extension APC sun-php52 Uncommitted
PHP extension dtrace sun-php52 Uncommitted
PHP extension idn sun-php52 Uncommitted
PHP extension memcache sun-php52 Uncommitted
PHP extension suhosin sun-php52 Uncommitted
PHP extension tcpwrap sun-php52 Uncommitted
PHP extension xdebug sun-php52 Uncommitted
Python sun-python25 Uncommitted
Ruby sun-ruby18 Uncommitted
squid sun-squid Uncommitted
Tomcat sun-tomcat5 Uncommitted
6.2.4.2 SMF FMRIs for services
These are modelled on the OpenSolaris SMF FMRIs, but use
the package names to avoid any potential conflicts.
Apache HTTP Server /network/http:sun-apache22 Uncommitted
lighttpd /network/http:sun-lighttpd14 Uncommitted
memcached /application/database/sun-memcached:default Uncommitted
MySQL /application/database/sun-mysql50 Uncommitted
Squid /network/http:sun-squid Uncommitted
Tomcat /network/http:sun-tomcat5 Uncommitted
6.2.5 RHEL 5-specific items
6.2.5.1 RPM package names
These are the same as in 6.2.1.1, SVR4 package names, except that the
following packages aren't provided:
Package Reason
--------------------- ------------------------------------
sun-apache22-dtrace DTrace doesn't exist on RedHat
sun-apache22-python25 RedHat-provided Python is sufficient
sun-apache22-ruby18 RedHat-provided Ruby is sufficient
6.2.5.2 /etc/init.d scripts
The native package names were used for the names of the
init scripts.
Apache HTTP Server sun-apache22 Uncommitted
lighttpd sun-lighttpd14 Uncommitted
memcached sun-memcached Uncommitted
MySQL sun-mysql50 Uncommitted
Squid sun-squid Uncommitted
Tomcat sun-tomcat5 Uncommitted
7. References
http://sac.sfbay/LSARC/2008/541 Apache and APR Updates
http://sac.sfbay/LSARC/2008/191 Deliver Lighttpd 1.4.x into
OpenSolaris
http://sac.sfbay/LSARC/2008/126 memcached 1.2.5 to be included in
OpenSolaris
http://sac.sfbay/LSARC/2008/599 Update MySQL to 5.0.67
http://sac.sfbay/LSARC/2008/538 Including PHP 5.2.6 within
OpenSolaris
http://sac.sfbay/PSARC/2008/543 Python 2.5 for Solaris
http://sac.sfbay/PSARC/2007/600 Including Ruby 1.8 with Solaris
http://sac.sfbay/WSARC/2007/554 Deliver Squid into OpenSolaris
http://sac.sfbay/PSARC/2008/065 Tomcat 5.5
http://sac.sfbay/PSARC/2008/090 Additional Apache2 Modules
http://sac.sfbay/PSARC/2007/586 Including Apache 2.2.6 with Solaris
http://sac.sfbay/PSARC/2007/656 PHP5 Feature Enhancements
http://sac.sfbay/PSARC/2007/473 Sun Service Tags Version 1.1
-------------------------------------------------------------------------------
Appendix 1
Installer command user interface
The install command resides in the user's download area and will
install the native packages required to implement the desired
feature, then call the registration script.
Syntax:
./install [-h|-?|--help] [list-of-features]
-h issue help messages
-? and --help are synonyms
list-of-features = one or more of the following feature keywords:
keyword packages to be installed
------------------ --------------------------------------
amp sun-wsbase, sun-apache22*, sun-mysql50, sun-php52*
apache sun-wsbase, sun-apache22*, sun-mysql50 (dependency)
mysql sun-wsbase, sun-mysql50
php sun-wsbase, sun-php52*, sun-mysql50 (dependency)
squid sun-wsbase, sun-squid
lighttpd sun-wsbase, sun-lighttpd14
memcached sun-wsbase, sun-memcached
python* sun-wsbase, sun-python25
ruby* sun-wsbase, sun-ruby18
tomcat sun-wsbase, sun-tomcat5
*sun-python25 and sun-ruby18 are only provided on Solaris 10; RedHat
users must use the version provided with the OS
-------------------------------------------------------------------------------
Appendix 2
Registration command user interface
The registration command normally is called automatically from the
install script. It is included in the sun-wsbase package (always
installed) and documented so that users can reinitiate registration
later, or initiate registration after installing the native packages
manually.
The regtool will create a service tag and attempt to open the
registration page in a browser window. If that does not succeed,
regtool will report the file system location of the registration page
and the user will need to open it within a browser in order to
complete the registration process. The user will then be taken to a
webapp hosted by the sysnet team on inventory.sun.com and the
registration process is complete only after the user creates a Sun
Online Account or logs in with an existing account.
Syntax:
/opt/webstack/bin/regtool [-h|-?|--help]
-h issue help messages
-? and --help are synonyms
The tool has no additional command-line arguments in this release.
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
none
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open