blob: 35ce519cb12439b569ef11485d695091f6abe035 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# RPM Spec file for Chukwa v.@chukwaVersion@
%define _topdir @build.dir@
%define _prefix @rpm.prefix@
%define _conf_dir @rpm.conf.dir@
%define uid @rpm.uid@
%define gid @rpm.gid@
%define hdfsusage_uid @rpm.hdfsusage.uid@
%define name chukwa
%define summary Distributed Computing Monitoring Framework.
%define version @chukwaVersion@
%define release @chukwaRelease@
%define license ASF 2.0
%define group Development/Monitoring
%define source %{name}-%{version}.tar.gz
%define vendor Apache Software Fundation
%define packager Hadoop Chukwa Team
%define buildroot %{_topdir}/BUILD
Name: %{name}
Version: %{version}
Release: %{release}
Packager: %{packager}
Vendor: %{vendor}
License: %{license}
Summary: %{summary}
Group: %{group}
Source0: %{source}
Prefix: %{_prefix}
Buildroot: %{buildroot}
%description
Chukwa is the monitoring framework for large scale distributed
clusters.
%prep
%setup -q
%build
export hdfsusage_uid=%{hdfsusage_uid}
if [ -z "${hdfsusage_uid}" ]; then
export hdfsusage_uid=%{uid}
fi
mkdir -p %{buildroot}%{_prefix}
if [ -d %{buildroot}%{_prefix} ]; then
rm -rf %{buildroot}%{_prefix}
fi
mv %{buildroot}/%{name}-%{version} %{buildroot}%{_prefix}
cd %{buildroot}%{_prefix}
mkdir -p %{buildroot}/etc/init.d
cat %{buildroot}%{_prefix}/tools/init.d/chukwa-data-processors | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' > %{buildroot}/etc/init.d/chukwa-data-processors
cat %{buildroot}%{_prefix}/tools/init.d/chukwa-collector | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' > %{buildroot}/etc/init.d/chukwa-collector
cat %{buildroot}%{_prefix}/tools/service/chukwa-agent/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-agent/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-agent/run.new %{buildroot}%{_prefix}/tools/service/chukwa-agent/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-df/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-df/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-df/run.new %{buildroot}%{_prefix}/tools/service/chukwa-df/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-iostat/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-iostat/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-iostat/run.new %{buildroot}%{_prefix}/tools/service/chukwa-iostat/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-netstat/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-netstat/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-netstat/run.new %{buildroot}%{_prefix}/tools/service/chukwa-netstat/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-sar/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-sar/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-sar/run.new %{buildroot}%{_prefix}/tools/service/chukwa-sar/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-top/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-top/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-top/run.new %{buildroot}%{_prefix}/tools/service/chukwa-top/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-ps/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-ps/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-ps/run.new %{buildroot}%{_prefix}/tools/service/chukwa-ps/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-collector/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-collector/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-collector/run.new %{buildroot}%{_prefix}/tools/service/chukwa-collector/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-pbsnodes/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-pbsnodes/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-pbsnodes/run.new %{buildroot}%{_prefix}/tools/service/chukwa-pbsnodes/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-torque/run | \
sed 's:CHUKWA_USER=chukwa:CHUKWA_USER=%{uid}:' | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-torque/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-torque/run.new %{buildroot}%{_prefix}/tools/service/chukwa-torque/run
cat %{buildroot}%{_prefix}/tools/service/chukwa-hdfsusage/run | \
sed "s:CHUKWA_USER=chukwa:CHUKWA_USER=${hdfsusage_uid}:" | \
sed 's:CHUKWA_HOME=/usr/local/chukwa:CHUKWA_HOME=%{_prefix}:' | \
sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' \
> %{buildroot}%{_prefix}/tools/service/chukwa-hdfsusage/run.new
mv %{buildroot}%{_prefix}/tools/service/chukwa-hdfsusage/run.new %{buildroot}%{_prefix}/tools/service/chukwa-hdfsusage/run
chmod a+x %{buildroot}%{_prefix}/tools/expire.sh
chmod a+x %{buildroot}/etc/init.d/chukwa-*
chmod -R a+x %{buildroot}%{_prefix}/tools/service/chukwa-*
rm -rf %{buildroot}%{_prefix}/src
rm -rf %{buildroot}%{_prefix}/build.xml
%post
if [ -d /service/chukwa-agent ]; then
if [ ! -L /service/chukwa-agent ]; then
rm -rf /service/chukwa-agent
fi
fi
if [ -d /service/chukwa-df ]; then
if [ ! -L /service/chukwa-df ]; then
rm -rf /service/chukwa-df
fi
fi
if [ -d /service/chukwa-iostat ]; then
if [ ! -L /service/chukwa-iostat ]; then
rm -rf /service/chukwa-iostat
fi
fi
if [ -d /service/chukwa-netstat ]; then
if [ ! -L /service/chukwa-netstat ]; then
rm -rf /service/chukwa-netstat
fi
fi
if [ -d /service/chukwa-ps ]; then
if [ ! -L /service/chukwa-ps ]; then
rm -rf /service/chukwa-ps
fi
fi
if [ -d /service/chukwa-sar ]; then
if [ ! -L /service/chukwa-sar ]; then
rm -rf /service/chukwa-sar
fi
fi
if [ -d /service/chukwa-top ]; then
if [ ! -L /service/chukwa-top ]; then
rm -rf /service/chukwa-top
fi
fi
mkdir -p %{_prefix}
ln -sf %{_prefix}/tools/service/chukwa-agent /service/chukwa-agent
ln -sf %{_prefix}/tools/service/chukwa-df /service/chukwa-df
ln -sf %{_prefix}/tools/service/chukwa-iostat /service/chukwa-iostat
ln -sf %{_prefix}/tools/service/chukwa-netstat /service/chukwa-netstat
ln -sf %{_prefix}/tools/service/chukwa-sar /service/chukwa-sar
ln -sf %{_prefix}/tools/service/chukwa-top /service/chukwa-top
ln -sf %{_prefix}/tools/service/chukwa-ps /service/chukwa-ps
echo "Congratulation! You have successfully installed Chukwa."
%preun
echo
%postun
if [ ! -f /etc/init.d/chukwa-collector ]; then
rm -f /service/chukwa-*
fi
%files
%defattr(-,%{uid},%{gid})
%{_prefix}
%defattr(-,root,root)
/etc/init.d/chukwa-data-processors
/etc/init.d/chukwa-collector