112 lines
3 KiB
Bash
112 lines
3 KiB
Bash
# Copyright 1999-2015 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=5
|
|
|
|
inherit autotools eutils readme.gentoo user
|
|
|
|
DESCRIPTION="Really Awesome New Cisco confIg Differ"
|
|
HOMEPAGE="http://www.shrubbery.net/rancid/"
|
|
SRC_URI="http://http.debian.net/debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV}.orig.tar.gz -> ${P}.tar.gz"
|
|
LICENSE="BSD-4"
|
|
|
|
SLOT="0"
|
|
RESTRICT="mirror"
|
|
KEYWORDS="~amd64 ~x86"
|
|
IUSE="+cvs subversion"
|
|
|
|
REQUIRED_USE="^^ ( cvs subversion )"
|
|
|
|
# app-arch/par is blocker, due to bug #455838
|
|
DEPEND="
|
|
!app-arch/par
|
|
dev-lang/perl
|
|
dev-lang/tcl:0=
|
|
dev-tcltk/expect
|
|
sys-apps/diffutils
|
|
cvs? ( dev-vcs/cvs )
|
|
subversion? ( dev-vcs/subversion )
|
|
|| (
|
|
net-misc/netkit-telnetd
|
|
net-misc/telnet-bsd
|
|
)"
|
|
RDEPEND="${DEPEND}"
|
|
|
|
src_prepare() {
|
|
epatch "${FILESDIR}"/${P}-mailprefix.patch
|
|
epatch "${FILESDIR}"/${P}-config.patch
|
|
epatch "${FILESDIR}"/${P}-buildsystem.patch
|
|
|
|
# respect CFLAGS, bug #455840
|
|
sed -i -e '/^CFLAGS/d' bin/Makefile.am || die 'sed on bin/Makefile.am failed'
|
|
|
|
eautoreconf
|
|
}
|
|
|
|
src_configure() {
|
|
econf \
|
|
--localstatedir="${EPREFIX}"/var/${PN} \
|
|
--enable-conf-install \
|
|
--docdir="${EPREFIX}"/usr/share/doc/${PF} \
|
|
--htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
|
|
$(use subversion && echo "--with-svn=fsfs")
|
|
}
|
|
|
|
src_install() {
|
|
default
|
|
|
|
if use subversion ; then
|
|
sed -e 's/^RCSSYS=cvs/RCSSYS=svn/' \
|
|
-i "${D}"/etc/rancid.conf || die
|
|
fi
|
|
|
|
echo "CONFIG_PROTECT=\"${EPREFIX}/var/rancid/.cloginrc\"" > "${T}"/99${PN}
|
|
doenvd "${T}"/99${PN}
|
|
|
|
readme.gentoo_src_install
|
|
}
|
|
|
|
pkg_preinst() {
|
|
enewgroup ${PN}
|
|
enewuser ${PN} -1 /bin/bash "${EPREFIX}"/var/rancid ${PN}
|
|
|
|
keepdir /var/${PN}{,/logs}
|
|
touch "${ED}"/var/${PN}/.cloginrc
|
|
|
|
fperms ug=rwX,o= /var/${PN}/{,logs,.cloginrc}
|
|
fowners ${PN}:${PN} /var/${PN}/{,logs,.cloginrc}
|
|
}
|
|
|
|
DISABLE_AUTOFORMATTING="yes"
|
|
DOC_CONTENTS="Micro-HOWTO on how to get running:
|
|
|
|
1) Modify MAILPREFIX, ADMINMAILPREFIX, and LIST_OF_GROUPS
|
|
in /etc/rancid.conf:
|
|
MAILPREFIX=\"rancid-\"
|
|
ADMINMAILPREFIX=\"rancid-admin-\"
|
|
LIST_OF_GROUPS=\"routers switches\"
|
|
|
|
2) Setup email aliases for rancid:
|
|
you will need to define mail aliases for {MAILPREFIX}{GROUP}
|
|
and {ADMINMAILPREFIX}{GROUP} for each group you defined above
|
|
How to do this depends on your mailserver
|
|
|
|
3) Run rancid-cvs as the rancid user to initialise directories and
|
|
repositories; eg. su -c /usr/bin/rancid-cvs - rancid
|
|
Note the command is the same even if you are using subversion
|
|
|
|
4) Populate /var/rancid/{GROUPNAME}/router.db with nodes
|
|
see man 5 router.db for detailed formatting information
|
|
|
|
5) Populate /var/rancid/.cloginrc with credentials
|
|
see /usr/share/rancid/cloginrc.sample for an example
|
|
|
|
6) Test clogin access with: clogin -f /var/rancid/.clogin hostname
|
|
|
|
7) Add a cronjob for the rancid user to regularly call rancid-run
|
|
eg: run crontab -u rancid -e and add the lines below
|
|
# run rancid once an hour
|
|
0 * * * * /usr/bin/rancid-run
|
|
# cleanup old logfiles generated by rancid once a day
|
|
50 23 * * * /usr/bin/find /var/rancid/logs -type f -mtime +2 -exec rm {} \;
|
|
"
|