1#
2# Accepted parameters for 'rpmbuild':
3#
4# --with gpg		- enables gpg support
5# --with tests		- make tests before building
6
7Summary: File integrity and host-based IDS
8Name: samhain
9Version: @VERSION@
10Release: 1
11License: GPL
12Group: System Environment/Base
13Source: %{name}-%{version}.tar.gz
14BuildRoot: %{_tmppath}/%{name}-%{version}-root
15Packager: Andre Oliveira da Costa <brblueser@uol.com.br>
16Provides: %{name}
17%if %{?_with_gpg:1}%{!?_with_gpg:0}
18BuildPreReq: gpg
19%endif
20
21%description
22samhain is an open source file integrity and host-based intrusion
23detection system for Linux and Unix. It can run as a daemon process, and
24and thus can remember file changes -- contrary to a tool that runs from
25cron, if a file is modified you will get only one report, while
26subsequent checks of that file will ignore the modification as it is
27already reported (unless the file is modified again).
28
29samhain can optionally be used as client/server system to provide
30centralized monitoring for multiple host. Logging to a (MySQL or
31PostgreSQL) database is supported.
32
33This package contains only the single host version.
34
35%prep
36%setup -q -n samhain-%{version}
37
38%build
39%if %{?_with_tests:1}%{!?_with_tests:0}
40# test installation (test #7 is only included if --with gpg has been
41# specified)
42for i in `seq 6` %{?_with_gpg:7}; do ./test/test.sh $i; done
43%endif
44./configure --prefix=%{_usr} \
45            --sbindir=%{_sbindir} \
46            --sysconfdir=%{_sysconfdir} \
47            --localstatedir=%{_localstatedir} \
48            --mandir=%{_mandir} \
49%{?_with_gpg:	--with-gpg=`type -p gpg`}
50
51make
52
53%install
54rm -rf $RPM_BUILD_ROOT
55# sstrip shouldn't be used since binaries will be stripped later
56cat << EOF > sstrip
57#!/bin/sh
58echo "*** SSTRIP DISABLED ***"
59EOF
60make DESTDIR=${RPM_BUILD_ROOT} install
61# copy script files to /var/lib/samhain so that we can use them right
62# after the package is installed
63install -m 700 samhain-install.sh init/samhain.startLinux init/samhain.startLSB ${RPM_BUILD_ROOT}%{_localstatedir}/lib/%{name}
64
65%clean
66rm -rf ${RPM_BUILD_ROOT}
67
68%post
69if [ "$1" = 1 ]; then
70        # Activate boot-time start up
71        cd %{_localstatedir}/lib/%{name}
72        /bin/sh ./samhain-install.sh --verbose install-boot
73        if test -f /sbin/chkconfig; then
74		/sbin/chkconfig --add samhain
75		/sbin/chkconfig samhain on
76	fi
77fi
78cat << EOF
79
80Samhain is installed but is NOT running yet, and the database of
81file signatures is NOT initialized yet. Read the documentation,
82review configuration files, and then (i) initialize it
83(%{_sbindir}/samhain -t init)
84and (ii) start it manually
85(%{_sysconfdir}/init.d/samhain start).
86
87It is configured to start automatically on the next boot for runlevels
88[2-5].
89
90EOF
91
92
93%preun
94# stop running instance of samhain, if any
95if [ -f %{_localstatedir}/run/%{name}.pid ]; then
96        %{_sysconfdir}/init.d/samhain stop
97fi
98if [ "$1" = 0 ]; then
99        # remove boot-time scripts and links
100        cd %{_localstatedir}/lib/samhain
101        if [ -f ./samhain-install.sh ]; then
102	    /bin/sh ./samhain-install.sh --verbose uninstall-boot
103	else
104	    if [ -f /sbin/chkconfig ]; then
105		/sbin/chkconfig samhain off
106		/sbin/chkconfig --del  samhain
107            fi
108        fi
109fi
110
111
112%files
113%defattr(-,root,root)
114%dir %{_localstatedir}/run
115%dir %{_localstatedir}/log
116%doc docs/BUGS COPYING docs/Changelog
117%doc LICENSE docs/HOWTO* docs/MANUAL-2_4.* docs/README*
118%{_localstatedir}/lib/%{name}
119%{_sbindir}/%{name}
120%attr(644,root,root) %{_mandir}/man5/samhain*
121%attr(644,root,root) %{_mandir}/man8/samhain*
122%attr(644,root,root) /etc/logrotate.d/@install_name@
123%config(noreplace) %{_sysconfdir}/samhainrc
124
125%changelog
126* Sat Jun 19 2004 Rainer Wichmann
127- replace ./test.sh $i with make test$i
128
129* Sat Jan 03 2004 Rainer Wichmann
130- Use /sbin/chkconfig as in ../samhain.spec.in
131
132* Thu Dec 11 2003 Christian Vanguers <cva at molis dot be>
133- Fixed typo in samhain.spec
134
135* Tue Dec 24 2002 Rainer Wichmann
136- warn user that database must be initialized
137- fix version of MANUAL in '%files'
138- test for chkconfig, use only if found
139
140* Sun Dec 22 2002 Andre Oliveira da Costa <brblueser@uol.com.br> 1.7.0
141- fixed typo with _usr macro on ./configure
142- stops running samhain before uninstall
143- implemented conditionals to allow proper uninstalls/upgrades
144- 'BuildPreReq: gpg' is considered only if '--with gpg' is provided
145- run 'chkconfig' to activate samhain after installation
146- warn user that samhain must be manually started after
147  install/upgrade
148
149* Fri Dec 20 2002 Rainer Wichmann
150- use 'configure' to set version string
151- use standard macros for paths
152
153* Thu Dec 19 2002 Andre Oliveira da Costa <brblueser@uol.com.br> 1.6.6
154- optional parameters '--with gpg' and '--with tests'
155- use of pre-defined macros whenever possible
156
157* Wed Dec 18 2002 Andre Oliveira da Costa <brblueser@uol.com.br> 1.6.6
158- Fixed installation process, avoiding hardcoded paths on the binaries
159  (thks to samhain's author Rainer Wichmann)
160
161* Mon Dec 16 2002 Andre Oliveira da Costa <brblueser@uol.com.br> 1.6.6
162- First attempt to build from sources
163