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") SVN-Revision: 31262
This commit is contained in:
		
							
								
								
									
										40
									
								
								include/version.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								include/version.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -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' \ | ||||||
| @@ -8,9 +8,10 @@ | |||||||
|  |  | ||||||
| include $(TOPDIR)/rules.mk | include $(TOPDIR)/rules.mk | ||||||
| include $(INCLUDE_DIR)/kernel.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_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ | ||||||
| PKG_BUILD_DEPENDS:=opkg/host | 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; \ | 	cut -d ':' -f 1-2 $(1)/etc/passwd > $(1)/etc/shadow; \ | ||||||
| 	$(SED) 's/$$$$/:0:0:99999:7:::/' $(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)/CONTROL | ||||||
| 	mkdir -p $(1)/dev | 	mkdir -p $(1)/dev | ||||||
| 	mkdir -p $(1)/etc/crontabs | 	mkdir -p $(1)/etc/crontabs | ||||||
|   | |||||||
| @@ -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 Vodka      Pour all ingredients into mixing | ||||||
|   * 1/4 oz Gin        tin with ice, strain into glass. |   * 1/4 oz Gin        tin with ice, strain into glass. | ||||||
|   * 1/4 oz Amaretto |   * 1/4 oz Amaretto | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								package/base-files/files/etc/openwrt_release
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								package/base-files/files/etc/openwrt_release
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | DISTRIB_ID="%D" | ||||||
|  | DISTRIB_RELEASE="%C" | ||||||
|  | DISTRIB_REVISION="%R" | ||||||
|  | DISTRIB_CODENAME="%n" | ||||||
|  | DISTRIB_TARGET="%S" | ||||||
|  | DISTRIB_DESCRIPTION="%D %N %V" | ||||||
							
								
								
									
										1
									
								
								package/base-files/files/etc/openwrt_version
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								package/base-files/files/etc/openwrt_version
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | %V | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| # Copyright (C) 2006 OpenWrt.org | # Copyright (C) 2006-2012 OpenWrt.org | ||||||
| # Copyright (C) 2010 Vertical Communications | # Copyright (C) 2010 Vertical Communications | ||||||
| # | # | ||||||
| # This is free software, licensed under the GNU General Public License v2. | # 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  | 		suppressed during preinit.  This is the default behaviour in  | ||||||
| 		previous versions of OpenWRT.  Removing this does nothing if  | 		previous versions of OpenWRT.  Removing this does nothing if  | ||||||
| 		stderr is suppressed during preinit (which is the default). | 		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 | ||||||
|   | |||||||
| @@ -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. | # This is free software, licensed under the GNU General Public License v2. | ||||||
| # See /LICENSE for more information. | # See /LICENSE for more information. | ||||||
|  |  | ||||||
| include $(TOPDIR)/rules.mk | include $(TOPDIR)/rules.mk | ||||||
| include $(INCLUDE_DIR)/kernel.mk | include $(INCLUDE_DIR)/kernel.mk | ||||||
|  | include $(INCLUDE_DIR)/version.mk | ||||||
|  |  | ||||||
| PKG_NAME:=opkg | PKG_NAME:=opkg | ||||||
| PKG_REV:=618 | PKG_REV:=618 | ||||||
| @@ -69,7 +70,7 @@ define Package/opkg/install | |||||||
| 	$(INSTALL_DIR) $(1)/bin | 	$(INSTALL_DIR) $(1)/bin | ||||||
| 	$(INSTALL_DIR) $(1)/etc | 	$(INSTALL_DIR) $(1)/etc | ||||||
| 	$(INSTALL_DATA) ./files/opkg.conf $(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 | 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/opkg-cl $(1)/bin/opkg | ||||||
| endef | endef | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/$S/packages | src/gz %n %U | ||||||
| dest root / | dest root / | ||||||
| dest ram /tmp | dest ram /tmp | ||||||
| lists_dir ext /var/opkg-lists | lists_dir ext /var/opkg-lists | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jo-Philipp Wich
					Jo-Philipp Wich