IB: use online repositories

Change the IB packaging to only embed libc, kernel and kmod packages by default
and generate repositories.conf to refer to the remote package repositories.

Introduce a new config option CONFIG_IB_STANDALONE which restores the old
behaviour of building self contained IB archives.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 45772
v19.07.3_mercusys_ac12_duma
Jo-Philipp Wich 9 years ago
parent 4d96170c32
commit 6c21bcaa65

@ -7,4 +7,10 @@ config IB
with precompiled packages, kernel image and image building tools.
You can use it to generate custom images without compiling anything
config IB_STANDALONE
bool "Include package repositories"
depends on IB
help
By default, the ImageBuilder will use the online package repositories
to fetch additional .ipk archives. Enabling this option will cause
the ImageBuilder to embed all built packages locally instead.

@ -9,6 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/host.mk
include $(INCLUDE_DIR)/version.mk
include $(INCLUDE_DIR)/feeds.mk
override MAKEFLAGS=
@ -33,8 +34,38 @@ $(BIN_DIR)/$(IB_NAME).tar.bz2: clean
$(TMP_DIR)/.targetinfo \
$(TMP_DIR)/.packageinfo \
$(PKG_BUILD_DIR)/
ifeq ($(CONFIG_IB_STANDALONE),)
echo '## Remote package repositories' >> $(PKG_BUILD_DIR)/repositories.conf
ifeq ($(CONFIG_PER_FEED_REPO),)
echo "src/gz %n %U" >> $(PKG_BUILD_DIR)/repositories.conf
else
for d in base $(FEEDS_ENABLED); do \
echo "src/gz %n_$$d %U/$$d" >> $(PKG_BUILD_DIR)/repositories.conf; \
done
ifneq ($(CONFIG_PER_FEED_REPO_ADD_DISABLED),)
for d in $(FEEDS_DISABLED); do \
echo "$(if $(CONFIG_PER_FEED_REPO_ADD_COMMENTED),# )src/gz %n_$$d %U/$$d" >> $(PKG_BUILD_DIR)/repositories.conf; \
done
endif
endif
endif
echo '## This is the local package repository, do not remove!' >> $(PKG_BUILD_DIR)/repositories.conf
echo 'src imagebuilder file:packages' >> $(PKG_BUILD_DIR)/repositories.conf
$(VERSION_SED) $(PKG_BUILD_DIR)/repositories.conf
ifeq ($(CONFIG_IB_STANDALONE),)
(cd $(PACKAGE_DIR); $(FIND) -type f -name 'libc_*.ipk' -or -name 'kernel_*.ipk' -or -name 'kmod-*.ipk') | \
while read path; do \
mkdir -p "$(PKG_BUILD_DIR)/packages/$${path%/*}"; \
cp "$(PACKAGE_DIR)/$$path" "$(PKG_BUILD_DIR)/packages/$$path"; \
done
else
$(CP) $(PACKAGE_DIR) $(PKG_BUILD_DIR)/packages
endif
$(CP) $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/
if [ -d $(TOPDIR)/staging_dir/host/lib/grub ]; then \
$(CP) $(TOPDIR)/staging_dir/host/lib/grub/ $(PKG_BUILD_DIR)/staging_dir/host/lib; \

@ -107,7 +107,7 @@ _call_image:
$(MAKE) package_index; \
else \
mkdir -p $(TARGET_DIR)/tmp; \
$(OPKG) update; \
$(OPKG) update || true; \
fi
$(MAKE) package_install
ifneq ($(USER_FILES),)
@ -123,7 +123,7 @@ package_index: FORCE
(cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages && \
gzip -9c Packages > Packages.gz \
) >/dev/null 2>/dev/null
$(OPKG) update
$(OPKG) update || true
package_install: FORCE
@echo

@ -2,5 +2,3 @@
# src/gz %n %U
# src custom file:///usr/src/openwrt/bin/%T/packages
## This is the local package repository, do not remove!
src imagebuilder file:packages

Loading…
Cancel
Save