Browse Source

Merge branch 'testing' into stable

for stable firmware 0.7.4
Karsten Böddeker 7 years ago
parent
commit
155d8e5edc

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+site.conf

+ 5 - 0
extra/default.conf

@@ -0,0 +1,5 @@
+subst = {
+	['%%SN'] = 'Bitte wählen',
+	['%%SC'] = 'ffho',
+	['%%SS'] = 'paderborn.freifunk.net',
+}

+ 97 - 32
extra/sites.conf

@@ -4,151 +4,214 @@
 -- 	site_name = 'Freifunk Hochstift - Paderborn (Umland)',
 --
 --	-- short name of the region
---	site_code = 'ffho_pad',
+--	site_code = 'ffho_pad_uml',
 --
---	-- wifi settings
---	ssid = 'hochstift.freifunk.net/pad-umlnd',
+--	subst = {
+--		-- wifi settings
+--		['%%SS'] = 'hochstift.freifunk.net/pad-umlnd',
+--	},
+--
+--	site-select = {
+--		hidden = 0,
+--		group = 'pad_uml'
+--	},
 --},
 {
 	{
 		site_name = 'Freifunk Hochstift - Altenbeken',
 		site_code = 'ffho_abn',
-		ssid = 'hochstift.freifunk.net/altenbkn',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/altenbkn',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Bad Driburg',
 		site_code = 'ffho_bdr',
-		ssid = 'hochstift.freifunk.net/driburg',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/driburg',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Bad Lippspringe',
 		site_code = 'ffho_rwb',
-		ssid = 'hochstift.freifunk.net/badlippsp',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/badlippsp',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Bad Wünnenberg',
 		site_code = 'ffho_wux',
-		ssid = 'hochstift.freifunk.net/wuennenb',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/wuennenb',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Beverungen',
 		site_code = 'ffho_bev',
-		ssid = 'hochstift.freifunk.net/beverungn',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/beverungn',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Borchen',
 		site_code = 'ffho_rhc',
-		ssid = 'hochstift.freifunk.net/borchen',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/borchen',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Borgentreich',
 		site_code = 'ffho_bxg',
-		ssid = 'hochstift.freifunk.net/borgentr',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/borgentr',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Brakel',
 		site_code = 'ffho_bkk',
-		ssid = 'hochstift.freifunk.net/brakel',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/brakel',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Büren',
 		site_code = 'ffho_buq',
-		ssid = 'hochstift.freifunk.net/bueren',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/bueren',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Delbrück',
 		site_code = 'ffho_dek',
-		ssid = 'hochstift.freifunk.net/delbrueck',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/delbrueck',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Geseke',
 		site_code = 'ffho_gee',
-		ssid = 'hochstift.freifunk.net/geseke',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/geseke',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Horn-Bad Meinberg',
 		site_code = 'ffho_zwg',
-		ssid = 'hochstift.freifunk.net/horn',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/horn',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Hövelhof',
 		site_code = 'ffho_hvf',
-		ssid = 'hochstift.freifunk.net/hoevelhof',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/hoevelhof',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Höxter',
 		site_code = 'ffho_hox',
-		ssid = 'hochstift.freifunk.net/hoexter',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/hoexter',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Lichtenau',
 		site_code = 'ffho_lit',
-		ssid = 'hochstift.freifunk.net/lichtenau',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/lichtenau',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Lippstadt',
 		site_code = 'ffho_lip',
-		ssid = 'hochstift.freifunk.net/lippstadt',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/lippstadt',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Marienmünster',
 		site_code = 'ffho_mms',
-		ssid = 'hochstift.freifunk.net/mms',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/mms',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Marsberg',
 		site_code = 'ffho_msg',
-		ssid = 'hochstift.freifunk.net/marsberg',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/marsberg',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Nieheim',
 		site_code = 'ffho_yni',
-		ssid = 'hochstift.freifunk.net/nieheim',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/nieheim',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Paderborn (Kernstadt)',
 		site_code = 'ffho_pad_cty',
-		ssid = 'hochstift.freifunk.net/pad-city',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/pad-city',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Paderborn (Umland)',
 		site_code = 'ffho_pad_uml',
-		ssid = 'hochstift.freifunk.net/pad-umlnd',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/pad-umlnd',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Salzkotten',
 		site_code = 'ffho_szn',
-		ssid = 'hochstift.freifunk.net/salzkottn',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/salzkottn',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Schieder-Schwalenberg',
 		site_code = 'ffho_yss',
-		ssid = 'hochstift.freifunk.net/schieder',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/schieder',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Schlangen',
 		site_code = 'ffho_xsc',
-		ssid = 'hochstift.freifunk.net/schlangen',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/schlangen',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Steinheim',
 		site_code = 'ffho_stm',
-		ssid = 'hochstift.freifunk.net/steinheim',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/steinheim',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Warburg',
 		site_code = 'ffho_wag',
-		ssid = 'hochstift.freifunk.net/warburg',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/warburg',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Willebadessen',
 		site_code = 'ffho_ywl',
-		ssid = 'hochstift.freifunk.net/willebdn',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/willebdn',
+		},
 	},
 	{
 		site_name = 'Freifunk Hochstift - Umland',
 		site_code = 'ffho_yho',
-		ssid = 'hochstift.freifunk.net/umland',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/umland',
+		},
 	},
 	-- start hidden sites here --
 	{
@@ -157,7 +220,9 @@
 		},
 		site_name = 'Freifunk Hochstift - Hamburg',
 		site_code = 'ffho_ham',
