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.
	  
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.