-VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),g' \
- -e 's,%V,$(VERSION_NUMBER),g' \
- -e 's,%v,\L$(subst $(space),_,$(VERSION_NUMBER)),g' \
- -e 's,%C,$(VERSION_CODE),g' \
- -e 's,%c,\L$(subst $(space),_,$(VERSION_CODE)),g' \
- -e 's,%N,$(VERSION_NICK),g' \
- -e 's,%n,\L$(subst $(space),_,$(VERSION_NICK)),g' \
- -e 's,%D,$(VERSION_DIST),g' \
- -e 's,%d,\L$(subst $(space),_,$(VERSION_DIST)),g' \
- -e 's,%R,$(REVISION),g' \
- -e 's,%T,$(BOARD),g' \
- -e 's,%S,$(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic),g' \
- -e 's,%s,$(BOARD)$(if $(SUBTARGET),.$(SUBTARGET)),g' \
- -e 's,%t,$(VERSION_TAINTS),g' \
- -e 's,%M,$(VERSION_MANUFACTURER),g' \
- -e 's,%P,$(VERSION_PRODUCT),g' \
- -e 's,%h,$(VERSION_HWREV),g'
-
-VERSION_SED_SCRIPT:=$(subst '\'','\'\\\\\'\'',$(VERSION_SED))
+# escape commas, backslashes, squotes, and ampersands for sed
+define sed_escape
+$(subst &,\&,$(subst $(comma),\$(comma),$(subst ','\'',$(subst \,\\,$(1)))))
+endef
+#'
+
+VERSION_SED_SCRIPT:=$(SED) 's,%U,$(call sed_escape,$(VERSION_REPO)),g' \
+ -e 's,%V,$(call sed_escape,$(VERSION_NUMBER)),g' \
+ -e 's,%v,\L$(call sed_escape,$(subst $(space),_,$(VERSION_NUMBER))),g' \
+ -e 's,%C,$(call sed_escape,$(VERSION_CODE)),g' \
+ -e 's,%c,\L$(call sed_escape,$(subst $(space),_,$(VERSION_CODE))),g' \
+ -e 's,%D,$(call sed_escape,$(VERSION_DIST)),g' \
+ -e 's,%d,\L$(call sed_escape,$(subst $(space),_,$(VERSION_DIST))),g' \
+ -e 's,%R,$(call sed_escape,$(REVISION)),g' \
+ -e 's,%T,$(call sed_escape,$(BOARD)),g' \
+ -e 's,%S,$(call sed_escape,$(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic)),g' \
+ -e 's,%A,$(call sed_escape,$(ARCH_PACKAGES)),g' \
+ -e 's,%t,$(call sed_escape,$(VERSION_TAINTS)),g' \
+ -e 's,%M,$(call sed_escape,$(VERSION_MANUFACTURER)),g' \
+ -e 's,%m,$(call sed_escape,$(VERSION_MANUFACTURER_URL)),g' \
+ -e 's,%b,$(call sed_escape,$(VERSION_BUG_URL)),g' \
+ -e 's,%u,$(call sed_escape,$(VERSION_HOME_URL)),g' \
+ -e 's,%s,$(call sed_escape,$(VERSION_SUPPORT_URL)),g' \
+ -e 's,%P,$(call sed_escape,$(VERSION_PRODUCT)),g' \
+ -e 's,%h,$(call sed_escape,$(VERSION_HWREV)),g'
+