Introduction

Adobe is developing Flash Player 9 for Linux. Given that GNU/Linux, and its
many components, is a platform of many choices, Adobe will formally support
specific Linux distributions.

Some components change frequently-- in particular, audio, secure sockets,
and Unicode. To enable Flash Player to adapt to these variations, we are
providing default implementations of audio, secure sockets, and Unicode and
making an API available for developers to adapt these areas to any
particular Linux configuration. Adobe is delivering this support layer as an
open-source dynamic library called flashsupport. This library will enable
distributions not formally supported by Adobe to ensure that Flash Player
functionality is fully preserved on those distributions. We are encouraging
the Linux community to experiment with flashsupport to confirm that it meets
their needs.

We will continue to develop flashsupport with community feedback before the
official release of Flash Player 9 for Linux. Please provide any feedback
using the discussion page on the Adobe web site:
http://labs.adobe.com/wiki/index.php/Flash_Player:Additional_Interface_Support_for_Linux

IMPORTANT: The flashsupport library is still a work in progress. The
instructions describing how to build and install this dynamic library are
for advanced users only.
Supported interfaces and features

In the Flash Player 9 beta for Linux, flashsupport can leverage the
following components:

    * OpenSSL (http://www.openssl.org)
    * ICU (http://icu.sourceforge.net)
    * OSS (http://www.opensound.com) 

These components are not required to run Adobe Flash Player; however,
without them, the following features are disabled:

    * HTTPS and RTMPS URL support in the stand-alone player
    * RTMPS URL support in the Adobe Flash Player plug-in (note that plug-in
      support for HTTPS is handled through the browser)
    * Support for two specific APIs in ActionScript 3.0:
	DataInput.ReadMultiByte and DataOutput.WriteMultiByte
    * Support for OSS (or any other alternative sound APIs you might
	implement) 

Requirements

The flashsupport dynamic library is provided in the form of a single source
code file written in C. It should compile with a recent version of the GNU C
compiler.

The following will be required from your distribution to create the dynamic
library:

    * C compiler (gcc 4.03 is known to be working)
    * OpenSSL developer package and working user libraries (OpenSSL 0.9.8 is
      known to be working)
    * ICU developer package and working user libraries (ICU 3.4.1 is known
	to be working)
    * OSS developer package, meaning Linux header files (Linux 2.6.15 is
	known to be working)
    * sudo or root access to install the generated library to /usr/lib 

Building and installing

We suggest the following, or similar, steps to compile and install the
dynamic library:

cc -shared -O2 -Wall -Werror -licuuc -lssl flashsupport.c -o \
 libflashsupport.so
 ldd libflashsupport.so 
 sudo cp libflashsupport.so /usr/lib

Important notes:

    * You should run 'ldd' to make sure that all dynamic libraries are
      resolved correctly on your system. Adobe Flash Player will fail
      silently if a dependency cannot be satisfied and will completely
      disable support for the additional interfaces.
    * You will notice additional code in flashsupport.c for GnuTLS,
      VideoForLinux1, and ALSA. These are not working in Adobe Flash Player
      9 beta 1 for Linux; they are provided for reference only. These might
      also be removed in the final release of Adobe Flash Player 9 for
      Linux.
    * If you do not require OSS, OpenSSL, or ICU support, you can comment
      the related processor definitions on top of flashsupport.c to disable
      them.
    * The sound interface implemented in flashsupport will always have
      precedence. This means that if you enable OSS support in flashsupport,
      Adobe Flash Player will first try to use it before it will revert back
      to its internal ALSA support. 

Source code

flashsupport.c can be found at
http://www.kaourantin.net/flashplayer/flashsupport.c