-		ssid = 'hochstift.freifunk.net/hamburg',
+		subst = {
+			['%%SS'] = 'hochstift.freifunk.net/hamburg',
+		},
 	},
 
 }

+ 41 - 49
site.conf → extra/template.conf

@@ -6,18 +6,18 @@
 
 	-- name of this site
 	-- site_name = 'Freifunk Hochstift - ${site}',
-	site_name = 'Bitte wählen',
-	
+	site_name = '%SN',
+
 	-- short name of this site
 	-- site_code = 'ffho_${un-code}'
-	site_code = 'ffho',
+	site_code = '%SC',
 
 	-- v4 and v6 prefixes in which nodes+clients might get an IP
-	prefix4 = '10.132.0.0/18',
+	prefix4 = '10.132.0.0/19',
 	prefix6 = 'fdca:ffee:ff12:132::/64',
 
 	-- extra ipv6 prefixes used in this mesh area
-	additional_prefix6 = { '2001:470:6d:860::/64', '2a03:2260:2342:2300::/64', },
+	additional_prefix6 = { '2001:470:6d:860::/64', '2a03:2260:2342::/64', },
 
 	-- timezone
 	timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', -- Europe/Berlin
@@ -29,43 +29,40 @@
 	opkg = {
 		openwrt = 'http://openwrt.draic.info/%n/%v/%S/packages',
 		extra = {
-			modules = 'http://firmware.ffho.net/modules/gluon-ffho-%GR/%S',
+			modules = 'http://firmware.srv.in.ffho.net/%GR/modules/%S',
 		},
 	},
 
 	-- regulatory domain of your wifi
-	regdom = '00',
+	regdom = 'DE',
 
 	-- wifi settings (2.4 GHz and 5 GHz)
 	-- ap.ssid = 'hochstift.freifunk.net/${kürzel}',
 	-- ibss.ssid = 'ffho-mesh-${un-code}',
 	-- ibss.bssid = '${idividual-mac}'
+	-- mesh.id = 'ffho-mesh-${un-code}',
 	wifi24 = {
 		channel = 1,
 		supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
 		basic_rate = {6000, 9000, 18000, 36000, 54000},
-
 		ap = {
 			ssid = 'paderborn.freifunk.net',
 		},
-
 		ibss = {
 			ssid = '02:d1:11:13:87:ad',
 			bssid = '02:d1:11:13:87:ad',
-			mesh_mcast_rate = 12000,
+			mcast_rate = 12000,
 		},
 	},
