Skip to content

Commit

Permalink
2005-04-11 Paul Jakma <paul.jakma@sun.com>
Browse files Browse the repository at this point in the history
	* (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...
  • Loading branch information
paul committed Apr 11, 2005
1 parent cf460ef commit 1b414a1
Show file tree
Hide file tree
Showing 23 changed files with 1,065 additions and 0 deletions.
4 changes: 4 additions & 0 deletions solaris/.cvsignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Makefile
Makefile.in
?.manifest

13 changes: 13 additions & 0 deletions solaris/ChangeLog
Original file line number Diff line number Diff line change
@@ -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...
120 changes: 120 additions & 0 deletions solaris/Makefile.am
Original file line number Diff line number Diff line change
@@ -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)
115 changes: 115 additions & 0 deletions solaris/bgpd.xml.in
Original file line number Diff line number Diff line change
@@ -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>
7 changes: 7 additions & 0 deletions solaris/depend.daemons
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions solaris/depend.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
P QUAGGAlibs Quagga common runtime libraries
1 change: 1 addition & 0 deletions solaris/depend.doc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
P SUNWdoc Documentation Tools
5 changes: 5 additions & 0 deletions solaris/depend.libs
Original file line number Diff line number Diff line change
@@ -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
108 changes: 108 additions & 0 deletions solaris/ospf6d.xml.in
Original file line number Diff line number Diff line change
@@ -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>
Loading

0 comments on commit 1b414a1

Please sign in to comment.