summaryrefslogtreecommitdiffstats
path: root/fuel/build
diff options
context:
space:
mode:
authorJonas Bjurel <jonas.bjurel@ericsson.com>2015-03-12 15:18:06 +0100
committerJonas Bjurel <jonas.bjurel@ericsson.com>2015-03-17 19:17:20 +0100
commitdf6c1db2695030b1ba68184bac9aab9fb2d41e71 (patch)
tree2b5c57c83fdc15e23cf19ae92d0581421ebeedc8 /fuel/build
parented60ed6299ddae50e1269434adc35ce686a07e97 (diff)
*** FIRST VERSION OF CI BUILD SCRIPT ***
- Provides build cache management to a remote location - Provides automatic cashe repopulation - See /fuel/ci/README - Rebased to master - Bug around cache handling fixed - New option -r introduced to invoke external script/program instead of standard http(s)/fttp get and put, eg. scripts or programs to integrate with dropbox, or similar. The script needs to anheaer to curl argument list. - Stefan Berg's comments implemented - Fatih Degirmenci's comments implemented with one exemption: the revision state .iso naming convention still remains the same - we need to discuss this. With the implementation of Fatih's comments the build.sh argument structure is slightly changed, please see ./build.sh -h TODO: - Further testing - Finalize cache invalidation logic - Make refactoring JIRA: Change-Id: I4efdbdd10f726c0a3229849a63040b6d2702db5c Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
Diffstat (limited to 'fuel/build')
-rw-r--r--fuel/build/DOC/BUILD/README.build1
-rw-r--r--fuel/build/Makefile64
-rw-r--r--fuel/build/Makefile~140
-rw-r--r--fuel/build/cache.mk87
-rwxr-xr-xfuel/build/docker/runcontext11
-rwxr-xr-xfuel/build/f_isoroot/f_kscfg/ks.cfg4
-rw-r--r--fuel/build/f_isoroot/f_kscfg/ks.cfg.orig4
-rw-r--r--fuel/build/opendaylight/Makefile28
-rw-r--r--fuel/build/opendaylight/f_odl/Makefile2
-rwxr-xr-xfuel/build/opendaylight/make-odl-deb.sh32
10 files changed, 187 insertions, 186 deletions
diff --git a/fuel/build/DOC/BUILD/README.build b/fuel/build/DOC/BUILD/README.build
index 519ee6a..b8ce799 100644
--- a/fuel/build/DOC/BUILD/README.build
+++ b/fuel/build/DOC/BUILD/README.build
@@ -27,6 +27,7 @@ On the host, the following packages must be installed:
for Ubuntu 14.04. Note: only use the Ubuntu stock distro of Docker (docker.io)
- git (simply available through apt-get install git)
- make (simply available through apt-get install make)
+- curl
2 Setting up the Docker build container
----------------------------------------
diff --git a/fuel/build/Makefile b/fuel/build/Makefile
index 8e90fcc..e7cb6e7 100644
--- a/fuel/build/Makefile
+++ b/fuel/build/Makefile
@@ -13,24 +13,36 @@
#
SHELL = /bin/bash
-include config.mk
+#Input args
+export UNIT_TEST = FALSE
+export INTERACTIVE = TRUE
+export ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
+export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
+export PRODNO = "OPNFV_BGS"
+export REVSTATE = "P0000"
+export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+
+# Note! Invoke with "make REVSTATE=RXXXX all" to make release build!
+# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
-export BUILD_BASE = $(shell pwd)
+#Build variables
+export BUILD_BASE := $(shell pwd)
export DEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/main
export PUPPET_DEST := $(BUILD_BASE)/release/puppet/modules
-
-ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
-ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
-PRODNO = "OPNFV_BGS"
-REVSTATE = "P0000"
-NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+export CACHE_DIR := $(BUILD_BASE)/cache
+export VERSION_FILE := $(BUILD_BASE)/.versions
DOCKERIMG = opnfv.org/ubuntu-builder:14.04
-# Note! Invoke with "make REVSTATE=RXXXX iso" to make release build!
-# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
+export TOPDIR := $(shell pwd)
+
#
# END of variables to customize
#############################################################################
-export TOPDIR := $(shell pwd)
+
+#Include definitions
+include config.mk
+include cache.mk
+
+
ORIGDIR := $(TOPDIR)/origiso
SUBDIRS := f_isoroot
@@ -39,17 +51,17 @@ SUBDIRS += f_osnaily
SUBDIRS += f_l23network
SUBDIRS += f_resolvconf
SUBDIRS += f_ntp
-#SUBDIRS += f_gif
-#SUBDIRS += f_libnss
-#SUBDIRS += f_libpcs
-#SUBDIRS += f_libxt
-#SUBDIRS += f_comm_java
-#SUBDIRS += f_ca_cert
-#SUBDIRS += f_atk_wrap
-#SUBDIRS += f_jre_head
-#SUBDIRS += f_jre
-#SUBDIRS += f_java
-#SUBDIRS += f_odl
+SUBDIRS += f_gif
+SUBDIRS += f_libnss
+SUBDIRS += f_libpcs
+SUBDIRS += f_libxt
+SUBDIRS += f_comm_java
+SUBDIRS += f_ca_cert
+SUBDIRS += f_atk_wrap
+SUBDIRS += f_jre_head
+SUBDIRS += f_jre
+SUBDIRS += f_java
+SUBDIRS += f_odl
@@ -62,6 +74,9 @@ SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
.PHONY: all
all:
@docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1)
+ @echo "Versions of cached build results built by" $(shell hostname) "at" $(shell date -u) > $(BUILD_BASE)/.versions
+ @echo "cache.mk" $(shell md5sum $(BUILD_BASE)/cache.mk | cut -f1 -d " ") >> $(BUILD_BASE)/.versions
+ @echo "config.mk" $(shell md5sum $(BUILD_BASE)/config.mk | cut -f1 -d " ") >> $(BUILD_BASE)/.versions
@make -C docker
@docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso
@@ -69,6 +84,8 @@ $(ISOCACHE):
# Clone Fuel to non-persistent location and build
cd /tmp && git clone $(FUEL_MAIN_REPO)
cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG)
+ @echo "fuel" `git -C /tmp/fuel-main show | grep commit | rev | cut -f1 -d " "` >> ${BUILD_BASE}/.versions
+
# Setup cgroups for docker-in-docker
sudo /root/enable_dockerx2
# Patch to fix race condition when doing "Docker-in-Docker" build
@@ -120,7 +137,7 @@ build-clean: $(SUBCLEAN)
@rm -f $(NEWISO)
.PHONY: clean $(SUBCLEAN)
-clean: prepare $(SUBCLEAN)
+clean: prepare $(SUBCLEAN)
$(MAKE) -C patch-packages -f Makefile clean
$(MAKE) -C opendaylight -f Makefile clean
@rm -f *.iso
@@ -128,6 +145,7 @@ clean: prepare $(SUBCLEAN)
@rm -Rf newiso
@rm -f f_odl
@rm -f $(NEWISO)
+ @rm -f $(BUILD_BASE)/.versions
$(SUBCLEAN): %.clean:
$(MAKE) -C $* -f Makefile clean
diff --git a/fuel/build/Makefile~ b/fuel/build/Makefile~
deleted file mode 100644
index 7f16a28..0000000
--- a/fuel/build/Makefile~
+++ /dev/null
@@ -1,140 +0,0 @@
-##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
-# stefan.k.berg@ericsson.com
-# jonas.bjurel@ericsson.com
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-############################################################################
-# BEGIN of variables to customize
-#
-SHELL = /bin/bash
-
-include config.mk
-
-export BUILD_BASE = $(shell pwd)
-export DEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/main
-export PUPPET_DEST := $(BUILD_BASE)/release/puppet/modules
-
-ISOSRC = file:$(shell pwd)/fuel-6.0.1.iso
-ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
-PRODNO = "OPNFV_BGS"
-REVSTATE = "P0000"
-NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
-DOCKERIMG = opnfv.org/ubuntu-builder:14.04
-# Note! Invoke with "make REVSTATE=RXXXX iso" to make release build!
-# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location.
-#
-# END of variables to customize
-#############################################################################
-export TOPDIR := $(shell pwd)
-ORIGDIR := $(TOPDIR)/origiso
-
-SUBDIRS := f_isoroot
-SUBDIRS += f_opnfv_puppet
-SUBDIRS += f_osnaily
-SUBDIRS += f_l23network
-SUBDIRS += f_resolvconf
-SUBDIRS += f_ntp
-SUBDIRS += f_gif
-SUBDIRS += f_libnss
-SUBDIRS += f_libpcs
-SUBDIRS += f_libxt
-SUBDIRS += f_comm_java
-SUBDIRS += f_ca_cert
-SUBDIRS += f_atk_wrap
-SUBDIRS += f_jre_head
-SUBDIRS += f_jre
-SUBDIRS += f_java
-SUBDIRS += f_odl
-
-
-
-# f_example is only an example of how to generate a .deb package and
-# should not be enabled in official builds.
-#SUBDIRS += f_example
-
-SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
-
-.PHONY: all
-all:
- @docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1)
- @make -C docker
- @docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso
-
-$(ISOCACHE):
- # Clone Fuel to non-persistent location and build
- cd /tmp && git clone $(FUEL_MAIN_REPO)
- cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG)
- # Setup cgroups for docker-in-docker
- sudo /root/enable_dockerx2
- # Patch to fix race condition when doing "Docker-in-Docker" build
- cd /tmp/fuel-main && patch -p1 < $(TOPDIR)/fuel-main_1.patch
- # Patch to make the sandbox chroot in Fuel succeed with package
- # installation in a Docker build
- cd /tmp/fuel-main && patch -p1 < $(TOPDIR)/fuel-main_2.patch
- # Remove Docker optimizations, otherwise multistrap will fail during
- # Fuel build.
- sudo rm -f /etc/apt/apt.conf.d/docker*
- #
- cd /tmp/fuel-main && ./prepare-build-env.sh
- cd /tmp/fuel-main && make iso
- mv /tmp/fuel-main/build/artifacts/fuel*.iso .
-
-.PHONY: mount-origiso umount-origiso
-mount-origiso: $(ISOCACHE)
- @echo "Mounting original ISO in $(ORIGDIR)"
- @mkdir -p $(ORIGDIR)
- @fuseiso $(ISOCACHE) $(ORIGDIR)
-
-umount-origiso:
- @echo "Unmounting original ISO from $(ORIGDIR)"
- @fusermount -u $(ORIGDIR)
- @rmdir $(ORIGDIR)
-
-.PHONY: $(SUBDIRS)
-$(SUBDIRS):
- @mkdir -p release/packages/ubuntu/pool/main release/puppet/modules release/isoroot
- $(MAKE) -C $@ -f Makefile release
-
-.PHONY: patch-packages
-patch-packages:
- ORIGISO=$(ISOCACHE) REVSTATE=$(REVSTATE) $(MAKE) -C $@ -f Makefile release
-
-.PHONY: prepare
-prepare:
- $(MAKE) -C opendaylight -f Makefile setup
-
-.PHONY: odl
-odl:
- $(MAKE) -C opendaylight -f Makefile
-
-.PHONY: build-clean $(SUBCLEAN)
-build-clean: $(SUBCLEAN)
- $(MAKE) -C patch-packages -f Makefile clean
- @rm -Rf release
- @rm -Rf newiso
- @rm -f $(NEWISO)
-
-.PHONY: clean $(SUBCLEAN)
-clean: prepare $(SUBCLEAN)
- $(MAKE) -C patch-packages -f Makefile clean
- $(MAKE) -C opendaylight -f Makefile clean
- @rm -f *.iso
- @rm -Rf release
- @rm -Rf newiso
- @rm -f f_odl
- @rm -f $(NEWISO)
-
-$(SUBCLEAN): %.clean:
- $(MAKE) -C $* -f Makefile clean
-
-# Todo: Make things smarter - we shouldn't need to clean everything
-# betwen make invocations.
-.PHONY: iso
-iso: prepare build-clean odl $(ISOCACHE) $(SUBDIRS) patch-packages
- install/install.sh iso $(ISOCACHE) $(NEWISO) $(PRODNO) $(REVSTATE)
- @printf "\n\nProduct ISO is $(NEWISO)\n\n"
diff --git a/fuel/build/cache.mk b/fuel/build/cache.mk
new file mode 100644
index 0000000..a3f3516
--- /dev/null
+++ b/fuel/build/cache.mk
@@ -0,0 +1,87 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+############################################################################
+# BEGIN of variables to customize
+#
+SHELL = /bin/bash
+
+#export BUILD_BASE = $(shell pwd)
+#export CACHE_DIR = "$(BUILD_BASE)/cache"
+
+CACHEDIRS := opendaylight/f_odl/package
+
+CACHEFILES := opendaylight/.odl-build-history
+CACHEFILES += opendaylight/.odl-build.log
+CACHEFILES += .versions
+CACHEFILES += fuel-6.0.1.iso
+#CACHEFILES += $(ISOSRC)
+
+CACHECLEAN = $(addsuffix .clean,$(CACHEDIRS))
+
+.PHONY: prepare-cache
+prepare-cache: make-cache-dir $(CACHEDIRS) $(CACHEFILES)
+
+.PHONY: make-cache-dir
+make-cache-dir:
+ @rm -rf ${CACHE_DIR}
+ @mkdir ${CACHE_DIR}
+
+
+.PHONY: clean-cache
+clean-cache: $(CACHECLEAN)
+ @rm -rf ${CACHE_DIR}
+
+.PHONY: $(CACHEDIRS)
+$(CACHEDIRS):
+ @mkdir -p $(dir ${CACHE_DIR}/$@)
+ @if [ ! -d ${BUILD_BASE}/$@ ]; then\
+ mkdir -p $(dir ${BUILD_BASE}/$@);\
+ ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
+ rm -rf ${BUILD_BASE}/$@;\
+ else\
+ ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
+ fi
+
+.PHONY: $(CACHEFILES)
+$(CACHEFILES):
+ @mkdir -p $(dir ${CACHE_DIR}/$@)
+ @if [ ! -f ${BUILD_BASE}/$@ ]; then\
+ mkdir $(dir ${BUILD_BASE}/$@);\
+ echo " " > ${BUILD_BASE}/$@;\
+ ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
+ rm -f ${BUILD_BASE}/$@;\
+ else\
+ ln -s ${BUILD_BASE}/$@ ${CACHE_DIR}/$@;\
+ fi
+
+.PHONY: validate-cache
+validate-cache:
+# if [ $(shell md5sum ${BUILD_BASE}/config.mk) -ne $(shell cat ${CACHE_DIR}/.versions | grep config.mk awk '{print $NF}') ]; then\
+ echo "Cache does not match current config.mk definition, cache must be rebuilt";\
+ exit 1;\
+ fi;
+
+# if [ $(shell md5sum ${BUILD_BASE}/cache.mk) -ne $(shell cat ${CACHE_DIR}/.versions | grep config.mk awk '{print $NF}') ]; then\
+ echo "Cache does not match current cache.mk definition, cache must be rebuilt";\
+ exit 1;\
+ fi;
+
+# $(MAKE) -C opendaylight validate-cache
+# if [ $? -ne 0 ]; then\
+ echo "Cache does not match current OpenDaylight version, cach must be rebuilt";\
+ exit 1;\
+ fi;
+
+# $(SUBDIRS)
+
+.PHONY: $(CACHECLEAN)
+$(CACHECLEAN): %.clean:
+ rm -f ${CACHE_DIR}/$*
diff --git a/fuel/build/docker/runcontext b/fuel/build/docker/runcontext
index a22fb29..cf116fc 100755
--- a/fuel/build/docker/runcontext
+++ b/fuel/build/docker/runcontext
@@ -20,7 +20,16 @@ RUN /root/setcontext $USER $UID $GID $HOME
EOF`
GITROOT=`git rev-parse --show-toplevel`
CID=`echo $res | sed 's/.* //'`
-docker run --privileged=true --rm -i -e HOME=$HOME -u $USER -w $PWD -v ${HOME}/.ssh:${HOME}/.ssh -v $GITROOT:$GITROOT $CID "$@"
+
+ RUN_CONTEXT_OPT="--privileged=true --rm -i -e HOME=$HOME -u $USER -w $PWD -v ${HOME}/.ssh:${HOME}/.ssh -v $GITROOT:$GITROOT"
+
+if [ "${INTERACTIVE}" != "FALSE" ]; then
+ RUN_CONTEXT_OPT+=" -t"
+fi
+
+echo command: docker run ${RUN_CONTEXT_OPT} $CID "$@"
+docker run ${RUN_CONTEXT_OPT} $CID "$@"
+
rc=$?
docker rmi $CID > /dev/null
exit $rc
diff --git a/fuel/build/f_isoroot/f_kscfg/ks.cfg b/fuel/build/f_isoroot/f_kscfg/ks.cfg
index 932e9ac..508f044 100755
--- a/fuel/build/f_isoroot/f_kscfg/ks.cfg
+++ b/fuel/build/f_isoroot/f_kscfg/ks.cfg
@@ -208,7 +208,9 @@ echo "partition pv.001 --ondisk=${tgtdrive} --size=30000 --grow" >> /tmp/partiti
echo "volgroup os pv.001" >> /tmp/partition.ks
echo "logvol swap --vgname=os --recommended --name=swap" >> /tmp/partition.ks
echo "logvol / --vgname=os --size=10000 --name=root --fstype=ext4" >> /tmp/partition.ks
-echo "logvol /var --vgname=os --size=1 --grow --name=var --fstype=xfs" >> /tmp/partition.ks
+echo "logvol /var --vgname=os --size=10000 --percent 60 --grow --name=var --fstype=ext4" >> /tmp/partition.ks
+echo "logvol /var/log --vgname=os --size=4096 --percent 40 --grow --name=varlog --fstype=ext4" >> /tmp/partition.ks
+
# bootloader
echo "bootloader --location=mbr --driveorder=${tgtdrive} --append=' biosdevname=0 crashkernel=none'" > /tmp/bootloader.ks
diff --git a/fuel/build/f_isoroot/f_kscfg/ks.cfg.orig b/fuel/build/f_isoroot/f_kscfg/ks.cfg.orig
index 44f9f42..bddf99c 100644
--- a/fuel/build/f_isoroot/f_kscfg/ks.cfg.orig
+++ b/fuel/build/f_isoroot/f_kscfg/ks.cfg.orig
@@ -208,7 +208,9 @@ echo "partition pv.001 --ondisk=${tgtdrive} --size=30000 --grow" >> /tmp/partiti
echo "volgroup os pv.001" >> /tmp/partition.ks
echo "logvol swap --vgname=os --recommended --name=swap" >> /tmp/partition.ks
echo "logvol / --vgname=os --size=10000 --name=root --fstype=ext4" >> /tmp/partition.ks
-echo "logvol /var --vgname=os --size=1 --grow --name=var --fstype=xfs" >> /tmp/partition.ks
+echo "logvol /var --vgname=os --size=10000 --percent 60 --grow --name=var --fstype=ext4" >> /tmp/partition.ks
+echo "logvol /var/log --vgname=os --size=4096 --percent 40 --grow --name=varlog --fstype=ext4" >> /tmp/partition.ks
+
# bootloader
echo "bootloader --location=mbr --driveorder=${tgtdrive} --append=' biosdevname=0 crashkernel=none'" > /tmp/bootloader.ks
diff --git a/fuel/build/opendaylight/Makefile b/fuel/build/opendaylight/Makefile
index 9c3d22d..c112ff6 100644
--- a/fuel/build/opendaylight/Makefile
+++ b/fuel/build/opendaylight/Makefile
@@ -34,20 +34,42 @@ all: odl
.PHONY: setup
setup:
- @if [ ! -d "$(TOPDIR)/f_odl" ]; then ln -s "$(realpath $(BUILD_DIR))/f_odl" "$(realpath $(TOPDIR))/f_odl"; fi
+ rm -f "$(BUILD_BASE)/f_odl"
+ ln -s "$(shell readlink -e $(BUILD_DIR))/f_odl" "$(shell readlink -e $(BUILD_BASE))/f_odl"
+
+.PHONY: check-cache-validity
+check-cache-validity:
+ @if [ $(git ls-remote $(ODL_MAIN_REPO) $(ODL_MAIN_TAG) | awk '{print $(NF-1)}') -ne $(cat $(CACHE_DIR)/.versions | grep odl | awk '{print $NF}') ]; then @echo "Cache is not up to date, stopping!"; exit 1; fi
.PHONY: odl
odl:
+
ifeq ($(ODL_MAIN_REPO),)
@echo "No config-spec target for ODL, nothing to build"
else
ifeq ($(shell if [ -e .odl-build.log ];then cat .odl-build.log; fi;),$(ODL_MAIN_TAG))
@cd /tmp && git clone $(ODL_MAIN_REPO) && cd /tmp/controller && git checkout $(ODL_MAIN_TAG)
+
@echo "ODL is up to date"
else
- @if [ ! -d "/tmp/controller" ]; then cd /tmp && git clone $(ODL_MAIN_REPO); fi;
- @cd /tmp/controller && git checkout $(ODL_MAIN_TAG) && mvn -Dmaven.test.skip=true -gs $(MAVEN_SPEC) clean install;
+ @if [ ! -d "/tmp/controller" ]; then\
+ cd /tmp && git clone $(ODL_MAIN_REPO);\
+ fi;
+
+ @if [ "$(UNIT_TEST)" = "FALSE" ]; then\
+ echo "Building ODL without unit test";\
+ cd /tmp/controller &&\
+ git checkout $(ODL_MAIN_TAG) &&\
+ mvn -D maven.test.skip=true -gs $(MAVEN_SPEC) clean install;\
+ else\
+ echo "Building ODL with unit test";\
+ cd /tmp/controller &&\
+ git checkout $(ODL_MAIN_TAG) &&\
+ mvn -gs $(MAVEN_SPEC) clean install;\
+ fi;
+
+ @echo "odl" `git -C /tmp/controller show | grep commit | rev | cut -f1 -d " "` >> $(BUILD_BASE)/.versions
@./make-odl-deb.sh -N $(ODL_SHORT_NAME)_`cd /tmp/controller; git rev-parse --short HEAD` -n $(ODL_SHORT_NAME) -v "$(ODL_VERSION)" -t "$(ODL_MAIN_TAG)" -m $(MAINTAINER) -d $(DEPEND) -p $(TARGET_BUILD_PATH)
@echo $(ODL_MAIN_TAG) > .odl-build.log
endif
diff --git a/fuel/build/opendaylight/f_odl/Makefile b/fuel/build/opendaylight/f_odl/Makefile
index 8ac5108..6983f0c 100644
--- a/fuel/build/opendaylight/f_odl/Makefile
+++ b/fuel/build/opendaylight/f_odl/Makefile
@@ -23,7 +23,7 @@ ifeq ($(ODL_MAIN_REPO),)
else
@mkdir -p tmp/src
@mkdir -p release/pool/main
- @cp -rp $(DEB_NAME) tmp/src
+ @cp -rp package/$(DEB_NAME) tmp/src
@gzip -f9 tmp/src/$(DEB_NAME)/usr/share/doc/$(ODL_NAME_SHORT)/changelog.Debian
@fakeroot dpkg-deb --build tmp/src/$(DEB_NAME)
@lintian tmp/src/$(DEB_NAME).deb
diff --git a/fuel/build/opendaylight/make-odl-deb.sh b/fuel/build/opendaylight/make-odl-deb.sh
index 24974dc..5222087 100755
--- a/fuel/build/opendaylight/make-odl-deb.sh
+++ b/fuel/build/opendaylight/make-odl-deb.sh
@@ -260,11 +260,11 @@ do
done
# Constructing script variables
-DEB_PACK_BASE_PATH="f_${PACKAGE_SHORT_NAME}/${PACKAGE_NAME}_${PACKAGE_VERSION}/"
+DEB_PACK_BASE_PATH="f_${PACKAGE_SHORT_NAME}/package/${PACKAGE_NAME}_${PACKAGE_VERSION}"
echo ${DEB_PACK_BASE_PATH} >> "$BUILD_HISTORY"
TARGET_INSTALL_PATH="/usr/share/java/${PACKAGE_SHORT_NAME}/"
-DEB_PACK_CONTENT_PATH="${DEB_PACK_BASE_PATH}usr/share/java/${PACKAGE_SHORT_NAME}/"
-DEB_PACK_CONFIG_PATH="${DEB_PACK_BASE_PATH}etc/${PACKAGE_SHORT_NAME}"
+DEB_PACK_CONTENT_PATH="${DEB_PACK_BASE_PATH}/usr/share/java/${PACKAGE_SHORT_NAME}/"
+DEB_PACK_CONFIG_PATH="${DEB_PACK_BASE_PATH}/etc/${PACKAGE_SHORT_NAME}"
TARGET_TAR=$(ls ${TARGET_BUILD_PATH}*.tar.gz)
TARGET_TAR="${TARGET_TAR##*/}"
TAR_PATH="${TARGET_TAR%.*}"
@@ -295,20 +295,20 @@ find ${DEB_PACK_CONFIG_PATH}/etc/ -type f -print -exec chmod 644 {} \;
find ${DEB_PACK_CONFIG_PATH}/etc/ -type d -print -exec chmod 755 {} \;
# Create package usr/bin odl script
-mkdir "${DEB_PACK_BASE_PATH}usr/bin"
-chmod 755 "${DEB_PACK_BASE_PATH}usr/bin"
-make-DEBIAN_bin > "${DEB_PACK_BASE_PATH}usr/bin/odl"
-chmod 755 "${DEB_PACK_BASE_PATH}usr/bin/odl"
+mkdir "${DEB_PACK_BASE_PATH}/usr/bin"
+chmod 755 "${DEB_PACK_BASE_PATH}/usr/bin"
+make-DEBIAN_bin > "${DEB_PACK_BASE_PATH}/usr/bin/odl"
+chmod 755 "${DEB_PACK_BASE_PATH}/usr/bin/odl"
# Create Deb pack install meta-data
-mkdir "${DEB_PACK_BASE_PATH}DEBIAN"
-make-DEBIAN_control > "${DEB_PACK_BASE_PATH}DEBIAN/control"
-make-DEBIAN_conffiles > "${DEB_PACK_BASE_PATH}DEBIAN/conffiles"
-mkdir -p "${DEB_PACK_BASE_PATH}usr/share/doc/${PACKAGE_SHORT_NAME}"
-make-DEBIAN_copyright > "${DEB_PACK_BASE_PATH}usr/share/doc/${PACKAGE_SHORT_NAME}/copyright"
-make-DEBIAN_changelog > "${DEB_PACK_BASE_PATH}usr/share/doc/${PACKAGE_SHORT_NAME}/changelog.Debian"
+mkdir "${DEB_PACK_BASE_PATH}/DEBIAN"
+make-DEBIAN_control > "${DEB_PACK_BASE_PATH}/DEBIAN/control"
+make-DEBIAN_conffiles > "${DEB_PACK_BASE_PATH}/DEBIAN/conffiles"
+mkdir -p "${DEB_PACK_BASE_PATH}/usr/share/doc/${PACKAGE_SHORT_NAME}"
+make-DEBIAN_copyright > "${DEB_PACK_BASE_PATH}/usr/share/doc/${PACKAGE_SHORT_NAME}/copyright"
+make-DEBIAN_changelog > "${DEB_PACK_BASE_PATH}/usr/share/doc/${PACKAGE_SHORT_NAME}/changelog.Debian"
# Create Deb pack post install symlinks and usr/bin scripts
-make-DEBIAN_postinst > "${DEB_PACK_BASE_PATH}DEBIAN/postinst"
-chmod 755 "${DEB_PACK_BASE_PATH}DEBIAN/postinst"
-mkdir -p "${DEB_PACK_BASE_PATH}usr/bin"
+make-DEBIAN_postinst > "${DEB_PACK_BASE_PATH}/DEBIAN/postinst"
+chmod 755 "${DEB_PACK_BASE_PATH}/DEBIAN/postinst"
+mkdir -p "${DEB_PACK_BASE_PATH}/usr/bin"