| # |
| # |
| # Licensed 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 the Go version of Traffic Monitor (tm). |
| # |
| %define debug_package %{nil} |
| Name: traffic_monitor |
| Version: %{traffic_control_version} |
| Release: %{build_number} |
| Summary: Monitor the caches |
| Packager: david_neuman2 at Cable dot Comcast dot com |
| Vendor: Apache Software Foundation |
| Group: Applications/Communications |
| License: Apache License, Version 2.0 |
| URL: https://github.com/apache/trafficcontrol |
| Source: %{_sourcedir}/traffic_monitor-%{traffic_control_version}.tgz |
| |
| %description |
| Installs traffic_monitor |
| |
| %prep |
| |
| %setup |
| |
| %build |
| # copy traffic_monitor binary |
| godir=src/github.com/apache/trafficcontrol/traffic_monitor |
| ( mkdir -p "$godir" && \ |
| cd "$godir" && \ |
| cp -r "$TC_DIR"/traffic_monitor/* . |
| ) || { echo "Could not copy go program at $(pwd): $!"; exit 1; } |
| |
| %install |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/bin |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/conf |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/backup |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/var/run |
| mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/var/log |
| mkdir -p "${RPM_BUILD_ROOT}"/etc/init.d |
| mkdir -p "${RPM_BUILD_ROOT}"/etc/logrotate.d |
| |
| src=src/github.com/apache/trafficcontrol/traffic_monitor |
| cp -p "$src"/traffic_monitor "${RPM_BUILD_ROOT}"/opt/traffic_monitor/bin/traffic_monitor |
| cp "$src"/static/index.html "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static/index.html |
| cp "$src"/static/script.js "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static/script.js |
| cp "$src"/static/style.css "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static/style.css |
| cp "$src"/conf/traffic_ops.cfg "${RPM_BUILD_ROOT}"/opt/traffic_monitor/conf/traffic_ops.cfg |
| cp "$src"/conf/traffic_monitor.cfg "${RPM_BUILD_ROOT}"/opt/traffic_monitor/conf/traffic_monitor.cfg |
| cp "$src"/build/traffic_monitor.init "${RPM_BUILD_ROOT}"/etc/init.d/traffic_monitor |
| cp "$src"/build/traffic_monitor.logrotate "${RPM_BUILD_ROOT}"/etc/logrotate.d/traffic_monitor |
| |
| %pre |
| /usr/bin/getent group traffic_monitor >/dev/null |
| |
| if [ $? -ne 0 ]; then |
| /usr/sbin/groupadd -g 423 traffic_monitor |
| fi |
| |
| /usr/bin/getent passwd traffic_monitor >/dev/null |
| |
| if [ $? -ne 0 ]; then |
| /usr/sbin/useradd -g traffic_monitor -u 423 -d /opt/traffic_monitor -M traffic_monitor |
| fi |
| |
| /usr/bin/passwd -l traffic_monitor >/dev/null |
| /usr/bin/chage -E -1 -I -1 -m 0 -M 99999 -W 7 traffic_monitor |
| |
| if [ -e /etc/init.d/traffic_monitor ]; then |
| /sbin/service traffic_monitor stop |
| fi |
| |
| #don't install over the top of java TM. This is a workaround since yum doesn't respect the Conflicts tag. |
| if [[ $(rpm -q traffic_monitor --qf "%{VERSION}-%{RELEASE}") < 1.9.0 ]] |
| then |
| echo -e "\n****************\n" |
| echo "A java version of traffic_monitor is installed. Please backup/remove that version before installing the golang version of traffic_monitor." |
| echo -e "\n****************\n" |
| exit 1 |
| fi |
| |
| %post |
| |
| /sbin/chkconfig --add traffic_monitor |
| /sbin/chkconfig traffic_monitor on |
| |
| %files |
| %license LICENSE |
| %defattr(644, traffic_monitor, traffic_monitor, 755) |
| %config(noreplace) %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/conf/traffic_monitor.cfg |
| %config(noreplace) %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/conf/traffic_ops.cfg |
| %config(noreplace) %attr(644, root, root) /etc/logrotate.d/traffic_monitor |
| |
| %dir /opt/traffic_monitor |
| %dir /opt/traffic_monitor/bin |
| %dir /opt/traffic_monitor/conf |
| %dir /opt/traffic_monitor/backup |
| %dir /opt/traffic_monitor/static |
| %dir /opt/traffic_monitor/var |
| %dir /opt/traffic_monitor/var/log |
| %dir /opt/traffic_monitor/var/run |
| |
| %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/static/index.html |
| %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/static/script.js |
| %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/static/style.css |
| %attr(755, traffic_monitor, traffic_monitor) /opt/traffic_monitor/bin/traffic_monitor |
| %attr(755, traffic_monitor, traffic_monitor) /etc/init.d/traffic_monitor |
| |
| %preun |
| # args for hooks: https://www.ibm.com/developerworks/library/l-rpm2/ |
| # if $1 = 0, this is an uninstallation, if $1 = 1, this is an upgrade (don't do anything) |
| if [ "$1" = "0" ]; then |
| /sbin/chkconfig traffic_monitor off |
| /etc/init.d/traffic_monitor stop |
| /sbin/chkconfig --del traffic_monitor |
| fi |