Project

Project Overview

Portland intends to deliver two sets of interfaces. One set of interfaces will be offered in the form of a set of command line tools. The other set of interfaces will be offered in the form of one or more libraries that applications can link with. The library approach is considered to be more usable approach for tasks that require more complex interaction. The set of command line tools can be grouped into tools for use at installation time and tools for use at runtime. Some tools may be useful in both situations.

Command Line Tools

Command line tools can be grouped into command line tools for use during installation and command line tools that the application may want to call while the application is in use by the end-user.

A first beta release of the command line tools, which go by the name xdg-utils, is available for download.

All xdg-utils command line tools have extensive documentation

The command line tools are being developed in the Portland xdg-utils CVS module.

Installation Tools

For tasks best handled at installation time command line tools are the most suitable. The typical installation use case is an RPM based archive that gets installed system wide by the root user. Such installation may be part of an automated install process and should not require any user interaction. A secondary use case is the case where an RPM based archive gets installed by an end user in the home directory of the user for that particular user only.

It is the intention of the Portland project that any resulting installation tools will be included in Linux distributions and standardized as part of the LSB effort. In addition, application developers can include the same installation tools along with their applications to use as fallback for use on older distributions that do not include the Portland tools yet.

Runtime Tools

For tasks that are relatively straightforward and that do not require complex interaction with the application a command line tool is a suitable solution. The advantages of a command line tool are that it can be used from all kinds of applications, irregardless of programming language and toolkit used, it can be used from shell scripts and the presence of a command line tool is easy to detect.

====Some interesting

=== It is the intention of the Portland project that any resulting runtime tools will be included in Linux distributions and standardized as part of the LSB effort. In addition, application developers can include the same runtime tools along with their applications to use as fallback for use on older distributions that do not include the Portland tools yet.

Interface Library

Tasks that can benefit from more complex interaction with the application can benefit from the library approach. The interface library is used here to forward requests to desktop services across an IPC protocol. The IPC protocol helps to decrease the exposure of implementation details in the desktop services and allows the desktop services to depend on additional dynamic libraries without creating additional dependencies for the interface library. Several different versions (bindings) of the Interface Library can be made available in order to provide convenient access from commonly used programming languages / toolkits / frameworks. Application developers are encouraged to select a version of the Interface Library that provides the best match with the existing technology choices in their application and link their application statically with the Interface Library of their choice.

It will be the responsibility of Linux distributors to include desktop services that implement the IPC protocol in their distribution. The Portland initiative will provide reference implementations of these desktop services for use with the Gnome and KDE desktop environments. The Interface Library may provide fallback provisions in case a target system does not provide the IPC protocol and/or the required desktop services. Application developers are NOT supposed to include a desktop services implementation along with their application as fallback.

It is the intention to standardize the interfaces exposed over the IPC protocol through LSB.

A Technology Preview of a set of desktop services and accompanying Interface Library, named DAPI, is available for download. DAPI development takes place in the Portland DAPI CVS module.

Although the Technology Preview of DAPI uses a custom IPC mechanism, it is the intention to use DBUS as the IPC mechanism in future version. More info look here: vinyl siding