[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