+
 	wifi5 = {
 		channel = 44,
-
 		ap = {
 			ssid = 'paderborn.freifunk.net',
 		},
-
-		ibss = {
-			ssid = '02:d1:11:13:87:ad',
-			bssid = '02:d1:11:13:87:ad',
-			mesh_mcast_rate = 12000,
+		mesh = {
+			id = 'ffho-mesh-legacy',
+			mcast_rate = 12000,
 		},
 	},
 
@@ -85,7 +82,7 @@
 	-- fastd (vpn) settings
 	fastd_mesh_vpn = {
 		-- cipher(s) to use
-		methods = {'salsa2012+gmac'},
+		methods = {'salsa2012+umac'},
 
 		-- the maximum transfer unit
 		-- use 1426 for IPv4 gateways
@@ -96,7 +93,7 @@
 				-- specifies how many servers are contacted
 				-- by a client simultanously
 				limit = 1,
-	
+
 				-- list all available vpn servers
 				peers = {
 					gw01 = {
@@ -106,8 +103,7 @@
 						-- Use public addresses here, these addresses are used when the mesh might not be connected yet.
 						-- format: '[|ipv4|ipv6] "hostname-or-ip-address" port 10000'
 						remotes = {
-							'ipv6 "v6.gw01.paderborn.freifunk.net" port 10000',
-							'ipv4 "v4.gw01.paderborn.freifunk.net" port 10000',
+							'"gw01.paderborn.freifunk.net" port 10000',
 							'ipv6 "2a01:4f8:190:2105::ff12" port 10000',
 							'ipv4 "85.10.248.243" port 10000',
 						},
@@ -115,17 +111,19 @@
 					gw02 = {
 						key = 'e8fa9bf402fd33dd1ba804a97f2e46c704423ff49e9c55312845a7bfb93121ad',
 						remotes = {
-							'ipv6 "v6.gw02.paderborn.freifunk.net" port 10000',
-							'ipv4 "v4.gw02.paderborn.freifunk.net" port 10000',
+							'"gw02.paderborn.freifunk.net" port 10000',
 							'ipv6 "2a01:4f8:190:6500::18:1" port 10000',
 							'ipv4 "78.46.242.24" port 10000',
 						},
 					},
+					gw03 = {
+						key = '629b2742922f068ef49558283aea4b75c1427d8cdd3fcd2dbd7c00880547d3b3',
+						remotes = { '"gw03.ffho.net" port 10000'},
+					},
 					gw04 = {
 						key = 'cf3855e5fa04e4c04a294cb6e8902f91c7ff7ef82bf031cc842a2b79b936677c',
 						remotes = {
-							'ipv6 "v6.gw04.paderborn.freifunk.net" port 10000',
-							'ipv4 "v4.gw04.paderborn.freifunk.net" port 10000',
+							'"gw04.paderborn.freifunk.net" port 10000',
 							'ipv6 "2a02:450:1:4::10" port 10000',
 							'ipv4 "80.70.181.57" port 10000',
 						},
@@ -133,8 +131,7 @@
 					gw05 = {
 						key = 'd0d32a2f536a0fc1f0c848e6da15bd96851d5ff4fdf9239c830bab033ddcec1a',
 						remotes = {
-							'ipv6 "v6.gw05.paderborn.freifunk.net" port 10000',
-							'ipv4 "v4.gw05.paderborn.freifunk.net" port 10000',
+							'"gw05.paderborn.freifunk.net" port 10000',
 							'ipv6 "2001:638:502:1884::ff05" port 10000',
 							'ipv4 "192.26.175.182" port 10000',
 						},
@@ -142,18 +139,11 @@
 					gw08 = {
 						key = '3da050bbf1c3e95af286af65553f546fd563d9cb5d4b3b3444069bef281de621',
 						remotes = {
-							'ipv6 "v6.gw08.paderborn.freifunk.net" port 10000',
-							'ipv4 "v4.gw08.paderborn.freifunk.net" port 10000',
+							'"gw08.paderborn.freifunk.net" port 10000',
 							'ipv6 "2a03:4000:6:1151::ff12" port 10000',
 							'ipv4 "5.45.107.59" port 10000',
 						},
 					},
-					ffho_gw01 = {
-						key = '629b2742922f068ef49558283aea4b75c1427d8cdd3fcd2dbd7c00880547d3b3',
-						remotes = {
-							'"gw01.ffho.net" port 10000',
-						},
-					},
 				},
 			},
 		},
@@ -161,11 +151,9 @@
 		-- default traffic shaping (bandwidth limit) settings
 		bandwidth_limit = {
 			enabled = false,
-			egress = 200,
-			ingress = 3000,
+			egress = 500,
+			ingress = 4000,
 		},
-
-
 	},
 
 	-- configure the autoupdater
@@ -182,42 +170,45 @@
 				-- where to get the manifest file (without the trailing /manifest)
 				-- It's wise to use an internal address here,
 				-- but specifying a publicly available update site does not hurt.
-				mirrors = {'http://[fdca:ffee:ff12:a254::80]/%GS/stable', 'http://firmware.ffho.net/%GS/stable'},
+				mirrors = {'http://firmware.srv.in.ffho.net/%SC/stable/sysupgrade', 'http://[2a03:2260:2342:f251::6]/%SC/stable/sysupgrade'},
 
 				-- Number of valid manifest signatures necessary to accept the manifest as "good".
 				good_signatures = 3,
 
 				-- list of public keys which are considered "good" for manifest signatures
 				pubkeys = {
-					'16b0e942929d6592d4a01b66b334427ba4db03b388a876432958d9010bd8d8b5', -- HeJ
 					'ba2e6ff4de41ade9959702195d4c26c764e7aab85c627363681c29dbc4a8a2c5', -- oscar-
 					'fb9d6beba63dcb6175d0248c1e743b5fe4359474eb264d27f389d7a962e24477', -- northalpha
 					'f70f9ddeb307fff8fca31a76f4fbd0ac676dab8ad143625f0a4160d434d72876', -- Barbarossa
 					'9841dde0b9f6485d5fcdc858fb15c1db1c3bc77fb81aef3f0d4b835f76a3d73b', -- kb-light
+					'39ef16b1853e54249dae2d06948329a93e3e13f354aaab792552aacd1d0b45ba', -- phimeas
+					'5126eda4161bca3fcae134fa0e1824e55dffb986cc4e7fe37842857a118e2820', -- leeps
 				},
 			},
 			testing = {
 				name = 'testing',
-				mirrors = {'http://[fdca:ffee:ff12:a254::80]/%GS/testing','http://firmware.ffho.net/%GS/testing'},
+				mirrors = {'http://firmware.srv.in.ffho.net/%SC/testing/sysupgrade', 'http://[2a03:2260:2342:f251::6]/%SC/testing/sysupgrade'},
 				good_signatures = 2,
 				pubkeys = {
-					'16b0e942929d6592d4a01b66b334427ba4db03b388a876432958d9010bd8d8b5', -- HeJ
 					'ba2e6ff4de41ade9959702195d4c26c764e7aab85c627363681c29dbc4a8a2c5', -- oscar-
 					'fb9d6beba63dcb6175d0248c1e743b5fe4359474eb264d27f389d7a962e24477', -- northalpha
 					'f70f9ddeb307fff8fca31a76f4fbd0ac676dab8ad143625f0a4160d434d72876', -- Barbarossa
 					'9841dde0b9f6485d5fcdc858fb15c1db1c3bc77fb81aef3f0d4b835f76a3d73b', -- kb-light
+					'39ef16b1853e54249dae2d06948329a93e3e13f354aaab792552aacd1d0b45ba', -- phimeas
+					'5126eda4161bca3fcae134fa0e1824e55dffb986cc4e7fe37842857a118e2820', -- leeps
 				},
 			},
 			experimental = {
 				name = 'experimental',
-				mirrors = {'http://[fdca:ffee:ff12:a254::80]/%GS/experimental','http://firmware.ffho.net/%GS/experimental'},
+				mirrors = {'http://firmware.srv.in.ffho.net/%SC/experimental/sysupgrade', 'http://[2a03:2260:2342:f251::6]/%SC/experimental/sysupgrade'},
 				good_signatures = 1,
 				pubkeys = {
-					'16b0e942929d6592d4a01b66b334427ba4db03b388a876432958d9010bd8d8b5', -- HeJ
 					'ba2e6ff4de41ade9959702195d4c26c764e7aab85c627363681c29dbc4a8a2c5', -- oscar-
 					'fb9d6beba63dcb6175d0248c1e743b5fe4359474eb264d27f389d7a962e24477', -- northalpha
 					'f70f9ddeb307fff8fca31a76f4fbd0ac676dab8ad143625f0a4160d434d72876', -- Barbarossa
 					'9841dde0b9f6485d5fcdc858fb15c1db1c3bc77fb81aef3f0d4b835f76a3d73b', -- kb-light
+					'39ef16b1853e54249dae2d06948329a93e3e13f354aaab792552aacd1d0b45ba', -- phimeas
+					'5126eda4161bca3fcae134fa0e1824e55dffb986cc4e7fe37842857a118e2820', -- leeps
 				},
 			},
 		},
