[LEDE-DEV] [RFC] build: adjust version number handling

Jo-Philipp Wich jo at mein.io
Thu Dec 1 09:34:42 PST 2016


Move the revision info to the VERSION_CODE variable and default VERSION_NUMBER
to the release branch version or to CURRENT for master branch builds.

Also introduce a new menuconfig option CONFIG_VERSION_CODE which allows users
to override the revision value put into VERSION_CODE and adjust the template
files used by the base-files package to accomodate for the changed semantics.

After this commit, the relevent files will look like the examples given below:

    # cat /etc/openwrt_version
    r2398+1

    # cat /etc/openwrt_release
    DISTRIB_ID='LEDE'
    DISTRIB_RELEASE='CURRENT'
    DISTRIB_REVISION='r2398+1'
    DISTRIB_CODENAME='reboot'
    DISTRIB_TARGET='x86/64'
    DISTRIB_DESCRIPTION='LEDE Reboot CURRENT r2398+1'
    DISTRIB_TAINTS='no-all override

    # cat /usr/lib/os-release
    NAME="LEDE"
    VERSION="CURRENT, Reboot"
    ID="lede"
    ID_LIKE="lede openwrt"
    PRETTY_NAME="LEDE Reboot CURRENT"
    VERSION_ID="current"
    HOME_URL="http://www.lede-project.org/"
    BUG_URL="https://www.lede-project.org/development.html"
    SUPPORT_URL="http://lists.infradead.org/mailman/listinfo/lede-dev"
    BUILD_ID="r2398+1"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://www.lede-project.org/"
    LEDE_DEVICE_PRODUCT="Generic"
    LEDE_DEVICE_REVISION="v0"
    LEDE_RELEASE="LEDE Reboot CURRENT r2398+1"

On a release branch, those files would look like:

    # cat /etc/openwrt_version
    r2399

    # cat /etc/openwrt_release
    DISTRIB_ID='LEDE'
    DISTRIB_RELEASE='16.12-CURRENT'
    DISTRIB_REVISION='r2399'
    DISTRIB_CODENAME='test_release'
    DISTRIB_TARGET='x86/64'
    DISTRIB_DESCRIPTION='LEDE Test Release 16.12-CURRENT r2399'
    DISTRIB_TAINTS='no-all override

    # cat /usr/lib/os-release
    NAME="LEDE"
    VERSION="16.12-CURRENT, Test Release"
    ID="lede"
    ID_LIKE="lede openwrt"
    PRETTY_NAME="LEDE Test Release 16.12-CURRENT"
    VERSION_ID="16.12-current"
    HOME_URL="http://www.lede-project.org/"
    BUG_URL="https://www.lede-project.org/development.html"
    SUPPORT_URL="http://lists.infradead.org/mailman/listinfo/lede-dev"
    BUILD_ID="r2399"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://www.lede-project.org/"
    LEDE_DEVICE_PRODUCT="Generic"
    LEDE_DEVICE_REVISION="v0"
    LEDE_RELEASE="LEDE Test Release 16.12-CURRENT r2399"

On a release tag, those files would look like:

    # cat /etc/openwrt_version
    r2500

    # cat /etc/openwrt_release
    DISTRIB_ID='LEDE'
    DISTRIB_RELEASE='17.02.1'
    DISTRIB_REVISION='r2500'
    DISTRIB_CODENAME='mighty_unicorn'
    DISTRIB_TARGET='x86/64'
    DISTRIB_DESCRIPTION='LEDE Mighty Unicorn 17.02.1 r2500'
    DISTRIB_TAINTS='no-all override

    # cat /usr/lib/os-release
    NAME="LEDE"
    VERSION="17.02.1, Mighty Unicorn"
    ID="lede"
    ID_LIKE="lede openwrt"
    PRETTY_NAME="LEDE Mighty Unicorn 17.02.1"
    VERSION_ID="17.02.1"
    HOME_URL="http://www.lede-project.org/"
    BUG_URL="https://www.lede-project.org/development.html"
    SUPPORT_URL="http://lists.infradead.org/mailman/listinfo/lede-dev"
    BUILD_ID="r2500"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://www.lede-project.org/"
    LEDE_DEVICE_PRODUCT="Generic"
    LEDE_DEVICE_REVISION="v0"
    LEDE_RELEASE="LEDE Mighty Unicorn 17.02.1 r2500"

