view logstash.spec @ 13:c0150404962d

start working on building from source
author Carl Byington <carl@five-ten-sg.com>
date Sat, 06 Apr 2013 08:48:09 -0700
parents 4899fb1b3eb3
children 0e45fe64b10d
line wrap: on
line source

# prevent brp repack jar files
%define __os_install_post %{nil}

%define _bindir  /usr/local/bin
%define ES_VERSION 0.20.6
%define gtcommit   06a620d011d08bd2c1099c0d0810c053bf105400

Summary:        logstash is a tool for managing events and logs.
Name:           logstash
Version:        1.1.9
Release:        0
License:        Apache 2.0
Group:          System Environment/Daemons
URL:            http://logstash.net/
BuildArch:      noarch
Source0:        https://logstash.objects.dreamhost.com/release/%{name}-%{version}-monolithic.jar
Source1:        https://logstash.jira.com/secure/attachment/12610/logstash_index_cleaner.py
#Source2:         curl https://nodeload.github.com/logstash/logstash/tar.gz/v1.1.9 >logstash-1.1.9.tar.gz
Source2:        %{name}-%{version}.tar.gz
Source3:        %{name}.Makefile
#Source4:         curl https://nodeload.github.com/elasticsearch/elasticsearch/tar.gz/V%{ES_VERSION}.tar.gz >elasticsearch-%{ES_VERSION}.tar.gz
Source4:        elasticsearch-%{ES_VERSION}.tar.gz
#Source5:         https://github.com/NickPadilla/GraphTastic/tar.gz/%{gtcommit} >GraphTastic.tar.gz
Source5:        GraphTastic.tar.gz
Source10:       %{name}.rc
Source11:       %{name}.cron
Source12:       %{name}.conf
Source13:       %{name}.sysconfig
Source20:       apache.pattern
Source21:       sendmail.pattern
Source22:       dnsbl.pattern
Requires:       logrotate httpd java-1.7.0-openjdk python-pip python-argparse python-ordereddict
Requires(pre):          /usr/sbin/useradd
Requires(pre):          /usr/bin/getent
Requires(postun):       /usr/sbin/userdel
Requires(post,preun):   /sbin/chkconfig
Requires(post,preun):   /sbin/service
#BuildRequires:  maven
BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)


%description
logstash is a tool for managing events and logs. You can use it to
collect logs, parse them, and store them for later use (like, for
searching). Speaking of searching, logstash comes with a web interface
for searching and drilling into all of your logs.


%prep
%setup -q -T -b 2
mkdir ES
cd ES
gzip -dc %SOURCE4 | tar -xvvf -
cd ..
mkdir GT
cd GT
gzip -dc %SOURCE5 | tar -xvvf -
mv GraphTastic-%{gtcommit} GraphTastic


%build
make -f %SOURCE3


%install
# for now, ignore the results of the build, and just package the source jar files.
rm -rf $RPM_BUILD_ROOT
mkdir  -p $RPM_BUILD_ROOT/var/log/%{name}
install -D -m 750 %SOURCE0   $RPM_BUILD_ROOT/%{_bindir}/%{name}.jar
install -D -m 750 %SOURCE1   $RPM_BUILD_ROOT/%{_bindir}/logstash_index_cleaner.py
install -D -m 755 %SOURCE10  $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
install -D -m 755 %SOURCE11  $RPM_BUILD_ROOT/etc/cron.daily/%{name}
install -D -m 640 %SOURCE12  $RPM_BUILD_ROOT/etc/%{name}/%{name}.conf
install -D -m 640 %SOURCE13  $RPM_BUILD_ROOT/etc/sysconfig/%{name}
install -D -m 640 %SOURCE20  $RPM_BUILD_ROOT/var/lib/%{name}/data/patterns/apache
install -D -m 640 %SOURCE21  $RPM_BUILD_ROOT/var/lib/%{name}/data/patterns/sendmail
install -D -m 640 %SOURCE22  $RPM_BUILD_ROOT/var/lib/%{name}/data/patterns/dnsbl


%pre
/usr/bin/getent passwd %{name} >/dev/null || /usr/sbin/useradd -r -d /var/lib/%{name} -M -c "%{name} pseudo-user" %{name} >/dev/null
pip-python install pyes || :


%post
/sbin/chkconfig --add %{name}
setfacl -m u:logstash:rx /var/log/httpd
setfacl -m u:logstash:r  /var/log/messages
setfacl -m u:logstash:r  /var/log/maillog


%preun
[ $1 = 0 ] && /sbin/service %{name} stop    || :
[ $1 = 0 ] && /sbin/chkconfig --del %{name} || :


%postun
[ $1 = 0 ] && setfacl -x u:logstash /var/log/httpd    || :
[ $1 = 0 ] && setfacl -x u:logstash /var/log/messages || :
[ $1 = 0 ] && setfacl -x u:logstash /var/log/maillog  || :
[ $1 = 0 ] && userdel %{name} || :


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%attr(0750,%{name},root) %{_bindir}/*
%dir %attr(0750,%{name},root) /etc/%{name}
%config(noreplace) %attr(0640,%{name},root) /etc/%{name}/%{name}.conf
%config(noreplace) %attr(0640,%{name},root) /etc/sysconfig/%{name}
/etc/rc.d/init.d/%{name}
/etc/cron.daily/%{name}
%dir %attr(0750,%{name},root) /var/log/%{name}
%dir %attr(0750,%{name},root) /var/lib/%{name}
%dir %attr(0750,%{name},root) /var/lib/%{name}/data
%dir %attr(0750,%{name},root) /var/lib/%{name}/data/patterns
%config(noreplace) %attr(0640,%{name},root) /var/lib/%{name}/data/patterns/sendmail
%config(noreplace) %attr(0640,%{name},root) /var/lib/%{name}/data/patterns/apache
%config(noreplace) %attr(0640,%{name},root) /var/lib/%{name}/data/patterns/dnsbl


%changelog
* Fri Mar 22 2013  <carl@five-ten-sg.com> - 1.1.9-0
- Initial build.