From 00a413b8330ece3583cf23458b4fe0179698de8e Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Mon, 14 Feb 2022 12:22:16 +0100 Subject: [PATCH] build: replace OPKG with APK The build system now uses APK to create firmware images. Signed-off-by: Paul Spooren --- .gitignore | 2 + README.md | 2 +- include/download.mk | 2 +- include/feeds.mk | 12 +-- include/image.mk | 24 ++--- include/kernel.mk | 6 +- include/package-defaults.mk | 2 +- include/package-ipkg.mk | 115 +++++++++++++--------- include/rootfs.mk | 31 ++---- include/target.mk | 2 +- package/Makefile | 52 +++++----- package/base-files/Makefile | 18 ++-- package/base-files/files/lib/functions.sh | 80 ++++++++++----- package/kernel/linux/Makefile | 1 + package/libs/toolchain/Makefile | 4 +- package/network/services/hostapd/Makefile | 6 +- package/system/fstools/files/snapshot | 12 +-- rules.mk | 2 + scripts/feeds | 4 +- target/imagebuilder/Makefile | 25 ++--- target/imagebuilder/files/Makefile | 37 +++---- 21 files changed, 232 insertions(+), 207 deletions(-) diff --git a/.gitignore b/.gitignore index a80cdbbea3..76b42e5015 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,8 @@ /*.patch /llvm-bpf* key-build* +private-key.pem +public-key.pem *.orig *.rej *~ diff --git a/README.md b/README.md index 2eff292321..6604b57b81 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ make4.1+ perl python3.6+ rsync subversion unzip which The main repository uses multiple sub-repositories to manage packages of different categories. All packages are installed via the OpenWrt package -manager called `opkg`. If you're looking to develop the web interface or port +manager called `apk`. If you're looking to develop the web interface or port packages to OpenWrt, please find the fitting repository below. * [LuCI Web Interface](https://github.com/openwrt/luci): Modern and modular diff --git a/include/download.mk b/include/download.mk index 76bd374cf7..08f84f5de7 100644 --- a/include/download.mk +++ b/include/download.mk @@ -10,7 +10,7 @@ LEDE_GIT = $(PROJECT_GIT) ifdef PKG_SOURCE_VERSION ifndef PKG_VERSION - PKG_VERSION := $(if $(PKG_SOURCE_DATE),$(PKG_SOURCE_DATE)-)$(call version_abbrev,$(PKG_SOURCE_VERSION)) + PKG_VERSION := 0_git$(subst -,,$(subst .,,$(PKG_SOURCE_DATE))) endif PKG_SOURCE_SUBDIR ?= $(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE ?= $(PKG_SOURCE_SUBDIR).tar.xz diff --git a/include/feeds.mk b/include/feeds.mk index 632fecb4a3..a27aa709c4 100644 --- a/include/feeds.mk +++ b/include/feeds.mk @@ -14,9 +14,9 @@ ifneq ($(CONFIG_PER_FEED_REPO),) PACKAGE_SUBDIRS += $(foreach FEED,$(FEEDS_AVAILABLE),$(OUTPUT_DIR)/packages/$(ARCH_PACKAGES)/$(FEED)) endif -opkg_package_files = $(wildcard \ +apk_package_files = $(wildcard \ $(foreach dir,$(PACKAGE_SUBDIRS), \ - $(foreach pkg,$(1), $(dir)/$(pkg)_*.ipk))) + $(foreach pkg,$(1), $(dir)/$(pkg)_*.apk))) # 1: package name define FeedPackageDir @@ -30,14 +30,14 @@ endef # 1: destination file define FeedSourcesAppend ( \ - echo 'src/gz %d_core %U/targets/%S/packages'; \ + echo '%U/targets/%S/packages/packages.adb'; \ $(strip $(if $(CONFIG_PER_FEED_REPO), \ - echo 'src/gz %d_base %U/packages/%A/base'; \ + echo '%U/packages/%A/base/packages.adb'; \ $(if $(filter %SNAPSHOT-y,$(VERSION_NUMBER)-$(CONFIG_BUILDBOT)), \ - echo 'src/gz %d_kmods %U/targets/%S/kmods/$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)';) \ + echo '%U/targets/%S/kmods/$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)/packages.adb';) \ $(foreach feed,$(FEEDS_AVAILABLE), \ $(if $(CONFIG_FEED_$(feed)), \ - echo '$(if $(filter m,$(CONFIG_FEED_$(feed))),# )src/gz %d_$(feed) %U/packages/%A/$(feed)';)))) \ + echo '$(if $(filter m,$(CONFIG_FEED_$(feed))),# )%U/packages/%A/$(feed)/packages.adb';)))) \ ) >> $(1) endef diff --git a/include/image.mk b/include/image.mk index 275a0adcac..ce82acd763 100644 --- a/include/image.mk +++ b/include/image.mk @@ -272,7 +272,7 @@ define Image/mkfs/ext4 endef define Image/Manifest - $(call opkg,$(TARGET_DIR_ORIG)) list-installed > \ + $(call apk,$(TARGET_DIR_ORIG)) list --quiet --manifest | sort > \ $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED)).manifest endef @@ -312,25 +312,19 @@ mkfs_packages_add = $(foreach pkg,$(filter-out -%,$(mkfs_packages)),$(pkg)$(call mkfs_packages_remove = $(foreach pkg,$(patsubst -%,%,$(filter -%,$(mkfs_packages))),$(pkg)$(call GetABISuffix,$(pkg))) 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 +apk_target = $(call apk,$(mkfs_cur_target_dir)) target-dir-%: FORCE - rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).opkg + rm -rf $(mkfs_cur_target_dir) $(mkfs_cur_target_dir).apk $(CP) $(TARGET_DIR_ORIG) $(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 + mv $(mkfs_cur_target_dir)/etc/apk/repositories $(mkfs_cur_target_dir).repositories $(if $(mkfs_packages_remove), \ - -$(call opkg,$(mkfs_cur_target_dir)) remove \ - $(mkfs_packages_remove)) - $(if $(call opkg_package_files,$(mkfs_packages_add)), \ - $(opkg_target) update && \ - $(opkg_target) install \ - $(call opkg_package_files,$(mkfs_packages_add))) - -$(CP) -T $(mkfs_cur_target_dir).opkg/ $(mkfs_cur_target_dir)/etc/opkg/ - rm -rf $(mkfs_cur_target_dir).opkg $(mkfs_cur_target_dir).conf + $(apk_target) del $(mkfs_packages_remove)) + $(if $(mkfs_packages_add), \ + $(apk_target) add $(mkfs_packages_add)) + mv $(mkfs_cur_target_dir).repositories $(mkfs_cur_target_dir)/etc/apk/repositories $(call prepare_rootfs,$(mkfs_cur_target_dir),$(TOPDIR)/files) + $(apk_target) list --quiet --manifest | sort > $(mkfs_cur_target_dir).manifest $(KDIR)/root.%: kernel_prepare $(call Image/mkfs/$(word 1,$(target_params)),$(target_params)) diff --git a/include/kernel.mk b/include/kernel.mk index e4074a48f4..e940b2eb63 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -206,8 +206,8 @@ define KernelPackage SECTION:=kernel CATEGORY:=Kernel modules DESCRIPTION:=$(DESCRIPTION) - EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)) - VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),+$(PKG_VERSION))-$(if $(PKG_RELEASE),$(PKG_RELEASE),$(LINUX_RELEASE)) + EXTRA_DEPENDS:=kernel-$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC) + VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),+$(PKG_VERSION))-$(if $(PKG_RELEASE),r$(PKG_RELEASE),r$(LINUX_RELEASE)) PKGFLAGS:=$(PKGFLAGS) $(call KernelPackage/$(1)) $(call KernelPackage/$(1)/$(BOARD)) @@ -264,7 +264,7 @@ $(call KernelPackage/$(1)/config) endif $$(eval $$(call BuildPackage,kmod-$(1))) - $$(IPKG_kmod-$(1)): $$(wildcard $$(call version_filter,$$(FILES))) + $$(APK_kmod-$(1)): $$(wildcard $$(call version_filter,$$(FILES))) endef diff --git a/include/package-defaults.mk b/include/package-defaults.mk index 3ee3a965f2..a25f8c30eb 100644 --- a/include/package-defaults.mk +++ b/include/package-defaults.mk @@ -23,7 +23,7 @@ define Package/Default SOURCE:=$(patsubst $(TOPDIR)/%,%,$(CURDIR)) ifneq ($(PKG_VERSION),) ifneq ($(PKG_RELEASE),) - VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) + VERSION:=$(PKG_VERSION)-r$(PKG_RELEASE) else VERSION:=$(PKG_VERSION) endif diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index 3063a86a28..ec4d42608c 100644 --- a/include/package-ipkg.mk +++ b/include/package-ipkg.mk @@ -1,16 +1,11 @@ # SPDX-License-Identifier: GPL-2.0-only # -# Copyright (C) 2006-2020 OpenWrt.org +# Copyright (C) 2006-2022 OpenWrt.org ifndef DUMP include $(INCLUDE_DIR)/feeds.mk endif -IPKG_REMOVE:= \ - $(SCRIPT_DIR)/ipkg-remove - -IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg - # Generates a make statement to return a wildcard for candidate ipkg files # 1: package name define gen_ipkg_wildcard @@ -20,7 +15,9 @@ endef # 1: package name # 2: candidate ipk files define remove_ipkg_files - $(if $(strip $(2)),$(IPKG_REMOVE) $(1) $(2)) +for pkg in $(2); do \ + $(STAGING_DIR_HOST)/bin/apk adbdump "$$pkg" | grep "^ name: $(1)" && rm "$$pkg" || true; \ +done endef # 1: package name @@ -29,7 +26,7 @@ endef # 4: file is a script define BuildIPKGVariable ifdef Package/$(1)/$(2) - $$(IPKG_$(1)) : VAR_$(2)$(3)=$$(Package/$(1)/$(2)) + $$(APK_$(1)) : VAR_$(2)$(3)=$$(Package/$(1)/$(2)) $(call shexport,Package/$(1)/$(2)) $(1)_COMMANDS += echo "$$$$$$$$$(call shvar,Package/$(1)/$(2))" > $(2)$(3); $(if $(4),chmod 0755 $(2)$(3);) endif @@ -50,7 +47,7 @@ strip_deps=$(strip $(subst +,,$(filter-out @%,$(1)))) filter_deps=$(foreach dep,$(call strip_deps,$(1)),$(if $(findstring :,$(dep)),$(call dep_if,$(dep)),$(dep))) define AddDependency - $$(if $(1),$$(if $(2),$$(foreach pkg,$(1),$$(IPKG_$$(pkg))): $$(foreach pkg,$(2),$$(IPKG_$$(pkg))))) + $$(if $(1),$$(if $(2),$$(foreach pkg,$(1),$$(APK_$$(pkg))): $$(foreach pkg,$(2),$$(APK_$$(pkg))))) endef define FixupReverseDependencies @@ -101,8 +98,9 @@ ifeq ($(DUMP),) define BuildTarget/ipkg ABIV_$(1):=$(call FormatABISuffix,$(1),$(ABI_VERSION)) PDIR_$(1):=$(call FeedPackageDir,$(1)) - IPKG_$(1):=$$(PDIR_$(1))/$(1)$$(ABIV_$(1))_$(VERSION)_$(PKGARCH).ipk + APK_$(1):=$$(PDIR_$(1))/$(1)$$(ABIV_$(1))_$(VERSION).apk IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg-$(PKGARCH)/$(1) + ADIR_$(1):=$(PKG_BUILD_DIR)/apk-$(PKGARCH)/$(1) KEEP_$(1):=$(strip $(call Package/$(1)/conffiles)) TARGET_VARIANT:=$$(if $(ALL_VARIANTS),$$(if $$(VARIANT),$$(filter-out *,$$(VARIANT)),$(firstword $(ALL_VARIANTS)))) @@ -117,8 +115,8 @@ ifeq ($(DUMP),) ifdef do_install ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),) IPKGS += $(1) - $(_pkg_target)compile: $$(IPKG_$(1)) $(PKG_INFO_DIR)/$(1).provides $(PKG_BUILD_DIR)/.pkgdir/$(1).installed - prepare-package-install: $$(IPKG_$(1)) + $(_pkg_target)compile: $$(APK_$(1)) $(PKG_INFO_DIR)/$(1).provides $(PKG_BUILD_DIR)/.pkgdir/$(1).installed + prepare-package-install: $$(APK_$(1)) compile: $(STAGING_DIR_ROOT)/stamp/.$(1)_installed else $(if $(CONFIG_PACKAGE_$(1)),$$(info WARNING: skipping $(1) -- package not selected)) @@ -194,14 +192,14 @@ $$(call addfield,Depends,$$(Package/$(1)/DEPENDS) Installed-Size: 0 $(_endef) - $$(IPKG_$(1)) : export CONTROL=$$(Package/$(1)/CONTROL) - $$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description) - $$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG) - $$(IPKG_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH) - $(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk - @rm -rf $$(IDIR_$(1)); \ - $$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1)))) - mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR) + $$(APK_$(1)) : export CONTROL=$$(Package/$(1)/CONTROL) + $$(APK_$(1)) : export DESCRIPTION=$$(Package/$(1)/description) + $$(APK_$(1)) : export PATH=$$(TARGET_PATH_PKG) + $$(APK_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH) + $(PKG_INFO_DIR)/$(1).provides $$(APK_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk + rm -rf $$(IDIR_$(1)); \ + $$(call remove_ipkg_files,$(1),$$(call apk_package_files,$(call gen_ipkg_wildcard,$(1)))) + mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1)) $(PKG_INFO_DIR) $(call Package/$(1)/install,$$(IDIR_$(1))) $(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay) $(call Package/$(1)/install-overlay,$$(IDIR_$(1))/rootfs-overlay) @@ -227,28 +225,6 @@ $(_endef) ) || true \ ) endif - (cd $$(IDIR_$(1))/CONTROL; \ - ( \ - echo "$$$$CONTROL"; \ - printf "Description: "; echo "$$$$DESCRIPTION" | sed -e 's,^[[:space:]]*, ,g'; \ - ) > control; \ - chmod 644 control; \ - ( \ - echo "#!/bin/sh"; \ - echo "[ \"\$$$${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0"; \ - echo "[ -s "\$$$${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; \ - echo ". \$$$${IPKG_INSTROOT}/lib/functions.sh"; \ - echo "default_postinst \$$$$0 \$$$$@"; \ - ) > postinst; \ - ( \ - echo "#!/bin/sh"; \ - echo "[ -s "\$$$${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; \ - echo ". \$$$${IPKG_INSTROOT}/lib/functions.sh"; \ - echo "default_prerm \$$$$0 \$$$$@"; \ - ) > prerm; \ - chmod 0755 postinst prerm; \ - $($(1)_COMMANDS) \ - ) ifneq ($$(KEEP_$(1)),) @( \ @@ -263,12 +239,59 @@ $(_endef) ) endif - $(INSTALL_DIR) $$(PDIR_$(1)) - $(FAKEROOT) $(STAGING_DIR_HOST)/bin/bash $(SCRIPT_DIR)/ipkg-build -m "$(FILE_MODES)" $$(IDIR_$(1)) $$(PDIR_$(1)) - @[ -f $$(IPKG_$(1)) ] + $(INSTALL_DIR) $$(PDIR_$(1))/tmp + mkdir -p $$(ADIR_$(1))/ + mkdir -p $$(IDIR_$(1))/lib/apk/packages/ + + (cd $$(ADIR_$(1)); $($(1)_COMMANDS)) + + ( \ + echo "#!/bin/sh"; \ + echo "[ \"\$$$${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0"; \ + echo "[ -s "\$$$${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; \ + echo ". \$$$${IPKG_INSTROOT}/lib/functions.sh"; \ + echo 'export root="$$$${IPKG_INSTROOT}"'; \ + echo 'export pkgname="$(1)"'; \ + echo "add_group_and_user"; \ + [ ! -f $$(ADIR_$(1))/postinst-pkg ] || cat "$$(ADIR_$(1))/postinst-pkg"; \ + echo "default_postinst"; \ + ) > $$(ADIR_$(1))/post-install; + + ( \ + echo "#!/bin/sh"; \ + echo "[ -s "\$$$${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; \ + echo ". \$$$${IPKG_INSTROOT}/lib/functions.sh"; \ + echo 'export root="$$$${IPKG_INSTROOT}"'; \ + echo 'export pkgname="$(1)"'; \ + [ ! -f $$(ADIR_$(1))/prerm-pkg ] || cat "$$(ADIR_$(1))/prerm-pkg"; \ + echo "default_prerm"; \ + ) > $$(ADIR_$(1))/pre-deinstall; + + if [ -n "$(USERID)" ]; then echo $(USERID) > $$(IDIR_$(1))/lib/apk/packages/$(1).rusers; fi; + if [ -n "$(ALTERNATIVES)" ]; then echo $(ALTERNATIVES) > $$(IDIR_$(1))/lib/apk/packages/$(1).alternatives; fi; + (cd $$(IDIR_$(1)) && find . -type f,l -printf "/%P\n" > $$(IDIR_$(1))/lib/apk/packages/$(1).list) + if [ -f $$(ADIR_$(1))/conffiles ]; then mv $$(ADIR_$(1))/conffiles $$(IDIR_$(1))/lib/apk/packages/$(1).conffiles; fi; + + $(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk mkpkg \ + --info "name:$(1)$$(ABIV_$(1))" \ + --info "version:$(VERSION)" \ + --info "description:" \ + --info "arch:$(PKGARCH)" \ + --info "license:$(LICENSE)" \ + --info "origin:$(SOURCE)" \ + --info "provides:$$(foreach prov,$$(filter-out $(1)$$(ABIV_$(1)),$(PROVIDES)$$(if $$(ABIV_$(1)), \ + $(1) $(foreach provide,$(PROVIDES),$(provide)$$(ABIV_$(1))))),$$(prov)=0 )" \ + --script "post-install:$$(ADIR_$(1))/post-install" \ + --script "pre-deinstall:$$(ADIR_$(1))/pre-deinstall" \ + --info "depends:$$(subst $$(comma),,$$(Package/$(1)/DEPENDS))" \ + --files "$$(IDIR_$(1))" \ + --output "$$(APK_$(1))" \ + --sign "$(BUILD_KEY_APK_SEC)" + + @[ -f $$(APK_$(1)) ] $(1)-clean: - $$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1)))) + $$(call remove_ipkg_files,$(1),$$(call apk_package_files,$(call gen_ipkg_wildcard,$(1)))) clean: $(1)-clean diff --git a/include/rootfs.mk b/include/rootfs.mk index f2ed648d2f..bee43799fe 100644 --- a/include/rootfs.mk +++ b/include/rootfs.mk @@ -31,17 +31,16 @@ ifdef CONFIG_USE_MKLIBS endef endif -# where to build (and put) .ipk packages -opkg = \ - IPKG_NO_SCRIPT=1 \ +apk = \ IPKG_INSTROOT=$(1) \ - TMPDIR=$(1)/tmp \ - $(STAGING_DIR_HOST)/bin/opkg \ - --offline-root $(1) \ - --force-postinstall \ - --add-dest root:/ \ - --add-arch all:100 \ - --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200 + $(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk \ + --root $(1) \ + --keys-dir $(TOPDIR) \ + --no-cache \ + --no-logfile \ + --force-no-chroot \ + --preserve-env \ + --repository file://$(PACKAGE_DIR_ALL)/packages.adb TARGET_DIR_ORIG := $(TARGET_ROOTFS_DIR)/root.orig-$(BOARD) @@ -68,14 +67,6 @@ define prepare_rootfs @mkdir -p $(1)/var/lock @( \ cd $(1); \ - for script in ./usr/lib/opkg/info/*.postinst; do \ - IPKG_INSTROOT=$(1) $$(command -v bash) $$script; \ - ret=$$?; \ - if [ $$ret -ne 0 ]; then \ - echo "postinst script $$script has failed with exit code $$ret" >&2; \ - exit 1; \ - fi; \ - done; \ for script in ./etc/init.d/*; do \ grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ if ! echo " $(3) " | grep -q " $$(basename $$script) "; then \ @@ -87,13 +78,11 @@ define prepare_rootfs fi; \ done || true \ ) - $(if $(SOURCE_DATE_EPOCH),sed -i "s/Installed-Time: .*/Installed-Time: $(SOURCE_DATE_EPOCH)/" $(1)/usr/lib/opkg/status) @-find $(1) -name CVS -o -name .svn -o -name .git -o -name '.#*' | $(XARGS) rm -rf + @-find $(1)/usr/cache/apk/ -name '*.apk' -delete rm -rf \ $(1)/boot \ $(1)/tmp/* \ - $(1)/usr/lib/opkg/info/*.postinst* \ - $(1)/usr/lib/opkg/lists/* \ $(1)/var/lock/*.lock $(call clean_ipkg,$(1)) $(call mklibs,$(1)) diff --git a/include/target.mk b/include/target.mk index 72fe493776..0e70ae1867 100644 --- a/include/target.mk +++ b/include/target.mk @@ -12,6 +12,7 @@ DEVICE_TYPE?=router # Default packages - the really basic set DEFAULT_PACKAGES:=\ base-files \ + apk \ ca-bundle \ dropbear \ fstools \ @@ -21,7 +22,6 @@ DEFAULT_PACKAGES:=\ logd \ mtd \ netifd \ - opkg \ uci \ uclient-fetch \ urandom-seed \ diff --git a/package/Makefile b/package/Makefile index 209be34674..04945f731a 100644 --- a/package/Makefile +++ b/package/Makefile @@ -53,29 +53,30 @@ $(curdir)/cleanup: $(TMP_DIR)/.build $(curdir)/merge: rm -rf $(PACKAGE_DIR_ALL) mkdir -p $(PACKAGE_DIR_ALL) - -$(foreach pdir,$(PACKAGE_SUBDIRS),$(if $(wildcard $(pdir)/*.ipk),ln -s $(pdir)/*.ipk $(PACKAGE_DIR_ALL);)) + -$(foreach pdir,$(PACKAGE_SUBDIRS),$(if $(wildcard $(pdir)/*.apk),ln -s $(pdir)/*.apk $(PACKAGE_DIR_ALL);)) $(curdir)/merge-index: $(curdir)/merge - (cd $(PACKAGE_DIR_ALL) && $(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages; ) + (cd $(PACKAGE_DIR_ALL) && $(STAGING_DIR_HOST)/bin/apk mkndx \ + --root $(TOPDIR) \ + --keys-dir $(TOPDIR) \ + --sign $(BUILD_KEY_APK_SEC) \ + --output packages.adb \ + *.apk; \ + ) ifndef SDK - $(curdir)/compile: $(curdir)/system/opkg/host/compile + $(curdir)/compile: $(curdir)/system/apk/host/compile endif -$(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DEVICE_ROOTFS),$(curdir)/merge-index) +$(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(curdir)/merge-index - find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755 rm -rf $(TARGET_DIR) $(TARGET_DIR_ORIG) mkdir -p $(TARGET_DIR)/tmp - $(file >$(TMP_DIR)/opkg_install_list,\ - $(call opkg_package_files,\ - $(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(pkg)$(call GetABISuffix,$(pkg))))) - $(call opkg,$(TARGET_DIR)) install $$(cat $(TMP_DIR)/opkg_install_list) - @for file in $(PACKAGE_INSTALL_FILES); do \ - [ -s $$file.flags ] || continue; \ - for flag in `cat $$file.flags`; do \ - $(call opkg,$(TARGET_DIR)) flag $$flag `cat $$file`; \ - done; \ - done || true + + $(file >$(TMP_DIR)/apk_install_list,\ + $(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(pkg)$(call GetABISuffix,$(pkg)))) + + $(call apk,$(TARGET_DIR)) add --initdb --arch $(ARCH_PACKAGES) $$(cat $(TMP_DIR)/apk_install_list) $(CP) $(TARGET_DIR) $(TARGET_DIR_ORIG) @@ -83,25 +84,16 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DE $(curdir)/index: FORCE @echo Generating package index... - @for d in $(PACKAGE_SUBDIRS); do ( \ + -for d in $(PACKAGE_SUBDIRS); do ( \ mkdir -p $$d; \ cd $$d || continue; \ - $(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages.manifest; \ - grep -vE '^(Maintainer|LicenseFiles|Source|SourceName|Require|SourceDateEpoch)' Packages.manifest > Packages; \ - case "$$(((64 + $$(stat -L -c%s Packages)) % 128))" in 110|111) \ - $(call ERROR_MESSAGE,WARNING: Applying padding in $$d/Packages to workaround usign SHA-512 bug!); \ - { echo ""; echo ""; } >> Packages;; \ - esac; \ - gzip -9nc Packages > Packages.gz; \ + $(STAGING_DIR_HOST)/bin/apk mkndx \ + --root $(TOPDIR) \ + --keys-dir $(TOPDIR) \ + --sign $(BUILD_KEY_APK_SEC) \ + --output packages.adb \ + *.apk; \ ); done -ifdef CONFIG_SIGNED_PACKAGES - @echo Signing package index... - @for d in $(PACKAGE_SUBDIRS); do ( \ - [ -d $$d ] && \ - cd $$d || continue; \ - $(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY); \ - ); done -endif $(curdir)/flags-install:= -j1 diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 914f0598ff..a95764d3b0 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -108,6 +108,10 @@ ifdef CONFIG_SIGNED_PACKAGES [ -s $(BUILD_KEY).ucert ] || \ $(STAGING_DIR_HOST)/bin/ucert -I -c $(BUILD_KEY).ucert -p $(BUILD_KEY).pub -s $(BUILD_KEY) + [ -s $(BUILD_KEY_APK_SEC) -a -s $(BUILD_KEY_APK_PUB) ] || \ + openssl ecparam -name prime256v1 -genkey -noout -out $(BUILD_KEY_APK_SEC); \ + openssl ec -in $(BUILD_KEY_APK_SEC) -pubout > $(BUILD_KEY_APK_PUB) + endef ifndef CONFIG_BUILDBOT @@ -115,6 +119,9 @@ ifndef CONFIG_BUILDBOT mkdir -p $(1)/etc/opkg/keys $(CP) $(BUILD_KEY).pub $(1)/etc/opkg/keys/`$(STAGING_DIR_HOST)/bin/usign -F -p $(BUILD_KEY).pub` + mkdir -p $(1)/etc/apk/keys + $(CP) $(BUILD_KEY_APK_PUB) $(1)/etc/apk/keys/ + endef endif endif @@ -217,15 +224,12 @@ endif cat $(BIN_DIR)/feeds.buildinfo >>$(1)/etc/build.feeds; \ cat $(BIN_DIR)/version.buildinfo >>$(1)/etc/build.version) - $(if $(CONFIG_CLEAN_IPKG),, \ - mkdir -p $(1)/etc/opkg; \ - $(call FeedSourcesAppend,$(1)/etc/opkg/distfeeds.conf); \ - $(VERSION_SED_SCRIPT) $(1)/etc/opkg/distfeeds.conf) - $(if $(CONFIG_IPK_FILES_CHECKSUMS),, \ - rm -f $(1)/sbin/pkg_check) - $(if $(CONFIG_TARGET_PREINIT_DISABLE_FAILSAFE), \ rm -f $(1)/etc/banner.failsafe,) + + mkdir -p $(1)/etc/apk/ + $(call FeedSourcesAppend,$(1)/etc/apk/repositories) + $(VERSION_SED_SCRIPT) $(1)/etc/apk/repositories endef ifneq ($(DUMP),1) diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index ee0c33845c..ef923c50a1 100644 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -178,17 +178,10 @@ config_list_foreach() { } default_prerm() { - local root="${IPKG_INSTROOT}" - local pkgname="$(basename ${1%.*})" - local ret=0 - - if [ -f "$root/usr/lib/opkg/info/${pkgname}.prerm-pkg" ]; then - ( . "$root/usr/lib/opkg/info/${pkgname}.prerm-pkg" ) - ret=$? - fi + update_alternatives remove local shell="$(command -v bash)" - for i in $(grep -s "^/etc/init.d/" "$root/usr/lib/opkg/info/${pkgname}.list"); do + for i in $(grep -s "^/etc/init.d/" "$root/lib/apk/packages/${pkgname}.list"); do if [ -n "$root" ]; then ${shell:-/bin/sh} "$root/etc/rc.common" "$root$i" disable else @@ -199,12 +192,13 @@ default_prerm() { fi done - return $ret + return 0 } add_group_and_user() { - local pkgname="$1" - local rusers="$(sed -ne 's/^Require-User: *//p' $root/usr/lib/opkg/info/${pkgname}.control 2>/dev/null)" + if [ -f "$root/lib/apk/packages/${pkgname}.rusers" ]; then + local rusers="$(cat $root/lib/apk/packages/${pkgname}.rusers)" + fi if [ -n "$rusers" ]; then local tuple oIFS="$IFS" @@ -254,18 +248,58 @@ add_group_and_user() { fi } -default_postinst() { - local root="${IPKG_INSTROOT}" - local pkgname="$(basename ${1%.*})" - local filelist="/usr/lib/opkg/info/${pkgname}.list" - local ret=0 - - add_group_and_user "${pkgname}" +update_alternatives() { + local action="$1" + + if [ -f "$root/lib/apk/packages/${pkgname}.alternatives" ]; then + for pkg_alt in $(cat $root/lib/apk/packages/${pkgname}.alternatives); do + local best_prio=0; + local best_src="/bin/busybox"; + pkg_prio=${pkg_alt%%:*}; + pkg_target=${pkg_alt#*:}; + pkg_target=${pkg_target%:*}; + pkg_src=${pkg_alt##*:}; + + if [ -e "$root/$target" ]; then + for alts in $root/lib/apk/packages/*.alternatives; do + for alt in $(cat $alts); do + prio=${alt%%:*}; + target=${alt#*:}; + target=${target%:*}; + src=${alt##*:}; + + if [ "$target" = "$pkg_target" ] && \ + [ "$src" != "$pkg_src" ] && \ + [ "$best_prio" -lt "$prio" ]; then + best_prio=$prio; + best_src=$src; + fi + done + done + fi - if [ -f "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" ]; then - ( . "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" ) - ret=$? + case "$action" in + install) + if [ "$best_prio" -lt "$pkg_prio" ]; then + ln -sf "$pkg_src" "$root/$pkg_target" + echo "add alternative: $pkg_target -> $pkg_src" + fi + ;; + remove) + if [ "$best_prio" -lt "$pkg_prio" ]; then + ln -sf "$best_src" "$root/$pkg_target" + echo "add alternative: $pkg_target -> $best_src" + fi + ;; + esac + done fi +} + +default_postinst() { + local filelist="$root/lib/apk/packages/${pkgname}.list" + + update_alternatives install if [ -d "$root/rootfs-overlay" ]; then cp -R $root/rootfs-overlay/. $root/ @@ -304,7 +338,7 @@ default_postinst() { fi done - return $ret + return 0 } include() { diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile index 9fa68d78f7..67063726b1 100644 --- a/package/kernel/linux/Makefile +++ b/package/kernel/linux/Makefile @@ -48,6 +48,7 @@ define Package/kernel DEFAULT:=y TITLE:=Virtual kernel package VERSION:=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC) + PROVIDES:="kernel-$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)" URL:=http://www.kernel.org/ PKG_FLAGS:=nonshared endef diff --git a/package/libs/toolchain/Makefile b/package/libs/toolchain/Makefile index 682efd1970..ba6c588b15 100644 --- a/package/libs/toolchain/Makefile +++ b/package/libs/toolchain/Makefile @@ -27,7 +27,7 @@ define Package/gcc/Default SECTION:=libs CATEGORY:=Base system URL:=http://gcc.gnu.org/ - VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE) + VERSION:=$(LIBGCC_VERSION)-r$(PKG_RELEASE) endef define Package/libgcc @@ -230,7 +230,7 @@ endef define Package/libc/Default SECTION:=libs CATEGORY:=Base system - VERSION:=$(LIBC_VERSION)-$(PKG_RELEASE) + VERSION:=$(LIBC_VERSION)-r$(PKG_RELEASE) DEPENDS:=+libgcc URL:=$(LIBC_URL) endef diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 584695786f..4627685b97 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -143,7 +143,7 @@ define Package/hostapd/Default TITLE:=IEEE 802.1x Authenticator URL:=http://hostap.epitest.fi/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus - EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE)) + EXTRA_DEPENDS:=hostapd-common=$(PKG_VERSION)-$(PKG_RELEASE) USERID:=network=101:network=101 PROVIDES:=hostapd CONFLICTS:=$(HOSTAPD_PROVIDERS) @@ -228,7 +228,7 @@ define Package/wpad/Default SUBMENU:=WirelessAPD TITLE:=IEEE 802.1x Auth/Supplicant DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus - EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE)) + EXTRA_DEPENDS:=hostapd-common=$(PKG_VERSION)-$(PKG_RELEASE) USERID:=network=101:network=101 URL:=http://hostap.epitest.fi/ PROVIDES:=hostapd wpa-supplicant @@ -344,7 +344,7 @@ define Package/wpa-supplicant/Default TITLE:=WPA Supplicant URL:=http://hostap.epitest.fi/wpa_supplicant/ DEPENDS:=$(DRV_DEPENDS) +hostapd-common +libubus - EXTRA_DEPENDS:=hostapd-common (=$(PKG_VERSION)-$(PKG_RELEASE)) + EXTRA_DEPENDS:=hostapd-common=$(PKG_VERSION)-$(PKG_RELEASE) USERID:=network=101:network=101 PROVIDES:=wpa-supplicant CONFLICTS:=$(SUPPLICANT_PROVIDERS) diff --git a/package/system/fstools/files/snapshot b/package/system/fstools/files/snapshot index a495e34345..a5e4b9bc91 100644 --- a/package/system/fstools/files/snapshot +++ b/package/system/fstools/files/snapshot @@ -37,17 +37,7 @@ do_config_push() { } do_snapshot_upgrade() { - opkg update - [ $? -eq 0 ] || exit 1 - - opkg list-upgradable - [ $? -eq 0 ] || exit 2 - - UPDATES=`opkg list-upgradable | cut -d" " -f1` - [ -z "${UPDATES}" ] && exit 0 - - opkg upgrade ${UPDATES} - [ $? -eq 0 ] || exit 3 + apk upgrade do_snapshot_push sleep 5 diff --git a/rules.mk b/rules.mk index 8d4f619211..05a3265ae6 100644 --- a/rules.mk +++ b/rules.mk @@ -255,6 +255,8 @@ else endif BUILD_KEY=$(TOPDIR)/key-build +BUILD_KEY_APK_SEC=$(TOPDIR)/private-key.pem +BUILD_KEY_APK_PUB=$(TOPDIR)/public-key.pem FAKEROOT:=$(STAGING_DIR_HOST)/bin/fakeroot diff --git a/scripts/feeds b/scripts/feeds index aee73e793f..e8cc346e13 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -865,7 +865,7 @@ sub feed_config() { printf "\t\tdepends on PER_FEED_REPO\n"; printf "\t\tdefault y\n" if $installed; printf "\t\thelp\n"; - printf "\t\t Enable the \\\"%s\\\" feed in opkg distfeeds.conf.\n", $feed->[1]; + printf "\t\t Enable the \\\"%s\\\" feed in apk repositories.\n", $feed->[1]; printf "\t\t Say M to add the feed commented out.\n"; printf "\n"; } @@ -884,7 +884,7 @@ Commands: -s : List of feed names and their URL. -r : List packages of specified feed. -d : Use specified delimiter to distinguish rows (default: spaces) - -f : List feeds in feeds.conf compatible format (when using -s). + -f : List feeds in opkg feeds.conf compatible format (when using -s). install [options] : Install a package Options: diff --git a/target/imagebuilder/Makefile b/target/imagebuilder/Makefile index 8607a2d709..db88ee346e 100644 --- a/target/imagebuilder/Makefile +++ b/target/imagebuilder/Makefile @@ -25,7 +25,7 @@ BUNDLER_COMMAND := PATH=$(BUNDLER_PATH) $(XARGS) $(SCRIPT_DIR)/bundle-libraries. all: compile $(BIN_DIR)/$(IB_NAME).tar.xz: clean - rm -rf $(PKG_BUILD_DIR) + #rm -rf $(PKG_BUILD_DIR) mkdir -p $(IB_KDIR) $(IB_LDIR) $(PKG_BUILD_DIR)/staging_dir/host/lib \ $(PKG_BUILD_DIR)/target $(PKG_BUILD_DIR)/scripts $(IB_DTSDIR) -cp $(TOPDIR)/.config $(PKG_BUILD_DIR)/.config @@ -35,15 +35,13 @@ $(BIN_DIR)/$(IB_NAME).tar.xz: clean $(INCLUDE_DIR) $(SCRIPT_DIR) \ $(TOPDIR)/rules.mk \ ./files/Makefile \ - ./files/repositories.conf \ $(TMP_DIR)/.targetinfo \ $(TMP_DIR)/.packageinfo \ $(PKG_BUILD_DIR)/ ifeq ($(CONFIG_IB_STANDALONE),) - echo '## Remote package repositories' >> $(PKG_BUILD_DIR)/repositories.conf - $(call FeedSourcesAppend,$(PKG_BUILD_DIR)/repositories.conf) - $(VERSION_SED_SCRIPT) $(PKG_BUILD_DIR)/repositories.conf + $(call FeedSourcesAppend,$(PKG_BUILD_DIR)/repositories) + $(VERSION_SED_SCRIPT) $(PKG_BUILD_DIR)/repositories endif $(INSTALL_DIR) $(PKG_BUILD_DIR)/packages @@ -58,26 +56,18 @@ endif ifeq ($(CONFIG_BUILDBOT),) ifeq ($(CONFIG_IB_STANDALONE),) $(FIND) $(call FeedPackageDir,libc) -type f \ - \( -name 'libc_*.ipk' -or -name 'kernel_*.ipk' -or -name 'kmod-*.ipk' \) \ + \( -name 'libc_*.apk' -or -name 'kernel_*.apk' -or -name 'kmod-*.apk' \) \ -exec $(CP) -t $(PKG_BUILD_DIR)/packages {} + else - $(FIND) $(wildcard $(PACKAGE_SUBDIRS)) -type f -name '*.ipk' \ + $(FIND) $(wildcard $(PACKAGE_SUBDIRS)) -type f -name '*.apk' \ -exec $(CP) -t $(PKG_BUILD_DIR)/packages/ {} + endif else $(FIND) $(call FeedPackageDir,libc) -type f \ - \( -name 'libc_*.ipk' -or -name 'kernel_*.ipk' \) \ + \( -name 'libc_*.apk' -or -name 'kernel_*.apk' \) \ -exec $(CP) -t $(IB_LDIR)/ {} + endif -ifneq ($(CONFIG_SIGNATURE_CHECK),) - echo '' >> $(PKG_BUILD_DIR)/repositories.conf - echo 'option check_signature' >> $(PKG_BUILD_DIR)/repositories.conf - $(INSTALL_DIR) $(PKG_BUILD_DIR)/keys - $(CP) -L $(STAGING_DIR_ROOT)/etc/opkg/keys/ $(PKG_BUILD_DIR)/ - $(CP) -L $(STAGING_DIR_ROOT)/usr/sbin/opkg-key $(PKG_BUILD_DIR)/scripts/ -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; \ @@ -108,8 +98,11 @@ endif $(CP) $(STAGING_DIR_HOST)/bin/* $(PKG_BUILD_DIR)/staging_dir/host/bin/ (cd $(PKG_BUILD_DIR); find staging_dir/host/bin/ $(IB_LDIR)/scripts/dtc/ -type f | \ $(BUNDLER_COMMAND)) + + $(INSTALL_DIR) $(PKG_BUILD_DIR)/staging_dir/hostpkg/bin $(CP) $(TOPDIR)/staging_dir/host/lib/libfakeroot* $(PKG_BUILD_DIR)/staging_dir/host/lib STRIP=$(STAGING_DIR_HOST)/bin/sstrip $(SCRIPT_DIR)/rstrip.sh $(PKG_BUILD_DIR)/staging_dir/host/bin/ + (cd $(BUILD_DIR); \ tar -I '$(STAGING_DIR_HOST)/bin/xz -7e -T$(if $(filter 1,$(NPROC)),2,0)' -cf $@ $(IB_NAME) \ --mtime="$(shell date --date=@$(SOURCE_DATE_EPOCH))"; \ diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile index 871a40b3a1..6ef1b9df18 100644 --- a/target/imagebuilder/files/Makefile +++ b/target/imagebuilder/files/Makefile @@ -66,6 +66,7 @@ help: FORCE # override variables from rules.mk PACKAGE_DIR:=$(TOPDIR)/packages LISTS_DIR:=$(subst $(space),/,$(patsubst %,..,$(subst /,$(space),$(TARGET_DIR))))$(DL_DIR) +PACKAGE_DIR_ALL:=$(TOPDIR)/packages export OPKG_KEYS:=$(TOPDIR)/keys OPKG:=$(call opkg,$(TARGET_DIR)) \ -f $(TOPDIR)/repositories.conf \ @@ -73,6 +74,11 @@ OPKG:=$(call opkg,$(TARGET_DIR)) \ --cache $(DL_DIR) \ --lists-dir $(LISTS_DIR) +APK:=$(call apk,$(TARGET_DIR)) \ + --cache-dir $(DL_DIR) \ + --allow-untrusted + + include $(INCLUDE_DIR)/target.mk -include .profiles.mk @@ -131,41 +137,36 @@ _call_manifest: FORCE mkdir -p $(TARGET_DIR) $(BIN_DIR) $(TMP_DIR) $(DL_DIR) $(MAKE) package_reload >/dev/null $(MAKE) package_install >/dev/null - $(OPKG) list-installed $(if $(STRIP_ABI),--strip-abi) + $(APK) list --manifest package_index: FORCE @echo >&2 @echo Building package index... >&2 @mkdir -p $(TMP_DIR) $(TARGET_DIR)/tmp - (cd $(PACKAGE_DIR); $(SCRIPT_DIR)/ipkg-make-index.sh . > Packages && \ - gzip -9nc Packages > Packages.gz; \ - $(if $(CONFIG_SIGNATURE_CHECK), \ - $(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY)) \ - ) >/dev/null 2>/dev/null - $(OPKG) update >&2 || true + $(APK) add --initdb >&2 || true + $(APK) update >&2 || true package_reload: if [ -d "$(PACKAGE_DIR)" ] && ( \ - [ ! -f "$(PACKAGE_DIR)/Packages" ] || \ - [ ! -f "$(PACKAGE_DIR)/Packages.gz" ] || \ - [ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/Packages.gz`" ] ); then \ + [ ! -f "$(PACKAGE_DIR)/packages.adb" ] || \ + [ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/packages.adb`" ] ); then \ echo "Package list missing or not up-to-date, generating it." >&2 ;\ $(MAKE) package_index; \ else \ mkdir -p $(TARGET_DIR)/tmp; \ - $(OPKG) update >&2 || true; \ + $(APK) update >&2 || true; \ fi package_list: FORCE @$(MAKE) -s package_reload - @$(OPKG) list --size 2>/dev/null + @$(APK) list --size 2>/dev/null package_install: FORCE @echo @echo Installing packages... - $(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/libc_*.ipk $(PACKAGE_DIR)/libc_*.ipk)) - $(OPKG) install $(firstword $(wildcard $(LINUX_DIR)/kernel_*.ipk $(PACKAGE_DIR)/kernel_*.ipk)) - $(OPKG) install $(BUILD_PACKAGES) + $(APK) add $(firstword $(wildcard $(LINUX_DIR)/libc-*.apk $(PACKAGE_DIR)/libc_*.apk)) + $(APK) add $(firstword $(wildcard $(LINUX_DIR)/kernel-*.apk $(PACKAGE_DIR)/kernel_*.apk)) + $(APK) add $(BUILD_PACKAGES) prepare_rootfs: FORCE @echo @@ -237,7 +238,7 @@ endif image: $(MAKE) -s _check_profile - $(MAKE) -s _check_keys + #$(MAKE) -s _check_keys (unset PROFILE FILES PACKAGES MAKEFLAGS; \ $(MAKE) -s _call_image \ $(if $(PROFILE),USER_PROFILE="$(PROFILE_FILTER)") \ @@ -248,7 +249,7 @@ image: manifest: FORCE $(MAKE) -s _check_profile - $(MAKE) -s _check_keys + #$(MAKE) -s _check_keys (unset PROFILE FILES PACKAGES MAKEFLAGS; \ $(MAKE) -s _call_manifest \ $(if $(PROFILE),USER_PROFILE="$(PROFILE_FILTER)") \ @@ -260,6 +261,6 @@ ifeq ($(PACKAGE),) @exit 1 endif @$(MAKE) -s package_reload - @$(OPKG) whatdepends -A $(PACKAGE) + @$(APK) list --depends $(PACKAGE) .SILENT: help info image manifest whatdepends -- 2.30.2