diff options
author | Seungyoun Ju <sy39.ju@samsung.com> | 2012-08-21 18:23:32 +0900 |
---|---|---|
committer | Seungyoun Ju <sy39.ju@samsung.com> | 2012-08-21 18:23:32 +0900 |
commit | 94186e188aad231cd6cf81e06a84d2b9eab05ccc (patch) | |
tree | a5813abb98e201a3cac4f3b5eba5069bfd2cb397 /contrib/Solaris10 | |
parent | e5a7e6adba9219ecf8bb5668382fab628f63bf6e (diff) | |
download | dnsmasq-master.tar.gz dnsmasq-master.tar.bz2 dnsmasq-master.zip |
Source code uploadHEADsubmit/master/20120920.1510462.0_alphamaster2.0alpha
Diffstat (limited to 'contrib/Solaris10')
-rw-r--r-- | contrib/Solaris10/README | 28 | ||||
-rw-r--r-- | contrib/Solaris10/README-sparc | 8 | ||||
-rw-r--r-- | contrib/Solaris10/README.create_package | 25 | ||||
-rw-r--r-- | contrib/Solaris10/create_package | 87 | ||||
-rw-r--r-- | contrib/Solaris10/dnsmasq.xml | 65 |
5 files changed, 213 insertions, 0 deletions
diff --git a/contrib/Solaris10/README b/contrib/Solaris10/README new file mode 100644 index 0000000..a035875 --- /dev/null +++ b/contrib/Solaris10/README @@ -0,0 +1,28 @@ +From: David Connelly <dconnelly@gmail.com> +Date: Mon, Apr 7, 2008 at 3:31 AM +Subject: Solaris 10 service manifest +To: dnsmasq-discuss@lists.thekelleys.org.uk + + +I've found dnsmasq much easier to set up on my home server running Solaris +10 than the stock dhcp/dns server, which is probably overkill anyway for my +simple home network needs. Since Solaris now uses SMF (Service Management +Facility) to manage services I thought I'd create a simple service manifest +for the dnsmasq service. The manifest currently assumes that dnsmasq has +been installed in '/usr/local/sbin/dnsmasq' and the configuration file in +'/usr/local/etc/dnsmasq.conf', so you may have to adjust these paths for +your local installation. Here are the steps I followed to install and enable +the dnsmasq service: + # svccfg import dnsmasq.xml + # svcadm enable dnsmasq + +To confirm that the service is enabled and online: + + # svcs -l dnsmasq + +I've just started learning about SMF so if anyone has any +corrections/feedback they are more than welcome. + +Thanks, +David + diff --git a/contrib/Solaris10/README-sparc b/contrib/Solaris10/README-sparc new file mode 100644 index 0000000..327b65c --- /dev/null +++ b/contrib/Solaris10/README-sparc @@ -0,0 +1,8 @@ +Hi Simon, + +I just wanted to let you know that I have built a Solaris .pkg install package of your dnsmasq utility for people to use. Feel free to point them in my direction if you have people who want this sort of thing. + +http://ejesconsulting.wordpress.com/2010/05/12/gnu-dnsmasq-for-opensolaris-sparc/ + +Thanks +-evan diff --git a/contrib/Solaris10/README.create_package b/contrib/Solaris10/README.create_package new file mode 100644 index 0000000..676899a --- /dev/null +++ b/contrib/Solaris10/README.create_package @@ -0,0 +1,25 @@ +Ok, script attached ... seems to be working ok for me, +tried to install and remove a few times. It does the +right thing with the smf when installing, you can then +simply enable the service. Upon removal it cleans up the +files but won't clean up the services (I think until +a reboot) ... I've only started looking at the new +packages stuff in the last day or two, so I could be +missing something, but I can't find any way to force + a proper cleanup. + +It requires that you have a writable repository setup +as per the docs on the opensolaris website and it will +create a dnsmasq package (package name is a variable +in the script). The script takes a version number for +the package and assumes that it's in the contrib/Solaris10 +directory, it then works out the base tree directory +from $0. + +i.e. $ contrib/Solaris10/create_package 2.52-1 +or $ cd contrib/Solaris10; ./create_package 2.52-1 + +It's a bit more complex than it could be because I +prefer putting the daemon in /usr/sbin and the config +in /etc, so the script will actually create a new +version of the existing contrib dnsmasq.xml. diff --git a/contrib/Solaris10/create_package b/contrib/Solaris10/create_package new file mode 100644 index 0000000..acfa2a1 --- /dev/null +++ b/contrib/Solaris10/create_package @@ -0,0 +1,87 @@ +#!/bin/sh + +# +# For our package, and for the SMF script, we need to define where we +# want things to go... +# +BIN_DIR="/usr/sbin" +CONF_DIR="/etc" +MAN_DIR="/usr/share/man/man8" + +PACKAGE_NAME="dnsmasq" + +# +# Since we know we are in the contrib directory we can work out where +# the rest of the tree is... +# +BASEDIR="`dirname $0`/../.." + +# +# We need a version number to use for the package creation... +# +if [ $# != 1 ]; then + echo "Usage: $0 <package_version_number>" >&2 + exit 1 +fi +VERSION="$1" + +# +# First thing we do is fix-up the smf file to use the paths we prefer... +# +if [ ! -f "${BASEDIR}/contrib/Solaris10/dnsmasq.xml" ]; then + echo "$0: unable to find contrib/Solaris10/dnsmasq.xml" >&2 + exit 1 +fi + +echo "Fixing up smf file ... \c" +cat "${BASEDIR}/contrib/Solaris10/dnsmasq.xml" | \ + sed -e "s%/usr/local/etc%${CONF_DIR}%" \ + -e "s%/usr/local/sbin%${BIN_DIR}%" \ + -e "s%/usr/local/man%${MAN_DIR}%" > ${BASEDIR}/contrib/Solaris10/dnsmasq-pkg.xml +echo "done." + +echo "Creating packaging file ... \c" +cat <<EOF >${BASEDIR}/contrib/Solaris10/dnsmasq_package.inc +# +# header +# +set name=pkg.name value="dnsmasq" +set name=pkg.description value="dnsmasq daemon - dns, dhcp, tftp etc" +set name=pkg.detailed_url value="http://www.thekelleys.org.uk/dnsmasq/doc.html" +set name=info.maintainer value="TBD (tbd@tbd.com)" +set name=info.upstream value="dnsmasq-discuss@lists.thekelleys.org.uk" +set name=info.upstream_url value="http://www.thekelleys.org.uk/dnsmasq/doc.html" +# +# dependencies ... none? +# + +# +# directories +# +dir mode=0755 owner=root group=bin path=${BIN_DIR}/ +dir mode=0755 owner=root group=sys path=${CONF_DIR}/ +dir mode=0755 owner=root group=sys path=${MAN_DIR}/ +dir mode=0755 owner=root group=sys path=/var/ +dir mode=0755 owner=root group=sys path=/var/svc +dir mode=0755 owner=root group=sys path=/var/svc/manifest +dir mode=0755 owner=root group=sys path=/var/svc/manifest/network + +# +# files +# +file ${BASEDIR}/src/dnsmasq mode=0555 owner=root group=bin path=${BIN_DIR}/dnsmasq +file ${BASEDIR}/man/dnsmasq.8 mode=0555 owner=root group=bin path=${MAN_DIR}/dnsmasq.8 +file ${BASEDIR}/dnsmasq.conf.example mode=0644 owner=root group=sys path=${CONF_DIR}/dnsmasq.conf preserve=strawberry +file ${BASEDIR}/contrib/Solaris10/dnsmasq-pkg.xml mode=0644 owner=root group=sys path=/var/svc/manifest/network/dnsmasq.xml restart_fmri=svc:/system/manifest-import:default + +EOF +echo "done." + +echo "Creating package..." +eval `pkgsend open ${PACKAGE_NAME}@${VERSION}` +pkgsend include ${BASEDIR}/contrib/Solaris10/dnsmasq_package.inc +if [ "$?" = 0 ]; then + pkgsend close +else + echo "Errors" +fi diff --git a/contrib/Solaris10/dnsmasq.xml b/contrib/Solaris10/dnsmasq.xml new file mode 100644 index 0000000..7da0253 --- /dev/null +++ b/contrib/Solaris10/dnsmasq.xml @@ -0,0 +1,65 @@ +<?xml version='1.0'?> +<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> + +<!-- Service manifest for dnsmasq --> + +<service_bundle type='manifest' name='dnsmasq'> + <service name='network/dnsmasq' type='service' version='1'> + + <create_default_instance enabled='false'/> + <single_instance/> + + <dependency name='multi-user' + grouping='require_all' + restart_on='refresh' + type='service'> + <service_fmri value='svc:/milestone/multi-user'/> + </dependency> + + <dependency name='config' + grouping='require_all' + restart_on='restart' + type='path'> + <service_fmri value='file:///usr/local/etc/dnsmasq.conf'/> + </dependency> + + <dependent name='dnsmasq_multi-user-server' + grouping='optional_all' + restart_on='none'> + <service_fmri value='svc:/milestone/multi-user-server' /> + </dependent> + + <exec_method type='method' name='start' + exec='/usr/local/sbin/dnsmasq -C /usr/local/etc/dnsmasq.conf' + timeout_seconds='60' > + <method_context> + <method_credential user='root' group='root' privileges='all'/> + </method_context> + </exec_method> + + <exec_method type='method' + name='stop' + exec=':kill' + timeout_seconds='60'/> + + <exec_method type='method' + name='refresh' + exec=':kill -HUP' + timeout_seconds='60' /> + + <template> + <common_name> + <loctext xml:lang='C'>dnsmasq server</loctext> + </common_name> + <description> + <loctext xml:lang='C'> +dnsmasq - A lightweight DHCP and caching DNS server. + </loctext> + </description> + <documentation> + <manpage title='dnsmasq' section='8' manpath='/usr/local/man'/> + </documentation> + </template> + + </service> +</service_bundle> |