Brian O'Connor

Updating onos-package for debian packaging

Change-Id: Icc3899b3a35ba0a02a97f5eddebfbe51ff6c1638
......@@ -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
......
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.
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"
#!/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
#!/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
......@@ -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 || :
......