base-files: properly escape strings for version info
authorFelix Fietkau <nbd@openwrt.org>
Tue, 29 Jul 2014 13:30:23 +0000 (13:30 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 29 Jul 2014 13:30:23 +0000 (13:30 +0000)
Make sure they don't break the sed command, and also make device_info
and openwrt_release more robust for parsing by scripts

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 41885

include/version.mk
package/base-files/Makefile
package/base-files/files/etc/device_info
package/base-files/files/etc/openwrt_release

index a84065d1dd14c5411f21b6288f7d36db33f47692..c4747f236f9b2a04f0ef825a135cb805271b78c6 100644 (file)
@@ -17,28 +17,31 @@ PKG_CONFIG_DEPENDS += \
        CONFIG_VERSION_PRODUCT \
        CONFIG_VERSION_HWREV \
 
-VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
+qstrip_escape=$(subst ','\'',$(call qstrip,$(1)))
+#'
+
+VERSION_NUMBER:=$(call qstrip_escape,$(CONFIG_VERSION_NUMBER))
 VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),$(REVISION))
 
-VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
+VERSION_CODE:=$(call qstrip_escape,$(CONFIG_VERSION_NUMBER))
 VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),Bleeding Edge)
 
-VERSION_NICK:=$(call qstrip,$(CONFIG_VERSION_NICK))
+VERSION_NICK:=$(call qstrip_escape,$(CONFIG_VERSION_NICK))
 VERSION_NICK:=$(if $(VERSION_NICK),$(VERSION_NICK),$(RELEASE))
 
-VERSION_REPO:=$(call qstrip,$(CONFIG_VERSION_REPO))
+VERSION_REPO:=$(call qstrip_escape,$(CONFIG_VERSION_REPO))
 VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.openwrt.org/snapshots/trunk/%T/packages)
 
-VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
+VERSION_DIST:=$(call qstrip_escape,$(CONFIG_VERSION_DIST))
 VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
 
-VERSION_MANUFACTURER:=$(call qstrip,$(CONFIG_VERSION_MANUFACTURER))
+VERSION_MANUFACTURER:=$(call qstrip_escape,$(CONFIG_VERSION_MANUFACTURER))
 VERSION_MANUFACTURER:=$(if $(VERSION_MANUFACTURER),$(VERSION_MANUFACTURER),OpenWrt)
 
-VERSION_PRODUCT:=$(call qstrip,$(CONFIG_VERSION_PRODUCT))
+VERSION_PRODUCT:=$(call qstrip_escape,$(CONFIG_VERSION_PRODUCT))
 VERSION_PRODUCT:=$(if $(VERSION_PRODUCT),$(VERSION_PRODUCT),Generic)
 
-VERSION_HWREV:=$(call qstrip,$(CONFIG_VERSION_HWREV))
+VERSION_HWREV:=$(call qstrip_escape,$(CONFIG_VERSION_HWREV))
 VERSION_HWREV:=$(if $(VERSION_HWREV),$(VERSION_HWREV),v0)
 
 define taint2sym
@@ -80,3 +83,5 @@ VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),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))
index 76a4dabe0ed047d71e3fcd7acb8e6c3d270701c8..10724b3eac00ffac450d951c27026562d01625aa 100644 (file)
@@ -110,7 +110,9 @@ define Package/base-files/install
 
        $(VERSION_SED) \
                $(1)/etc/banner \
-               $(1)/etc/openwrt_version \
+               $(1)/etc/openwrt_version
+
+       $(VERSION_SED_SCRIPT) \
                $(1)/etc/openwrt_release \
                $(1)/etc/device_info
 
index da2c4a3b9d7521f07af106277dd06634b1582bf6..2962cd7fd5f069d1866f6235bb61f85a599a789d 100644 (file)
@@ -1,3 +1,3 @@
-DEVICE_MANUFACTURER="%M"
-DEVICE_PRODUCT="%P"
-DEVICE_REVISION="%h"
+DEVICE_MANUFACTURER='%M'
+DEVICE_PRODUCT='%P'
+DEVICE_REVISION='%h'
index 384386a1fcc5b20fe3ee5e7996a6d1d1a5ab4bf7..9b2a40c820b2446ae4952947795eb9b698848167 100644 (file)
@@ -1,7 +1,7 @@
-DISTRIB_ID="%D"
-DISTRIB_RELEASE="%C"
-DISTRIB_REVISION="%R"
-DISTRIB_CODENAME="%n"
-DISTRIB_TARGET="%S"
-DISTRIB_DESCRIPTION="%D %N %V"
-DISTRIB_TAINTS="%t"
+DISTRIB_ID='%D'
+DISTRIB_RELEASE='%C'
+DISTRIB_REVISION='%R'
+DISTRIB_CODENAME='%n'
+DISTRIB_TARGET='%S'
+DISTRIB_DESCRIPTION='%D %N %V'
+DISTRIB_TAINTS='%t'