image: use the merged package directory to resolve dependencies for per-device rootfs
authorFelix Fietkau <nbd@nbd.name>
Mon, 1 Aug 2016 09:13:11 +0000 (11:13 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 1 Aug 2016 09:13:38 +0000 (11:13 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
include/image.mk

index 90ab88d..415618d 100644 (file)
@@ -290,17 +290,29 @@ mkfs_packages_add = $(filter-out -%,$(mkfs_packages))
 mkfs_packages_remove = $(patsubst -%,%,$(filter -%,$(mkfs_packages)))
 mkfs_cur_target_dir = $(call mkfs_target_dir,pkg=$(target_params))
 
+opkg_target = \
+       $(call opkg,$(mkfs_cur_target_dir)) \
+               -f $(mkfs_cur_target_dir).conf \
+               -l $(mkfs_cur_target_dir).tmp
+
 target-dir-%: FORCE
-       rm -rf $(mkfs_cur_target_dir)
+       rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).opkg
        $(CP) $(TARGET_DIR) $(mkfs_cur_target_dir)
+       mv $(mkfs_cur_target_dir)/etc/opkg $(mkfs_cur_target_dir).opkg
+       echo 'src default file://$(PACKAGE_DIR_ALL)' > $(mkfs_cur_target_dir).conf
        $(if $(mkfs_packages_add), \
-               $(call opkg,$(mkfs_cur_target_dir)) install \
+               $(opkg_target) update && \
+               $(opkg_target) install \
                        $(call opkg_package_files,$(mkfs_packages_add)))
        $(if $(mkfs_packages_remove), \
                $(call opkg,$(mkfs_cur_target_dir)) remove \
                        $(mkfs_packages_remove))
        $(call Image/mkfs/prepare,$(mkfs_cur_target_dir))
        $(call prepare_rootfs,$(mkfs_cur_target_dir))
+       mv $(mkfs_cur_target_dir).opkg $(mkfs_cur_target_dir)/etc/opkg
+       rm -rf \
+               $(mkfs_cur_target_dir).conf \
+               $(mkfs_cur_target_dir).tmp
 
 $(KDIR)/root.%: kernel_prepare
        $(call Image/mkfs/$(word 1,$(target_params)),$(target_params))