AIR for Linux:Release Notes
From Adobe Labs
March 31st, 2008
The release notes cover the following products:
- Adobe AIR for Linux alpha
- Adobe AIR SDK
|Table of contents|
- Processor - Modern x86 processor (800MHz or faster, 32-bit)
- Memory - 512MB of RAM, 128MB of Graphics Memory
Supported Linux Distributions
- RedHat Desktop Linux 4
- RedHat Enterprise Linux v5
- Novell Desktop Linux 9
- SUSE Linux Enterprise Desktop 10
- Ubuntu 6.06
Supported Languages: English only. The final version of AIR for Linux will include support for other languages.
Supported Desktop Environments: GNOME or KDE
Package Management Systems: RPM or Debian
Minimum GTK+ version: 2.4.13
Window Managers: Metacity (default for GNOME) or KWin (default for KDE)
Transparency: Support for transparency in AIR applications requires a compositing window manager and additional X server extensions:
- Compositing Window Managers: Beryl, Compiz, Compiz-fusion
- X Server Extensions: Composite, Render, Shape
Installing Adobe AIR
Installation of AIR on Linux requires administrative privileges. You may invoke the installer as a normal user without administrative rights, and the installer would automatically elevate it to an administrative operation by asking for the admin password (root password for non-Debian systems and sudo user’s password for Debian systems)
The runtime gets installed in /opt/Adobe AIR/Versions/1.0
Runtime Installation/Uninstallation Details
- The runtime installer is a binary file named adobeair_linux_a1_033108.bin.
- You need to grant execution rights to the bin file.
- To grant execution rights, run the command "chmod +x adobeair_linux_a1_033108.bin" in a terminal window.
- It could be installed by just double-clicking the binary.
- The runtime requires a running X server to install.
- The installer would elevate itself, if required.
- The runtime gets installed as a native package i.e rpm on a rpm based distribution and dpkg on a Debian. Currently AIR doesn’t support any other package format, so it may not install on distributions like Slackware etc.
- The package name is AdobeAIR_enu for rpm and adobeair-enu for dpkg format.
- To uninstall the runtime, use the system’s package manager. Search for the package name mentioned above.
- From the command line, you may uninstall the package using the command: “rpm –e AdobeAIR_enu” OR “dpkg –r adobeair-enu” as the case may be.
- AIR registers the mime-type: “application/vnd.adobe.air-application-installer-package+zip ” which means that .air files would be of this mime-type and they would be owned by AIR.
Application Installation / Uninstallation Details
- Applications can be installed by double-clicking on a file with the .air extension.
- The installer takes you through a wizard and would elevate itself if required (i.e. it would ask for an administrative password if you are a non-admin user).
- It gets installed as a native package (rpm or dpkg).
- Currently, the package name is a combination of the applicationID and publisherID for the application.
- An application can also be uninstalled with dpkg or rpm using its package name.
Tips and Tricks
- To install an application, you may use the command “/opt/Adobe AIR/Versions/1.0/airappinstaller <full path to the air file here>”. Currently relative paths do not work.
- If double clicking on air file, after having installed the runtime, doesn’t launch the application installer (this happens on some older distributions like Red Hat WS 4 or NLD 9), you might have to log out and log back in.
- To clean up the machine and try a fresh installation, you may rename the .adobe and .macromedia folder in the home directory for both root and the current user to any name.
- To use an HTTP proxy, set (and export) the environment variables AIR_PROXY_SERVER and AIR_PROXY_PORT with appropriate values.
The following features are available with this release:
- Runtime/Application Install/Update and Uninstall.
- HTML Loader with JS support to render HTML within AIR applications.
- Local Database APIs
- File system support with support for user folders like Desktop/Documents etc.
- Desktop Integration with Drag and drop, clipboard support
- Windowing support with System chrome none/standard
- Basic transparency
- Menu support with context menu, menu bar, pop up menus and menu events.
- Network change detection (Event.NETWORK_CHANGE )
- System wide idle detection (userIdle Event)
- NativeApplication APIs
- Capabilities (OS) API
- Mouse events
- Detection of running application (InvokeEvent.INVOKE)
Features Not Available
- Runtime update notifications/Background update
- Badged Installation
- File type registration
- System tray icon and menu support
- Hardware acceleration
- Launch application from browser
- IPv6 support
- Keyboard accelerators
- Screen API (multi-monitor support)
- DRM, Encrypted Local Store & Certificate store
- A/V Hardware change API
- Launch application at Startup
- PDF and SWF within HTML
Known Issues for AIR on Linux
The following is a list of known issues with this release:
- Debian systems that do not have the binutils package may give an error.
- Some older distributions have issues with .bin in the filename. Simply remove the .bin from the installer file name and run the installer.
- No package format other than rpm or dpkg is supported. Installation will not work on distributions that have a different package management mechanism.
- The programMenuFolder entries in the AIR application descriptor are not honored in some older distributions.
- If there are space characters in the text of the <name> tag in the AIR application descriptor, an entry in the System Applications menu is not created in some older distributions.
- Special characters like single and double quotes are not supported in some application descriptor tags. The presence of these characters may prevent an application from installing.
- Standard AIR icons are used instead of the ones that are packaged with the application
- You must use an absolute path to the AIR file when installing an AIR application on the command line.
- Installation progress bar goes to completion and then resets itself.
- Publishers for all applications are currently shown as 'Unknown'.
- Complex characters are not displayed in HTML Loader.
- SWF and PDF within HTML are not supported.
- Only UTF-8 encoding is supported for reading and writing files.
- File canonicalize() method: As Linux filesystems are generally case sensitive, canonicalize will fold the cases and return the correct case of the first found match. For example, if both /home/TESTand /home/test exist, canonicalizing a File object with the path set to /home/test will change the File object to reference the first file encountered in readdir order (the order in which the files were written in filesystem).
- Path lengths honor the system's PATH_MAX limit. No path passed to the filesystem API should be longer than the system's PATH_MAX value.
Drag and Drop / Clipboard
- The primary X clipboard is not supported (for example, copying content from terminal and trying to paste using middle-click wouldn't work).
- Drop targets only dispatch nativeDragOver events when the mouse moves while dragging over the target. The events are not dispatched continuously.
- When a drag operation begins, the drag initiator object does not dispatch a nativeDragUpdate event.
- When an AIR application exits, any associated clipboard data is lost.
Windowing / Menu
- Operations on the NativeWindow class are always asynchronous. For example, if you set the width property of a window in one statement and read the property value in the next statement, the width returned will still reflect the original value. The resize event is dispatched by the window object to signal the completion of the change.
- When you set the bounds property of a window, the order in which the x, y, width, and height of the window are set is not guaranteed. This can lead to inconsistent behavior when using a window manager that constrains a window to fit within the desktop bounds.
- Not all window managers support the full range of window properties. The properties most likely to be affected include:
- Some window managers do not allow a window to be maximized if the maxSize property of the window is less than the screen size. Others will change the appearance of the window chrome, but do not resize it. A displayStateChange event is not dispatched in such a case.
- Some window managers remove the system chrome when the Stage displayState property is set to fullScreen or fullScreenInteractive, but do not change the window size when the window maxSize property is set.
- Some window managers always keep utility-type windows in front of other windows in an application.
- Transparency requires a compositing window manager (such as Compiz, Beryl, or the latest Metacity). A compositing window manager can usually be enabled through 'Desktop Effects' or 'Visual Effects' preferences of the desktop environment. In addition, user preferences can disable transparency even when a compositing window manager is in use.
- Transparency does not work with virtualization software like VMWare.
- No window manager currently supports more than one level of notification urgency. Calling the window notify() method with either NotificationType.INFORMATIONAL or NotificationType.CRITICAL produces the same behavior.
- Some window managers do not report the location of such items as taskbars, docks, or deskbars. In these cases, the visibleBounds property of the Screen class will report the same dimensions as the bounds property.
- Caching is not supported.
- Using multiple methods of authentication (e.g. Basic, Digest) with the same server does not work.
- Apps running with future AIR Linux builds will not be able to find data saved using this alpha build in the app's local store (app-store, encrypted local store).
- This alpha build requires SELinux to be disabled, to install and run AIR applications. If you get an error such as "cannot restore segment prot after reloc: Permission denied", turn off SELinux using the command "setenforce 0" (as root).
Adobe AIR SDK
- The SDK is available in tbz2 format.
- Simply give the command: tar –jxvf <path to adobeair_linux_sdk_a1_033108.tbz2>
Known issues with ADT
- ADT doesn’t work with GNU Java, which comes as a standard with many Linux distributions. To get it working, ensure that you have Sun Java in your path. Try the command java –version in the terminal to figure out which flavor of Java is being used.
- Minimum required version of Sun Java/JRE is 1.4.2.