diff options
Diffstat (limited to 'foreman/build')
-rw-r--r-- | foreman/build/Makefile | 133 | ||||
-rw-r--r-- | foreman/build/c7-opnfv-x86_64-comps.xml | 293 | ||||
-rw-r--r-- | foreman/build/cache.mk | 78 | ||||
-rw-r--r-- | foreman/build/config.mk | 0 | ||||
-rw-r--r-- | foreman/build/isolinux.cfg | 120 | ||||
-rw-r--r-- | foreman/build/opnfv-genesis.spec | 33 |
6 files changed, 657 insertions, 0 deletions
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 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd"> +<comps> + + <group> + <id>core</id> + <name>Core</name> + <name xml:lang='af'>Kern</name> + <name xml:lang='am'>ማዕከላዊ ቦታ</name> + <name xml:lang='ar'>اللبّ</name> + <name xml:lang='as'>ভিত্তি</name> + <name xml:lang='bal'>هستگ</name> + <name xml:lang='be'>Падмурак</name> + <name xml:lang='bg'>Основа</name> + <name xml:lang='bn'>কোর</name> + <name xml:lang='bn_IN'>কোর</name> + <name xml:lang='bs'>Jezgra</name> + <name xml:lang='ca'>Nucli</name> + <name xml:lang='cs'>Úplný základ</name> + <name xml:lang='cy'>Craidd</name> + <name xml:lang='da'>Grundlæggende</name> + <name xml:lang='de'>Kern</name> + <name xml:lang='el'>Πυρήνας</name> + <name xml:lang='en_GB'>Core</name> + <name xml:lang='es'>Núcleo</name> + <name xml:lang='et'>Tuum</name> + <name xml:lang='fa'>اصل</name> + <name xml:lang='fi'>Keskeiset</name> + <name xml:lang='fr'>Core</name> + <name xml:lang='gl'>Núcleo</name> + <name xml:lang='gu'>મૂળ</name> + <name xml:lang='he'>ליבה</name> + <name xml:lang='hi'>कोर</name> + <name xml:lang='hr'>Jezgra</name> + <name xml:lang='hu'>Mag</name> + <name xml:lang='hy'>Հիմք</name> + <name xml:lang='ia'>Nucleo</name> + <name xml:lang='id'>Inti</name> + <name xml:lang='ilo'>Bugas</name> + <name xml:lang='is'>Lágmarkskerfi</name> + <name xml:lang='it'>Principale</name> + <name xml:lang='ja'>コア</name> + <name xml:lang='ka'>ბირთვი</name> + <name xml:lang='kn'>ಅಂತಸ್ಸಾರ</name> + <name xml:lang='ko'>핵심</name> + <name xml:lang='lv'>Pamatsistēma</name> + <name xml:lang='mai'>कोर</name> + <name xml:lang='mk'>Основни</name> + <name xml:lang='ml'>കോറ്</name> + <name xml:lang='mr'>कोर</name> + <name xml:lang='ms'>Teras</name> + <name xml:lang='nb'>Kjerne</name> + <name xml:lang='ne'>कोर</name> + <name xml:lang='nl'>Kern</name> + <name xml:lang='no'>Kjerne</name> + <name xml:lang='nso'>Bogare</name> + <name xml:lang='or'>ପ୍ରମୂଖ</name> + <name xml:lang='pa'>ਮੂਲ</name> + <name xml:lang='pl'>Rdzeń</name> + <name xml:lang='pt'>Núcleo</name> + <name xml:lang='pt_BR'>Núcleo</name> + <name xml:lang='ro'>Nucleu</name> + <name xml:lang='ru'>Основа</name> + <name xml:lang='si'>න්යෂ්ඨිය</name> + <name xml:lang='sk'>Jadro</name> + <name xml:lang='sl'>Jedro</name> + <name xml:lang='sq'>Bërthama</name> + <name xml:lang='sr'>Срж</name> + <name xml:lang='sr@latin'>Srž</name> + <name xml:lang='sr@Latn'>Srž</name> + <name xml:lang='sv'>Grund</name> + <name xml:lang='ta'>கோர்</name> + <name xml:lang='te'>అంతర్భాగం</name> + <name xml:lang='tg'>Система</name> + <name xml:lang='th'>แกนหลัก</name> + <name xml:lang='tr'>Çekirdek</name> + <name xml:lang='uk'>Основа</name> + <name xml:lang='ur'>مرکز</name> + <name xml:lang='vi'>Lõi</name> + <name xml:lang='zh_CN'>核心</name> + <name xml:lang='zh_TW'>核心</name> + <name xml:lang='zu'>Okuyikhona</name> + <description>Smallest possible installation.</description> + <description xml:lang='as'>ন্যূনতম ইনস্টল।</description> + <description xml:lang='bn'>ন্যূনতম ইনস্টলেশন।</description> + <description xml:lang='bn_IN'>ন্যূনতম ইনস্টলেশন।</description> + <description xml:lang='cs'>Nejmenší možná instalace.</description> + <description xml:lang='de'>Kleinstmögliche Installation.</description> + <description xml:lang='es'>La instalación más pequeña posible.</description> + <description xml:lang='fr'>Plus petite installation possible.</description> + <description xml:lang='gu'>નાનામાં નાના શક્ય સ્થાપન.</description> + <description xml:lang='hi'>लघुतम संभावित संस्थापन.</description> + <description xml:lang='ia'>Le minime possibile installation.</description> + <description xml:lang='it'>Minima installazione possibile.</description> + <description xml:lang='ja'>最小限のインストール</description> + <description xml:lang='kn'>ಅತ್ಯಲ್ಪಸಾಧ್ಯ ಅನುಸ್ಥಾಪನೆ.</description> + <description xml:lang='ko'>가능한 최소 설치</description> + <description xml:lang='ml'>സാധ്യമായ ഏറ്റവും ചെറിയ ഇന്സ്റ്റലേഷന്.</description> + <description xml:lang='mr'>शक्यतया सर्वात लहान प्रतिष्ठापन.</description> + <description xml:lang='or'>କ୍ଷୁଦ୍ରତମ ସମ୍ଭାବ୍ଯ ସ୍ଥାପନା।</description> + <description xml:lang='pa'>ਘੱਟੋ-ਘੱਟ ਸੰਭਵ ਇੰਸਟਾਲੇਸ਼ਨ।</description> + <description xml:lang='pl'>Najmniejsza możliwa instalacja.</description> + <description xml:lang='pt_BR'>Menor instalação possível</description> + <description xml:lang='ru'>Минимально возможная установка</description> + <description xml:lang='sv'>Minsta möjliga installation</description> + <description xml:lang='ta'>மிகச் சிறிய செயல்படுத்தக்கூடிய நிறுவல்.</description> + <description xml:lang='te'>సాధ్యమగు అతిచిన్న సంస్థాపన.</description> + <description xml:lang='uk'>Мінімально можливе встановлення.</description> + <description xml:lang='zh_CN'>最小可能安装。</description> + <description xml:lang='zh_TW'>最小型安裝。</description> + <default>false</default> + <uservisible>false</uservisible> + <packagelist> + <packagereq type="default">aic94xx-firmware</packagereq> + <packagereq type="default">alsa-firmware</packagereq> + <packagereq type="default">bfa-firmware</packagereq> + <packagereq type="default">dracut-config-rescue</packagereq> + <packagereq type="default">ivtv-firmware</packagereq> + <packagereq type="default">iwl1000-firmware</packagereq> + <packagereq type="default">iwl100-firmware</packagereq> + <packagereq type="default">iwl105-firmware</packagereq> + <packagereq type="default">iwl135-firmware</packagereq> + <packagereq type="default">iwl2000-firmware</packagereq> + <packagereq type="default">iwl2030-firmware</packagereq> + <packagereq type="default">iwl3160-firmware</packagereq> + <packagereq type="default">iwl3945-firmware</packagereq> + <packagereq type="default">iwl4965-firmware</packagereq> + <packagereq type="default">iwl5000-firmware</packagereq> + <packagereq type="default">iwl5150-firmware</packagereq> + <packagereq type="default">iwl6000-firmware</packagereq> + <packagereq type="default">iwl6000g2a-firmware</packagereq> + <packagereq type="default">iwl6000g2b-firmware</packagereq> + <packagereq type="default">iwl6050-firmware</packagereq> + <packagereq type="default">iwl7260-firmware</packagereq> + <packagereq type="default">kernel-tools</packagereq> + <packagereq type="default">libertas-sd8686-firmware</packagereq> + <packagereq type="default">libertas-sd8787-firmware</packagereq> + <packagereq type="default">libertas-usb8388-firmware</packagereq> + <packagereq type="default">linux-firmware</packagereq> + <packagereq type="default">microcode_ctl</packagereq> + <packagereq type="default">NetworkManager</packagereq> + <packagereq type="default">NetworkManager-tui</packagereq> + <packagereq type="default">postfix</packagereq> + <packagereq type="default">ql2100-firmware</packagereq> + <packagereq type="default">ql2200-firmware</packagereq> + <packagereq type="default">ql23xx-firmware</packagereq> + <packagereq type="mandatory">audit</packagereq> + <packagereq type="mandatory">basesystem</packagereq> + <packagereq type="mandatory">bash</packagereq> + <packagereq type="mandatory">biosdevname</packagereq> + <packagereq type="mandatory">btrfs-progs</packagereq> + <packagereq type="mandatory">coreutils</packagereq> + <packagereq type="mandatory">cpp</packagereq> + <packagereq type="mandatory">cronie</packagereq> + <packagereq type="mandatory">curl</packagereq> + <packagereq type="mandatory">dhclient</packagereq> + <packagereq type="mandatory">dkms</packagereq> + <packagereq type="mandatory">e2fsprogs</packagereq> + <packagereq type="mandatory">filesystem</packagereq> + <packagereq type="mandatory">gcc</packagereq> + <packagereq type="mandatory">glibc</packagereq> + <packagereq type="mandatory">glibc-devel</packagereq> + <packagereq type="mandatory">glibc-headers</packagereq> + <packagereq type="mandatory">git</packagereq> + <packagereq type="mandatory">hostname</packagereq> + <packagereq type="mandatory">initscripts</packagereq> + <packagereq type="mandatory">iproute</packagereq> + <packagereq type="mandatory">iprutils</packagereq> + <packagereq type="mandatory">iptables</packagereq> + <packagereq type="mandatory">iputils</packagereq> + <packagereq type="mandatory">irqbalance</packagereq> + <packagereq type="mandatory">kbd</packagereq> + <packagereq type="mandatory">kernel-devel</packagereq> + <packagereq type="mandatory">kernel-headers</packagereq> + <packagereq type="mandatory">kexec-tools</packagereq> + <packagereq type="mandatory">less</packagereq> + <packagereq type="mandatory">libmpc</packagereq> + <packagereq type="mandatory">mpfr</packagereq> + <packagereq type="mandatory">man-db</packagereq> + <packagereq type="mandatory">ncurses</packagereq> + <packagereq type="mandatory">net-tools</packagereq> + <packagereq type="mandatory">less</packagereq> + <packagereq type="mandatory">man-db</packagereq> + <packagereq type="mandatory">ncurses</packagereq> + <packagereq type="mandatory">openssh-clients</packagereq> + <packagereq type="mandatory">openssh-server</packagereq> + <packagereq type="mandatory">opnfv-genesis</packagereq> + <packagereq type="mandatory">parted</packagereq> + <packagereq type="mandatory">passwd</packagereq> + <packagereq type="mandatory">patch</packagereq> + <packagereq type="mandatory">plymouth</packagereq> + <packagereq type="mandatory">policycoreutils</packagereq> + <packagereq type="mandatory">procps-ng</packagereq> + <packagereq type="mandatory">rootfiles</packagereq> + <packagereq type="mandatory">rpm</packagereq> + <packagereq type="mandatory">rsyslog</packagereq> + <packagereq type="mandatory">selinux-policy-targeted</packagereq> + <packagereq type="mandatory">setup</packagereq> + <packagereq type="mandatory">shadow-utils</packagereq> + <packagereq type="mandatory">sudo</packagereq> + <packagereq type="mandatory">systemd</packagereq> + <packagereq type="mandatory">tar</packagereq> + <packagereq type="mandatory">tuned</packagereq> + <packagereq type="mandatory">util-linux</packagereq> + <packagereq type="mandatory">vagrant</packagereq> + <packagereq type="mandatory">vim-minimal</packagereq> + <packagereq type="mandatory">VirtualBox-4.3</packagereq> + <packagereq type="mandatory">xfsprogs</packagereq> + <packagereq type="mandatory">yum</packagereq> + <packagereq type="optional">dracut-config-generic</packagereq> + <packagereq type="optional">dracut-fips-aesni</packagereq> + <packagereq type="optional">dracut-fips</packagereq> + <packagereq type="optional">dracut-network</packagereq> + <packagereq type="optional">openssh-keycat</packagereq> + <packagereq type="optional">selinux-policy-mls</packagereq> + <packagereq type="optional">tboot</packagereq> + </packagelist> + </group> + + <environment> + <id>opnfv_provisioning</id> + <name>OPNFV Provisioning Server Install</name> + <name xml:lang='as'>নূন্যতম ইনস্টল</name> + <name xml:lang='bn_IN'>ন্যূনতম ইনস্টল</name> + <name xml:lang='cs'>Minimální instalace</name> + <name xml:lang='de'>Minimale Installation</name> + <name xml:lang='es'>Instalación mínima</name> + <name xml:lang='fr'>Installation minimale</name> + <name xml:lang='gu'>ન્યૂનતમ સ્થાપન</name> + <name xml:lang='hi'>न्यूनतम संस्थापन</name> + <name xml:lang='it'>Installazione minima</name> + <name xml:lang='ja'>最小限のインストール</name> + <name xml:lang='kn'>ಕನಿಷ್ಟ ಅನುಸ್ಥಾಪನೆ</name> + <name xml:lang='ko'>최소 설치</name> + <name xml:lang='ml'>ഏറ്റവും കുറഞ്ഞ ഇന്സ്റ്റോള്</name> + <name xml:lang='mr'>किमान इंस्टॉल</name> + <name xml:lang='or'>ସର୍ବନିମ୍ନ ସ୍ଥାପନ</name> + <name xml:lang='pa'>ਘੱਟ ਤੋਂ ਘੱਟ ਇੰਸਟਾਲ</name> + <name xml:lang='pl'>Minimalna instalacja</name> + <name xml:lang='pt_BR'>Instalações Mínimas</name> + <name xml:lang='ru'>Минимальная установка</name> + <name xml:lang='ta'>குறைந்தபட்ச நிறுவல்</name> + <name xml:lang='te'>కనీసపు సంస్థాపన</name> + <name xml:lang='uk'>Мінімальна система</name> + <name xml:lang='zh_CN'>最小安装</name> + <name xml:lang='zh_TW'>最小型安裝</name> + <description>Installs an OPNFV Provisioning Server</description> + <description xml:lang='as'>মৌলি কাৰ্য্যকৰীতা।</description> + <description xml:lang='bn_IN'>প্রাথমিক বৈশিষ্ট্য।</description> + <description xml:lang='cs'>Základní funkcionalita.</description> + <description xml:lang='de'>Grundlegende Funktionalität.</description> + <description xml:lang='es'>Funcionalidad básica.</description> + <description xml:lang='fr'>Fonctionnalité de base.</description> + <description xml:lang='gu'>મૂળભૂત વિધેય.</description> + <description xml:lang='hi'>मौलिक प्रकार्यात्मकता.</description> + <description xml:lang='it'>Funzione di base.</description> + <description xml:lang='ja'>基本的な機能です。</description> + <description xml:lang='kn'>ಮೂಲಭೂತ ಕ್ರಿಯಾಶೀಲತೆ.</description> + <description xml:lang='ko'>기본적인 기능입니다.</description> + <description xml:lang='ml'>അടിസ്ഥാന പ്രവൃത്തിവിശേഷണം.</description> + <description xml:lang='mr'>मूळ कार्यक्षमता.</description> + <description xml:lang='or'>ସାଧାରଣ କାର୍ଯ୍ୟକାରିତା।</description> + <description xml:lang='pa'>ਮੁੱਢਲੀ ਕਾਰਜਸ਼ੀਲਤਾ।</description> + <description xml:lang='pl'>Podstawowa funkcjonalność.</description> + <description xml:lang='pt_BR'>Função básica</description> + <description xml:lang='ru'>Базовая функциональность.</description> + <description xml:lang='ta'>அடிப்படை செயலம்சம்.</description> + <description xml:lang='te'>ప్రాథమిక ఫంక్షనాలిటి.</description> + <description xml:lang='uk'>Основні можливості.</description> + <description xml:lang='zh_CN'>基本功能。</description> + <description xml:lang='zh_TW'>基本功能。</description> + <display_order>5</display_order> + <grouplist> + <groupid>core</groupid> + </grouplist> + <optionlist> + + </optionlist> + </environment> + <langpacks> + <match install="autocorr-%s" name="autocorr-en"/> + <match install="firefox-langpack-%s" name="firefox"/> + <match install="gimp-help-%s" name="gimp-help"/> + <match install="gnome-getting-started-docs-%s" name="gnome-getting-started-docs"/> + <match install="hunspell-%s" name="hunspell"/> + <match install="hyphen-%s" name="hyphen"/> + <match install="kde-l10n-%s" name="kdelibs"/> + <match install="libreoffice-langpack-%s" name="libreoffice-core"/> + <match install="man-pages-%s" name="man-pages"/> + <match install="mythes-%s" name="mythes"/> + </langpacks> + +</comps> 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 --- /dev/null +++ b/foreman/build/config.mk 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 <dradez@redhatcom> - 0.1-1 +- Initial Packaging |