All,

Padraig has update the proposal (see attached) and
provided the SMF manifest.  We believe that these
address the issues raised.  I have also placed 
these in the case directory along with the overview
diagram.

Thanks,

John

-------------- next part --------------
A non-text attachment was scrubbed...
Name: avahi-bridge-dsd.xml
Type: text/xml
Size: 2559 bytes
Desc: not available
URL: 
<http://mail.opensolaris.org/pipermail/opensolaris-arc/attachments/20070907/d5a284e0/attachment.xml>
-------------- next part --------------
1. Introduction
   1.1. Project/Component Working Name:
        Avahi and libdaemon

   1.2. Name of Document Author/Supplier:
        Padraig O'Briain

   1.3. The name of your business unit:
        JDS Desktop Engineering, Open Source Software, OPG

   1.4. Email Aliases:
        1.4.1. Responsible Manager: 

               Leo Binchy <leo.binchy at sun.com>

        1.4.2. Responsible Engineer: 

               Padraig O'Briain <padraig.briain at sun.com>

        1.4.3. Marketing Manager:

                Jeff Mc Meekin <jeff.mcmeekin at sun.com>

        1.4.4. Interest List: 

                desktop-cteam at sun.com
                nwam-bonjour at sun.com
                bonjour-iteam at sun.com

2. Project Summary
   2.1. Project Description:

        The Multicast DNS (mDNS) and Service Discovery project
        introduces DNS server-less link-local IP address resolution
        for ad-hoc networks and discovery of devices and services.
        See PSARC/2005/562. That project is based on Apple's implementation,
        a.k.a Bonjour. 

        An alternative implementation is avahi, see www.avahi.org.

        Some GNOME components provide support for service registration
        and discovery using avahi.

        This project delivers the avahi client API. Instead of delivering
        the avahi daemon, which on linux and freebsd implements a mDNS
        stack, we will change the avahi daemon to make calls to the
        Bonjour API so that it will use the Bonjour server.

        Thus this project depends on PSARC/2005/562.
     
        libdaemon is a lightweight C library that eases the writing of
        UNIX daemons and is used by the avahi daemon.
        
4. Technical Description:
   4.1. Details:

        Avahi consists of several parts:

        libavahi-common: a library containing some functions used by avahi 
        clients and the avahi daemon itself.

        libavahi-core: A library implement service registration and
        discovery.

        libavahi-client: A minimal wrapper around the DBUS API to simplify 
        its usage. It hides the DBUS internals completely.

        libavahi-glib: An adaptor for connecting avahi-client or avahi-core 
        to a GLIB main loop.

        avahi-daemon: The avahi daemon makes use of libavahi-core to
        provide service registration and discovery to clients using the
        DBUS interface which is an IPC wrapper around the functions
        provided by avahi-core. We rename this to avahi-daemon-bridge-dsd
        so that it is clear that we are not delivering the standard avahi
        daemon.

!       We have changed avahi-daemon to implement its functionality by
!       making calls to Bonjour. We have done this rather than implement
!       Bonjour calls in avahi client to maintain as close to a pure Avahi 
!       environment as possible. If in the future a new client component 
!       uses the DBUS interface instead of the avahi client API we will be
!       able to ship that component.

        avahi-browse, avahi-discover, avahi-publish, avahi-resolve: Some
        command line utilities which use libavahi-client.

        See http://www.avahi.org/wiki/ArchitecturalOverview, which lists
        some other parts of avahi which we do not deliver.

        We make significant changes to avahi daemon and libavahi-core.

        Instead of implementing a mDNS/DNS-SD stack libavahi-core makes 
        calls to the DNS Service Discovery API provided by Bonjour to
        register and discover services.

        As the avahi daemon does not provide service registration and
        discovery itself those portions related to being a mDNS server
        are omitted.
        

        libdaemon is a lightweight C library that eases the writing of 
        UNIX daemons. It consists of the following parts:

        * A wrapper around fork() which does the correct daemonization 
        procedure of a process
        * A wrapper around syslog() for simpler and compatible log output 
        to Syslog or STDERR
        * An API for writing PID files
        * An API for serializing UNIX signals into a pipe for usage with 
        select() or poll()
        * An API for running subprocesses with STDOUT and STDERR redirected 
        to syslog.

        
   4.2. Bug/RFE Number(s):
        N/A.

   4.3. In Scope:

        The project team will integrate and support versions of Avahi 
        continually throughout its life within the Solaris OS. The project 
        team will mark the interfaces of Avahi as appropriate [detailed below]
        and work with other project teams to provide contracts of use, until 
        such a stage where the technology can be considered as 'Committed' 
        according to the interface taxonomy rules.

   4.4. Out of Scope:
        
        Sun does not expect to be involved in the development and direction
        of avahi or libdaemon. Where possible, we will ship 'as is', with the
        changes to call Bonjour.

        Any developer changes will be pushed upstream where appropriate.

   4.5. Interfaces:

        Exported Interfaces 

        SUNWlibdaemon                   Uncommitted     Package name for 
