Add support for equivs packages
- Add hooks to run equivs-build on files living in packages/equivs. This
gets used to make fake versions of packages to help out with dependency
hell.
Change-Id: I1c43774da6e8e49b122a374e560c3f19124cea44
diff --git a/packages.mk b/packages.mk
index 62c936c..d3c9ddc 100644
--- a/packages.mk
+++ b/packages.mk
@@ -15,7 +15,9 @@
ARM64_PACKAGE_NAMES := \
imx-gpu-viv
-ALL_PACKAGE_NAMES := $(ALLARCH_PACKAGE_NAMES) $(ARM64_PACKAGE_NAMES)
+EQUIVS_PACKAGE_NAMES := $(notdir $(shell find $(ROOTDIR)/packages/equivs -maxdepth 1 -type f))
+
+ALL_PACKAGE_NAMES := $(ALLARCH_PACKAGE_NAMES) $(ARM64_PACKAGE_NAMES) $(EQUIVS_PACKAGE_NAMES)
BUILDPACKAGE_CMD := dpkg-buildpackage -b -rfakeroot -us -uc -tc
@@ -39,12 +41,21 @@
$(call make-package-target,$1)
endef
+define make-equivs-package-target
+$(PRODUCT_OUT)/.$1: $(ROOTDIR)/packages/equivs/$1
+ cd $(PRODUCT_OUT); equivs-build $$<
+ touch $$@
+endef
+
# Generate ARM64 targets
$(foreach package,$(ARM64_PACKAGE_NAMES),$(eval $(call make-arm64-package-target,$(package))))
# Generate ALL arch targets
$(foreach package,$(ALLARCH_PACKAGE_NAMES),$(eval $(call make-allarch-package-target,$(package))))
+# Generate EQUIVS targets
+$(foreach package,$(EQUIVS_PACKAGE_NAMES),$(eval $(call make-equivs-package-target,$(package))))
+
packages:: $(foreach package,$(ALL_PACKAGE_NAMES),$(PRODUCT_OUT)/.$(package))
.PHONY:: packages
diff --git a/prereqs.mk b/prereqs.mk
index 63ed3f8..156b758 100644
--- a/prereqs.mk
+++ b/prereqs.mk
@@ -14,6 +14,7 @@
debian-archive-keyring \
debootstrap \
device-tree-compiler \
+ equivs \
fakeroot \
genext2fs \
kpartx \
diff --git a/rootfs.mk b/rootfs.mk
index 16597a3..e78f5cb 100644
--- a/rootfs.mk
+++ b/rootfs.mk
@@ -104,7 +104,7 @@
sudo mount -t tmpfs none $(ROOTFS_DIR)/tmp
sudo cp $(PRODUCT_OUT)/*.deb $(ROOTFS_DIR)/tmp/
- sudo chroot $(ROOTFS_DIR) bash -c 'apt-get install --no-install-recommends -y /tmp/*.deb'
+ sudo chroot $(ROOTFS_DIR) bash -c 'apt-get install --allow-downgrades --no-install-recommends -y /tmp/*.deb'
sudo umount $(ROOTFS_DIR)/tmp
sudo umount $(ROOTFS_DIR)/boot