From c715e7bb460f499f4fd20f7ab000d7a6d670636a Mon Sep 17 00:00:00 2001 From: Florin Dumitrascu Date: Sun, 13 Mar 2016 18:49:38 +0100 Subject: Initial code commit This brings initial code base for Armband project that allows building an OPNFV Fuel 8 iso based on Brahmaputra components to be deployed on arm64 servers. Signed-off-by: Stanislaw Kardach Signed-off-by: Alexandru Avadanii Signed-off-by: Florin Dumitrascu JIRA:FUEL-39 --- ...se-qemu-debootstrap-to-support-multi-arch.patch | 53 ++++++++++++++++++++++ .../0002-Allow-multi-arch-debian-mirrors.patch | 45 ++++++++++++++++++ patches/fuel-main/0003-Follow-redirects.patch | 24 ++++++++++ ...-Add-apt-https-support-package-to-sandbox.patch | 24 ++++++++++ .../fuel-main/0005-Make-cpio-accept-symlinks.patch | 30 ++++++++++++ ...er-grub-aarch64-RPM-reinstall-to-start.sh.patch | 42 +++++++++++++++++ 6 files changed, 218 insertions(+) create mode 100644 patches/fuel-main/0001-Use-qemu-debootstrap-to-support-multi-arch.patch create mode 100644 patches/fuel-main/0002-Allow-multi-arch-debian-mirrors.patch create mode 100644 patches/fuel-main/0003-Follow-redirects.patch create mode 100644 patches/fuel-main/0004-Add-apt-https-support-package-to-sandbox.patch create mode 100644 patches/fuel-main/0005-Make-cpio-accept-symlinks.patch create mode 100644 patches/fuel-main/0006-Add-cobbler-grub-aarch64-RPM-reinstall-to-start.sh.patch (limited to 'patches/fuel-main') diff --git a/patches/fuel-main/0001-Use-qemu-debootstrap-to-support-multi-arch.patch b/patches/fuel-main/0001-Use-qemu-debootstrap-to-support-multi-arch.patch new file mode 100644 index 00000000..8b5e38d7 --- /dev/null +++ b/patches/fuel-main/0001-Use-qemu-debootstrap-to-support-multi-arch.patch @@ -0,0 +1,53 @@ +From: Stanislaw Kardach +Date: Thu, 25 Feb 2016 13:31:19 +0100 +Subject: [PATCH] Use qemu-debootstrap to support multi-arch + +--- + prepare-build-env.sh | 2 +- + requirements-rpm.txt | 1 + + sandbox.mk | 4 ++-- + 3 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/prepare-build-env.sh b/prepare-build-env.sh +index 194e528..fa186ed 100755 +--- a/prepare-build-env.sh ++++ b/prepare-build-env.sh +@@ -112,7 +112,7 @@ sudo apt-get -y install build-essential make git $GEMPKG debootstrap createrepo + python-nose libvirt-bin python-ipaddr python-paramiko python-yaml \ + python-pip kpartx extlinux unzip genisoimage syslinux debmirror \ + lrzip python-daemon python-dev libparse-debcontrol-perl reprepro devscripts \ +- xorriso ++ xorriso qemu-user-static + sudo gem install bundler -v 1.2.1 + sudo gem install builder + sudo pip install xmlbuilder jinja2 pbr +diff --git a/requirements-rpm.txt b/requirements-rpm.txt +index e0aa9ba..9a2d141 100644 +--- a/requirements-rpm.txt ++++ b/requirements-rpm.txt +@@ -202,6 +202,7 @@ python-yaql + pytz + PyYAML + qemu-img ++qemu-user-static + rabbitmq-server + rpm + rpm-build +diff --git a/sandbox.mk b/sandbox.mk +index 3c65cc6..cf3704b 100644 +--- a/sandbox.mk ++++ b/sandbox.mk +@@ -182,8 +182,8 @@ mkdir -p $(SANDBOX_UBUNTU)/etc/init.d + touch $(SANDBOX_UBUNTU)/etc/init.d/.legacy-bootordering + mkdir -p $(SANDBOX_UBUNTU)/usr/sbin + cp -a $(BUILD_DIR)/policy-rc.d $(SANDBOX_UBUNTU)/usr/sbin +-echo "Running debootstrap" +-sudo debootstrap --no-check-gpg --include=ca-certificates --arch=$(UBUNTU_ARCH) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) ++echo "Running qemu-debootstrap" ++sudo qemu-debootstrap --no-check-gpg --include=ca-certificates --arch=$(UBUNTU_ARCH) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) + if [ -e $(SANDBOX_UBUNTU)/etc/resolv.conf ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf.orig; fi + sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf + if [ -e $(SANDBOX_UBUNTU)/etc/hosts ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/hosts $(SANDBOX_UBUNTU)/etc/hosts.orig; fi +-- +1.9.1 + diff --git a/patches/fuel-main/0002-Allow-multi-arch-debian-mirrors.patch b/patches/fuel-main/0002-Allow-multi-arch-debian-mirrors.patch new file mode 100644 index 00000000..d95abcac --- /dev/null +++ b/patches/fuel-main/0002-Allow-multi-arch-debian-mirrors.patch @@ -0,0 +1,45 @@ +From: Stanislaw Kardach +Date: Thu, 25 Feb 2016 23:58:58 +0100 +Subject: [PATCH] Allow multi-arch debian mirrors + +This patch allows specifying multiple architectures via UBUNTU_ARCH in +form of a list of space separated architectures. The first architecture +in the list is considered primary and will be used for building all the +deb packages by fuel-main. Additional architectures are added to allow +targets of other architectures to use the mirror. +NOTE: this imposes a requirement that all packages built are arch +independent (which is true so far). +--- + mirror/ubuntu/module.mk | 2 +- + sandbox.mk | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/mirror/ubuntu/module.mk b/mirror/ubuntu/module.mk +index 7a9466e..fe1ada2 100644 +--- a/mirror/ubuntu/module.mk ++++ b/mirror/ubuntu/module.mk +@@ -81,7 +81,7 @@ $(BUILD_DIR)/mirror/ubuntu/mirror.done: + --root=$(MIRROR_MOS_UBUNTU_ROOT) \ + --dist=$(MIRROR_MOS_UBUNTU_SUITE) \ + --section=$(subst $(space),$(comma),$(MIRROR_MOS_UBUNTU_SECTION)) \ +- --arch=$(UBUNTU_ARCH) \ ++ --arch=$(shell echo $(UBUNTU_ARCH) | tr ' ' ',') \ + $(LOCAL_MIRROR_UBUNTU)/ + rm -rf $(LOCAL_MIRROR_UBUNTU)/.temp $(LOCAL_MIRROR_UBUNTU)/project + $(ACTION.TOUCH) +diff --git a/sandbox.mk b/sandbox.mk +index cf3704b..18757a1 100644 +--- a/sandbox.mk ++++ b/sandbox.mk +@@ -183,7 +183,7 @@ touch $(SANDBOX_UBUNTU)/etc/init.d/.legacy-bootordering + mkdir -p $(SANDBOX_UBUNTU)/usr/sbin + cp -a $(BUILD_DIR)/policy-rc.d $(SANDBOX_UBUNTU)/usr/sbin + echo "Running qemu-debootstrap" +-sudo qemu-debootstrap --no-check-gpg --include=ca-certificates --arch=$(UBUNTU_ARCH) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) ++sudo qemu-debootstrap --no-check-gpg --include=ca-certificates --arch=$(word 1,$(UBUNTU_ARCH)) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) + if [ -e $(SANDBOX_UBUNTU)/etc/resolv.conf ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf.orig; fi + sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf + if [ -e $(SANDBOX_UBUNTU)/etc/hosts ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/hosts $(SANDBOX_UBUNTU)/etc/hosts.orig; fi +-- +1.9.1 + diff --git a/patches/fuel-main/0003-Follow-redirects.patch b/patches/fuel-main/0003-Follow-redirects.patch new file mode 100644 index 00000000..3d1d1b8b --- /dev/null +++ b/patches/fuel-main/0003-Follow-redirects.patch @@ -0,0 +1,24 @@ +From: Stanislaw Kardach +Date: Tue, 1 Mar 2016 09:35:24 +0100 +Subject: [PATCH] Follow redirects + +--- + config.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.mk b/config.mk +index ae4766b..2a99278 100644 +--- a/config.mk ++++ b/config.mk +@@ -271,7 +271,7 @@ USE_PREDEFINED_FUEL_LIB_PUPPET_MODULES?= + + # If the URL given ended with target.txt then is't a pointer to a snapshot that + # should be unlinked. If it is not - return it as is. +-expand_repo_url=$(shell url=$1; echo $${url} | grep -q -e '.*\.target\.txt$$' && echo "$${url%/*}/$$(curl -sSf $$url | head -1)/x86_64/" || echo $${url}) ++expand_repo_url=$(shell url=$1; echo $${url} | grep -q -e '.*\.target\.txt$$' && echo "$${url%/*}/$$(curl -sSfL $$url | head -1)/x86_64/" || echo $${url}) + + # Expand repo URLs now + #MIRROR_CENTOS:=$(call expand_repo_url,$(MIRROR_CENTOS)) +-- +1.9.1 + diff --git a/patches/fuel-main/0004-Add-apt-https-support-package-to-sandbox.patch b/patches/fuel-main/0004-Add-apt-https-support-package-to-sandbox.patch new file mode 100644 index 00000000..da08ff80 --- /dev/null +++ b/patches/fuel-main/0004-Add-apt-https-support-package-to-sandbox.patch @@ -0,0 +1,24 @@ +From: Stanislaw Kardach +Date: Tue, 1 Mar 2016 11:06:32 +0100 +Subject: [PATCH] Add apt https support package to sandbox + +--- + sandbox.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sandbox.mk b/sandbox.mk +index 18757a1..c450d19 100644 +--- a/sandbox.mk ++++ b/sandbox.mk +@@ -183,7 +183,7 @@ touch $(SANDBOX_UBUNTU)/etc/init.d/.legacy-bootordering + mkdir -p $(SANDBOX_UBUNTU)/usr/sbin + cp -a $(BUILD_DIR)/policy-rc.d $(SANDBOX_UBUNTU)/usr/sbin + echo "Running qemu-debootstrap" +-sudo qemu-debootstrap --no-check-gpg --include=ca-certificates --arch=$(word 1,$(UBUNTU_ARCH)) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) ++sudo qemu-debootstrap --no-check-gpg --include=ca-certificates,apt-transport-https --arch=$(word 1,$(UBUNTU_ARCH)) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT) + if [ -e $(SANDBOX_UBUNTU)/etc/resolv.conf ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf.orig; fi + sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf + if [ -e $(SANDBOX_UBUNTU)/etc/hosts ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/hosts $(SANDBOX_UBUNTU)/etc/hosts.orig; fi +-- +1.9.1 + diff --git a/patches/fuel-main/0005-Make-cpio-accept-symlinks.patch b/patches/fuel-main/0005-Make-cpio-accept-symlinks.patch new file mode 100644 index 00000000..269eb907 --- /dev/null +++ b/patches/fuel-main/0005-Make-cpio-accept-symlinks.patch @@ -0,0 +1,30 @@ +From: Stanislaw Kardach +Date: Wed, 2 Mar 2016 10:04:32 +0100 +Subject: [PATCH] Make cpio accept symlinks + +--- + bootstrap/module.mk | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/bootstrap/module.mk b/bootstrap/module.mk +index cb09691..3f28172 100644 +--- a/bootstrap/module.mk ++++ b/bootstrap/module.mk +@@ -230,11 +230,11 @@ $(BUILD_DIR)/bootstrap/prepare-initram-root.done: \ + + # Installing kernel modules + find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name '$(KERNEL_PATTERN)' | xargs rpm2cpio | \ +- ( cd $(INITRAMROOT); sudo cpio -idm './lib/modules/*' './boot/vmlinuz*' ) ++ ( cd $(INITRAMROOT); sudo cpio --extract-over-symlinks -idm './lib/modules/*' './boot/vmlinuz*' ) + find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name '$(KERNEL_FIRMWARE_PATTERN)' | xargs rpm2cpio | \ +- ( cd $(INITRAMROOT); sudo cpio -idm './lib/firmware/*' ) ++ ( cd $(INITRAMROOT); sudo cpio --extract-over-symlinks -idm './lib/firmware/*' ) + find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'libmlx4*' | xargs rpm2cpio | \ +- ( cd $(INITRAMROOT); sudo cpio -idm './etc/*' './usr/lib64/*' ) ++ ( cd $(INITRAMROOT); sudo cpio --extract-over-symlinks -idm './etc/*' './usr/lib64/*' ) + for version in `ls -1 $(INITRAMROOT)/lib/modules`; do \ + sudo depmod -b $(INITRAMROOT) $$version; \ + done +-- +1.9.1 + diff --git a/patches/fuel-main/0006-Add-cobbler-grub-aarch64-RPM-reinstall-to-start.sh.patch b/patches/fuel-main/0006-Add-cobbler-grub-aarch64-RPM-reinstall-to-start.sh.patch new file mode 100644 index 00000000..0fafba2f --- /dev/null +++ b/patches/fuel-main/0006-Add-cobbler-grub-aarch64-RPM-reinstall-to-start.sh.patch @@ -0,0 +1,42 @@ +From: Florin Dumitrascu +Date: Fri, 4 Mar 2016 17:19:41 +0100 +Subject: [PATCH] Add cobbler-grub-aarch64 RPM reinstall to start.sh + +Because /var/lib/cobbler is mounted as a volume, new cobbler aarch64 +grub loader packaged as an RPM (cobbler-grub-aarch64) should be +reinstalled if its files are missing on Docker container start. +--- + docker/cobbler/setup.sh | 2 +- + docker/cobbler/start.sh | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/docker/cobbler/setup.sh b/docker/cobbler/setup.sh +index a7fce0c..90627a8 100644 +--- a/docker/cobbler/setup.sh ++++ b/docker/cobbler/setup.sh +@@ -31,7 +31,7 @@ yum update -y + + ln -s /etc/dnsmasq.conf /etc/cobbler.dnsmasq.conf + +-packages="httpd cobbler dnsmasq xinetd tftp-server" ++packages="httpd cobbler cobbler-grub-aarch64 dnsmasq xinetd tftp-server" + echo $packages | xargs -n1 yum install -y + + +diff --git a/docker/cobbler/start.sh b/docker/cobbler/start.sh +index 3c5d411..c1a359b 100644 +--- a/docker/cobbler/start.sh ++++ b/docker/cobbler/start.sh +@@ -18,6 +18,9 @@ fi + if rpm -V cobbler-web | grep -q missing; then + yum reinstall -q -y cobbler-web + fi ++if rpm -V cobbler-grub-aarch64 | grep -q missing; then ++ yum reinstall -q -y cobbler-grub-aarch64 ++fi + + + # Run puppet to apply custom config +-- +1.9.1 + -- cgit 1.2.3-korg