Add gluon-legacy package with legacy upgrade scripts
This commit is contained in:
		
							parent
							
								
									65c7db78fd
								
							
						
					
					
						commit
						2454c8abb7
					
				| @ -1,3 +1,3 @@ | |||||||
| config wizard | config wizard | ||||||
|   option enabled '1' |   option enabled '0' | ||||||
|   option configured '0' |   option configured '0' | ||||||
|  | |||||||
| @ -1,6 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| OLD_CFG=/etc/config/config_mode |  | ||||||
| NEW_CFG=/etc/config/gluon-config-mode |  | ||||||
| 
 |  | ||||||
| [ -f $OLD_CFG ] && mv $OLD_CFG $NEW_CFG |  | ||||||
| @ -5,6 +5,13 @@ UPGRADE_DIR=/lib/gluon/upgrade | |||||||
| VERSION_DIR=/lib/gluon/version | VERSION_DIR=/lib/gluon/version | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | if [ -x /lib/gluon/legacy/legacy-upgrade ] && /lib/gluon/legacy/legacy-upgrade; then | ||||||
|  | 	HAS_LEGACY=1 | ||||||
|  | else | ||||||
|  | 	HAS_LEGACY= | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| mkdir -p "$VERSION_DIR" | mkdir -p "$VERSION_DIR" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -33,7 +40,11 @@ do_component() { | |||||||
| 
 | 
 | ||||||
| 		local oldversion="$(oldversion_of "$component")" | 		local oldversion="$(oldversion_of "$component")" | ||||||
| 		if [ -z "$oldversion" ]; then | 		if [ -z "$oldversion" ]; then | ||||||
| 			do_dir initial | 			if [ "$HAS_LEGACY" ]; then | ||||||
|  | 				do_dir legacy | ||||||
|  | 			else | ||||||
|  | 				do_dir initial | ||||||
|  | 			fi | ||||||
| 		else | 		else | ||||||
| 			local v | 			local v | ||||||
| 
 | 
 | ||||||
| @ -62,3 +73,7 @@ for component in *; do | |||||||
| 	[ "$component" != 'core' ] || continue | 	[ "$component" != 'core' ] || continue | ||||||
| 	do_component "$component" | 	do_component "$component" | ||||||
| done | done | ||||||
|  | 
 | ||||||
|  | if [ "$HAS_LEGACY" ]; then | ||||||
|  | 	/lib/gluon/legacy/legacy-upgrade-late | ||||||
|  | fi | ||||||
|  | |||||||
							
								
								
									
										36
									
								
								package/gluon-legacy/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								package/gluon-legacy/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | |||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  | 
 | ||||||
|  | PKG_NAME:=gluon-legacy | ||||||
|  | PKG_VERSION:=1 | ||||||
|  | PKG_RELEASE:=1.$(GLUON_CONFIG_VERSION) | ||||||
|  | 
 | ||||||
|  | PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) | ||||||
|  | 
 | ||||||
|  | include $(INCLUDE_DIR)/package.mk | ||||||
|  | 
 | ||||||
