include, base-files, opkg: introduce version configuration to override the embedded...
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 12 Apr 2012 17:31:16 +0000 (17:31 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 12 Apr 2012 17:31:16 +0000 (17:31 +0000)
The available placeholders are:
 %D .. Replace with $(CONFIG_VERSION_DIST), default to "OpenWrt"
 %d .. Like %D, but all characters made lowercase and spaces substituted with "_" (e.g. "openwrt")
 %N .. Replace with $(CONFIG_VERSION_NICK), default to the build tree release (e.g. "Attitude Adjustment")
 %n .. Like %N, but all characters made lowercase and spaces substituted with "_" (e.g. "attitude_adjustment")
 %V .. Replace with $(CONFIG_VERSION_NUMBER), default to the build tree release (e.g. "r31262")
 %v .. Like %V, but all characters made lowercase and spaces substituted with "_"
 %C .. Replace with $(CONFIG_VERSION_NUMBER), default to "Bleeding Edge"
 %c .. Like %C, but all characters made lowercase and spaces substituted with "_" (e.g. "bleeding_edge")
 %U .. Replace with $(CONFIG_VERSION_REPO), default to "http://downloads.openwrt.org/snapshots/trunk/%T/packages"
 %R .. Replace with the current build tree revision (e.g. "r31262" or "75488c4a05b8033cf69e91874a61852db7ba9c6c")
 %T .. Replace with the current target (e.g. "ar71xx")
 %S .. Replace with the current target/subtarget combo (e.g. "adm5120/router_le")

SVN-Revision: 31262

include/version.mk [new file with mode: 0644]
package/base-files/Makefile
package/base-files/files/etc/banner
package/base-files/files/etc/openwrt_release [new file with mode: 0644]
package/base-files/files/etc/openwrt_version [new file with mode: 0644]
package/base-files/image-config.in
package/opkg/Makefile
package/opkg/files/opkg.conf

diff --git a/include/version.mk b/include/version.mk
new file mode 100644 (file)
index 0000000..af25be0
--- /dev/null
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+PKG_CONFIG_DEPENDS += \
+       CONFIG_VERSION_NUMBER \
+       CONFIG_VERSION_NICK \
+       CONFIG_VERSION_REPO \
+       CONFIG_VERSION_DIST
+
+VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
+VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),$(REVISION))
+
+VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
+VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),Bleeding Edge)
+
+VERSION_NICK:=$(call qstrip,$(CONFIG_VERSION_NICK))
+VERSION_NICK:=$(if $(VERSION_NICK),$(VERSION_NICK),$(RELEASE))
+
+VERSION_REPO:=$(call qstrip,$(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:=$(if $(VERSION_DIST),$(VERSION_DIST),OpenWrt)
+
+VERSION_SED:=$(SED) 's,%U,$(VERSION_REPO),g' \
+       -e 's,%V,$(VERSION_NUMBER),g' \
+       -e 's,%v,\L$(subst $(space),_,$(VERSION_NUMBER)),g' \
+       -e 's,%C,$(VERSION_CODE),g' \
+       -e 's,%c,\L$(subst $(space),_,$(VERSION_CODE)),g' \
+       -e 's,%N,$(VERSION_NICK),g' \
+       -e 's,%n,\L$(subst $(space),_,$(VERSION_NICK)),g' \
+       -e 's,%D,$(VERSION_DIST),g' \
+       -e 's,%d,\L$(subst $(space),_,$(VERSION_DIST)),g' \
+       -e 's,%R,$(REVISION),g' \
+       -e 's,%T,$(BOARD),g' \
+       -e 's,%S,$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET)),g' \
index c8088a021851395b375dd6402bcc485d976dcd71..f3bfecaa757c4ed3d02ec6b7e32533bcb5a65ee5 100644 (file)
@@ -8,9 +8,10 @@
 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/version.mk
 
 PKG_NAME:=base-files
 
 PKG_NAME:=base-files
-PKG_RELEASE:=104
+PKG_RELEASE:=105
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=opkg/host
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=opkg/host
@@ -453,7 +454,11 @@ define Package/base-files/install
        cut -d ':' -f 1-2 $(1)/etc/passwd > $(1)/etc/shadow; \
        $(SED) 's/$$$$/:0:0:99999:7:::/' $(1)/etc/shadow
 
        cut -d ':' -f 1-2 $(1)/etc/passwd > $(1)/etc/shadow; \
        $(SED) 's/$$$$/:0:0:99999:7:::/' $(1)/etc/shadow
 
-       $(SED) 's,$$$$R,$(REVISION),g' $(1)/etc/banner
+       $(VERSION_SED) \
+               $(1)/etc/banner \
+               $(1)/etc/openwrt_version \
+               $(1)/etc/openwrt_release
+
        mkdir -p $(1)/CONTROL
        mkdir -p $(1)/dev
        mkdir -p $(1)/etc/crontabs
        mkdir -p $(1)/CONTROL
        mkdir -p $(1)/dev
        mkdir -p $(1)/etc/crontabs
index efee88596f7c169aae615e223be8d8848ebd1c99..301861568230a1020145e38e377c641c796289c8 100644 (file)
@@ -3,7 +3,7 @@
  |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
  |_______||   __|_____|__|__||________||__|  |____|
           |__| W I R E L E S S   F R E E D O M
  |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
  |_______||   __|_____|__|__||________||__|  |____|
           |__| W I R E L E S S   F R E E D O M
- ATTITUDE ADJUSTMENT (bleeding edge, $R) ----------
+ ATTITUDE ADJUSTMENT (%C, %R) ----------
   * 1/4 oz Vodka      Pour all ingredients into mixing
   * 1/4 oz Gin        tin with ice, strain into glass.
   * 1/4 oz Amaretto
   * 1/4 oz Vodka      Pour all ingredients into mixing
   * 1/4 oz Gin        tin with ice, strain into glass.
   * 1/4 oz Amaretto
diff --git a/package/base-files/files/etc/openwrt_release b/package/base-files/files/etc/openwrt_release
new file mode 100644 (file)
index 0000000..8ad2d9d
--- /dev/null
@@ -0,0 +1,6 @@
+DISTRIB_ID="%D"
+DISTRIB_RELEASE="%C"
+DISTRIB_REVISION="%R"
+DISTRIB_CODENAME="%n"
+DISTRIB_TARGET="%S"
+DISTRIB_DESCRIPTION="%D %N %V"
diff --git a/package/base-files/files/etc/openwrt_version b/package/base-files/files/etc/openwrt_version
new file mode 100644 (file)
index 0000000..4b14f59
--- /dev/null
@@ -0,0 +1 @@
+%V
index aca511cdf5c77845b1d4cc6daa9314401fbe0310..497b092d263055c9061067e0d4fff459681c9059 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2012 OpenWrt.org
 # Copyright (C) 2010 Vertical Communications
 #
 # This is free software, licensed under the GNU General Public License v2.
 # Copyright (C) 2010 Vertical Communications
 #
 # This is free software, licensed under the GNU General Public License v2.
@@ -130,3 +130,56 @@ menuconfig INITOPT
                suppressed during preinit.  This is the default behaviour in 
                previous versions of OpenWRT.  Removing this does nothing if 
                stderr is suppressed during preinit (which is the default).
                suppressed during preinit.  This is the default behaviour in 
                previous versions of OpenWRT.  Removing this does nothing if 
                stderr is suppressed during preinit (which is the default).
+
+
+menuconfig VERSIONOPT
+    bool "Version configuration options" if IMAGEOPT
+    default n
+    help
+               These options allow to override the version information embedded in
+               the /etc/openwrt_version, /etc/openwrt_release, /etc/banner and 
+               /etc/opkg.conf files. Usually there is no need to set these, but
+               they're useful for release builds or custom OpenWrt redistributions
+               that should carry custom version tags.
+
+       config VERSION_DIST
+               string
+               prompt "Release distribution" if VERSIONOPT
+               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
+               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
+               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.
+
+       config VERSION_REPO
+               string
+               prompt "Release repository" if VERSIONOPT
+               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:
+                        %R .. Revision number
+                        %V .. Release version or revision number, uppercase
+                        %v .. Release version or revision number, lowercase
+                        %C .. Release version or "Bleeding Edge", uppercase
+                        %c .. Release version or "bleeding_edge", lowercase
+                        %N .. Release name, uppercase
+                        %n .. Release name, lowercase
+                        %D .. Distribution name or "OpenWrt", uppercase
+                        %d .. Distribution name or "openwrt", lowercase
+                        %T .. Target name
+                        %S .. Target/Subtarget name
index 30bf181e1ae5bd98c10c9fdd7e1fda04a3a0b156..56b4a54741388a49647568171acd7b4c2b361fd7 100644 (file)
@@ -1,11 +1,12 @@
 #
 #
-# Copyright (C) 2006-2011 OpenWrt.org
+# Copyright (C) 2006-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/version.mk
 
 PKG_NAME:=opkg
 PKG_REV:=618
 
 PKG_NAME:=opkg
 PKG_REV:=618
@@ -69,7 +70,7 @@ define Package/opkg/install
        $(INSTALL_DIR) $(1)/bin
        $(INSTALL_DIR) $(1)/etc
        $(INSTALL_DATA) ./files/opkg.conf $(1)/etc/
        $(INSTALL_DIR) $(1)/bin
        $(INSTALL_DIR) $(1)/etc
        $(INSTALL_DATA) ./files/opkg.conf $(1)/etc/
-       $(SED) 's,$$$$S,$(PKGARCH),g' $(1)/etc/opkg.conf
+       $(VERSION_SED) $(1)/etc/opkg.conf
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
 endef
 
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg
 endef
 
index 0e85936ba2c9a216a1f1231125446115c82d0bb9..6fb42b7fa40a3bec7fc2b985316834869497e912 100644 (file)
@@ -1,4 +1,4 @@
-src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/$S/packages
+src/gz %n %U
 dest root /
 dest ram /tmp
 lists_dir ext /var/opkg-lists
 dest root /
 dest ram /tmp
 lists_dir ext /var/opkg-lists