help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RPMS or RPM Spec file for cfengine?


From: Alexander Mattausch
Subject: Re: RPMS or RPM Spec file for cfengine?
Date: Fri, 18 Apr 2003 17:51:33 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.3) Gecko/20030312

Villalovos, John L schrieb:

I was wondering if the http://www.cfengine.org/ site will ever have
"official" or even "unofficial" RPMS of the cfengine package posted?  Or
even adding a SPEC file into the tarball.

For myself I know that would be handy rather than reinventing the wheel
since I am sure it has been done dozens if not hundreds of times by
people already :)

We use a special SPEC file for our site generating RPMs for Debian (may be converted into .deb with alien -c), SuSE and OSF1. The Source package cfengine-local.tar.gz contains our init-scripts and the initial configuration files.

HTH,
Alex

Summary: cfengine - A cluster configuration tool
Name:       cfengine
Version:    2.0.5
Release:    2
Group:      Productivity/Networking/Administration
Copyright:  GNU Public License
Source0:     %{name}-%{version}.tar.gz
Source1:     %{name}-local.tar.gz
Patch:       %{name}-%{version}.dif
Packager:   Alexander Mattausch <Alexander.Mattausch@physik.uni-erlangen.de>
Distribution: TFKP Custom
BuildRoot:  /tmp/%{name}-%{version}

%description
cfengine is an abstract programming language for system administrators of
huge heterogeneous networks. With cfengine, system administrators have an
easy and elegant way to maintain complicated networks.

#########################################################################
# Auspacken
%prep
%setup -n %{name}-%{version} -a 1

%ifos osf1
%patch
%endif

#########################################################################
# Bauen
%build

%ifos Linux
      CFLAGS="%{optflags}" ./configure --prefix=%{_prefix} \
                    --infodir=%{_infodir} --mandir=%{_mandir} \
                    --with-berkeleydb=/usr
%else
      CC=cc YACC=yacc LEX=lex CFLAGS="-O4" ./configure --prefix=%{_prefix} \
                    --infodir=%{_infodir} --mandir=%{_mandir} \
                    --with-berkeleydb=/usr/local
%endif

make



#########################################################################
# Installation
%install

if [ -e /etc/debian_version ]; then
    LDIST=Debian
fi

rm -rf $RPM_BUILD_ROOT
mkdir  $RPM_BUILD_ROOT

make DESTDIR=$RPM_BUILD_ROOT install

test -e $RPM_BUILD_ROOT/%{_infodir}/dir && rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
gzip ${RPM_BUILD_ROOT}/%{_infodir}/*
gzip ${RPM_BUILD_ROOT}/%{_mandir}/man8/*

# soll ins %default_docdir
rm -r $RPM_BUILD_ROOT/%{_prefix}/share/cfengine/doc
rm -r $RPM_BUILD_ROOT/%{_prefix}/share/cfengine/html

%ifos Linux
mkdir -p $RPM_BUILD_ROOT/etc/init.d
if [ "$LDIST" == "Debian" ]; then
    install cfengine.debian $RPM_BUILD_ROOT/etc/init.d/cfengine
else
    install cfengine.suse $RPM_BUILD_ROOT/etc/init.d/cfengine
    ln -s ../../etc/init.d/cfengine $RPM_BUILD_ROOT/usr/sbin/rccfengine
fi
%endif

%ifos osf1
mkdir -p $RPM_BUILD_ROOT/sbin/init.d
cp cfengine.osf $RPM_BUILD_ROOT/sbin/init.d/cfengine
chmod 755 $RPM_BUILD_ROOT/sbin/init.d/cfengine
mkdir -p $RPM_BUILD_ROOT/sbin/rc2.d
ln -s ../init.d/cfengine $RPM_BUILD_ROOT/sbin/rc2.d/S20cfengine
ln -s ../init.d/cfengine $RPM_BUILD_ROOT/sbin/rc2.d/K20cfengine
mkdir -p $RPM_BUILD_ROOT/sbin/rc3.d
ln -s ../init.d/cfengine $RPM_BUILD_ROOT/sbin/rc3.d/S20cfengine
ln -s ../init.d/cfengine $RPM_BUILD_ROOT/sbin/rc3.d/K20cfengine
%endif

test -d ${RPM_BUILD_ROOT}/var/cfengine/bin || mkdir -p 
${RPM_BUILD_ROOT}/var/cfengine
test -d ${RPM_BUILD_ROOT}/var/cfengine/inputs || mkdir -p 
${RPM_BUILD_ROOT}/var/cfengine/inputs

# install update.conf
cp update.conf ${RPM_BUILD_ROOT}/var/cfengine/inputs/update.conf
cp cfservd.conf ${RPM_BUILD_ROOT}/var/cfengine/inputs/cfservd.conf


#########################################################################
# Clean
%clean
rm -rf $RPM_BUILD_ROOT


%post
if [ -e /etc/debian_version ]; then
    LDIST=Debian
fi

# /etc/services anpassen
svc="`grep 5308 /etc/services`"
if [ "$svc" = "" ]; then
    cp /etc/services /etc/services.cfeng
    cat >>/etc/services<<EOF
cfengine        5308/tcp
EOF
    echo "/etc/services updated."
    echo "Saved old /etc/services as /etc/services.cfeng."
fi

if [ ! -e /var/cfengine/ppkeys/localhost.pub ]; then
    %{_prefix}/sbin/cfkey
fi
%ifos Linux
if [ "$LDIST" == "Debian" ]; then
    update-rc.d cfengine defaults
else
    insserv cfengine
fi
%endif
exit 0

%preun
%ifos Linux
if [ -e /etc/debian_version ]; then
    LDIST=Debian
fi
if [ "$LDIST" != "Debian" ]; then
    insserv -r cfengine
fi
%endif

%postun
%ifos Linux
if [ -e /etc/debian_version ]; then
    LDIST=Debian
fi
if [ "$LDIST" == "Debian" ]; then
    update-rc.d cfengine remove
fi
%endif

%files
%ifos osf1
%defattr(-,root,system)
%config(missingok) /sbin/rc2.d/*
%config(missingok) /sbin/rc3.d/*
/sbin/init.d/cfengine
%else
%defattr(-,root,root)
/etc/init.d/cfengine
%endif
%{_prefix}/sbin/*
%{_prefix}/share/cfengine
%doc %{_mandir}/man8/*
%doc %{_infodir}/*
%doc doc/*.html README DOCUMENTATION NEWS TODO COPYING AUTHORS ChangeLog
%dir /var/cfengine
%config(noreplace) /var/cfengine/inputs




reply via email to

[Prev in Thread] Current Thread [Next in Thread]