From 11dbe27afb96c5b54b9f4f0a1c8b21194f59dc7b Mon Sep 17 00:00:00 2001 From: Jonas Bjurel Date: Sat, 3 Oct 2015 16:54:43 +0200 Subject: Moving tag arno.2015.1.0 from genesis to fuel/stable/arno Change-Id: I8bb3e28a814e04ad15e8a4b24b40bd7685600f46 Signed-off-by: Jonas Bjurel --- foreman/build/Makefile | 133 +++++++++++++++ foreman/build/c7-opnfv-x86_64-comps.xml | 293 ++++++++++++++++++++++++++++++++ foreman/build/cache.mk | 78 +++++++++ foreman/build/config.mk | 0 foreman/build/isolinux.cfg | 120 +++++++++++++ foreman/build/opnfv-genesis.spec | 33 ++++ 6 files changed, 657 insertions(+) create mode 100644 foreman/build/Makefile create mode 100644 foreman/build/c7-opnfv-x86_64-comps.xml create mode 100644 foreman/build/cache.mk create mode 100644 foreman/build/config.mk create mode 100644 foreman/build/isolinux.cfg create mode 100644 foreman/build/opnfv-genesis.spec (limited to 'foreman/build') diff --git a/foreman/build/Makefile b/foreman/build/Makefile new file mode 100644 index 000000000..8b87ce61e --- /dev/null +++ b/foreman/build/Makefile @@ -0,0 +1,133 @@ +############################################################################## +# Copyright (c) 2015 Ericsson AB and others. +# stefan.k.berg@ericsson.com +# jonas.bjurel@ericsson.com +# dradez@redhat.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 +############################################################################## + +SHELL = /bin/bash +############################################################################ +# BEGIN of variables to customize +# +#Input args +export UNIT_TEST = FALSE +export INTERACTIVE = TRUE +export CENTDNLD = http://mirrors.cat.pdx.edu/centos/7.1.1503/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso +export ISOSRC = file:$(shell pwd)/CentOS-7-x86_64-DVD-1503-01.iso +export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC)) +export PRODNO = "OPNFV_BGS" +export REVSTATE = "P0000" +export NEWISO = $(shell pwd)/release/OPNFV-CentOS-7-x86_64-${REVSTATE}.iso +export VBOXDNLD = http://download.virtualbox.org/virtualbox/rpm/el/7.1/x86_64/VirtualBox-4.3-4.3.26_98988_el7-1.x86_64.rpm +export VBOXRPM = $(shell pwd)/VirtualBox-4.3-4.3.26_98988_el7-1.x86_64.rpm +export VAGRANTDNLD = https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.rpm +export VAGRANTRPM = $(shell pwd)/vagrant_1.7.2_x86_64.rpm +export GENESISRPM = $(shell pwd)/x86_64/opnfv-genesis-0.1-1.x86_64.rpm + +# 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. + +#Build variables +export BUILD_BASE := $(shell pwd) +export CACHE_DIR := $(BUILD_BASE)/cache +export VERSION_FILE := $(BUILD_BASE)/.versions +export TOPDIR := $(shell pwd) + +CENTDIR := $(TOPDIR)/centiso +# +# END of variables to customize +############################################################################# + +SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) + + +.PHONY: all +all: iso + @echo "Versions of cached build results built by" $(shell hostname) "at" $(shell date -u) > $(VERSION_FILE) + @echo "cache.mk" $(shell md5sum $(BUILD_BASE)/cache.mk | cut -f1 -d " ") >> $(VERSION_FILE) + @echo "config.mk" $(shell md5sum $(BUILD_BASE)/config.mk | cut -f1 -d " ") >> $(VERSION_FILE) + +############################################################################ +# BEGIN of Include definitions +# +include config.mk +include cache.mk +# +# END Include definitions +############################################################################# + +$(ISOCACHE): + test -s $(ISOCACHE) || { wget -nv $(CENTDNLD) ; } + +$(VBOXRPM): + test -s $(VBOXRPM) || { wget -nv $(VBOXDNLD) ; } + +$(VAGRANTRPM): + test -s $(VAGRANTRPM) || { wget -nv $(VAGRANTDNLD) ; } + +.PHONY: mount-centiso umount-centiso +mount-centiso: $(ISOCACHE) + @echo "Mounting CentOS ISO in $(CENTDIR)" + @mkdir -p $(CENTDIR) + @fuseiso $(ISOCACHE) $(CENTDIR) + +umount-centiso: + @set +e + @echo "Unmounting CentOS ISO from $(CENTDIR)" + @fusermount -u $(CENTDIR) + @rmdir $(CENTDIR) + @set -e + +.PHONY: build-clean $(SUBCLEAN) +build-clean: $(SUBCLEAN) + @rm -Rf centos + @rm -Rf release + @rm -Rf newiso + @rm -f $(NEWISO) + +.PHONY: clean $(SUBCLEAN) +clean: clean-cache $(SUBCLEAN) + @rm -f *.iso + @rm -Rf release + @rm -Rf newiso + @rm -f $(NEWISO) + @rm -f $(BUILD_BASE)/.versions + +$(SUBCLEAN): %.clean: + $(MAKE) -C $* -f Makefile clean + +.PHONY: rpm-clean +rpm-clean: + rpmbuild --clean opnfv-genesis.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' + +.PHONY: rpm +rpm: + pushd ../../ && git archive --format=tar --prefix=opnfv-genesis-0.1/ HEAD | gzip > foreman/build/opnfv-genesis.tar.gz + rpmbuild -ba opnfv-genesis.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' + @make rpm-clean + + +# Todo: Make things smarter - we shouldn't need to clean everything +# betwen make invocations. +.PHONY: iso +iso: build-clean $(ISOCACHE) $(VBOXRPM) $(VAGRANTRPM) rpm + @make mount-centiso + @mkdir centos release + cp -r $(CENTDIR)/* centos + @make umount-centiso + # modify the installer iso's contents + @cp -f isolinux.cfg centos/isolinux/isolinux.cfg + @cp $(VBOXRPM) centos/Packages + @cp $(VAGRANTRPM) centos/Packages + @cp $(GENESISRPM) centos/Packages + # regenerate yum repo data + @echo "Generating new yum metadata" + createrepo --update -g ../c7-opnfv-x86_64-comps.xml centos + # build the iso + @echo "Building OPNFV iso" + mkisofs -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -V "OPNFV CentOS 7 x86_64" -R -J -v -T -o $(NEWISO) centos + @printf "\n\nISO is built at $(NEWISO)\n\n" diff --git a/foreman/build/c7-opnfv-x86_64-comps.xml b/foreman/build/c7-opnfv-x86_64-comps.xml new file mode 100644 index 000000000..1e384e68a --- /dev/null +++ b/foreman/build/c7-opnfv-x86_64-comps.xml @@ -0,0 +1,293 @@ + + + + + + core + Core + Kern + ማዕከላዊ ቦታ + اللبّ + ভিত্তি + هستگ + Падмурак + Основа + কোর + কোর + Jezgra + Nucli + Úplný základ + Craidd + Grundlæggende + Kern + Πυρήνας + Core + Núcleo + Tuum + اصل + Keskeiset + Core + Núcleo + મૂળ + ליבה + कोर + Jezgra + Mag + Հիմք + Nucleo + Inti + Bugas + Lágmarkskerfi + Principale + コア + ბირთვი + ಅಂತಸ್ಸಾರ + 핵심 + Pamatsistēma + कोर + Основни + കോറ്‍ + कोर + Teras + Kjerne + कोर + Kern + Kjerne + Bogare + ପ୍ରମୂଖ + ਮੂਲ + Rdzeń + Núcleo + Núcleo + Nucleu + Основа + න්‍යෂ්ඨිය + Jadro + Jedro + Bërthama + Срж + Srž + Srž + Grund + கோர் + అంతర్భాగం + Система + แกนหลัก + Çekirdek + Основа + مرکز + Lõi + 核心 + 核心 + Okuyikhona + Smallest possible installation. + ন্যূনতম ইনস্টল। + ন্যূনতম ইনস্টলেশন। + ন্যূনতম ইনস্টলেশন। + Nejmenší možná instalace. + Kleinstmögliche Installation. + La instalación más pequeña posible. + Plus petite installation possible. + નાનામાં નાના શક્ય સ્થાપન. + लघुतम संभावित संस्थापन. + Le minime possibile installation. + Minima installazione possibile. + 最小限のインストール + ಅತ್ಯಲ್ಪಸಾಧ್ಯ ಅನುಸ್ಥಾಪನೆ. + 가능한 최소 설치 + സാധ്യമായ ഏറ്റവും ചെറിയ ഇന്‍സ്റ്റലേഷന്‍. + शक्यतया सर्वात लहान प्रतिष्ठापन. + କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ସ୍ଥାପନା। + ਘੱਟੋ-ਘੱਟ ਸੰਭਵ ਇੰਸਟਾਲੇਸ਼ਨ। + Najmniejsza możliwa instalacja. + Menor instalação possível + Минимально возможная установка + Minsta möjliga installation + மிகச் சிறிய செயல்படுத்தக்கூடிய நிறுவல். + సాధ్యమగు అతిచిన్న సంస్థాపన. + Мінімально можливе встановлення. + 最小可能安装。 + 最小型安裝。 + false + false + + aic94xx-firmware + alsa-firmware + bfa-firmware + dracut-config-rescue + ivtv-firmware + iwl1000-firmware + iwl100-firmware + iwl105-firmware + iwl135-firmware + iwl2000-firmware + iwl2030-firmware + iwl3160-firmware + iwl3945-firmware + iwl4965-firmware + iwl5000-firmware + iwl5150-firmware + iwl6000-firmware + iwl6000g2a-firmware + iwl6000g2b-firmware + iwl6050-firmware + iwl7260-firmware + kernel-tools + libertas-sd8686-firmware + libertas-sd8787-firmware + libertas-usb8388-firmware + linux-firmware + microcode_ctl + NetworkManager + NetworkManager-tui + postfix + ql2100-firmware + ql2200-firmware + ql23xx-firmware + audit + basesystem + bash + biosdevname + btrfs-progs + coreutils + cpp + cronie + curl + dhclient + dkms + e2fsprogs + filesystem + gcc + glibc + glibc-devel + glibc-headers + git + hostname + initscripts + iproute + iprutils + iptables + iputils + irqbalance + kbd + kernel-devel + kernel-headers + kexec-tools + less + libmpc + mpfr + man-db + ncurses + net-tools + less + man-db + ncurses + openssh-clients + openssh-server + opnfv-genesis + parted + passwd + patch + plymouth + policycoreutils + procps-ng + rootfiles + rpm + rsyslog + selinux-policy-targeted + setup + shadow-utils + sudo + systemd + tar + tuned + util-linux + vagrant + vim-minimal + VirtualBox-4.3 + xfsprogs + yum + dracut-config-generic + dracut-fips-aesni + dracut-fips + dracut-network + openssh-keycat + selinux-policy-mls + tboot + + + + + opnfv_provisioning + OPNFV Provisioning Server Install + নূন্যতম ইনস্টল + ন্যূনতম ইনস্টল + Minimální instalace + Minimale Installation + Instalación mínima + Installation minimale + ન્યૂનતમ સ્થાપન + न्यूनतम संस्थापन + Installazione minima + 最小限のインストール + ಕನಿಷ್ಟ ಅನುಸ್ಥಾಪನೆ + 최소 설치 + ഏറ്റവും കുറഞ്ഞ ഇന്‍സ്റ്റോള്‍ + किमान इंस्टॉल + ସର୍ବନିମ୍ନ ସ୍ଥାପନ + ਘੱਟ ਤੋਂ ਘੱਟ ਇੰਸਟਾਲ + Minimalna instalacja + Instalações Mínimas + Минимальная установка + குறைந்தபட்ச நிறுவல் + కనీసపు సంస్థాపన + Мінімальна система + 最小安装 + 最小型安裝 + Installs an OPNFV Provisioning Server + মৌলি কাৰ্য্যকৰীতা। + প্রাথমিক বৈশিষ্ট্য। + Základní funkcionalita. + Grundlegende Funktionalität. + Funcionalidad básica. + Fonctionnalité de base. + મૂળભૂત વિધેય. + मौलिक प्रकार्यात्मकता. + Funzione di base. + 基本的な機能です。 + ಮೂಲಭೂತ ಕ್ರಿಯಾಶೀಲತೆ. + 기본적인 기능입니다. + അടിസ്ഥാന പ്രവൃത്തിവിശേഷണം. + मूळ कार्यक्षमता. + ସାଧାରଣ କାର୍ଯ୍ୟକାରିତା। + ਮੁੱਢਲੀ ਕਾਰਜਸ਼ੀਲਤਾ। + Podstawowa funkcjonalność. + Função básica + Базовая функциональность. + அடிப்படை செயலம்சம். + ప్రాథమిక ఫంక్షనాలిటి. + Основні можливості. + 基本功能。 + 基本功能。 + 5 + + core + + + + + + + + + + + + + + + + + + + diff --git a/foreman/build/cache.mk b/foreman/build/cache.mk new file mode 100644 index 000000000..fdfd0034a --- /dev/null +++ b/foreman/build/cache.mk @@ -0,0 +1,78 @@ +############################################################################## +# 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 +############################################################################## + +SHELL = /bin/bash +CACHEVALIDATE := $(addsuffix .validate,$(SUBDIRS)) +CACHECLEAN := $(addsuffix .clean,$(CACHEFILES) $(CACHEDIRS)) + +############################################################################ +# BEGIN of variables to customize +# +CACHEFILES += .versions +CACHEFILES += $(shell basename $(ISOSRC)) +# +# END of variables to customize +############################################################################ + +.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 $(BUILD_BASE)/$@;\ + fi + @ln -s $(BUILD_BASE)/$@ $(CACHE_DIR)/$@ + +.PHONY: $(CACHEFILES) +$(CACHEFILES): + @mkdir -p $(dir $(CACHE_DIR)/$@) + @if [ ! -d $(dir $(BUILD_BASE)/$@) ]; then\ + mkdir -p $(dir $(BUILD_BASE)/$@);\ + fi + + @if [ ! -f $(BUILD_BASE)/$@ ]; then\ + 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: $(CACHEVALIDATE) + @if [[ $(shell md5sum $(BUILD_BASE)/config.mk | cut -f1 -d " ") != $(shell cat $(VERSION_FILE) | 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 | cut -f1 -d " ") != $(shell cat $(VERSION_FILE) | grep cache.mk | awk '{print $$NF}') ]]; then\ + echo "Cache does not match current cache.mk definition, cache must be rebuilt";\ + exit 1;\ + fi; + +.PHONY: $(CACHEVALIDATE) +$(CACHEVALIDATE): %.validate: + @echo VALIDATE $(CACHEVALIDATE) + $(MAKE) -C $* -f Makefile validate-cache + +.PHONY: $(CACHECLEAN) +$(CACHECLEAN): %.clean: + rm -rf ${CACHE_DIR}/$* diff --git a/foreman/build/config.mk b/foreman/build/config.mk new file mode 100644 index 000000000..e69de29bb diff --git a/foreman/build/isolinux.cfg b/foreman/build/isolinux.cfg new file mode 100644 index 000000000..12848de75 --- /dev/null +++ b/foreman/build/isolinux.cfg @@ -0,0 +1,120 @@ +default vesamenu.c32 +timeout 600 + +display boot.msg + +# Clear the screen when exiting the menu, instead of leaving the menu displayed. +# For vesamenu, this means the graphical background is still displayed without +# the menu itself for as long as the screen remains in graphics mode. +menu clear +menu background splash.png +menu title CentOS 7 +menu vshift 8 +menu rows 18 +menu margin 8 +#menu hidden +menu helpmsgrow 15 +menu tabmsgrow 13 + +# Border Area +menu color border * #00000000 #00000000 none + +# Selected item +menu color sel 0 #ffffffff #00000000 none + +# Title bar +menu color title 0 #ff7ba3d0 #00000000 none + +# Press [Tab] message +menu color tabmsg 0 #ff3a6496 #00000000 none + +# Unselected menu item +menu color unsel 0 #84b8ffff #00000000 none + +# Selected hotkey +menu color hotsel 0 #84b8ffff #00000000 none + +# Unselected hotkey +menu color hotkey 0 #ffffffff #00000000 none + +# Help text +menu color help 0 #ffffffff #00000000 none + +# A scrollbar of some type? Not sure. +menu color scrollbar 0 #ffffffff #ff355594 none + +# Timeout msg +menu color timeout 0 #ffffffff #00000000 none +menu color timeout_msg 0 #ffffffff #00000000 none + +# Command prompt text +menu color cmdmark 0 #84b8ffff #00000000 none +menu color cmdline 0 #ffffffff #00000000 none + +# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message. + +menu tabmsg Press Tab for full configuration options on menu items. + +menu separator # insert an empty line +menu separator # insert an empty line + +label linux + menu label ^Install OPNFV CentOS 7 + menu default + kernel vmlinuz + append initrd=initrd.img inst.stage2=hd:LABEL=OPNFV\x20CentOS\x207\x20x86_64 + +#label check +# menu label Test this ^media & install CentOS 7 +# kernel vmlinuz +# append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet + +menu separator # insert an empty line + +# utilities submenu +menu begin ^Troubleshooting + menu title Troubleshooting + +label vesa + menu indent count 5 + menu label Install CentOS 7 in ^basic graphics mode + text help + Try this option out if you're having trouble installing + CentOS 7. + endtext + kernel vmlinuz + append initrd=initrd.img inst.stage2=hd:LABEL=OPNFV\x20CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet + +label rescue + menu indent count 5 + menu label ^Rescue a CentOS system + text help + If the system will not boot, this lets you access files + and edit config files to try to get it booting again. + endtext + kernel vmlinuz + append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet + +label memtest + menu label Run a ^memory test + text help + If your system is having issues, a problem with your + system's memory may be the cause. Use this utility to + see if the memory is working correctly. + endtext + kernel memtest + +menu separator # insert an empty line + +label local + menu label Boot from ^local drive + localboot 0xffff + +menu separator # insert an empty line +menu separator # insert an empty line + +label returntomain + menu label Return to ^main menu + menu exit + +menu end diff --git a/foreman/build/opnfv-genesis.spec b/foreman/build/opnfv-genesis.spec new file mode 100644 index 000000000..674760fea --- /dev/null +++ b/foreman/build/opnfv-genesis.spec @@ -0,0 +1,33 @@ +Name: opnfv-genesis +Version: 0.1 +Release: 1 +Summary: The files from the OPNFV genesis repo + +Group: System Environment +License: Apache 2.0 +URL: https://gerrit.opnfv.org/gerrit/genesis.git +Source0: opnfv-genesis.tar.gz + +#BuildRequires: +Requires: vagrant, VirtualBox-4.3 + +%description +The files from the OPNFV genesis repo + +%prep +%setup -q + + +%build + +%install +mkdir -p %{buildroot}/usr/bin/ +cp foreman/ci/deploy.sh %{buildroot}/usr/bin/ + +%files +/usr/bin/deploy.sh + + +%changelog +* Fri Apr 24 2015 Dan Radez - 0.1-1 +- Initial Packaging -- cgit 1.2.3-korg