blob: 811e9d0fd42a3c0a8c42e8202e0ce3b19346e566 [file] [log] [blame]
paul8d60e1a2005-04-11 07:58:35 +00001To build packages for Solaris 10:
2
3Requirements:
4-------------
5
6- Development environment including gcc (eg as shipped with Solaris 10)
7
paul7d7d0f32005-08-16 17:23:15 +00008- The Package tools from Solaris 10 or Solaris Nevada/Express.
paul8d60e1a2005-04-11 07:58:35 +00009
10- i.manifest and r.manifest scripts as supplied with Solaris Express
paul7d7d0f32005-08-16 17:23:15 +000011 in /usr/sadm/install/scripts/ or from OpenSolaris.org:
12
13 http://cvs.opensolaris.org/source/xref/usr/src/pkgdefs/common_files/i.manifest
14 http://cvs.opensolaris.org/source/xref/usr/src/pkgdefs/common_files/r.manifest
15
16 i.manifest must be at least version 1.5. Place these scripts in
17 this directory if you are using Solaris 10 GA (which does not ship with
18 these scripts), or in the solaris/ directory in the Quagga source.
paul8d60e1a2005-04-11 07:58:35 +000019
20
21Package creation instructions:
22------------------------------
23
241. Configure and build Quagga in the top level build directory as per
25normal, eg:
26
27 ./configure --prefix=/usr/local/quagga \
28 --localstatedir=/var/run/quagga
29 --enable-gcc-rdynamic --enable-opaque-lsa --enable-ospf-te \
30 --enable-multipath=64 --enable-user=quagga \
31 --enable-ospfclient=yes --enable-ospfapi=yes \
32 --enable-group=quagga --enable-nssa --enable-opaque-lsa
33
34You will need /usr/sfw/bin and /usr/ccs/bin in your path.
35
362. make install in the top-level build directory, it's a good idea to make
37use of DESTDIR to install to an alternate root, eg:
38
paul245a2b22005-06-15 11:24:44 +000039 gmake DESTDIR=/var/tmp/qroot install
paul8d60e1a2005-04-11 07:58:35 +000040
paul7d7d0f32005-08-16 17:23:15 +0000413. In this directory (solaris/), run make packages, specifying DESTDIR if
42appropriate, eg:
paul8d60e1a2005-04-11 07:58:35 +000043
paul245a2b22005-06-15 11:24:44 +000044 gmake DESTDIR=/var/tmp/qroot packages
paul8d60e1a2005-04-11 07:58:35 +000045
46This should result in 4 packages being created:
47
48 quagga-libs-...-$ARCH.pkg - QUAGGAlibs
49 quagga-daemons-...-$ARCH.pkg - QUAGGAdaemons
50 quagga-doc-...-$ARCH.pkg - QUAGGAdoc
51 quagga-dev-...-$ARCH.pkg - QUAGGAdev
paul245a2b22005-06-15 11:24:44 +000052 quagga-smf-...-$ARCH.pkg - QUAGGAsmf
paul8d60e1a2005-04-11 07:58:35 +000053
paul245a2b22005-06-15 11:24:44 +000054QUAGGAlibs and QUAGGAdaemons are needed for daemon runtime. QUAGGAsmf
55provides the required bits for Solaris 10+ SMF support.
paul8d60e1a2005-04-11 07:58:35 +000056
57
58Install and post-install configuration notes:
59---------------------------------------------
60
61- If you specified a user/group which does not exist per default on Solaris
62 (eg quagga/quagga) you *must* create these before installing these on a
63 system. The packages do *not* create the users.
64
65- The configuration files are not created. You must create the configuration
66 file yourself, either with your complete desired configuration, or else if
67 you wish to use the telnet interface for further configuration you must
68 create them containing at least:
69
70 password whatever
71
72 The user which quagga runs as must have write permissions on this file, no
73 other user should have read permissions, and you would also have to enable
74 the telnet interface (see below).
75
paul245a2b22005-06-15 11:24:44 +000076- SMF notes:
paul8d60e1a2005-04-11 07:58:35 +000077
paul245a2b22005-06-15 11:24:44 +000078 - QUAGGAsmf installs a svc:/network/routing/quagga service, with an
79 instance for each daemon
80
81 - The state of all instances of quagga service can be inspected with:
82
83 svcs -l svc:/network/routing/quagga
84
85 or typically just with a shortcut of 'quagga':
86
87 svcs -l quagga
88
89 - A specific instance of the quagga service can be inspected by specifying
90 the daemon name as the instance, ie quagga:<daemon>:
91
92 svcs -l svc:/network/routing/quagga:zebra
93 svcs -l svc:/network/routing/quagga:ospfd
94 <etc>
paul8d60e1a2005-04-11 07:58:35 +000095
paul245a2b22005-06-15 11:24:44 +000096 or typically just with the shortcut of 'quagga:<daemon>' or even
97 <daemon>:
98
99 svcs -l quagga:zebra
100 svcs -l ospfd
101
102 Eg:
103
104 # # svcs -l ripd
105 fmri svc:/network/routing/quagga:ripd
106 name Quagga: ripd, RIPv1/2 IPv4 routing protocol daemon.
107 enabled true
108 state online
109 next_state none
110 state_time Wed Jun 15 16:21:02 2005
111 logfile /var/svc/log/network-routing-quagga:ripd.log
112 restarter svc:/system/svc/restarter:default
113 contract_id 93
114 dependency require_all/restart svc:/network/routing/quagga:zebra (online)
115 dependency require_all/restart file://localhost//usr/local/quagga/etc/ripd.conf (online)
116 dependency require_all/none svc:/system/filesystem/usr:default (online)
117 dependency require_all/none svc:/network/loopback (online)
paul8d60e1a2005-04-11 07:58:35 +0000118
paul245a2b22005-06-15 11:24:44 +0000119 - Configuration of startup options is by way of SMF properties in a
120 property group named 'quagga'. The defaults should automatically be
121 inline with how you configured Quagga in Step 1 above.
122
123 - By default the VTY interface is disabled. To change this, see below for
124 how to set the 'quagga/vty_port' property as appropriate for
125 /each/ service. Also, the VTY is set to listen only to localhost by
126 default, you may change the 'quagga/vty_addr' property as appropriate
127 for both of the 'quagga' service and specific individual instances of
128 the 'quagga' service (ie quagga:zebra, quagga:ospfd, etc..).
129
130 - Properties belonging to the 'quagga' service are inherited by all
131 instances. Eg:
132
133 # svcprop -p quagga svc:/network/routing/quagga
134 quagga/group astring root
135 quagga/retain boolean false
136 quagga/user astring root
137 quagga/vty_addr astring 127.1
138 quagga/vty_port integer 0
139
140 # svcprop -p quagga svc:/network/routing/quagga:ospfd
141 quagga/retain_routes boolean false
142 quagga/group astring root
143 quagga/retain boolean false
144 quagga/user astring root
145 quagga/vty_addr astring 127.1
146 quagga/vty_port integer 0
147
148 All instances will inherit these properties, unless the instance itself
149 overrides these defaults. This also implies one can modify properties of
150 the 'quagga' service and have them apply to all daemons.
151
152 # svccfg -s svc:/network/routing/quagga \
153 setprop quagga/vty_addr = astring: ::1
154
155 # svcprop -p quagga svc:/network/routing/quagga
156 quagga/group astring root
157 quagga/retain boolean false
158 quagga/user astring root
159 quagga/vty_port integer 0
160 quagga/vty_addr astring ::1
161
162 # # You *must* refresh instances to have the property change
163 # # take affect for the 'running snapshot' of service state.
164 # svcadm refresh quagga:ospfd
165
166 # svcprop -p quagga svc:/network/routing/quagga:ospfd
167 quagga/retain_routes boolean false
168 quagga/group astring root
169 quagga/retain boolean false
170 quagga/user astring root
171 quagga/vty_port integer 0
172 quagga/vty_addr astring ::1
173
174 Other daemon-specific options/properties may be available, however they
175 are not yet honoured/used (eg ospfd/apiserver on svc:/network/ospf).
paul8d60e1a2005-04-11 07:58:35 +0000176
paul245a2b22005-06-15 11:24:44 +0000177 - As SMF is dependency aware, restarting network/zebra will restart all the
178 other daemons.
179
180 - To upgrade from one set of Quagga packages to a newer release, one must
181 first pkgrm the installed packages. When one pkgrm's QUAGGAsmf all
182 property configuration will be lost, and any customisations will have to
183 redone after installing the updated QUAGGAsmf package.
184
paul8d60e1a2005-04-11 07:58:35 +0000185- These packages are not supported by Sun Microsystems, report bugs via the
186 usual Quagga channels, ie Bugzilla. Improvements/contributions of course
187 would be greatly appreciated.
188