2006-03-13 Alan Maguire <alan.maguire@sun.com>

	* quagga.xml.in: Change the naming of services and instances.
	  network/routing/quagga:<daemon> may be neat and tidy, but
	  it's at odds with SMF convention elsewhere that demands
	  the service be named for what it does, and the instance name
	  describe the implementation (e.g. network/smtp:sendmail).
	  Remove call to method script for 'stop', SMF can do that
	  itself.
	  Enumerate the privileges required in the SMF manifest, with the
	  method_credential element.
	  Dont try provide seperate properties for each argument, it's
	  just tedious, particularly when they can no longer be
	  inherited from a common quagga service - use a single
	  "daemon-args" property, defaulting to -P 0.
	  Specify authorisation for the 'routeadm' utility and for
	  RBAC.

2006-03-13 Paul Jakma <paul.jakma@sun.com>

	* quagga.init.in: Update to match SMF manifest changes.
	  If run from an SMF environment, assume method is start.
	  Offer a more tradition init script interface for pre-SMF.
	  Enable zebra for the link-state daemons.
	  Don't allow daemons to start in non-global zones, except
	  for bgpd - it doesn't have to care about underlying
	  networking much.
	  Remove all the svcprop calls, SMF or the user will supply any
	  arguments on the command-line.
	* depend.smf.in: Add dependency on SUNWroute, which provides
	  routeadm, which provides /var/svc/manifest/network/routing
	* prototype.smf.in: Install manifest to 
	  var/svc/manifest/network/routing.

2006-02-19 Paul Jakma <paul.jakma@sun.com>

	* depend.*: renamed to depend.*.in.
	* depend.*.in: Add version dependency.
	* Makefile.am: Generate depend.* from depend.*.in
	  Distribute the depend.*.in files rather than the depend.*
	  files.
	* quagga.init.in: Enable zebra if one of the link-state
	  daemons is started.
	  Restart method is not required - SMF handles that.
	* quagga.xml.in: Remove restart method details.

2005-11-04 Paul Jakma <paul.jakma@sun.com>

	* prototype.dev.in: lib/md5-gnu.h is now lib/md5.h

2005-08-16 Paul Jakma <paul.jakma@sun.com>

	* README.txt: point to the opensolaris.org sources for the SMF 
	  manifest class scripts. Make step 3 slightly more explicit about
	  what 'this directory' is.
	  
2005-06-15 Paul Jakma <paul.jakma@sun.com>

	* quagga.xml.in: Pass the FMRI to the method, removing need for
	  daemon_name property and deducing the FMRI.
	  remove the empty config_file and pid_file definitions, they just
	  make things difficult in the method script, cause it then has to
	  deal with svcprop returning "" for defined empty properties.
	  Remove daemon_name everywhere.
	* quagga.init.in: Take the FMRI as an argument
	  Remove deducing the FMRI from the defunct daemon_name property.
	  Use svcprop -q to test for presence of a property first.
	  Default vty_port to 0 and vty_addr to 127.1 if equivalent
	  SMF properties are not set.
	  Deduce the pid_file, we can infer it from @quagga_statedir@ I
	  think, it's probably not useful to allow it to be configurable
	  as a property anyway.
	  /var/run/ is on tmpfs on Solaris, so we probably will need
	  to create @quagga_statedir@ first run after boot.
	  Use @sbindir@, not /usr/local/sbin.
	* README.txt: updated to match changed SMF manifest and
	  its changed service, instance and property group names.
	  
2005-06-02 Paul Jakma <paul.jakma@sun.com>

	* quagga.xml.in: Fix mistake in bgpd definition. Change dependency
	  on zebra to optional. Remove the duplicated stability statements.
	* quagga.init.in: svcprop should check PACKAGE_TARNAME, not _NAME.
	  no need to check for config file either, there's already a
	  dependency in the manifest.

2005-05-13 Paul Jakma <paul.jakma@sun.com>

	* quagga.xml.in: Sigh, XML child elements are order-sensitive.
	* prototype.doc.in: info/dir doesnt get created always.. comment
	  out for now, likely needs to be done with an install method.
	* prototype.daemons.in: Move the Solaris 10 SMF specific stuff to
	  a seperate package.
	* depend.smf: dependencies for smf package
	* pkginfo.smf.tmpl.in: pkginfo for smf
	* prototype.smf.in: prototype for smf
	* Makefile.am: Add smf to pkg_names
	  
2005-04-26 Paul Jakma <paul.jakma@sun.com>

	* quagga.xml.in: New, better, single integrated manifest for all
	  the services, courtesy of alan.maguire@sun.com.
	* {{ospf,ospf6,rip,ripng,bgp}d,zebra}.xml.in: removed due to
	  previous
	* quagga.init.in: Use the package tarname for properties, use
	  the correct daemon name variable.
	* Makefile.am: Updated to match single manifest
	* prototype.daemons.in: ditto

2005-04-21 Paul Jakma <paul.jakma@sun.com>

	* Makefile.am: pkginfo.%.tmpl is a generated file, srcdir prefix
	  is not appropriate.

2005-04-13 Paul Jakma <paul.jakma@sun.com>

	* Makefile.am: {i,r}.manifest are (or will be) system provided files
	  and not in CVS, hence dont depend on them or distribute them.

2005-04-11 Paul Jakma <paul.jakma@sun.com>

	* (all) Initial check-in of files for building S10 packages
	* protototype.*.in: package prototype files for SysV packages
	* *.xml.in: SMF manifests for Quagga daemons
	* pkginfo.*.tmpl.in: daemon specific pkginfo, refererenced
	  by prototype files.
	* pkginfo.tmpl.in: Quagga common pkginfo bits
	* quagga.init.in: SMF method script
	* Makefile.am: Automake file for building packages
	* depend.*: Solaris 10 dependencies for packages, referenced by
	  prototype files.
	* .cvsignore: Add built files
	* README.txt: new file, package creation, install, usage notes.