libdaemon
        
        Two packages SUNWlibdaemon and SUNWlibdaemon-devel are delivered.


        /usr/lib/libdaemon.so           Volatile        libdaemon C library


        /usr/lib/pkgconfig/libdaemon.pc                 pkgconfig file for 
                                        Volatile        libdaemon
                                        Volatile        libdaemon API
        /usr/include/libdaemon/daemon.h
        /usr/include/libdaemon/dexec.h
        /usr/include/libdaemon/dfork.h
        /usr/include/libdaemon/dlog.h
        /usr/include/libdaemon/dnoblock.h
        /usr/include/libdaemon/dpid.h
        /usr/include/libdaemon/dsignal.h


        SUNWavahi-bridge-dsd            Uncommitted      Package name for avahi.

        Three packages SUNWavahi-bridge-dsd, SUNWavahi-bridge-dsd-devel and 
        SUNWavahi-bridge-dsd-root are delivered.


        /etc/dbus-1/system.d/avahi-dbus.conf            Configuration file for
                                        Volatile        avahi DBUS messages.
!

        /var/run/avahi-daemon-bridge-dsd/pid Project Private PID file for avahi.

        svc:/system/avahi-bridge-dsd:default       
                                        Volatile        SMF service to start
                                                        avahi-daemon-bridge-dsd.

                                        Volatile        Avahi APIs.
        /usr/include/avahi-client/client.h
        /usr/include/avahi-client/lookup.h
        /usr/include/avahi-client/publish.h
        /usr/include/avahi-common/address.h
        /usr/include/avahi-common/address.h
        /usr/include/avahi-common/alternative.h
        /usr/include/avahi-common/cdecl.h
        /usr/include/avahi-common/defs.h
        /usr/include/avahi-common/domain.h
        /usr/include/avahi-common/error.h
        /usr/include/avahi-common/gccmacro.h
        /usr/include/avahi-common/llist.h
        /usr/include/avahi-common/malloc.h
        /usr/include/avahi-common/rlist.h
        /usr/include/avahi-common/simple-watch.h
        /usr/include/avahi-common/strlst.h
        /usr/include/avahi-common/thread-watch.h
        /usr/include/avahi-common/timeval.h
        /usr/include/avahi-common/watch.h
        /usr/include/avahi-core/core.h
        /usr/include/avahi-core/log.h
        /usr/include/avahi-core/lookup.h
        /usr/include/avahi-core/publish.h
        /usr/include/avahi-core/rr.h
        /usr/include/avahi-glib/glib-malloc.h
        /usr/include/avahi-glib/glib-watch.h

        /usr/lib/pkgconfig/avahi-client.pc              pkgconfig files for
        /usr/lib/pkgconfig/avahi-core.pc                avahi-core, avahi-client
        /usr/lib/pkgconfig/avahi-glib.pc                and avahi-glib bindings.
                                        Volatile        

        /usr/bin/avahi-browse           Volatile        Command line utilities
        /usr/bin/avahi-discover
        /usr/bin/bssh
        /usr/bin/bvnc (this is a link to /usr/bin/bssh) 
        /usr/share/avahi/interfaces/avahi-discover.glade
        /usr/share/applications/avahi-discover.desktop
        /usr/bin/avahi-publish
        /usr/bin/avahi-resolve 
        /usr/bin/avahi-set-host-name 

        /usr/sbin/avahi-daemon-bridge-dsd Volatile        Avahi server daemon.
        

      
                                        Volatile        Avahi libraries
        /usr/lib/libavahi-client.so.3.2.0
        /usr/lib/libavahi-common.so.3.4.2
        /usr/lib/libavahi-core.so.4.0.4
        /usr/lib/libavahi-glib.so.1.0.1

                                        Volatile        Avahi python bindings
        /usr/lib/python2.4/vendor-packages/avahi/ServiceTypeDatabase.py
        /usr/lib/python2.4/vendor-packages/avahi/SimpleGladeApp.py
        /usr/lib/python2.4/vendor-packages/avahi/SimpleGladeApp.pyc
        /usr/lib/python2.4/vendor-packages/avahi/__init__.py
        /usr/lib/python2.4/vendor-packages/avahi/__init__.pyc

                                        Volatile        Avahi DBUS Introspection
        /usr/share/avahi/introspection/AddressResolver.introspect
        /usr/share/avahi/introspection/DomainBrowser.introspect
        /usr/share/avahi/introspection/EntryGroup.introspect
        /usr/share/avahi/introspection/HostNameResolver.introspect
        /usr/share/avahi/introspection/RecordBrowser.introspect
        /usr/share/avahi/introspection/Server.introspect
        /usr/share/avahi/introspection/ServiceBrowser.introspect
        /usr/share/avahi/introspection/ServiceResolver.introspect
        /usr/share/avahi/introspection/ServiceTypeBrowser.introspect

                                        Volatile        Avahi Service Types 
