mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-12-17 15:21:37 +01:00
ONOS-2895 Updating onos-package for rpm creation
Change-Id: I5db3b2991e12f65caef6c29f29ab5ed915748cb3
This commit is contained in:
parent
8a0c20ea6f
commit
ac322441f3
@ -120,64 +120,26 @@ function build_deb() {
|
|||||||
# Build an RPM package
|
# Build an RPM package
|
||||||
function build_rpm() {
|
function build_rpm() {
|
||||||
read -r -p "WARN: rpm-build utility and root priviledges are need to build the package. Do you want to continue? [Y/n] " response
|
read -r -p "WARN: rpm-build utility and root priviledges are need to build the package. Do you want to continue? [Y/n] " response
|
||||||
case $response in
|
[[ "$response" =~ ^[Nn] ]] && exit 0
|
||||||
[nN][oO])
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
sudo rm -fr $ONOS_RPM_ROOT
|
sudo rm -fr $ONOS_RPM_ROOT
|
||||||
|
|
||||||
sudo yum -y install rpm-build
|
sudo yum -y install rpm-build
|
||||||
|
|
||||||
mkdir -p $ONOS_RPM_ROOT/{BUILD,RPMS,SOURCES/ONOS-$ONOS_RPM_VERSION/{etc/init,opt},SPECS,SRPMS}
|
mkdir -p $ONOS_RPM_ROOT/{BUILD,RPMS,SOURCES/onos-$ONOS_RPM_VERSION/{etc/init,opt},SPECS,SRPMS}
|
||||||
|
|
||||||
cp -r $ONOS_STAGE $ONOS_RPM_ROOT/SOURCES/ONOS-$ONOS_RPM_VERSION/opt/onos
|
cp -r $ONOS_STAGE $ONOS_RPM_ROOT/SOURCES/onos-$ONOS_RPM_VERSION/opt/onos
|
||||||
cp $ONOS_ROOT/tools/package/init/onos.conf $ONOS_RPM_ROOT/SOURCES/ONOS-$ONOS_RPM_VERSION/etc/init/
|
cp $ONOS_ROOT/tools/package/init/onos.conf $ONOS_RPM_ROOT/SOURCES/onos-$ONOS_RPM_VERSION/etc/init/
|
||||||
|
|
||||||
cd $ONOS_RPM_ROOT/SOURCES
|
cd $ONOS_RPM_ROOT/SOURCES
|
||||||
COPYFILE_DISABLE=1 tar zcf ONOS-$ONOS_RPM_VERSION.tar.gz ONOS-$ONOS_RPM_VERSION
|
COPYFILE_DISABLE=1 tar zcf onos-$ONOS_RPM_VERSION.tar.gz onos-$ONOS_RPM_VERSION
|
||||||
|
|
||||||
{
|
cp $ONOS_ROOT/tools/package/rpm/onos.spec $ONOS_RPM_ROOT/SPECS/
|
||||||
echo "Name: ONOS"
|
sed -i'' -E "s/@ONOS_RPM_VERSION/$ONOS_RPM_VERSION/g" $ONOS_RPM_ROOT/SPECS/onos.spec
|
||||||
echo "Version: $ONOS_RPM_VERSION"
|
|
||||||
echo "Release: 1"
|
|
||||||
echo "Summary: Open Networking Operating System (ONOS)"
|
|
||||||
echo "Vendor: ONOS Project"
|
|
||||||
echo "Packager: ONOS Project"
|
|
||||||
echo "Group: Applications/Engineering"
|
|
||||||
echo "Requires: jre >= 1:8"
|
|
||||||
echo "License: Apache 2.0"
|
|
||||||
echo "URL: http://www.onosproject.org"
|
|
||||||
echo "Source0: ONOS-$ONOS_RPM_VERSION.tar.gz"
|
|
||||||
echo "BuildArch: noarch"
|
|
||||||
echo "BuildRoot: %{_tmppath}/%{name}-buildroot"
|
|
||||||
echo "%description"
|
|
||||||
echo "Open Network Operating System (ONOS) is an opensource SDN controller."
|
|
||||||
echo -e "\n"
|
|
||||||
echo "%prep"
|
|
||||||
echo "%setup -q"
|
|
||||||
echo -e "\n"
|
|
||||||
echo "%install"
|
|
||||||
echo "mkdir -p %{buildroot}"
|
|
||||||
echo "cp -R * %{buildroot}"
|
|
||||||
echo -e "\n"
|
|
||||||
echo "%clean"
|
|
||||||
echo "rm -rf %{buildroot}"
|
|
||||||
echo -e "\n"
|
|
||||||
echo "%files"
|
|
||||||
echo "%defattr(-,root,root,-)"
|
|
||||||
echo "/etc/init/onos.conf"
|
|
||||||
echo "/opt/onos/"
|
|
||||||
echo -e "\n"
|
|
||||||
echo "%post"
|
|
||||||
echo "echo ONOS successfully installed at /opt/onos"
|
|
||||||
} > $ONOS_RPM_ROOT/SPECS/onos.spec
|
|
||||||
|
|
||||||
rpmbuild --define "_topdir $ONOS_RPM_ROOT" -bb $ONOS_RPM_ROOT/SPECS/onos.spec
|
rpmbuild --define "_topdir $ONOS_RPM_ROOT" -bb $ONOS_RPM_ROOT/SPECS/onos.spec
|
||||||
|
|
||||||
cp $ONOS_RPM_ROOT/RPMS/noarch/ONOS-$ONOS_RPM_VERSION-1.noarch.rpm $ONOS_STAGE_ROOT && ls -l $ONOS_STAGE_ROOT/ONOS-$ONOS_RPM_VERSION-1.noarch.rpm
|
cp $ONOS_RPM_ROOT/RPMS/noarch/onos-$ONOS_RPM_VERSION-1.noarch.rpm $ONOS_STAGE_ROOT && ls -l $ONOS_STAGE_ROOT/onos-$ONOS_RPM_VERSION-1.noarch.rpm
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Script entry point
|
# Script entry point
|
||||||
|
|||||||
@ -10,7 +10,6 @@
|
|||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
[ -z "$(ps -ef | grep karaf.jar | grep -v grep)" ] && echo 'Stopped onos service' || echo 'Failed to stop onos'
|
[ -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
|
# Clean up onos runtime directories
|
||||||
|
|||||||
71
tools/package/rpm/onos.spec
Normal file
71
tools/package/rpm/onos.spec
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
Name: onos
|
||||||
|
Version: @ONOS_RPM_VERSION
|
||||||
|
Release: 1
|
||||||
|
Summary: Open Networking Operating System (ONOS)
|
||||||
|
Vendor: ONOS Project
|
||||||
|
Packager: ONOS Project
|
||||||
|
|
||||||
|
Group: Applications/Engineering
|
||||||
|
License: Apache 2.0
|
||||||
|
Requires: jre >= 1:8
|
||||||
|
URL: http://www.onosproject.org
|
||||||
|
Source0: %{name}-@ONOS_RPM_VERSION.tar.gz
|
||||||
|
|
||||||
|
BuildArch: noarch
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-buildroot
|
||||||
|
|
||||||
|
%description
|
||||||
|
Open Network Operating System (ONOS) is an open source SDN controller.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p %{buildroot}
|
||||||
|
cp -R * %{buildroot}
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
/etc/init/onos.conf
|
||||||
|
/opt/onos/
|
||||||
|
|
||||||
|
%post
|
||||||
|
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
|
||||||
|
|
||||||
|
echo ONOS successfully installed at /opt/onos
|
||||||
|
|
||||||
|
%preun
|
||||||
|
# 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'
|
||||||
|
)
|
||||||
|
|
||||||
|
%postun
|
||||||
|
#TODO this should be less brute-force
|
||||||
|
rm -rf /opt/onos
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
# TODO
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user