Annotation of embedaddon/quagga/redhat/README.rpm_build.md, revision 1.1.1.1

1.1       misho       1: Building your own Quagga RPM
                      2: ============================
                      3: (Tested on CentOS 6, CentOS 7 and Fedora 22.)
                      4: 
                      5: 1. Install the following packages to build the RPMs:
                      6: 
                      7:                yum install git autoconf automake libtool make gawk readline-devel \
                      8:                texinfo dejagnu net-snmp-devel groff rpm-build net-snmp-devel \
                      9:                libcap-devel texi2html
                     10: 
                     11:        (use `dnf install` on new Fedora instead of `yum install        `)
                     12:        
                     13: 2. Checkout Quagga under a **unpriviledged** user account
                     14: 
                     15:                git clone git://git.savannah.nongnu.org/quagga.git quagga
                     16: 
                     17: 3. Run Bootstrap and make distribution tar.gz
                     18: 
                     19:                cd quagga
                     20:                ./bootstrap.sh
                     21:                ./configure --with-pkg-extra-version=-MyRPMVersion
                     22:                make dist
                     23:                        
                     24:        Note: configure parameters are not important for the RPM building - except the
                     25:        `with-pkg-extra-version` if you want to give the RPM a specific name to
                     26:        mark your own unoffical build
                     27: 
                     28: 4. Create RPM directory structure and populate with sources
                     29: 
                     30:                mkdir rpmbuild
                     31:                mkdir rpmbuild/SOURCES
                     32:                mkdir rpmbuild/SPECS
                     33:                cp redhat/*.spec rpmbuild/SPECS/
                     34:                cp quagga*.tar.gz rpmbuild/SOURCES/
                     35: 
                     36: 5. Edit rpm/SPECS/quagga.spec with configuration as needed
                     37:        Look at the beginning of the file and adjust the following parameters to enable
                     38:        or disable features as required:
                     39:        
                     40:                ################# Quagga configure options ####################
                     41:                # with-feature options
                     42:         %{!?with_snmp:         %global  with_snmp       1 }
                     43:         %{!?with_vtysh:        %global  with_vtysh      1 }
                     44:         %{!?with_ospf_te:      %global  with_ospf_te    1 }
                     45:                %{!?with_opaque_lsa:   %global  with_opaque_lsa 1 }
                     46:                %{!?with_tcp_zebra:        %global  with_tcp_zebra  0 }
                     47:                %{!?with_vtysh:        %global  with_vtysh      1 }
                     48:                %{!?with_pam:          %global  with_pam        1 }
                     49:         %{!?with_ospfclient:   %global  with_ospfclient 1 }
                     50:                %{!?with_ospfapi:      %global  with_ospfapi    1 }
                     51:                %{!?with_irdp:         %global  with_irdp       1 }
                     52:                %{!?with_rtadv:        %global  with_rtadv      1 }
                     53:                %{!?with_isisd:        %global  with_isisd      1 }
                     54:                %{!?with_pimd:         %global  with_pimd       1 }
                     55:                %{!?with_shared:       %global  with_shared     1 }
                     56:                %{!?with_multipath:    %global  with_multipath  64 }
                     57:                %{!?quagga_user:       %global  quagga_user     quagga }
                     58:                %{!?vty_group:         %global  vty_group       quaggavt }
                     59:                %{!?with_fpm:          %global  with_fpm        0 }
                     60:                %{!?with_watchquagga:  %global  with_watchquagga 1 }
                     61: 
                     62: 6. Build the RPM
                     63: 
                     64:                rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/quagga.spec
                     65: 
                     66: DONE.
                     67: 
                     68: If all works correctly, then you should end up with the RPMs under `rpmbuild/RPMS`
                     69: and the Source RPM under `rpmbuild/SRPMS`
                     70: 
                     71: 
                     72: Enabling daemons after installation of the package:
                     73: ---------------------------------------------------
                     74: 
                     75: ### init.d based systems (ie CentOS 6):
                     76: 
                     77: 1. Enable the daemons as needed to run after boot (Zebra is mandatory)
                     78:        
                     79:                chkconfig zebra on
                     80:                chkconfig ospfd on
                     81:                chkconfig ospf6d on
                     82:                chkconfig bgpd on
                     83:                ... etc
                     84: 
                     85: 2. If you want to run `watchquagga`, then configure `/etc/sysconfig/quagga` 
                     86:    and uncomment the line with the daemons for `watchquagga` to monitor,
                     87:    then enable watchquagga
                     88: 
                     89:                chkconfig watchquagga on
                     90: 
                     91: 3. Check your firewall / IPtables to make sure the routing protocols are
                     92: allowed.
                     93:                
                     94: 4. Start the daemons (or reboot)
                     95: 
                     96:                service zebra start
                     97:                service bgpd start
                     98:                service ospfd start
                     99:                ... etc
                    100:                        
                    101: Configuration is stored in `/etc/quagga/*.conf` files.
                    102: 
                    103: 
                    104: ### systemd based systems (ie CentOS 7, Fedora 22)
                    105: 
                    106: 1. Enable the daemons as needed to run after boot (Zebra is mandatory)
                    107:        
                    108:                systemctl enable zebra
                    109:                systemctl enable ospfd
                    110:                systemctl enable ospf6d
                    111:                systemctl enable bgpd
                    112:                ... etc
                    113: 
                    114:        Note: There is no watchquagga on systemd based systems. Systemd contains
                    115:        the functionality of monitoring and restarting daemons.
                    116: 
                    117: 2. Check your firewall / IPtables to make sure the routing protocols are
                    118: allowed.
                    119:                
                    120: 3. Start the daemons (or reboot)
                    121: 
                    122:                systemctl start zebra
                    123:                systemctl start bgpd
                    124:                systemctl start ospfd
                    125:                ... etc
                    126:                        
                    127: Configuration is stored in `/etc/quagga/*.conf` files.
                    128: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>