Make infrastructure refactored. Not finished yet (some bugs are still here).
This commit is contained in:
parent
69ec0cbe24
commit
d8f0b44869
83
Makefile
83
Makefile
@ -1,62 +1,51 @@
|
||||
|
||||
PWD:=$(shell pwd -P)
|
||||
|
||||
SOURCE_DIR:=$(PWD)
|
||||
BUILD_DIR:=$(PWD)/build
|
||||
|
||||
MODULES=gnupg bootstrap nailgun test mirror iso packages/rpm naily astute
|
||||
include $(SOURCE_DIR)/config.mk
|
||||
include $(SOURCE_DIR)/mirror/module.mk
|
||||
include $(SOURCE_DIR)/packages/module.mk
|
||||
include $(SOURCE_DIR)/bootstrap/module.mk
|
||||
include $(SOURCE_DIR)/iso/module.mk
|
||||
|
||||
.PHONY: all clean test test-unit help mirror FORCE deep_clean
|
||||
# MODULES=gnupg bootstrap nailgun test mirror iso packages/rpm naily astute
|
||||
|
||||
help:
|
||||
@echo 'Available targets:'
|
||||
@echo ' all - build product'
|
||||
@echo ' bootstrap - build nailgun bootstrap'
|
||||
@echo ' iso - build nailgun iso'
|
||||
@echo ' sdist-nailgun - build nailgun sdist'
|
||||
@echo ' test - run all tests'
|
||||
@echo ' test-unit - run unit tests'
|
||||
@echo ' test-integration - run integration tests'
|
||||
@echo ' test-cookbooks - run cookbooks tests'
|
||||
@echo ' clean-integration-test - clean integration test environment'
|
||||
@echo ' clean-cookbooks-test - clean cookbooks test environment'
|
||||
@echo ' clean - remove build directory and resetting .done flags'
|
||||
@echo ' deep_clean - clean + removing $(LOCAL_MIRROR) directory'
|
||||
.PHONY:
|
||||
|
||||
all:
|
||||
# .PHONY: all clean test test-unit help mirror FORCE deep_clean
|
||||
|
||||
test: test-unit
|
||||
|
||||
test-unit:
|
||||
# help:
|
||||
# @echo 'Available targets:'
|
||||
# @echo ' all - build product'
|
||||
# @echo ' bootstrap - build nailgun bootstrap'
|
||||
# @echo ' iso - build nailgun iso'
|
||||
# @echo ' sdist-nailgun - build nailgun sdist'
|
||||
# @echo ' test - run all tests'
|
||||
# @echo ' test-unit - run unit tests'
|
||||
# @echo ' test-integration - run integration tests'
|
||||
# @echo ' test-cookbooks - run cookbooks tests'
|
||||
# @echo ' clean-integration-test - clean integration test environment'
|
||||
# @echo ' clean-cookbooks-test - clean cookbooks test environment'
|
||||
# @echo ' clean - remove build directory and resetting .done flags'
|
||||
# @echo ' deep_clean - clean + removing $(LOCAL_MIRROR) directory'
|
||||
|
||||
# target to force rebuild of other targets
|
||||
FORCE:
|
||||
# all:
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
[ ! -d $(LOCAL_MIRROR) ] || find $(LOCAL_MIRROR) -name *.done -exec rm {} \;
|
||||
deep_clean: clean
|
||||
rm -rf $(LOCAL_MIRROR)
|
||||
# test: test-unit
|
||||
|
||||
distclean: deep_clean clean-integration-test
|
||||
# test-unit:
|
||||
|
||||
assert-variable=$(if $($1),,$(error Variable $1 need to be defined))
|
||||
find-files=$(shell test -d $1 && find $1 -type f 2> /dev/null)
|
||||
# # target to force rebuild of other targets
|
||||
# FORCE:
|
||||
|
||||
include config.mk
|
||||
include repo.mk
|
||||
# clean:
|
||||
# rm -rf $(BUILD_DIR)
|
||||
# test -d $(LOCAL_MIRROR) && find $(LOCAL_MIRROR) -name "*.done" -delete
|
||||
# deep_clean: clean
|
||||
# rm -rf $(LOCAL_MIRROR)
|
||||
|
||||
define include-module-template
|
||||
MODULE_SOURCE_DIR:=$1
|
||||
MODULE_BUILD_DIR:=$(BUILD_DIR)/$1
|
||||
.:=$$(MODULE_SOURCE_DIR)
|
||||
/:=$$(MODULE_BUILD_DIR)/
|
||||
$$/%: .:=$$.
|
||||
$$/%: /:=$$/
|
||||
include $1/module.mk
|
||||
endef
|
||||
|
||||
include-module=$(eval $(call include-module-template,$1))
|
||||
|
||||
$(foreach module,$(MODULES),$(call include-module,$(module)))
|
||||
|
||||
include rules.mk
|
||||
# distclean: deep_clean clean-integration-test
|
||||
|
||||
include $(SOURCE_DIR)/rules.mk
|
||||
|
@ -1,11 +1,10 @@
|
||||
ASTUTE_VERSION:=$(shell ruby -e "require '$(SOURCE_DIR)/astute/lib/astute/version.rb'; puts Astute::VERSION")
|
||||
|
||||
/:=$(BUILD_DIR)/gems/
|
||||
|
||||
$/astute-0.0.1.gem: astute/astute.gemspec \
|
||||
$(call find-files,astute/bin) \
|
||||
$(BUILD_DIR)/packages/gems/astute-$(ASTUTE_VERSION).gem: \
|
||||
$(SOURCE_DIR)/astute/astute.gemspec \
|
||||
$(call find-files,astute/bin) \
|
||||
$(call find-files,astute/lib) \
|
||||
$(call find-files,astute/spec)
|
||||
@mkdir -p $(@D)
|
||||
cd $(<D) && \
|
||||
gem build $(<F)
|
||||
mv $(<D)/astute-*.gem $@
|
||||
cd $(SOURCE_DIR)/astute && gem build astute.gemspec
|
||||
mv $(SOURCE_DIR)/astute/astute-$(ASTUTE_VERSION).gem $@
|
||||
|
@ -1,11 +1,3 @@
|
||||
BS_DIR:=$(BUILD_DIR)/bootstrap
|
||||
INITRAM_DIR:=$(BS_DIR)/initram-root
|
||||
INITRAM_FS:=$(BS_DIR)/initramfs.img
|
||||
LINUX:=$(BS_DIR)/linux
|
||||
|
||||
/:=$(BS_DIR)/
|
||||
$/%: /:=$/
|
||||
|
||||
.PHONY: bootstrap clean
|
||||
all: bootstrap
|
||||
|
||||
@ -15,92 +7,101 @@ rubygems mcollective vconfig tcpdump scapy mingetty ntp nailgun-net-check dmidec
|
||||
|
||||
YUM_BUILD_PACKAGES:=ruby-devel.x86_64 make gcc flex byacc
|
||||
|
||||
NAILGUN_DIR:=$(INITRAM_DIR)/opt/nailgun
|
||||
NAILGUN_DIR:=$(BUILD_DIR)/bootstrap/initram-root/opt/nailgun
|
||||
|
||||
RPM:=sudo rpm --root=`readlink -f $(INITRAM_DIR)`
|
||||
YUM:=sudo yum --installroot=`readlink -f $(INITRAM_DIR)` -y --nogpgcheck
|
||||
RPM:=sudo rpm --root=`readlink -f $(BUILD_DIR)/bootstrap/initram-root`
|
||||
YUM:=sudo yum --installroot=`readlink -f $(BUILD_DIR)/bootstrap/initram-root` -y --nogpgcheck
|
||||
RPM_DIR:=$(CENTOS_REPO_DIR)
|
||||
CHROOT_CMD:=sudo chroot $(INITRAM_DIR)
|
||||
CHROOT_CMD:=sudo chroot $(BUILD_DIR)/bootstrap/initram-root
|
||||
|
||||
clean: clean-bootstrap
|
||||
|
||||
clean-bootstrap:
|
||||
sudo rm -rf $(INITRAM_DIR)
|
||||
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root
|
||||
|
||||
bootstrap: $(LINUX) $(INITRAM_FS)
|
||||
bootstrap: $(BUILD_DIR)/bootstrap/bootstrap.done
|
||||
|
||||
$/bootstrap.done: $(LINUX) $(INITRAM_FS)
|
||||
$(BUILD_DIR)/bootstrap/bootstrap.done: \
|
||||
$(BUILD_DIR)/bootstrap/linux \
|
||||
$(BUILD_DIR)/bootstrap/initramfs.img
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(INITRAM_FS): $(INITRAM_DIR)/etc/nailgun_systemtype
|
||||
sudo cp -f $(INITRAM_DIR)/etc/skel/.bash* $(INITRAM_DIR)/root/
|
||||
sudo rm -rf $(INITRAM_DIR)/var/cache/yum $(INITRAM_DIR)/var/lib/yum $(INITRAM_DIR)/usr/share/doc \
|
||||
$(INITRAM_DIR)/usr/share/locale $(INITRAM_DIR)/src
|
||||
sudo sh -c "cd $(INITRAM_DIR) && find . -xdev | cpio --create \
|
||||
--format='newc' | gzip -9 > `readlink -f $(INITRAM_FS)`"
|
||||
$(BUILD_DIR)/bootstrap/initramfs.img: $(BUILD_DIR)/bootstrap/initram-root/etc/nailgun_systemtype
|
||||
sudo cp -f $(BUILD_DIR)/bootstrap/initram-root/etc/skel/.bash* $(BUILD_DIR)/bootstrap/initram-root/root/
|
||||
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root/var/cache/yum $(BUILD_DIR)/bootstrap/initram-root/var/lib/yum $(BUILD_DIR)/bootstrap/initram-root/usr/share/doc \
|
||||
$(BUILD_DIR)/bootstrap/initram-root/usr/share/locale $(BUILD_DIR)/bootstrap/initram-root/src
|
||||
sudo sh -c "cd $(BUILD_DIR)/bootstrap/initram-root && find . -xdev | cpio --create \
|
||||
--format='newc' | gzip -9 > `readlink -f $(BUILD_DIR)/bootstrap/initramfs.img`"
|
||||
|
||||
$(LINUX): $(LOCAL_MIRROR)/cache.done
|
||||
mkdir -p $(BS_DIR)
|
||||
find $(RPM_DIR) -name 'kernel-2.*' | xargs rpm2cpio | (cd $(BS_DIR)/; cpio -imd './boot/vmlinuz*')
|
||||
mv $(BS_DIR)/boot/vmlinuz* $(LINUX)
|
||||
rmdir $(BS_DIR)/boot
|
||||
touch $(LINUX)
|
||||
$(BUILD_DIR)/bootstrap/linux: $(BUILD_DIR)/mirror/build.done
|
||||
mkdir -p $(BUILD_DIR)/bootstrap
|
||||
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-2.*' | xargs rpm2cpio | (cd $(BUILD_DIR)/bootstrap/; cpio -imd './boot/vmlinuz*')
|
||||
mv $(BUILD_DIR)/bootstrap/boot/vmlinuz* $(BUILD_DIR)/bootstrap/linux
|
||||
rmdir $(BUILD_DIR)/bootstrap/boot
|
||||
touch $(BUILD_DIR)/bootstrap/linux
|
||||
|
||||
|
||||
$(INITRAM_DIR)/etc/nailgun_systemtype: $(BS_DIR)/init.done $(call find-files,bootstrap/sync) \
|
||||
bin/agent bin/send2syslog.py bootstrap/ssh/id_rsa.pub $(call find-files,mcagent)
|
||||
sudo sed -i -e '/^root/c\root:$$6$$oC7haQNQ$$LtVf6AI.QKn9Jb89r83PtQN9fBqpHT9bAFLzy.YVxTLiFgsoqlPY3awKvbuSgtxYHx4RUcpUqMotp.WZ0Hwoj.:15441:0:99999:7:::' $(INITRAM_DIR)/etc/shadow
|
||||
sudo cp -r bootstrap/sync/* $(INITRAM_DIR)
|
||||
sudo cp -r bin/send2syslog.py $(INITRAM_DIR)/usr/bin
|
||||
sudo mkdir -p $(INITRAM_DIR)/root/.ssh
|
||||
sudo cp bootstrap/ssh/id_rsa.pub $(INITRAM_DIR)/root/.ssh/authorized_keys
|
||||
sudo chmod 700 $(INITRAM_DIR)/root/.ssh
|
||||
sudo chmod 600 $(INITRAM_DIR)/root/.ssh/authorized_keys
|
||||
$(BUILD_DIR)/bootstrap/initram-root/etc/nailgun_systemtype: \
|
||||
$(BUILD_DIR)/bootstrap/init.done \
|
||||
$(call find-files,bootstrap/sync) \
|
||||
$(SOURCE_DIR)/bin/agent \
|
||||
$(SOURCE_DIR)/bin/send2syslog.py \
|
||||
$(SOURCE_DIR)/bootstrap/ssh/id_rsa.pub \
|
||||
$(call find-files,$(SOURCE_DIR)/mcagent)
|
||||
sudo sed -i -e '/^root/c\root:$$6$$oC7haQNQ$$LtVf6AI.QKn9Jb89r83PtQN9fBqpHT9bAFLzy.YVxTLiFgsoqlPY3awKvbuSgtxYHx4RUcpUqMotp.WZ0Hwoj.:15441:0:99999:7:::' $(BUILD_DIR)/bootstrap/initram-root/etc/shadow
|
||||
sudo cp -r bootstrap/sync/* $(BUILD_DIR)/bootstrap/initram-root
|
||||
sudo cp -r bin/send2syslog.py $(BUILD_DIR)/bootstrap/initram-root/usr/bin
|
||||
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/root/.ssh
|
||||
sudo cp bootstrap/ssh/id_rsa.pub $(BUILD_DIR)/bootstrap/initram-root/root/.ssh/authorized_keys
|
||||
sudo chmod 700 $(BUILD_DIR)/bootstrap/initram-root/root/.ssh
|
||||
sudo chmod 600 $(BUILD_DIR)/bootstrap/initram-root/root/.ssh/authorized_keys
|
||||
sudo mkdir -p $(NAILGUN_DIR)/bin
|
||||
sudo cp -r bin/agent $(NAILGUN_DIR)/bin
|
||||
sudo mkdir -p $(INITRAM_DIR)/usr/libexec/mcollective/mcollective/agent/
|
||||
sudo cp mcagent/* $(INITRAM_DIR)/usr/libexec/mcollective/mcollective/agent/
|
||||
sudo sh -c "echo bootstrap > $(INITRAM_DIR)/etc/nailgun_systemtype"
|
||||
sudo rm -rf $(INITRAM_DIR)/home/*
|
||||
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/usr/libexec/mcollective/mcollective/agent/
|
||||
sudo cp mcagent/* $(BUILD_DIR)/bootstrap/initram-root/usr/libexec/mcollective/mcollective/agent/
|
||||
sudo sh -c "echo bootstrap > $(BUILD_DIR)/bootstrap/initram-root/etc/nailgun_systemtype"
|
||||
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root/home/*
|
||||
|
||||
$(BS_DIR)/init.done: $(LOCAL_MIRROR)/repo.done $(INITRAM_DIR)/etc/yum.repos.d/mirror.repo $(LOCAL_MIRROR)/gems.done $(BUILD_DIR)/rpm/rpm.done
|
||||
sudo mkdir -p $(INITRAM_DIR)/proc $(INITRAM_DIR)/dev
|
||||
sudo mkdir -p $(INITRAM_DIR)/var/lib/rpm
|
||||
$(BUILD_DIR)/bootstrap/init.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done \
|
||||
$(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/mirror.repo
|
||||
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/proc $(BUILD_DIR)/bootstrap/initram-root/dev
|
||||
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/var/lib/rpm
|
||||
$(RPM) --rebuilddb
|
||||
$(YUM) install $(YUM_PACKAGES) $(YUM_BUILD_PACKAGES)
|
||||
sudo touch $(INITRAM_DIR)/etc/fstab
|
||||
sudo touch $(BUILD_DIR)/bootstrap/initram-root/etc/fstab
|
||||
|
||||
find $(RPM_DIR) -name 'kernel-2.*' | xargs rpm2cpio | \
|
||||
( cd $(INITRAM_DIR); sudo cpio -idm './lib/modules/*' './boot/vmlinuz*' )
|
||||
find $(RPM_DIR) -name 'kernel-firmware-2.*' | xargs rpm2cpio | \
|
||||
( cd $(INITRAM_DIR); sudo cpio -idm './lib/firmware/*' )
|
||||
for version in `ls -1 $(INITRAM_DIR)/lib/modules`; do \
|
||||
sudo depmod -b $(INITRAM_DIR) $$version; \
|
||||
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-2.*' | xargs rpm2cpio | \
|
||||
( cd $(BUILD_DIR)/bootstrap/initram-root; sudo cpio -idm './lib/modules/*' './boot/vmlinuz*' )
|
||||
find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name 'kernel-firmware-2.*' | xargs rpm2cpio | \
|
||||
( cd $(BUILD_DIR)/bootstrap/initram-root; sudo cpio -idm './lib/firmware/*' )
|
||||
for version in `ls -1 $(BUILD_DIR)/bootstrap/initram-root/lib/modules`; do \
|
||||
sudo depmod -b $(BUILD_DIR)/bootstrap/initram-root $$version; \
|
||||
done
|
||||
|
||||
sudo mkdir -p $(INITRAM_DIR)/tmp/gems
|
||||
sudo cp -rf $(LOCAL_MIRROR)/gems $(INITRAM_DIR)/tmp/gems
|
||||
sudo gem generate_index -d $(INITRAM_DIR)/tmp/gems
|
||||
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/tmp/gems
|
||||
sudo rsync -a --delete $(LOCAL_MIRROR_GEMS)/ $(BUILD_DIR)/bootstrap/initram-root/tmp/gems
|
||||
$(CHROOT_CMD) gem install --no-rdoc --no-ri --source file:///tmp/gems \
|
||||
httpclient ohai json_pure
|
||||
sudo rm -rf $(INITRAM_DIR)/tmp/gems $(INITRAM_DIR)/usr/lib/ruby/gems/1.8/cache/*
|
||||
sudo rm -rf $(BUILD_DIR)/bootstrap/initram-root/tmp/gems $(BUILD_DIR)/bootstrap/initram-root/usr/lib/ruby/gems/1.8/cache/*
|
||||
|
||||
sudo mkdir -p $(INITRAM_DIR)/src
|
||||
sudo mkdir -p $(BUILD_DIR)/bootstrap/initram-root/src
|
||||
$(YUM) erase $(YUM_BUILD_PACKAGES)
|
||||
sudo rm -f $(INITRAM_DIR)/etc/yum.repos.d/Cent*
|
||||
sudo cp $(INITRAM_DIR)/sbin/init $(INITRAM_DIR)/init
|
||||
sudo rm -f $(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/Cent*
|
||||
sudo cp $(BUILD_DIR)/bootstrap/initram-root/sbin/init $(BUILD_DIR)/bootstrap/initram-root/init
|
||||
$(CHROOT_CMD) chkconfig exim off
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
define yum_local_repo
|
||||
[mirror]
|
||||
name=Mirantis mirror
|
||||
baseurl=file://$(shell readlink -f -m $(RPM_DIR))
|
||||
baseurl=file://$(shell readlink -f -m $(LOCAL_MIRROR_CENTOS_OS_BASEURL))
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
||||
|
||||
$(INITRAM_DIR)/etc/yum.repos.d/mirror.repo: export contents:=$(yum_local_repo)
|
||||
$(INITRAM_DIR)/etc/yum.repos.d/mirror.repo: bootstrap/module.mk
|
||||
$(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/mirror.repo: export contents:=$(yum_local_repo)
|
||||
$(BUILD_DIR)/bootstrap/initram-root/etc/yum.repos.d/mirror.repo: bootstrap/module.mk
|
||||
sudo mkdir -p $(@D)
|
||||
sudo sh -c "echo \"$${contents}\" > $@"
|
||||
|
34
config.mk
34
config.mk
@ -1,16 +1,28 @@
|
||||
MIRROR_URL:=http://srv08-srt.srt.mirantis.net/mirror
|
||||
|
||||
ifndef IGNORE_MIRROR
|
||||
IGNORE_MIRROR:=1
|
||||
endif
|
||||
|
||||
ifndef LOCAL_MIRROR
|
||||
LOCAL_MIRROR:=local_mirror
|
||||
LOCAL_MIRROR:=$(BUILD_DIR)/local_mirror
|
||||
endif
|
||||
|
||||
iso.path:=$(BUILD_DIR)/iso/nailgun-centos-6.3-amd64.iso
|
||||
|
||||
bootstrap.linux:=$(BUILD_DIR)/bootstrap/linux
|
||||
bootstrap.initrd:=$(BUILD_DIR)/bootstrap/initrd.gz
|
||||
# iso.path:=$(BUILD_DIR)/iso/nailgun-centos-6.3-amd64.iso
|
||||
|
||||
# bootstrap.linux:=$(BUILD_DIR)/bootstrap/linux
|
||||
# bootstrap.initrd:=$(BUILD_DIR)/bootstrap/initrd.gz
|
||||
|
||||
# # CENTOS REPOSITORIES SETTINGS
|
||||
|
||||
# CENTOS_MAJOR:=6
|
||||
# CENTOS_MINOR:=3
|
||||
# CENTOS_RELEASE:=$(CENTOS_MAJOR).$(CENTOS_MINOR)
|
||||
# CENTOS_ARCH:=x86_64
|
||||
# CENTOS_MIRROR:=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
# CENTOS_NETINSTALL:=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)
|
||||
# CENTOS_GPG:=http://mirror.yandex.ru/centos
|
||||
|
||||
# CENTOS_REPO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)/
|
||||
# CENTOS_ISO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)/
|
||||
|
||||
|
||||
BOOTSTRAP_FILES:=initramfs.img linux
|
||||
NETINSTALL_ISO:=CentOS-$(CENTOS_RELEASE)-$(CENTOS_ARCH)-minimal-EFI.iso
|
||||
|
||||
|
||||
NOFORWARD:=1
|
240
iso/module.mk
240
iso/module.mk
@ -1,59 +1,93 @@
|
||||
/:=$(BUILD_DIR)/iso/
|
||||
.PHONY: iso img
|
||||
all: iso img
|
||||
|
||||
.PHONY: iso
|
||||
all: iso
|
||||
|
||||
ISOROOT:=$/isoroot
|
||||
ISOROOT:=$(BUILD_DIR)/iso/isoroot
|
||||
ISOBASENAME:=nailgun-centos-6.3-amd64
|
||||
ISONAME:=$/$(ISOBASENAME).iso
|
||||
IMGNAME:=$/$(ISOBASENAME).img
|
||||
ISONAME:=$(BUILD_DIR)/iso/$(ISOBASENAME).iso
|
||||
IMGNAME:=$(BUILD_DIR)/iso/$(ISOBASENAME).img
|
||||
|
||||
iso: $(ISONAME)
|
||||
img: $(IMGNAME)
|
||||
|
||||
$/isoroot-centos.done: \
|
||||
$(BUILD_DIR)/rpm/rpm.done \
|
||||
$(LOCAL_MIRROR)/cache.done \
|
||||
$(ISOROOT)/repodata/comps.xml \
|
||||
$(BUILD_DIR)/iso/isoroot-centos.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done
|
||||
mkdir -p $(ISOROOT)
|
||||
rsync -a --delete $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(ISOROOT)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot-eggs.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done
|
||||
mkdir -p $(ISOROOT)/eggs
|
||||
rsync -a --delete $(LOCAL_MIRROR_EGGS)/ $(ISOROOT)/eggs
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot-gems.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done
|
||||
mkdir -p $(ISOROOT)/gems
|
||||
rsync -a --delete $(LOCAL_MIRROR_GEMS)/ $(ISOROOT)/gems
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
|
||||
########################
|
||||
# Extra files
|
||||
########################
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot-files.done: \
|
||||
$(ISOROOT)/.discinfo \
|
||||
$(ISOROOT)/.treeinfo
|
||||
mkdir -p $(ISOROOT)/Packages
|
||||
find $(CENTOS_REPO_DIR)Packages -name '*.rpm' -exec cp -u {} $(ISOROOT)/Packages \;
|
||||
createrepo -g `readlink -f "$(ISOROOT)/repodata/comps.xml"` -u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(ISOROOT)/repodata/comps.xml: | $(CENTOS_REPO_DIR)repodata/comps.xml
|
||||
mkdir $(@D)
|
||||
cp $(CENTOS_REPO_DIR)repodata/comps.xml $(@D)
|
||||
|
||||
$(ISOROOT)/isolinux/isolinux.cfg: iso/isolinux/isolinux.cfg ; $(ACTION.COPY)
|
||||
|
||||
$(addprefix $(ISOROOT)/isolinux/,$(ISOLINUX_FILES)): \
|
||||
$(LOCAL_MIRROR)/cache-boot.done \
|
||||
$(ISOROOT)/isolinux/isolinux.cfg
|
||||
cp $(CENTOS_REPO_DIR)/isolinux/$(@F) $(@D)
|
||||
|
||||
$/isoroot-isolinux.done: $(addprefix $(ISOROOT)/isolinux/,$(ISOLINUX_FILES))
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(addprefix $(ISOROOT)/images/,$(IMAGES_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
cp $(CENTOS_REPO_DIR)images/$(@F) $(@D)
|
||||
|
||||
$(addprefix $(ISOROOT)/EFI/BOOT/,$(EFI_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
cp $(CENTOS_REPO_DIR)EFI/BOOT/$(@F) $(@D)
|
||||
|
||||
$/isoroot-prepare.done: \
|
||||
$(addprefix $(ISOROOT)/images/,$(IMAGES_FILES)) \
|
||||
$(addprefix $(ISOROOT)/EFI/BOOT/,$(EFI_FILES)) \
|
||||
$(ISOROOT)/.treeinfo \
|
||||
$(ISOROOT)/isolinux/isolinux.cfg \
|
||||
$(ISOROOT)/ks.cfg \
|
||||
$(ISOROOT)/bootstrap_admin_node.sh \
|
||||
$(ISOROOT)/bootstrap_admin_node.conf \
|
||||
$(ISOROOT)/version.yaml
|
||||
$(ISOROOT)/puppet-nailgun.tgz \
|
||||
$(ISOROOT)/puppet-slave.tgz
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/isoroot-bootstrap.done: \
|
||||
$(ISOROOT)/.discinfo: $(SOURCE_DIR)/iso/.discinfo ; $(ACTION.COPY)
|
||||
$(ISOROOT)/.treeinfo: $(SOURCE_DIR)/iso/.treeinfo ; $(ACTION.COPY)
|
||||
$(ISOROOT)/isolinux/isolinux.cfg: $(SOURCE_DIR)/iso/isolinux/isolinux.cfg ; $(ACTION.COPY)
|
||||
$(ISOROOT)/ks.cfg: $(SOURCE_DIR)/iso/ks.cfg ; $(ACTION.COPY)
|
||||
$(ISOROOT)/bootstrap_admin_node.sh: $(SOURCE_DIR)/iso/bootstrap_admin_node.sh ; $(ACTION.COPY)
|
||||
$(ISOROOT)/bootstrap_admin_node.conf: $(SOURCE_DIR)/iso/bootstrap_admin_node.conf ; $(ACTION.COPY)
|
||||
$(ISOROOT)/puppet-nailgun.tgz: \
|
||||
$(call find-files,$(SOURCE_DIR)/puppet)
|
||||
(cd puppet && tar chzf $@ *)
|
||||
$(ISOROOT)/puppet-slave.tgz: \
|
||||
$(call find-files,$(SOURCE_DIR)/puppet/nailytest) \
|
||||
$(call find-files,$(SOURCE_DIR)/puppet/osnailyfacter) \
|
||||
$(call find-files,$(SOURCE_DIR)/fuel/deployment/puppet)
|
||||
(cd $(SOURCE_DIR)/puppet && tar cf $(BUILD_DIR)/puppet-slave.tar nailytest osnailyfacter)
|
||||
(cd $(SOURCE_DIR)/fuel/deployment/puppet && tar rf $(BUILD_DIR)/puppet-slave.tar ./*)
|
||||
gzip -c -9 $(BUILD_DIR)/puppet-slave.tar > $@
|
||||
|
||||
|
||||
########################
|
||||
# Ugly hacking. Hope it is temporary.
|
||||
########################
|
||||
|
||||
FUEL_PACKAGES=http://download.mirantis.com/epel-fuel/x86_64
|
||||
$(BUILD_DIR)/iso/isoroot-morerpm.done: \
|
||||
$(BUILD_DIR)/iso/isoroot-centos.done \
|
||||
$(ISOROOT)/.discinfo
|
||||
mkdir -p $(ISOROOT)/more_rpm
|
||||
cd $(ISOROOT)/more_rpm && wget -c \
|
||||
$(FUEL_PACKAGES)/MySQL-shared-5.5.28-1.el6.x86_64.rpm \
|
||||
$(FUEL_PACKAGES)/MySQL-client-5.5.28-1.el6.x86_64.rpm \
|
||||
$(FUEL_PACKAGES)/MySQL-server-5.5.28_wsrep_23.7-1.rhel5.x86_64.rpm \
|
||||
$(FUEL_PACKAGES)/galera-23.2.2-1.rhel5.x86_64.rpm
|
||||
createrepo -x 'more_rpm/*' -g `readlink -f "$(ISOROOT)/repodata/comps.xml"` -u media://`head -1 $(ISOROOT)/.discinfo` $(ISOROOT)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
|
||||
########################
|
||||
# Bootstrap image.
|
||||
########################
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot-bootstrap.done: \
|
||||
$(ISOROOT)/bootstrap/bootstrap.rsa \
|
||||
$(addprefix $(ISOROOT)/bootstrap/, $(BOOTSTRAP_FILES))
|
||||
$(ACTION.TOUCH)
|
||||
@ -65,67 +99,35 @@ $(addprefix $(ISOROOT)/bootstrap/, $(BOOTSTRAP_FILES)): \
|
||||
|
||||
$(ISOROOT)/bootstrap/bootstrap.rsa: bootstrap/ssh/id_rsa ; $(ACTION.COPY)
|
||||
|
||||
$(ISOROOT)/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz: $(BUILD_DIR)/nailgun/Nailgun-$(NAILGUN_VERSION).tar.gz ; $(ACTION.COPY)
|
||||
$(ISOROOT)/gems/gems/naily-$(NAILY_VERSION).gem: $(BUILD_DIR)/gems/naily-$(NAILY_VERSION).gem ; $(ACTION.COPY)
|
||||
$(ISOROOT)/gems/gems/astute-$(ASTUTE_VERSION).gem: $(BUILD_DIR)/gems/astute-$(ASTUTE_VERSION).gem ; $(ACTION.COPY)
|
||||
|
||||
$/isoroot-eggs.done: \
|
||||
$(LOCAL_MIRROR)/eggs.done \
|
||||
$(ISOROOT)/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz
|
||||
cp -r $(LOCAL_MIRROR)/eggs $(ISOROOT)/
|
||||
########################
|
||||
# Iso image root file system.
|
||||
########################
|
||||
|
||||
$(BUILD_DIR)/iso/isoroot.done: \
|
||||
$(BUILD_DIR)/mirror/build.done \
|
||||
$(BUILD_DIR)/packages/build.done \
|
||||
$(BUILD_DIR)/iso/isoroot-centos.done \
|
||||
$(BUILD_DIR)/iso/isoroot-eggs.done \
|
||||
$(BUILD_DIR)/iso/isoroot-gems.done \
|
||||
$(BUILD_DIR)/iso/isoroot-files.done \
|
||||
$(BUILD_DIR)/iso/isoroot-morerpm.done \
|
||||
$(BUILD_DIR)/iso/isoroot-bootstrap.done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/isoroot-gems.done: \
|
||||
$(LOCAL_MIRROR)/gems.done \
|
||||
$(BUILD_DIR)/gems/naily-$(NAILY_VERSION).gem \
|
||||
$(ISOROOT)/gems/gems/naily-$(NAILY_VERSION).gem \
|
||||
$(ISOROOT)/gems/gems/astute-$(ASTUTE_VERSION).gem
|
||||
cp -r $(LOCAL_MIRROR)/gems $(ISOROOT)/gems
|
||||
(cd $(ISOROOT)/gems && gem generate_index gems)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(ISOROOT)/puppet-nailgun.tgz: $(call find-files,puppet)
|
||||
(cd puppet && tar chzf $@ *)
|
||||
|
||||
$(ISOROOT)/puppet-slave.tgz: \
|
||||
$(call find-files,puppet/nailytest) \
|
||||
$(call find-files,puppet/osnailyfacter) \
|
||||
$(call find-files,fuel/deployment/puppet)
|
||||
(cd puppet && tar cf $(BUILD_DIR)/puppet-slave.tar nailytest osnailyfacter)
|
||||
(cd fuel/deployment/puppet && tar rf $(BUILD_DIR)/puppet-slave.tar ./*)
|
||||
gzip -c -9 $(BUILD_DIR)/puppet-slave.tar > $@
|
||||
|
||||
$/isoroot-puppetmod.done: \
|
||||
$(ISOROOT)/puppet-nailgun.tgz \
|
||||
$(ISOROOT)/puppet-slave.tgz
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(ISOROOT)/ks.cfg: iso/ks.cfg ; $(ACTION.COPY)
|
||||
$(ISOROOT)/bootstrap_admin_node.sh: iso/bootstrap_admin_node.sh ; $(ACTION.COPY)
|
||||
$(ISOROOT)/bootstrap_admin_node.conf: iso/bootstrap_admin_node.conf ; $(ACTION.COPY)
|
||||
$(ISOROOT)/.discinfo: iso/.discinfo ; $(ACTION.COPY)
|
||||
$(ISOROOT)/.treeinfo: iso/.treeinfo ; $(ACTION.COPY)
|
||||
$(ISOROOT)/version.yaml:
|
||||
echo "COMMIT_SHA: `git rev-parse --verify HEAD`" > $@
|
||||
|
||||
$/isoroot.done: \
|
||||
$/isoroot-bootstrap.done \
|
||||
$/isoroot-puppetmod.done \
|
||||
$/isoroot-eggs.done \
|
||||
$/isoroot-gems.done \
|
||||
$/isoroot-isolinux.done \
|
||||
$/isoroot-centos.done \
|
||||
$/isoroot-prepare.done
|
||||
$(ACTION.TOUCH)
|
||||
########################
|
||||
# Building CD and USB stick images
|
||||
########################
|
||||
|
||||
# keep in mind that mkisofs touches some files inside directory
|
||||
# from which it builds iso image
|
||||
# that is why we need to make $/isoroot.done dependent on some files
|
||||
# and then copy these files into another directory
|
||||
$(ISONAME): $/isoroot.done
|
||||
$(ISONAME): $(BUILD_DIR)/iso/isoroot.done
|
||||
rm -f $@
|
||||
mkdir -p $/isoroot-mkisofs
|
||||
rsync -a --delete $(ISOROOT)/ $/isoroot-mkisofs
|
||||
mkdir -p $(BUILD_DIR)/iso/isoroot-mkisofs
|
||||
rsync -a --delete $(ISOROOT)/ $(BUILD_DIR)/iso/isoroot-mkisofs
|
||||
mkisofs -r -V "Mirantis Nailgun" -p "Mirantis Inc." \
|
||||
-J -T -R -b isolinux/isolinux.bin \
|
||||
-no-emul-boot \
|
||||
@ -140,9 +142,9 @@ $(ISONAME): $/isoroot.done
|
||||
IMGSIZE = $(shell echo "$(shell ls -s $(ISONAME) | awk '{print $$1}') / 1024 + 300" | bc)
|
||||
|
||||
$(IMGNAME): $(ISONAME)
|
||||
rm -f $/img_loop_device
|
||||
rm -f $/img_loop_partition
|
||||
rm -f $/img_loop_uuid
|
||||
rm -f $(BUILD_DIR)/iso/img_loop_device
|
||||
rm -f $(BUILD_DIR)/iso/img_loop_partition
|
||||
rm -f $(BUILD_DIR)/iso/img_loop_uuid
|
||||
sudo losetup -j $@ | awk -F: '{print $$1}' | while read loopdevice; do \
|
||||
sudo kpartx -v $$loopdevice | awk '{print "/dev/mapper/" $$1}' | while read looppartition; do \
|
||||
sudo umount -f $$looppartition; \
|
||||
@ -152,27 +154,27 @@ $(IMGNAME): $(ISONAME)
|
||||
done
|
||||
rm -f $@
|
||||
dd if=/dev/zero of=$@ bs=1M count=$(IMGSIZE)
|
||||
sudo losetup -f > $/img_loop_device
|
||||
sudo losetup `cat $/img_loop_device` $@
|
||||
sudo parted -s `cat $/img_loop_device` mklabel msdos
|
||||
sudo parted -s `cat $/img_loop_device` unit MB mkpart primary ext2 1 $(IMGSIZE) set 1 boot on
|
||||
sudo kpartx -a -v `cat $/img_loop_device` | awk '{print "/dev/mapper/" $$3}' > $/img_loop_partition
|
||||
sudo losetup -f > $(BUILD_DIR)/iso/img_loop_device
|
||||
sudo losetup `cat $(BUILD_DIR)/iso/img_loop_device` $@
|
||||
sudo parted -s `cat $(BUILD_DIR)/iso/img_loop_device` mklabel msdos
|
||||
sudo parted -s `cat $(BUILD_DIR)/iso/img_loop_device` unit MB mkpart primary ext2 1 $(IMGSIZE) set 1 boot on
|
||||
sudo kpartx -a -v `cat $(BUILD_DIR)/iso/img_loop_device` | awk '{print "/dev/mapper/" $$3}' > $(BUILD_DIR)/iso/img_loop_partition
|
||||
sleep 1
|
||||
sudo mkfs.ext2 `cat $/img_loop_partition`
|
||||
mkdir -p $/imgroot
|
||||
sudo mount `cat $/img_loop_partition` $/imgroot
|
||||
sudo mkfs.ext2 `cat $(BUILD_DIR)/iso/img_loop_partition`
|
||||
mkdir -p $(BUILD_DIR)/iso/imgroot
|
||||
sudo mount `cat $(BUILD_DIR)/iso/img_loop_partition` $/imgroot
|
||||
sudo extlinux -i $/imgroot
|
||||
sudo /sbin/blkid -s UUID -o value `cat $/img_loop_partition` > $/img_loop_uuid
|
||||
sudo dd conv=notrunc bs=440 count=1 if=/usr/lib/extlinux/mbr.bin of=`cat $/img_loop_device`
|
||||
sudo cp -r $/isoroot/images $/imgroot
|
||||
sudo cp -r $/isoroot/isolinux $/imgroot
|
||||
sudo mv $/imgroot/isolinux $/imgroot/syslinux
|
||||
sudo rm $/imgroot/syslinux/isolinux.cfg
|
||||
sudo cp iso/syslinux/syslinux.cfg $/imgroot/syslinux
|
||||
sudo sed -i -e "s/will_be_substituted_with_actual_uuid/`cat $/img_loop_uuid`/g" $/imgroot/syslinux/syslinux.cfg
|
||||
sudo cp iso/ks.cfg $/imgroot/ks.cfg
|
||||
sudo sed -i -e "s/will_be_substituted_with_actual_uuid/`cat $/img_loop_uuid`/g" $/imgroot/ks.cfg
|
||||
sudo cp $(ISONAME) $/imgroot/nailgun.iso
|
||||
sudo umount -f `cat $/img_loop_partition`
|
||||
sudo kpartx -d `cat $/img_loop_device`
|
||||
sudo losetup -d `cat $/img_loop_device`
|
||||
sudo /sbin/blkid -s UUID -o value `cat $(BUILD_DIR)/iso/img_loop_partition` > $(BUILD_DIR)/iso/img_loop_uuid
|
||||
sudo dd conv=notrunc bs=440 count=1 if=/usr/lib/extlinux/mbr.bin of=`cat $(BUILD_DIR)/iso/img_loop_device`
|
||||
sudo cp -r $(BUILD_DIR)/iso/isoroot/images $/imgroot
|
||||
sudo cp -r $(BUILD_DIR)/iso/isoroot/isolinux $/imgroot
|
||||
sudo mv $(BUILD_DIR)/iso/imgroot/isolinux $/imgroot/syslinux
|
||||
sudo rm $(BUILD_DIR)/iso/imgroot/syslinux/isolinux.cfg
|
||||
sudo cp $(SOURCE_DIR)/iso/syslinux/syslinux.cfg $(BUILD_DIR)/iso/imgroot/syslinux
|
||||
sudo sed -i -e "s/will_be_substituted_with_actual_uuid/`cat $(BUILD_DIR)/iso/img_loop_uuid`/g" $(BUILD_DIR)/iso/imgroot/syslinux/syslinux.cfg
|
||||
sudo cp $(SOURCE_DIR)/iso/ks.cfg $(BUILD_DIR)/iso/imgroot/ks.cfg
|
||||
sudo sed -i -e "s/will_be_substituted_with_actual_uuid/`cat $(BUILD_DIR)/iso/img_loop_uuid`/g" $(BUILD_DIR)/iso/imgroot/ks.cfg
|
||||
sudo cp $(ISONAME) $(BUILD_DIR)/iso/imgroot/nailgun.iso
|
||||
sudo umount -f `cat $(BUILD_DIR)/iso/img_loop_partition`
|
||||
sudo kpartx -d `cat $(BUILD_DIR)/iso/img_loop_device`
|
||||
sudo losetup -d `cat $(BUILD_DIR)/iso/img_loop_device`
|
||||
|
26
mirror/centos/boot.mk
Normal file
26
mirror/centos/boot.mk
Normal file
@ -0,0 +1,26 @@
|
||||
include $(SOURCE_DIR)/mirror/centos/config.mk
|
||||
|
||||
ISOLINUX_FILES:=boot.msg grub.conf initrd.img isolinux.bin memtest splash.jpg vesamenu.c32 vmlinuz
|
||||
IMAGES_FILES:=efiboot.img efidisk.img install.img
|
||||
EFI_FILES:=BOOTX64.conf BOOTX64.efi splash.xpm.gz
|
||||
|
||||
# centos isolinux files
|
||||
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/isolinux/,$(ISOLINUX_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR_OS_BASEURL)/isolinux/$(@F)
|
||||
|
||||
# centos EFI boot images
|
||||
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/EFI/BOOT/,$(EFI_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR_OS_BASEURL)/EFI/BOOT/$(@F)
|
||||
|
||||
# centos boot images
|
||||
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/images/,$(IMAGES_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR_OS_BASEURL)/images/$(@F)
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/boot.done: \
|
||||
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/images/,$(IMAGES_FILES)) \
|
||||
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/EFI/BOOT/,$(EFI_FILES)) \
|
||||
$(addprefix $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/isolinux/,$(ISOLINUX_FILES))
|
||||
$(ACTION.TOUCH)
|
21
mirror/centos/config.mk
Normal file
21
mirror/centos/config.mk
Normal file
@ -0,0 +1,21 @@
|
||||
CENTOS_MAJOR:=6
|
||||
CENTOS_MINOR:=3
|
||||
CENTOS_RELEASE:=$(CENTOS_MAJOR).$(CENTOS_MINOR)
|
||||
CENTOS_ARCH:=x86_64
|
||||
|
||||
ifeq ($(LOCAL_MIRROR),)
|
||||
$(error It seems that variable LOCAL_MIRROR was not set correctly)
|
||||
endif
|
||||
|
||||
LOCAL_MIRROR_CENTOS:=$(LOCAL_MIRROR)/centos
|
||||
LOCAL_MIRROR_CENTOS_OS_BASEURL:=$(LOCAL_MIRROR_CENTOS)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
|
||||
REQUIRED_PACKAGES:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-rpm.txt)
|
||||
RPMFORGE_PACKAGES:=qemu
|
||||
|
||||
CENTOS_MIRROR:=http://mirror.yandex.ru/centos
|
||||
CENTOS_MIRROR_OS_BASEURL:=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
|
||||
YUM_REPOS:=centos epel fuel_folsom puppetlabs rpmforge
|
||||
|
||||
include $(SOURCE_DIR)/mirror/centos/config_yum.mk
|
121
mirror/centos/config_yum.mk
Normal file
121
mirror/centos/config_yum.mk
Normal file
@ -0,0 +1,121 @@
|
||||
define yum_conf
|
||||
[main]
|
||||
cachedir=$(BUILD_DIR)/mirror/centos/cache
|
||||
keepcache=0
|
||||
debuglevel=6
|
||||
logfile=$(BUILD_DIR)/mirror/centos/yum.log
|
||||
exclude=*.i686.rpm
|
||||
exactarch=1
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
plugins=1
|
||||
pluginpath=$(shell readlink -f -m $(BUILD_DIR)/mirror/centos/etc/yum-plugins)
|
||||
pluginconfpath=$(shell readlink -f -m $(BUILD_DIR)/mirror/centos/etc/yum/pluginconf.d)
|
||||
reposdir=$(BUILD_DIR)/mirror/centos/etc/yum.repos.d
|
||||
endef
|
||||
|
||||
|
||||
define yum_repo_centos
|
||||
[base]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Base
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=os
|
||||
baseurl=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[updates]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Updates
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=updates
|
||||
baseurl=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/updates/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[extras]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Extras
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=extras
|
||||
baseurl=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/extras/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[centosplus]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Plus
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=centosplus
|
||||
baseurl=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/centosplus/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[contrib]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Contrib
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=contrib
|
||||
baseurl=$(CENTOS_MIRROR)/$(CENTOS_RELEASE)/contrib/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
endef
|
||||
|
||||
|
||||
define yum_repo_epel
|
||||
[epel]
|
||||
name=Extra Packages for Enterprise Linux $(CENTOS_MAJOR) - $(CENTOS_ARCH)
|
||||
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-$(CENTOS_MAJOR)&arch=$(CENTOS_ARCH)
|
||||
baseurl=http://mirror.yandex.ru/epel/$(CENTOS_MAJOR)/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=20
|
||||
endef
|
||||
|
||||
|
||||
define yum_repo_fuel_folsom
|
||||
[openstack-epel-fuel]
|
||||
name=Mirantis OpenStack Custom Packages
|
||||
mirrorlist=http://download.mirantis.com/epel-fuel-folsom/mirror.external.list
|
||||
gpgkey=https://fedoraproject.org/static/0608B895.txt
|
||||
http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
|
||||
http://download.mirantis.com/epel-fuel-folsom/rabbit.key
|
||||
http://download.mirantis.com/epel-fuel-folsom/mirantis.key
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=1
|
||||
endef
|
||||
|
||||
|
||||
define yum_repo_puppetlabs
|
||||
[puppetlabs]
|
||||
name=Puppet Labs Packages
|
||||
baseurl=http://yum.puppetlabs.com/el/$(CENTOS_MAJOR)/products/$(CENTOS_ARCH)/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
|
||||
priority=1
|
||||
endef
|
||||
|
||||
|
||||
define yum_repo_rpmforge
|
||||
[rpmforge]
|
||||
name=RHEL $(CENTOS_RELEASE) - RPMforge.net - dag
|
||||
#mirrorlist = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/mirrors-rpmforge
|
||||
baseurl=http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/$(CENTOS_ARCH)/rpmforge
|
||||
gpgcheck=0
|
||||
enabled=0
|
||||
|
||||
[rpmforge-extras]
|
||||
name = RHEL $(CENTOS_RELEASE) - RPMforge.net - extras
|
||||
#mirrorlist = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/mirrors-rpmforge-extras
|
||||
baseurl = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/$(CENTOS_ARCH)/extras
|
||||
gpgcheck = 0
|
||||
enabled = 1
|
||||
priority=95
|
||||
endef
|
||||
|
||||
|
||||
define yum_repo_mirantis
|
||||
[mirror]
|
||||
name=CentOS $(CENTOS_RELEASE) - Base
|
||||
baseurl=http://srv08-srt.srt.mirantis.net/mirror/centos/$(CENTOS_RELEASE)/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
9
mirror/centos/module.mk
Normal file
9
mirror/centos/module.mk
Normal file
@ -0,0 +1,9 @@
|
||||
# This module downloads requiered creates rpm repository.
|
||||
include $(SOURCE_DIR)/mirror/centos/repo.mk
|
||||
# This module downloads centos installation images.
|
||||
include $(SOURCE_DIR)/mirror/centos/boot.mk
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/build.done: \
|
||||
$(BUILD_DIR)/mirror/centos/repo.done \
|
||||
$(BUILD_DIR)/mirror/centos/boot.done
|
||||
$(ACTION.TOUCH)
|
49
mirror/centos/repo.mk
Normal file
49
mirror/centos/repo.mk
Normal file
@ -0,0 +1,49 @@
|
||||
include $(SOURCE_DIR)/mirror/centos/config.mk
|
||||
include $(SOURCE_DIR)/mirror/centos/config_yum.mk
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.conf: export contents:=$(yum_conf)
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.conf: \
|
||||
$(SOURCE_DIR)/mirror/centos/yum-priorities-plugin.py
|
||||
mkdir -p $(BUILD_DIR)/mirror/centos/etc/yum/pluginconf.d
|
||||
echo "[main]\nenabled=1" > $(BUILD_DIR)/mirror/centos/etc/yum/pluginconf.d/priorities.conf
|
||||
mkdir -p $(BUILD_DIR)/mirror/centos/etc/yum-plugins
|
||||
cp $(SOURCE_DIR)/mirror/centos/yum-priorities-plugin.py $(BUILD_DIR)/mirror/centos/etc/yum-plugins/priorities.py
|
||||
mkdir -p $(@D)
|
||||
echo "$${contents}" > $@
|
||||
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.repos.d/base.repo: \
|
||||
export contents:=$(foreach repo,$(YUM_REPOS),\n$(yum_repo_$(repo)))
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.repos.d/base.repo: \
|
||||
$(SOURCE_DIR)/mirror/centos/config.mk
|
||||
@mkdir -p $(@D)
|
||||
echo "$${contents}" > $@
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/yum-config.done: \
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.conf \
|
||||
$(BUILD_DIR)/mirror/centos/etc/yum.repos.d/base.repo
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/yum.done: \
|
||||
$(BUILD_DIR)/mirror/centos/yum-config.done \
|
||||
$(SOURCE_DIR)/requirements-rpm.txt
|
||||
yum -c $(BUILD_DIR)/mirror/centos/etc/yum.conf clean all
|
||||
rm -rf /var/tmp/yum-$$USER-*/
|
||||
yumdownloader -q --resolve --archlist=$(CENTOS_ARCH) \
|
||||
-c $(BUILD_DIR)/mirror/centos/etc/yum.conf \
|
||||
--destdir=$(LOCAL_MIRROR_CENTOS_OS_BASEURL)/Packages \
|
||||
$(REQUIRED_PACKAGES) $(RPMFORGE_PACKAGES)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(LOCAL_MIRROR_CENTOS_OS_BASEURL)/repodata/comps.xml:
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@.gz $(CENTOS_MIRROR_OS_BASEURL)/`wget -qO- $(CENTOS_MIRROR_OS_BASEURL)/repodata/repomd.xml | \
|
||||
grep '$(@F)\.gz' | awk -F'"' '{ print $$2 }'`
|
||||
gunzip $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/repodata/$(@F).gz
|
||||
|
||||
$(BUILD_DIR)/mirror/centos/repo.done: \
|
||||
$(BUILD_DIR)/mirror/centos/yum.done \
|
||||
| $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/repodata/comps.xml
|
||||
createrepo -g `readlink -f "$(LOCAL_MIRROR_CENTOS_OS_BASEURL)/repodata/comps.xml"` \
|
||||
-o $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/ $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/
|
||||
$(ACTION.TOUCH)
|
13
mirror/eggs/config.mk
Normal file
13
mirror/eggs/config.mk
Normal file
@ -0,0 +1,13 @@
|
||||
ifeq ($(LOCAL_MIRROR),)
|
||||
$(error It seems that variable LOCAL_MIRROR was not set correctly)
|
||||
endif
|
||||
|
||||
ifeq ($(LOCAL_MIRROR_CENTOS_OS_BASEURL),)
|
||||
$(error It seems that variable LOCAL_MIRROR_CENTOS_OS_BASEURL was not set correctly)
|
||||
endif
|
||||
|
||||
LOCAL_MIRROR_EGGS:=$(LOCAL_MIRROR)/eggs
|
||||
REQUIRED_EGGS:=$(shell grep -v "^\\s*\#" $(SOURCE_DIR)/requirements-eggs.txt)
|
||||
|
||||
# It can be any a list of links (--find-links) or a pip index (--index-url).
|
||||
MIRROR_EGGS:=http://pypi.python.org/simple
|
44
mirror/eggs/module.mk
Normal file
44
mirror/eggs/module.mk
Normal file
@ -0,0 +1,44 @@
|
||||
include $(SOURCE_DIR)/mirror/eggs/config.mk
|
||||
|
||||
SANDBOX:=$(BUILD_DIR)/mirror/eggs/SANDBOX
|
||||
include $(SOURCE_DIR)/sandbox/module.mk
|
||||
|
||||
$(BUILD_DIR)/mirror/eggs/build.done: export SANDBOX_UP:=$(SANDBOX_UP)
|
||||
$(BUILD_DIR)/mirror/eggs/build.done: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
|
||||
$(BUILD_DIR)/mirror/eggs/build.done: \
|
||||
$(BUILD_DIR)/mirror/centos/build.done \
|
||||
$(SOURCE_DIR)/requirements-eggs.txt
|
||||
mkdir -p $(@D)
|
||||
sudo sh -c "$${SANDBOX_UP}"
|
||||
|
||||
# Creating eggs mirror directory
|
||||
mkdir -p $(LOCAL_MIRROR_EGGS)
|
||||
|
||||
# Avoiding eggs download duplication.
|
||||
rsync -a --delete $(LOCAL_MIRROR_EGGS) $(SANDBOX)/tmp
|
||||
|
||||
# Here we don't know if MIRROR_EGGS
|
||||
# is a list of links or a correct pip index.
|
||||
# That is why we use --index-url and --find-links options
|
||||
# for the same url.
|
||||
|
||||
# Installing new version of pip.
|
||||
sudo chroot $(SANDBOX) pip --version | awk '{if ($$2 != "1.2.1"){exit 1}}' || \
|
||||
sudo chroot $(SANDBOX) pip-python install \
|
||||
--index-url $(MIRROR_EGGS) \
|
||||
--find-links $(MIRROR_EGGS) \
|
||||
pip==1.2.1
|
||||
|
||||
# Downloading required pip packages.
|
||||
sudo chroot $(SANDBOX) pip install \
|
||||
--exists-action=i \
|
||||
--index-url $(MIRROR_EGGS) \
|
||||
--find-links $(MIRROR_EGGS) \
|
||||
--download /tmp/$(notdir $(LOCAL_MIRROR_EGGS)) \
|
||||
$(REQUIRED_EGGS)
|
||||
|
||||
# # Copying downloaded eggs into eggs mirror
|
||||
rsync -a $(SANDBOX)/tmp/$(notdir $(LOCAL_MIRROR_EGGS))/ $(LOCAL_MIRROR_EGGS)
|
||||
|
||||
sudo sh -c "$${SANDBOX_DOWN}"
|
||||
$(ACTION.TOUCH)
|
5
mirror/gems/config.mk
Normal file
5
mirror/gems/config.mk
Normal file
@ -0,0 +1,5 @@
|
||||
ifeq ($(LOCAL_MIRROR),)
|
||||
$(error It seems that variable LOCAL_MIRROR was not set correctly)
|
||||
endif
|
||||
|
||||
LOCAL_MIRROR_GEMS:=$(LOCAL_MIRROR)/gems
|
27
mirror/gems/module.mk
Normal file
27
mirror/gems/module.mk
Normal file
@ -0,0 +1,27 @@
|
||||
LOCAL_MIRROR_GEMS:=$(LOCAL_MIRROR)/gems
|
||||
|
||||
define bundle_gemfile_template
|
||||
source "http://rubygems.org"
|
||||
source "http://gems.rubyforge.org"
|
||||
source "http://gemcutter.org"
|
||||
endef
|
||||
|
||||
$(BUILD_DIR)/mirror/gems/gems-bundle-gemfile.done: export bundle_gemfile_template:=$(bundle_gemfile_template)
|
||||
$(BUILD_DIR)/mirror/gems/gems-bundle-gemfile.done: requirements-gems.txt
|
||||
@mkdir -p $(BUILD_DIR)/mirror/gems/gems-bundle
|
||||
echo "$${bundle_gemfile_template}" > $(BUILD_DIR)/mirror/gems/gems-bundle/Gemfile
|
||||
cat requirements-gems.txt | while read gem ver; do \
|
||||
echo "gem \"$${gem}\", \"$${ver}\"" >> $(BUILD_DIR)/mirror/gems/gems-bundle/Gemfile; \
|
||||
done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/mirror/gems/gems-bundle.done: $(BUILD_DIR)/mirror/gems/gems-bundle-gemfile.done
|
||||
( cd $(BUILD_DIR)/mirror/gems/gems-bundle && bundle install --path ./ && bundle package )
|
||||
( cd $(BUILD_DIR)/mirror/gems/gems-bundle/vendor/cache/ && gem fetch -v 1.2.1 bundler )
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/mirror/gems/build.done: $(BUILD_DIR)/mirror/gems/gems-bundle.done
|
||||
@mkdir -p $(LOCAL_MIRROR_GEMS)/gems
|
||||
cp $(BUILD_DIR)/mirror/gems/gems-bundle/vendor/cache/*.gem $(LOCAL_MIRROR_GEMS)/gems
|
||||
(cd $(LOCAL_MIRROR_GEMS) && gem generate_index gems)
|
||||
$(ACTION.TOUCH)
|
270
mirror/module.mk
270
mirror/module.mk
@ -1,263 +1,15 @@
|
||||
/:=$(LOCAL_MIRROR)/
|
||||
include $(SOURCE_DIR)/mirror/src/module.mk
|
||||
include $(SOURCE_DIR)/mirror/centos/module.mk
|
||||
include $(SOURCE_DIR)/mirror/eggs/module.mk
|
||||
include $(SOURCE_DIR)/mirror/gems/module.mk
|
||||
|
||||
$/%: /:=$/
|
||||
.PHONY: mirror
|
||||
|
||||
CENTOSEXTRA_PACKAGES:=$(shell grep -v "^\\s*\#" requirements-rpm.txt)
|
||||
CENTOSRPMFORGE_PACKAGES:=qemu
|
||||
|
||||
# RPM PACKAGE CACHE RULES
|
||||
|
||||
ifeq ($(IGNORE_MIRROR),1)
|
||||
REPO_SUFFIX=real
|
||||
else
|
||||
REPO_SUFFIX=mirror
|
||||
endif
|
||||
|
||||
define yum_conf
|
||||
[main]
|
||||
cachedir=$(CENTOS_REPO_DIR)cache
|
||||
keepcache=0
|
||||
debuglevel=6
|
||||
logfile=$(CENTOS_REPO_DIR)yum.log
|
||||
exclude=*.i686.rpm
|
||||
exactarch=1
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
plugins=1
|
||||
pluginpath=$(shell readlink -f -m $(CENTOS_REPO_DIR)etc/yum-plugins)
|
||||
pluginconfpath=$(shell readlink -f -m $(CENTOS_REPO_DIR)etc/yum/pluginconf.d)
|
||||
reposdir=$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d
|
||||
endef
|
||||
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf: export contents:=$(yum_conf)
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf: mirror/module.mk
|
||||
ifeq ($(IGNORE_MIRROR),1)
|
||||
mkdir -p $(CENTOS_REPO_DIR)etc/yum/pluginconf.d
|
||||
echo "[main]\nenabled=1" > $(CENTOS_REPO_DIR)etc/yum/pluginconf.d/priorities.conf
|
||||
mkdir -p $(CENTOS_REPO_DIR)etc/yum-plugins
|
||||
cp mirror/yum-priorities-plugin.py $(CENTOS_REPO_DIR)etc/yum-plugins/priorities.py
|
||||
endif
|
||||
@mkdir -p $(@D)
|
||||
echo "$${contents}" > $@
|
||||
|
||||
define yum_mirror_repo
|
||||
[mirror]
|
||||
name=CentOS $(CENTOS_RELEASE) - Base
|
||||
baseurl=$(REPOMIRROR)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
||||
|
||||
define yum_real_repo
|
||||
[base]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Base
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=os
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[updates]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Updates
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=updates
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/updates/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[extras]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Extras
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=extras
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/extras/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[centosplus]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Plus
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=centosplus
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/centosplus/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[contrib]
|
||||
name=CentOS-$(CENTOS_RELEASE) - Contrib
|
||||
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_RELEASE)&arch=$(CENTOS_ARCH)&repo=contrib
|
||||
baseurl=$(CENTOSMIRROR)/$(CENTOS_RELEASE)/contrib/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=10
|
||||
|
||||
[epel]
|
||||
name=Extra Packages for Enterprise Linux $(CENTOS_MAJOR) - $(CENTOS_ARCH)
|
||||
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-$(CENTOS_MAJOR)&arch=$(CENTOS_ARCH)
|
||||
baseurl=$(EPELMIRROR)/$(CENTOS_MAJOR)/$(CENTOS_ARCH)
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=20
|
||||
|
||||
[openstack-epel-fuel]
|
||||
name=Mirantis OpenStack Custom Packages
|
||||
mirrorlist=http://download.mirantis.com/epel-fuel-folsom/mirror.internal.list
|
||||
gpgkey=https://fedoraproject.org/static/0608B895.txt
|
||||
http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
|
||||
http://download.mirantis.com/epel-fuel-folsom/rabbit.key
|
||||
http://download.mirantis.com/epel-fuel-folsom/mirantis.key
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
priority=1
|
||||
|
||||
[rpmforge]
|
||||
name=RHEL $(CENTOS_RELEASE) - RPMforge.net - dag
|
||||
#mirrorlist = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/mirrors-rpmforge
|
||||
baseurl=$(RPMFORGEMIRROR)/el$(CENTOS_MAJOR)/en/$(CENTOS_ARCH)/rpmforge
|
||||
gpgcheck=0
|
||||
enabled=0
|
||||
|
||||
[rpmforge-extras]
|
||||
name = RHEL $(CENTOS_RELEASE) - RPMforge.net - extras
|
||||
#mirrorlist = http://apt.sw.be/redhat/el$(CENTOS_MAJOR)/en/mirrors-rpmforge-extras
|
||||
baseurl = $(RPMFORGEMIRROR)/el$(CENTOS_MAJOR)/en/$(CENTOS_ARCH)/extras
|
||||
gpgcheck = 0
|
||||
enabled = 1
|
||||
priority=95
|
||||
|
||||
[puppetlabs]
|
||||
name=Puppet Labs Packages
|
||||
baseurl=http://yum.puppetlabs.com/el/$(CENTOS_MAJOR)/products/$(CENTOS_ARCH)/
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
|
||||
priority=1
|
||||
endef
|
||||
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d/base.repo: export contents:=$(yum_$(REPO_SUFFIX)_repo)
|
||||
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d/base.repo: mirror/module.mk
|
||||
@mkdir -p $(@D)
|
||||
echo "$${contents}" > $@
|
||||
|
||||
$(CENTOS_REPO_DIR)repodata/comps.xml:
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@.gz $(CENTOS_MIRROR)/`wget -qO- $(CENTOS_MIRROR)/repodata/repomd.xml | \
|
||||
grep '$(@F)\.gz' | awk -F'"' '{ print $$2 }'`
|
||||
gunzip $(CENTOS_REPO_DIR)repodata/$(@F).gz
|
||||
|
||||
$/cache-boot.done: \
|
||||
$(addprefix $(CENTOS_REPO_DIR)/images/,$(IMAGES_FILES)) \
|
||||
$(addprefix $(CENTOS_REPO_DIR)/EFI/BOOT/,$(EFI_FILES)) \
|
||||
$(addprefix $(CENTOS_REPO_DIR)/isolinux/,$(ISOLINUX_FILES))
|
||||
$(BUILD_DIR)/mirror/build.done: \
|
||||
$(BUILD_DIR)/mirror/src/build.done \
|
||||
$(BUILD_DIR)/mirror/centos/build.done \
|
||||
$(BUILD_DIR)/mirror/eggs/build.done \
|
||||
$(BUILD_DIR)/mirror/gems/build.done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/cache-infra.done: \
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf \
|
||||
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d/base.repo
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/cache-extra.done: \
|
||||
$/cache-infra.done \
|
||||
requirements-rpm.txt
|
||||
yum -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf clean all
|
||||
yum -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf clean expire-cache
|
||||
rm -rf /var/tmp/yum-$$USER-*/
|
||||
yumdownloader -q --resolve --archlist=$(CENTOS_ARCH) \
|
||||
-c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf \
|
||||
--destdir=$(CENTOS_REPO_DIR)Packages \
|
||||
$(CENTOSEXTRA_PACKAGES) $(CENTOSRPMFORGE_PACKAGES)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/cache.done: $/cache-extra.done $/cache-boot.done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/repo.done: | $(CENTOS_REPO_DIR)repodata/comps.xml
|
||||
createrepo -g `readlink -f "$(CENTOS_REPO_DIR)repodata/comps.xml"` -o $(CENTOS_REPO_DIR) $(CENTOS_REPO_DIR)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
# centos isolinux files
|
||||
|
||||
$(addprefix $(CENTOS_REPO_DIR)/isolinux/,$(ISOLINUX_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/isolinux/$(@F)
|
||||
|
||||
# centos EFI boot images
|
||||
|
||||
$(addprefix $(CENTOS_REPO_DIR)/EFI/BOOT/,$(EFI_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/EFI/BOOT/$(@F)
|
||||
|
||||
# centos boot images
|
||||
|
||||
$(addprefix $(CENTOS_REPO_DIR)/images/,$(IMAGES_FILES)):
|
||||
@mkdir -p $(@D)
|
||||
wget -O $@ $(CENTOS_MIRROR)/images/$(@F)
|
||||
|
||||
# EGGS AND GEMS
|
||||
|
||||
$/eggs.done: \
|
||||
$(BUILD_DIR)/rpm/prep.done \
|
||||
requirements-eggs.txt
|
||||
@mkdir -p $/eggs
|
||||
@[ -f $/eggs/pip-1.2.1.tar.gz ] || (cd $/eggs && wget http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz)
|
||||
@cp -R $/eggs $(SANDBOX)/tmp
|
||||
sudo cp /etc/resolv.conf $(SANDBOX)/etc/resolv.conf
|
||||
$(SAND_YUM) install python-setuptools
|
||||
mount | grep -q $(SANDBOX)/proc || sudo mount --bind /proc $(SANDBOX)/proc
|
||||
mount | grep -q $(SANDBOX)/dev || sudo mount --bind /dev $(SANDBOX)/dev
|
||||
$(CHROOT_BOX) easy_install -U /tmp/eggs/pip-1.2.1.tar.gz
|
||||
@cat requirements-eggs.txt | while read egg ver; do \
|
||||
if [ -z "`find $(SANDBOX)/tmp/eggs/ -name $${egg}-$${ver}\*`" ]; then \
|
||||
$(CHROOT_BOX) pip install --exists-action=i -d /tmp/eggs $${egg}==$${ver} ;\
|
||||
fi; \
|
||||
done
|
||||
sudo umount $(SANDBOX)/proc
|
||||
sudo umount $(SANDBOX)/dev
|
||||
cp -fR $(SANDBOX)/tmp/eggs $/
|
||||
$(CHROOT_BOX) rm -rf /tmp/eggs
|
||||
$(CHROOT_BOX) rm -f /tmp/requirements-eggs.txt
|
||||
sudo sync
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
define bundle_gemfile_template
|
||||
source "http://rubygems.org"
|
||||
source "http://gems.rubyforge.org"
|
||||
source "http://gemcutter.org"
|
||||
endef
|
||||
|
||||
$/gems-bundle-gemfile.done: export bundle_gemfile_template_content:=$(bundle_gemfile_template)
|
||||
$/gems-bundle-gemfile.done: requirements-gems.txt
|
||||
@mkdir -p $/gems-bundle
|
||||
echo "$${bundle_gemfile_template_content}" > $/gems-bundle/Gemfile
|
||||
cat requirements-gems.txt | while read gem ver; do \
|
||||
echo "gem \"$${gem}\", \"$${ver}\"" >> $/gems-bundle/Gemfile; \
|
||||
done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
ifeq ($(IGNORE_MIRROR),1)
|
||||
SRC_URLS:=$(shell grep -v ^\\s*\# requirements-src.txt)
|
||||
else
|
||||
SRC_URLS:=$(shell grep -v ^\\s*\# requirements-src.txt | sed "s=.*/\(.*\)=$(MIRROR_URL)/src/\1=")
|
||||
endif
|
||||
|
||||
$/src.done: | $(addprefix $/src/, $(notdir $(SRC_URLS)))
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(addprefix $/src/, $(notdir $(SRC_URLS))):
|
||||
@mkdir -p $/src
|
||||
wget --no-use-server-timestamps -c -P $/src $(shell echo $(SRC_URLS) | grep $(notdir $@))
|
||||
|
||||
$/gems-bundle.done: $/gems-bundle-gemfile.done
|
||||
( cd $/gems-bundle && bundle install --path ./ && bundle package )
|
||||
( cd $/gems-bundle/vendor/cache/ && gem fetch -v 1.2.1 bundler )
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/gems.done: $/gems-bundle.done
|
||||
@mkdir -p $/gems
|
||||
cp $/gems-bundle/vendor/cache/*.gem $/gems
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
mirror: $/repo.done \
|
||||
$/src.done \
|
||||
$/cache-boot.done \
|
||||
$/eggs.done \
|
||||
$/gems.done
|
||||
mirror: $(BUILD_DIR)/mirror/build.done
|
||||
|
7
mirror/src/config.mk
Normal file
7
mirror/src/config.mk
Normal file
@ -0,0 +1,7 @@
|
||||
SRC_URLS:=$(shell grep -v ^\\s*\# $(SOURCE_DIR)/requirements-src.txt)
|
||||
|
||||
ifeq ($(LOCAL_MIRROR),)
|
||||
$(error It seems that variable LOCAL_MIRROR was not set correctly)
|
||||
endif
|
||||
|
||||
LOCAL_MIRROR_SRC:=$(LOCAL_MIRROR)/src
|
9
mirror/src/module.mk
Normal file
9
mirror/src/module.mk
Normal file
@ -0,0 +1,9 @@
|
||||
include $(SOURCE_DIR)/mirror/src/config.mk
|
||||
|
||||
$(addprefix $(LOCAL_MIRROR_SRC)/, $(notdir $(SRC_URLS))):
|
||||
@mkdir -p $(LOCAL_MIRROR_SRC)
|
||||
wget --no-use-server-timestamps -c -P $(LOCAL_MIRROR_SRC) $(shell echo $(SRC_URLS) | grep $(notdir $@))
|
||||
|
||||
$(BUILD_DIR)/mirror/src/build.done: $(SOURCE_DIR)/requirements-src.txt \
|
||||
| $(addprefix $(LOCAL_MIRROR_SRC)/, $(notdir $(SRC_URLS)))
|
||||
$(ACTION.TOUCH)
|
@ -1,14 +1,12 @@
|
||||
/:=$(BUILD_DIR)/nailgun/
|
||||
NAILGUN_VERSION:=$(shell python -c "import sys; sys.path.insert(0, '$(SOURCE_DIR)/nailgun'); import setup; print setup.version")
|
||||
|
||||
%: /:=$/
|
||||
|
||||
$/Nailgun-$(NAILGUN_VERSION).tar.gz: \
|
||||
$(call find-files,nailgun)
|
||||
cd nailgun && \
|
||||
python setup.py sdist --dist-dir $/
|
||||
$(BUILD_DIR)/packages/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz: \
|
||||
$(call find-files,$(SOURCE_DIR)/nailgun)
|
||||
cd $(SOURCE_DIR)/nailgun && \
|
||||
python setup.py sdist --dist-dir $(BUILD_DIR)/packages/eggs
|
||||
|
||||
test-unit: test-unit-nailgun
|
||||
|
||||
.PHONY: test-unit-nailgun
|
||||
test-unit-nailgun:
|
||||
cd nailgun && ./run_tests.sh
|
||||
cd $(SOURCE_DIR)/nailgun && ./run_tests.sh
|
||||
|
@ -1,10 +1,9 @@
|
||||
NAILY_VERSION:=$(shell ruby -e "require '$(SOURCE_DIR)/naily/lib/naily/version.rb'; puts Naily::VERSION")
|
||||
|
||||
/:=$(BUILD_DIR)/gems/
|
||||
|
||||
$/naily-0.0.1.gem: naily/naily.gemspec \
|
||||
$(call find-files,naily/bin) \
|
||||
$(call find-files,naily/lib)
|
||||
$(BUILD_DIR)/packages/gems/naily-$(NAILY_VERSION).gem: \
|
||||
$(SOURCE_DIR)/naily/naily.gemspec \
|
||||
$(call find-files,$(SOURCE_DIR)/naily/bin) \
|
||||
$(call find-files,$(SOURCE_DIR)/naily/lib)
|
||||
@mkdir -p $(@D)
|
||||
cd $(<D) && \
|
||||
gem build $(<F)
|
||||
mv $(<D)/naily-*.gem $@
|
||||
cd $(SOURCE_DIR)/naily && gem build naily.gemspec
|
||||
mv $(SOURCE_DIR)/naily/naily-$(NAILY_VERSION).gem $@
|
||||
|
14
packages/eggs/module.mk
Normal file
14
packages/eggs/module.mk
Normal file
@ -0,0 +1,14 @@
|
||||
include $(SOURCE_DIR)/nailgun/module.mk
|
||||
|
||||
.PHONY: nailgun nailgun_version
|
||||
|
||||
$(BUILD_DIR)/packages/eggs/build.done: \
|
||||
$(BUILD_DIR)/packages/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz
|
||||
mkdir -p $(LOCAL_MIRROR_EGGS)
|
||||
find $(BUILD_DIR)/packages/eggs/ ! -name "build.done" \
|
||||
-exec cp {} $(LOCAL_MIRROR_EGGS) \;
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
nailgun: $(BUILD_DIR)/packages/eggs/Nailgun-$(NAILGUN_VERSION).tar.gz
|
||||
nailgun_version:
|
||||
@echo $(NAILGUN_VERSION)
|
22
packages/gems/module.mk
Normal file
22
packages/gems/module.mk
Normal file
@ -0,0 +1,22 @@
|
||||
include $(SOURCE_DIR)/naily/module.mk
|
||||
include $(SOURCE_DIR)/astute/module.mk
|
||||
|
||||
.PHONY: astute astute_version \
|
||||
naily naily_version
|
||||
|
||||
$(BUILD_DIR)/packages/gems/build.done: \
|
||||
$(BUILD_DIR)/packages/gems/naily-$(NAILY_VERSION).gem \
|
||||
$(BUILD_DIR)/packages/gems/astute-$(ASTUTE_VERSION).gem
|
||||
mkdir -p $(LOCAL_MIRROR_GEMS)/gems
|
||||
find $(BUILD_DIR)/packages/gems/ ! -name "build.done" \
|
||||
-exec cp {} $(LOCAL_MIRROR_GEMS)/gems \;
|
||||
(cd $(LOCAL_MIRROR_GEMS) && gem generate_index gems)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
astute: $(BUILD_DIR)/gems/astute-$(ASTUTE_VERSION).gem
|
||||
astute_version:
|
||||
@echo $(ASTUTE_VERSION)
|
||||
|
||||
naily: $(BUILD_DIR)/gems/naily-$(NAILY_VERSION).gem
|
||||
naily_version:
|
||||
@echo $(NAILY_VERSION)
|
13
packages/module.mk
Normal file
13
packages/module.mk
Normal file
@ -0,0 +1,13 @@
|
||||
include $(SOURCE_DIR)/packages/rpm/module.mk
|
||||
include $(SOURCE_DIR)/packages/eggs/module.mk
|
||||
include $(SOURCE_DIR)/packages/gems/module.mk
|
||||
|
||||
.PHONY: packages
|
||||
|
||||
$(BUILD_DIR)/packages/build.done: \
|
||||
$(BUILD_DIR)/packages/rpm/build.done \
|
||||
$(BUILD_DIR)/packages/eggs/build.done \
|
||||
$(BUILD_DIR)/packages/gems/build.done
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
packages: $(BUILD_DIR)/packages/build.done
|
@ -1,83 +1,79 @@
|
||||
/:=$(BUILD_DIR)/rpm/
|
||||
|
||||
$/%: /:=$/
|
||||
|
||||
SANDBOX:=$/SANDBOX/
|
||||
CHROOT_BOX:=sudo chroot $(SANDBOX)
|
||||
SRC_DIR:=$/SOURCES/
|
||||
SAND_YUM:=sudo yum --installroot=`readlink -f $(SANDBOX)` -y --nogpgcheck
|
||||
SAND_RPM:=sudo rpm --root=`readlink -f $(SANDBOX)`
|
||||
SAND_REQ:=rpm-build tar gcc flex make byacc python-devel.x86_64 glibc-devel \
|
||||
glibc-headers kernel-headers
|
||||
|
||||
.PHONY: clean clean_rpm
|
||||
|
||||
clean: clean_rpm
|
||||
|
||||
clean_rpm:
|
||||
sudo rm -rf $(BUILD_DIR)/rpm
|
||||
sudo rm -rf $(BUILD_DIR)/packages/rpm
|
||||
|
||||
define yum_local_repo
|
||||
[mirror]
|
||||
name=Mirantis mirror
|
||||
baseurl=file://$(shell readlink -f -m $(RPM_DIR))
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
||||
SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX
|
||||
include $(SOURCE_DIR)/sandbox/module.mk
|
||||
|
||||
$(SANDBOX)/etc/yum.repos.d/mirror.repo: export contents:=$(yum_local_repo)
|
||||
$(SANDBOX)/etc/yum.repos.d/mirror.repo: packages/rpm/module.mk
|
||||
mkdir -p $(@D) || echo "$(@D) already exists"
|
||||
sudo sh -c "echo \"$${contents}\" > $@"
|
||||
RPM_SOURCES:=$(BUILD_DIR)/packages/rpm/SOURCES
|
||||
|
||||
$/prep.done: $(LOCAL_MIRROR)/src.done \
|
||||
$(LOCAL_MIRROR)/repo.done \
|
||||
$(SANDBOX)/etc/yum.repos.d/mirror.repo
|
||||
mkdir -p $(SRC_DIR)
|
||||
cp -f $(LOCAL_MIRROR)/src/* $(SRC_DIR)
|
||||
find $(LOCAL_MIRROR) -name centos-release* | head | xargs sudo rpm -i --root=$(SANDBOX) || echo "chroot already prepared"
|
||||
sudo rm -f $(SANDBOX)/etc/yum.repos.d/Cent*
|
||||
$(SAND_RPM) --rebuilddb
|
||||
$(SAND_YUM) install $(SAND_REQ)
|
||||
$(BUILD_DIR)/packages/rpm/prep.done: $(BUILD_DIR)/mirror/build.done
|
||||
mkdir -p $(RPM_SOURCES)
|
||||
cp -f $(LOCAL_MIRROR_SRC)/* $(RPM_SOURCES)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/rpm-cirros.done: $/prep.done packages/rpm/specs/cirros-0.3.0.spec
|
||||
rpmbuild -vv --define "_topdir `readlink -f $/`" -ba packages/rpm/specs/cirros-0.3.0.spec
|
||||
$(BUILD_DIR)/packages/rpm/rpm-cirros.done: \
|
||||
$(BUILD_DIR)/packages/rpm/prep.done \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/cirros-0.3.0.spec
|
||||
rpmbuild -vv --define "_topdir `readlink -f $(BUILD_DIR)/packages/rpm`" -ba \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/cirros-0.3.0.spec
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/rpm-nailgun-agent.done: $/prep.done \
|
||||
packages/rpm/specs/nailgun-agent.spec \
|
||||
$(call find-files,bin)
|
||||
cp -f bin/agent bin/nailgun-agent.cron $(SRC_DIR)
|
||||
rpmbuild -vv --define "_topdir `readlink -f $/`" -ba packages/rpm/specs/nailgun-agent.spec
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-agent.done: \
|
||||
$(BUILD_DIR)/packages/rpm/prep.done \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/nailgun-agent.spec \
|
||||
$(call find-files,$(SOURCE_DIR)/bin)
|
||||
cp -f bin/agent bin/nailgun-agent.cron $(RPM_SOURCES)
|
||||
rpmbuild -vv --define "_topdir `readlink -f $(BUILD_DIR)/packages/rpm`" -ba \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/nailgun-agent.spec
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/rpm-nailgun-mcagents.done: $/prep.done \
|
||||
packages/rpm/specs/nailgun-mcagents.spec \
|
||||
$(call find-files,mcagent)
|
||||
mkdir -p $/SOURCES/nailgun-mcagents
|
||||
cp -f mcagent/* $(SRC_DIR)nailgun-mcagents
|
||||
rpmbuild -vv --define "_topdir `readlink -f $/`" -ba packages/rpm/specs/nailgun-mcagents.spec
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-mcagents.done: \
|
||||
$(BUILD_DIR)/packages/rpm/prep.done \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/nailgun-mcagents.spec \
|
||||
$(call find-files,$(SOURCE_DIR)/mcagent)
|
||||
mkdir -p $(BUILD_DIR)/packages/rpm/SOURCES/nailgun-mcagents
|
||||
cp -f $(SOURCE_DIR)/mcagent/* $(RPM_SOURCES)/nailgun-mcagents
|
||||
rpmbuild -vv --define "_topdir `readlink -f $(BUILD_DIR)/packages/rpm`" -ba \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/nailgun-mcagents.spec
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$/rpm-nailgun-net-check.done: $/prep.done \
|
||||
packages/rpm/specs/nailgun-net-check.spec \
|
||||
packages/rpm/nailgun-net-check/net_probe.py
|
||||
cp -f packages/rpm/patches/* $(SRC_DIR)
|
||||
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: export SANDBOX_UP:=$(SANDBOX_UP)
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done: \
|
||||
$(BUILD_DIR)/packages/rpm/prep.done \
|
||||
$(SOURCE_DIR)/packages/rpm/specs/nailgun-net-check.spec \
|
||||
$(SOURCE_DIR)/packages/rpm/nailgun-net-check/net_probe.py
|
||||
|
||||
sudo sh -c "$${SANDBOX_UP}"
|
||||
|
||||
echo 000
|
||||
cp -f $(SOURCE_DIR)/packages/rpm/patches/* $(RPM_SOURCES)
|
||||
sudo mkdir -p $(SANDBOX)/tmp/SOURCES
|
||||
sudo cp packages/rpm/nailgun-net-check/net_probe.py $(SANDBOX)/tmp/SOURCES
|
||||
sudo cp packages/rpm/specs/nailgun-net-check.spec $(SANDBOX)/tmp
|
||||
sudo cp packages/rpm/patches/* $(SANDBOX)/tmp/SOURCES
|
||||
sudo cp $(LOCAL_MIRROR)/src/* $(SANDBOX)/tmp/SOURCES
|
||||
$(CHROOT_BOX) rpmbuild -vv --define "_topdir /tmp" -ba /tmp/nailgun-net-check.spec
|
||||
cp $(SANDBOX)/tmp/RPMS/x86_64/* $/RPMS/x86_64/
|
||||
sudo cp $(SOURCE_DIR)/packages/rpm/nailgun-net-check/net_probe.py $(SANDBOX)/tmp/SOURCES
|
||||
sudo cp $(SOURCE_DIR)/packages/rpm/specs/nailgun-net-check.spec $(SANDBOX)/tmp
|
||||
echo 111
|
||||
sudo cp $(SOURCE_DIR)/packages/rpm/patches/* $(SANDBOX)/tmp/SOURCES
|
||||
sudo cp $(LOCAL_MIRROR_SRC)/* $(SANDBOX)/tmp/SOURCES
|
||||
sudo chroot $(SANDBOX) rpmbuild -vv --define "_topdir /tmp" -ba /tmp/nailgun-net-check.spec
|
||||
cp $(SANDBOX)/tmp/RPMS/x86_64/* $(BUILD_DIR)/packages/rpm/RPMS/x86_64/
|
||||
|
||||
sudo sh -c "$${SANDBOX_DOWN}"
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/rpm/rpm.done: $/rpm-cirros.done \
|
||||
$/rpm-nailgun-agent.done \
|
||||
$/rpm-nailgun-mcagents.done \
|
||||
$/rpm-nailgun-net-check.done \
|
||||
| $(CENTOS_REPO_DIR)repodata/comps.xml
|
||||
find $/RPMS -name '*.rpm' -exec cp -u {} $(CENTOS_REPO_DIR)/Packages \;
|
||||
createrepo -g `readlink -f "$(CENTOS_REPO_DIR)repodata/comps.xml"` -o $(CENTOS_REPO_DIR) $(CENTOS_REPO_DIR)
|
||||
$(BUILD_DIR)/packages/rpm/repo.done: \
|
||||
$(BUILD_DIR)/packages/rpm/rpm-cirros.done \
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-agent.done \
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-mcagents.done \
|
||||
$(BUILD_DIR)/packages/rpm/rpm-nailgun-net-check.done
|
||||
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -u {} $(LOCAL_MIRROR_CENTOS_OS_BASEURL)/Packages \;
|
||||
createrepo -g `readlink -f "$(LOCAL_MIRROR_CENTOS_OS_BASEURL)/repodata/comps.xml"` \
|
||||
-o $(LOCAL_MIRROR_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_CENTOS_OS_BASEURL)
|
||||
$(ACTION.TOUCH)
|
||||
|
||||
$(BUILD_DIR)/packages/rpm/build.done: $(BUILD_DIR)/packages/rpm/repo.done
|
||||
$(ACTION.TOUCH)
|
29
repo.mk
29
repo.mk
@ -1,29 +0,0 @@
|
||||
# CENTOS REPOSITORIES SETTINGS
|
||||
|
||||
CENTOS_MAJOR:=6
|
||||
CENTOS_MINOR:=3
|
||||
CENTOS_RELEASE:=$(CENTOS_MAJOR).$(CENTOS_MINOR)
|
||||
CENTOS_ARCH:=x86_64
|
||||
CENTOS_MIRROR:=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)
|
||||
CENTOS_NETINSTALL:=http://mirror.yandex.ru/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)
|
||||
CENTOS_GPG:=http://mirror.yandex.ru/centos
|
||||
|
||||
REPOMIRROR:=$(MIRROR_URL)/centos
|
||||
CENTOSMIRROR:=http://mirror.yandex.ru/centos
|
||||
EPELMIRROR:=http://mirror.yandex.ru/epel
|
||||
RPMFORGEMIRROR:=http://apt.sw.be/redhat
|
||||
|
||||
CENTOS_REPO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/os/$(CENTOS_ARCH)/
|
||||
CENTOS_ISO_DIR:=$(LOCAL_MIRROR)/centos/$(CENTOS_RELEASE)/isos/$(CENTOS_ARCH)/
|
||||
|
||||
ISOLINUX_FILES:=boot.msg grub.conf initrd.img isolinux.bin memtest splash.jpg vesamenu.c32 vmlinuz
|
||||
IMAGES_FILES:=efiboot.img efidisk.img install.img
|
||||
EFI_FILES:=BOOTX64.conf BOOTX64.efi splash.xpm.gz
|
||||
BOOTSTRAP_FILES:=initramfs.img linux
|
||||
NETINSTALL_ISO:=CentOS-$(CENTOS_RELEASE)-$(CENTOS_ARCH)-minimal-EFI.iso
|
||||
|
||||
# OUR PACKAGES VERSIONS
|
||||
|
||||
NAILGUN_VERSION:=0.1.0
|
||||
NAILY_VERSION:=0.0.1
|
||||
ASTUTE_VERSION:=0.0.1
|
@ -1,19 +1,19 @@
|
||||
Paste 1.7.5.1
|
||||
PyYAML 3.10
|
||||
SQLAlchemy 0.7.8
|
||||
amqplib 1.0.2
|
||||
anyjson 0.3.1
|
||||
argparse 1.2.1
|
||||
distribute 0.6.30
|
||||
eventlet 0.9.17
|
||||
greenlet 0.4.0
|
||||
kombu 2.1.8
|
||||
netaddr 0.7.10
|
||||
nose 1.1.2
|
||||
nose2 0.4.1
|
||||
pip 1.2.1
|
||||
pycrypto 2.6
|
||||
simplejson 2.6.2
|
||||
web.py 0.37
|
||||
wsgilog 0.3
|
||||
wsgiref 0.1.2
|
||||
Paste==1.7.5.1
|
||||
PyYAML==3.10
|
||||
SQLAlchemy==0.7.8
|
||||
amqplib==1.0.2
|
||||
anyjson==0.3.1
|
||||
argparse==1.2.1
|
||||
distribute==0.6.30
|
||||
eventlet==0.9.17
|
||||
greenlet==0.4.0
|
||||
kombu==2.1.8
|
||||
netaddr==0.7.10
|
||||
nose==1.1.2
|
||||
nose2==0.4.1
|
||||
pip==1.2.1
|
||||
pycrypto==2.6
|
||||
simplejson==2.6.2
|
||||
web.py==0.37
|
||||
wsgilog==0.3
|
||||
wsgiref==0.1.2
|
||||
|
@ -62,6 +62,8 @@ puppetdb-terminus
|
||||
python-amqp
|
||||
python-cinder
|
||||
python-devel.x86_64
|
||||
python-pip
|
||||
python-setuptools
|
||||
python-virtualenv
|
||||
rabbitmq-server-2.8.7
|
||||
rpm-build
|
||||
|
3
rules.mk
3
rules.mk
@ -1,4 +1,3 @@
|
||||
|
||||
define ACTION.COPY
|
||||
@mkdir -p $(@D)
|
||||
cp $< $@
|
||||
@ -13,3 +12,5 @@ $(BUILD_DIR)/%/.dir:
|
||||
mkdir -p $(@D)
|
||||
@touch $@
|
||||
|
||||
assert-variable=$(if $($1),,$(error Variable $1 need to be defined))
|
||||
find-files=$(shell test -d $1 && find $1 -type f 2> /dev/null)
|
30
sandbox/module.mk
Normal file
30
sandbox/module.mk
Normal file
@ -0,0 +1,30 @@
|
||||
define yum_local_repo
|
||||
[mirror]
|
||||
name=Mirantis mirror
|
||||
baseurl=file://$(shell readlink -f -m $(LOCAL_MIRROR_CENTOS_OS_BASEURL))
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
endef
|
||||
|
||||
define SANDBOX_UP
|
||||
mkdir -p $(SANDBOX)/etc/yum.repos.d
|
||||
cp /etc/resolv.conf $(SANDBOX)/etc/resolv.conf
|
||||
cat > $(SANDBOX)/etc/yum.repos.d/base.repo <<EOF
|
||||
$(yum_local_repo)
|
||||
EOF
|
||||
rpm -i --root=$(SANDBOX) `find $(LOCAL_MIRROR_CENTOS_OS_BASEURL) -name "centos-release*rpm" | head -1`
|
||||
rm -f $(SANDBOX)/etc/yum.repos.d/Cent*
|
||||
rpm --root=$(SANDBOX) --rebuilddb
|
||||
yum --installroot=$(SANDBOX) -y --nogpgcheck install \
|
||||
rpm-build tar gcc flex make byacc python-devel.x86_64 \
|
||||
glibc-devel glibc-headers kernel-headers python-pip
|
||||
mount | grep -q $(SANDBOX)/proc || sudo mount --bind /proc $(SANDBOX)/proc
|
||||
mount | grep -q $(SANDBOX)/dev || sudo mount --bind /dev $(SANDBOX)/dev
|
||||
endef
|
||||
|
||||
define SANDBOX_DOWN
|
||||
sync
|
||||
umount $(SANDBOX)/proc
|
||||
umount $(SANDBOX)/dev
|
||||
endef
|
||||
|
Loading…
Reference in New Issue
Block a user