@@ -227,17 +218,18 @@
 	debugserver = {
 		host = { 'debugreport.ffho.net', '2a01:a700:4621:d102::10' },
 		port = 1337,
-		liveport = 1338,
 	},
 
 	-- enable BATMAN on WAN interface by default (requires gluon-batman-on-wan package)
 	batman_on_wan = 0,
 
-	-- hide the altitude field in config mode
 	config_mode = {
 		geo_location = {
 			show_altitude = false,
 		},
+		owner = {
+			obligatory = false,
+		},
 	},
 
 	-- link to map
@@ -247,12 +239,12 @@
 
 	-- geo-default site
 	site_select = {
-		geo_default_site = 'ffho_uml',
+		geo_default_site = 'ffho_yho',
 	},
 
 	ath9k_workaround = {
-		blackout_wait = 720,
-		reset_wait = 1440,
+		blackout_wait = 90,
+		reset_wait = 720,
 		step_size = 10,
 	},
 }

+ 5 - 5
i18n/de.po

@@ -29,14 +29,14 @@ msgstr ""
 "kann sich dein Knoten mit dem Mesh-VPN verbinden. Bitte "
 "schicke dazu diesen Schlüssel und den Namen deines Knotens "
 "an <a href=\"mailto:kontakt@hochstift.freifunk.net\">kontakt@hochstift.freifunk.net</a> oder benutze am besten gleich das "
