Added rpm for honeycomb
authorEd Warnicke <[email protected]>
Wed, 15 Jun 2016 16:27:53 +0000 (16:27 +0000)
committerDave Wallace <[email protected]>
Wed, 15 Jun 2016 16:57:34 +0000 (16:57 +0000)
Change-Id: I2dd2f1bae1c5f0b0232b8e453c3fa8a1761d657d
Signed-off-by: Ed Warnicke <[email protected]>
packaging/rpm/.gitignore [new file with mode: 0644]
packaging/rpm/honeycomb.service [new file with mode: 0644]
packaging/rpm/honeycomb.spec [new file with mode: 0644]
packaging/rpm/release [new file with mode: 0755]
packaging/rpm/rpmbuild.sh [new file with mode: 0755]
packaging/rpm/version [new file with mode: 0755]

diff --git a/packaging/rpm/.gitignore b/packaging/rpm/.gitignore
new file mode 100644 (file)
index 0000000..2da6c31
--- /dev/null
@@ -0,0 +1,6 @@
+BUILD
+BUILDROOT  
+RPMS
+SOURCES
+SPECS  
+SRPMS
diff --git a/packaging/rpm/honeycomb.service b/packaging/rpm/honeycomb.service
new file mode 100644 (file)
index 0000000..4752c13
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=fd.io Honeycomb
+Wants=vpp.service
+After=vpp.service
+
+[Service]
+Type=forking
+ExecStart=/opt/honeycomb/bin/start
+User=honeycomb
+Group=honeycomb
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/packaging/rpm/honeycomb.spec b/packaging/rpm/honeycomb.spec
new file mode 100644 (file)
index 0000000..1101a71
--- /dev/null
@@ -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
+
diff --git a/packaging/rpm/release b/packaging/rpm/release
new file mode 100755 (executable)
index 0000000..c4bf723
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+echo $BUILD_NUMBER
diff --git a/packaging/rpm/rpmbuild.sh b/packaging/rpm/rpmbuild.sh
new file mode 100755 (executable)
index 0000000..b4a0d69
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/bash
+set -e
+DIR=$(dirname $0)
+DIR=$(readlink -f $DIR)
+ZIPDIR=${DIR}/../../v3po/karaf/target/
+ZIPFILE=${ZIPDIR}/v3po-karaf-1.0.0-SNAPSHOT.zip
+mkdir -p ${DIR}/SOURCES/
+cp $ZIPFILE ${DIR}/SOURCES/
+cp ${DIR}/honeycomb.spec ${DIR}/SOURCES/
+rpmbuild -bb --define "_topdir ${DIR}"  honeycomb.spec
diff --git a/packaging/rpm/version b/packaging/rpm/version
new file mode 100755 (executable)
index 0000000..3fc0d10
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/bash
+echo 1.0.0