diff --git a/packages/deb/module.mk b/packages/deb/module.mk index 2a8f605c0..e3efe48cc 100644 --- a/packages/deb/module.mk +++ b/packages/deb/module.mk @@ -14,20 +14,18 @@ clean-deb: define build_deb $(BUILD_DIR)/packages/deb/repo.done: $(BUILD_DIR)/packages/deb/$1.done $(BUILD_DIR)/packages/deb/repo.done: $(BUILD_DIR)/packages/deb/$1-repocleanup.done - $(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/mirror/ubuntu/build.done $(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/packages/source_$1.done - $(BUILD_DIR)/packages/deb/$1.done: SANDBOX_UBUNTU:=$(BUILD_DIR)/packages/deb/SANDBOX +$(BUILD_DIR)/packages/deb/$1.done: SANDBOX_DEB_PKGS:=apt wget bzip2 apt-utils build-essential python-setuptools devscripts debhelper fakeroot $(BUILD_DIR)/packages/deb/$1.done: export SANDBOX_UBUNTU_UP:=$$(SANDBOX_UBUNTU_UP) $(BUILD_DIR)/packages/deb/$1.done: export SANDBOX_UBUNTU_DOWN:=$$(SANDBOX_UBUNTU_DOWN) $(BUILD_DIR)/packages/deb/$1.done: $(BUILD_DIR)/repos/repos.done mkdir -p $(BUILD_DIR)/packages/deb/packages $(BUILD_DIR)/packages/deb/sources - mkdir -p $$(SANDBOX_UBUNTU) - mkdir -p $$(SANDBOX_UBUNTU)/proc - sed -e "s/@@UBUNTU_RELEASE@@/$(UBUNTU_RELEASE)/g" $$(SOURCE_DIR)/packages/multistrap.conf | sudo tee $$(SANDBOX_UBUNTU)/multistrap.conf - sudo sh -c "$$$${SANDBOX_UBUNTU_UP}" - sudo chroot $$(SANDBOX_UBUNTU) /bin/bash -c "apt-get update" +# create sandbox if does not exist + test -e $$(SANDBOX_UBUNTU)/etc/debian_version || sudo sh -c "$$$${SANDBOX_UBUNTU_UP}" +# mount proc if not mounted + mountpoint -q $$(SANDBOX_UBUNTU)/proc || sudo mount -t proc sandbox_ubuntu_proc $$(SANDBOX_UBUNTU)/proc sudo mkdir -p $$(SANDBOX_UBUNTU)/tmp/$1 ifeq ($1,$(filter $1,nailgun-net-check python-tasklib)) tar zxf $(BUILD_DIR)/packages/sources/$1/$(subst python-,,$1)*.tar.gz -C $(BUILD_DIR)/packages/deb/sources diff --git a/requirements-deb.txt b/requirements-deb.txt index 4274a84b6..9fb69c394 100644 --- a/requirements-deb.txt +++ b/requirements-deb.txt @@ -31,6 +31,8 @@ crda curl daemonize debconf-utils +devscripts +debhelper dhcp-checker diffutils discover diff --git a/sandbox.mk b/sandbox.mk index 69272f966..3012e595a 100644 --- a/sandbox.mk +++ b/sandbox.mk @@ -52,19 +52,30 @@ umount $(SANDBOX)/dev endef define SANDBOX_UBUNTU_UP -mount | grep -q $(SANDBOX_UBUNTU)/proc || sudo mount -t proc none $(SANDBOX_UBUNTU)/proc -[ -f $(SANDBOX_UBUNTU)/etc/debian_version ] || sudo multistrap -a amd64 -f $(SANDBOX_UBUNTU)/multistrap.conf -d $(SANDBOX_UBUNTU)/ -sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "locale-gen en_US.UTF-8 ; dpkg-reconfigure locales" -sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "dpkg --configure -a || exit 0" -sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "rm -rf /var/run/*" -sudo chroot $(SANDBOX_UBUNTU) /bin/bash -c "dpkg --configure -a || exit 0" -echo 'APT::Get::AllowUnauthenticated 1;' | sudo tee $(SANDBOX_UBUNTU)/etc/apt/apt.conf.d/02mirantis-unauthenticated -[ -n "$(EXTRA_DEB_REPOS)" ] && echo "$(EXTRA_DEB_REPOS)" | tr '|' '\n' | while read repo; do echo deb $$repo; done | sudo tee $(SANDBOX_UBUNTU)/etc/apt/sources.list.d/extra.list || exit 0 +echo "SANDBOX_UBUNTU_UP: start" +mkdir -p $(SANDBOX_UBUNTU) +echo "Running debootstrap" +sudo debootstrap --no-check-gpg --arch=$(UBUNTU_ARCH) $(UBUNTU_RELEASE) $(SANDBOX_UBUNTU) file://$(LOCAL_MIRROR)/ubuntu sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf -mount | grep -q $(SANDBOX_UBUNTU)/proc || sudo mount -t proc none $(SANDBOX_UBUNTU)/proc +echo "Generating utf8 locale" +sudo chroot $(SANDBOX_UBUNTU) /bin/sh -c 'locale-gen en_US.UTF-8; dpkg-reconfigure locales' +echo "Preparing directory for chroot local mirror" +test -e $(SANDBOX_UBUNTU)/tmp/apt && sudo rm -rf $(SANDBOX_UBUNTU)/tmp/apt +sudo mkdir -p $(SANDBOX_UBUNTU)/tmp/apt +echo "Copying local ubuntu mirror into $(SANDBOX_UBUNTU)/tmp/apt" +sudo cp -al $(LOCAL_MIRROR)/ubuntu/dists $(LOCAL_MIRROR)/ubuntu/pool $(SANDBOX_UBUNTU)/tmp/apt +echo "Configuring apt sources.list: deb file:///tmp/apt $(UBUNTU_RELEASE) main" +echo "deb file:///tmp/apt $(UBUNTU_RELEASE) main" | sudo tee $(SANDBOX_UBUNTU)/etc/apt/sources.list +echo "Allowing using unsigned repos" +echo "APT::Get::AllowUnauthenticated 1;" | sudo tee $(SANDBOX_UBUNTU)/etc/apt/apt.conf.d/02mirantis-unauthenticated +echo "Updating apt package database" +sudo chroot $(SANDBOX_UBUNTU) apt-get update +echo "Installing additional packages: $(SANDBOX_DEB_PKGS)" +test -n "$(SANDBOX_DEB_PKGS)" && sudo chroot $(SANDBOX_UBUNTU) apt-get install --yes $(SANDBOX_DEB_PKGS) +echo "SANDBOX_UBUNTU_UP: done" endef define SANDBOX_UBUNTU_DOWN sync sudo umount $(SANDBOX_UBUNTU)/proc -endef \ No newline at end of file +endef