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