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.