Discussion:
[rancid] RANCID :: RPM
Lance Vermilion
2010-07-19 22:17:02 UTC
Permalink
Has anyone tried this Spec file?
Better yet has anyone got a spec file for 2.3.4?

http://www.shrubbery.net/pipermail/rancid-discuss/attachments/20080227/39e1e42f/attachment.ksh
Lance Vermilion
2010-07-20 00:56:09 UTC
Permalink
John,

Any chance the already included SPEC file can be updated with what I
have here so it will work with RANCID-2.3.4 right away? It might also
be of help to others to have the rpmbuild instructions...especially if
they want an RPM but aren't really familiar with building an RPM.

All,

After slightly modifying the spec file to match the current version
"2.3.4" everything seems to work without an issue. It does an install
(at least on CentOS 5.2) to /usr/bin/clogin...etc created a rancid
user directory of /var/rancid and copies the .cloginrc there just
fine.

For those that don't know how to create and rpm from a spec file. Here
are some short bits of info.
Follow the link below to setup your CentOS.
http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment

#
# Short Instructions:
#
Assumptions: It is assumed you have Expect 5.40 or greater installed,
your Time/Date are current, and you are not logged in as root.

Install rpm-build if it isn't already: sudo yum install rpm-build
Install redhat-rpm-config if it isn't already: sudo yum install
redhat-rpm-config
Create a build environment for your user (DO NOT USE ROOT): mkdir -p
~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} Create your RPM macros
(it is assumed you have do not have a .rpmmacros file): echo '%_topdir
%(echo $HOME)/rpmbuild' > ~/.rpmmacros
Install Make if it isn't already: sudo yum install make
Install gcc if it isn't already: sudo yum install gcc
Download RANCID 2.3.4: wget
ftp://ftp.shrubbery.net/pub/rancid/rancid-2.3.4.tar.gz
Copy the RANCID tar.gz where rpmbuild will look for it: cp
rancid-2.3.4.tar.gz ~/rpmbuild/SOURCES/
Create the RPM spec file (see below for file contents): vi
~/rpmbuild/SPEC/rancid-2.3.4.spec
Change to the SPEC directory: cd ~/rpmbuild/SPEC/
Create the RPM/SRPMs: rpmbuild -ba rancid.2.3.4.spec

Copy/paste what I have below to the
"~/rpmbuild/SPEC/rancid-2.3.4.spec". Exclude ### Start and ###Stop
when you copy/paste.
### Start
Name: rancid
Version: 2.3.4
Release: 1%{?dist}
Summary: Really Awesome New Cisco confIg Differ

Group: Applications/System
License: non-free
URL: http://www.shrubbery.net/rancid/
Source: rancid-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Requires: cvs expect >= 5.40

%package lg
Summary: RANCID Looking Glass CGI scripts
Group: Applications/System

%description
Rancid is a "Really Awesome New Cisco confIg Differ" developed to
maintain CVS controlled copies of router configs. Rancid is not limited
to Cisco devices. It currently supports Cisco routers, Juniper routers,
Catalyst switches, Foundry switches, Redback NASs, ADC EZT3 muxes, MRTd
(and thus likely IRRd), Alteon switches, and HP procurve switches and a
host of others.

%description lg
RANCID also includes looking glass software. It is based on Ed Kern's
looking glass which was once used for http://nitrous.digex.net/, for the
old-school folks who remember it. Our version has added functions, supports
cisco, juniper, and foundry and uses the login scripts that come with
rancid; so it can use telnet or ssh to connect to your devices(s).

%prep
%setup -q

