# 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