From d65ee3a8a3e7f6fccea9f682b4171c1ca1228f5e Mon Sep 17 00:00:00 2001 From: Ed Warnicke Date: Fri, 16 Sep 2016 00:56:06 +0000 Subject: nsh-plugin deb packaging Change-Id: I100f14fe2bc215beab8635cd987423599f15aaa0 Signed-off-by: Ed Warnicke --- nsh-plugin/Makefile.am | 19 ++++++++++- nsh-plugin/packaging/.gitignore | 12 +++++++ nsh-plugin/packaging/deb/debian/compat | 1 + nsh-plugin/packaging/deb/debian/control | 21 ++++++++++++ nsh-plugin/packaging/deb/debian/copyright | 9 ++++++ nsh-plugin/packaging/deb/debian/rules | 27 ++++++++++++++++ .../packaging/scripts/generate-deb-changelog | 37 ++++++++++++++++++++++ 7 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 nsh-plugin/packaging/.gitignore create mode 100644 nsh-plugin/packaging/deb/debian/compat create mode 100644 nsh-plugin/packaging/deb/debian/control create mode 100644 nsh-plugin/packaging/deb/debian/copyright create mode 100755 nsh-plugin/packaging/deb/debian/rules create mode 100755 nsh-plugin/packaging/scripts/generate-deb-changelog diff --git a/nsh-plugin/Makefile.am b/nsh-plugin/Makefile.am index 096eb90..bf24b6d 100644 --- a/nsh-plugin/Makefile.am +++ b/nsh-plugin/Makefile.am @@ -1,4 +1,3 @@ - # Copyright (c) # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -57,3 +56,21 @@ pkg-rpm: all install cd $(srcdir)/packaging/rpm; \ rpmbuild -bb --define "_topdir $$PWD" \ --define "_plugin_prefix ${prefix}" vpp-nsh-plugin.spec + +pkg-deb: all install + DOTPREFIX=$$(readlink -f ${srcdir}/packaging/deb/debian); \ + echo DOTPREFIX $${DOTPREFIX}; \ + DOTPREFIX=$$(echo $${DOTPREFIX}| sed 's;[^\/]*;..;g'); \ + echo DOTPREFIX $${DOTPREFIX}; \ + echo ../../$${DOTPREFIX}/$(prefix)/lib/vpp_plugins/nsh_plugin.so /usr/lib/vpp_plugins > $(srcdir)/packaging/deb/debian/vpp-nsh-plugin.install; \ + echo ../../$${DOTPREFIX}/$(prefix)/lib/vpp_api_test_plugins/nsh_test_plugin.so /usr/lib/vpp_api_test_plugins >> $(srcdir)/packaging/deb/debian/vpp-nsh-plugin.install; \ + echo ../../$${DOTPREFIX}/$(prefix)/include/vpp-api/nsh_all_api_h.h /usr/include/vpp-api > $(srcdir)/packaging/deb/debian/vpp-nsh-plugin-dev.install; \ + echo ../../$${DOTPREFIX}/$(prefix)/include/vpp-api/nsh_msg_enum.h /usr/include/vpp-api >> $(srcdir)/packaging/deb/debian/vpp-ns\ +h-plugin-dev.install; \ + echo ../../$${DOTPREFIX}/$(prefix)/include/vpp-api/nsh.api.h /usr/include/vpp-api >> $(srcdir)/packaging/deb/debian/vpp-nsh-plugin-dev.install + $(srcdir)/packaging/scripts/generate-deb-changelog; \ + ( \ + cd $(srcdir)/packaging/deb && \ + dpkg-buildpackage -us -uc -b \ + ) + diff --git a/nsh-plugin/packaging/.gitignore b/nsh-plugin/packaging/.gitignore new file mode 100644 index 0000000..3ee2e7f --- /dev/null +++ b/nsh-plugin/packaging/.gitignore @@ -0,0 +1,12 @@ +deb/debian/changelog +deb/debian/files +deb/debian/*.log +deb/debian/*.substvars +deb/debian/*.install +deb/debian/*.debhelper +deb/debian/vpp-nsh-plugin/ +deb/debian/vpp-nsh-plugin-dev/ +deb/debian/vpp-nsh-plugin-dbg/ +*.changes +*.deb + diff --git a/nsh-plugin/packaging/deb/debian/compat b/nsh-plugin/packaging/deb/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/nsh-plugin/packaging/deb/debian/compat @@ -0,0 +1 @@ +9 diff --git a/nsh-plugin/packaging/deb/debian/control b/nsh-plugin/packaging/deb/debian/control new file mode 100644 index 0000000..5ae4910 --- /dev/null +++ b/nsh-plugin/packaging/deb/debian/control @@ -0,0 +1,21 @@ +Source: vpp-nsh-plugin +Section: net +Priority: extra +Maintainer: fd.io nsh-plugin for vpp +Build-Depends: debhelper (>= 9), dkms, dh-systemd +Standards-Version: 3.9.4 + +Package: vpp-nsh-plugin +Architecture: any +Depends: vpp, ${shlibs:Depends}, ${misc:Depends} +Description: fd.io nsh-plugin for vpp + +Package: vpp-nsh-plugin-dev +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: fd.io nsh-plugin for vpp api headers + +Package: vpp-nsh-plugin-dbg +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: fd.io nsh-plugin for vpp--debug symbols \ No newline at end of file diff --git a/nsh-plugin/packaging/deb/debian/copyright b/nsh-plugin/packaging/deb/debian/copyright new file mode 100644 index 0000000..f9775c1 --- /dev/null +++ b/nsh-plugin/packaging/deb/debian/copyright @@ -0,0 +1,9 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: optional. +Upstream-Contact: optional. +Source: optional. +Disclaimer: optional. +Comment: optional. +License: Apache-2.0 +Copyright: 2015 Cisco and/or its affiliates and others. + diff --git a/nsh-plugin/packaging/deb/debian/rules b/nsh-plugin/packaging/deb/debian/rules new file mode 100755 index 0000000..6d11aed --- /dev/null +++ b/nsh-plugin/packaging/deb/debian/rules @@ -0,0 +1,27 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +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 dkms --with systemd + +override_dh_install: + dh_install --exclude .git + +override_dh_strip: + dh_strip --dbg-package=vpp-nsh-plugin-dbg diff --git a/nsh-plugin/packaging/scripts/generate-deb-changelog b/nsh-plugin/packaging/scripts/generate-deb-changelog new file mode 100755 index 0000000..f3dc245 --- /dev/null +++ b/nsh-plugin/packaging/scripts/generate-deb-changelog @@ -0,0 +1,37 @@ +#!/bin/bash +SCRIPTDIR=$(dirname $0) +CHANGELOG=${SCRIPTDIR}/../deb/debian/changelog +DIST=unstable +FIRST=1 + +print_changelog_item() { + DATE=$(git log -1 --format=%cD ${TAG}) + DEBFULLNAME=$(git log -1 --format=%an ${TAG}) + DEBEMAIL=$(git log -1 --format=%ae ${TAG}) + + if [ ${FIRST} = 0 ]; then echo >> ${CHANGELOG}; fi + FIRST=0 + + echo "vpp-nsh-plugin (${VER}) ${DIST}; urgency=low" >> ${CHANGELOG} + echo >> ${CHANGELOG} + echo "${DESC}" >> ${CHANGELOG} + echo >> ${CHANGELOG} + echo " -- ${DEBFULLNAME} <${DEBEMAIL}> ${DATE}" >> ${CHANGELOG} +} + +VER=$(${SCRIPTDIR}/version) +TAG=HEAD +ADDS=$(echo ${VER} | sed -e 's/~.*//'| cut -s -d- -f2) + +rm -f ${CHANGELOG} + +if [ -n "${ADDS}" ]; then + DESC=" * includes ${ADDS} commits after $(echo ${VER}| cut -d- -f1) release" + print_changelog_item +fi + +for TAG in $(git tag -l 'v[0-9][0-9].[0-9][0-9]' | sort -r ); do + VER=$(echo ${TAG}| sed -e 's/^v//') + DESC=$(git tag -l -n20 ${TAG} | tail -n+2 | sed -e 's/^ */ /') + print_changelog_item +done -- cgit 1.2.3-korg