|  | define Package/gluon-legacy | ||||||
|  |   SECTION:=gluon | ||||||
|  |   CATEGORY:=Gluon | ||||||
|  |   TITLE:=Legacy update scripts | ||||||
|  |   DEPENDS:=+gluon-legacy | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | define Package/gluon-legacy/description | ||||||
|  | 	Gluon community wifi mesh firmware framework: legacy update scripts | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | define Build/Prepare | ||||||
|  | 	mkdir -p $(PKG_BUILD_DIR) | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | define Build/Configure | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | define Build/Compile | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | define Package/gluon-legacy/install | ||||||
|  | 	$(GLUON_GENERATE) ./generate/* $(1)/ | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | $(eval $(call BuildPackage,gluon-legacy)) | ||||||
							
								
								
									
										12
									
								
								package/gluon-legacy/generate/lib/gluon/legacy/legacy-upgrade
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								package/gluon-legacy/generate/lib/gluon/legacy/legacy-upgrade
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | RET=1 | ||||||
|  | 
 | ||||||
|  | for file in @legacy.version_files@; do | ||||||
|  | 	if [ -e "$file" ]; then | ||||||
|  | 		rm "$file" | ||||||
|  | 		RET=0 | ||||||
|  | 	fi | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | exit $RET | ||||||
							
								
								
									
										3
									
								
								package/gluon-legacy/generate/lib/gluon/legacy/legacy-upgrade-late
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								package/gluon-legacy/generate/lib/gluon/legacy/legacy-upgrade-late
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | rm -f @legacy.old_files@ | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | . /lib/functions.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | for config in @legacy.config_mode_configs@; do | ||||||
|  | 	if [ "$(uci -q get "$config".configured)" = '1' ]; then | ||||||
|  | 		uci_set gluon-config-mode '@wizard[0]' 'configured' '1' | ||||||
|  | 		uci_commit gluon-config-mode | ||||||
|  | 
 | ||||||
|  | 		break | ||||||
|  | 	fi | ||||||
|  | done | ||||||
							
								
								
									
										37
									
								
								package/gluon-legacy/generate/lib/gluon/upgrade/core/legacy/001-sysconfig
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								package/gluon-legacy/generate/lib/gluon/upgrade/core/legacy/001-sysconfig
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,37 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | . /lib/gluon/functions/sysconfig.sh | ||||||
|  | . /lib/ar71xx.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | get_primary_mac() { | ||||||
|  |     case "$(ar71xx_board_name)" in | ||||||
|  | 	tl-wdr3600|tl-wdr4300) | ||||||
|  | 	    cat /sys/class/ieee80211/phy1/macaddress | ||||||
|  | 	    ;; | ||||||
|  | 	*) | ||||||
|  | 	    cat /sys/class/ieee80211/phy0/macaddress | ||||||
|  | 	    ;; | ||||||
|  |     esac | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | iface_exists() { | ||||||
|  | 	local name="$1" | ||||||
|  | 	ip link show dev "${name//.*/}" >/dev/null 2>&1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | remove_bat0() { | ||||||
|  | 	sed -r -e 's/(^| )bat0( |$)/ /g' -e 's/^ | $//g' | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | mesh_ifname="$(uci get 'network.@legacy.mesh_ifname@.ifname' | remove_bat0)" | ||||||
|  | wan_ifname="$(uci get network.wan.ifname | remove_bat0)" | ||||||
|  | 
 | ||||||
|  | if [ -n "$wan_ifname" ] && iface_exists "$wan_ifname"; then | ||||||
|  | 	[ -z "$mesh_ifname" ] || sysconfig_set lan_ifname "$mesh_ifname" | ||||||
|  | 	sysconfig_set wan_ifname "$wan_ifname" | ||||||
|  | else | ||||||
|  | 	sysconfig_set wan_ifname "$mesh_ifname" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | sysconfig_set primary_mac "$(get_primary_mac)" | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | . /lib/functions.sh | ||||||
|  | . /lib/gluon/functions/sysconfig.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | case "$(ar71xx_board_name)" in | ||||||
|  | tl-wr1043nd|\ | ||||||
|  | tl-wdr3600|\ | ||||||
|  | tl-wdr4300) # fix up duplicate mac addresses | ||||||
|  | 	local mainaddr=$(sysconfig primary_mac) | ||||||
|  | 	local oIFS="$IFS"; IFS=":"; set -- $mainaddr; IFS="$oIFS" | ||||||
|  | 	local b2mask=0x02 | ||||||
|  | 
 | ||||||
|  | 	local wanaddr=$(printf "%02x:%s:%s:%02x:%s:%02x" $(( 0x$1 | $b2mask )) $2 $3 $(( (0x$4 + 1) % 0x100 )) $5 $(( (0x$6 + 1) % 0x100 )) ) | ||||||
|  | 
 | ||||||
|  | 	uci_set network wan macaddr "$wanaddr" | ||||||
|  | 	;; | ||||||
|  | esac | ||||||
|  | 
 | ||||||
|  | uci_commit network | ||||||
							
								
								
									
										19
									
								
								package/gluon-legacy/generate/lib/gluon/upgrade/core/legacy/020-wireless
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								package/gluon-legacy/generate/lib/gluon/upgrade/core/legacy/020-wireless
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | . /lib/functions.sh | ||||||
|  | 
 | ||||||
