Portland Open Questions
In order to make Portland as useful as possible for ISVs and in order to get as widespread adoption by OSVs as possible there are a number of open questions that we would like to receive feedback on.
Command Line Tools vs Interface Library
For simple tasks a command line tool can be sufficient but for more complex tasks a library approach can be easier to work with and more efficient. As an ISV which solution would you prefer to use for which task?
Interface Library
The interface library will communicate through an IPC mechanism with desktop services. The question is whether the interface library should be considered a part of the operating system, and shipped by the OS vendor, or whether the interface consists of the services provided over the IPC mechanism, in which case the interface library can be included as part of applications. Both approaches have advantages and disadvantages.
Interface Library included in OS
In this case the OS provides a dynamic library that applications can link against.
Advantages
- The IPC mechanism is not exposed to the application and can be changed in the future. This is a relevant concern in case a custom IPC mechanism is used for early versions and the IPC is switched to DBUS in later versions.
- ISVs need to include less code in their application.
Disadvantages
- Applications will need to dynamically link to the Interface Library creating a dependency on the library. Their application will not work if the library is not present.
Interface Library included with Application
In this case a static library is provided that applications can include to interface with the IPC services.
Advantages
- No additional dependencies on system libraries are created.
- Compile time configuration switches can be provided that tune the interface library to the needs of the application.
Disadvantages
- The IPC mechanism must remain unchanged.
- In case DBUS is used as IPC mechanism, either a dependency on the dbus client library is introduced or a version of the dbus client library is included in the static library. Currently, there has not been a 1.0 release of the dbus client library. Existing Linux releases may not contain dbus client libraries or may contain incompatible versions of dbus client libraries.
IPC Mechanism
For IPC either DBUS or a custom protocol can be used.
Advantages of DBUS
- A custom protocol would to a certain extent have to "reinvent" DBUS
- Widely in use already
Disadvantages of DBUS
- No 1.0 release yet.


