Updating onos-package for debian packaging

Change-Id: Icc3899b3a35ba0a02a97f5eddebfbe51ff6c1638
This commit is contained in:
Brian O'Connor 2015-09-16 22:54:24 -07:00
parent c045c4acd7
commit 8a0c20ea6f
6 changed files with 80 additions and 13 deletions

View File

@ -93,22 +93,16 @@ function build_compressed_package() {
# Build a DEB package
function build_deb() {
echo "You need to be root in order to generate a proper DEB package."
echo "This command may ask for your password to run commands as sudo,"
echo " because you need to be root in order to generate a proper DEB package."
sudo rm -fr $ONOS_DEB_ROOT
mkdir -p $ONOS_DEB_ROOT/{DEBIAN,opt,etc/init}
{
echo "Package: ONOS"
echo "Architecture: all"
echo "Maintainer: ONOS Project"
echo "Depends: debconf (>= 0.5.00), default-jre-headless (>= 1.8) | openjdk-8-jre | oracle-java8-installer"
echo "Priority: optional"
echo "Version: $ONOS_POM_VERSION"
echo "Description: Open Network Operating System (ONOS) is an"
echo " opensource SDN controller."
} > $ONOS_DEB_ROOT/DEBIAN/control
# Copy the debian directory and fill in version
cp -r $ONOS_ROOT/tools/package/deb/* $ONOS_DEB_ROOT/DEBIAN/
sed -i'' -E "s/@ONOS_POM_VERSION/$ONOS_POM_VERSION/" $ONOS_DEB_ROOT/DEBIAN/control
cp -r $ONOS_STAGE $ONOS_DEB_ROOT/opt/onos
cp $ONOS_ROOT/tools/package/init/onos.conf $ONOS_DEB_ROOT/etc/init/
@ -119,6 +113,8 @@ function build_deb() {
sudo dpkg-deb --build $ONOS_DEB_ROOT > /dev/null &&
sudo mv $ONOS_STAGE_ROOT/deb.deb $ONOS_DEB && ls -l $ONOS_DEB
#TODO run lintian on .deb
}
# Build an RPM package

View File

@ -0,0 +1,8 @@
Package: onos
Architecture: all
Maintainer: ONOS Project
Depends: debconf (>= 0.5.00), default-jre-headless (>= 1.8) | openjdk-8-jre | oracle-java8-installer
Priority: optional
Version: @ONOS_POM_VERSION
Description: Open Network Operating System (ONOS)
Open Network Operating System (ONOS) is an opensource SDN controller.

View File

@ -0,0 +1,20 @@
Upstream-Name: onos
Source: http://github.com/opennetworkinglab/onos
Files: *
Copyright: 2014-2015 Open Networking Laboratory
License: Apache 2.0
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 Apache License 2.0 can
be found in "/usr/share/common-licenses/Apache-2.0"

16
tools/package/deb/postinst Executable file
View File

@ -0,0 +1,16 @@
#!/bin/bash
ONOS_USER=sdn
# Check to see if user exists, and if not, create a service account
getent passwd $ONOS_USER >/dev/null 2&>1 || ( useradd -M $ONOS_USER && usermod -L $ONOS_USER )
# Create ONOS options file
[ ! -f /opt/onos/options ] && cat << EOF > /opt/onos/options
export ONOS_OPTS=server
export ONOS_USER="$ONOS_USER"
EOF
# Change permissions for onos directory
[ -d /opt/onos ] && chown -R $ONOS_USER.$ONOS_USER /opt/onos

24
tools/package/deb/prerm Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# Check if onos is running; if it is, stop onos
[ -z "$(status onos 2>/dev/null | grep start)" ] && echo "onos is not running." || (
stop onos
# Wait for onos to stop up to 5 seconds
for i in $(seq 1 5); do
[ -z "$(ps -ef | grep karaf.jar | grep -v grep)" ] && break
sleep 1
done
[ -z "$(ps -ef | grep karaf.jar | grep -v grep)" ] && echo 'Stopped onos service' || echo 'Failed to stop onos'
ps -ef | grep karaf.jar | grep -v grep
)
# Clean up onos runtime directories
# TODO don't hardcode karaf version
rm -rf /opt/onos/apache-karaf-3.0.3/
rm -rf /opt/onos/var/*
rm -rf /opt/onos/config
rm -rf /opt/onos/options
rm -rf /opt/onos/log
#TODO consider removing the sdn user if we created it

View File

@ -13,9 +13,12 @@ respawn
env LANG=en_US.UTF-8
pre-start script
[ -f /opt/onos/options ] && . /opt/onos/options
ONOS_USER=${ONOS_USER:-root}
# Ensure that the environment is initialized
[ -d /opt/onos ] && mkdir -p /opt/onos/var
[ -d /opt/onos ] && mkdir -p /opt/onos/config
[ -d /opt/onos ] && mkdir /opt/onos/var 2>/dev/null && chown $ONOS_USER.$ONOS_USER /opt/onos/var
[ -d /opt/onos ] && mkdir /opt/onos/config 2>/dev/null && chown $ONOS_USER.$ONOS_USER /opt/onos/config
# TODO make karaf version configurable
[ -d /opt/onos ] && [ ! -h /opt/onos/log ] \
&& ln -s /opt/onos/apache-karaf-3.0.3/data/log /opt/onos/log || :