- add a helper script to generate opkg.conf, attempt to detect package architecture from packages/ - fix package defaults when no package override is given, IB previously aggregated the defautls of all profiles - introduce a repositories.conf, allows using remote opkg repositories in imagebuilder
SVN-Revision: 22978
This commit is contained in:
parent
91118a9500
commit
699876fa6b
4 changed files with 56 additions and 10 deletions
|
@ -22,15 +22,18 @@ all: compile
|
||||||
|
|
||||||
$(BIN_DIR)/$(IB_NAME).tar.bz2: clean
|
$(BIN_DIR)/$(IB_NAME).tar.bz2: clean
|
||||||
rm -rf $(PKG_BUILD_DIR)
|
rm -rf $(PKG_BUILD_DIR)
|
||||||
mkdir -p $(IB_KDIR) $(PKG_BUILD_DIR)/staging_dir/host $(PKG_BUILD_DIR)/target
|
mkdir -p $(IB_KDIR) $(PKG_BUILD_DIR)/staging_dir/host \
|
||||||
|
$(PKG_BUILD_DIR)/target $(PKG_BUILD_DIR)/scripts
|
||||||
-cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config
|
-cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config
|
||||||
$(CP) \
|
$(CP) \
|
||||||
$(INCLUDE_DIR) $(SCRIPT_DIR) \
|
$(INCLUDE_DIR) $(SCRIPT_DIR) \
|
||||||
$(TOPDIR)/rules.mk \
|
$(TOPDIR)/rules.mk \
|
||||||
./files/Makefile \
|
./files/Makefile \
|
||||||
|
./files/repositories.conf \
|
||||||
$(TMP_DIR)/.targetinfo \
|
$(TMP_DIR)/.targetinfo \
|
||||||
$(TMP_DIR)/.packageinfo \
|
$(TMP_DIR)/.packageinfo \
|
||||||
$(PKG_BUILD_DIR)/
|
$(PKG_BUILD_DIR)/
|
||||||
|
$(CP) ./files/opkg-generate-config.sh $(PKG_BUILD_DIR)/scripts/
|
||||||
$(CP) $(PACKAGE_DIR) $(PKG_BUILD_DIR)/packages
|
$(CP) $(PACKAGE_DIR) $(PKG_BUILD_DIR)/packages
|
||||||
$(CP) $(STAGING_DIR_HOST)/bin $(PKG_BUILD_DIR)/staging_dir/host/
|
$(CP) $(STAGING_DIR_HOST)/bin $(PKG_BUILD_DIR)/staging_dir/host/
|
||||||
$(CP) $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/
|
$(CP) $(TOPDIR)/target/linux $(PKG_BUILD_DIR)/target/
|
||||||
|
|
|
@ -86,19 +86,12 @@ _call_info: FORCE
|
||||||
$(TOPDIR)/tmp/opkg.conf: FORCE
|
$(TOPDIR)/tmp/opkg.conf: FORCE
|
||||||
@mkdir -p $(TOPDIR)/tmp
|
@mkdir -p $(TOPDIR)/tmp
|
||||||
@mkdir -p $(TARGET_DIR)/tmp
|
@mkdir -p $(TARGET_DIR)/tmp
|
||||||
@echo 'dest root /' > $@
|
@$(TOPDIR)/scripts/opkg-generate-config.sh $(TARGET_DIR)
|
||||||
@echo 'src packages file:$(PACKAGE_DIR)' >> $@
|
|
||||||
@echo 'arch all 100' >> $@
|
|
||||||
ifneq ($(CONFIG_TARGET_adm5120),y)
|
|
||||||
@echo 'arch $(BOARD) 200' >> $@
|
|
||||||
else
|
|
||||||
@echo 'arch $(BOARD)_$(ARCH) 200' >> $@
|
|
||||||
endif
|
|
||||||
@echo 'option offline_root $(TARGET_DIR)' >> $@
|
|
||||||
|
|
||||||
BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $(USER_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
|
BUILD_PACKAGES:=$(sort $(DEFAULT_PACKAGES) $(USER_PACKAGES) $($(USER_PROFILE)_PACKAGES) kernel)
|
||||||
# "-pkgname" in the package list means remove "pkgname" from the package list
|
# "-pkgname" in the package list means remove "pkgname" from the package list
|
||||||
BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
|
BUILD_PACKAGES:=$(filter-out $(filter -%,$(BUILD_PACKAGES)) $(patsubst -%,%,$(filter -%,$(BUILD_PACKAGES))),$(BUILD_PACKAGES))
|
||||||
|
PACKAGES:=
|
||||||
|
|
||||||
_call_image:
|
_call_image:
|
||||||
echo 'Building images for $(BOARD)$(if $($(USER_PROFILE)_NAME), - $($(USER_PROFILE)_NAME))'
|
echo 'Building images for $(BOARD)$(if $($(USER_PROFILE)_NAME), - $($(USER_PROFILE)_NAME))'
|
||||||
|
|
45
target/imagebuilder/files/opkg-generate-config.sh
Executable file
45
target/imagebuilder/files/opkg-generate-config.sh
Executable file
|
@ -0,0 +1,45 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
TOPDIR="$(pwd)"
|
||||||
|
TARGETDIR="${1}"
|
||||||
|
|
||||||
|
[ -f "$TOPDIR/scripts/${0##*/}" ] || {
|
||||||
|
echo "Please execute within the toplevel directory" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Try to find package architecture from packages directory
|
||||||
|
PKGARCH=
|
||||||
|
for pkg in $TOPDIR/packages/*.ipk; do
|
||||||
|
if [ -f "$pkg" ]; then
|
||||||
|
PKGARCH="${pkg##*_}"
|
||||||
|
PKGARCH="${PKGARCH%.ipk}"
|
||||||
|
[ "$PKGARCH" = all ] || break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Try to find package architecture from the target directory
|
||||||
|
[ -n "$PKGARCH" ] || {
|
||||||
|
PKGARCH="${TARGETDIR##*/root-}"
|
||||||
|
[ "$PKGARCH" != "$TARGETDIR" ] || {
|
||||||
|
echo "Cannot determine package architecture" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rm -f $TOPDIR/tmp/opkg.conf
|
||||||
|
|
||||||
|
[ -f $TOPDIR/repositories.conf ] && \
|
||||||
|
$TOPDIR/staging_dir/host/bin/sed \
|
||||||
|
-n -e "s/\$A/$PKGARCH/g" -e "/^[[:space:]*]src/p" \
|
||||||
|
$TOPDIR/repositories.conf > $TOPDIR/tmp/opkg.conf
|
||||||
|
|
||||||
|
cat <<EOT >> $TOPDIR/tmp/opkg.conf
|
||||||
|
dest root /
|
||||||
|
arch all 100
|
||||||
|
arch $PKGARCH 200
|
||||||
|
option offline_root $TARGETDIR
|
||||||
|
src imagebuilder file:$TOPDIR/packages
|
||||||
|
EOT
|
||||||
|
|
||||||
|
exit 0
|
5
target/imagebuilder/files/repositories.conf
Normal file
5
target/imagebuilder/files/repositories.conf
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
## Place your custom repositories here, they must match the architecture and version.
|
||||||
|
## The special placeholder "$A" can be used to specify the current package architecture.
|
||||||
|
|
||||||
|
# src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/$A/packages
|
||||||
|
# src custom file:///usr/src/openwrt/bin/$A/packages
|
Loading…
Reference in a new issue