Signed-off-by: Jo-Philipp Wich <jo at mein.io>
---
 include/version.mk                           | 7 ++++---
 package/base-files/files/etc/banner          | 2 +-
 package/base-files/files/etc/openwrt_release | 4 ++--
 package/base-files/files/etc/openwrt_version | 2 +-
 package/base-files/files/usr/lib/os-release  | 2 +-
 package/base-files/image-config.in           | 8 ++++++++
 6 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/include/version.mk b/include/version.mk
index 4beaca6..c5ada64 100644
--- a/include/version.mk
+++ b/include/version.mk
@@ -15,6 +15,7 @@ RELEASE:=Reboot
 PKG_CONFIG_DEPENDS += \
 	CONFIG_VERSION_BUG_URL \
 	CONFIG_VERSION_NUMBER \
+	CONFIG_VERSION_CODE \
 	CONFIG_VERSION_NICK \
 	CONFIG_VERSION_REPO \
 	CONFIG_VERSION_DIST \
@@ -30,10 +31,10 @@ qstrip_escape=$(subst ','\'',$(call qstrip,$(1)))
 sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
 
 VERSION_NUMBER:=$(call qstrip_escape,$(CONFIG_VERSION_NUMBER))
-VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),$(REVISION))
+VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),CURRENT)
 
-VERSION_CODE:=$(call qstrip_escape,$(CONFIG_VERSION_NUMBER))
-VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),HEAD)
+VERSION_CODE:=$(call qstrip_escape,$(CONFIG_VERSION_CODE))
+VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),$(REVISION))
 
 VERSION_NICK:=$(call qstrip_escape,$(CONFIG_VERSION_NICK))
 VERSION_NICK:=$(if $(VERSION_NICK),$(VERSION_NICK),$(RELEASE))
diff --git a/package/base-files/files/etc/banner b/package/base-files/files/etc/banner
index 66dc14b..4ec646a 100644
--- a/package/base-files/files/etc/banner
+++ b/package/base-files/files/etc/banner
@@ -5,6 +5,6 @@
  /________/  LE  \  |____|___|___/|___|                      lede-project.org
  \        \   DE /
   \    LE  \    /  -----------------------------------------------------------
-   \  DE    \  /    %N (%C, %R)
+   \  DE    \  /    %N (%V, %C)
     \________\/    -----------------------------------------------------------
 
diff --git a/package/base-files/files/etc/openwrt_release b/package/base-files/files/etc/openwrt_release
index 9b2a40c..46ad632 100644
--- a/package/base-files/files/etc/openwrt_release
+++ b/package/base-files/files/etc/openwrt_release
@@ -1,7 +1,7 @@
 DISTRIB_ID='%D'
-DISTRIB_RELEASE='%C'
+DISTRIB_RELEASE='%V'
 DISTRIB_REVISION='%R'
 DISTRIB_CODENAME='%n'
 DISTRIB_TARGET='%S'
-DISTRIB_DESCRIPTION='%D %N %V'
+DISTRIB_DESCRIPTION='%D %N %V %C'
 DISTRIB_TAINTS='%t'
diff --git a/package/base-files/files/etc/openwrt_version b/package/base-files/files/etc/openwrt_version
index 4b14f59..48157ed 100644
--- a/package/base-files/files/etc/openwrt_version
+++ b/package/base-files/files/etc/openwrt_version
@@ -1 +1 @@
-%V
+%C
diff --git a/package/base-files/files/usr/lib/os-release b/package/base-files/files/usr/lib/os-release
index 6c829e0..79b08d1 100644
--- a/package/base-files/files/usr/lib/os-release
+++ b/package/base-files/files/usr/lib/os-release
@@ -14,4 +14,4 @@ LEDE_DEVICE_MANUFACTURER="%M"
 LEDE_DEVICE_MANUFACTURER_URL="%m"
 LEDE_DEVICE_PRODUCT="%P"
 LEDE_DEVICE_REVISION="%h"
-LEDE_RELEASE="%C"
+LEDE_RELEASE="%D %N %V %C"
diff --git a/package/base-files/image-config.in b/package/base-files/image-config.in
index 43d3859..21a1245 100644
--- a/package/base-files/image-config.in
+++ b/package/base-files/image-config.in
@@ -175,6 +175,14 @@ if VERSIONOPT
 		prompt "Release version number"
 		help
 			This is the release version number embedded in the image.
+			If unspecified, it defaults to HEAD for the master branch
+			or to the base version on release branches.
+
+	config VERSION_CODE
+		string
+		prompt "Release version code"
+		help
+			This is the release version code embedded in the image.
 			If unspecified, it defaults to the svn or git-svn revision
 			of the build tree.
 
-- 
2.9.3




More information about the Lede-dev mailing list