%build
%configure --localstatedir=%{_localstatedir}/rancid
make

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
# Get rid of unwanted /usr/share/rancid install
rm -rf $RPM_BUILD_ROOT/%{_datadir}/rancid
# Move lg CGI scripts to CGI directory
mkdir -p $RPM_BUILD_ROOT/var/www/cgi-bin
mv $RPM_BUILD_ROOT/%{_bindir}/*.cgi $RPM_BUILD_ROOT/var/www/cgi-bin
# Workaround for the stupid rpmbuild to NOT search for dependencies in the
# documentation. We need to do it here as %doc ignores %attr.
find share -type f -print | xargs chmod a-x
# Install the sample .cloginrc file
cp cloginrc.sample $RPM_BUILD_ROOT/%{_localstatedir}/rancid/.cloginrc

%pre
if [ $1 -eq 1 ]; then
egrep -q '^rancid:' /etc/passwd || useradd -M -r -d
%{_localstatedir}/rancid -c "RANCID User" rancid
fi

%postun
if [ $1 -eq 0 ]; then
# It's a matter of taste if we should remove the user on uninstall or not
userdel rancid
fi

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc BUGS CHANGES COPYING FAQ README UPGRADING Todo
%doc share/cisco-load.exp share/cisco-reload.exp
%doc share/downreport share/getipacctg share/rtrfilter
%config(noreplace) /etc/rancid.conf
%{_bindir}/*
%{_mandir}/man1/[a-k]*
%{_mandir}/man1/[m-z]*
%{_mandir}/man5/[a-k]*
%{_mandir}/man5/[m-z]*
%dir %attr(770,rancid,rancid) %{_localstatedir}/rancid
%config(noreplace) %attr(640,rancid,rancid) %{_localstatedir}/rancid/.cloginrc

%files lg
%config(noreplace) /etc/lg.conf
%{_mandir}/man1/lg_intro*
%{_mandir}/man5/lg.conf*
/var/www/cgi-bin/*
%doc README.lg

%changelog
* Mon Jul 19 2010 Lance Vermilion <***@xxxxxxxx> 2.3.4
- Modified Version to be 2.3.4 and Release to be 1%{?dist} instead of 2%{?dist}

* Fri Feb 15 2008 Steve Snodgrass <***@xxxxxxxx> 2.3.2a8-1
- Install .cloginrc as a configuration file
- Don't try to create the rancid user if it already exists

* Wed Feb 13 2008 Steve Snodgrass <***@xxxxxxxx> 2.3.2a8-1
- Create subpackage for looking glass CGI scripts
- Include configuration files in RPM
- Many other tweaks

* Wed Nov 16 2005 Michael Stefaniuc <***@xxxxxxxxxx> 2.3.1-3
- Use /var/rancid as localstatedir
- Create the rancid user on install and remove it on uninstall
- Use %doc correctly

* Wed Nov 02 2005 Michael Stefaniuc <***@xxxxxxxxxx> 2.3.1-2
- Original spec file by Dan Pfleger.
- Add a changelog.
- Make the formating of the spec file adhere to the Fedora Extras Packaging
guidelines.
- New %description based on the README and the website.
- Add cvs Requires.
- Changed Group
- Use macros in the files section. Simplify it.
- Do not install the looking glass cgi's. Those make rpm pull in more perl
module dependencies.
### Stop
Post by Lance Vermilion
Has anyone tried this Spec file?
Better yet has anyone got a spec file for 2.3.4?
http://www.shrubbery.net/pipermail/rancid-discuss/attachments/20080227/39e1e42f/attachment.ksh
Lance Vermilion
2010-07-20 01:07:51 UTC
Permalink
Minor instructions missed.

Added the following inline.

RANCID RPM is located here: ~rpmbuild/RPMS/rancid-2.3.4-1.i386.rpm
RANCID LookingGlass RPM is located here:
~rpmbuild/RPMS/rancid-lg-2.3.4-1.i386.rpm
RANCID SRPM is located here: ~rpmbuild/SRPMS/rancid-2.3.4-1.src.rpm
Post by Lance Vermilion
John,
Any chance the already included SPEC file can be updated with what I
have here so it will work with RANCID-2.3.4 right away? It might also
be of help to others to have the rpmbuild instructions...especially if
they want an RPM but aren't really familiar with building an RPM.
All,
After slightly modifying the spec file to match the current version
"2.3.4" everything seems to work without an issue. It does an install
(at least on CentOS 5.2) to /usr/bin/clogin...etc created a rancid
user directory of /var/rancid and copies the .cloginrc there just
fine.
For those that don't know how to create and rpm from a spec file. Here
are some short bits of info.
Follow the link below to setup your CentOS.
http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment
#
#
Assumptions: It is assumed you have Expect 5.40 or greater installed,
your Time/Date are current, and you are not logged in as root.
Install rpm-build if it isn't already: sudo yum install rpm-build
Install redhat-rpm-config if it isn't already: sudo yum install
redhat-rpm-config
Create a build environment for your user (DO NOT USE ROOT): mkdir -p
~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} Create your RPM macros
(it is assumed you have do not have a .rpmmacros file): echo '%_topdir
%(echo $HOME)/rpmbuild' > ~/.rpmmacros
Install Make if it isn't already: sudo yum install make
Install gcc if it isn't already: sudo yum install gcc
Download RANCID 2.3.4: wget
ftp://ftp.shrubbery.net/pub/rancid/rancid-2.3.4.tar.gz
Copy the RANCID tar.gz where rpmbuild will look for it: cp
rancid-2.3.4.tar.gz ~/rpmbuild/SOURCES/
Create the RPM spec file (see below for file contents): vi
~/rpmbuild/SPEC/rancid-2.3.4.spec
Change to the SPEC directory: cd ~/rpmbuild/SPEC/
Create the RPM/SRPMs: rpmbuild -ba rancid.2.3.4.spec
RANCID RPM is located here: ~rpmbuild/RPMS/rancid-2.3.4-1.i386.rpm
RANCID LookingGlass RPM is located here:
~rpmbuild/RPMS/rancid-lg-2.3.4-1.i386.rpm
RANCID SRPM is located here: ~rpmbuild/SRPMS/rancid-2.3.4-1.src.rpm
Post by Lance Vermilion
Copy/paste what I have below to the
"~/rpmbuild/SPEC/rancid-2.3.4.spec". Exclude ### Start and ###Stop
when you copy/paste.
### Start
Name:           rancid
Version:        2.3.4
Release:        1%{?dist}
Summary:        Really Awesome New Cisco confIg Differ
Group:          Applications/System
License:        non-free
URL:            http://www.shrubbery.net/rancid/
Source:         rancid-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-root
Requires:       cvs expect >= 5.40
%package lg
Summary:        RANCID Looking Glass CGI scripts
Group:          Applications/System
%description
Rancid is a "Really Awesome New Cisco confIg Differ" developed to
maintain CVS controlled copies of router configs. Rancid is not limited
to Cisco devices. It currently supports Cisco routers, Juniper routers,
Catalyst switches, Foundry switches, Redback NASs, ADC EZT3 muxes, MRTd
(and thus likely IRRd), Alteon switches, and HP procurve switches and a
host of others.
%description lg
RANCID also includes looking glass software. It is based on Ed Kern's
looking glass which was once used for http://nitrous.digex.net/, for the
old-school folks who remember it. Our version has added functions, supports
cisco, juniper, and foundry and uses the login scripts that come with
rancid; so it can use telnet or ssh to connect to your devices(s).
%prep
%setup -q
%build
%configure --localstatedir=%{_localstatedir}/rancid
make
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
# Get rid of unwanted /usr/share/rancid install
rm -rf $RPM_BUILD_ROOT/%{_datadir}/rancid
# Move lg CGI scripts to CGI directory
mkdir -p $RPM_BUILD_ROOT/var/www/cgi-bin
mv $RPM_BUILD_ROOT/%{_bindir}/*.cgi $RPM_BUILD_ROOT/var/www/cgi-bin
# Workaround for the stupid rpmbuild to NOT search for dependencies in the
# documentation. We need to do it here as %doc ignores %attr.
find share -type f -print | xargs chmod a-x
# Install the sample .cloginrc file
cp cloginrc.sample $RPM_BUILD_ROOT/%{_localstatedir}/rancid/.cloginrc
%pre
if [ $1 -eq 1 ]; then
   egrep -q '^rancid:' /etc/passwd || useradd -M -r -d
%{_localstatedir}/rancid -c "RANCID User" rancid
fi
%postun
if [ $1 -eq 0 ]; then
   # It's a matter of taste if we should remove the user on uninstall or not
   userdel rancid
fi
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc BUGS CHANGES COPYING FAQ README UPGRADING Todo
%doc share/cisco-load.exp share/cisco-reload.exp
%doc share/downreport share/getipacctg share/rtrfilter
%config(noreplace) /etc/rancid.conf
%{_bindir}/*
%{_mandir}/man1/[a-k]*
%{_mandir}/man1/[m-z]*
%{_mandir}/man5/[a-k]*
%{_mandir}/man5/[m-z]*
%dir %attr(770,rancid,rancid) %{_localstatedir}/rancid
%config(noreplace) %attr(640,rancid,rancid) %{_localstatedir}/rancid/.cloginrc
%files lg
%config(noreplace) /etc/lg.conf
%{_mandir}/man1/lg_intro*
%{_mandir}/man5/lg.conf*
/var/www/cgi-bin/*
%doc README.lg
%changelog
- Modified Version to be 2.3.4 and Release to be 1%{?dist} instead of 2%{?dist}
- Install .cloginrc as a configuration file
- Don't try to create the rancid user if it already exists
- Create subpackage for looking glass CGI scripts
- Include configuration files in RPM
- Many other tweaks
- Use /var/rancid as localstatedir
- Create the rancid user on install and remove it on uninstall
- Use %doc correctly
- Original spec file by Dan Pfleger.
- Add a changelog.
- Make the formating of the spec file adhere to the Fedora Extras Packaging
 guidelines.
- New %description based on the README and the website.
- Add cvs Requires.
- Changed Group
- Use macros in the files section. Simplify it.
- Do not install the looking glass cgi's. Those make rpm pull in more perl
 module dependencies.
### Stop
Post by Lance Vermilion
Has anyone tried this Spec file?
Better yet has anyone got a spec file for 2.3.4?
http://www.shrubbery.net/pipermail/rancid-discuss/attachments/20080227/39e1e42f/attachment.ksh
Loading...