|
|
@@ -199,11 +199,49 @@ endif
|
|
|
$(call locked,$(CP) $(PKG_BUILD_DIR)/.pkgdir/$(1)/. $(STAGING_DIR_ROOT)/,root-copy)
|
|
|
touch $$@
|
|
|
|
|
|
- Package/$(1)/DEPENDS := $$(call mergelist,$$(foreach dep,$$(filter-out @%,$$(IDEPEND_$(1))),$$(dep)$$(call GetABISuffix,$$(dep))))
|
|
|
+ Package/$(1)/DEPENDS := $$(foreach dep,$$(filter-out @%,$$(IDEPEND_$(1))),$$(dep)$$(call GetABISuffix,$$(dep)))
|
|
|
ifneq ($$(EXTRA_DEPENDS),)
|
|
|
- Package/$(1)/DEPENDS := $$(EXTRA_DEPENDS)$$(if $$(Package/$(1)/DEPENDS),$$(comma) $$(Package/$(1)/DEPENDS))
|
|
|
+ ifeq ($(CONFIG_USE_APK),)
|
|
|
+ Package/$(1)/DEPENDS := $$(call mergelist,$$(Package/$(1)/DEPENDS))
|
|
|
+ Package/$(1)/DEPENDS := $$(EXTRA_DEPENDS)$$(if $$(Package/$(1)/DEPENDS),$$(comma) $$(Package/$(1)/DEPENDS))
|
|
|
+ else
|
|
|
+ _SEP := __COMMA_SEP__
|
|
|
+ _SPACE := __SPACE_SEP__
|
|
|
+ _DEPENDS := $$(Package/$(1)/DEPENDS)
|
|
|
+ _EXTRA_DEPENDS_ABI :=
|
|
|
+ _DEP_ITEMS := $$(subst $$(_SEP),$$(space),$$(subst $$(space),$$(_SPACE),$$(subst $$(comma),$$(_SEP),$$(EXTRA_DEPENDS))))
|
|
|
+
|
|
|
+ $$(foreach dep,$$(_DEP_ITEMS), \
|
|
|
+ $$(eval _CUR_DEP := $$(subst $$(_SPACE),$$(space),$$(strip $$(dep)))) \
|
|
|
+ $$(eval _PKG_NAME := $$(word 1,$$(_CUR_DEP))) \
|
|
|
+ $$(if $$(findstring $$(paren_left), $$(_PKG_NAME)), \
|
|
|
+ $$(error "Unsupported extra dependency format: no space before '(': $$(_CUR_DEP)")) \
|
|
|
+ ) \
|
|
|
+ $$(eval _ABI_SUFFIX := $$(call GetABISuffix,$$(_PKG_NAME))) \
|
|
|
+ $$(eval _PKG_NAME_ABI := $$(_PKG_NAME)$$(_ABI_SUFFIX)) \
|
|
|
+ $$(eval _VERSION_CONSTRAINT := $$(word 2,$$(_CUR_DEP))) \
|
|
|
+ $$(if $$(_VERSION_CONSTRAINT), \
|
|
|
+ $$(eval _EXTRA_DEP := $$(_PKG_NAME_ABI) $$(_VERSION_CONSTRAINT)), \
|
|
|
+ $$(error "Extra dependencies must have version constraints. $$(_PKG_NAME) seems to be unversioned.") \
|
|
|
+ ) \
|
|
|
+ $$(if $$(_EXTRA_DEPENDS_ABI), \
|
|
|
+ $$(eval _EXTRA_DEPENDS_ABI := $$(_EXTRA_DEPENDS_ABI)$$(comma)$$(_EXTRA_DEP)), \
|
|
|
+ $$(eval _EXTRA_DEPENDS_ABI := $$(_EXTRA_DEP)) \
|
|
|
+ ) \
|
|
|
+ $$(if $$(_DEPENDS), \
|
|
|
+ $$(eval _DEPENDS := $$(filter-out $$(_PKG_NAME_ABI),$$(_DEPENDS))) \
|
|
|
+ ) \
|
|
|
+ )
|
|
|
+
|
|
|
+ _DEPENDS := $$(call mergelist,$$(_DEPENDS))
|
|
|
+ Package/$(1)/DEPENDS := $$(_EXTRA_DEPENDS_ABI)$$(if $$(_DEPENDS),$$(comma) $$(_DEPENDS))
|
|
|
+ endif
|
|
|
+ else
|
|
|
+ Package/$(1)/DEPENDS := $$(call mergelist,$$(Package/$(1)/DEPENDS))
|
|
|
endif
|
|
|
|
|
|
+ $$(info $(1) fused dependencies: $$(Package/$(1)/DEPENDS))
|
|
|
+
|
|
|
$(_define) Package/$(1)/CONTROL
|
|
|
Package: $(1)$$(ABIV_$(1))
|
|
|
Version: $(VERSION)
|
|
|
@@ -320,7 +358,7 @@ else
|
|
|
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 'export pkgname="$(1)$$(ABIV_$(1))"'; \
|
|
|
echo "add_group_and_user"; \
|
|
|
echo "default_postinst"; \
|
|
|
[ ! -f $$(ADIR_$(1))/postinst-pkg ] || sed -z 's/^\s*#!/#!/' "$$(ADIR_$(1))/postinst-pkg"; \
|
|
|
@@ -345,34 +383,34 @@ else
|
|
|
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 'export pkgname="$(1)$$(ABIV_$(1))"'; \
|
|
|
echo "default_prerm"; \
|
|
|
[ ! -f $$(ADIR_$(1))/prerm-pkg ] || sed -z 's/^\s*#!/#!/' "$$(ADIR_$(1))/prerm-pkg"; \
|
|
|
) > $$(ADIR_$(1))/pre-deinstall;
|
|
|
|
|
|
[ ! -f $$(ADIR_$(1))/postrm ] || sed -zi 's/^\s*#!/#!/' "$$(ADIR_$(1))/postrm";
|
|
|
|
|
|
- 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" | sort > $(TMP_DIR)/$(1).list && mv $(TMP_DIR)/$(1).list $$(IDIR_$(1))/lib/apk/packages/$(1).list)
|
|
|
+ if [ -n "$(USERID)" ]; then echo $(USERID) > $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).rusers; fi;
|
|
|
+ if [ -n "$(ALTERNATIVES)" ]; then echo $(ALTERNATIVES) > $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).alternatives; fi;
|
|
|
+ (cd $$(IDIR_$(1)) && find . -type f,l -printf "/%P\n" | sort > $(TMP_DIR)/$(1).list && mv $(TMP_DIR)/$(1).list $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).list)
|
|
|
# Move conffiles to IDIR and build conffiles_static with csums
|
|
|
if [ -f $$(ADIR_$(1))/conffiles ]; then \
|
|
|
- mv -f $$(ADIR_$(1))/conffiles $$(IDIR_$(1))/lib/apk/packages/$(1).conffiles; \
|
|
|
- for file in $$$$(cat $$(IDIR_$(1))/lib/apk/packages/$(1).conffiles); do \
|
|
|
+ mv -f $$(ADIR_$(1))/conffiles $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).conffiles; \
|
|
|
+ for file in $$$$(cat $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).conffiles); do \
|
|
|
[ -f $$(IDIR_$(1))/$$$$file ] || continue; \
|
|
|
csum=$$$$($(MKHASH) sha256 $$(IDIR_$(1))/$$$$file); \
|
|
|
- echo $$$$file $$$$csum >> $$(IDIR_$(1))/lib/apk/packages/$(1).conffiles_static; \
|
|
|
+ echo $$$$file $$$$csum >> $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).conffiles_static; \
|
|
|
done; \
|
|
|
fi
|
|
|
|
|
|
# Some package (base-files) manually append stuff to conffiles
|
|
|
# Append stuff from it and delete the CONTROL directory since everything else should be migrated
|
|
|
if [ -f $$(IDIR_$(1))/CONTROL/conffiles ]; then \
|
|
|
- echo $$$$(IDIR_$(1))/CONTROL/conffiles >> $$(IDIR_$(1))/lib/apk/packages/$(1).conffiles; \
|
|
|
+ echo $$$$(IDIR_$(1))/CONTROL/conffiles >> $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).conffiles; \
|
|
|
for file in $$$$(cat $$(IDIR_$(1))/CONTROL/conffiles); do \
|
|
|
[ -f $$(IDIR_$(1))/$$$$file ] || continue; \
|
|
|
csum=$$$$($(MKHASH) sha256 $$(IDIR_$(1))/$$$$file); \
|
|
|
- echo $$$$file $$$$csum >> $$(IDIR_$(1))/lib/apk/packages/$(1).conffiles_static; \
|
|
|
+ echo $$$$file $$$$csum >> $$(IDIR_$(1))/lib/apk/packages/$(1)$$(ABIV_$(1)).conffiles_static; \
|
|
|
done; \
|
|
|
rm -rf $$(IDIR_$(1))/CONTROL/conffiles; \
|
|
|
fi
|
|
|
@@ -394,16 +432,13 @@ else
|
|
|
--info "origin:$(SOURCE)" \
|
|
|
--info "url:$(URL)" \
|
|
|
--info "maintainer:$(MAINTAINER)" \
|
|
|
- --info "provides:$$(foreach prov,\
|
|
|
- $$(filter-out $(1)$$(ABIV_$(1)), \
|
|
|
- $(PROVIDES)$$(if $$(ABIV_$(1)), \
|
|
|
- $(1)=$(VERSION) $(foreach provide, \
|
|
|
- $(PROVIDES), \
|
|
|
- $(provide)$$(ABIV_$(1))=$(VERSION) \
|
|
|
- ) \
|
|
|
- ) \
|
|
|
- ), \
|
|
|
- $$(prov) )" \
|
|
|
+ --info "provides:$$(if $$(ABIV_$(1)), \
|
|
|
+ $(1) $(foreach provide,$(PROVIDES), $(provide)$$(ABIV_$(1))=$(VERSION)), \
|
|
|
+ $(if $(ALTERNATIVES), \
|
|
|
+ $(PROVIDES), \
|
|
|
+ $(foreach provide,$(PROVIDES), $(provide)=$(VERSION)) \
|
|
|
+ ) \
|
|
|
+ )" \
|
|
|
$(if $(DEFAULT_VARIANT),--info "provider-priority:100",$(if $(PROVIDES),--info "provider-priority:1")) \
|
|
|
$$(APK_SCRIPTS_$(1)) \
|
|
|
--info "depends:$$(foreach depends,$$(subst $$(comma),$$(space),$$(subst $$(space),,$$(subst $$(paren_right),,$$(subst $$(paren_left),,$$(Package/$(1)/DEPENDS))))),$$(depends))" \
|