summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-04-12 17:31:16 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-04-12 17:31:16 +0000
commit8faa8431db13084170e190da7a65fd2035505c90 (patch)
treec73f1424a6aeb3e7a0184f0412973c9739b0008e
parent8b9ba93e94a6c4ce55e882b035988f68efa0313d (diff)
[buildroot] include, base-files, opkg: introduce version configuration to override the embedded version info of generated images
- Introduce new Kconfig symbols VERSION_DIST, VERSION_NICK, VERSION_NUMBER and VERSION_REPO to specify distribution, release name, version and repository for a given build - Introduce include/version.mk to provide common helpers for packages dealing with versions - Make opkg use version.mk to populate the opkg.conf template - Make base-files use version.mk to populate /etc/openwrt_version, /etc/openwrt_release and /etc/banner 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") git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31262 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/version.mk40
-rw-r--r--package/base-files/Makefile9
-rw-r--r--package/base-files/files/etc/banner2
-rw-r--r--package/base-files/files/etc/openwrt_release6
-rw-r--r--package/base-files/files/etc/openwrt_version1
-rw-r--r--package/base-files/image-config.in55
-rw-r--r--package/opkg/Makefile5
-rw-r--r--package/opkg/files/opkg.conf2
8 files changed, 113 insertions, 7 deletions
diff --git a/include/version.mk b/include/version.mk
new file mode 100644
index 000000000..af25be02f
--- /dev/null
+++ b/include/version.mk
@@ -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' \
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index c8088a021..f3bfecaa7 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -8,9 +8,10 @@
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
+include $(INCLUDE_DIR)/version.mk
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
@@ -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
- $(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
diff --git a/package/base-files/files/etc/banner b/package/base-files/files/etc/banner
index efee88596..301861568 100644
--- a/package/base-files/files/etc/banner
+++ b/package/base-files/files/etc/banner
@@ -3,7 +3,7 @@
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| 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
diff --git a/package/base-files/files/etc/openwrt_release b/package/base-files/files/etc/openwrt_release
new file mode 100644
index 000000000..8ad2d9d4f
--- /dev/null
+++ b/package/base-files/files/etc/openwrt_release
@@ -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
index 000000000..4b14f596f
--- /dev/null
+++ b/package/base-files/files/etc/openwrt_version
@@ -0,0 +1 @@
+%V
diff --git a/package/base-files/image-config.in b/package/base-files/image-config.in
index aca511cdf..497b092d2 100644
--- a/package/base-files/image-config.in
+++ b/package/base-files/image-config.in
@@ -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.
@@ -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).
+
+
+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
diff --git a/package/opkg/Makefile b/package/opkg/Makefile
index 30bf181e1..56b4a5474 100644
--- a/package/opkg/Makefile
+++ b/package/opkg/Makefile
@@ -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
+include $(INCLUDE_DIR)/version.mk
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/
- $(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
diff --git a/package/opkg/files/opkg.conf b/package/opkg/files/opkg.conf
index 0e85936ba..6fb42b7fa 100644
--- a/package/opkg/files/opkg.conf
+++ b/package/opkg/files/opkg.conf
@@ -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