From dbb77e39a07a86b18ecc4ce27bb2841e0a099c9d Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 29 Jul 2014 13:30:12 +0000
Subject: [PATCH] base-files: add extra version configuration options for OEM
 manufacturer info

Creates /etc/device_info which will be used to fill in information for
WPS and other protocols that need manufacturer/device information

This helps with creating OpenWrt firmware for OEM or rebranded devices.

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

SVN-Revision: 41884
---
 include/version.mk                       | 16 ++++++++++-
 package/base-files/Makefile              |  3 +-
 package/base-files/files/etc/device_info |  3 ++
 package/base-files/image-config.in       | 36 ++++++++++++++++++++----
 4 files changed, 50 insertions(+), 8 deletions(-)
 create mode 100644 package/base-files/files/etc/device_info

diff --git a/include/version.mk b/include/version.mk
index 575398bc20..a84065d1dd 100644
--- a/include/version.mk
+++ b/include/version.mk
@@ -12,7 +12,10 @@ PKG_CONFIG_DEPENDS += \
 	CONFIG_VERSION_NUMBER \
 	CONFIG_VERSION_NICK \
 	CONFIG_VERSION_REPO \
-	CONFIG_VERSION_DIST
+	CONFIG_VERSION_DIST \
+	CONFIG_VERSION_MANUFACTURER \
+	CONFIG_VERSION_PRODUCT \
+	CONFIG_VERSION_HWREV \
 
 VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
 VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),$(REVISION))
@@ -29,6 +32,14 @@ VERSION_REPO:=$(if $(VERSION_REPO),$(VERSION_REPO),http://downloads.openwrt.org/
 VERSION_DIST:=$(call qstrip,$(CONFIG_VERSION_DIST))
 VERSION_DIST:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
 
+VERSION_MANUFACTURER:=$(call qstrip,$(CONFIG_VERSION_MANUFACTURER))
+VERSION_MANUFACTURER:=$(if $(VERSION_MANUFACTURER),$(VERSION_MANUFACTURER),OpenWrt)
+
+VERSION_PRODUCT:=$(call qstrip,$(CONFIG_VERSION_PRODUCT))
+VERSION_PRODUCT:=$(if $(VERSION_PRODUCT),$(VERSION_PRODUCT),Generic)
+
+VERSION_HWREV:=$(call qstrip,$(CONFIG_VERSION_HWREV))
+VERSION_HWREV:=$(if $(VERSION_HWREV),$(VERSION_HWREV),v0)
 
 define taint2sym
 $(CONFIG_$(firstword $(subst :, ,$(subst +,,$(subst -,,$(1))))))
@@ -66,3 +77,6 @@ VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),g' \
 	-e 's,%T,$(BOARD),g' \
 	-e 's,%S,$(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic),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'
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 5faa439454..76a4dabe0e 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -111,7 +111,8 @@ define Package/base-files/install
 	$(VERSION_SED) \
 		$(1)/etc/banner \
 		$(1)/etc/openwrt_version \
-		$(1)/etc/openwrt_release
+		$(1)/etc/openwrt_release \
+		$(1)/etc/device_info
 
 	mkdir -p $(1)/CONTROL
 	mkdir -p $(1)/dev
diff --git a/package/base-files/files/etc/device_info b/package/base-files/files/etc/device_info
new file mode 100644
index 0000000000..da2c4a3b9d
--- /dev/null
+++ b/package/base-files/files/etc/device_info
@@ -0,0 +1,3 @@
+DEVICE_MANUFACTURER="%M"
+DEVICE_PRODUCT="%P"
+DEVICE_REVISION="%h"
diff --git a/package/base-files/image-config.in b/package/base-files/image-config.in
index a9eb78c4f9..66134aad3c 100644
--- a/package/base-files/image-config.in
+++ b/package/base-files/image-config.in
@@ -142,24 +142,26 @@ menuconfig VERSIONOPT
 		they're useful for release builds or custom OpenWrt redistributions
 		that should carry custom version tags.
 
+if VERSIONOPT
+
 	config VERSION_DIST
 		string
-		prompt "Release distribution" if VERSIONOPT
-		default "OpenWrt" if VERSIONOPT
+		prompt "Release distribution"
+		default "OpenWrt"
 		help
 			This is the name of the release distribution.
 			If unspecified, it defaults to OpenWrt.
 
 	config VERSION_NICK
 		string
-		prompt "Release version nickname" if VERSIONOPT
+		prompt "Release version nickname"
 		help
 			This is the release codename embedded in the image.
 			If unspecified, it defaults to the name of source branch.
 
 	config VERSION_NUMBER
 		string
-		prompt "Release version number" if VERSIONOPT
+		prompt "Release version number"
 		help
 			This is the release version number embedded in the image.
 			If unspecified, it defaults to the svn or git-svn revision
@@ -167,8 +169,8 @@ menuconfig VERSIONOPT
 
 	config VERSION_REPO
 		string
-		prompt "Release repository" if VERSIONOPT
-		default "http://downloads.openwrt.org/snapshots/trunk/%T/packages" if VERSIONOPT
+		prompt "Release repository"
+		default "http://downloads.openwrt.org/snapshots/trunk/%T/packages"
 		help
 			This is the repository address embedded in the image, it defaults
 			to the trunk snapshot repo; the url may contain the following placeholders:
@@ -184,6 +186,28 @@ menuconfig VERSIONOPT
 			 %T .. Target name
 			 %S .. Target/Subtarget name
 
+	config VERSION_MANUFACTURER
+		string
+		prompt "Manufacturer name"
+		help
+			This is the manufacturer name embedded in /etc/device_info
+			Useful for OEMs building OpenWrt based firmware
+
+	config VERSION_PRODUCT
+		string
+		prompt "Product name"
+		help
+			This is the product name embedded in /etc/device_info
+			Useful for OEMs building OpenWrt based firmware
+
+	config VERSION_HWREV
+		string
+		prompt "Hardware revision"
+		help
+			This is the hardware revision string embedded in /etc/device_info
+			Useful for OEMs building OpenWrt based firmware
+endif
+
 menuconfig SMIMEOPT
 	bool "Package signing options" if IMAGEOPT
         default n
-- 
GitLab