include/package-pack: escape package description for APK mkpkg
authorChristian Marangi <ansuelsmth@gmail.com>
Sun, 17 Nov 2024 18:09:31 +0000 (19:09 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Sun, 17 Nov 2024 18:09:31 +0000 (19:09 +0100)
Escape special char for package description for APK mkpkg as the
description is passed as an args to mkpkg with --info option and can
easily escape from the "".

Currently escaped char `, $, ", \.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
include/package-pack.mk

index 9d06c8b6471ba5b04fa646e67a1e20f42ccc9fe9..830b39f8d79914d8d47784c9cb1c15dc5511c432 100644 (file)
@@ -8,6 +8,10 @@ endif
 
 IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/opkg
 
+define description_escape
+$(subst `,\`,$(subst $$,\$$,$(subst ",\",$(subst \,\\,$(1)))))
+endef
+
 # Generates a make statement to return a wildcard for candidate ipkg files
 # 1: package name
 define gen_package_wildcard
@@ -339,7 +343,7 @@ else
        $(FAKEROOT) $(STAGING_DIR_HOST)/bin/apk mkpkg \
          --info "name:$(1)$$(ABIV_$(1))" \
          --info "version:$(VERSION)" \
-         --info "description:$$(strip $$(Package/$(1)/description))" \
+         --info "description:$$(call description_escape,$$(strip $$(Package/$(1)/description)))" \
          --info "arch:$(PKGARCH)" \
          --info "license:$(LICENSE)" \
          --info "origin:$(SOURCE)" \