-"<a href=\"http://hochstift.freifunk.net/?page_id=366&key=<%=pubkey%>&nname=<%=hostname%>&mac=<%=sysconfig.primary_mac%>&email=<%=contact%>\"> "
+"<a href=\"http://hochstift.freifunk.net/?page_id=366&key=<%=urlescape(pubkey)%>&nname=<%=urlescape(hostname)%>&mac=<%=urlescape(sysconfig.primary_mac)%>&email=<%=urlescape(contact or '')%>\"> "
 "vorausgefüllte Formular auf unserer Webseite</a>.<br><br>"
 "</p>"
 "<div class=\"the-key\">"
-"<%=hostname%><br/><br/>"
-"# Owner: <%=contact%><br/>"
-"# MAC: <%=sysconfig.primary_mac%><br/>"
-"key \"<%= pubkey %>\";"
+"<%=escape(hostname)%><br/><br/>"
+"# Owner: <%=escape(contact or '')%><br/>"
+"# MAC: <%=escape(sysconfig.primary_mac)%><br/>"
+"key \"<%=escape(pubkey)%>\";"
 "</div>"
 
 msgid "gluon-config-mode:reboot"

+ 6 - 6
i18n/en.po

@@ -27,15 +27,15 @@ msgstr ""
 "connect to the mesh VPN until the key has been registered on the Freifunk "
 "Hochstift servers. "
 "To register the key fill out "
-"<a href=\"http://hochstift.freifunk.net/?page_id=366&key=<%=pubkey%>&nname=<%=hostname%>&mac=<%=sysconfig.primary_mac%>&email=<%=contact%>\">this form</a> "
-"or send it together with your node's name (<em><%=hostname%></em>) to "
+"<a href=\"http://hochstift.freifunk.net/?page_id=366&key=<%=urlescape(pubkey)%>&nname=<%=urlescape(hostname)%>&mac=<%=urlescape(sysconfig.primary_mac)%>&email=<%=urlescape(contact or '')%>\">this form</a> "
+"or send it together with your node's name (<em><%=escape(hostname)%></em>) to "
 "<a href=\"mailto:kontakt@hochstift.freifunk.net\">kontakt@hochstift.freifunk.net</a>."
 "</p>"
 "<div class=\"the-key\">"
-"<%=hostname%><br/><br/>"
-"# Owner: <%=contact%><br/>"
-"# MAC: <%=sysconfig.primary_mac%><br/>"
-"key \"<%= pubkey %>\";"
+"<%=escape(hostname)%><br/><br/>"
+"# Owner: <%=escape(contact or '')%><br/>"
+"# MAC: <%=escape(sysconfig.primary_mac)%><br/>"
+"key \"<%=escape(pubkey)%>\";"
 "</div>"
 
 msgid "gluon-config-mode:reboot"

+ 2 - 2
modules

@@ -1,5 +1,5 @@
 GLUON_SITE_FEEDS='ffho'
 
 PACKAGES_FFHO_REPO=http://git.c3pb.de/freifunk-pb/ffho-packages.git
-PACKAGES_FFHO_BRANCH=v2016.1.x
-PACKAGES_FFHO_COMMIT=f3eda0558c0af7ca837f947d0416143df6940d28
+PACKAGES_FFHO_BRANCH=v2016.2.x
+PACKAGES_FFHO_COMMIT=4d8cb845f98690186c907b1099a86e742ed4dfc8

+ 0 - 121
patches/0001-fix-ubnt-model-detection.patch

