Merge "f_ovsnfv-dpdk-pluginbuild: Update repo location" into stable/brahmaputra
[fuel.git] / build / Makefile
index 6e7041d..550f360 100644 (file)
@@ -20,9 +20,15 @@ SHELL = /bin/bash
 #Input args
 export ISOSRC = file:$(shell pwd)/fuel-7.0.iso
 export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
-export PRODNO = "OPNFV_BGS"
+export PRODNO = "OPNFV_FUEL"
 export REVSTATE = "P0000"
+
+ifdef BUILD_FUEL_PLUGINS
+$(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS))
+export NEWISO = $(shell pwd)/release/unofficial-opnfv-${REVSTATE}.iso
+else
 export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+endif
 
 # 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.
@@ -37,6 +43,24 @@ export DOCKERIMG = opnfv.org/ubuntu-builder:14.04
 export TOPDIR := $(shell pwd)
 export REPOINFO  := $(BUILD_BASE)/repo_info.sh
 
+# Use snapshots
+# Use nearby repositories
+export MIRROR_UBUNTU_URL := $(shell ./f_isoroot/f_repobuild/select_ubuntu_repo.sh --url)
+export MIRROR_UBUNTU := $(shell echo "$(MIRROR_UBUNTU_URL)" | cut -d'/' -f3 )
+export MIRROR_UBUNTU_ROOT := $(shell echo -n '/' ; echo "$(MIRROR_UBUNTU_URL)" | cut -d'/' -f4-)
+
+export LATEST_MIRROR_ID_URL := http://$(shell ./select_closest_fuel_mirror.py)
+
+export MIRROR_MOS_UBUNTU := $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3)
+export LATEST_TARGET_UBUNTU := $(shell curl -sSf "$(MIRROR_MOS_UBUNTU)/mos-repos/ubuntu/8.0.target.txt" | head -1)
+export MIRROR_MOS_UBUNTU_ROOT := "/mos-repos/ubuntu/$(LATEST_TARGET_UBUNTU)"
+
+export LATEST_TARGET_CENTOS := $(shell curl -sSf "$(LATEST_MIRROR_ID_URL)/mos-repos/centos/mos8.0-centos7-fuel/os.target.txt" | head -1)
+export MIRROR_FUEL := "$(LATEST_MIRROR_ID_URL)/mos-repos/centos/mos8.0-centos7-fuel/$(LATEST_TARGET_CENTOS)/x86_64"
+
+# uncomment and use: make print-VARIABLE
+#print-%  : ; @echo $* = $($*)
+
 #Build subclasses
 
 SUBDIRS := f_isoroot
@@ -78,20 +102,29 @@ $(ISOCACHE):
        # Setup cgroups for docker-in-docker
        sudo /root/enable_dockerx2
        # Patch for adding dosfstools, as Fuel 6.1 is running mkfs.vfat
-       cd /tmp/fuel-main && patch -p0 < $(TOPDIR)/fuel-main_5.patch
-       # Patch for changing the second layer Docker --bip address
-       cd /tmp/fuel-main && patch -p0 < $(TOPDIR)/fuel-main_6.patch
+       cd /tmp/fuel-main && patch -f -p0 < $(TOPDIR)/fuel-main_5.patch
+       # Patch for using the Czech Fuel mirror
+       # cd /tmp/fuel-main && patch -p0 < $(TOPDIR)/fuel-main_7.patch
        # Remove Docker optimizations, otherwise multistrap will fail during
        # Fuel build.
        sudo rm -f /etc/apt/apt.conf.d/docker*
        #
+       # Need to replace the old Docker v. 1.5.0 with a later version to be
+       # able to access the Docker remote repository!
+       cd /tmp/fuel-main && patch -f -p0 < $(TOPDIR)/fuel-main_docker_version.patch
+       # cd /tmp/fuel-main && patch -f -p0 < $(TOPDIR)/fuel-main_docker_dns.patch
+       #
        cd /tmp/fuel-main && ./prepare-build-env.sh
        cd /tmp/fuel-main && make repos
        $(REPOINFO) -r /tmp/fuel-main > gitinfo_fuel.txt
-       #
-       cd /tmp/fuel-main && sudo make iso
+       # Repeat build up to ten times
+       sudo ./fuel_build_loop
        cp /tmp/fuel-main/build/artifacts/fuel*.iso .
 
+       # Attempt to store ISO in cache to speed up the next
+       # build attempt. If cache is not enabled no harm is done.
+       $(MAKE) -f Makefile put-cache
+
 .PHONY: mount-origiso umount-origiso
 mount-origiso: $(ISOCACHE)
        @echo "Mounting original ISO in $(ORIGDIR)"
@@ -173,7 +206,11 @@ debug:
        cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG)
        cd /tmp/fuel-main && make repos
        $(REPOINFO) -r /tmp/fuel-main > .cachedata
-       sha1sum fuel-main*.patch >> .cachedata
+       sha1sum *.patch >> .cachedata
+       sha1sum fuel_build_loop >> .cachedata
+       sha1sum config.mk >> .cachedata
+       sha1sum Makefile >> .cachedata
+       $(CACHETOOL) getbiweek >> .cachedata
        cat .cachedata | $(CACHETOOL) getid > .cacheid
        # Not removing fuel-main as it is re-used in build