FastCGI 2.4.0 [PSARC/2009/014 FastTrack timeout 01/16/2009]

Nicolas Williams nw141292 at sac.sfbay.sun.com
Fri Jan 9 19:32:58 PST 2009


Template Version: @(#)sac_nextcase %I% %G% SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
	 FastCGI 2.4.0
    1.2. Name of Document Author/Supplier:
	 Author:  Amanda Waite
    1.3  Date of This Document:
	09 January, 2009
4. Technical Description

Including FastCGI 2.4.0 with OpenSolaris

15 December 2008

1. Summary and motivation

        1.1. Introduction

	This project delivers the FastCGI 2.4.0[1] Application Libraries
	into OpenSolaris.

	FastCGI is an open variation of the Common Gateway Interface
	(CGI) that dramatically reduces the overhead of running CGI-like
	programs from a Web Server. It provides high performance without
	the limitations of server specific APIs. It is by Web Servers
	such as Lighttpd, Nginx and Zeus to communicate with Ruby on
	Rails and Python backend processes.

	The FastCGI Applications Libraries are the C and C++ libraries
	used by FastCGI application developers for creating FastCGI
	applications and wrapper programs.

	This case seeks Minor Release Binding.

2. Technical issues

        2.1. Key objects

        /usr/bin/cgi-fcgi
        /usr/bin/{ISA}/cgi-fcgi

        /usr/lib/libfcgi.so.0.0.0
        /usr/lib/libfcgi.so.0
        /usr/lib/libfcgi.so
        /usr/lib/libfcgi++.so.0.0.0
        /usr/lib/libfcgi++.so.0
        /usr/lib/libfcgi++.so

        /usr/lib/{ISA}/libfcgi.so.0.0.0
        /usr/lib/{ISA}/libfcgi.so.0
        /usr/lib/{ISA}/libfcgi.so
        /usr/lib/{ISA}/libfcgi++.so.0.0.0
        /usr/lib/{ISA}/libfcgi++.so.0
        /usr/lib/{ISA}/libfcgi++.so


        /usr/include/fastcgi/fastcgi.h
        /usr/include/fastcgi/fcgi_stdio.h
        /usr/include/fastcgi/fcgiapp.h
        /usr/include/fastcgi/fcgimisc.h
        /usr/include/fastcgi/fcgio.h
        /usr/include/fastcgi/fcgios.h
        /usr/include/fastcgi/fcgi_config.h

        2.2 C++ Libraries

	The FastCGI C++ Application library will not be included in the
	initial integration as we are dependent on the Apache Std C++
	Library. We will aim to add the C++ libraries in time for
	availability with OpenSolaris 2009.04 but accept that there is a
	risk that the timing may not allow for this. We will raise a CR
	to cover the integration of the C++ Libraries.

        2.3 Versioning

	At any point of time there is only one FastCGI release
	available. The current release is 2.4.0.

        2.4 Bindings

	Many languages provide bindings for FastCGI (popular examples
	include Perl, Python, Tcl, Ruby etc). Each of these languages
	provide the choice of using either the pure language version or
	a version linked with FastCGI library. These (native or pure
	bindings for the languages) will have to be installed separately
	by the user, or in some cases will be built specifically with
	the Libraries that this project delivers.

        2.5 Directory Naming and Structure

        The proposed directory layout for FastCGI is:

        /usr
        /bin
            /{ISA}
        /lib
            /{ISA}
        /include/fastcgi
        /share/man
                  /man1
                  /man3
        /share/doc
                  /fastcgi

	The detailed directory and file layout for FastCGI is provided
	in Addendum 1.

3. FastCGI Documentation.

	Man pages for the cgi-fcgi executable and for the documented API
	calls will be provided as part of the integration.

	A master fastcgi man page will be provided. This will describe
	the location of the key components of the integration. As
	FastCGI is often referred to as fcgi, this man page will also be
	accessible as 'fcgi'. Both will live under section 1m on the
	default MANPATH.

	The FastCGI documentation will be delivered 'as is' in a
	separate package.

4. Packaging and Delivery

	We propose to package FastCGI under the following usr packages:

        SUNWfcgi - FastCGI 2.4.0
        SUNWfcgi-doc - FastCGI 2.4.0 Documentation

5. FastCGI Interfaces

        5.1. Interface Stability

	FastCGI libraries first became available in 1996, the FastCGI
	project released the last major version on 19th January 2003
	although development continues for mod_fastcgi at the same site.
	Despite this lack of development FastCGI 2.4.0 is seen to be low
	risk and "Just works". It is widely used and was integrated with
	Sun Java System Web Server 7.

	5.2. Imported Interfaces

	FastCGI depends on PSARC 2008/549 Apache Standard C++
	Library[3], as well as core Solaris libraries (i.e.: libc), but
	no others.

        5.3. Exported Interfaces

NAME                               STABILITY   NOTES

/usr/bin/cgi-fcgi                  Uncommitted Executable
/usr/bin/{ISA}/cgi-fcgi            Uncommitted Executable

/usr/share/man/man1m/fastcgi.1m    Uncommitted Man Page

/usr/lib/libfcgi.so.0.0.0          Uncommitted Shared Library
/usr/lib/libfcgi.so.0              Uncommitted Symbolic Link
/usr/lib/libfcgi.so                Uncommitted Symbolic Link
/usr/lib/libfcgi++.so.0.0.0        Uncommitted Shared Library
/usr/lib/libfcgi++.so.0            Uncommitted Symbolic Link
/usr/lib/libfcgi++.so              Uncommitted Shared Symbolic Link

/usr/lib/{ISA}/libfcgi.so.0.0.0    Uncommitted Shared Library
/usr/lib/{ISA}/libfcgi.so.0        Uncommitted Symbolic Link
/usr/lib/{ISA}/libfcgi.so          Uncommitted Symbolic Link
/usr/lib/{ISA}/libfcgi++.so.0.0.0  Uncommitted Shared Library
/usr/lib/{ISA}/libfcgi++.so.0      Uncommitted Symbolic Link
/usr/lib/{ISA}/libfcgi++.so        Uncommitted Symbolic Link

6. References

        [1] http://www.fastcgi.com
        [2] http://www.fastcgi.com/devkit/doc
        [3] http://www.opensolaris.org/os/community/arc/caselog/2008/549/

================================================================
Addendum 1: FastCGI Integration Directory and File Structure.

1. The following files are included in the FastCGI integration:

/usr/share/man/man1m
                    /fastcgi.1m
                    /fcgi.1m -> fastcgi.1m
/usr
    /bin
        /cgi-fcgi
    /bin/{ISA}
              /cgi-fcgi
    /include/fastcgi
                    /fastcgi.h
                    /fcgi_stdio.h
                    /fcgiapp.h
                    /fcgimisc.h
                    /fcgio.h
                    /fcgios.h
                    /fcgi_config.h
     /lib
         /libfcgi.so.0.0.0
         /libfcgi.so.0
         /libfcgi.so
         /libfcgi++.so.0.0.0
         /libfcgi++.so.0
         /libfcgi++.so
     /lib/{ISA}
               /libfcgi.so.0.0.0
               /libfcgi.so.0
               /libfcgi.so
               /libfcgi++.so.0.0.0
               /libfcgi++.so.0
               /libfcgi++.so
     /share
           /man
                /man1m
                      /fastcgi.1m
                /man1
                     /cgi-fcgi.1
                /man3
                     /FCGI_Accept.3
                     /FCGI_Finish.3
                     /FCGI_SetExitStatus.3
                     /FCGI_StartFilterData.3
           3/doc/fastcgi
                       /<various documentation files for FastCGI>

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




More information about the opensolaris-arc mailing list