|  | config_load wireless | ||||||
|  | 
 | ||||||
|  | delete_legacy_iface() { | ||||||
|  | 	local iface="$1" | ||||||
|  | 
 | ||||||
|  | 	for wifi in @legacy.wifi_names@; do | ||||||
|  | 		if [ "$wifi" =  "$iface" ]; then | ||||||
|  | 			uci_remove wireless "$iface" | ||||||
|  | 			break | ||||||
|  | 		fi | ||||||
|  | 	done | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | config_foreach delete_legacy_iface 'wifi-iface' | ||||||
|  | uci_commit wireless | ||||||
| @ -0,0 +1,13 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | has_root_pwd() { | ||||||
|  | 	local pwd=$([ -f "$1" ] && cat "$1") | ||||||
|  | 	pwd="${pwd#*root:}" | ||||||
|  | 	pwd="${pwd%%:*}" | ||||||
|  | 
 | ||||||
|  | 	test -n "${pwd#[\!x]}" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | has_root_pwd /etc/passwd || has_root_pwd /etc/shadow || passwd -l root | ||||||
| @ -0,0 +1,18 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | . /lib/functions.sh | ||||||
|  | . /lib/gluon/functions/sysconfig.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | uci_rename network '@legacy.mesh_ifname@' 'client' | ||||||
|  | 
 | ||||||
|  | if [ "$(uci_get network client proto)" = 'none' ]; then | ||||||
|  | 	uci_remove network client auto | ||||||
|  | 	uci_remove network client accept_ra | ||||||
|  | 
 | ||||||
|  | 	uci_set network client proto 'dhcpv6' | ||||||
|  | 	uci_set network client reqprefix 'no' | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | uci_commit network | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | . /lib/functions.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | SECRET= | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | for config in @legacy.fastd_configs@; do | ||||||
|  | 	if [ -z "$SECRET" ]; then | ||||||
|  | 		SECRET="$(uci_get fastd "$config" secret)" | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	uci_remove fastd "$config" | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | if [ -n "$SECRET" ]; then | ||||||
|  | 	uci_add fastd fastd 'mesh_vpn' | ||||||
|  | 	uci_set fastd 'mesh_vpn' 'secret' "$SECRET" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | uci_commit fastd | ||||||
| @ -0,0 +1,19 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | . /lib/functions.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | for config in @legacy.tc_configs@; do | ||||||
|  | 	if uci -q get "$config" >/dev/null; then | ||||||
|  | 		uci_add gluon-simple-tc interface 'mesh_vpn' | ||||||
|  | 		uci_set gluon-simple-tc 'mesh_vpn' ifname 'mesh-vpn' | ||||||
|  | 
 | ||||||
|  | 		uci_set gluon-simple-tc 'mesh_vpn' enabled "$(uci get "$config".enabled)" | ||||||
|  | 		uci_set gluon-simple-tc 'mesh_vpn' limit_ingress "$(uci get "$config".downstream)" | ||||||
|  | 		uci_set gluon-simple-tc 'mesh_vpn' limit_egress "$(uci get "$config".upstream)" | ||||||
|  | 
 | ||||||
|  | 		uci_commit gluon-simple-tc | ||||||
|  | 
 | ||||||
|  | 		break | ||||||
|  | 	fi | ||||||
|  | done | ||||||
| @ -25,9 +25,6 @@ add_user gluon-fastd 800 | |||||||
| 
 | 
 | ||||||
| uci_add fastd fastd mesh_vpn | uci_add fastd fastd mesh_vpn | ||||||
| 
 | 
 | ||||||
| uci_remove fastd mesh_vpn config |  | ||||||
| uci_remove fastd mesh_vpn config_peer_dir |  | ||||||
| 
 |  | ||||||
| uci_set fastd mesh_vpn user 'gluon-fastd' | uci_set fastd mesh_vpn user 'gluon-fastd' | ||||||
| uci_set fastd mesh_vpn syslog_level 'verbose' | uci_set fastd mesh_vpn syslog_level 'verbose' | ||||||
| uci_set fastd mesh_vpn interface 'mesh-vpn' | uci_set fastd mesh_vpn interface 'mesh-vpn' | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user