Moved package caching rules from iso build rules into separate files
This commit is contained in:
parent
2d1a65612f
commit
496c18b826
3
Makefile
3
Makefile
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
BUILD_DIR:=build
|
BUILD_DIR:=build
|
||||||
|
|
||||||
MODULES=gnupg bootstrap iso nailgun test
|
MODULES=gnupg bootstrap nailgun test os os/centos os/ubuntu iso
|
||||||
|
|
||||||
.PHONY: all clean test test-unit help FORCE
|
.PHONY: all clean test test-unit help FORCE
|
||||||
|
|
||||||
@ -30,6 +30,7 @@ clean:
|
|||||||
rm -rf $(BUILD_DIR)
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
assert-variable=$(if $($1),,$(error Variable $1 need to be defined))
|
assert-variable=$(if $($1),,$(error Variable $1 need to be defined))
|
||||||
|
find-files=$(shell test -d $1 && cd $1 && find * -type f 2> /dev/null)
|
||||||
|
|
||||||
include config.mk
|
include config.mk
|
||||||
|
|
||||||
|
@ -3,8 +3,13 @@ BINARIES_DIR:=binaries
|
|||||||
ifndef BOOTSTRAP_REBUILD
|
ifndef BOOTSTRAP_REBUILD
|
||||||
BOOTSTRAP_REDUILD:=0
|
BOOTSTRAP_REDUILD:=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
iso.path:=$(BUILD_DIR)/iso/nailgun-ubuntu-12.04-amd64.iso
|
iso.path:=$(BUILD_DIR)/iso/nailgun-ubuntu-12.04-amd64.iso
|
||||||
image.centos.url=http://mc0n1-srt.srt.mirantis.net/centos62.qcow2
|
image.centos.url=http://mc0n1-srt.srt.mirantis.net/centos62.qcow2
|
||||||
|
|
||||||
|
centos.packages=$(BUILD_DIR)/packages/centos
|
||||||
|
ubuntu.packages=$(BUILD_DIR)/packages/ubuntu
|
||||||
|
|
||||||
bootstrap.linux:=$(BUILD_DIR)/bootstrap/linux
|
bootstrap.linux:=$(BUILD_DIR)/bootstrap/linux
|
||||||
bootstrap.initrd:=$(BUILD_DIR)/bootstrap/initrd.gz
|
bootstrap.initrd:=$(BUILD_DIR)/bootstrap/initrd.gz
|
||||||
|
|
||||||
|
352
iso/module.mk
352
iso/module.mk
@ -5,155 +5,26 @@
|
|||||||
all: iso
|
all: iso
|
||||||
iso: $/nailgun-ubuntu-12.04-amd64.iso
|
iso: $/nailgun-ubuntu-12.04-amd64.iso
|
||||||
|
|
||||||
clean: $/umount_ubuntu_image $/umount_centos_image
|
|
||||||
|
|
||||||
.PHONY: $/umount_ubuntu_image
|
|
||||||
$/umount_ubuntu_image:
|
|
||||||
-fusermount -u $(BUILD_DIR)/ubuntu
|
|
||||||
|
|
||||||
.PHONY: $/umount_centos_image
|
|
||||||
$/umount_centos_image:
|
|
||||||
-fusermount -u $(BUILD_DIR)/centos
|
|
||||||
|
|
||||||
ifndef BINARIES_DIR
|
ifndef BINARIES_DIR
|
||||||
$/%:
|
$/%:
|
||||||
$(error BINARIES_DIR variable is not defined)
|
$(error BINARIES_DIR variable is not defined)
|
||||||
else
|
else
|
||||||
|
|
||||||
APT-GET:=apt-get
|
|
||||||
|
|
||||||
$(call assert-variable,gnupg.home)
|
$(call assert-variable,gnupg.home)
|
||||||
|
|
||||||
find-files=$(shell test -d $1 && cd $1 && find * -type f 2> /dev/null)
|
|
||||||
|
|
||||||
EXTRA_PACKAGES:=$(shell grep -v ^\\s*\# requirements-deb.txt)
|
|
||||||
CACHED_EXTRA_PACKAGES:=$(shell cd $(BINARIES_DIR)/ubuntu/precise/extra && ls *.deb)
|
|
||||||
|
|
||||||
CENTOSEXTRA_PACKAGES:=$(shell grep -v ^\\s*\# requirements-rpm.txt)
|
|
||||||
|
|
||||||
ISOROOT:=$/isoroot
|
ISOROOT:=$/isoroot
|
||||||
ISO_IMAGE:=$(BINARIES_DIR)/ubuntu-12.04-server-amd64.iso
|
UBUNTU_RELEASE:=$(UBUNTU_1204_RELEASE)
|
||||||
ISO_RELEASE:=precise
|
UBUNTU_VERSION:=$(UBUNTU_1204_VERSION)
|
||||||
ISO_VERSION:=12.04
|
UBUNTU_ARCHS:=i386 amd64
|
||||||
ISO_ARCHS:=i386 amd64
|
UBUNTU_SECTIONS:=main restricted universe multiverse
|
||||||
ISO_SECTIONS:=main restricted universe multiverse
|
|
||||||
|
|
||||||
CENTOSISO:=$(BINARIES_DIR)/CentOS-6.2-x86_64-minimal.iso
|
|
||||||
CENTOSMAJOR:=6
|
|
||||||
CENTOSRELEASE:=6.2
|
|
||||||
CENTOSARCH:=x86_64
|
|
||||||
CENTOSMIRROR:=http://mirror.yandex.ru/centos
|
|
||||||
|
|
||||||
UBUNTU_MIRROR:=http://ru.archive.ubuntu.com/ubuntu
|
|
||||||
OPSCODE_UBUNTU_MIRROR:=http://apt.opscode.com
|
|
||||||
UBUNTU_GPG_KEY1:=FBB75451
|
UBUNTU_GPG_KEY1:=FBB75451
|
||||||
UBUNTU_GPG_KEY2:=437D05B5
|
UBUNTU_GPG_KEY2:=437D05B5
|
||||||
|
|
||||||
$/%: /:=$/
|
$/%: /:=$/
|
||||||
$/%: ISOROOT:=$(ISOROOT)
|
$/%: ISOROOT:=$(ISOROOT)
|
||||||
$/%: ISO_RELEASE:=$(ISO_RELEASE)
|
$/%: UBUNTU_RELEASE:=$(UBUNTU_RELEASE)
|
||||||
$/%: ISO_VERSION:=$(ISO_VERSION)
|
$/%: UBUNTU_VERSION:=$(UBUNTU_VERSION)
|
||||||
|
|
||||||
|
|
||||||
$(BUILD_DIR)/ubuntu: $(BUILD_DIR)/ubuntu/md5sum.txt
|
|
||||||
$(BUILD_DIR)/ubuntu/%:
|
|
||||||
mkdir -p $(@D)
|
|
||||||
fuseiso $(ISO_IMAGE) $(@D)
|
|
||||||
|
|
||||||
$(BUILD_DIR)/centos: | $(BUILD_DIR)/centos/Packages
|
|
||||||
$(BUILD_DIR)/centos/%:
|
|
||||||
mkdir -p $(@D)
|
|
||||||
fuseiso $(CENTOSISO) $(@D)
|
|
||||||
|
|
||||||
# DEBIAN PACKET CACHE RULES
|
|
||||||
|
|
||||||
APT_ROOT=$(abspath $/apt)
|
|
||||||
|
|
||||||
define apt_conf_contents
|
|
||||||
APT
|
|
||||||
{
|
|
||||||
Architecture "amd64";
|
|
||||||
Default-Release "$(ISO_RELEASE)";
|
|
||||||
Get::AllowUnauthenticated "true";
|
|
||||||
};
|
|
||||||
|
|
||||||
Dir
|
|
||||||
{
|
|
||||||
State "$(APT_ROOT)/state";
|
|
||||||
State::status "status";
|
|
||||||
Cache::archives "$(APT_ROOT)/archives";
|
|
||||||
Cache "$(APT_ROOT)/cache";
|
|
||||||
Etc "$(APT_ROOT)/etc";
|
|
||||||
};
|
|
||||||
endef
|
|
||||||
|
|
||||||
$/apt/etc/apt.conf: export contents:=$(apt_conf_contents)
|
|
||||||
$/apt/etc/apt.conf: | $/apt/etc/.dir
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
echo "$${contents}" > $@
|
|
||||||
|
|
||||||
|
|
||||||
define apt_sources_list_contents
|
|
||||||
deb $(UBUNTU_MIRROR) precise main restricted universe multiverse
|
|
||||||
deb-src $(UBUNTU_MIRROR) precise main restricted universe multiverse
|
|
||||||
deb $(OPSCODE_UBUNTU_MIRROR) $(ISO_RELEASE)-0.10 main
|
|
||||||
endef
|
|
||||||
|
|
||||||
$/apt/etc/sources.list: export contents:=$(apt_sources_list_contents)
|
|
||||||
$/apt/etc/sources.list: | $/apt/etc/.dir
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
echo "$${contents}" > $@
|
|
||||||
|
|
||||||
|
|
||||||
define opscode_preferences_contents
|
|
||||||
Package: *
|
|
||||||
Pin: origin "apt.opscode.com"
|
|
||||||
Pin-Priority: 999
|
|
||||||
endef
|
|
||||||
|
|
||||||
$/apt/etc/preferences.d/opscode: export contents:=$(opscode_preferences_contents)
|
|
||||||
$/apt/etc/preferences.d/opscode: | $/apt/etc/preferences.d/.dir
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
echo "$${contents}" > $@
|
|
||||||
|
|
||||||
|
|
||||||
$/apt/state/status: | $/apt/state/.dir
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/apt-cache-infra.done: \
|
|
||||||
$/apt/etc/apt.conf \
|
|
||||||
$/apt/etc/sources.list \
|
|
||||||
$/apt/etc/preferences.d/opscode \
|
|
||||||
$/apt/archives/.dir \
|
|
||||||
| $/apt/cache/.dir \
|
|
||||||
$/apt/state/status
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/apt-cache-iso.done: $(ISO_IMAGE) | $(BUILD_DIR)/ubuntu/pool $/apt/archives/.dir
|
|
||||||
find $(abspath $(BUILD_DIR)/ubuntu/pool) -type f \( -name '*.deb' -o -name '*.udeb' \) -exec ln -sf {} $/apt/archives \;
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/apt-cache-index.done: \
|
|
||||||
$/apt-cache-infra.done \
|
|
||||||
$(addprefix $/apt/state/,$(call find-files,$(BINARIES_DIR)/ubuntu/precise/state))
|
|
||||||
$(APT-GET) -c=$/apt/etc/apt.conf update
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/apt-cache-extra.done: \
|
|
||||||
$/apt-cache-index.done \
|
|
||||||
$/apt-cache-iso.done \
|
|
||||||
$(addprefix $/apt/archives/,$(call find-files,$(BINARIES_DIR)/ubuntu/$(ISO_RELEASE)/extra)) \
|
|
||||||
requirements-deb.txt
|
|
||||||
for p in $(EXTRA_PACKAGES); do \
|
|
||||||
$(APT-GET) -c=$/apt/etc/apt.conf -d -y install $$p; \
|
|
||||||
done
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/apt/archives/%.deb: $(BINARIES_DIR)/ubuntu/$(ISO_RELEASE)/extra/%.deb
|
|
||||||
ln -sf $(abspath $<) $@
|
|
||||||
|
|
||||||
$/apt-cache.done: $/apt-cache-extra.done
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
|
|
||||||
# UBUNTU KEYRING RULES
|
# UBUNTU KEYRING RULES
|
||||||
@ -182,136 +53,37 @@ $/debian/ubuntu-keyring/.done: $/debian/ubuntu-keyring/keyrings/ubuntu-archive-k
|
|||||||
dpkg-buildpackage -b -m"Mirantis Nailgun" -k"$(gnupg.default-key-id)" -uc -us
|
dpkg-buildpackage -b -m"Mirantis Nailgun" -k"$(gnupg.default-key-id)" -uc -us
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
# RPM PACKAGE CACHE RULES
|
|
||||||
|
|
||||||
define yum_conf
|
|
||||||
[main]
|
|
||||||
cachedir=$/rpm/cache
|
|
||||||
keepcache=0
|
|
||||||
debuglevel=6
|
|
||||||
logfile=$/rpm/yum.log
|
|
||||||
exactarch=1
|
|
||||||
obsoletes=1
|
|
||||||
gpgcheck=0
|
|
||||||
plugins=0
|
|
||||||
reposdir=$/rpm/etc/yum.repos.d
|
|
||||||
endef
|
|
||||||
|
|
||||||
$/rpm/etc/yum.conf: export contents:=$(yum_conf)
|
|
||||||
$/rpm/etc/yum.conf: | $/rpm/etc/.dir
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
echo "$${contents}" > $@
|
|
||||||
|
|
||||||
define yum_base_repo
|
|
||||||
[base]
|
|
||||||
name=CentOS $(CENTOSRELEASE) - Base
|
|
||||||
baseurl=$(CENTOSMIRROR)/$(CENTOSRELEASE)/os/$(CENTOSARCH)
|
|
||||||
gpgcheck=0
|
|
||||||
enabled=1
|
|
||||||
|
|
||||||
[updates]
|
|
||||||
name=CentOS $(CENTOSRELEASE) - Updates
|
|
||||||
baseurl=$(CENTOSMIRROR)/$(CENTOSRELEASE)/updates/$(CENTOSARCH)
|
|
||||||
gpgcheck=0
|
|
||||||
enabled=1
|
|
||||||
|
|
||||||
[extras]
|
|
||||||
name=CentOS $(CENTOSRELEASE) - Extras
|
|
||||||
baseurl=$(CENTOSMIRROR)/$(CENTOSRELEASE)/extras/$(CENTOSARCH)
|
|
||||||
gpgcheck=0
|
|
||||||
enabled=1
|
|
||||||
|
|
||||||
[centosplus]
|
|
||||||
name=CentOS $(CENTOSRELEASE) - Plus
|
|
||||||
baseurl=$(CENTOSMIRROR)/$(CENTOSRELEASE)/centosplus/$(CENTOSARCH)
|
|
||||||
gpgcheck=0
|
|
||||||
enabled=1
|
|
||||||
|
|
||||||
[contrib]
|
|
||||||
name=CentOS $(CENTOSRELEASE) - Contrib
|
|
||||||
baseurl=$(CENTOSMIRROR)/$(CENTOSRELEASE)/contrib/$(CENTOSARCH)
|
|
||||||
gpgcheck=0
|
|
||||||
enabled=1
|
|
||||||
|
|
||||||
[epel]
|
|
||||||
name=Extra Packages for Enterprise Linux 6
|
|
||||||
baseurl=http://download.fedoraproject.org/pub/epel/$(CENTOSMAJOR)/$(CENTOSARCH)
|
|
||||||
enabled=1
|
|
||||||
gpgcheck=0
|
|
||||||
|
|
||||||
[mirantis]
|
|
||||||
name=Mirantis Packages for CentOS
|
|
||||||
baseurl=http://moc-ci.srt.mirantis.net/rpm
|
|
||||||
enabled=1
|
|
||||||
gpgcheck=0
|
|
||||||
endef
|
|
||||||
|
|
||||||
$/rpm/etc/yum.repos.d/base.repo: export contents:=$(yum_base_repo)
|
|
||||||
$/rpm/etc/yum.repos.d/base.repo: | $/rpm/etc/yum.repos.d/.dir
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
echo "$${contents}" > $@
|
|
||||||
|
|
||||||
$/rpm/comps.xml: $(BINARIES_DIR)/centos/$(CENTOSRELEASE)/comps.xml
|
|
||||||
$(ACTION.COPY)
|
|
||||||
|
|
||||||
$/rpm-groups.done: $/rpm/comps.xml
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/rpm-cache-infra.done: \
|
|
||||||
$/rpm/etc/yum.conf \
|
|
||||||
$/rpm/etc/yum.repos.d/base.repo
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/rpm-cache-iso.done: $(CENTOSISO) | $(BUILD_DIR)/centos/Packages $/rpm/Packages/.dir
|
|
||||||
find $(abspath $(BUILD_DIR)/centos/Packages) -type f \( -name '*.rpm' \) -exec ln -sf {} $/rpm/Packages \;
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/rpm-cache-extra.done: \
|
|
||||||
$/rpm-cache-infra.done \
|
|
||||||
$/rpm-cache-iso.done \
|
|
||||||
$(addprefix $/rpm/Packages/,$(call find-files,$(BINARIES_DIR)/centos/$(CENTOSRELEASE)/Packages)) \
|
|
||||||
requirements-rpm.txt
|
|
||||||
for p in $(CENTOSEXTRA_PACKAGES); do \
|
|
||||||
repotrack -c $/rpm/etc/yum.conf -p $/rpm/Packages -a $(CENTOSARCH) $$p; \
|
|
||||||
done
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
$/rpm/Packages/%.rpm: $(BINARIES_DIR)/centos/$(CENTOSRELEASE)/Packages/%.rpm
|
|
||||||
ln -sf $(abspath $<) $@
|
|
||||||
|
|
||||||
$/rpm-cache.done: $/rpm-cache-extra.done
|
|
||||||
$(ACTION.TOUCH)
|
|
||||||
|
|
||||||
# ISO ROOT RULES
|
# ISO ROOT RULES
|
||||||
|
|
||||||
$/isoroot-infra.done: $(ISO_IMAGE) | $(BUILD_DIR)/ubuntu
|
$/isoroot-infra.done: $(UBUNTU_1204_ISO) | $(UBUNTU_1204_ROOT)
|
||||||
mkdir -p $(ISOROOT)
|
mkdir -p $(ISOROOT)
|
||||||
rsync --recursive --links --perms --chmod=u+w --exclude=pool $(BUILD_DIR)/ubuntu/ $(ISOROOT)
|
rsync --recursive --links --perms --chmod=u+w --exclude=pool $(UBUNTU_1204_ROOT)/ $(ISOROOT)
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
$/isoroot-pool.done: $/apt-cache.done
|
$/isoroot-pool.done: $(ubuntu.packages)/cache.done
|
||||||
mkdir -p $(ISOROOT)/pools/$(ISO_RELEASE)
|
mkdir -p $(ISOROOT)/pools/$(UBUNTU_RELEASE)
|
||||||
find $/apt/archives \( -name '*.deb' -o -name '*.udeb' \) | while read debfile; do \
|
find $(ubuntu.packages)/archives \( -name '*.deb' -o -name '*.udeb' \) | while read debfile; do \
|
||||||
packname=`basename $${debfile} | cut -d_ -f1` ; \
|
packname=`basename $${debfile} | cut -d_ -f1` ; \
|
||||||
section=`grep -l "^$${packname}\s" $(BINARIES_DIR)/ubuntu/$(ISO_RELEASE)/indices/* | \
|
section=`grep -l "^$${packname}\s" $(BINARIES_DIR)/ubuntu/$(UBUNTU_RELEASE)/indices/* | \
|
||||||
grep -v extra | head -1 | cut -d. -f3` ; \
|
grep -v extra | head -1 | cut -d. -f3` ; \
|
||||||
test -z $${section} && section=main ; \
|
test -z $${section} && section=main ; \
|
||||||
mkdir -p $(ISOROOT)/pools/$(ISO_RELEASE)/$${section} ; \
|
mkdir -p $(ISOROOT)/pools/$(UBUNTU_RELEASE)/$${section} ; \
|
||||||
cp -n $${debfile} $(ISOROOT)/pools/$(ISO_RELEASE)/$${section}/ ; \
|
cp -n $${debfile} $(ISOROOT)/pools/$(UBUNTU_RELEASE)/$${section}/ ; \
|
||||||
done
|
done
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
$/isoroot-rpm.done: $/rpm-cache.done $/rpm-groups.done
|
$/isoroot-centos.done: $(centos.packages)/cache.done
|
||||||
mkdir -p $(ISOROOT)/centos/$(CENTOSRELEASE)
|
mkdir -p $(ISOROOT)/centos/$(CENTOSRELEASE)
|
||||||
find $/rpm/Packages -name '*.rpm' | while read rpmfile; do \
|
find $(centos.packages)/Packages -name '*.rpm' | while read rpmfile; do \
|
||||||
cp -n $${rpmfile} $(ISOROOT)/centos/$(CENTOSRELEASE)/ ; \
|
cp -n $${rpmfile} $(ISOROOT)/centos/$(CENTOSRELEASE)/ ; \
|
||||||
done
|
done
|
||||||
createrepo -g `readlink -f "$/rpm/comps.xml"` -o $(ISOROOT)/centos/$(CENTOSRELEASE) $(ISOROOT)/centos/$(CENTOSRELEASE)
|
createrepo -g `readlink -f "$(centos.packages)/comps.xml"` -o $(ISOROOT)/centos/$(CENTOSRELEASE) $(ISOROOT)/centos/$(CENTOSRELEASE)
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
$/isoroot-keyring.done: $/isoroot-pool.done $/debian/ubuntu-keyring/.done
|
$/isoroot-keyring.done: $/isoroot-pool.done $/debian/ubuntu-keyring/.done
|
||||||
rm -rf $(ISOROOT)/pools/$(ISO_RELEASE)/main/ubuntu-keyring*deb
|
rm -rf $(ISOROOT)/pools/$(UBUNTU_RELEASE)/main/ubuntu-keyring*deb
|
||||||
cp $/debian/ubuntu-keyring*deb $(ISOROOT)/pools/$(ISO_RELEASE)/main/
|
cp $/debian/ubuntu-keyring*deb $(ISOROOT)/pools/$(UBUNTU_RELEASE)/main/
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
$/isoroot-packages.done: $/isoroot-pool.done $/isoroot-keyring.done
|
$/isoroot-packages.done: $/isoroot-pool.done $/isoroot-keyring.done
|
||||||
@ -324,7 +96,7 @@ $/isoroot-isolinux.done: $/isoroot-infra.done $(addprefix iso/stage/,$(call find
|
|||||||
$/isoroot.done: \
|
$/isoroot.done: \
|
||||||
$/isoroot-infra.done \
|
$/isoroot-infra.done \
|
||||||
$/isoroot-packages.done \
|
$/isoroot-packages.done \
|
||||||
$/isoroot-rpm.done \
|
$/isoroot-centos.done \
|
||||||
$/isoroot-isolinux.done \
|
$/isoroot-isolinux.done \
|
||||||
$(ISOROOT)/bootstrap/linux \
|
$(ISOROOT)/bootstrap/linux \
|
||||||
$(ISOROOT)/bootstrap/initrd.gz \
|
$(ISOROOT)/bootstrap/initrd.gz \
|
||||||
@ -335,7 +107,7 @@ $/isoroot.done: \
|
|||||||
$(addprefix $(ISOROOT)/gnupg/,$(call find-files,gnupg)) \
|
$(addprefix $(ISOROOT)/gnupg/,$(call find-files,gnupg)) \
|
||||||
$(ISOROOT)/sync \
|
$(ISOROOT)/sync \
|
||||||
$(addprefix $(ISOROOT)/sync/,$(call find-files,iso/sync)) \
|
$(addprefix $(ISOROOT)/sync/,$(call find-files,iso/sync)) \
|
||||||
$(addprefix $(ISOROOT)/indices/,$(call find-files,$(BINARIES_DIR)/ubuntu/$(ISO_RELEASE)/indices)) \
|
$(addprefix $(ISOROOT)/indices/,$(call find-files,$(BINARIES_DIR)/ubuntu/$(UBUNTU_RELEASE)/indices)) \
|
||||||
$(addprefix $(ISOROOT)/nailgun/,$(call find-files,nailgun)) \
|
$(addprefix $(ISOROOT)/nailgun/,$(call find-files,nailgun)) \
|
||||||
$(addprefix $(ISOROOT)/nailgun/bin/,create_release install_cookbook deploy agent) \
|
$(addprefix $(ISOROOT)/nailgun/bin/,create_release install_cookbook deploy agent) \
|
||||||
$(addprefix $(ISOROOT)/nailgun/solo/,solo.rb solo.json) \
|
$(addprefix $(ISOROOT)/nailgun/solo/,solo.rb solo.json) \
|
||||||
@ -344,8 +116,8 @@ $/isoroot.done: \
|
|||||||
$/isoroot-gems.done \
|
$/isoroot-gems.done \
|
||||||
$(ISOROOT)/eggs \
|
$(ISOROOT)/eggs \
|
||||||
$(addprefix $(ISOROOT)/eggs/,$(call find-files,$(BINARIES_DIR)/eggs)) \
|
$(addprefix $(ISOROOT)/eggs/,$(call find-files,$(BINARIES_DIR)/eggs)) \
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/Release \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/Release \
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/Release.gpg
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/Release.gpg
|
||||||
$(ACTION.TOUCH)
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
$(ISOROOT)/md5sum.txt: $/isoroot.done
|
$(ISOROOT)/md5sum.txt: $/isoroot.done
|
||||||
@ -360,25 +132,25 @@ $(ISOROOT)/md5sum.txt: $/isoroot.done
|
|||||||
# 3 - override path
|
# 3 - override path
|
||||||
# 4 - extra override path
|
# 4 - extra override path
|
||||||
define packages-build-rule-template
|
define packages-build-rule-template
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$1/binary-$2/Packages: \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$1/binary-$2/Packages: \
|
||||||
$/isoroot-packages.done \
|
$/isoroot-packages.done \
|
||||||
$(ISOROOT)/pools/$(ISO_RELEASE)/$1 \
|
$(ISOROOT)/pools/$(UBUNTU_RELEASE)/$1 \
|
||||||
$3 \
|
$3 \
|
||||||
$4
|
$4
|
||||||
mkdir -p $$(@D)
|
mkdir -p $$(@D)
|
||||||
cd $(ISOROOT) && \
|
cd $(ISOROOT) && \
|
||||||
dpkg-scanpackages --multiversion --arch $2 --type deb \
|
dpkg-scanpackages --multiversion --arch $2 --type deb \
|
||||||
--extra-override $(abspath $4) pools/$(ISO_RELEASE)/$1 $(abspath $3) > $$(abspath $$@)
|
--extra-override $(abspath $4) pools/$(UBUNTU_RELEASE)/$1 $(abspath $3) > $$(abspath $$@)
|
||||||
|
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$1/debian-installer/binary-$2/Packages: \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$1/debian-installer/binary-$2/Packages: \
|
||||||
$/isoroot-packages.done \
|
$/isoroot-packages.done \
|
||||||
$(ISOROOT)/pools/$(ISO_RELEASE)/$1 \
|
$(ISOROOT)/pools/$(UBUNTU_RELEASE)/$1 \
|
||||||
$3.debian-installer \
|
$3.debian-installer \
|
||||||
$4
|
$4
|
||||||
mkdir -p $$(@D)
|
mkdir -p $$(@D)
|
||||||
cd $(ISOROOT) && \
|
cd $(ISOROOT) && \
|
||||||
dpkg-scanpackages --multiversion --arch $2 --type udeb \
|
dpkg-scanpackages --multiversion --arch $2 --type udeb \
|
||||||
--extra-override $(abspath $4) pools/$(ISO_RELEASE)/$1 $(abspath $3.debian-installer) > $$(abspath $$@)
|
--extra-override $(abspath $4) pools/$(UBUNTU_RELEASE)/$1 $(abspath $3.debian-installer) > $$(abspath $$@)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
packages-build-rule = $(eval $(call packages-build-rule-template,$1,$2,$3,$4))
|
packages-build-rule = $(eval $(call packages-build-rule-template,$1,$2,$3,$4))
|
||||||
@ -386,22 +158,22 @@ packages-build-rule = $(eval $(call packages-build-rule-template,$1,$2,$3,$4))
|
|||||||
# Generate rules for building Packages index for all supported architectures
|
# Generate rules for building Packages index for all supported architectures
|
||||||
#
|
#
|
||||||
# NOTE: section=main -- special case
|
# NOTE: section=main -- special case
|
||||||
INDICES_DIR:=$(BINARIES_DIR)/ubuntu/$(ISO_RELEASE)/indices
|
INDICES_DIR:=$(BINARIES_DIR)/ubuntu/$(UBUNTU_RELEASE)/indices
|
||||||
|
|
||||||
$(foreach section,$(filter-out main,$(ISO_SECTIONS)),\
|
$(foreach section,$(filter-out main,$(UBUNTU_SECTIONS)),\
|
||||||
$(foreach arch,$(ISO_ARCHS),\
|
$(foreach arch,$(UBUNTU_ARCHS),\
|
||||||
$(call packages-build-rule,$(section),$(arch),\
|
$(call packages-build-rule,$(section),$(arch),\
|
||||||
$(INDICES_DIR)/override.$(ISO_RELEASE).$(section),\
|
$(INDICES_DIR)/override.$(UBUNTU_RELEASE).$(section),\
|
||||||
$(INDICES_DIR)/override.$(ISO_RELEASE).extra.$(section))))
|
$(INDICES_DIR)/override.$(UBUNTU_RELEASE).extra.$(section))))
|
||||||
|
|
||||||
$(foreach arch,$(ISO_ARCHS),\
|
$(foreach arch,$(UBUNTU_ARCHS),\
|
||||||
$(call packages-build-rule,main,$(arch),\
|
$(call packages-build-rule,main,$(arch),\
|
||||||
$(INDICES_DIR)/override.$(ISO_RELEASE).main,\
|
$(INDICES_DIR)/override.$(UBUNTU_RELEASE).main,\
|
||||||
$/override.$(ISO_RELEASE).extra.main))
|
$/override.$(UBUNTU_RELEASE).extra.main))
|
||||||
|
|
||||||
$/override.$(ISO_RELEASE).extra.main: \
|
$/override.$(UBUNTU_RELEASE).extra.main: \
|
||||||
$(INDICES_DIR)/override.$(ISO_RELEASE).extra.main \
|
$(INDICES_DIR)/override.$(UBUNTU_RELEASE).extra.main \
|
||||||
$(BUILD_DIR)/ubuntu/dists/$(ISO_RELEASE)/main/binary-amd64/Packages.gz
|
$(UBUNTU_1204_ROOT)/dists/$(UBUNTU_RELEASE)/main/binary-amd64/Packages.gz
|
||||||
$(ACTION.COPY)
|
$(ACTION.COPY)
|
||||||
gunzip -c $(filter %/Packages.gz,$^) | awk -F ": *" '$$1=="Package" {package=$$2} $$1=="Task" {print package " Task " $$2}' >> $@
|
gunzip -c $(filter %/Packages.gz,$^) | awk -F ": *" '$$1=="Package" {package=$$2} $$1=="Task" {print package " Task " $$2}' >> $@
|
||||||
|
|
||||||
@ -409,26 +181,26 @@ $/override.$(ISO_RELEASE).extra.main: \
|
|||||||
# 1 - section (e.g. main, restricted, etc.)
|
# 1 - section (e.g. main, restricted, etc.)
|
||||||
# 2 - arch
|
# 2 - arch
|
||||||
define release-build-rule-template
|
define release-build-rule-template
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$1/binary-$2/Release:
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$1/binary-$2/Release:
|
||||||
@mkdir -p $$(@D)
|
@mkdir -p $$(@D)
|
||||||
echo "Archive: $(ISO_RELEASE)\nVersion: $(ISO_VERSION)\nComponent: $1\nOrigin: Mirantis\nLabel: Mirantis\nArchitecture: $2" > $$@
|
echo "Archive: $(UBUNTU_RELEASE)\nVersion: $(UBUNTU_VERSION)\nComponent: $1\nOrigin: Mirantis\nLabel: Mirantis\nArchitecture: $2" > $$@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
release-build-rule = $(eval $(call release-build-rule-template,$1,$2))
|
release-build-rule = $(eval $(call release-build-rule-template,$1,$2))
|
||||||
|
|
||||||
$(foreach section,$(ISO_SECTIONS),\
|
$(foreach section,$(UBUNTU_SECTIONS),\
|
||||||
$(foreach arch,$(ISO_ARCHS),\
|
$(foreach arch,$(UBUNTU_ARCHS),\
|
||||||
$(call release-build-rule,$(section),$(arch))))
|
$(call release-build-rule,$(section),$(arch))))
|
||||||
|
|
||||||
|
|
||||||
define release_conf_contents
|
define release_conf_contents
|
||||||
APT::FTPArchive::Release::Origin "Mirantis";
|
APT::FTPArchive::Release::Origin "Mirantis";
|
||||||
APT::FTPArchive::Release::Label "Mirantis";
|
APT::FTPArchive::Release::Label "Mirantis";
|
||||||
APT::FTPArchive::Release::Suite "$(ISO_RELEASE)";
|
APT::FTPArchive::Release::Suite "$(UBUNTU_RELEASE)";
|
||||||
APT::FTPArchive::Release::Version "$(ISO_VERSION)";
|
APT::FTPArchive::Release::Version "$(UBUNTU_VERSION)";
|
||||||
APT::FTPArchive::Release::Codename "$(ISO_RELEASE)";
|
APT::FTPArchive::Release::Codename "$(UBUNTU_RELEASE)";
|
||||||
APT::FTPArchive::Release::Architectures "$(ISO_ARCHS)";
|
APT::FTPArchive::Release::Architectures "$(UBUNTU_ARCHS)";
|
||||||
APT::FTPArchive::Release::Components "$(ISO_SECTIONS)";
|
APT::FTPArchive::Release::Components "$(UBUNTU_SECTIONS)";
|
||||||
APT::FTPArchive::Release::Description "Mirantis Nailgun Repo";
|
APT::FTPArchive::Release::Description "Mirantis Nailgun Repo";
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -437,24 +209,24 @@ $/release.conf:
|
|||||||
echo "$${contents}" > $@
|
echo "$${contents}" > $@
|
||||||
|
|
||||||
|
|
||||||
$(addprefix $(ISOROOT)/pools/$(ISO_RELEASE)/,$(ISO_SECTIONS)):
|
$(addprefix $(ISOROOT)/pools/$(UBUNTU_RELEASE)/,$(UBUNTU_SECTIONS)):
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
$(ISOROOT)/dists/%.gz: $(ISOROOT)/dists/%
|
$(ISOROOT)/dists/%.gz: $(ISOROOT)/dists/%
|
||||||
gzip -c $< > $@
|
gzip -c $< > $@
|
||||||
|
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/Release: \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/Release: \
|
||||||
$/release.conf \
|
$/release.conf \
|
||||||
$(foreach arch,$(ISO_ARCHS),\
|
$(foreach arch,$(UBUNTU_ARCHS),\
|
||||||
$(foreach section,$(ISO_SECTIONS),\
|
$(foreach section,$(UBUNTU_SECTIONS),\
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$(section)/binary-$(arch)/Packages \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$(section)/binary-$(arch)/Packages \
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$(section)/binary-$(arch)/Packages.gz \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$(section)/binary-$(arch)/Packages.gz \
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$(section)/debian-installer/binary-$(arch)/Packages \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$(section)/debian-installer/binary-$(arch)/Packages \
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$(section)/debian-installer/binary-$(arch)/Packages.gz \
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$(section)/debian-installer/binary-$(arch)/Packages.gz \
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/$(section)/binary-$(arch)/Release))
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/$(section)/binary-$(arch)/Release))
|
||||||
apt-ftparchive -c $< release $(ISOROOT)/dists/$(ISO_RELEASE) > $@
|
apt-ftparchive -c $< release $(ISOROOT)/dists/$(UBUNTU_RELEASE) > $@
|
||||||
|
|
||||||
$(ISOROOT)/dists/$(ISO_RELEASE)/Release.gpg: $(ISOROOT)/dists/$(ISO_RELEASE)/Release
|
$(ISOROOT)/dists/$(UBUNTU_RELEASE)/Release.gpg: $(ISOROOT)/dists/$(UBUNTU_RELEASE)/Release
|
||||||
GNUPGHOME=$(gnupg.home) gpg --yes --no-tty --default-key $(gnupg.default-key-id) --passphrase-file $(gnupg.keyphrase-file) --output $@ -ba $<
|
GNUPGHOME=$(gnupg.home) gpg --yes --no-tty --default-key $(gnupg.default-key-id) --passphrase-file $(gnupg.keyphrase-file) --output $@ -ba $<
|
||||||
|
|
||||||
define late_contents
|
define late_contents
|
||||||
@ -535,8 +307,8 @@ $(ISOROOT)/gnupg/%: gnupg/% ; $(ACTION.COPY)
|
|||||||
$(ISOROOT)/sync:
|
$(ISOROOT)/sync:
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
$(ISOROOT)/sync/%: iso/sync/% ; $(ACTION.COPY)
|
$(ISOROOT)/sync/%: iso/sync/% ; $(ACTION.COPY)
|
||||||
$(ISOROOT)/indices/override.$(ISO_RELEASE).extra.main: $/override.$(ISO_RELEASE).extra.main ; $(ACTION.COPY)
|
$(ISOROOT)/indices/override.$(UBUNTU_RELEASE).extra.main: $/override.$(UBUNTU_RELEASE).extra.main ; $(ACTION.COPY)
|
||||||
$(ISOROOT)/indices/%: $(BINARIES_DIR)/ubuntu/$(ISO_RELEASE)/indices/% ; $(ACTION.COPY)
|
$(ISOROOT)/indices/%: $(BINARIES_DIR)/ubuntu/$(UBUNTU_RELEASE)/indices/% ; $(ACTION.COPY)
|
||||||
$(ISOROOT)/nailgun/cookbooks/%: cookbooks/% ; $(ACTION.COPY)
|
$(ISOROOT)/nailgun/cookbooks/%: cookbooks/% ; $(ACTION.COPY)
|
||||||
$(ISOROOT)/nailgun/os-cookbooks/%: cooks/% ; $(ACTION.COPY)
|
$(ISOROOT)/nailgun/os-cookbooks/%: cooks/% ; $(ACTION.COPY)
|
||||||
$(ISOROOT)/nailgun/solo/%: iso/solo/% ; $(ACTION.COPY)
|
$(ISOROOT)/nailgun/solo/%: iso/solo/% ; $(ACTION.COPY)
|
||||||
|
105
os/centos/module.mk
Normal file
105
os/centos/module.mk
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
/:=$(BUILD_DIR)/packages/centos/
|
||||||
|
|
||||||
|
$/%: /:=$/
|
||||||
|
|
||||||
|
CENTOSMIRROR:=http://mirror.yandex.ru/centos
|
||||||
|
|
||||||
|
CENTOSEXTRA_PACKAGES:=$(shell grep -v ^\\s*\# requirements-rpm.txt)
|
||||||
|
|
||||||
|
# RPM PACKAGE CACHE RULES
|
||||||
|
|
||||||
|
define yum_conf
|
||||||
|
[main]
|
||||||
|
cachedir=$/cache
|
||||||
|
keepcache=0
|
||||||
|
debuglevel=6
|
||||||
|
logfile=$/yum.log
|
||||||
|
exactarch=1
|
||||||
|
obsoletes=1
|
||||||
|
gpgcheck=0
|
||||||
|
plugins=0
|
||||||
|
reposdir=$/etc/yum.repos.d
|
||||||
|
endef
|
||||||
|
|
||||||
|
$/etc/yum.conf: export contents:=$(yum_conf)
|
||||||
|
$/etc/yum.conf: | $/etc/.dir
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
echo "$${contents}" > $@
|
||||||
|
|
||||||
|
define yum_base_repo
|
||||||
|
[base]
|
||||||
|
name=CentOS $(CENTOS_62_RELEASE) - Base
|
||||||
|
baseurl=$(CENTOSMIRROR)/$(CENTOS_62_RELEASE)/os/$(CENTOS_62_ARCH)
|
||||||
|
gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
|
||||||
|
[updates]
|
||||||
|
name=CentOS $(CENTOS_62_RELEASE) - Updates
|
||||||
|
baseurl=$(CENTOSMIRROR)/$(CENTOS_62_RELEASE)/updates/$(CENTOS_62_ARCH)
|
||||||
|
gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
|
||||||
|
[extras]
|
||||||
|
name=CentOS $(CENTOS_62_RELEASE) - Extras
|
||||||
|
baseurl=$(CENTOSMIRROR)/$(CENTOS_62_RELEASE)/extras/$(CENTOS_62_ARCH)
|
||||||
|
gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
|
||||||
|
[centosplus]
|
||||||
|
name=CentOS $(CENTOS_62_RELEASE) - Plus
|
||||||
|
baseurl=$(CENTOSMIRROR)/$(CENTOS_62_RELEASE)/centosplus/$(CENTOS_62_ARCH)
|
||||||
|
gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
|
||||||
|
[contrib]
|
||||||
|
name=CentOS $(CENTOS_62_RELEASE) - Contrib
|
||||||
|
baseurl=$(CENTOSMIRROR)/$(CENTOS_62_RELEASE)/contrib/$(CENTOS_62_ARCH)
|
||||||
|
gpgcheck=0
|
||||||
|
enabled=1
|
||||||
|
|
||||||
|
[epel]
|
||||||
|
name=Extra Packages for Enterprise Linux 6
|
||||||
|
baseurl=http://download.fedoraproject.org/pub/epel/$(CENTOS_62_MAJOR)/$(CENTOS_62_ARCH)
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
|
||||||
|
[mirantis]
|
||||||
|
name=Mirantis Packages for CentOS
|
||||||
|
baseurl=http://moc-ci.srt.mirantis.net/rpm
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
endef
|
||||||
|
|
||||||
|
$/etc/yum.repos.d/base.repo: export contents:=$(yum_base_repo)
|
||||||
|
$/etc/yum.repos.d/base.repo: | $/etc/yum.repos.d/.dir
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
echo "$${contents}" > $@
|
||||||
|
|
||||||
|
$/comps.xml: $(BINARIES_DIR)/centos/$(CENTOS_62_RELEASE)/comps.xml
|
||||||
|
$(ACTION.COPY)
|
||||||
|
|
||||||
|
$/cache-infra.done: \
|
||||||
|
$/etc/yum.conf \
|
||||||
|
$/etc/yum.repos.d/base.repo
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/cache-iso.done: $(CENTOS_62_ISO) | $(CENTOS_62_ROOT)/Packages $/Packages/.dir
|
||||||
|
find $(abspath $(CENTOS_62_ROOT)/Packages) -type f \( -name '*.rpm' \) -exec ln -sf {} $/Packages \;
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/cache-extra.done: \
|
||||||
|
$/cache-infra.done \
|
||||||
|
$/cache-iso.done \
|
||||||
|
$(addprefix $/Packages/,$(call find-files,$(BINARIES_DIR)/centos/$(CENTOS_62_RELEASE)/Packages)) \
|
||||||
|
requirements-rpm.txt
|
||||||
|
for p in $(CENTOSEXTRA_PACKAGES); do \
|
||||||
|
repotrack -c $/etc/yum.conf -p $/Packages -a $(CENTOS_62_ARCH) $$p; \
|
||||||
|
done
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/Packages/%.rpm: $(BINARIES_DIR)/centos/$(CENTOS_62_RELEASE)/Packages/%.rpm
|
||||||
|
ln -sf $(abspath $<) $@
|
||||||
|
|
||||||
|
$/cache.done: $/cache-extra.done $/comps.xml
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
38
os/module.mk
Normal file
38
os/module.mk
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
define image-mount-rules-template
|
||||||
|
$($1_ROOT)/%: $1_ISO:=$($1_ISO)
|
||||||
|
$($1_ROOT)/%: $1_ROOT:=$($1_ROOT)
|
||||||
|
|
||||||
|
$($1_ROOT)/%:
|
||||||
|
mkdir -p $$(@D)
|
||||||
|
fuseiso $$($1_ISO) $$($1_ROOT)
|
||||||
|
|
||||||
|
clean: $($1_ROOT)/umount
|
||||||
|
|
||||||
|
.PHONY: $($1_ROOT)/mount $($1_ROOT)/umount
|
||||||
|
$($1_ROOT)/mount:
|
||||||
|
|
||||||
|
$($1_ROOT)/umount:
|
||||||
|
-fusermount -u $$($1_ROOT)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
image-mount-rules=$(eval $(call image-mount-rules-template,$1,$2,$3))
|
||||||
|
|
||||||
|
|
||||||
|
UBUNTU_1204_ISO:=$(BINARIES_DIR)/ubuntu-12.04-server-amd64.iso
|
||||||
|
UBUNTU_1204_ROOT:=$(BUILD_DIR)/images/ubuntu-12.04-server
|
||||||
|
UBUNTU_1204_RELEASE:=precise
|
||||||
|
UBUNTU_1204_VERSION:=12.04
|
||||||
|
$(call image-mount-rules,UBUNTU_1204)
|
||||||
|
|
||||||
|
$(UBUNTU_1204_ROOT): $(UBUNTU_1204_ROOT)/md5sum.txt
|
||||||
|
|
||||||
|
CENTOS_62_ISO:=$(BINARIES_DIR)/CentOS-6.2-x86_64-minimal.iso
|
||||||
|
CENTOS_62_ROOT:=$(BUILD_DIR)/images/centos-6.2
|
||||||
|
CENTOS_62_MAJOR:=6
|
||||||
|
CENTOS_62_RELEASE:=6.2
|
||||||
|
CENTOS_62_ARCH:=x86_64
|
||||||
|
$(call image-mount-rules,CENTOS_62)
|
||||||
|
$(CENTOS_62_ROOT): $(CENTOS_62_ROOT)/CentOS_BuildTag
|
||||||
|
|
104
os/ubuntu/module.mk
Normal file
104
os/ubuntu/module.mk
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
|
||||||
|
/:=$(BUILD_DIR)/packages/ubuntu/
|
||||||
|
|
||||||
|
$/%: /:=$/
|
||||||
|
|
||||||
|
APT-GET:=apt-get
|
||||||
|
|
||||||
|
EXTRA_PACKAGES:=$(shell grep -v ^\\s*\# requirements-deb.txt)
|
||||||
|
|
||||||
|
UBUNTU_MIRROR:=http://ru.archive.ubuntu.com/ubuntu
|
||||||
|
OPSCODE_UBUNTU_MIRROR:=http://apt.opscode.com
|
||||||
|
# DEBIAN PACKET CACHE RULES
|
||||||
|
|
||||||
|
define apt_conf_contents
|
||||||
|
APT
|
||||||
|
{
|
||||||
|
Architecture "amd64";
|
||||||
|
Default-Release "$(UBUNTU_1204_RELEASE)";
|
||||||
|
Get::AllowUnauthenticated "true";
|
||||||
|
};
|
||||||
|
|
||||||
|
Dir
|
||||||
|
{
|
||||||
|
State "$(abspath $/state)";
|
||||||
|
State::status "status";
|
||||||
|
Cache::archives "$(abspath $/archives)";
|
||||||
|
Cache "$(abspath $/cache)";
|
||||||
|
Etc "$(abspath $/etc)";
|
||||||
|
};
|
||||||
|
endef
|
||||||
|
|
||||||
|
$/etc/apt.conf: export contents:=$(apt_conf_contents)
|
||||||
|
$/etc/apt.conf: | $/etc/.dir
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
echo "$${contents}" > $@
|
||||||
|
|
||||||
|
|
||||||
|
define apt_sources_list_contents
|
||||||
|
deb $(UBUNTU_MIRROR) precise main restricted universe multiverse
|
||||||
|
deb-src $(UBUNTU_MIRROR) precise main restricted universe multiverse
|
||||||
|
deb $(OPSCODE_UBUNTU_MIRROR) $(UBUNTU_1204_RELEASE)-0.10 main
|
||||||
|
endef
|
||||||
|
|
||||||
|
$/etc/sources.list: export contents:=$(apt_sources_list_contents)
|
||||||
|
$/etc/sources.list: | $/etc/.dir
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
echo "$${contents}" > $@
|
||||||
|
|
||||||
|
|
||||||
|
define opscode_preferences_contents
|
||||||
|
Package: *
|
||||||
|
Pin: origin "apt.opscode.com"
|
||||||
|
Pin-Priority: 999
|
||||||
|
endef
|
||||||
|
|
||||||
|
$/etc/preferences.d/opscode: export contents:=$(opscode_preferences_contents)
|
||||||
|
$/etc/preferences.d/opscode: | $/etc/preferences.d/.dir
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
echo "$${contents}" > $@
|
||||||
|
|
||||||
|
|
||||||
|
$/state/status: | $/state/.dir
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/cache-infra.done: \
|
||||||
|
$/etc/apt.conf \
|
||||||
|
$/etc/sources.list \
|
||||||
|
$/etc/preferences.d/opscode \
|
||||||
|
$/archives/.dir \
|
||||||
|
| $/cache/.dir \
|
||||||
|
$/state/status
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/cache-iso.done: $(UBUNTU_1204_ISO) | $(UBUNTU_1204_ROOT)/pool $/archives/.dir
|
||||||
|
find $(abspath $(UBUNTU_1204_ROOT)/pool) -type f \( -name '*.deb' -o -name '*.udeb' \) -exec ln -sf {} $/archives \;
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/cache-index.done: \
|
||||||
|
$/cache-infra.done \
|
||||||
|
$(addprefix $/state/,$(call find-files,$(BINARIES_DIR)/ubuntu/precise/state))
|
||||||
|
$(APT-GET) -c=$/etc/apt.conf update
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/cache-extra.done: \
|
||||||
|
$/cache-index.done \
|
||||||
|
$/cache-iso.done \
|
||||||
|
$(addprefix $/archives/,$(call find-files,$(BINARIES_DIR)/ubuntu/$(UBUNTU_1204_RELEASE)/extra)) \
|
||||||
|
requirements-deb.txt
|
||||||
|
for p in $(EXTRA_PACKAGES); do \
|
||||||
|
$(APT-GET) -c=$/etc/apt.conf -d -y install $$p; \
|
||||||
|
done
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
$/archives/%.deb: $(BINARIES_DIR)/ubuntu/$(UBUNTU_1204_RELEASE)/extra/%.deb
|
||||||
|
ln -sf $(abspath $<) $@
|
||||||
|
|
||||||
|
$/cache.done: $/cache-extra.done
|
||||||
|
$(ACTION.TOUCH)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user