build: adjust version number handling
authorJo-Philipp Wich <jo@mein.io>
Thu, 1 Dec 2016 16:40:43 +0000 (17:40 +0100)
committerJo-Philipp Wich <jo@mein.io>
Fri, 2 Dec 2016 15:02:02 +0000 (16:02 +0100)
Move the revision info to the VERSION_CODE variable and default VERSION_NUMBER
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.

While we're at it, also adjust the various URLs to match the current web site.

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://lede-project.org/"
    BUG_URL="http://bugs.lede-project.org/"
    SUPPORT_URL="http://forum.lede-project.org/"
    BUILD_ID="r2398+1"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://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://lede-project.org/"
    BUG_URL="http://bugs.lede-project.org/"
    SUPPORT_URL="http://forum.lede-project.org/"
    BUILD_ID="r2399"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://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://lede-project.org/"
    BUG_URL="http://bugs.lede-project.org/"
    SUPPORT_URL="http://forum.lede-project.org/"
    BUILD_ID="r2500"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://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@mein.io>
Acked-by: Felix Fietkau <nbd@nbd.name>
include/version.mk
package/base-files/files/etc/banner
package/base-files/files/etc/openwrt_release
package/base-files/files/etc/openwrt_version
package/base-files/files/usr/lib/os-release
package/base-files/image-config.in

index 4beaca64607c12734c28352def524034beae1659..a21bf25c7ff8be9b56b1e0ca07a537cc1e908f17 100644 (file)
@@ -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))
@@ -49,13 +50,13 @@ VERSION_MANUFACTURER:=$(call qstrip_escape,$(CONFIG_VERSION_MANUFACTURER))
 VERSION_MANUFACTURER:=$(if $(VERSION_MANUFACTURER),$(VERSION_MANUFACTURER),LEDE)
 
 VERSION_MANUFACTURER_URL:=$(call qstrip_escape,$(CONFIG_VERSION_MANUFACTURER_URL))
-VERSION_MANUFACTURER_URL:=$(if $(VERSION_MANUFACTURER_URL),$(VERSION_MANUFACTURER_URL),http://www.lede-project.org/)
+VERSION_MANUFACTURER_URL:=$(if $(VERSION_MANUFACTURER_URL),$(VERSION_MANUFACTURER_URL),http://lede-project.org/)
 
 VERSION_BUG_URL:=$(call qstrip_escape,$(CONFIG_VERSION_BUG_URL))
-VERSION_BUG_URL:=$(if $(VERSION_BUG_URL),$(VERSION_BUG_URL),https://www.lede-project.org/development.html)
+VERSION_BUG_URL:=$(if $(VERSION_BUG_URL),$(VERSION_BUG_URL),http://bugs.lede-project.org/)
 
 VERSION_SUPPORT_URL:=$(call qstrip_escape,$(CONFIG_VERSION_SUPPORT_URL))
-VERSION_SUPPORT_URL:=$(if $(VERSION_SUPPORT_URL),$(VERSION_SUPPORT_URL),http://lists.infradead.org/mailman/listinfo/lede-dev)
+VERSION_SUPPORT_URL:=$(if $(VERSION_SUPPORT_URL),$(VERSION_SUPPORT_URL),http://forum.lede-project.org/)
 
 VERSION_PRODUCT:=$(call qstrip_escape,$(CONFIG_VERSION_PRODUCT))
 VERSION_PRODUCT:=$(if $(VERSION_PRODUCT),$(VERSION_PRODUCT),Generic)
index 66dc14be0690c8b214ec8222d7950bb25b2725f2..4ec646a9334cf666dccb4c96faf92e0216b9f303 100644 (file)
@@ -5,6 +5,6 @@
  /________/  LE  \  |____|___|___/|___|                      lede-project.org
  \        \   DE /
   \    LE  \    /  -----------------------------------------------------------
-   \  DE    \  /    %N (%C, %R)
+   \  DE    \  /    %N (%V, %C)
     \________\/    -----------------------------------------------------------
 
index 9b2a40c820b2446ae4952947795eb9b698848167..46ad63209f18ecc755f7128073a965800d0998b7 100644 (file)
@@ -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'
index 4b14f596fb3ef5dd3fe51dd2c1cca474d390a00e..48157ed97f7accee98c7d81c99c27d135ec1a495 100644 (file)
@@ -1 +1 @@
-%V
+%C
index 6c829e0670953033221ee1b86eab1e037a644de5..79b08d16cf51f9aeefc8cd293286100036487e09 100644 (file)
@@ -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"
index 43d3859301487391394a6838e88701e5b37916e9..4610c2b995a32ba4abe8353a1e88aaf06ad75b39 100644 (file)
@@ -175,8 +175,17 @@ 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
-                       of the build tree.
+                       If unspecified, it defaults to CURRENT for the master branch
+                       or to ##.##-CURRENT 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 a revision number describing the
+                       repository version of the source, e.g. the number of commits
+                       since a branch point or a short Git commit ID.
 
        config VERSION_REPO
                string
@@ -185,11 +194,11 @@ if VERSIONOPT
                help
                        This is the repository address embedded in the image, it defaults
                        to the trunk snapshot repo; the url may contain the following placeholders:
-                        %R .. Revision number
-                        %V .. Release version or revision number, uppercase
-                        %v .. Release version or revision number, lowercase
-                        %C .. Release version or "HEAD", uppercase
-                        %c .. Release version or "head", lowercase
+                        %R .. Repository revision ID
+                        %V .. Configured release version number or "CURRENT", uppercase
+                        %v .. Configured release version number or "current", lowercase
+                        %C .. Configured release revision code or value of %R, uppercase
+                        %c .. Configured release revision code or value of %R, lowercase
                         %N .. Release name, uppercase
                         %n .. Release name, lowercase
                         %D .. Distribution name or "Lede", uppercase