2007-02-22 Paul Jakma <paul.jakma@sun.com>

	* quagga.{xml,init}.in: Add licence boilerplate to ensure
	  licence terms are clear.

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

	* quagga.xml.in: oops, ipvX-routing services don't exist yet in
	  any Solaris builds.

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

	* prototype.smf.in: Oops, continue to install manifest to
	  var/svc/manifest/network for now.

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.
