- 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")
SVN-Revision: 31262
--- /dev/null
+#
+# 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' \
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
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
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| 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
--- /dev/null
+DISTRIB_ID="%D"
+DISTRIB_RELEASE="%C"
+DISTRIB_REVISION="%R"
+DISTRIB_CODENAME="%n"
+DISTRIB_TARGET="%S"
+DISTRIB_DESCRIPTION="%D %N %V"
-# 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.
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
#
-# 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
$(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
-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