diff options
Diffstat (limited to 'packaging/rpm/honeycomb.spec')
-rw-r--r-- | packaging/rpm/honeycomb.spec | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/packaging/rpm/honeycomb.spec b/packaging/rpm/honeycomb.spec new file mode 100644 index 000000000..1101a71ed --- /dev/null +++ b/packaging/rpm/honeycomb.spec @@ -0,0 +1,66 @@ +# Honyecomb is a noarch package, so this isn't necessary. It's also very slow. +%define __jar_repack 0 +%define _version %(./version) +%define _release %(./release) + +Name: honeycomb +Version: %{_version} +# The Fedora/CentOS packaging guidelines *require* the use of a disttag. Honeycomb's +# RPM build doesn't do anything Fedora/CentOS specific, so the disttag is +# unnecessary and unused in our case, but both the docs and the pros (apevec) +# agree that we should include it. +# See: https://fedoraproject.org/wiki/Packaging:DistTag +Release: %{_release} +BuildArch: noarch +Summary: fd.io Honeycomb +Group: Applications/Communications +License: Apache-1.0 +URL: http://www.fd.io +Source0: v3po-karaf-%{_version}-SNAPSHOT.zip +Source1: honeycomb.service +Requires: vpp, java >= 1:1.8.0 +# Required for creating honeycomb group +Requires(pre): shadow-utils +# Required for configuring systemd +BuildRequires: systemd + +%pre +# Create `honeycomb` user/group +# Short circuits if the user/group already exists +# Home dir must be a valid path for various files to be created in it +getent passwd honeycomb > /dev/null || useradd honeycomb -M -d $RPM_BUILD_ROOT/opt/%name +getent group honeycomb > /dev/null || groupadd honeycomb +getent group vpp > /dev/null && usermod -a -G vpp honeycomb + +%description +fd.io Honeycomb + +%prep +# Extract Source0 (Honeycomb archive) +%autosetup -n v3po-karaf-%{_version}-SNAPSHOT + +%install +# Create directory in build root for Honeycomb +mkdir -p $RPM_BUILD_ROOT/opt/%name +# Copy Honeycomb from archive to its dir in build root +cp -r ../v3po-karaf-%{_version}-SNAPSHOT/* $RPM_BUILD_ROOT/opt/%name +# Create directory in build root for systemd .service file +mkdir -p $RPM_BUILD_ROOT/%{_unitdir} +# Copy Honeycomb's systemd .service file to correct dir in build root +echo "PWD:$PWD" +cp ${RPM_BUILD_ROOT}/../../%{name}.service $RPM_BUILD_ROOT/%{_unitdir}/%name.service + +%postun +# When the RPM is removed, the subdirs containing new files wouldn't normally +# be deleted. Manually clean them up. +# Warning: This does assume there's no data there that should be preserved +if [ $1 -eq 0 ]; then + rm -rf $RPM_BUILD_ROOT/opt/%name +fi + +%files +# Honeycomb will run as honeycomb:honeycomb, set as user:group for honeycomb dir, don't override mode +%attr(-,honeycomb,honeycomb) /opt/%name +# Configure systemd unitfile user/group/mode +%attr(0644,root,root) %{_unitdir}/%name.service + |