mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-05 12:16:13 +02:00
Updating onos-package for debian packaging
Change-Id: Icc3899b3a35ba0a02a97f5eddebfbe51ff6c1638
This commit is contained in:
parent
c045c4acd7
commit
8a0c20ea6f
@ -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
|
||||
|
||||
8
tools/package/deb/control
Normal file
8
tools/package/deb/control
Normal 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.
|
||||
20
tools/package/deb/copyright
Normal file
20
tools/package/deb/copyright
Normal 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
16
tools/package/deb/postinst
Executable 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
24
tools/package/deb/prerm
Executable 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
|
||||
@ -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 || :
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user