@@ -1,121 +0,0 @@
-From: Karsten Böddeker <freifunk@kb-light.de>
-Date: Mon, 4 Apr 2016 17:02:55 +0200
-Subject: [PATCH] fix UBNT model detection
-
----
- .../openwrt/1000-fix-UBNT-XM-model-detection.patch | 74 ++++++++++++++++++++++
- targets/ar71xx-generic/profiles.mk                 | 15 +++--
- 2 files changed, 85 insertions(+), 4 deletions(-)
- create mode 100644 patches/openwrt/1000-fix-UBNT-XM-model-detection.patch
-
-diff --git a/patches/openwrt/1000-fix-UBNT-XM-model-detection.patch b/patches/openwrt/1000-fix-UBNT-XM-model-detection.patch
-new file mode 100644
-index 0000000..79180b4
---- /dev/null
-+++ b/patches/openwrt/1000-fix-UBNT-XM-model-detection.patch
-@@ -0,0 +1,74 @@
-+From: Neal Oakey <neal.oakey@bingo-ev.de>
-+Date: Sun, 14 Feb 2016 20:58:20 +0100
-+Subject: fix UBNT XM model detection
-+
-+Signed-off-by: Neal Oakey <neal.oakey@bingo-ev.de>
-+
-+diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
-+index dab4d2c..e7b3cd2 100755
-+--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
-++++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
-+@@ -64,6 +64,40 @@ wndr3700_board_detect() {
-+ 	AR71XX_MODEL="$machine"
-+ }
-+ 
-++ubnt_get_mtd_part_magic() {
-++	ar71xx_get_mtd_offset_size_format EEPROM 4118 2 %02x
-++}
-++
-++ubnt_xm_board_detect() {
-++	local model
-++	local magic
-++
-++	magic="$(ubnt_get_mtd_part_magic)"
-++	case ${magic:0:3} in
-++		"e00"|\
-++		"e01"|\
-++		"e80") # It seams that there are different Versions of the Nanostation
-++			model="Ubiquiti NanoStation M"
-++			;;
-++		"e0a")
-++			model="Ubiquiti NanoStation loco M"
-++			;;
-++		"e1b") # Note: the M5 has not been tested!
-++		       #       and the Ti Versions are still missing
-++			model="Ubiquiti Rocket M"
-++			;;
-++		"e20"|\
-++		"e2d") # Bullet Ti M
-++			model="Ubiquiti Bullet M"
-++			;;
-++		"e30")
-++			model="Ubiquiti PicoStation M"
-++			;;
-++	esac
-++
-++	[ ! -z "$model" ] && AR71XX_MODEL="${model}${magic:3:1}"
-++}
-++
-+ cybertan_get_hw_magic() {
-+ 	local part
-+ 
-+@@ -475,12 +509,14 @@ ar71xx_board_detect() {
-+ 		;;
-+ 	*"Bullet M")
-+ 		name="bullet-m"
-++		ubnt_xm_board_detect
-+ 		;;
-+ 	*"Loco M XW")
-+ 		name="loco-m-xw"
-+ 		;;
-+ 	*"Nanostation M")
-+ 		name="nanostation-m"
-++		ubnt_xm_board_detect
-+ 		;;
-+ 	*"Nanostation M XW")
-+ 		name="nanostation-m-xw"
-+@@ -667,6 +703,7 @@ ar71xx_board_detect() {
-+ 		;;
-+ 	*"Rocket M")
-+ 		name="rocket-m"
-++		ubnt_xm_board_detect
-+ 		;;
-+ 	*"Rocket M XW")
-+ 		name="rocket-m-xw"
-diff --git a/targets/ar71xx-generic/profiles.mk b/targets/ar71xx-generic/profiles.mk
-index 4a63667..da178ea 100644
---- a/targets/ar71xx-generic/profiles.mk
-+++ b/targets/ar71xx-generic/profiles.mk
-@@ -162,12 +162,19 @@ $(eval $(call GluonModel,UBNT,ubnt-air-gateway,ubiquiti-airgateway))
- $(eval $(call GluonModel,UBNT,ubnt-airrouter,ubiquiti-airrouter))
- 
- $(eval $(call GluonModel,UBNT,ubnt-bullet-m,ubiquiti-bullet-m))
--$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-loco-m))
--$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-picostation-m))
--$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-rocket-m))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-nanostation-loco-m2))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-nanostation-loco-m5))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-rocket-m2))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-rocket-m5))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-bullet-m2))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-bullet-m5))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-bullet-m,ubiquiti-picostation-m2))
- 
--$(eval $(call GluonModel,UBNT,ubnt-loco-m-xw,ubiquiti-loco-m-xw))
- $(eval $(call GluonModel,UBNT,ubnt-nano-m,ubiquiti-nanostation-m))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-nanostation-m,ubiquiti-nanostation-m2))
-+$(eval $(call GluonModelAlias,UBNT,ubiquiti-nanostation-m,ubiquiti-nanostation-m5))
-+
-+$(eval $(call GluonModel,UBNT,ubnt-loco-m-xw,ubiquiti-loco-m-xw))
- $(eval $(call GluonModel,UBNT,ubnt-nano-m-xw,ubiquiti-nanostation-m-xw))
- $(eval $(call GluonModel,UBNT,ubnt-rocket-m-xw,ubiquiti-rocket-m-xw))
- $(eval $(call GluonModel,UBNT,ubnt-uap-pro,ubiquiti-unifi-ap-pro))
--- 
-2.1.4
-

+ 1 - 9
patches/0002-openwrt-patch-iw.patch → patches/0001-openwrt-patch-iw.patch

@@ -1,11 +1,6 @@
 From: Karsten Böddeker <freifunk@kb-light.de>
 Date: Sat, 23 Apr 2016 15:20:30 +0200
