fuel-main/os/centos/module.mk
2012-09-10 11:33:43 +00:00

158 lines
5.2 KiB
Makefile

/:=$(BUILD_DIR)/packages/centos/
$/%: /:=$/
REPOMIRROR:=$(MIRROR_URL)/centos
CENTOSMIRROR:=http://mirror.yandex.ru/centos
EPELMIRROR:=http://mirror.yandex.ru/epel
RPMFORGEMIRROR:=http://apt.sw.be/redhat
CENTOSMIN_PACKAGES:=$(shell grep "<packagereq type='mandatory'>" os/centos/comps.xml | sed -e "s/^\s*<packagereq type='mandatory'>\(.*\)<\/packagereq>\s*$$/\\1/")
CENTOSEXTRA_PACKAGES:=$(shell grep -v ^\\s*\# requirements-rpm.txt)
CENTOSRPMFORGE_PACKAGES:=qemu
ifdef MIRROR_DIR
CENTOS_REPO_DIR:=$(MIRROR_DIR)/centos/
else
CENTOS_REPO_DIR:=$/
endif
# 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
exactarch=1
obsoletes=1
gpgcheck=0
plugins=0
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:
@mkdir -p $(@D)
echo "$${contents}" > $@
define yum_mirror_repo
[mirror]
name=CentOS $(CENTOS_63_RELEASE) - Base
baseurl=$(REPOMIRROR)/Packages
gpgcheck=0
enabled=1
endef
define yum_real_repo
[base]
name=CentOS-$(CENTOS_63_RELEASE) - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=os
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/os/$(CENTOS_63_ARCH)
gpgcheck=0
enabled=1
[updates]
name=CentOS-$(CENTOS_63_RELEASE) - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=updates
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/updates/$(CENTOS_63_ARCH)
gpgcheck=0
enabled=1
[extras]
name=CentOS-$(CENTOS_63_RELEASE) - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=extras
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/extras/$(CENTOS_63_ARCH)
gpgcheck=0
enabled=1
[centosplus]
name=CentOS-$(CENTOS_63_RELEASE) - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=centosplus
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/centosplus/$(CENTOS_63_ARCH)
gpgcheck=0
enabled=1
[contrib]
name=CentOS-$(CENTOS_63_RELEASE) - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$(CENTOS_63_RELEASE)&arch=$(CENTOS_63_ARCH)&repo=contrib
baseurl=$(CENTOSMIRROR)/$(CENTOS_63_RELEASE)/contrib/$(CENTOS_63_ARCH)
gpgcheck=0
enabled=1
[epel]
name=Extra Packages for Enterprise Linux $(CENTOS_63_MAJOR) - $(CENTOS_63_ARCH)
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-$(CENTOS_63_MAJOR)&arch=$(CENTOS_63_ARCH)
baseurl=$(EPELMIRROR)/$(CENTOS_63_MAJOR)/$(CENTOS_63_ARCH)
gpgcheck=0
enabled=1
[mirantis]
name=Mirantis Packages for CentOS
baseurl=http://moc-ci.srt.mirantis.net/rpm
gpgcheck=0
enabled=0
[rpmforge]
name=RHEL $(CENTOS_63_RELEASE) - RPMforge.net - dag
#mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
baseurl=$(RPMFORGEMIRROR)/el$(CENTOS_63_MAJOR)/en/$(CENTOS_63_ARCH)/rpmforge
gpgcheck=0
enabled=0
[rpmforge-extras]
name = RHEL $(CENTOS_63_RELEASE) - RPMforge.net - extras
#mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
baseurl = $(RPMFORGEMIRROR)/el$(CENTOS_63_MAJOR)/en/$(CENTOS_63_ARCH)/extras
gpgcheck = 0
enabled = 0
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:
@mkdir -p $(@D)
echo "$${contents}" > $@
### NOTE: comps.xml came from centos-minimal.iso
$(CENTOS_REPO_DIR)comps.xml: os/centos/comps.xml
$(ACTION.COPY)
$(CENTOS_REPO_DIR)cache-infra.done: \
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf \
$(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).repos.d/base.repo
$(ACTION.TOUCH)
$(CENTOS_REPO_DIR)cache-extra.done: \
$(CENTOS_REPO_DIR)cache-infra.done
yum -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf clean all
rm -rf /var/tmp/yum-$$USER-*/
ifeq ($(IGNORE_MIRROR),1)
repotrack -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_63_ARCH) $(CENTOSMIN_PACKAGES) $(CENTOSEXTRA_PACKAGES)
repotrack -r base -r updates -r extras -r contrib -r centosplus -r epel -r rpmforge-extras -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_63_ARCH) $(CENTOSRPMFORGE_PACKAGES)
### NOTE: qemu-img-0.15 conflicts with packages in epel repos
-rm $(CENTOS_REPO_DIR)Packages/qemu-img-0.15*
else
repotrack -c $(CENTOS_REPO_DIR)etc/yum-$(REPO_SUFFIX).conf -p $(CENTOS_REPO_DIR)Packages -a $(CENTOS_63_ARCH) $(CENTOSMIN_PACKAGES) $(CENTOSEXTRA_PACKAGES) $(CENTOSRPMFORGE_PACKAGES)
endif
$(ACTION.TOUCH)
$(CENTOS_REPO_DIR)cache.done: $(CENTOS_REPO_DIR)cache-extra.done $(CENTOS_REPO_DIR)comps.xml
$(ACTION.TOUCH)
METADATA_FILES=repomd.xml comps.xml filelists.xml.gz primary.xml.gz other.xml.gz
$(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES)): $(CENTOS_REPO_DIR)cache.done
createrepo -g `readlink -f "$(CENTOS_REPO_DIR)comps.xml"` -o $(CENTOS_REPO_DIR)Packages $(CENTOS_REPO_DIR)Packages
$(CENTOS_REPO_DIR)repo.done: $(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES))
touch $@
mirror: $(addprefix $(CENTOS_REPO_DIR)Packages/repodata/,$(METADATA_FILES))