1To 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 Solaris 10 or Solaris Nevada/Express. 9 10- i.manifest and r.manifest scripts as supplied with Solaris Express 11 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. 19 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 39 gmake DESTDIR=/var/tmp/qroot install 40 413. In this directory (solaris/), run make packages, specifying DESTDIR if 42appropriate, eg: 43 44 gmake DESTDIR=/var/tmp/qroot packages 45 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 52 quagga-smf-...-$ARCH.pkg - QUAGGAsmf 53 54QUAGGAlibs and QUAGGAdaemons are needed for daemon runtime. QUAGGAsmf 55provides the required bits for Solaris 10+ SMF support. 56 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 76- SMF notes: 77 78 - 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> 95 96 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) 118 119 - 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). 176 177 - 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 185- 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 189