-Subject: [PATCH] openwrt: patch iw
-
----
- .../1001-iw-patch-200-reduce-size-patch.patch      | 23 ++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
- create mode 100644 patches/openwrt/1001-iw-patch-200-reduce-size-patch.patch
+Subject: openwrt: patch iw
 
 diff --git a/patches/openwrt/1001-iw-patch-200-reduce-size-patch.patch b/patches/openwrt/1001-iw-patch-200-reduce-size-patch.patch
 new file mode 100644
@@ -36,6 +31,3 @@ index 0000000..09c978e
 + +	bitrate.o vendor.o
 +  OBJS += sections.o
 +  
--- 
-2.1.4
-

+ 0 - 45
patches/0003-scripts-add-function-needed_var_in_array-to-check_si.patch

@@ -1,45 +0,0 @@
-From: Karsten Böddeker <freifunk@kb-light.de>
-Date: Thu, 30 Jun 2016 21:40:28 +0200
-Subject: [PATCH] scripts: add function needed_var_in_array to
- check_site_lib.lua
-
-The function need_var_in_array(varname, array, required) checks weather a value of a variable (specified by its name) is included in an array.
-If the variable is a table or array, the function checks the value of each element against the given array.
----
- scripts/check_site_lib.lua | 23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
-diff --git a/scripts/check_site_lib.lua b/scripts/check_site_lib.lua
-index 766b94a..9d581e9 100644
---- a/scripts/check_site_lib.lua
-+++ b/scripts/check_site_lib.lua
-@@ -103,3 +103,26 @@ function need_string_array(varname, required)
-    return assert(pcall(need_array, varname, function(e) assert_type(e, 'string') end, required),
- 		 "site.conf error: expected `" .. varname .. "' to be a string array")
- end
-+
-+function need_var_in_array(varname, array, required)
-+   local var = loadvar(varname)
-+
-+   if required == false and var == nil then
-+      return nil
-+   end
-+
-+   function var_in_array(var, array)
-+      for _, v in ipairs(array) do
-+         if v == var then
-+            return true
-+         end
-+      end
-+      return false
-+   end
-+
-+   for _,v in pairs(var) do
-+      assert(var_in_array(v, array), "site.conf error: `" .. v .. "' is not a valid value for " .. varname)
-+   end
-+
-+   return var
-+end
--- 
-2.1.4
-

+ 0 - 101
patches/0004-gluon-core-make-wifi-rates-configurable-by-site.conf.patch

