110 lines
4.4 KiB
Makefile
110 lines
4.4 KiB
Makefile
.PHONY: clean clean-rpm
|
|
|
|
clean: clean-rpm
|
|
|
|
clean-rpm:
|
|
-mount | grep '$(BUILD_DIR)/packages/rpm/SANDBOX' | while read entry; do \
|
|
set -- $$entry; \
|
|
mntpt="$$3"; \
|
|
sudo umount $$mntpt; \
|
|
done
|
|
sudo rm -rf $(BUILD_DIR)/packages/rpm
|
|
|
|
RPM_SOURCES:=$(BUILD_DIR)/packages/rpm/SOURCES
|
|
|
|
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX_PACKAGES:=@buildsys-build yum yum-utils
|
|
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX/buildd
|
|
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: export SANDBOX_UP:=$(SANDBOX_UP)
|
|
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: export SANDBOX_DOWN:=$(SANDBOX_DOWN)
|
|
$(BUILD_DIR)/packages/rpm/buildd.tar.gz: $(BUILD_DIR)/mirror/centos/repo.done \
|
|
$(BUILD_DIR)/mirror/centos/mos-repo.done
|
|
sh -c "$${SANDBOX_UP}"
|
|
sh -c "$${SANDBOX_DOWN}"
|
|
sudo tar czf $@.tmp -C $(SANDBOX) .
|
|
mv $@.tmp $@
|
|
|
|
|
|
# Usage:
|
|
# (eval (call build_rpm,package_name))
|
|
define build_rpm
|
|
$(BUILD_DIR)/packages/rpm/repo$2.done: $(BUILD_DIR)/packages/rpm/$1.done
|
|
$(BUILD_DIR)/packages/rpm/repo$2.done: $(BUILD_DIR)/packages/rpm/$1-repocleanup.done
|
|
|
|
# You can use package name as a target, for example: make ruby21-rubygem-astute
|
|
# It will build astute rpm package
|
|
$1-rpm: $(BUILD_DIR)/packages/rpm/$1.done
|
|
|
|
$(BUILD_DIR)/packages/rpm/$1.done: SANDBOX:=$(BUILD_DIR)/packages/rpm/SANDBOX/$1
|
|
$(BUILD_DIR)/packages/rpm/$1.done: export SANDBOX_DOWN:=$$(SANDBOX_DOWN)
|
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/source_$1.done
|
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/packages/rpm/buildd.tar.gz
|
|
|
|
ifneq (late,$(findstring late,$2))
|
|
$(BUILD_DIR)/packages/rpm/$1.done: SPECFILE:=$(BUILD_DIR)/repos/$1/specs/$1.spec
|
|
$(BUILD_DIR)/repos/$1/specs/$1.spec: $(BUILD_DIR)/repos/repos.done
|
|
$(BUILD_DIR)/repos/$1/specs/$1.spec: $(BUILD_DIR)/repos/$1.done
|
|
$(BUILD_DIR)/packages/rpm/$1.done: $(BUILD_DIR)/repos/$1/specs/$1.spec
|
|
else
|
|
$(BUILD_DIR)/packages/rpm/$1.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/$1.spec
|
|
endif
|
|
|
|
$(BUILD_DIR)/packages/rpm/$1.done:
|
|
mkdir -p $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
|
mkdir -p $$(SANDBOX) && \
|
|
sudo tar xzf $(BUILD_DIR)/packages/rpm/buildd.tar.gz -C $$(SANDBOX) && \
|
|
sudo chroot $$(SANDBOX) bash -c "(mkdir -p /tmp/user/0)"
|
|
sudo mount --bind /proc $$(SANDBOX)/proc && \
|
|
sudo mount --bind /dev $$(SANDBOX)/dev && \
|
|
sudo mount --bind $$(LOCAL_MIRROR) $$(SANDBOX)/mirrors && \
|
|
mkdir -p $$(SANDBOX)/tmp/SOURCES && \
|
|
sudo cp -r $(BUILD_DIR)/packages/sources/$1/* $$(SANDBOX)/tmp/SOURCES
|
|
-test -f $(BUILD_DIR)/packages/sources/$1/changelog && cat $(BUILD_DIR)/packages/sources/$1/changelog >> $$(SPECFILE)
|
|
sudo cp $$(SPECFILE) $$(SANDBOX)/tmp && \
|
|
sudo chroot $$(SANDBOX) yum-builddep -y /tmp/$1.spec
|
|
test -f $$(SANDBOX)/tmp/SOURCES/version && \
|
|
sudo chroot $$(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" --define "release `awk -F'=' '/RPMRELEASE/ {print $$$$2}' $$(SANDBOX)/tmp/SOURCES/version`" -ba /tmp/$1.spec || \
|
|
sudo chroot $$(SANDBOX) rpmbuild --nodeps --define "_topdir /tmp" -ba /tmp/$1.spec
|
|
cp $$(SANDBOX)/tmp/RPMS/*/*.rpm $(BUILD_DIR)/packages/rpm/RPMS/x86_64
|
|
sudo sh -c "$$$${SANDBOX_DOWN}"
|
|
$$(ACTION.TOUCH)
|
|
|
|
ifneq (late,$(findstring late,$2))
|
|
$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: SPECFILE:=$(BUILD_DIR)/repos/$1/specs/$1.spec
|
|
$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: $(BUILD_DIR)/packages/source_$1.done
|
|
else
|
|
$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: SPECFILE:=$(SOURCE_DIR)/packages/rpm/specs/$1.spec
|
|
endif
|
|
$(BUILD_DIR)/packages/rpm/$1-repocleanup.done: $(BUILD_DIR)/mirror/centos/mos-repo.done
|
|
python $(SOURCE_DIR)/packages/rpm/genpkgnames.py $$(SPECFILE) | xargs -I{} sudo find $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages -type f -regex '.*/{}-[^-]+-[^-]+' -delete
|
|
$$(ACTION.TOUCH)
|
|
endef
|
|
|
|
|
|
packages_list:=\
|
|
astute \
|
|
fuel-agent \
|
|
fuel-library$(FUEL_LIBRARY_VERSION) \
|
|
fuel-main \
|
|
fuel-nailgun \
|
|
fuel-ostf \
|
|
fuel-ui \
|
|
fuelmenu \
|
|
nailgun-agent \
|
|
network-checker \
|
|
python-fuelclient \
|
|
shotgun
|
|
|
|
$(eval $(foreach pkg,$(packages_list),$(call build_rpm,$(pkg))$(NEWLINE)))
|
|
|
|
$(BUILD_DIR)/packages/rpm/repo.done:
|
|
find $(BUILD_DIR)/packages/rpm/RPMS -name '*.rpm' -exec cp -u {} $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)/Packages \;
|
|
createrepo -g $(LOCAL_MIRROR_MOS_CENTOS)/comps.xml \
|
|
-o $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL) $(LOCAL_MIRROR_MOS_CENTOS_OS_BASEURL)
|
|
$(ACTION.TOUCH)
|
|
|
|
$(BUILD_DIR)/packages/rpm/build.done:
|
|
ifeq (1,$(strip $(BUILD_PACKAGES)))
|
|
$(BUILD_DIR)/packages/rpm/build.done: $(BUILD_DIR)/packages/rpm/repo.done
|
|
endif
|
|
$(ACTION.TOUCH)
|