From 5d15c9ba461d4c1946b2315e18aeffff0ef898dd Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Tue, 11 Oct 2016 17:04:57 +0200 Subject: HONEYCOMB-217 Ubuntu16 (systemd) specific packaging Change-Id: Id1c962412194dd809e68f27d7e62b5ab36378be3 Signed-off-by: Maros Marsalek --- packaging/deb/.gitignore | 2 +- packaging/deb/common/debuild.sh | 8 ++++++ packaging/deb/common/prepare.sh | 45 +++++++++++++++++++++++++++++++ packaging/deb/debian/compat | 1 - packaging/deb/debian/control | 14 ---------- packaging/deb/debian/copyright | 23 ---------------- packaging/deb/debian/rules | 32 ---------------------- packaging/deb/debian/source/format | 1 - packaging/deb/debuild.sh | 45 ------------------------------- packaging/deb/honeycomb.conf | 8 ------ packaging/deb/trusty/debian/compat | 1 + packaging/deb/trusty/debian/control | 14 ++++++++++ packaging/deb/trusty/debian/copyright | 23 ++++++++++++++++ packaging/deb/trusty/debian/rules | 32 ++++++++++++++++++++++ packaging/deb/trusty/debian/source/format | 1 + packaging/deb/trusty/debuild.sh | 7 +++++ packaging/deb/trusty/honeycomb.conf | 8 ++++++ packaging/deb/xenial/debian/control | 14 ++++++++++ packaging/deb/xenial/debian/rules | 32 ++++++++++++++++++++++ packaging/deb/xenial/debuild.sh | 8 ++++++ packaging/deb/xenial/honeycomb.service | 10 +++++++ 21 files changed, 204 insertions(+), 125 deletions(-) create mode 100755 packaging/deb/common/debuild.sh create mode 100755 packaging/deb/common/prepare.sh delete mode 100644 packaging/deb/debian/compat delete mode 100644 packaging/deb/debian/control delete mode 100644 packaging/deb/debian/copyright delete mode 100755 packaging/deb/debian/rules delete mode 100644 packaging/deb/debian/source/format delete mode 100755 packaging/deb/debuild.sh delete mode 100644 packaging/deb/honeycomb.conf create mode 100644 packaging/deb/trusty/debian/compat create mode 100644 packaging/deb/trusty/debian/control create mode 100644 packaging/deb/trusty/debian/copyright create mode 100755 packaging/deb/trusty/debian/rules create mode 100644 packaging/deb/trusty/debian/source/format create mode 100755 packaging/deb/trusty/debuild.sh create mode 100644 packaging/deb/trusty/honeycomb.conf create mode 100644 packaging/deb/xenial/debian/control create mode 100755 packaging/deb/xenial/debian/rules create mode 100755 packaging/deb/xenial/debuild.sh create mode 100644 packaging/deb/xenial/honeycomb.service (limited to 'packaging') diff --git a/packaging/deb/.gitignore b/packaging/deb/.gitignore index 79f1221ce..f5316fb7b 100644 --- a/packaging/deb/.gitignore +++ b/packaging/deb/.gitignore @@ -1,5 +1,5 @@ *.tar.xz *.tar.gz -honeycomb-*/ +**/honeycomb-*/ *.deb *.changes \ No newline at end of file diff --git a/packaging/deb/common/debuild.sh b/packaging/deb/common/debuild.sh new file mode 100755 index 000000000..8f766e0c0 --- /dev/null +++ b/packaging/deb/common/debuild.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -xe +BUILD_DIR=$1 + +# Build deb binary only package +cd ${BUILD_DIR} +dpkg-buildpackage -b +cd - \ No newline at end of file diff --git a/packaging/deb/common/prepare.sh b/packaging/deb/common/prepare.sh new file mode 100755 index 000000000..9663bccbe --- /dev/null +++ b/packaging/deb/common/prepare.sh @@ -0,0 +1,45 @@ +#!/bin/bash +set -xe +# $1 - source dir root +# $2 - $1/debian - just configurable for reuse +# $3 - service definition file +# $4 - service definition target during install +SOURCE_DIR=$1 +VERSION=$(${SOURCE_DIR}/../../rpm/version) +RELEASE=$(${SOURCE_DIR}/../../rpm/release) +BUILD_DIR=${SOURCE_DIR}/honeycomb-${VERSION} + +# Copy and unpack the archive with vpp-integration distribution +ARCHIVE_DIR=${SOURCE_DIR}/../../../vpp-integration/minimal-distribution/target/ +ARCHIVE=${ARCHIVE_DIR}/vpp-integration-distribution-1.16.12-SNAPSHOT-hc.tar.gz +cp ${ARCHIVE} ${SOURCE_DIR} +ARCHIVE=${SOURCE_DIR}/vpp-integration-distribution-${VERSION}-SNAPSHOT-hc.tar.gz +tar -xf ${ARCHIVE} -C ${SOURCE_DIR}/ + +# Create packaging root +rm -rf ${BUILD_DIR} +mkdir ${BUILD_DIR} + +# Copy contents of tar.gz +mv ${SOURCE_DIR}/vpp-integration-distribution-${VERSION}-SNAPSHOT/ ${BUILD_DIR}/ +cp -r $2 ${BUILD_DIR} + +# OS service definition +cp ${SOURCE_DIR}/$3 ${BUILD_DIR} + +# Changelog file +cat <> ${BUILD_DIR}/debian/changelog +honeycomb (${VERSION}-${RELEASE}) unstable; urgency=low + + * 16.12 release + + -- mmarsale Mon, 22 Aug 2016 09:41:37 +0200 +EOT + +# Install instructions +cat <> ${BUILD_DIR}/debian/install +vpp-integration-distribution-${VERSION}-SNAPSHOT/* /opt/honeycomb/ +$3 $4 +EOT + +echo ${BUILD_DIR} \ No newline at end of file diff --git a/packaging/deb/debian/compat b/packaging/deb/debian/compat deleted file mode 100644 index ec635144f..000000000 --- a/packaging/deb/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/packaging/deb/debian/control b/packaging/deb/debian/control deleted file mode 100644 index 16814efa4..000000000 --- a/packaging/deb/debian/control +++ /dev/null @@ -1,14 +0,0 @@ -Source: honeycomb -Section: misc -Priority: optional -Maintainer: fd.io/honeycomb -Build-Depends: debhelper (>= 9) -Standards-Version: 3.9.6 -Homepage: https://wiki.fd.io/view/Honeycomb -Vcs-Browser: https://git.fd.io/cgit/honeycomb/tree/ - -Package: honeycomb -Architecture: all -Depends: vpp, openjdk-8-jdk | openjdk-8-jre -Suggests: vpp-nsh-plugin -Description: Honeycomb agent for VPP diff --git a/packaging/deb/debian/copyright b/packaging/deb/debian/copyright deleted file mode 100644 index ad3a88c26..000000000 --- a/packaging/deb/debian/copyright +++ /dev/null @@ -1,23 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: honeycomb -Source: https://git.fd.io/cgit/honeycomb/tree/ - -Files: * -Copyright: 2016 Cisco and/or its affiliates -License: Apache-2.0 - Copyright (c) 2016 Cisco and/or its affiliates. - . - 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. - . - On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/Apache-2.0". diff --git a/packaging/deb/debian/rules b/packaging/deb/debian/rules deleted file mode 100755 index 5c1cebc20..000000000 --- a/packaging/deb/debian/rules +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/make -f -# See debhelper(7) (uncomment to enable) -# output every command that modifies files on the build system. -#export DH_VERBOSE = 1 - -# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* -DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/default.mk - -# see FEATURE AREAS in dpkg-buildflags(1) -#export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -# see ENVIRONMENT in dpkg-buildflags(1) -# package maintainers to append CFLAGS -#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic -# package maintainers to append LDFLAGS -#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed - - -# main packaging script based on dh7 syntax -%: - dh $@ - -# dh_make generated override targets -# This is example for Cmake (See https://bugs.debian.org/641051 ) -#override_dh_auto_configure: -# dh_auto_configure -- \ -# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) - - - - diff --git a/packaging/deb/debian/source/format b/packaging/deb/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/packaging/deb/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packaging/deb/debuild.sh b/packaging/deb/debuild.sh deleted file mode 100755 index 38b9697f1..000000000 --- a/packaging/deb/debuild.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -set -xe -DIR=$(dirname $0) -DIR=$(readlink -f $DIR) -VERSION=$(${DIR}/../rpm/version) -RELEASE=$(${DIR}/../rpm/release) -PACKAGING_ROOT=${DIR}/honeycomb-${VERSION} - -# Copy and unpack the archive with vpp-integration distribution -ARCHIVE_DIR=${DIR}/../../vpp-integration/minimal-distribution/target/ -ARCHIVE=${ARCHIVE_DIR}/vpp-integration-distribution-1.16.12-SNAPSHOT-hc.tar.gz -cp ${ARCHIVE} ${DIR} -ARCHIVE=${DIR}/vpp-integration-distribution-${VERSION}-SNAPSHOT-hc.tar.gz -tar -xf ${ARCHIVE} -C ${DIR}/ - -# Create packaging root -rm -rf ${PACKAGING_ROOT} -mkdir ${PACKAGING_ROOT} - -# Copy contents of tar.gz -mv ${DIR}/vpp-integration-distribution-${VERSION}-SNAPSHOT/ ${PACKAGING_ROOT}/ -cp -r ${DIR}/debian/ ${PACKAGING_ROOT} - -# Upstart configuration -cp ${DIR}/honeycomb.conf ${PACKAGING_ROOT} - -# Changelog file -cat <> ${PACKAGING_ROOT}/debian/changelog -honeycomb (${VERSION}-${RELEASE}) unstable; urgency=low - - * Initial release - - -- mmarsale Mon, 22 Aug 2016 09:41:37 +0200 -EOT - -# Install instructions -cat <> ${PACKAGING_ROOT}/debian/install -vpp-integration-distribution-${VERSION}-SNAPSHOT/* /opt/honeycomb/ -honeycomb.conf /etc/init/ -EOT - -# Build deb binary only package -cd ${PACKAGING_ROOT} -dpkg-buildpackage -b -cd - \ No newline at end of file diff --git a/packaging/deb/honeycomb.conf b/packaging/deb/honeycomb.conf deleted file mode 100644 index e9c7fb932..000000000 --- a/packaging/deb/honeycomb.conf +++ /dev/null @@ -1,8 +0,0 @@ -description "honeycomb agent for VPP" -author "fd.io/honeycomb " - -manual - -script - exec /opt/honeycomb/honeycomb -end script \ No newline at end of file diff --git a/packaging/deb/trusty/debian/compat b/packaging/deb/trusty/debian/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/packaging/deb/trusty/debian/compat @@ -0,0 +1 @@ +9 diff --git a/packaging/deb/trusty/debian/control b/packaging/deb/trusty/debian/control new file mode 100644 index 000000000..16814efa4 --- /dev/null +++ b/packaging/deb/trusty/debian/control @@ -0,0 +1,14 @@ +Source: honeycomb +Section: misc +Priority: optional +Maintainer: fd.io/honeycomb +Build-Depends: debhelper (>= 9) +Standards-Version: 3.9.6 +Homepage: https://wiki.fd.io/view/Honeycomb +Vcs-Browser: https://git.fd.io/cgit/honeycomb/tree/ + +Package: honeycomb +Architecture: all +Depends: vpp, openjdk-8-jdk | openjdk-8-jre +Suggests: vpp-nsh-plugin +Description: Honeycomb agent for VPP diff --git a/packaging/deb/trusty/debian/copyright b/packaging/deb/trusty/debian/copyright new file mode 100644 index 000000000..ad3a88c26 --- /dev/null +++ b/packaging/deb/trusty/debian/copyright @@ -0,0 +1,23 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: honeycomb +Source: https://git.fd.io/cgit/honeycomb/tree/ + +Files: * +Copyright: 2016 Cisco and/or its affiliates +License: Apache-2.0 + Copyright (c) 2016 Cisco and/or its affiliates. + . + 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. + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/Apache-2.0". diff --git a/packaging/deb/trusty/debian/rules b/packaging/deb/trusty/debian/rules new file mode 100755 index 000000000..5c1cebc20 --- /dev/null +++ b/packaging/deb/trusty/debian/rules @@ -0,0 +1,32 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +#export DH_VERBOSE = 1 + +# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk + +# see FEATURE AREAS in dpkg-buildflags(1) +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +# see ENVIRONMENT in dpkg-buildflags(1) +# package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + + +# main packaging script based on dh7 syntax +%: + dh $@ + +# dh_make generated override targets +# This is example for Cmake (See https://bugs.debian.org/641051 ) +#override_dh_auto_configure: +# dh_auto_configure -- \ +# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) + + + + diff --git a/packaging/deb/trusty/debian/source/format b/packaging/deb/trusty/debian/source/format new file mode 100644 index 000000000..163aaf8d8 --- /dev/null +++ b/packaging/deb/trusty/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/packaging/deb/trusty/debuild.sh b/packaging/deb/trusty/debuild.sh new file mode 100755 index 000000000..84c38ae30 --- /dev/null +++ b/packaging/deb/trusty/debuild.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -xe +DIR=$(dirname $0) +DIR=$(readlink -f ${DIR}) + +BUILD_FOLDER=$(${DIR}/../common/prepare.sh ${DIR} ${DIR}/debian honeycomb.conf /etc/init/) +${DIR}/../common/debuild.sh ${BUILD_FOLDER} \ No newline at end of file diff --git a/packaging/deb/trusty/honeycomb.conf b/packaging/deb/trusty/honeycomb.conf new file mode 100644 index 000000000..e9c7fb932 --- /dev/null +++ b/packaging/deb/trusty/honeycomb.conf @@ -0,0 +1,8 @@ +description "honeycomb agent for VPP" +author "fd.io/honeycomb " + +manual + +script + exec /opt/honeycomb/honeycomb +end script \ No newline at end of file diff --git a/packaging/deb/xenial/debian/control b/packaging/deb/xenial/debian/control new file mode 100644 index 000000000..da55bd048 --- /dev/null +++ b/packaging/deb/xenial/debian/control @@ -0,0 +1,14 @@ +Source: honeycomb +Section: misc +Priority: optional +Maintainer: fd.io/honeycomb +Build-Depends: debhelper (>= 9), dh-systemd +Standards-Version: 3.9.6 +Homepage: https://wiki.fd.io/view/Honeycomb +Vcs-Browser: https://git.fd.io/cgit/honeycomb/tree/ + +Package: honeycomb +Architecture: all +Depends: vpp, openjdk-8-jdk | openjdk-8-jre +Suggests: vpp-nsh-plugin +Description: Honeycomb agent for VPP diff --git a/packaging/deb/xenial/debian/rules b/packaging/deb/xenial/debian/rules new file mode 100755 index 000000000..048f5f738 --- /dev/null +++ b/packaging/deb/xenial/debian/rules @@ -0,0 +1,32 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +#export DH_VERBOSE = 1 + +# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk + +# see FEATURE AREAS in dpkg-buildflags(1) +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +# see ENVIRONMENT in dpkg-buildflags(1) +# package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + + +# main packaging script based on dh7 syntax +%: + dh $@ --with systemd + +# dh_make generated override targets +# This is example for Cmake (See https://bugs.debian.org/641051 ) +#override_dh_auto_configure: +# dh_auto_configure -- \ +# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) + + + + diff --git a/packaging/deb/xenial/debuild.sh b/packaging/deb/xenial/debuild.sh new file mode 100755 index 000000000..21e3b7a84 --- /dev/null +++ b/packaging/deb/xenial/debuild.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -xe +DIR=$(dirname $0) +DIR=$(readlink -f ${DIR}) + +BUILD_FOLDER=$(${DIR}/../common/prepare.sh ${DIR} ${DIR}/../trusty/debian honeycomb.service /lib/systemd/system) +cp -r ${DIR}/debian/* ${BUILD_FOLDER}/debian/ +${DIR}/../common/debuild.sh ${BUILD_FOLDER} \ No newline at end of file diff --git a/packaging/deb/xenial/honeycomb.service b/packaging/deb/xenial/honeycomb.service new file mode 100644 index 000000000..3b88ba425 --- /dev/null +++ b/packaging/deb/xenial/honeycomb.service @@ -0,0 +1,10 @@ +[Unit] +Description=honeycomb agent for VPP + +[Service] +Type=simple +ExecStart=/bin/sh -ec "exec /opt/honeycomb/honeycomb" +Restart=on-failure + +[Install] +WantedBy=multi-user.target \ No newline at end of file -- cgit 1.2.3-korg