@@ -1,101 +0,0 @@
-From: Karsten Böddeker <freifunk@kb-light.de>
-Date: Fri, 1 Jul 2016 14:53:39 +0200
-Subject: [PATCH] gluon-core: make wifi rates configurable by site.conf
-
-and add documentation
----
- docs/site-example/site.conf                             |  8 ++++++++
- docs/user/site.rst                                      |  8 ++++++++
- package/gluon-core/check_site.lua                       |  8 ++++++++
- package/gluon-core/files/lib/gluon/upgrade/200-wireless | 12 ++++++++++++
- 4 files changed, 36 insertions(+)
-
-diff --git a/docs/site-example/site.conf b/docs/site-example/site.conf
-index b58f525..1f67aab 100644
---- a/docs/site-example/site.conf
-+++ b/docs/site-example/site.conf
-@@ -35,6 +35,14 @@
-     -- Wireless channel.
-     channel = 1,
- 
-+    -- List of supported wifi rates (optional, implies basic_rate)
-+    -- Example removes 802.11b compatibility for better performance
-+    supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
-+
-+    -- List of basic wifi rates (optional)
-+    -- Example removes 802.11b compatibility for better performance
-+    basic_rate = {6000, 9000, 18000, 36000, 54000},
-+
-     -- ESSID used for client network.
-     ap = {
-       ssid = 'entenhausen.freifunk.net',
-diff --git a/docs/user/site.rst b/docs/user/site.rst
-index b26a28a..1ba9b4a 100644
---- a/docs/user/site.rst
-+++ b/docs/user/site.rst
-@@ -95,6 +95,12 @@ wifi24 : optional
-     This will only affect new installations.
-     Upgrades will not changed the disabled state.
- 
-+    Additionally it is possible to configure the ``supported_rates`` and ``basic_rate``
-+    of each radio. Both are optional, by default hostapd/driver dictate the rates.
-+    ``supported_rates`` implies ``basic_rate``, because ``basic_rate`` has to be a subset
-+    of ``supported_rates``.
-+    The example below disables 802.11b rates.
-+
-     ``ap`` requires a single parameter, a string, named ``ssid`` which sets the
-     interface's ESSID.
- 
-@@ -109,6 +115,8 @@ wifi24 : optional
- 
-        wifi24 = {
-          channel = 11,
-+         supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
-+         basic_rate = {6000, 9000, 18000, 36000, 54000},
-          ap = {
-            ssid = 'entenhausen.freifunk.net',
-          },
-diff --git a/package/gluon-core/check_site.lua b/package/gluon-core/check_site.lua
-index 1647d77..555360a 100644
---- a/package/gluon-core/check_site.lua
-+++ b/package/gluon-core/check_site.lua
-@@ -28,5 +28,13 @@ for _, config in ipairs({'wifi24', 'wifi5'}) do
-     need_string('regdom') -- regdom is only required when wifi24 or wifi5 is configured
- 
-     need_number(config .. '.channel')
-+
-+    local rates={1000, 2000, 5500, 6000, 9000, 11000, 12000, 18000, 24000, 36000, 48000, 54000}
-+    local supported_rates =  need_var_in_array(config .. '.supported_rates', rates, false)
-+    if supported_rates then
-+      need_var_in_array(config .. '.basic_rate', supported_rates, true)
-+    else
-+      need_var_in_array(config .. '.basic_rate', rates, false)
-+    end
-   end
- end
-diff --git a/package/gluon-core/files/lib/gluon/upgrade/200-wireless b/package/gluon-core/files/lib/gluon/upgrade/200-wireless
-index 5a98a70..d217428 100755
---- a/package/gluon-core/files/lib/gluon/upgrade/200-wireless
-+++ b/package/gluon-core/files/lib/gluon/upgrade/200-wireless
-@@ -17,6 +17,18 @@ local function configure_radio(radio, index, config)
-     uci:set('wireless', radio, 'channel', config.channel)
-     uci:set('wireless', radio, 'htmode', 'HT20')
-     uci:set('wireless', radio, 'country', site.regdom)
-+
-+    if config.supported_rates then
-+      uci:set_list('wireless', radio, 'supported_rates', config.supported_rates)
-+    else
-+      uci:delete('wireless', radio, 'supported_rates')
-+    end
-+
-+    if config.basic_rate then
-+      uci:set_list('wireless', radio, 'basic_rate', config.basic_rate)
-+    else
-+      uci:delete('wireless', radio, 'basic_rate')
-+    end
-   end
- end
- 
--- 
-2.1.4
-

+ 9 - 6
site.mk

@@ -1,36 +1,37 @@
 GLUON_SITE_PACKAGES := \
 	gluon-mesh-batman-adv-14 \
 	gluon-alfred \
+	ffho-ap-timer \
 	gluon-respondd \
 	ffho-ath9k-blackout-workaround \
-	ffho-autoupdater \
+	gluon-autoupdater \
 	ffho-autoupdater-wifi-fallback \
 	ffho-autoupdater-wifi-fallback-legacy \
 	ffho-banner \
 	gluon-config-mode-core \
 	gluon-config-mode-autoupdater \
 	gluon-config-mode-contact-info \
-	ffho-config-mode-geo-location \
+	gluon-config-mode-geo-location \
 	gluon-config-mode-hostname \
-	ffho-config-mode-mesh-vpn \
+	gluon-config-mode-mesh-vpn \
 	ffho-config-mode-site-select \
 	ffho-debug \
 	gluon-ebtables-filter-multicast \
 	gluon-ebtables-filter-ra-dhcp \
 	ffho-ebtables-net-rules \
+	ffho-fix-defaultroute \
 	gluon-luci-admin \
+	ffho-luci-ap-timer \
 	ffho-luci-autoupdater-wifi-fallback \
 	gluon-luci-portconfig \
 	gluon-luci-wifi-config \
 	gluon-mesh-vpn-fastd \
 	gluon-next-node \
-	ffho-node-tuning \
 	gluon-radvd \
 	ffho-respondd-config \
 	gluon-setup-mode \
 	ffho-site-auto-select \
 	ffho-status-page \
-	ffho-txpower-fix \
 	iwinfo \
 	iptables \
 	haveged
@@ -62,9 +63,11 @@ ifeq ($(GLUON_TARGET),x86-64)
 endif
 
 # 0.2~1 < 0.2 < 0.2+1 < 0.2-1 < 0.2.1 < 0.3
-DEFAULT_GLUON_RELEASE := 0.7.3~exp$(shell date '+%Y%m%d')
+DEFAULT_GLUON_RELEASE := 0.7.4~exp$(shell date '+%Y%m%d')
 DEFAULT_GLUON_PRIORITY := 0
 
 GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE)
 GLUON_PRIORITY ?= $(DEFAULT_GLUON_PRIORITY)
+GLUON_REGION ?= eu
 GLUON_LANGS ?= en de
+GLUON_ATH10K_MESH ?= 11s