Libunique for OpenSolaris [LSARC/2009/142 FastTrack timeout 03/10/2009]
Margot Miller
margot.miller at sun.com
Mon Mar 2 16:30:04 PST 2009
The UNIQUE_BACKEND environment variable should be
added to exported interface table.
Please add the man page to the materials. And I assume
that the UNIQUE_BACKEND is documented in the man page?
Thanks
Margot
Shi-Ying Irene Huang wrote:
> Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
> 1.1. Project/Component Working Name:
> Libunique for OpenSolaris
> 1.2. Name of Document Author/Supplier:
> Author: Halton Huo
> 1.3 Date of This Document:
> 01 March, 2009
> 4. Technical Description
>
> 1. Introduction
> 1.1. Project/Component Working Name:
> LibUnique
>
> 1.2. Name of Document Author/Supplier:
> Halton Huo
>
> 1.3. Date of This Document:
> 02/23/09
>
> 1.4. Name of Major Document Customer(s)/Consumer(s):
>
> 1.4.1. The PAC or CPT you expect to review your project:
> Solaris PAC
>
> 1.4.2. The ARC(s) you expect to review your project:
> LSARC
>
> 1.4.3. The Director/VP who is "Sponsoring" this project:
> Robert O'Dea
>
> 1.4.4. The name of your business unit:
> Software - OPG
>
> 1.5. Email Aliases:
>
> 1.5.1. Responsible Manager:
> harry.lu at sun.com
>
> 1.5.2. Responsible Engineer:
> halton.huo at sun.com
>
> 1.5.3. Marketing Manager:
> glynn.foster at sun.com
>
> 1.5.4. Interest List:
> desktop-discuss at opensolaris.org
>
> 2. Project Summary
> 2.1. Project Description:
>
> LibUnique is a library for writing a single instance application.
> If you launch a single instance application twice, the second instance
> will exit quietly or will send a message to the running instance.
>
> LibUnique makes it easy to write these kind of applications, by
> providing a base class, taking care of all the IPC machinery needed
> to send messages to a running instance, and and also handling startup
> notification.
>
> LibUnique aims to obsolete very similar code (for example, the
> BaconMessageConnection interface) that has been copied into many
> projects and replace it with standard LibUnique library interfaces.
>
> 4. Technical Description:
> 4.1. Details:
>
> LibUnique offers the following features:
> * simple API, easy to subclass
> * custom commands
> * bidirectional communication channel
> * signal based
> * commodity API for sending raw data, plain text and URI lists
> * multiple backends (changeable at runtime)
>
> LibUnique supports two IPC backends: bacon and dbus. The default
> backend is dbus. User can override the default backend by setting
> the UNIQUE_BACKEND environment variable with the name of the
> desired backend.
>
> When dbus is used, the messages are transmitted through private
> channel:
> connection=DBUS_SESSION_BUS
> name=org.mydomain.YourApplication
> path=/Factory
> interface=org.gtk.UniqueApp
>
> When bacon is used, libUnique uses PF_UNIX family socket to allow
> communications between processes on the same machine. The socket file
> is created as
> /var/tmp/unique/org.gnome.YourApplication.token.process-id.
>
> In this example, the string "org.gnome.YourApplication" is passed
> to applications which use libunique to create the UniqueApp instance.
>
> This string must be unique for different applications. Otherwise, the
> second application can not be started. Assume nautilus and
> vino-preferences use same string "Oh.God". If nautilus is running
> (it should be always running with session), unique_app_is_running()
> returns TRUE, it will cause vino-preferences will not be started.
>
> 4.2. Interfaces:
>
> Exported Interfaces Classification Comments
> ----------------------------------- -------------- -----------
> SUNWlibunique Uncommitted Package name
> SUNWlibunique-devel Uncommitted Package name
> /usr/lib/pkgconfig/unique-1.0.pc Uncommitted pkg-config file
> /usr/lib/libunique-1.0.so.0 Volatile C library
> /usr/include/unique-1.0/unique Volatile header files
> /usr/share/gtk-doc/html/unique Volatile gtk-doc files
>
> Imported Interfaces Classification Comments
> ----------------------- --------------- ----------
> D-Bus & dbus-glib Volatile LSARC 2006/368
> GNOME Committed Platform Libraries Committed LSARC 2007/520
>
> 4.3. Doc Impact:
> Man page for libunique-1.0.3 is added
>
> 4.7. Admin/Config Impact:
> None.
>
> 4.8. HA Impact:
> None.
>
> 4.9. I18N/L10N Impact:
> The JDS team and the G11N team are working together to evaluate and
> provide I18N/L10N support.
>
> 4.10. Packaging & Delivery:
> Adds new packages:
> SUNWlibunique (base package) - base package for libraries
> SUNWlibunique-devel (development package) - development package for
> header and documents
> Packages will only go into SUNWCall and SUNWCXall clusters.
>
> 4.11. Security Impact:
> When dbus is used as backend, the D-Bus communication is only allowed
> by processes started by the same user, so other users can not
> interact via D-Bus.
>
> When bacon is used as backend, the PF_UNIX socket files under
> /var/tmp/unique/ is owned by user:other with 700 permissions to
> prevent tampering.
>
> 4.12. Dependencies:
> LSARC 2006/368 D-Bus & dbus-glib
>
> 5. Reference Documents:
>
> [1] Related ARC Cases:
> LSARC 2006/368: D-Bus & dbus-glib
> LSARC 2007/520: GNOME Committed Platform Libraries
>
> [2] Project homepage:
> http://live.gnome.org/LibUnique
>
>
> 6. Resources and Schedule
> 6.4. Steering Committee requested information
> 6.4.1. Consolidation C-team Name:
> Desktop
> 6.5. ARC review type: FastTrack
> 6.6. ARC Exposure: open
>
>
More information about the opensolaris-arc
mailing list