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: no idea what this is for...
diff --git a/solaris/.cvsignore b/solaris/.cvsignore
new file mode 100644
index 0000000..06ace82
--- /dev/null
+++ b/solaris/.cvsignore
@@ -0,0 +1,4 @@
+Makefile
+Makefile.in
+?.manifest
+
diff --git a/solaris/ChangeLog b/solaris/ChangeLog
new file mode 100644
index 0000000..bf91053
--- /dev/null
+++ b/solaris/ChangeLog
@@ -0,0 +1,13 @@
+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: no idea what this is for...
diff --git a/solaris/Makefile.am b/solaris/Makefile.am
new file mode 100644
index 0000000..d0567fa
--- /dev/null
+++ b/solaris/Makefile.am
@@ -0,0 +1,120 @@
+# Solaris packages automake file
+# $Id: Makefile.am,v 1.1 2005/04/11 07:05:21 paul Exp $
+
+.PHONY: packages
+
+# the names of the various subpackages, and some convenient
+# derived variables.
+pkg_names = daemons dev doc libs
+pkg_quagga_daemons = zebra bgpd ospfd ospf6d ripd ripngd
+pkg_name_rev = @PACKAGE_VERSION@-@CONFDATE@-@target_os@-@target_cpu@
+pkg_depends := $(pkg_names:%=depend.%)
+pkg_packages := $(pkg_names:%=@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg)
+pkg_pkginfos := $(pkg_names:%=pkginfo.%.full)
+pkg_prototypes := $(pkg_names:%=prototype.%)
+pkg_manifests := $(pkg_quagga_daemons:%=%.xml)
+
+# pkgmk variable substitutions wont grok ${variable} in prototype
+# file, so we cant let autoconf generate the file sadly
+# wish automake would just provide a template for this
+edit := $(SED) \
+ -e 's,@prefix\@,$(prefix),g' \
+ -e 's,@exec_prefix,$(exec_prefix),g' \
+ -e 's,@bindir\@,$(bindir),g' \
+ -e 's,@sbindir\@,$(sbindir),g' \
+ -e 's,@libexecdir\@,$(libexecdir),g' \
+ -e 's,@datadir\@,$(datadir),g' \
+ -e 's,@sysconfdir\@,$(sysconfdir),g' \
+ -e 's,@sharedstatedir\@,$(sharedstatedir),g' \
+ -e 's,@localstatedir\@,$(localstatedir),g' \
+ -e 's,@libdir\@,$(libdir),g' \
+ -e 's,@includedir\@,$(includedir),g' \
+ -e 's,@infodir\@,$(infodir),g' \
+ -e 's,@mandir\@,$(mandir),g' \
+ -e 's,@enable_user\@,$(enable_user),g' \
+ -e 's,@enable_group\@,$(enable_group),g' \
+ -e 's,@enable_vty_group\@,$(enable_vty_group),g' \
+ -e 's,@quagga_statedir\@,$(quagga_statedir),g' \
+ -e 's,[@]PACKAGE_NAME[@],@PACKAGE_NAME@,g' \
+ -e 's,[@]PACKAGE_TARNAME[@],@PACKAGE_TARNAME@,g' \
+ -e 's,[@]PACKAGE_VERSION[@],@PACKAGE_VERSION@,g' \
+ -e 's,[@]PACKAGE_BUGREPORT[@],@PACKAGE_BUGREPORT@,g' \
+ -e 's,[@]CONFDATE[@],@CONFDATE@,g' \
+ -e 's,[@]target_cpu[@],$(target_cpu),g' \
+ -e 's,[@]target_host[@],$(target_host),g' \
+ -e 's,[@]target_os[@],$(target_os),g'
+
+# common options for pkgmk
+pkg_make_vars := exec_prefix=@exec_prefix@ prefix=@prefix@ \
+ builddir=@builddir@ srcdir=@srcdir@ \
+ top_builddir=@top_builddir@ top_srcdir=@top_srcdir@ \
+ abs_builddir=@abs_builddir@ abs_srcdir=@abs_srcdir@ \
+ abs_top_builddir=@abs_top_builddir@ abs_top_srcdir=@abs_top_srcdir@
+
+# pkgmk: write the package to spool in build dir, to avoid root dependencies
+pkg_make = pkgmk -o -d @abs_builddir@ \
+ -f $< DESTDIR="$(DESTDIR)/" $(pkg_make_vars)
+
+# pkgtrans: write a pkg file stream, shame we cant pipe directly to it from
+# pkgmk..
+pkg_trans = pkgtrans -s @abs_builddir@ "@abs_builddir@/$@"
+
+# pkgmk can only cope with a single pkginfo, cant 'stack' various
+# pkginfo template files and a package specific pkginfo file in the prototype
+# Create the package specific template here, and create the full pkginfo
+# by cating this and the common pkginfo.tmpl together.
+pkginfo.tmpl: $(srcdir)/pkginfo.tmpl.in Makefile
+ rm -f $@
+ $(edit) $< > $@
+
+pkginfo.%.tmpl: $(srcdir)/pkginfo.%.tmpl.in Makefile
+ rm -f $@
+ $(edit) $< > $@
+
+pkginfo.%.full: $(srcdir)/pkginfo.%.tmpl pkginfo.tmpl Makefile
+ cat pkginfo.tmpl pkginfo.$*.tmpl > $@
+
+# use 'edit' above to transform prototype.in to pkgmk acceptable prototype
+prototype.%: $(srcdir)/prototype.%.in Makefile
+ rm -f $@
+ $(edit) $< > $@
+
+# use edit to construct the SMF manifest files
+%.xml: $(srcdir)/%.xml.in Makefile
+ rm -f $@
+ $(edit) $< > $@
+
+# method file (bit like init script)
+quagga.init: $(srcdir)/quagga.init.in Makefile
+ rm -f $@
+ $(edit) $< > $@
+
+# construct the pkg
+@PACKAGE_TARNAME@-%-$(pkg_name_rev).pkg: prototype.% \
+ quagga.init pkginfo.%.full i.manifest r.manifest
+ ($(pkg_make) && \
+ $(pkg_trans) "QUAGGA$*")
+
+
+%.pkg.gz : %.pkg
+ (gzip -c $< > $@)
+
+# pkginfo.package and prototype.package are all built sources
+#BUILT_SOURCES = pkginfo.daemons pkginfo.dev pkginfo.doc pkginfo.libs \
+# prototype.daemons prototype.dev prototype.doc prototype.libs
+BUILT_SOURCES = $(pkg_pkginfos) pkginfo.tmpl $(pkg_prototypes) \
+ $(pkg_manifests) quagga.init
+
+CLEANFILES := $(BUILT_SOURCES) $(pkg_packages)
+
+EXTRA_DIST := $(pkg_depends) $(pkg_manifests:%=%.in) $(pkg_prototypes:%=%.in) \
+ $(pkg_names:%=pkginfo.%.tmpl.in) $(srcdir)/pkginfo.tmpl.in \
+ quagga.init.in options.xml r.manifest i.manifest
+
+pkg-root-install:
+ (cd $(top_builddir) && \
+ $(MAKE) DESTDIR=$(abs_builddir)/quagga-root install)
+
+packages: $(pkg_packages)
+
+#nodist_pkgdata_DATA = $(pkg_packages)
diff --git a/solaris/bgpd.xml.in b/solaris/bgpd.xml.in
new file mode 100644
index 0000000..668e633
--- /dev/null
+++ b/solaris/bgpd.xml.in
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ $Id: bgpd.xml.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+-->
+
+<service_bundle type='manifest' name='QUAGGAdaemons:bgpd'>
+
+<service
+ name='network/bgp'
+ type='service'
+ version='1'>
+
+ <create_default_instance enabled='false' />
+
+ <single_instance />
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+
+ <dependency name='zebra'
+ grouping='require_all'
+ restart_on='restart'
+ type='service'>
+ <service_fmri value='svc:/network/zebra' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/bgpd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga start svc:/network/bgp'
+ timeout_seconds='60'/>
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/lib/svc/method/quagga stop svc:/network/bgp'
+ timeout_seconds='60' />
+
+ <exec_method
+ type='method'
+ name='restart'
+ exec='/lib/svc/method/quagga restart svc:/network/bgp'
+ timeout_seconds='60' />
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <property_group name='bgpd' type='application'>
+ <stability value='Evolving' />
+ <propval name='retain_routes' type='boolean' value='false'/>
+ <propval name='no_kernel' type='boolean' value='false'/>
+
+ </property_group>
+ <property_group name='@PACKAGE_NAME@' type='application'>
+ <!-- Options common to @PACKAGE_NAME@ daemons -->
+ <!-- cant make XInclude validate with svccfg -->
+ <propval name='daemon_name' type='astring'
+ value='bgpd' />
+ <propval name='config_file' type='astring'
+ value='@sysconfdir@/bgpd.conf' />
+ <propval name='pid_file' type='astring'
+ value='@localstatedir@/bgpd.pid' />
+ <propval name='vty_addr' type='astring' value='127.1' />
+ <propval name='vty_port' type='integer' value='0'/>
+ <propval name='user' type='astring' value='@enable_user@' />
+ <propval name='group' type='astring' value='@enable_group@' />
+ </property_group>
+
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ @PACKAGE_NAME@: bgpd, BGP routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='bgpd' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
+
+</service>
+
+</service_bundle>
diff --git a/solaris/depend.daemons b/solaris/depend.daemons
new file mode 100644
index 0000000..571d2e1
--- /dev/null
+++ b/solaris/depend.daemons
@@ -0,0 +1,7 @@
+P QUAGGAlibs Quagga common runtime libraries
+P SUNWcsu Core Solaris, (Usr)
+P SUNWcsr Core Solaris Libraries (Root)
+P SUNWcnetr Core Solaris Network Infrastructure (Root)
+I SUNWzebrar
+I SUNWzebrau
+I CSWzebra
diff --git a/solaris/depend.dev b/solaris/depend.dev
new file mode 100644
index 0000000..7d88070
--- /dev/null
+++ b/solaris/depend.dev
@@ -0,0 +1 @@
+P QUAGGAlibs Quagga common runtime libraries
diff --git a/solaris/depend.doc b/solaris/depend.doc
new file mode 100644
index 0000000..b337929
--- /dev/null
+++ b/solaris/depend.doc
@@ -0,0 +1 @@
+P SUNWdoc Documentation Tools
diff --git a/solaris/depend.libs b/solaris/depend.libs
new file mode 100644
index 0000000..4185977
--- /dev/null
+++ b/solaris/depend.libs
@@ -0,0 +1,5 @@
+P SUNWcslr Core Solaris Libraries (Root)
+P SUNWcsl Core Solaris, (Shared Libs)
+P SUNWlibmsr Math & Microtasking Libraries (Root)
+R QUAGGAdaemons Quagga daemons
+R QUAGGAdev
diff --git a/solaris/ospf6d.xml.in b/solaris/ospf6d.xml.in
new file mode 100644
index 0000000..d09c6d2
--- /dev/null
+++ b/solaris/ospf6d.xml.in
@@ -0,0 +1,108 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ $Id: ospf6d.xml.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+-->
+
+<service_bundle type='manifest' name='QUAGGAdaemons:ospf6d'>
+
+<service
+ name='network/ospf6'
+ type='service'
+ version='1'>
+
+ <create_default_instance enabled='false' />
+
+ <single_instance />
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+
+ <dependency name='zebra'
+ grouping='require_all'
+ restart_on='restart'
+ type='service'>
+ <service_fmri value='svc:/network/zebra' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ospf6d.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga start svc:/network/ospf6'
+ timeout_seconds='60'/>
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/lib/svc/method/quagga stop svc:/network/ospf6'
+ timeout_seconds='60' />
+
+ <exec_method
+ type='method'
+ name='restart'
+ exec='/lib/svc/method/quagga restart svc:/network/ospf6'
+ timeout_seconds='60' />
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <property_group name='ospf6d' type='application'>
+ <stability value='Evolving' />
+ </property_group>
+ <property_group name='@PACKAGE_NAME@' type='application'>
+ <!-- Options common to @PACKAGE_NAME@ daemons -->
+ <!-- cant make XInclude validate with svccfg -->
+ <propval name='daemon_name' type='astring'
+ value='ospf6d' />
+ <propval name='config_file' type='astring'
+ value='@sysconfdir@/ospf6d.conf' />
+ <propval name='pid_file' type='astring'
+ value='@localstatedir@/ospf6d.pid' />
+ <propval name='vty_addr' type='astring' value='127.1' />
+ <propval name='vty_port' type='integer' value='0'/>
+ <propval name='user' type='astring' value='@enable_user@' />
+ <propval name='group' type='astring' value='@enable_group@' />
+ </property_group>
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ @PACKAGE_NAME@: ospf6d, OSPFv3 IPv6 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ospf6d' section='1M' manpath='@mandir@' />
+ </documentation>
+ </template>
+
+</service>
+
+</service_bundle>
diff --git a/solaris/ospfd.xml.in b/solaris/ospfd.xml.in
new file mode 100644
index 0000000..d4dfd7f
--- /dev/null
+++ b/solaris/ospfd.xml.in
@@ -0,0 +1,114 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ $Id: ospfd.xml.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+-->
+
+<service_bundle type='manifest' name='QUAGGAdaemons:ospfd'>
+
+<service
+ name='network/ospf'
+ type='service'
+ version='1'>
+
+ <create_default_instance enabled='false' />
+
+ <single_instance />
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+
+ <dependency name='zebra'
+ grouping='require_all'
+ restart_on='restart'
+ type='service'>
+ <service_fmri value='svc:/network/zebra' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ospfd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga start svc:/network/ospf'
+ timeout_seconds='60'/>
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/lib/svc/method/quagga stop svc:/network/ospf'
+ timeout_seconds='60' />
+
+ <exec_method
+ type='method'
+ name='restart'
+ exec='/lib/svc/method/quagga restart svc:/network/ospf'
+ timeout_seconds='60' />
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <property_group name='ospfd' type='application'>
+ <stability value='Evolving' />
+ <propval name='apiserver' type='boolean' value='false'/>
+ </property_group>
+ <property_group name='@PACKAGE_NAME@' type='application'>
+ <stability value='Evolving' />
+ <!-- Options common to @PACKAGE_NAME@ daemons -->
+ <!-- cant make XInclude validate with svccfg -->
+ <propval name='daemon_name' type='astring' value='ospfd'/>
+ <propval name='config_file' type='astring'
+ value='@sysconfdir@/ospfd.conf' />
+ <propval name='pid_file' type='astring'
+ value='@localstatedir@/ospfd.pid' />
+ <propval name='vty_addr' type='astring' value='127.1' />
+ <propval name='vty_port' type='integer' value='0'/>
+ <propval name='user' type='astring' value='@enable_user@' />
+ <propval name='group' type='astring' value='@enable_group@' />
+
+ <!--
+ <xi:include href='file:/var/svc/profile/@PACKAGE_TARNAME@_options.xml' />
+ -->
+ </property_group>
+
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ @PACKAGE_NAME@: ospfd, OSPFv2 IPv4 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ospfd' section='1M' manpath='@mandir@' />
+ </documentation>
+ </template>
+
+</service>
+
+</service_bundle>
diff --git a/solaris/pkginfo.daemons.tmpl.in b/solaris/pkginfo.daemons.tmpl.in
new file mode 100644
index 0000000..cab0e3c
--- /dev/null
+++ b/solaris/pkginfo.daemons.tmpl.in
@@ -0,0 +1,2 @@
+PKG="QUAGGAdaemons"
+NAME="@PACKAGE_NAME@ - @PACKAGE_NAME@ daemons"
diff --git a/solaris/pkginfo.dev.tmpl.in b/solaris/pkginfo.dev.tmpl.in
new file mode 100644
index 0000000..9c5d23e
--- /dev/null
+++ b/solaris/pkginfo.dev.tmpl.in
@@ -0,0 +1,3 @@
+PKG=QUAGGAdev
+NAME="@PACKAGE_NAME@ - @PACKAGE_NAME@ development files"
+
diff --git a/solaris/pkginfo.doc.tmpl.in b/solaris/pkginfo.doc.tmpl.in
new file mode 100644
index 0000000..809ec77
--- /dev/null
+++ b/solaris/pkginfo.doc.tmpl.in
@@ -0,0 +1,2 @@
+PKG=QUAGGAdoc
+NAME="@PACKAGE_NAME@ - @PACKAGE_NAME@ documentation"
diff --git a/solaris/pkginfo.libs.tmpl.in b/solaris/pkginfo.libs.tmpl.in
new file mode 100644
index 0000000..42adc6e
--- /dev/null
+++ b/solaris/pkginfo.libs.tmpl.in
@@ -0,0 +1,2 @@
+PKG=QUAGGAlibs
+NAME="@PACKAGE_NAME@ - @PACKAGE_NAME@ common runtime libraries"
diff --git a/solaris/pkginfo.tmpl.in b/solaris/pkginfo.tmpl.in
new file mode 100644
index 0000000..2dd27fd
--- /dev/null
+++ b/solaris/pkginfo.tmpl.in
@@ -0,0 +1,10 @@
+ARCH="@target_cpu@"
+CATEGORY="system"
+VERSION="@PACKAGE_VERSION@,REV=@CONFDATE@"
+VENDOR="http://www.quagga.net/"
+HOTLINE="@PACKAGE_BUGREPORT@"
+EMAIL=paul@quagga.net
+DESC="@PACKAGE_NAME@ Routing Protocols"
+MAXINST=1
+CLASSES="none preserve renamenew manifest"
+BASEDIR=/
diff --git a/solaris/prototype.daemons.in b/solaris/prototype.daemons.in
new file mode 100644
index 0000000..bf87992
--- /dev/null
+++ b/solaris/prototype.daemons.in
@@ -0,0 +1,30 @@
+i pkginfo=$abs_builddir/pkginfo.daemons.full
+i depend=$abs_builddir/depend.daemons
+i copying=$abs_top_srcdir/COPYING
+i i.manifest
+i r.manifest
+d none @sbindir@=$DESTDIR/@sbindir@ 0755 root bin
+f none @sbindir@/zebra=$DESTDIR/@sbindir@/zebra 0755 root bin
+f none @sbindir@/bgpd=$DESTDIR/@sbindir@/bgpd 0755 root bin
+f none @sbindir@/ripd=$DESTDIR/@sbindir@/ripd 0755 root bin
+f none @sbindir@/ripngd=$DESTDIR/@sbindir@/ripngd 0755 root bin
+f none @sbindir@/ospfd=$DESTDIR/@sbindir@/ospfd 0755 root bin
+f none @sbindir@/ospf6d=$DESTDIR/@sbindir@/ospf6d 0755 root bin
+f none @sbindir@/watchquagga=$DESTDIR/@sbindir@/watchquagga 0755 root bin
+d none @sysconfdir@=$DESTDIR/@sysconfdir@ 0711 @enable_user@ @enable_group@
+f none @sysconfdir@/zebra.conf.sample=$DESTDIR/@sysconfdir@/zebra.conf.sample 0644 root bin
+f none @sysconfdir@/bgpd.conf.sample=$DESTDIR/@sysconfdir@/bgpd.conf.sample 0644 root bin
+f none @sysconfdir@/bgpd.conf.sample2=$DESTDIR/@sysconfdir@/bgpd.conf.sample2 0644 root bin
+f none @sysconfdir@/ripd.conf.sample=$DESTDIR/@sysconfdir@/ripd.conf.sample 0644 root bin
+f none @sysconfdir@/ripngd.conf.sample=$DESTDIR/@sysconfdir@/ripngd.conf.sample 0644 root bin
+f none @sysconfdir@/ospfd.conf.sample=$DESTDIR/@sysconfdir@/ospfd.conf.sample 0644 root bin
+f none @sysconfdir@/ospf6d.conf.sample=$DESTDIR/@sysconfdir@/ospf6d.conf.sample 0644 root bin
+d none @quagga_statedir@=$DESTDIR/@quagga_statedir@ 0711 @enable_user@ @enable_group@
+f manifest var/svc/manifest/network/zebra.xml 0444 root bin
+f manifest var/svc/manifest/network/bgpd.xml 0444 root bin
+f manifest var/svc/manifest/network/ospfd.xml 0444 root bin
+f manifest var/svc/manifest/network/ospf6d.xml 0444 root bin
+f manifest var/svc/manifest/network/ripd.xml 0444 root bin
+f manifest var/svc/manifest/network/ripngd.xml 0444 root bin
+#f none var/svc/profile/@PACKAGE_TARNAME@_options.xml=$abs_builddir/options.xml 0755 root sys
+f none lib/svc/method/quagga=$abs_builddir/quagga.init 0755 root bin
diff --git a/solaris/prototype.dev.in b/solaris/prototype.dev.in
new file mode 100644
index 0000000..2d3b752
--- /dev/null
+++ b/solaris/prototype.dev.in
@@ -0,0 +1,57 @@
+i pkginfo=$abs_builddir/pkginfo.dev.full
+i depend=$abs_builddir/depend.dev
+i copying=$abs_top_srcdir/COPYING
+f none @libdir@/libzebra.la=$DESTDIR/@libdir@/libzebra.la 0755 root bin
+f none @libdir@/libzebra.a=$DESTDIR/@libdir@/libzebra.a 0644 root bin
+f none @libdir@/libospf.la=$DESTDIR/@libdir@/libospf.la 0755 root bin
+f none @libdir@/libospf.a=$DESTDIR/@libdir@/libospf.a 0644 root bin
+f none @libdir@/libospfapiclient.la=$DESTDIR/@libdir@/libospfapiclient.la 0755 root bin
+f none @libdir@/libospfapiclient.a=$DESTDIR/@libdir@/libospfapiclient.a 0644 root bin
+d none @includedir@=$DESTDIR/@includedir@ 0755 root bin
+d none @includedir@/quagga=$DESTDIR/@includedir@/quagga 0755 root bin
+d none @includedir@/quagga/ospfd=$DESTDIR/@includedir@/quagga/ospfd 0755 root bin
+f none @includedir@/quagga/ospfd/ospf_api.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_api.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_asbr.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_asbr.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_dump.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_dump.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_lsa.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_lsa.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_lsdb.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_lsdb.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_nsm.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_nsm.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_ism.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_ism.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospf_opaque.h=$DESTDIR/@includedir@/quagga/ospfd/ospf_opaque.h 0644 root bin
+f none @includedir@/quagga/ospfd/ospfd.h=$DESTDIR/@includedir@/quagga/ospfd/ospfd.h 0644 root bin
+f none @includedir@/quagga/buffer.h=$DESTDIR/@includedir@/quagga/buffer.h 0644 root bin
+f none @includedir@/quagga/command.h=$DESTDIR/@includedir@/quagga/command.h 0644 root bin
+f none @includedir@/quagga/filter.h=$DESTDIR/@includedir@/quagga/filter.h 0644 root bin
+f none @includedir@/quagga/getopt.h=$DESTDIR/@includedir@/quagga/getopt.h 0644 root bin
+f none @includedir@/quagga/hash.h=$DESTDIR/@includedir@/quagga/hash.h 0644 root bin
+f none @includedir@/quagga/if.h=$DESTDIR/@includedir@/quagga/if.h 0644 root bin
+f none @includedir@/quagga/linklist.h=$DESTDIR/@includedir@/quagga/linklist.h 0644 root bin
+f none @includedir@/quagga/log.h=$DESTDIR/@includedir@/quagga/log.h 0644 root bin
+f none @includedir@/quagga/memory.h=$DESTDIR/@includedir@/quagga/memory.h 0644 root bin
+f none @includedir@/quagga/network.h=$DESTDIR/@includedir@/quagga/network.h 0644 root bin
+f none @includedir@/quagga/prefix.h=$DESTDIR/@includedir@/quagga/prefix.h 0644 root bin
+f none @includedir@/quagga/routemap.h=$DESTDIR/@includedir@/quagga/routemap.h 0644 root bin
+f none @includedir@/quagga/distribute.h=$DESTDIR/@includedir@/quagga/distribute.h 0644 root bin
+f none @includedir@/quagga/sockunion.h=$DESTDIR/@includedir@/quagga/sockunion.h 0644 root bin
+f none @includedir@/quagga/str.h=$DESTDIR/@includedir@/quagga/str.h 0644 root bin
+f none @includedir@/quagga/stream.h=$DESTDIR/@includedir@/quagga/stream.h 0644 root bin
+f none @includedir@/quagga/table.h=$DESTDIR/@includedir@/quagga/table.h 0644 root bin
+f none @includedir@/quagga/thread.h=$DESTDIR/@includedir@/quagga/thread.h 0644 root bin
+f none @includedir@/quagga/vector.h=$DESTDIR/@includedir@/quagga/vector.h 0644 root bin
+f none @includedir@/quagga/version.h=$DESTDIR/@includedir@/quagga/version.h 0644 root bin
+f none @includedir@/quagga/vty.h=$DESTDIR/@includedir@/quagga/vty.h 0644 root bin
+f none @includedir@/quagga/zebra.h=$DESTDIR/@includedir@/quagga/zebra.h 0644 root bin
+f none @includedir@/quagga/plist.h=$DESTDIR/@includedir@/quagga/plist.h 0644 root bin
+f none @includedir@/quagga/zclient.h=$DESTDIR/@includedir@/quagga/zclient.h 0644 root bin
+f none @includedir@/quagga/sockopt.h=$DESTDIR/@includedir@/quagga/sockopt.h 0644 root bin
+f none @includedir@/quagga/smux.h=$DESTDIR/@includedir@/quagga/smux.h 0644 root bin
+f none @includedir@/quagga/md5-gnu.h=$DESTDIR/@includedir@/quagga/md5-gnu.h 0644 root bin
+f none @includedir@/quagga/if_rmap.h=$DESTDIR/@includedir@/quagga/if_rmap.h 0644 root bin
+f none @includedir@/quagga/keychain.h=$DESTDIR/@includedir@/quagga/keychain.h 0644 root bin
+f none @includedir@/quagga/privs.h=$DESTDIR/@includedir@/quagga/privs.h 0644 root bin
+f none @includedir@/quagga/sigevent.h=$DESTDIR/@includedir@/quagga/sigevent.h 0644 root bin
+f none @includedir@/quagga/pqueue.h=$DESTDIR/@includedir@/quagga/pqueue.h 0644 root bin
+f none @includedir@/quagga/jhash.h=$DESTDIR/@includedir@/quagga/jhash.h 0644 root bin
+f none @includedir@/quagga/zassert.h=$DESTDIR/@includedir@/quagga/zassert.h 0644 root bin
+d none @includedir@/quagga/ospfapi=$DESTDIR/@includedir@/quagga/ospfapi 0755 root bin
+f none @includedir@/quagga/ospfapi/ospf_apiclient.h=$DESTDIR/@includedir@/quagga/ospfapi/ospf_apiclient.h 0644 root bin
diff --git a/solaris/prototype.doc.in b/solaris/prototype.doc.in
new file mode 100644
index 0000000..8cbb893
--- /dev/null
+++ b/solaris/prototype.doc.in
@@ -0,0 +1,17 @@
+i pkginfo=$abs_builddir/pkginfo.doc.full
+i depend=$abs_builddir/depend.doc
+i copying=$abs_top_srcdir/COPYING
+d none @infodir@=$DESTDIR/@infodir@ 0755 root bin
+f none @infodir@/dir=$DESTDIR/@infodir@/dir 0644 root bin
+f none @infodir@/quagga.info=$DESTDIR/@infodir@/quagga.info 0644 root bin
+d none @mandir@=$DESTDIR/@mandir@ 0755 root bin
+d none @mandir@/man1=$DESTDIR/@mandir@/man1 0755 root bin
+f none @mandir@/man1/vtysh.1=$DESTDIR/@mandir@/man1/vtysh.1 0644 root bin
+d none @mandir@/man8=$DESTDIR/@mandir@/man8 0755 root bin
+f none @mandir@/man8/bgpd.8=$DESTDIR/@mandir@/man8/bgpd.8 0644 root bin
+f none @mandir@/man8/ospf6d.8=$DESTDIR/@mandir@/man8/ospf6d.8 0644 root bin
+f none @mandir@/man8/ospfd.8=$DESTDIR/@mandir@/man8/ospfd.8 0644 root bin
+f none @mandir@/man8/ripd.8=$DESTDIR/@mandir@/man8/ripd.8 0644 root bin
+f none @mandir@/man8/ripngd.8=$DESTDIR/@mandir@/man8/ripngd.8 0644 root bin
+f none @mandir@/man8/zebra.8=$DESTDIR/@mandir@/man8/zebra.8 0644 root bin
+f none @mandir@/man8/isisd.8=$DESTDIR/@mandir@/man8/isisd.8 0644 root bin
diff --git a/solaris/prototype.libs.in b/solaris/prototype.libs.in
new file mode 100644
index 0000000..71f4fd5
--- /dev/null
+++ b/solaris/prototype.libs.in
@@ -0,0 +1,13 @@
+i pkginfo=$abs_builddir/pkginfo.libs.full
+i depend=$abs_builddir/depend.libs
+i copying=$abs_top_srcdir/COPYING
+d none @libdir@=$DESTDIR/@libdir@ 0755 root bin
+s none @libdir@/libzebra.so.0=libzebra.so.0.0.0
+f none @libdir@/libzebra.so.0.0.0=$DESTDIR/@libdir@/libzebra.so.0.0.0 0755 root bin
+s none @libdir@/libzebra.so=libzebra.so.0.0.0
+s none @libdir@/libospf.so.0=libospf.so.0.0.0
+f none @libdir@/libospf.so.0.0.0=$DESTDIR/@libdir@/libospf.so.0.0.0 0755 root bin
+s none @libdir@/libospf.so=libospf.so.0.0.0
+f none @libdir@/libospfapiclient.so.0.0.0=$DESTDIR/@libdir@/libospfapiclient.so.0.0.0 0755 root bin
+s none @libdir@/libospfapiclient.so.0=libospfapiclient.so.0.0.0
+s none @libdir@/libospfapiclient.so=libospfapiclient.so.0.0.0
diff --git a/solaris/quagga.init.in b/solaris/quagga.init.in
new file mode 100755
index 0000000..02fdc60
--- /dev/null
+++ b/solaris/quagga.init.in
@@ -0,0 +1,101 @@
+#!/sbin/sh
+#
+# Copyright 2001,2003 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# $Id: quagga.init.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+#
+# Starts/stops the appropriate daemon
+
+SMFINCLUDE=/lib/svc/share/smf_include.sh
+
+if [ -f "$SMFINCLUDE" ] ; then
+ . "$SMFINCLUDE";
+fi
+
+usage () {
+ echo "Usage: $0 (start|stop) <fmri>";
+}
+
+case $1 in
+ 'help' | 'usage')
+ usage
+ ;;
+esac
+
+# fmri must be given.
+FMRI="$2"
+if [ -z "$FMRI" ]; then
+ usage
+ exit $SMF_EXIT_ERR_CONFIG
+fi
+
+# fmri must exist
+svcs ${FMRI} > /dev/null 2>&1 || exit $SMF_EXIT_ERR_CONFIG
+
+DAEMON=`svcprop -p @PACKAGE_NAME@/daemon_name ${FMRI} 2> /dev/null`
+[ -z "${DAEMON}" ] && exit $SMF_EXIT_ERR_CONFIG
+
+case ${DAEMON} in
+ zebra | ospfd | ospf6d | ripd | ripngd | bgpd )
+ ;;
+ *)
+ usage
+ exit $SMF_EXIT_ERR_CONFIG;
+ ;;
+esac
+
+CONFFILE=`svcprop -p @PACKAGE_NAME@/config_file ${FMRI}`
+PIDFILE=`svcprop -p @PACKAGE_NAME@/pid_file ${FMRI}`
+USER=`svcprop -p @PACKAGE_NAME@/user ${FMRI}`
+GROUP=`svcprop -p @PACKAGE_NAME@/group ${FMRI}`
+VTYADDR=`svcprop -p @PACKAGE_NAME@/vty_addr ${FMRI}`
+VTYPORT=`svcprop -p @PACKAGE_NAME@/vty_port ${FMRI}`
+
+[ -n "${CONFFILE}" ] && ARGS=" -f ${CONFFILE}"
+[ -n "${PIDFILE}" ] && ARGS="${ARGS} --pid_file ${PIDFILE}"
+[ -n "${USER}" ] && ARGS="${ARGS} --user ${USER}"
+[ -n "${GROUP}" ] && ARGS="${ARGS} --group ${GROUP}"
+[ -n "${VTYPORT}" ] && ARGS="${ARGS} --vty_port ${VTYPORT}"
+[ -n "${VTYADDR}" ] && ARGS="${ARGS} --vty_addr ${VTYADDR}"
+
+# have to have a pid file for script to work
+[ -z "${PIDFILE}" ] && exit $SMF_EXIT_ERR_CONFIG
+
+# config file must exist
+[ ! -f "$CONFFILE" ] && exit $SMF_EXIT_ERR_CONFIG
+
+start () {
+ /usr/local/quagga/sbin/${DAEMON} ${ARGS} &
+}
+
+stop () {
+ if [ -f "${PIDFILE}" ]; then
+ /usr/bin/kill -TERM `/usr/bin/cat "${PIDFILE}"`
+ fi
+}
+
+restart() {
+ stop ${daemon}
+ sleep 1
+ start ${daemon}
+}
+
+case $1 in
+'start')
+ start ${2}
+ ;;
+'stop')
+ stop ${2}
+ ;;
+
+'restart')
+ restart ${2}
+ ;;
+*)
+ usage
+ exit 1
+ ;;
+esac
+
+exit $SMF_EXIT_OK;
diff --git a/solaris/ripd.xml.in b/solaris/ripd.xml.in
new file mode 100644
index 0000000..e659836
--- /dev/null
+++ b/solaris/ripd.xml.in
@@ -0,0 +1,114 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ $Id: ripd.xml.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+-->
+
+<service_bundle type='manifest' name='QUAGGAdaemons:ripd'>
+
+<service
+ name='network/rip'
+ type='service'
+ version='1'>
+
+ <create_default_instance enabled='false' />
+
+ <single_instance />
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+
+ <dependency name='zebra'
+ grouping='require_all'
+ restart_on='restart'
+ type='service'>
+ <service_fmri value='svc:/network/zebra' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ripd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga start svc:/network/rip'
+ timeout_seconds='60'/>
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/lib/svc/method/quagga stop svc:/network/rip'
+ timeout_seconds='60' />
+
+ <exec_method
+ type='method'
+ name='restart'
+ exec='/lib/svc/method/quagga restart svc:/network/rip'
+ timeout_seconds='60' />
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <property_group name='ripd' type='application'>
+ <stability value='Evolving' />
+ <propval name='retain_routes' type='boolean' value='false'/>
+ </property_group>
+
+ <property_group name='@PACKAGE_NAME@' type='application'>
+ <!-- Options common to @PACKAGE_NAME@ daemons -->
+ <!-- cant make XInclude validate with svccfg -->
+ <propval name='daemon_name' type='astring' value='ripd' />
+ <propval name='config_file' type='astring'
+ value='@sysconfdir@/ripd.conf' />
+ <propval name='pid_file' type='astring'
+ value='@localstatedir@/ripd.pid' />
+ <propval name='vty_addr' type='astring' value='127.1' />
+ <propval name='vty_port' type='integer' value='0'/>
+ <propval name='user' type='astring' value='@enable_user@' />
+ <propval name='group' type='astring' value='@enable_group@' />
+
+ <!--
+ <xi:include href='file:/var/svc/profile/@PACKAGE_TARNAME@_options.xml' />
+ -->
+ </property_group>
+
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ @PACKAGE_NAME@: ripd, RIPv1/2 IPv4 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ripd' section='1M' manpath='@mandir@' />
+ </documentation>
+ </template>
+
+</service>
+
+</service_bundle>
diff --git a/solaris/ripngd.xml.in b/solaris/ripngd.xml.in
new file mode 100644
index 0000000..6d5753f
--- /dev/null
+++ b/solaris/ripngd.xml.in
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ $Id: ripngd.xml.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+-->
+
+<service_bundle type='manifest' name='QUAGGAdaemons:ripngd'>
+
+<service
+ name='network/rip6'
+ type='service'
+ version='1'>
+
+ <create_default_instance enabled='false' />
+
+ <single_instance />
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+
+ <dependency name='zebra'
+ grouping='require_all'
+ restart_on='restart'
+ type='service'>
+ <service_fmri value='svc:/network/zebra' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ripngd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga start svc:/network/rip6'
+ timeout_seconds='60'/>
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/lib/svc/method/quagga stop svc:/network/rip6'
+ timeout_seconds='60' />
+
+ <exec_method
+ type='method'
+ name='restart'
+ exec='/lib/svc/method/quagga restart svc:/network/rip6'
+ timeout_seconds='60' />
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <property_group name='ripngd' type='application'>
+ <stability value='Evolving' />
+ <propval name='retain_routes' type='boolean' value='false'/>
+ </property_group>
+
+ <property_group name='@PACKAGE_NAME@' type='application'>
+ <stability value='Evolving' />
+ <!-- Options common to @PACKAGE_NAME@ daemons -->
+ <!-- cant make XInclude validate with svccfg -->
+ <propval name='daemon_name' type='astring' value='ripngd' />
+ <propval name='config_file' type='astring'
+ value='@sysconfdir@/ripngd.conf' />
+ <propval name='pid_file' type='astring'
+ value='@localstatedir@/ripngd.pid' />
+ <propval name='vty_addr' type='astring' value='127.1' />
+ <propval name='vty_port' type='integer' value='0'/>
+ <propval name='user' type='astring' value='@enable_user@' />
+ <propval name='group' type='astring' value='@enable_group@' />
+
+ <!--
+ <xi:include href='file:/var/svc/profile/@PACKAGE_TARNAME@_options.xml' />
+ -->
+ </property_group>
+
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ @PACKAGE_NAME@: ripngd, RIPv3 IPv6 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ripngd' section='1M' manpath='@mandir@' />
+ </documentation>
+ </template>
+
+</service>
+
+</service_bundle>
diff --git a/solaris/zebra.xml.in b/solaris/zebra.xml.in
new file mode 100644
index 0000000..fefc5e1
--- /dev/null
+++ b/solaris/zebra.xml.in
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ $Id: zebra.xml.in,v 1.1 2005/04/11 07:05:21 paul Exp $
+-->
+
+<service_bundle type='manifest' name='QUGGAdaemons:zebra'>
+
+<service
+ name='network/zebra'
+ type='service'
+ version='1'>
+
+ <create_default_instance enabled='false' />
+
+ <single_instance />
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/loopback' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/zebra.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga start svc:/network/zebra'
+ timeout_seconds='60'/>
+
+ <exec_method
+ type='method'
+ name='stop'
+ exec='/lib/svc/method/quagga stop svc:/network/zebra'
+ timeout_seconds='60' />
+
+ <exec_method
+ type='method'
+ name='restart'
+ exec='/lib/svc/method/quagga restart svc:/network/zebra'
+ timeout_seconds='60' />
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <property_group name='zebra' type='application'>
+ <stability value='Evolving' />
+ <propval name='retain_routes' type='boolean' value='false'/>
+ <propval name='keep_kernel' type='boolean' value='false'/>
+ </property_group>
+
+ <property_group name='@PACKAGE_NAME@' type='application'>
+ <stability value='Evolving' />
+ <!-- Options common to @PACKAGE_NAME@ daemons -->
+ <!-- cant make XInclude validate with svccfg -->
+ <propval name='daemon_name' type='astring'
+ value='zebra' />
+ <propval name='config_file' type='astring'
+ value='@sysconfdir@/zebra.conf' />
+ <propval name='pid_file' type='astring'
+ value='@localstatedir@/zebra.pid' />
+ <propval name='vty_addr' type='astring' value='127.1' />
+ <propval name='vty_port' type='integer' value='0'/>
+ <propval name='user' type='astring' value='@enable_user@' />
+ <propval name='group' type='astring' value='@enable_group@' />
+
+ <!--
+ <xi:include href='file:/var/svc/profile/@PACKAGE_TARNAME@_options.xml' />
+ -->
+ </property_group>
+
+ <stability value='Unstable' />
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ @PACKAGE_NAME@: zebra, RIB, kernel intermediary and misc daemon
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='zebra' section='1M' manpath='@mandir@' />
+ </documentation>
+ </template>
+
+</service>
+
+</service_bundle>
+