database
        /usr/share/avahi/service-types
        /usr/share/avahi/service-types.DB.Dir
        /usr/share/avahi/service-types.db.pag

        /usr/share/avahi/avahi-service.dtd

                                        Volatile        Man pages
        /usr/share/man/man1/avahi-browse.1 
        /usr/share/man/man1/avahi-daemon-bridge-dsd.1
        /usr/share/man/man1/avahi-discover.1
        /usr/share/man/man1/avahi-publish.1
        /usr/share/man/man1/avahi-resolve.1
        /usr/share/man/man1/avahi-set-host-name.1
        /usr/share/man/man1/bssh
        /usr/share/man/man1/bvnc (this is a link to /usr/share/man/man1/bssh)
!

        Imported Interfaces -

        libxml                          Committed       PSARC 2001/175
        Glib                            Committed       LSARC 2006/462
        pkg-config                      Volatile        LSARC 2002/747
        Python                          Volatile        PSARC 2005/532
        DBUS                            Volatile        LSARC 2006/368
        libdns-sd (Bonjour)             Committed       PSARC 2005/562

   4.6. Doc Impact:

        Documentation will be provided as is standard with the Solaris OS - 
        both in terms of developer references, man pages, and command line help.

   4.7. Admin/Config Impact:

   4.8. HA Impact:
        None.

   4.9. I18N/L10N Impact:
        None.

   4.10. Packaging & Delivery:

        This project is built, packaged and delivered as part of the current JDS
        desktop consolidation.

   4.11. Security Impact:

        The process avahi-daemon-bridge-dsd will run as user daemon.

        No other known security impact.

   4.12. Dependencies:
 
        LSARC 2006/462 - GNOME 2.16
        LSARC 2002/747 - GNOME 2.0 pkg-config
        PSARC 2001/175 - libxml
        LSARC 2006/368 - D-BUS Message Bus System

5. Reference Documents:

        Avahi Community Website
        http://www.avahi.org

        Exisitng ARC cases
        LSARC 2006/462 - GNOME 2.16
        PSARC 2005/562 - Multicast DNS and Service Discovery

Reply via email to