Skip to content

Instantly share code, notes, and snippets.

@nmilford
Created April 19, 2013 17:30
Show Gist options
  • Save nmilford/5421843 to your computer and use it in GitHub Desktop.
Save nmilford/5421843 to your computer and use it in GitHub Desktop.
Initial glu spec attempt
%define __jar_repack %{nil}
%define glu_ver 4.4.0
%define glu_pkg org.linkedin.glu.packaging-all-%{glu_ver}
%define glu_home /opt/glu
Name: glu
Version: %{glu_ver}
Release: 1%{?dist}
Source: http://repo.nydc1.outbrain.com/Misc/glu/%{glu_pkg}.tgz
License: Apache
Group: Development/Tools
Summary: glu is a free/open source deployment and monitoring automation platform.
BuildRoot: %{_tmppath}/%{name}-%{version}-root
URL: https://github.com/linkedin/glu
Vendor: Linkedin
BuildArch: noarch
%description
glu's goal is to deploy (and monitor) applications to an arbitrary large set of
nodes efficiently, with minimum/no human interaction, securely, in a
reproducible manner.
%package agent
Summary: Service and utils for a glu deployment agent.
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description agent
The glu agent is an active process that needs to run on every host where
applications need to be deployed.
%package console
Summary: Web app and tools for the glu/Zk orchestration engine.
Group: Development/Tools
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description console
The glu console is a web application that offers a graphical presentation on top
of the glu/Zk orchestration engine.
%prep
%setup -n %{glu_pkg}
%build
%clean
rm -rf %{buildroot}
%install
install -d -m 755 %{buildroot}/%{glu_home}/
install -m 644 %{_builddir}/%{glu_pkg}/*.txt %{buildroot}/%{glu_home}/
install -m 644 %{_builddir}/%{glu_pkg}/*.md %{buildroot}/%{glu_home}/
install -m 644 %{_builddir}/%{glu_pkg}/*.rst %{buildroot}/%{glu_home}/
install -m 644 %{_builddir}/%{glu_pkg}/*.html %{buildroot}/%{glu_home}/
install -d -m 755 %{buildroot}/%{glu_home}/agent-cli/
install -d -m 755 %{buildroot}/%{glu_home}/agent-cli/bin/
install -m 755 %{_builddir}/%{glu_pkg}//agent-cli/bin/*.sh %{buildroot}/%{glu_home}/agent-cli/bin/
install -d -m 755 %{buildroot}/%{glu_home}/agent-cli/conf/
install -m 644 %{_builddir}/%{glu_pkg}/agent-cli/conf/clientConfig.properties %{buildroot}/%{glu_home}/agent-cli/conf/
install -m 644 %{_builddir}/%{glu_pkg}/agent-cli/conf/log4j.xml %{buildroot}/%{glu_home}/agent-cli/conf/
install -d -m 755 %{buildroot}/%{glu_home}/agent-cli/conf/keys/
install -m 644 %{_builddir}/%{glu_pkg}/agent-cli/conf/keys/* %{buildroot}/%{glu_home}/agent-cli/conf/keys/
install -d -m 755 %{buildroot}/%{glu_home}/agent-server/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/*.txt %{buildroot}/%{glu_home}/agent-server/
install -d -m 755 %{buildroot}/%{glu_home}/agent-server/bin
install -m 755 %{_builddir}/%{glu_pkg}/agent-server/bin/*.sh %{buildroot}/%{glu_home}/agent-server/bin/
install -d -m 755 %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/*.txt %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/*.md %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/*.rst %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/*.html %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/
install -d -m 755 %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/bin/
install -m 755 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/bin/agentctl.sh %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/bin/
install -d -m 755 %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/conf/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/conf/* %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/conf/
install -d -m 755 %{buildroot}/%{glu_home}/agent-server/%{glu_ver}/lib/
install -m 644 %{_builddir}/%{glu_pkg}/agent-server/%{glu_ver}/lib/*.jar %{buildroot}/%{glu_home}/agent-server//%{glu_ver}/lib/
install -d -m 755 %{buildroot}/%{glu_home}/bin/
install -m 755 %{_builddir}/%{glu_pkg}/bin/*.sh %{buildroot}/%{glu_home}/bin/
install -d -m 755 %{buildroot}/%{glu_home}/console-cli/
install -d -m 755 %{buildroot}/%{glu_home}/console-cli/bin
install -m 755 %{_builddir}/%{glu_pkg}/console-cli/bin/*.py %{buildroot}/%{glu_home}/console-cli/bin/
install -d -m 755 %{buildroot}/%{glu_home}/console-cli/lib/
install -d -m 755 %{buildroot}/%{glu_home}/console-cli/lib/python/
install -d -m 755 %{buildroot}/%{glu_home}/console-cli/lib/python/gluconsole/
install -m 755 %{_builddir}/%{glu_pkg}/console-cli/lib/python/gluconsole/*.py %{buildroot}/%{glu_home}/console-cli/lib/python/gluconsole/
install -d -m 755 %{buildroot}/%{glu_home}/console-cli/lib/python/site-packages/
install -m 644 %{_builddir}/%{glu_pkg}/console-cli/lib/python/site-packages/* %{buildroot}/%{glu_home}/console-cli/lib/python/site-packages/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/
install -m 755 %{_builddir}/%{glu_pkg}/console-server/bin/*.sh %{buildroot}/%{glu_home}/console-server/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/conf/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/conf/* %{buildroot}/%{glu_home}/console-server/conf/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/keys/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/keys/* %{buildroot}/%{glu_home}/console-server/keys/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/docs/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/docs/html/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/docs/html/*.html %{buildroot}/%{glu_home}/console-server/glu/docs/html/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/docs/html/_images/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/docs/html/_images/*.png %{buildroot}/%{glu_home}/console-server/glu/docs/html/_images/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/docs/html/_static/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/docs/html/_static/*.css %{buildroot}/%{glu_home}/console-server/glu/docs/html/_static/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/docs/html/_static/*.png %{buildroot}/%{glu_home}/console-server/glu/docs/html/_static/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/docs/html/_static/*.js %{buildroot}/%{glu_home}/console-server/glu/docs/html/_static/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/plugins/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/plugins/*.txt %{buildroot}/%{glu_home}/console-server/glu/repository/plugins/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/hello-world/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/scripts/org.linkedin.glu.script-hello-world-%{glu_ver}/* %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/hello-world
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/jetty/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/scripts/org.linkedin.glu.script-jetty-%{glu_ver}/* %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/jetty/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/noop/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/scripts/org.linkedin.glu.script-noop-%{glu_ver}/* %{buildroot}/%{glu_home}/console-server/glu/repository/scripts/noop/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/systems/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/systems/*.json %{buildroot}/%{glu_home}/console-server/glu/repository/systems/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/tgzs/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/tgzs/* %{buildroot}/%{glu_home}/console-server/glu/repository/tgzs/
install -d -m 755 %{buildroot}/%{glu_home}/console-server/glu/repository/wars/
install -m 644 %{_builddir}/%{glu_pkg}/console-server/glu/repository/wars/* %{buildroot}/%{glu_home}/console-server/glu/repository/wars/
#install -d -m 755 %{buildroot}/%{glu_home}/zookeeper-server/
#install -m 644 %{_builddir}/%{glu_pkg}/org.linkedin.zookeeper-server-1.4.1/*.txt %{buildroot}/%{glu_home}/zookeeper-server/
#install -m 644 %{_builddir}/%{glu_pkg}/org.linkedin.zookeeper-server-1.4.1/*.md %{buildroot}/%{glu_home}/zookeeper-server/
#install -d -m 755 %{buildroot}/%{glu_home}/zookeeper-server/bin/
#install -m 755 %{_builddir}/%{glu_pkg}/org.linkedin.zookeeper-server-1.4.1/bin/*.sh %{buildroot}/%{glu_home}/zookeeper-server/bin/
#install -d -m 755 %{buildroot}/%{glu_home}/zookeeper-server/conf/
#install -m 644 %{_builddir}/%{glu_pkg}/org.linkedin.zookeeper-server-1.4.1/conf/* %{buildroot}/%{glu_home}/zookeeper-server/conf/
#install -d -m 755 %{buildroot}/%{glu_home}/zookeeper-server/data/
#install -d -m 755 %{buildroot}/%{glu_home}/zookeeper-server/lib/
#install -m 644 %{_builddir}/%{glu_pkg}/org.linkedin.zookeeper-server-1.4.1/lib/*.jar %{buildroot}/%{glu_home}/zookeeper-server/lib/
rm -rf %{buildroot}/%{glu_home}/org.linkedin.*
install -d -m 755 %{buildroot}/%{glu_home}/zookeeper-server/logs/
install -d -m 755 %{buildroot}/%{glu_home}/setup/
install -d -m 755 %{buildroot}/%{glu_home}/setup/bin/
install -m 755 %{_builddir}/%{glu_pkg}/setup/bin/*.sh %{buildroot}/%{glu_home}/setup/bin/
install -d -m 755 %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1
install -m 644 %{_builddir}/%{glu_pkg}/setup/org.linkedin.zookeeper-cli-1.4.1/*.txt %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1
install -m 644 %{_builddir}/%{glu_pkg}/setup/org.linkedin.zookeeper-cli-1.4.1/*.md %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1
install -d -m 755 %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1bin/
install -m 755 %{_builddir}/%{glu_pkg}/setup/org.linkedin.zookeeper-cli-1.4.1/bin/*.sh %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1bin/
install -d -m 755 %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1conf/
install -m 644 %{_builddir}/%{glu_pkg}/setup/org.linkedin.zookeeper-cli-1.4.1/conf/* %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1conf/
install -d -m 755 %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1lib/
install -m 644 %{_builddir}/%{glu_pkg}/setup/org.linkedin.zookeeper-cli-1.4.1/lib/* %{buildroot}/%{glu_home}/setup/org.linkedin.zookeeper-cli-1.4.1lib/
install -d -m 755 %{buildroot}/%{glu_home}/setup/zookeeper-config/
install -m 755 %{_builddir}/%{glu_pkg}/setup/zookeeper-config/* %{buildroot}/%{glu_home}/setup/zookeeper-config/
%files
%defattr(-,root,root)
%{glu_home}/*.txt
%{glu_home}/*.md
%{glu_home}/*.html
%{glu_home}/*.rst
%{glu_home}/bin/setup-zookeeper.sh
%{glu_home}/bin/tutorial.sh
%{glu_home}/bin/zookeeper-cli.sh
%{glu_home}/bin/zookeeper-server.sh
%{glu_home}/setup/*
%files agent
%defattr(-,root,root)
%{glu_home}/bin/agent-cli.sh
%{glu_home}/bin/agent-server.sh
%{glu_home}/bin/setup-agent.sh
%{glu_home}/agent-*
%files console
%defattr(-,root,root)
%{glu_home}/bin/console-cli.sh
%{glu_home}/bin/console-server.sh
%{glu_home}/console-*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment