Compare commits

...

2579 Commits

Author SHA1 Message Date
alex 46faa546ab „Jenkinsfile“ ändern 2021-09-12 18:03:56 +02:00
alex dec9964500 „Jenkinsfile“ ändern 2021-09-12 17:59:25 +02:00
alex 636546a34b „Jenkinsfile“ ändern 2021-09-12 17:58:27 +02:00
alex 447fd2d241 „Jenkinsfile“ ändern 2021-09-12 17:51:51 +02:00
alex 3a9cc79c8a „Jenkinsfile“ ändern 2021-09-12 17:44:39 +02:00
alex 53bad41684 „Jenkinsfile“ ändern 2021-09-12 17:42:20 +02:00
alex 480b1e2207 „Jenkinsfile“ ändern 2021-09-12 17:13:57 +02:00
alex 6811777292 „Jenkinsfile“ hinzufügen 2021-09-10 13:18:39 +02:00
Alexander Böhm ae2afcee2b Updated site config 2021-08-09 23:04:18 +02:00
Alexander Böhm ebeb446bef Added site config 2021-08-03 21:37:52 +02:00
David Bauer d3d22ba677
ath79-generic: add support for Joy-IT JT-OR750i (#2282) 2021-07-30 20:16:34 +02:00
David Bauer 596c6314a9 modules: update OpenWrt
a205de5594 ramips: mt76x8: add missing config symbol
8abe67d6d2 x86: move Kconfig symbol to common config
2e1a5a4353 generic: add missing Kconfig symbol

Fixes #2277

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-30 20:14:49 +02:00
David Bauer 108d613f1c modules: update OpenWrt
941ba3ffc4 ath79: fix JT-OR750i switch LED assignment
17cb9a9a9e ath79: enable missing pinmux for JT-OR750i
a5850c049e ath79: add support for Joy-IT JT-OR750i
55d9c020a1 netifd: update to the latest version
089efd61e9 netifd: update to the latest version
60fad8f82b glibc: update to latest 2.33 HEAD (bug 28011)
c58afca1aa glibc: update to latest 2.33 HEAD (BZ #27646, bug 27896, BZ #15271)
249aeaa9d8 dnsmasq: distinct Ubus names for multiple instances
a1d50e7b45 kernel: bump 5.4 to 5.4.132
88c8d0a219 dnsmasq: add /tmp/hosts/ to jail_mount
4633471d74 odhcpd: fix invalid DHCPv6 ADVERTSIE with small configured leasetime (FS#3935)

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-29 20:52:34 +02:00
Steffen Förster 9fb00d137b
ramips-mt76x8: add support for TP-Link RE200 v2 (#2275)
TP-Link RE200 v2 is a wireless range extender with Ethernet and 2.4G and 5G
WiFi with internal antennas. It's based on MediaTek MT7628AN+MT7610EN.

Specifications
--------------

- MediaTek MT7628AN (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 1x 10/100 Mbps Ethernet
- UART header on PCB (57600 8n1)
- 8x LED (GPIO-controlled), 2x button

There are 2.4G and 5G LEDs in red and green which are controlled
separately.

MAC addresses
-------------

The MAC address assignment matches stock firmware, i.e.:
LAN : *:0D
2.4G: *:0E
5G  : *:0F

Installation
------------

Web Interface
-------------

It is possible to upgrade to OpenWrt via the web interface. Simply flash
the -factory.bin from OEM. In contrast to a stock firmware, this will not
overwrite U-Boot.
2021-07-29 08:34:51 +02:00
David Bauer 46194fb87d ath79-generic: remove superluous newline 2021-07-29 00:44:32 +02:00
lemoer d4dee692c6
contrib: add push_pkg.sh to enhance package development workflow (v2) (#2023)
v2: In contrast to the last patches, this is now built on top of ssh
    only, without using e.g. 9pfs. Furthermore it works also with
    arbitary remote hosts on any target/architecture. Also the
    scripts were renamed and moved to /scripts.

The aim of this commit is to allow fast rebuild cycles during the
development of gluon packages.

Currently the following workflow can be used:

	# start a local qemu instance
	scripts/run_qemu.sh output/images/factory/[...].img

	# do your changes in the file you want to patch
	vi package/gluon-ebtables/files/etc/init.d/gluon-ebtables

	# rebuild and update the package
	scripts/push_pkg.sh package/gluon-ebtables/

	# test your changes
	...

	# do more changes
	...

	# rebuild and update the package
	scripts/push_pkg.sh package/gluon-ebtables/

	# test your changes
	...

	(and so on...)

Implementation details:
- Currently this is based on ssh/scp.
- Opkg is used to install/update the packages in the remote machine.

Benefits:
- This works with compiled and non-compiled packages.
- This works with native OpenWrt and Gluon packages.
- This even performs the check_site.lua checks as they are integrated
  as post_install scripts into the openwrt package.
- It works for all architectures/targets.
2021-07-23 19:50:15 +02:00
Matthias Schiffer f4a3afe8fb
treewide: correctly specify conffiles (#2276)
Specify conffiles for our packages, so they aren't overwritten during
opkg updates. While this only matters during development, it is
unintended to have different behaviour for opkg update and full firmware
updates.
2021-07-23 19:48:58 +02:00
lemoer 3a885a1b22
gluon-status-page: make "gateway nexthop" a link (#2278)
With this commit, the gateway nexthop is now a clickable link, that leads
to the status page of the nexthop.
2021-07-23 19:10:27 +02:00
Matthias Schiffer e7df324639
Merge pull request #2249 from freifunk-gluon/doctheme
docs: update Sphinx theme
2021-07-21 19:21:27 +02:00
David Bauer 338a831ae3 modules: update OpenWrt
df4feb1655 ipq40xx: fix FRITZRepeater 1200 RGMII delay
f3f70fb956 netifd: update to the latest version

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-18 16:43:50 +02:00
David Bauer 9fa45ac489
ramips-mt76x8: add support for RAVPower RP-WD009 (#2265) 2021-07-18 16:41:27 +02:00
Matthias Schiffer bfec08546b
gluon-core: use uci:delete_all() instead of foreach()+delete() (#2273) 2021-07-17 23:24:01 +02:00
David Bauer f01c62e594
gluon-core: wireless: support PHY lookup for multi-PHY devices (#2267)
The PHY lookup helper "find_phy_by_path" could not lookup the PHY name
for paths from multi-phy devices.

An example for such a path would be:
'1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0+1'

The integer after the plus (+) character determines the PHY index of the
specific device in relation to the PHY with the lowest index of the
device.

For example, if the device provides phy2 and phy3, the above path would
describe phy3. In case the device provides phy0 and phy1, it would
describe phy1.

Rewrite the "find_phy_by_path" function to support those paths as well
as regular device paths in a universal manner.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-17 22:50:02 +02:00
aiyion.prime c2e27196de
gluon-web-admin: use util.popen3 in remote.lua
[Matthias Schiffer: whitespace changes, error handling]
2021-07-15 17:55:08 +02:00
aiyion.prime e410a9c2e5 gluon-core: implement popen3() in gluon/util.lua
[Matthias Schiffer: simplify close_fds() helper and use in child process]
2021-07-15 17:53:07 +02:00
Matthias Schiffer 14236ed8f6
Merge pull request #2237 from freifunk-gluon/installed-check-site
Run site check for manual package installations
2021-07-14 16:20:20 +02:00
Matthias Schiffer 76a242b595
Merge pull request #2271 from freifunk-gluon/tiny-flash-cleanup
Remove ramips-rt305x and now unused build features
2021-07-14 16:20:01 +02:00
David Bauer 5ec8676b28
gluon-core: delete all network device sections (#2263)
Delete all default network device sections upon first boot.

Only LAN & WAN networks are defined at this point. We are using the
legacy way of definiting bridges via the interface sections ifname
option.

The prior filtering was based upon a single device and didn't take into
consideration that DSA interface names can be named arbitrarily.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-14 01:49:33 +02:00
David Bauer 73b0128468 modules: update OpenWrt
23cde9d12a mpc85xx: add missing Kconfig symbols
fe498dd3f1 netifd: update to the latest version

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-13 22:21:36 +02:00
Matthias Schiffer aed14db84f build: remove no_opkg
With the removal of ramips-rt305x, all targets come with opkg again.
2021-07-13 21:37:39 +02:00
Matthias Schiffer c23bc293ef treewide: remove GLUON_SPECIALIZE_KERNEL
With the removal of ramips-rt305x, the last user of
GLUON_SPECIALIZE_KERNEL is gone.
2021-07-13 21:37:39 +02:00
Matthias Schiffer 09c9b78e30 ramips-rt305x: drop target
VoCores aren't exactly useful mesh nodes except for experimentation.
They certainly aren't worth maintaining a whole target, in particular
one that has a WLAN driver not used by any other target.
2021-07-13 21:37:39 +02:00
David Bauer 6ff19a495f modules: update OpenWrt
38cdc57be6 mediatek: add missing config symbols
6073d2c02a generic: add missing config symbols
8921e36ed8 iwinfo: move device info into -data package
d3278c4343 build: ensure that dash isn't prepended twice to abi version suffix
47f617ef8d build: prepend ABI suffixes with a dash if package name ends with digit
febf6db0d0 ath79: add missing MTD_NAND_RB91X symbol
983fcc42a4 ath79: add missing GPIO_LATCH symbol
0ad49d368b ath79: mikrotik: fix beeper phantom noise on RB912
ffa943f0b9 ath79: ar934x: fix mounting issues if subpage is not supported
88e1c9b0b5 ath79: add support for MikroTik RouterBOARD 912UAG-2HPnD
bd2e070557 ath79: add NAND driver for MikroTik RB91xG series
43723e6db9 ath79: add gpio-latch driver for MikroTik RouterBOARDs
3eb34bc251 hostapd: make wnm_sleep_mode_no_keys configurable
89d21b7f62 hostapd: make country3 option configurable
72f0733123 ltq-deu: Mark lantiq DEU broken
b0424190ef iwinfo: build with nl80211 backend only and make shared
d723002d84 treewide: unmark selected packages nonshared
86f6171788 ath10k-ct: fix typo in Makefile
24cfa5005e ath10k-ct: update to latest version
69c10497c7 kernel/modules: move act_gact into kmod-sched-core
fc4b5411b3 package/comgt: Handle bind/unbind events

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-13 01:00:30 +02:00
Martin Weinelt 76185e3a2a
gluon-status-page: relax nodeinfo query timeout (#2262)
It was found that a one second timeout for nodeinfo data may be too low,
so that when a node is otherwise occupied that timeout may be reached
too often.

The nodeinfo query response is also vital to the status-page base
template, so that when it times out, the site will be turned in a broken
state, that it cannot recover from.

Fixes: #2256
2021-07-12 19:23:29 +02:00
Matthias Schiffer 3a2d176df8
build: run site checks for manual package installations 2021-07-12 17:07:40 +02:00
Matthias Schiffer 298723c22b
gluon-core: gluon-check-site: do not fail when IPKG_INSTROOT is unset 2021-07-12 17:06:49 +02:00
Matthias Schiffer eb3fad4bae
build: move check_site.lua main script into gluon-core package
Installing the script into the image allows site checks to run for
manual package installations via opkg.
2021-07-12 17:06:35 +02:00
Matthias Schiffer 3386221ef1
gluon.mk: fix indentation
A leading tab character usually marks recipe lines in Makefiles;
non-recipe lines must be indented using spaces.

The incorrect tab character doesn't seen to have caused any issues in
this case, but it should be fixed nonetheless, if only for consistency.
2021-07-11 22:39:48 +02:00
David Bauer 19759f8cd3
Merge pull request #2264 from blocktrron/origin-ap3610
ath79-generic: add support for Siemens WS-AP3610
2021-07-07 17:05:55 +02:00
David Bauer 99c13423fc ath79-generic: add support for Siemens WS-AP3610 2021-07-06 19:20:17 +02:00
David Bauer 19381a235e modules: update Gluon packages
825aa0c respondd-module-airtime: fix null pointer deref
2021-07-03 02:34:00 +02:00
Martin Weinelt 97f6710d45
Merge pull request #2259 from blocktrron/bugfix-util-file-contains-line-exists
gluon-core: util: check if file exists prior to reading
2021-07-01 03:42:36 +02:00
Martin Weinelt 737a239c31
Merge pull request #2258 from blocktrron/pr-update-actions
actions: add mediatek-mt7622 target
2021-07-01 03:41:21 +02:00
David Bauer 4f133ac24e actions: add mediatek-mt7622 target
Add the newly added mediatek-mt7622 to the firmware build-test matrix.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-01 03:35:06 +02:00
David Bauer ff9f295f7d gluon-core: util: check if file exists prior to reading
The file_contains_line helper function was not testing whether a file
exists or not prior attempting to read from it.

Add this check to circumvent errors on the private WiFi config in
case the hwflags file is missing.

Reported-by: Tom Herbers <freifunk@tomherbers.de>
Tested-by: Tom Herbers <freifunk@tomherbers.de>
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-01 03:14:08 +02:00
David Bauer e8159069d5 modules: update OpenWrt
d666ebcaa3 ubus: update to the latest version
a9100f2196 base-files: wifi: tidy up the reconf code
b27b63b082 base-files: wifi:  swap the order of some ubus calls
6f13a39035 mac80211: print an error if wifi teardown fails
9302e63d1a mac80211: always call wireless_set_data  (FS#3784)
bea9380149 mac80211: fix no_reload logic (FS#3902)
ccbe535604 mac80211: backport fix for nl80211 control port tx (fixes FS#3857)
4c29ff7cb8 mac80211: add support for 802.3 encap offload with software rate control
a078037ace mac80211: improve rate control performance
9fa925362f busybox: sysntpd: add trigger to reload server
a75928d125 busybox: sysntpd: option to bind server to iface

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-01 03:07:35 +02:00
David Bauer 439b3e0208 gluon-core: read NanoPi R2S primary MAC from LAN board data
The relevant entry for the primary MAC location was lost when rebasing
the patch on OpenWrt 21.02.

Fixes commit ded4b8a711 ("rockchip-armv8: add FriendlyARM NanoPi R2S")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-07-01 03:05:50 +02:00
Martin Weinelt 1b620c831b
Merge pull request #2250 from blocktrron/pr-nanopi-r2s 2021-06-30 22:01:54 +02:00
Martin Weinelt 598f78f89a
Merge pull request #2257 from blocktrron/pr-routing-url
modules: update routing feed URL
2021-06-30 21:56:36 +02:00
David Bauer 3f8d12f55c modules: update routing feed URL
The OpenWrt routing feed was moved to the OpenWrt GitHub org.

Update the URL, as the old one might not work in the future.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-30 21:51:35 +02:00
David Bauer 969d406427
Merge pull request #2252 from blocktrron/pr-docs-a5-v11
docs: remove dropped hardware from docs
2021-06-30 19:16:18 +02:00
David Bauer ab4c99842a
Merge pull request #2255 from blocktrron/pr-u6-lr
mediatek-mt7622: add support for UniFi 6 LR
2021-06-29 23:32:36 +02:00
David Bauer 4e00f1f62c
Merge pull request #2254 from Dark4MD/new-device-mi4a-gigabit
ramips-mt7621: add Xiaomi Mi Router 4A (Gigabit Edition)
2021-06-29 23:32:29 +02:00
David Bauer 436e39b43d
Merge pull request #2253 from Dark4MD/new-device-mi4c
ramips-mt76x8: add Xiaomi Mi Router 4C
2021-06-29 23:32:18 +02:00
David Bauer 3d94a09e96 mediatek-mt7622: add support for Ubiquiti UniFi 6 LR
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-29 22:23:05 +02:00
David Bauer 260a75cd59 gluon-core: use HE radio mode if available
Configure a radio for HE (802.11ax) operation in case it's supported by
the hardware. This can be the case for 2.4 GHz as well as 5 GHz.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-29 22:23:05 +02:00
Dark4MD aab7d8aca9 ramips-mt76x8: add Xiaomi Mi Router 4C
Specifications:

- CPU: MediaTek MT7628AN (580MHz)
- Flash: 16MB
- RAM: 64MB DDR2
- 2.4 GHz: IEEE 802.11b/g/n with Integrated LNA and PA
- Antennas: 4x external single band antennas
- WAN: 1x 10/100M
- LAN: 2x 10/100M
- LEDs: 2x yellow/blue. Programmable (labelled as power on case)
                      - Non-programmable (shows WAN activity)
- Button: Reset

How to install:

1- Use OpenWRTInvasion to gain telnet and ftp access.
2- Push openwrt firmware to /tmp/ using ftp.
3- Connect to router using telnet. (IP: 192.168.31.1 -
   Username: root - No password)
4- Use command "mtd -r write /tmp/firmware.bin OS1" to flash into
   the router..
5- It takes around 2 minutes. After that router will restart itself
   to OpenWrt.
2021-06-29 11:04:11 +02:00
Dark4MD a5e085b57c ramips-mt7621: add Xiaomi Mi Router 4A (Gigabit Edition)
Specifications:

- SoC:      MediaTek MT7621
- Flash:    16 MiB NOR SPI
- RAM:      128 MiB DDR3
- Ethernet: 3x 10/100/1000 Mbps (switched, 2xLAN + WAN)
- WIFI0:    MT7603E 2.4GHz 802.11b/g/n
- WIFI1:    MT7612E 5GHz 802.11ac
- Antennas: 4x external (2 per radio), non-detachable
- LEDs:     Programmable "power" LED (two-coloured, yellow/blue)
            Non-programmable "internet" LED (shows WAN activity)
- Buttons:  Reset

Installation:

Bootloader won't accept any serial input unless "boot_wait" u-boot
environment variable is changed to "on".

Vendor firmware won't accept any serial input until "uart_en" is
set to "1".

Using the https://github.com/acecilia/OpenWRTInvasion exploit you
can gain access to shell to enable these options:

To enable uart keyboard actions - 'nvram set uart_en=1'
To make uboot delay boot work - 'nvram set boot_wait=on'
Set boot delay to 5 - 'nvram set bootdelay=5'

Then run 'nvram commit' to make the changes permanent.

Once in the shell (following the OpenWRTInvasion instructions) you
can then run the following to flash OpenWrt and then reboot:

'cd /tmp; curl https://downloads.openwrt.org/...-sysupgrade.bin
  --output firmware.bin; mtd -e OS1 -r write firmware.bin OS1'
2021-06-29 11:02:15 +02:00
David Bauer c8b1999780 docs: remove dropped hardware from docs
Fixes commit 89dc6b203d ("ramips-rt305x: drop devices with insufficient flash")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-29 00:47:17 +02:00
David Bauer 0f60214fc0 actions: add rockchip-armv8 target 2021-06-29 00:25:09 +02:00
David Bauer ded4b8a711 rockchip-armv8: add FriendlyARM NanoPi R2S 2021-06-29 00:25:09 +02:00
David Bauer 4985b21858 modules: update OpenWrt
e16a45f258 iwinfo: update to latest Git HEAD
0c51b265bf iwinfo: update to latest Git HEAD
85cef1cf22 kernel: bump 5.4 to 5.4.128
e171d11f55 libusb: Fix parsing of descriptors for multi-configuration devices
3d62b5d5c6 base-files: fix /tmp/TZ when zoneinfo not installed
3047df2317 base-files: fix zoneinfo support
ab5010d170 exfat: update to 5.12.3
72d93c1ba4 realtek: Fix failsafe mode
7a5a247c1f base-files: failsafe: Remove the VLAN modifier from interface name
c0fdfd15fc base-files: failsafe: Fix IP configuration
98b1a6435f kernel: Backport patch to automatically bring up DSA master when opening user port
ec780bdb92 kernel-5.4: backport latest patches for wireguard
82c700de67 hostapd: fix handling of the channel utilization options
1247a6bb35 bcm4908: fix Ethernet broken state after interface restart
25daa921da bcm4908: add kmod-gpio-button-hotplug
74dbf3412b base-files: fix typo in config_generate MAC check
125deb4d78 base-files: set MAC for bridge ports (devices) instead of bridge itself
e410ef8389 hostapd: wolfssl: add RNG to EC key
f6d8c0cf2b wolfssl: always export wc_ecc_set_rng
56228e9393 ath79: don't autodetect AR8033 PHY capabilities
2e157714a8 build,json: fix generation with empty profiles
8add3e139c build: preserve profiles.json between builds
2021-06-27 22:38:26 +02:00
Martin Weinelt 4f53b9848c
Merge pull request #2248 from blocktrron/pr-ar71xx-cleanup 2021-06-26 23:53:23 +02:00
David Bauer 9c60b455c9 docs: hardware: fix minor grammar issue 2021-06-26 22:55:03 +02:00
Matthias Schiffer 65c9d05d54
docs: drop obselete theme fixes 2021-06-26 20:40:43 +02:00
Matthias Schiffer 32ae071954
docs: pin theme version
rtd.io uses a severely outdated theme version with several known bugs by
default. Pin to a never version to get the bugfixes.
2021-06-26 20:39:31 +02:00
Matthias Schiffer 028c1de03a
docs: add .readthedocs.yml to set Python version and requirements.txt 2021-06-26 20:39:22 +02:00
David Bauer 69ba8e3cfe gluon-core: fix handling of multi-port interfaces
Multi-port interfaces are stored in the network config as an array using
the ports key.
2021-06-26 19:56:17 +02:00
David Bauer 98b16933d3 gluon-core: update board.json interface path
Single LAN and WAN interfaces are now stored in the network configs
"device" key.
2021-06-26 19:55:38 +02:00
Martin Weinelt e7c45e5425
Merge pull request #2236 from freifunk-gluon/badges 2021-06-26 02:33:43 +02:00
David Bauer f16061e021 docs: replace ar71xx occurences with ath79
Replace occurences of ar71xx with ath79. Remove references of ar71xx
targets which are not relevant anymore.
2021-06-26 02:20:08 +02:00
David Bauer 9fdc57c175 treewide: drop ar71xx platform specific code 2021-06-26 02:17:15 +02:00
David Bauer 003c90f0b2 docs: drop ar71xx targets from supported devices 2021-06-26 02:14:59 +02:00
Martin Weinelt 916cc33802
Merge pull request #2235 from freifunk-gluon/next-2102 2021-06-26 00:15:19 +02:00
David Bauer 4a75e0942e generic: drop BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS
These config changes are not necessary anymore, as it's now the default
behavior.

Ref: https://github.com/freifunk-gluon/gluon/pull/2235#issuecomment-859654947
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-26 00:12:28 +02:00
David Bauer 6ba58c9b17 generic: force per-device RootFS
All targets now use OpenWrt device abstraction. Thus, all targets now
can be built using a per-device RootFS.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-22 01:59:48 +02:00
David Bauer 38a11eaca8 gluon-core: remove default bridge devices 2021-06-22 01:59:48 +02:00
David Bauer a02270651c actions: update workflow 2021-06-22 01:59:48 +02:00
David Bauer 2aa6f90bb3 docs contrib: add dependency on qemu-utils 2021-06-22 01:59:48 +02:00
David Bauer ddd0d35d2e generic: remove TLS packages
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-22 01:59:48 +02:00
David Bauer 45c84a117b ar71xx: drop target 2021-06-22 01:59:48 +02:00
David Bauer 89dc6b203d ramips-rt305x: drop devices with insufficient flash 2021-06-22 01:59:48 +02:00
Martin Weinelt f4b0d007f3 contrib: Dockerfile: install rsync
The kernel build requires rsync.
2021-06-22 01:59:48 +02:00
David Bauer 9afb48b6b8 x86: use upstream APU2 LED / GPIO driver 2021-06-22 01:59:48 +02:00
Martin Weinelt 4d0b8ccca3 contrib: Dockerfile: add python3, drop python2 2021-06-22 01:59:48 +02:00
David Bauer bed66fa248 ath79: move GL.iNet GL-AR750S to NAND subtarget 2021-06-22 01:59:48 +02:00
Martin Weinelt 74c0717171 x86: fix reference to kmod-sp5100-tco 2021-06-22 01:59:48 +02:00
David Bauer 2acc7f1bae x86: update profile names 2021-06-22 01:59:48 +02:00
David Bauer 0bfa4417dd mpc85xx: update profile names 2021-06-22 01:59:48 +02:00
David Bauer df78d58d35 sunxi: update profile names 2021-06-22 01:59:48 +02:00
David Bauer 102fcac799 gluon-core: update ramips boardnames 2021-06-22 01:59:48 +02:00
David Bauer 7e0b450ec8 ramips: update profile names 2021-06-22 01:59:48 +02:00
Martin Weinelt 77007d0c1d brcm2708: rename targets to bcm27xx 2021-06-21 16:28:15 +02:00
David Bauer a38f2a4cf1 packages: fix missing argument to posix.glob 2021-06-21 16:28:15 +02:00
David Bauer 002e3a9c19 targets: remove wpad-basic-wolfssl by default 2021-06-21 16:28:15 +02:00
David Bauer aab2b914b8 modules: switch to OpenWrt 21.02 2021-06-21 16:28:15 +02:00
David Bauer 4f68ddf0d0
Merge pull request #2242 from Dark4MD/master
ramips-mt76x8: add Xiaomi Mi Router 4A (100M Edition)
2021-06-21 16:17:25 +02:00
Matthias Schiffer 7e45878b4e
Merge pull request #2240 from blocktrron/pr-gluon-mesh-vpn-respondd-fix
gluon-mesh-vpn-core: fix potential null pointer dereferences
2021-06-16 17:29:15 +02:00
David Bauer 8d565cefc9
Merge pull request #2241 from freifunk-gluon/gluon-mesh-vpn-tunneldigger-fix
gluon-mesh-vpn-tunneldigger: fix Lua mesh-vpn provider module location
2021-06-16 10:32:10 +02:00
David Bauer 344f8a47db gluon-mesh-vpn-core: fix two more missing NULL checks
read_stdout can return NULL and thus the return value need to be checked
prior to accessing it.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-16 10:31:49 +02:00
Dark4MD 0b00ed9193 ramips-mt76x8: add Xiaomi Mi Router 4A (100M Edition) 2021-06-15 20:12:35 +02:00
Matthias Schiffer f7e473edfa
gluon-mesh-vpn-tunneldigger: fix Lua mesh-vpn provider module location 2021-06-15 16:32:37 +02:00
David Bauer 7e1e9fe2bd gluon-mesh-vpn-core: avoid reading null pointer
In case the limit_ingress or limit_egress options are not present in
gluon's mesh_vpn section the respondd provider compares a string literal
with a NULL pointer, crashing respondd.

Check both pointers prior to comparing them in order to mitigate this
issue.

Suggested-by: Matthias Schiffer <mschiffer@universe-factory.net>
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-14 11:08:38 +02:00
Matthias Schiffer 867b18deeb
Merge pull request #2234 from freifunk-gluon/lua-jsonc-host
treewide: use lua-jsonc instead of lua-cjson for JSON handling during build
2021-06-13 09:06:32 +02:00
Matthias Schiffer 8a422ac0cb treewide: use lua-jsonc instead of lua-cjson for JSON handling during build 2021-06-12 23:30:47 +02:00
Matthias Schiffer 8a41d8d72d modules: update Gluon packages
64148a9baf14 lua-jsonc: add host build support
c2623391bf42 lua-jsonc: do not link against liblua
2021-06-12 23:30:47 +02:00
Martin Weinelt 091230d3ea
README.md: add a teaster, update state of documentation 2021-06-11 00:32:39 +02:00
Martin Weinelt 897efe0759
README.md: add some badges 2021-06-11 00:22:42 +02:00
Martin Weinelt 05199e7e33
docs: expand on multicast improvements in v2021.1
I mixed up two separate improvements into one, this change aims to
clarify them based on a suggestion and conversation with @T-X.
2021-06-11 00:08:24 +02:00
Martin Weinelt 206e0fe5e0
Merge pull request #2230 from freifunk-gluon/release-notes/v2021.1 2021-06-10 23:41:55 +02:00
Martin Weinelt 187386cb79
README, docs: Gluon v2021.1 2021-06-10 23:20:56 +02:00
Martin Weinelt 9c1b943036
docs: Add v2021.1 release notes 2021-06-10 23:20:56 +02:00
David Bauer 3f59fdc648 modules: update OpenWrt packages
476b8b82b Merge pull request #15806 from blocktrron/pr-xr-usb-serial-1907
73c098477 xr_usb_serial_common: add PKG_MIRROR_HASH
7100f4006 xr_usb_serial_common: fix build
465ddb5b2 Merge pull request #15770 from DeathCamel58/libnet-1.2.x-libnet-config-fix
f7d4a6753 Merge pull request #15780 from stangri/19.07-https-dns-proxy
6ab17abde https-dns-proxy: update to 2021-06-03-1
bdbf33f69 libnet: Export `libnet-config` in development enviornments

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-08 17:27:41 +02:00
Martin Weinelt c97be1e18a
Merge pull request #2209 from T-X/pr-batman-adv-noflood+mcast-fw-relax 2021-06-08 01:40:12 +02:00
David Bauer 20f665b16d
Merge pull request #2217 from AiyionPrime/status_page_bandwidth_limit
gluon-status-page: add bandwidth limit
2021-06-08 01:37:36 +02:00
David Bauer 278f6c3b62 modules: update OpenWrt
ffd4452f8b mac80211: Update to backports version 4.19.193-test1
ccc505502e kernel: bump 4.14 to 4.14.235
2021-06-08 01:15:22 +02:00
aiyion.prime b973c8f133 gluon-status-page: show bandwidth limits 2021-06-07 21:21:42 +02:00
David Bauer edff676de9
Merge pull request #2216 from AiyionPrime/meshvpn_core_respondd_simple_tc
gluon-mesh-vpn-core: respondd bandwidth_limit
2021-06-07 19:51:58 +02:00
aiyion.prime c71959df68 gluon-mesh-vpn-core: add simple-tc respondd-provider
omit unlimited bandwidth limit
A value of '-' marks a streamdirection as unlimited.
2021-06-07 11:27:12 +02:00
David Bauer 16c5c64141
Merge pull request #2220 from AiyionPrime/status_page_vpn_protocol
gluon-status-page: vpn protocol
2021-06-06 19:51:48 +02:00
aiyion.prime b53997836f gluon-status-page: show vpn protocol 2021-06-05 21:39:34 +02:00
David Bauer ece75b9824
Merge pull request #2227 from blocktrron/master-modules-update-040621
modules: update to latest Git HEAD
2021-06-04 22:30:40 +02:00
David Bauer b2414ec4a9
Merge pull request #2219 from AiyionPrime/meshvpn_core_respondd_vpn
gluon-mesh-vpn-core: respondd active, enabled
2021-06-04 18:47:01 +02:00
David Bauer b246300f96 modules: update OpenWrt routing
101632e Merge pull request #658 from ecsv/batadv-for-19.07
a995b62 batman-adv: Merge bugfixes from 2021.1
118536c bird2: Makefile polishing
9d6ef13 bird2: update to version 2.0.8

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-04 18:42:27 +02:00
aiyion.prime b0b80a32b7 gluon-mesh-vpn-core: add vpn protocol respondd provider 2021-06-04 18:41:10 +02:00
David Bauer c90d6b98a8 modules: update OpenWrt packages
1c90bc08a banip: remove logd dependency
ad6476b4f Merge pull request #15728 from stangri/19.07-https-dns-proxy
2b0cb41c0 https-dns-proxy: 2021-05-14 bugfix: fallback to HTTP/1 by default
e8c0e3c20 netdata: update to version 1.30.1
e23677d86 Merge pull request #15717 from stangri/19.07-https-dns-proxy
b28e2c763 https-dns-proxy: update to 2021-05-14-1; bugfixes for dhcp server backup
2543c33b0 syslog-ng: update to 3.32.1
e05c97a19 nano: update version to 5.7
91e1399cf nextdns: Update to version 1.32.1
9fd4ed8af bind: bump to 9.16.15
aebeefcd5 zerotier: update to 1.6.5
18b564ef5 Merge pull request #15509 from hswong3i/openwrt-19.07-SQUID_enable-ssl-crtd
ad6712d42 squid: Enable dynamic SSL certificate generation
439da3db8 mosquitto: fix log_type config support
221785358 ksmbd-tools: update to 3.3.9
3412c7a45 dnscrypt-proxy2: sync blocked-names to upstream one
139217f8a dnscrypt-proxy2: upgrade to 2.0.45
27678dc75 adblock: fix polish source URL
e426ad56b Merge pull request #15477 from rs/nextdns-1.32.0-openwrt-19.07
6027afee1 nextdns: Update to version 1.32.0
afed88b48 Merge pull request #15468 from rs/nextdns-1.12.5-openwrt-19.07
f1e6b878f nextdns: Update to version 1.12.5
11dc84032 irqbalance: upgrade to version 1.8.0
287154116 pulseaudio: update to 14.0
3bdf75bd2 pulseaudio: fix compilation without deprecated OpenSSL APIs
ba0558e8a pulseaudio: fix compilation with ICONV_FULL
1248994b9 pulseaudio: Update ARM NEON/VFP detection
4021cb65a pulseaudio: do not build NEON with unsupported platforms
8eb7d95ba pulseaudio: add lto and gc-sections to reduce size
15fb6ec36 pulseaudio: fix pkgconfig paths
eac2ca1c6 pulseaudio: update to 13.0
f0aa4486a pulseaudio: Backport upstream patch
e5701228c Merge pull request #15384 from VolunteerComputingHelp/openwrt-19.07
8ca4ab69e Merge pull request #15413 from luizluca/19.07/ruby-2.6.7
5c16a052f ruby: update to 2.6.7
807e088bb netdata: disable shared memory totals by default
09ba05583 https-dns-proxy: bugfix: race condition with dnsmasq
0072fc533 boinc: Transfer v7.16.16 from 21.02 to 19.07
ba1a801f7 adblock: fix games_tracking source url
1cf2e3530 Merge pull request #15254 from dibdot/19.07
74c8fb403 travelmate: minimal change to fix cp detection
56e1674ef rpcd-mod-lxc: add postinst to reload rpcd on update/installation
560a0ea2b ksmbd-tools: update to 3.3.8
0863ab323 ksmbd-tools: Add a mDNS TXT record for the ksmbd service
52d3ce0f6 ksmbd-tools: update to 3.3.7
f275b3f41 ksmbd-tools: update to 3.3.6
ba329c4ea ksmbd-tools: update to 3.3.5
055b1cd58 nut: fix typo in nutshutdown script
e88b4d873 netdata: update to version 1.29.3
f6bc822ff syslog-ng: update to version 3.31.2

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-04 18:40:44 +02:00
David Bauer 88224a209a modules: update OpenWrt
1153773c78 ubox: fix init script validation of log_ip option
a1ee0ebbd8 tools/mklibs: Fix compile with GCC 11
84c5dbcf2a openwrt-keyring: Only copy sign key for 19.07 and 21.02
c07c98d28e openwrt-keyring: add OpenWrt 21.02 GPG/usign keys
e10830193c generic: platform/mikrotik: release mtd device after use
f342de468b kernel: bump 4.14 to 4.14.232
ded3ad3c2f Extend checks on build prerequisites for building OpenWRT core
5bec393fcb prereq-build: test for perl's Data::Dumper
a2728a806a tplink-safeloader: fix C7v5 factory flashing from vendor fw > v1.1.x

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-06-04 18:39:07 +02:00
David Bauer c88ddb4ba6
Merge pull request #2226 from AiyionPrime/pr_doc_refresh_patches
docs: add 'make refresh-patches'
2021-05-27 17:57:59 +02:00
aiyion.prime 9303297b35 docs: add 'make refresh-patches' 2021-05-27 11:25:31 +02:00
David Bauer 71c3b8321b
Merge pull request #2102 from blocktrron/mesh-vpn-abstraction
mesh-vpn: fully abstract VPN methods
2021-05-26 21:15:42 +02:00
David Bauer 98a1c196ed mesh-vpn: fully abstract VPN methods
This fully abstracts VPN methods, making gluon-mesh-vpn-fastd and
gluon-mesh-vpn-tunneldigger completely self-contained.

Provide a LUA interface for generic interacting with VPN methods in
gluon-mesh-vpn-core and web packages.

This also adds the ability to install tunneldigger and fastd to the same
image, selecting the VPN method based on the selected domain.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-22 06:54:23 +02:00
David Bauer 17dd5abd75
Merge pull request #2223 from freifunk-gluon/wizard-reconfigure
Simplify save/commit handling of config wizard sections
2021-05-19 13:39:03 +02:00
David Bauer 436b29d767 gluon-config-mode-core: add missing uci save
A missing uci save for gluon-setup-mode caused the initial setup-process
to be stuck in a config-mode loop.
2021-05-18 19:16:18 +02:00
Matthias Schiffer 42335a07c9
gluon-config-mode-core: unconditionally run gluon-reconfigure
Simplify the individual form providers by always running reconfigure. This
also commits all UCI packages, so we can remove all tracking of UCI
sections from the wizard code.

Instead of returning a list of packages to commit, the providers just
save their settings directly. Explicit runs of upgrade scripts are
removed, as they are now run by reconfigure.
2021-05-15 00:03:02 +02:00
Matthias Schiffer 16fab561db
gluon-config-mode-mesh-vpn: override Section:write() instead of Section:handle() 2021-05-15 00:03:02 +02:00
Matthias Schiffer df9fa32d58
gluon-web-model: add state tracking to sections
This add support for a write() method on sections, in addition to the
value and form level write(). write() is only called when the section is
valid and visible. In addition, write() is empty by default, so it can be
overridden more easily.
2021-05-15 00:02:44 +02:00
Martin Weinelt bb920eaefc
targets: clarify why ar71xx-mikrotik is marked as broken 2021-05-14 18:34:17 +02:00
Martin Weinelt 9f37489881
Merge pull request #2221 from freifunk-gluon/auto-labeling 2021-05-14 01:31:43 +02:00
Martin Weinelt d4057c3eb6
.github/labeler.yml: auto label pull requests
according to the paths they touch.
2021-05-14 01:31:14 +02:00
Martin Weinelt 0ac3061225
Merge pull request #2214 from AiyionPrime/status_page_mesh_protocol 2021-05-09 16:53:49 +02:00
David Bauer 10486b1b7a
Merge pull request #2218 from AiyionPrime/fix_respondd_leak
libgluonutil: free getline
2021-05-08 22:54:10 +02:00
aiyion.prime 5c12b037d7 libgluonutil: free getline
Co-Authored-By: lemoer <git@irrelefant.net>
2021-05-08 20:35:24 +02:00
David Bauer 1c38906eef
Merge pull request #2163 from lemoer/pr_vpn_as_gluon_wired
Generalize proto "gluon_wired.sh"
2021-05-07 00:10:27 +02:00
aiyion.prime a683486514 fixup! gluon-status-page: add mesh protocol to status-page 2021-05-06 19:03:06 +02:00
David Bauer 545713ac9f
Merge pull request #2213 from freifunk-gluon/modules-openwrt
modules: update OpenWrt
2021-05-06 17:14:50 +02:00
aiyion.prime 77a6b9a947 gluon-status-page: add mesh protocol to status-page 2021-05-06 16:37:32 +02:00
Martin Weinelt 47a2f03660
modules: update OpenWrt
1b5a45a4a7 mac80211: Update to backports version 4.19.189-1
a883e3af38 dropbear: Fix CVE-2020-36254
2021-05-06 01:51:12 +02:00
lemoer bbecd44be1 gluon-core: extend gluon_wired proto for l3 devices
This is a preparation to use the gluon_wired.sh proto on top of
layer 3 tunnel interfaces.
2021-05-06 00:43:01 +02:00
lemoer c14b4c0b4b gluon-core: add vxlan option to gluon_wired proto
Before this commit the decision whether a vxlan layer will be
introduced between the lower interface before the interface is
added to batman was inside the proto. Now the decision is moved
to the user of the proto.
2021-05-06 00:43:01 +02:00
David Bauer 9e09d08cf6
Merge pull request #2177 from blocktrron/pr-wan-radio-ifname
gluon-web-private-wifi: define ifname for WAN radio
2021-05-03 17:39:31 +02:00
David Bauer 589dff7c14 modules: update OpenWrt
08ef2073d4 ramips: backport unlocked mdiobus accessors
2021-05-03 00:44:56 +02:00
David Bauer e729b81312 gluon-private-wifi: add package
Add a package for handling upgrade-scripts speific for the WAN radio
operation.

This way, the config mode interface can be removed seperately from the
core functionality to perform tasks on system upgrade. This can be
useful when the setup-mode is removed entirely for space preservation.
2021-05-02 23:25:32 +02:00
David Bauer 5f08b47659 modules: update OpenWrt
7198ae4cf3 openvpn: update to 2.4.11
a8beddcd34 openvpn: update to 2.4.9
f82ddf9024 openvpn: update to 2.4.8
718e97c5c8 ramips: mt7530 swconfig: fix race condition in register access
8788e86245 ppp/pppoe-discovery: fix -W option
4398a35067 kernel: bump 4.14 to 4.14.231
906f560e79 kernel: bump 4.14 to 4.14.230
2021-05-02 20:59:45 +02:00
Martin Weinelt 46d2008eef
Merge pull request #2210 from blocktrron/mesh-sae-unused-params
mesh-wireless-sae: drop unused function parameters
2021-05-02 13:58:58 +02:00
David Bauer a922944fee mesh-wireless-sae: drop unused function parameters
Drop these unused parameters in the function description, as only the
first parameter is referenced within the function block.
2021-05-02 02:20:00 +02:00
Linus Lüssing 98f3f63842 gluon-ebtables-filter-multicast: relax IPv6 multicast firewall rules
Allow the transmission of IPv6 multicast packets as long as they are not
flooded through the whole mesh.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2021-05-01 22:36:14 +02:00
Linus Lüssing cb505a354a batman-adv: Introduce no noflood mark
This mark prevents a multicast packet being flooded through the whole
mesh. The advantage of marking certain multicast packets via e.g.
ebtables instead of dropping is then the following:

This allows an administrator to let specific multicast packets pass as
long as they are forwarded to a limited number of nodes only and are
therefore creating no burdon to unrelated nodes.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2021-05-01 22:33:59 +02:00
David Bauer f4adb66772 gluon-web-private-wifi: define ifname for WAN radio
Set the ifname for the WAN radio (Private WLAN) to wanX, X being the
radio index.

All other radios created by Gluon already have their ifname defined
following this pattern.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-01 20:57:15 +02:00
Martin Weinelt a63be6928c
Merge pull request #2208 from blocktrron/actions-next-subbranch
actions: build gluon for next sub-branches
2021-05-01 13:54:59 +02:00
David Bauer 53b647f748 actions: build gluon for next sub-branches
Currently we do not perform CI firmware builds on the next-2102 branch.

Build Gluon for all branches starting with "next" to increase the
coverage of our build tests.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-01 13:35:36 +02:00
Martin Weinelt 069c8b2035
Merge pull request #2207 from blocktrron/web-admin-flashsize
web-admin: fix firmware partition name
2021-05-01 12:27:26 +02:00
David Bauer d0551c2dcd web-admin: fix firmware partition name
The rudimentary flash size determination function expects the partition
for the devices firmware to be called "linux" while it is (since quite
some time) "firmware".

Fix this error to display available flash size as well as more useful
error message in case the uploaded firmware image exceeds the flash
space.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-01 03:15:51 +02:00
David Bauer 4cd644a7a8
Merge pull request #2206 from T-X/pr-batman-adv-enable-mcast-optimizations
gluon-mesh-batman-adv: reenable batman-adv multicast optimizations
2021-04-29 01:07:52 +02:00
Linus Lüssing 288daf5a47 gluon-mesh-batman-adv: reenable batman-adv multicast optimizations
With batman-adv 2020.4 and the according backports to batman-adv v2019.2
several more bugs were found and fixed regarding the batman-adv
multicast optimizations feature.

Also a "wakeup-call" feature was added to the Linux bridge IGMP/MLD
snooping code in Gluon to work around issues with Android devices.

With batman-adv now at v2019.2, multicast-to-multi-unicasts conversion
is supported, too. Which means that even if there are a few outdated nodes
these and all other recipients will be served multicast packets via unicast,
too, as long as the sum of receiving nodes does not exceed the multicast
fanout setting (default: 16). If is exceeded, then batman-adv will revert
back to broadcast flooding automatically.

Long story short, with all these extra measures in place, let's reenable
the batman-adv multicast optimizations to reduce the layer 2 overhead
and in preparation for multicast applications in the future.

The default is enabled for this feature anyway, so removing the
"batctl multicast_mode 0" overwrite is sufficient.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2021-04-29 00:40:39 +02:00
Martin Weinelt 7904e0315f
modules: update OpenWrt
cc0b70467d mac80211: backport upstream fixes
2c46ba4356 kernel: backport fix for flexcan bug
7f3ec4ce39 kernel: bump 4.14 to 4.14.229
273ded68b8 kernel: bump 4.14 to 4.14.228
c43c434b58 kernel: bump 4.14 to 4.14.227
2021-04-28 01:14:56 +02:00
Martin Weinelt 3b9aebf13b .editorconfig: bunch of additions
Formats:
- Restructured Text
- JSON
- MarkDown

Specific Files:
- .ecrc
- CMakeLists.txt

Ignore:
- /patches/ directory, we will not be editing foreign patches for their
  indentation
2021-04-28 01:01:35 +02:00
David Bauer 24a21336d8
Merge pull request #2128 from tokudan/master-autoupdater-doc
autoupdater: document behaviour if manifest DATE is in the future
2021-04-28 00:57:17 +02:00
Daniel Frank be9d2cd201
docs: autoupdater: document manifest header
Explains the behaviour when DATE is either in the future or in the past
and hints at how the firmware rollout can be controlled using the
PRIORITY variable.

Co-Authored-By: Martin Weinelt <martin@darmstadt.freifunk.net>
2021-04-28 00:54:21 +02:00
David Bauer 3f267d637e
Merge pull request #1986 from 2tata/archer-d50
targets/ath79-generic: add archer-D50 v1
2021-04-28 00:31:06 +02:00
Jan-Tarek Butt 9826a12b38 ath79-generic: add Archer D50 v1
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-28 00:30:25 +02:00
David Bauer 5f3bb758b3
Merge pull request #2154 from yanosz/patch-1
Mention names of opkg-keys in doc
2021-04-28 00:20:02 +02:00
yanosz 96dfbc46c0
docs: Document location and handling of opkg keypair
Co-Authored-By: Martin Weinelt <martin@darmstadt.freifunk.net>
2021-04-28 00:18:31 +02:00
David Bauer 490c522351
Merge pull request #2200 from AiyionPrime/status_page_role
gluon-status-page: add role to status-page
2021-04-28 00:11:26 +02:00
David Bauer 0ce961eb8c
Merge pull request #2201 from AiyionPrime/status_page_wifi_channel
gluon-status-page: add channels to status-page
2021-04-28 00:10:46 +02:00
aiyion.prime e6bdbe811a gluon-status-page: use sitetranslation for role 2021-04-23 15:57:37 +02:00
aiyion.prime f14707cfa2 gluon-status-page: use mac80211 identifier (phy) 2021-04-22 22:43:48 +02:00
aiyion.prime dc400c9220 gluon-status-page: reformat spaces 2021-04-22 21:43:55 +02:00
aiyion.prime 344d3ab686 gluon-status-page: add channels to status-page 2021-04-22 21:43:55 +02:00
David Bauer b72588a014 modules: update Gluon packages 2021-04-22 20:25:23 +02:00
Martin Weinelt a2be901803
docs: Add v2020.2.3 release notes 2021-04-14 02:10:15 +02:00
aiyion.prime b6ec181c80 gluon-status-page: add role to status-page 2021-04-12 12:08:04 +02:00
Martin Weinelt e713f9658f
Merge pull request #2197 from txt-file/patch-2
contrib/Dockerfile: use apt-get instead of apt
2021-04-07 19:10:31 +02:00
Martin Weinelt 503059ba29
Merge pull request #2196 from AiyionPrime/fix_tq_width_firefox_dejavu_sans
statuspage: fix tq width
2021-04-07 18:52:38 +02:00
Vieno Hakkerinen 09d6f70b07
contrib/Dockerfile: use apt-get instead of apt
* apt is meant for user interactive usage. apt does not guarantee a stable CLI.
* set DEBIAN_FRONTEND=noninteractive to tell apt-get that no user interaction is wanted
2021-04-07 18:01:56 +02:00
aiyion.prime 5e2525f573 statuspage: fix tq width
overflow for 'DejaVu Sans'.
2021-04-07 13:02:33 +02:00
Martin Weinelt 2e6752074f
Merge pull request #2192 from txt-file/patch-1
contrib/actions: use apt-get instead of apt
2021-04-05 22:55:18 +02:00
Vieno Hakkerinen ca7a8ff528
contrib/actions: use apt-get instead of apt
apt does not have a stable CLI interface. Don't use it in scripts.
2021-04-05 21:33:04 +02:00
Martin Weinelt 34e8aed9f8
Merge pull request #2191 from freifunk-gluon/ci-relax-runner-pin 2021-04-05 19:43:31 +02:00
Martin Weinelt 394bc8e6bd
contrib/actions: drop custom sources.list 2021-04-05 04:11:29 +02:00
Martin Weinelt e6b996f0e1 Revert "actions: pin Ubuntu version"
This reverts commit d9621048ed.
2021-04-05 04:09:42 +02:00
Martin Weinelt 272e30fda6
modules: update packages
fdd4afe6a adblock: fix init status command
5a8a7aeab libreswan: update cu 3.32
7af60cc3e libftdi1: Improve build binary reproducibility
aa3e95ac6 https-dns-proxy: bugfix: correct PROCD firewall object
abb3c7ede mariadb: update to version 10.2.37
cb6509e88 gnutls: patch security issue
41388ed8a php: add fix for updated ICU 68+
353063521 https-dns-proxy: support for additional Force DNS ports
44b301125 bind: update to version 9.16.13
612fbeb58 nnn: update to version 3.4
1952a1c2a python-aiohttp: backport fix for CVE-2021-21330
13ab7af3f icu: update to 68.2
2120a3cf5 icu: update to 68.1
10712797f icu: fix compilation under CentOS 7
79ddd0328 icu: update to 67.1
227597c97 haproxy: Update HAProxy to v2.0.21
a8a405928 tmate: add new package
01ab015a9 msgpack-c: add new package
97beb7d36 minidlna: update to 1.3.0
0494d8706 tor: update to version 0.4.4.8
40d56e46b mwan3: remove mwan3 ubus call on mwan3 iface hotplug ACTION
b66d262d7 net/mosquitto: bump to 1.6.14
e573dac5f CI: backport GitHub action CI
81fa8cf89 nextdns: Update to version 1.11.0
af02206e2 vpn-policy-routing: better processing of custom user files
5c58de5e6 libpam: update to 1.5.1
86a70892d libpam: update to 1.5.0
ef17e4a30 libpam: update to 1.4.0
85d122fdc nano: update to 5.6.1
a6a27c904 ninja: update to 1.10.2
b4adde587 ninja: fix typo
7fd680224 ninja: use for CMake
1299b07ee ninja: update to 1.10.1
86bb11e97 vpn-policy-routing: update to 0.3.2-18
2faeeb18e python-maho-mqtt: bump to versio 1.5.1
5c95dda73 unbound: update to 1.13.1
3abe9d0ae vpn-policy-routing: bugfix: netflix user file missing redirect
904d911c5 vpn-policy-routing: update user netflix file
2666b3d00 nano: update to version 5.6
7d26130b3 vpn-policy-routing: custom user scripts improvements
7d9d8616c libedit: update to version 20210216-3.1
ca01f389d libedit: update to version 20193112-3.1
855023214 adblock: update blocklist sources
39f3941cd knot: update to version 3.0.4
1662ca26b knot: update to 3.0.3
9389a5dd1 knot: disable embedded xdp
7619ff0df knot: update to 3.0.2
5ddcc2e05 knot: disable libnghttp2 autodetection
fb103be86 knot: update to version 3.0.1
523011bf4 screen: backport fix for CVE-2021-26937
8e1b62d4b openvswitch: update to version 2.11.6 (security fix)
5e24f6db6 vpn-policy-routing: update to version 0.3
0d0e4b96b netdata: update to version 1.29.2
2980cb8db netdata: update to version 1.29.1
f05ba1bbc python3: Update to 3.7.10, refresh patches
7be89f1f3 zerotier: bump to 1.6.4
fcf72948a bind: bump to 9.16.12
feb1a188e ksmbd: remove kmod-crypto-arc4 dependency
2f7026e65 htop: update to 3.0.5-1
ad186135a python-paho-mqtt: Update to version 1.5.0
3f0dbcdae isc-dhcp: seeing crashes when attempting to update dynamic dns
95fa96bda ttyd: force enable authentication for login
1a4184c07 https-dns-proxy: support for force DNS/DNS hijacking
b1fec2b7b mosquitto: bump to 1.6.13
5954e5695 getdns: disable static linking of getdns utilities
db69f0b57 zerotier: update to 1.6.3
1cec6bcfa getdns: Fix TLS V1.3 Ciphersuites option in Stubby
d7b42dcaa getdns: fix compilation without deprecated OpenSSL APIs
798c3ba3f keepalived: fix config typo
d41a0b75a keepalived: add script security param to fix warning
dbc66a08f ksmbd: update to 3.3.4
86c880712 ksmbd-tools: update to 3.3.4
dee2e818b keepalived: set default run directory for pid file on build
cf7969564 simple-adblock: remove dependency on jsonfilter & old code
bee91a9d8 sudo: backport patches for CVE-2021-3156
46d327a59 samba4: fix for #13758
e8d15424b nextdns: Update to version 1.10.1
11e9a2e17 php7: Fix prepare target incorrectly referencing 'configure.in' instead of 'configure.ac'
aae5144e7 msmtp: update to version 1.8.14
8e54decfa youtube-dl: update to version 2021.1.16
3b582ebd3 youtube-dl: update to version 2020.12.7
46253b17d https-dns-proxy: bugfix: high CPU utilization
cc38c62ad openwisp-config: update to version 0.5.0
50725c4c8 Revert "libzip: update to 1.7.3"
d8f0ebaa3 libzip: update to 1.7.3
9a0a7f928 libzip: update to 1.7.1 (closes #12512)
5fc922043 libzip: update to 1.6.1
9174036e4 libzip: update to 1.6.0
92f095b21 libzip: fix musl-fts failure
a0d9d76b2 libzip: add package
93d3bfd08 nano: update to 5.5
1224d6c21 idevicerestore: update to 1.0.0
9cfae98a7 idevicerestore: update to 2020-04-20
23f85f8fa idevicerestore: update to 2020-02-17
cb2d40346 idevicerestore: Update to 2019-12-26
202469750 idevicerestore: Add package
646461e2b libirecovery: update to official tarball
4f3b1aa38 libirecovery: fix version
e871dcf6b libirecovery: Update to 1.0.0
4175b8074 libirecovery: Add package
7707d2d78 haproxy: Update HAProxy to v2.0.20
8cc7aef3c nextdns: Update to version 1.9.6
67a324b5e syslog-ng: update to version 3.30.1
9e29bd4de https-dns-proxy: update to 2020-11-25: add HTTP auth and DSCP codepoint support
6d2ea90c3 haveged: update to 1.9.14
64b8dade4 usbmuxd: update to 1.1.1
42f227066 usbmuxd: enable systemd support
13485a4e5 usbmuxd: Update to 2020-01-20
c5aae4a76 usbmuxd: Update to latest master
0d0820d43 usbmuxd: Update to latest git version
46ecb7d58 imobiledevice: backport iOS 14 backup patch.
c71f4a82e libimobiledevice: update to 1.3.0
2ca8db427 libimobiledevice: update to 2020-02-19
2e2775dbc libimobiledevice: Update to 2020-01-20
cbda7d908 libimobiledevice: Update to latest master
f988eff7a libimobiledevice: Update to 2019-11-29
b856f627b libusbmuxd: update to 2.0.2
d59f1c90d libusbmuxd: Several fixes
a17c2aec3 libusbmuxd: Update to 2.0.1
5fc564827 libplist: add missing pkgconfig files in libplist 2.2
7660f6fa2 libplist: update to 2.2.0
8c28123e7 libplist: Several fixes
a60434422 libplist: Update to 2.1.0
3645d2876 libplist: Switch to normal releases
cafbae712 php7: drop patch for openssl deprecated API (fixes #14357)
4d1e525fc netdata: update to version 1.28.0
0563feebc adblock: backport fixes
40c1005f2 htop: update to 3.0.4-1
6bd3f5c37 mwan3: use ping -I for ipv6 after tunnel kernel fix
2a7bbad22 noddos: remove
182264c5b ulogd: Add back autoreconf
6106d1f28 ulogd2: Build IPFIX module
c8730e951 ulogd2: Backport upstream patches
5845691cb net: ulogd2: add myself as maintainer
df1c29679 nut: fix _ handling
e04535e99 qemu: bump PKG_RELEASE
3eb2e140e simple-adblock: config update
dc529c8cd wsdd2: update to git 2020-11-19
adb214338 samba4: update to 4.11.17
304888a37 htop: update to 3.0.3-1
0266f31c9 htop: update to 3.0.2-1
391267fc9 qemu: add patch for qga guest-shutdown command
4626c3bd6 utils/lcd4linux: fix package source
dc015ffe2 simple-adblock: bugfix - config update
9ca6bdaa0 https-dns-proxy: update binary to 2020-08-21
13d999882 zerotier: add patch to avoid including sys/auxv.h
061f81ff6 miniupnpd: Don't override ipv6_listening_ip
2021-04-05 02:49:29 +02:00
Martin Weinelt 87209b9f41
modules: update OpenWrt
81266d9001 openssl: bump to 1.1.1k
6165bb0d60 openssl: sync package download URLs with master
c336db7a78 mbedtls: update to 2.16.10
616fff2a94 mwlwifi: add PKG_FLAGS:=nonshared
dce6b118eb scripts: bundle-libraries.sh: fix broken SDK compiler
afdd5dcd0d build: reduce number of files passed to ipk-remove
1fcd833c9a build: call ipkg-remove using xargs if #args>=512
33df82be36 build: package-ipkg: avoid calling wildcard twice
3402334413 kernel: bump 4.14 to 4.14.224
55e9d87754 kernel: bump 4.14 to 4.14.223
c64742a96e wolfssl: bump to v4.7.0-stable
4b19b2db78 hostapd: P2P: Fix a corner case in peer addition based on PD Request
0a08a9a2b4 build: fix checks for GCC11
a5672f6b96 Revert "base-files: source functions.sh in /lib/functions/system.sh"
b4a4d04b91 kernel: bump 4.14 to 4.14.222
86aeac4fc9 base-files: source functions.sh in /lib/functions/system.sh
e9c0c5021c hostapd: backport ignoring 4addr mode enabling error
a36d2ee310 ramips: remove factory image for TP-Link Archer C20 v1

Fixes: CVE-2021-3450, CVE-2021-3449, CVE-2021-3336, CVE-2021-27803
2021-04-05 02:47:25 +02:00
J. Burfeind 2c0f8292c6
gluon-neighbour-info: end before timeout (#2185)
End the process after one result in case -l is not given
and destination address is unicast.
Reduces singleshot execution time from timeout seconds to around 150ms.

resolves #2184
2021-03-15 17:52:34 +01:00
Matthias Schiffer 2ecbe488bc
gluon-core: remove unneeded KERNEL_L2TP_IP config symbol
No package uses l2tp_ip.
2021-03-07 18:48:06 +01:00
Matthias Schiffer f68bad1171
modules: update Gluon packages
3822f44013cc tunneldigger: remove unneeded kmod-l2tp-ip dependency
95c805c863cd tunneldigger: update to latest upstream (#238)
2021-03-07 18:47:12 +01:00
David Bauer 7d100bc4ca ramips-mt7620: remove factory images for Archer C20 v1
Upstream removed the factory images for the Archer C20 v1 as they
potentially brick the device. Remove them from Gluon to avoid build
failures on the next OpenWrt 19.07 bump.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-28 12:21:24 +01:00
Andreas Ziegler e511b3bcb4
modules: update OpenWrt routing packages
e26b474 Merge pull request #644 from ecsv/batadv-for-19.07
369908c alfred: Start up alfred without valid interfaces
97e7600 alfred: Fix procd process handling for disable state
0a3432d Merge pull request #636 from ecsv/batadv-for-19.07
596dc84 batman-adv: Merge bugfixes from 2021.0
862a2df batctl: Merge bugfixes from 2021.0
2021-02-18 17:49:32 +01:00
Andreas Ziegler 6d3da664b0
modules: update OpenWrt
6aef4bc7c3 lantiq: fritz7320: enable USB power supply
6bf5bfc19f openssl: bump to 1.1.1j
f44153038e OpenWrt v19.07.7: revert to branch defaults
d5ae565873 OpenWrt v19.07.7: adjust config defaults
c4a6851c72 kernel: bump 4.14 to 4.14.221
f8b849103d ramips: ethernet: Disable TSO support to improve stability
2021-02-18 17:45:12 +01:00
David Bauer d9621048ed actions: pin Ubuntu version
ubuntu-latest is now assigned to Ubuntu 20.04. As we use custom apt
sources for 18.04, pin to this version for now to fix the CI.
2021-02-15 01:38:51 +01:00
David Bauer 429223b99f modules: update OpenWrt
fec1aa6dfb mt76: update to the latest version
224fa47bf9 ramips: mark toggle input on EX6150 as a switch
3a05aa17db mac80211: Remove 357-mac80211-optimize-skb-resizing.patch
171d8bce0c ramips: remove factory image for TP-Link Archer C2 v1
2eb8444363 ath79: fix USB power GPIO for TP-Link TL-WR810N v1
d5a8e85878 wolfssl: Backport fix for CVE-2021-3336
cf5e5204d9 bcm63xx: sprom: override the PCI device ID
4465b44fc1 kernel: bump 4.14 to 4.14.219
4b9ade65ec bcm63xx: R5010UNv2: fix flash partitions for 16MB flash
ab9cb390be hostapd: fix P2P group information processing vulnerability
1e90091c5d opkg: update to latest git HEAD of branch openwrt-19.07
312c05611b kernel: bump 4.14 to 4.14.218
3100649458 wolfssl: enable HAVE_SECRET_CALLBACK
e9d2aa9dc6 wolfssl: Fix hostapd build with wolfssl 4.6.0
2044c01de8 wolfssl: Update to v4.6.0-stable
5ac0b2b431 mvebu: omnia: make initramfs image usable out of the box
2021-02-15 01:29:38 +01:00
David Bauer 39c1f67236 modules: update OpenWrt
a7a207e18b mt76: update to the latest version
1ce5008597 wireguard: Fix compile with kernel 4.14.217
2ecb22dc51 kernel: bump 4.14 to 4.14.217
11f4918ebb dnsmasq: backport fixes
9999c87d3a netifd: fix IPv6 routing loop on point-to-point links
250dbb3a60 odhcp6c: fix IPv6 routing loop on point-to-point links
d816c6cd31 kernel: bump 4.14 to 4.14.216
c21d59dc11 imagebuilder: pass IB=1 on checking requirements
2021-02-01 13:16:18 +01:00
David Bauer ec8c4043ef
Merge pull request #2178 from T-X/pr-bridge-fix-mc-snoopers-join-deadlock
kernel: bridge: Fix a deadlock when enabling multicast snooping
2021-01-25 20:45:46 +01:00
Linus Lüssing 13cb7504f4 kernel: bridge: Fix a deadlock when enabling multicast snooping
[ Upstream commit 851d0a73c90e6c8c63fef106c6c1e73df7e05d9d ]

From: Joseph Huang <Joseph.Huang@garmin.com>

When enabling multicast snooping, bridge module deadlocks on multicast_lock
if 1) IPv6 is enabled, and 2) there is an existing querier on the same L2
network.

The deadlock was caused by the following sequence: While holding the lock,
br_multicast_open calls br_multicast_join_snoopers, which eventually causes
IP stack to (attempt to) send out a Listener Report (in igmp6_join_group).
Since the destination Ethernet address is a multicast address, br_dev_xmit
feeds the packet back to the bridge via br_multicast_rcv, which in turn
calls br_multicast_add_group, which then deadlocks on multicast_lock.

The fix is to move the call br_multicast_join_snoopers outside of the
critical section. This works since br_multicast_join_snoopers only deals
with IP and does not modify any multicast data structures of the bridge,
so there's no need to hold the lock.

Steps to reproduce:
1. sysctl net.ipv6.conf.all.force_mld_version=1
2. have another querier
3. ip link set dev bridge type bridge mcast_snooping 0 && \
   ip link set dev bridge type bridge mcast_snooping 1 < deadlock >

A typical call trace looks like the following:

[  936.251495]  _raw_spin_lock+0x5c/0x68
[  936.255221]  br_multicast_add_group+0x40/0x170 [bridge]
[  936.260491]  br_multicast_rcv+0x7ac/0xe30 [bridge]
[  936.265322]  br_dev_xmit+0x140/0x368 [bridge]
[  936.269689]  dev_hard_start_xmit+0x94/0x158
[  936.273876]  __dev_queue_xmit+0x5ac/0x7f8
[  936.277890]  dev_queue_xmit+0x10/0x18
[  936.281563]  neigh_resolve_output+0xec/0x198
[  936.285845]  ip6_finish_output2+0x240/0x710
[  936.290039]  __ip6_finish_output+0x130/0x170
[  936.294318]  ip6_output+0x6c/0x1c8
[  936.297731]  NF_HOOK.constprop.0+0xd8/0xe8
[  936.301834]  igmp6_send+0x358/0x558
[  936.305326]  igmp6_join_group.part.0+0x30/0xf0
[  936.309774]  igmp6_group_added+0xfc/0x110
[  936.313787]  __ipv6_dev_mc_inc+0x1a4/0x290
[  936.317885]  ipv6_dev_mc_inc+0x10/0x18
[  936.321677]  br_multicast_open+0xbc/0x110 [bridge]
[  936.326506]  br_multicast_toggle+0xec/0x140 [bridge]

Fixes: 4effd28c1245 ("bridge: join all-snoopers multicast address")
Signed-off-by: Joseph Huang <Joseph.Huang@garmin.com>
Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Link: https://lore.kernel.org/r/20201204235628.50653-1-Joseph.Huang@garmin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[linus.luessing@c0d3.blue: backported to 4.4]
2021-01-25 03:16:06 +01:00
David Bauer 9df297bdde modules: update OpenWrt
6fc02f2a45 OpenWrt v19.07.6: revert to branch defaults
b12284a14c OpenWrt v19.07.6: adjust config defaults
8055e38794 dnsmasq: Backport some security updates
733e62a8e1 uboot-at91: Add PKG_MIRROR_HASH to fix download
53814dadaf at91bootstrap: Add PKG_MIRROR_HASH to fix download
e30d3ea95f mbedtls: update to 2.16.9
c7b9c85819 kernel: bump 4.14 to 4.14.215
c9388fa986 kernel: bump 4.14 to 4.14.214
e290024717 glibc: update to latest 2.27 commit
2c37993c8a build/prereq: merge ifndef IB block together
79b1fa1702 build, imagebuilder: Do not require compilers
58138df2d5 build, imagebuilder: Do not require libncurses-dev
42e478eb0d build/json: add filesystem information
2021-01-19 16:09:24 +01:00
David Bauer 5c325cc1c9
Merge pull request #2152 from FreifunkVogtland/plasmacloud
ipq40xx: Add support for Plasma Cloud PA1200 and PA2200
2021-01-13 11:51:10 +01:00
Sven Eckelmann 50537e5474 ipq40xx: add support for Plasma Cloud PA2200
This device is a dual 5GHz device. It is recommended to manually change the
radio of the first device to the lower 5GHz channels and the second radio
to the upper 5GHz channels
2021-01-13 08:28:12 +01:00
Sven Eckelmann 17baf0f415 ipq40xx: add support for Plasma Cloud PA1200 2021-01-13 08:28:12 +01:00
David Bauer db9768310a
Merge pull request #2153 from FreifunkVogtland/pa300
ath79: Add support for Plasma Cloud PA300(E)
2021-01-12 15:22:03 +01:00
David Bauer f2783bdf2d
Merge pull request #2174 from freifunk-gluon/respondd-fixes
gluon-respondd: fix crash on 64bit archs (+ one unrelated issue)
2021-01-12 15:21:19 +01:00
Matthias Schiffer 17123aa420
gluon-respondd: fix count_stations() arguments
Fixes warnings about implicit pointer-to-int and int-to-pointer casts.

Fixes: 59a4cd63b8 ("gluon-respondd: expose OWE clients in nodeinfo")
2021-01-12 04:32:23 +01:00
Matthias Schiffer 52ee93f160
libgluonutil: add missing gluonutil_get_primary_domain() prototype
Fixes respondd on 64bit archs, as gluonutil_get_primary_domain() was
assumed to return int without the prototype.

Fixes: bcf57467dd ("libgluonutil: implement gluonutil_get_primary_domain()")
2021-01-12 04:29:08 +01:00
Sven Eckelmann 6e2faecb4e ath79: add support for Plasma Cloud PA300E 2021-01-10 09:06:02 +01:00
Sven Eckelmann a9039229d6 ath79: add support for Plasma Cloud PA300 2021-01-10 09:05:58 +01:00
David Bauer fd3ecea953
gluon-core: use OpenWrt label-mac as fallback (#2170)
This adds the OpenWrt label-mac device selection as the most preferred
fallback.

While this is only used on OpenWrt 19.07 for backports, we can also use
the label-mac device when backporting device support. This way, we have
to deal with less device-sepcific code downstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-01-10 00:51:15 +01:00
David Bauer 7320603a1f
Merge pull request #2169 from mweinelt/ci-reduce-builds
actions: run tasks based on set of modified paths
2021-01-02 22:53:59 +01:00
Martin Weinelt 6e4989faeb
LICENSE: update for 2021 2021-01-02 19:10:18 +01:00
Martin Weinelt bab05c8515
actions: run tasks based on set of modified paths 2021-01-02 17:25:51 +01:00
Annika Wickert 75f7b7c0b6 actions: use matrix to avoid repeats
Closes #2166
2021-01-02 15:08:41 +01:00
David Bauer 441fbf1283 actions: update generation script to use matrix 2021-01-02 15:06:16 +01:00
Martin Weinelt 7709de6753
Merge pull request #2165 from CodeFetch/pr_syslog
packages: introduce syslog function in gluon.util
2021-01-02 02:13:32 +01:00
CodeFetch 50313697c7 packages: introduce syslog function in gluon.util
This commit introduces a simple function for writing to the syslog and
replaces the custom function used by gluon-hoodselector.
2020-12-29 01:33:29 +01:00
David Bauer 049625bb14 modules: update OpenWrt
b14eeccdfe ath79: image: fix initramfs for safeloader devices
cb58c7fe73 kernel: bump 4.14 to 4.14.212
fb52c40531 wireless-regdb: Update to version 2020.11.20
7711a5906a wireless-regdb: bump to latest release 2020-04-29
c03f018220 openssl: update to 1.1.1i
0a59e2a76e mac80211: Update to version 4.19.161-1
3f5fecfd33 ramips: enable LED VCC for Asus RT-AC51U
2020-12-20 18:20:17 +01:00
Tim Gates 6b9e3ce1df
docs: ci: fix simple typo (#2162) 2020-12-19 20:50:54 +01:00
David Bauer 430c0ecc60 wireless-encryption mesh-wireless-sae: depend on OpenSSL daemons
This switches the used wireless daemons for OWE / SAE to the OpenSSL
flavors. The WolfSSL implementation currently seems to be broken.

THis switch may be reverted at a later point in time when hostapd /
wpa_supplicant implementations for WolfSSL have matured.
2020-12-16 00:52:27 +01:00
Andreas Ziegler b84c58c0b5
docs: add v2020.2.2 release notes 2020-12-11 04:13:20 +01:00
David Bauer 604087fae3 modules: refresh OpenWrt patches
Fixes commit fb8cd562f6 ("modules: update OpenWrt")
2020-12-07 04:27:11 +01:00
David Bauer fb8cd562f6 modules: update OpenWrt
d0b8be75ff generic: ipeth: fix iOS 14 tethering
bdc2f19f9d OpenWrt v19.07.5: revert to branch defaults
c37eb9a9f9 OpenWrt v19.07.5: adjust config defaults
5090152ae3 tools: always create $STAGING_DIR/usr/{include,lib}
2020-12-07 04:22:58 +01:00
Andreas Ziegler 8be025fedc
modules: update OpenWrt
d830403133 toolchain: kernel-headers: kernel Git tree mirror hash
8c2bb1d9b6 toolchain: kernel-headers: fix check target for kernel Git tree
a47caacaf3 download.pl: properly cleanup intermediate .hash file
605adb1023 download: handle possibly invalid local tarballs
5abe989475 cmake.mk,rules.mk: fix host builds using CMake and ccache
77734ce82a cmake.mk: set C/CXX compiler for host builds as well
ebe8cc2b2a mvebu: fixup Turris Omnia U-Boot environment
f10332c292 mvebu: base-files: Update Turris Omnia U-Boot environment
ca1ee39854 mvebu: Add turris-omnia.bootscript
f61e053e72 uboot-envtools: mvebu: update uci defaults for Turris Omnia
f1525e785e kernel: backport GD25Q256 support from 4.15
c72b7a4f0d kernel: bump 4.14 to 4.14.209
c420f77678 wireguard-tools: fix category/description in menuconfig
2020-12-06 04:27:16 +01:00
David Bauer 6d95ec64de
Merge pull request #2157 from blocktrron/xtables-addons
openwrt: fix xtables-addons build
2020-12-06 04:05:06 +01:00
David Bauer 5ee379bbb8 Revert "openwrt: revert kernel: add netfilter-actual-sk patch"
This reverts commit 94736703ae.

Bumping the packages feed fixes the xtables-addons build.
2020-12-06 01:08:33 +01:00
David Bauer f52139f9fb modules: bump OpenWrt packages
2974079d3 nano: update to 5.4
e82884caf miniupnpd: Pass ipv6 addr to ipv6_listening_ip
33bd6b6af Merge pull request #14115 from mwarning/zt
ace81238c zerotier: update to 1.6.2
808a67b35 net/miniupnpd: ext_ip_reserved_ignore support
1adf9d979 miniupnpd: Added chain rule to filter table so udp stun incoming connections rules works
4ed18c40e miniupnpd: update to 2.2.0
16cceb118 net/miniupnpd: check by /etc/init.d/miniupnpd running
93d44081c miniupnpd: default to IGDv1
49fb6862d adblock: reporting fixes/tweaks
613d4e19c Merge pull request #14029 from aaronjg/xtables-addons-fix
12b0f8c1a xtables-addons: patch for 4.14 route_me_harder fix
a453361e7 Merge pull request #13943 from jjm2473/openwrt-19.07-fix-libtirpc-clang
fb9077a72 Merge pull request #13983 from rs/nextdns-1.9.4-openwrt-19.07
591601446 nextdns: Update to version 1.9.4
889c46a79 Merge pull request #13981 from rs/nextdns-1.9.3-openwrt-19.07
c65dc2c45 nextdns: Update to version 1.9.3
446bec699 Merge pull request #13937 from jjm2473/openwrt-19.07-fix-vim-clang
fb7630209 travelmate: refine scan interface determination
c68be0b84 libs/libtirpc: fix host compile with clang 12.0.0
1f5670bdf vim: fix host compile with clang 12.0.0
2020-12-06 01:08:20 +01:00
Martin Weinelt 94736703ae
openwrt: revert kernel: add netfilter-actual-sk patch
During the update of openwrt-19.07 in 435c5196 a breaking change was
introduced. Let's revert it for now so the master branch builds again.
2020-12-06 00:22:07 +01:00
David Bauer 435c519658 modules: update OpenWrt
0ce0d687de ipq40xx: disable double-tagging for PSGMII devices
6703abb7ca tcpdump: patch CVE-2020-8037
b4698d87c8 kernel: mtd: parser: cmdline: Fix parsing of part-names with colons
193adc94d1 ar71xx,ath79: refresh 910-unaligned_access_hacks.patch
733a482733 musl: handle wcsnrtombs destination buffer overflow (CVE-2020-28928)
c9c7b4b394 kernel: add netfilter-actual-sk patch
a448ad7490 uhttpd: update to 19.07 Git HEAD
2020-12-01 11:13:12 +01:00
David Bauer 99e1e52740 modules: update OpenWrt
39c5635714 scripts: download.pl: retry download using filename
2020-11-20 12:06:23 +01:00
Martin Weinelt b09a124a89 modules: update packages
b77fabe01 Merge pull request #13911 from ja-pa/libexif-sec-19.07
e74565a0b libexif: update to 0.6.22
68eb1943c mwan3: add missing dependency
b038148cc mwan3: Remove fork/exec for head
c5d61945f haproxy: Update HAProxy to v2.0.19
5b3870890 php7: update to 7.2.34
2bd627ec7 Merge pull request #13828 from jgora/jgora
d1d53a3ac xtables-addons: Support IPTV Timeshift
05efc24fd youtube-dl: update to version 2020.11.1.1
5db211c62 youtube-dl: update to version 2020.9.20
7b1ac9283 youtube-dl: update to version 2020.9.14
3a61338ab bind: update to version 9.16.8
2331de4ec libftdi1: disable building documentation
73c7bcb63 libftdi1: Fix pkgconfig paths properly
82208ceca libftdi1: Apply pkgconfig fixes to libftdipp1 as well
58b6d0ee5 libftdi1: Partially add back InstallDev
55e7acc25 libftdi1: Remove faulty change from last patch
45e7e13dc libftdi1: Don't build examples
089699b1e tinyproxy: convert to procd
39ce33461 tinyproxy: update to 1.10.0
b07f752e7 nextdns: Update to version 1.8.8
99e77a716 openconnect: allow specify --protocol from config
37303e1f0 adblock: update 4.0.7-2
5dbbb7ebf adblock: update 4.0.7
0c9206469 zoneinfo: Updated to the latest release
a9162448c zoneinfo: Updated to the latest release
abcbc5e1c zoneinfo: Updated to the latest release.
2020-11-17 01:53:47 +01:00
Martin Weinelt 2537b7430b modules: update OpenWrt
2a8279c161 layerscape: Fix check after kernel update
ac5297340e kernel: bump 4.14 to 4.14.206
589c3cf4e0 ath79: remove wmac mtd-mac-address for UniFi AC family
2a3dbded93 feeds: add freifunk feed
ad3c2b9736 ath79: use correct firmware name for UniFi AP
84ae238324 ramips: fix logic level for DIR-645 buttons
c25e3275ac ath79: fix LED labels for PowerCloud CAP324
78c4c04dd7 uci: Backport security fixes
3af9c5fefd uboot-envtools: mvebu: fix config for mainline u-boot
7fbee0c7b2 mvebu: Add bootscript for espressobin to support mainline firmware
14903d9d8c kernel: bump 4.14 to 4.14.202
03a029745f firmware: intel-microcode: update to 20200616
95d60bf881 firmware: amd64-microcode: update to 20191218
dda5e3db19 firewall: options: fix parsing of boolean attributes
7dd822983b kernel: bump 4.14 to 4.14.201
aee081e62e oxnas: fix qc_prep return in sata driver after kernel 4.14.200
6696fddfd9 mac80211: do not allow bigger VHT MPDUs than the hardware supports
9c718b5478 kernel: bump 4.14 to 4.14.200
b21bea7b1b ath79: ar8216: make switch register access atomic
891022918d scripts: getver.sh: fix version based on stable branch
8076fb59ab openssl: bump to 1.1.1h
f4286d7bc2 ath79: fix rssi-low LED for My Net Range Extender
d82e6a2f10 kernel: Update to version 4.14.199
86b44028e2 comgt: fix hotplug event handling
34a9652904 Revert "ramips: ethernet: fix to interrupt handling"

Build-tested: x86-64, ath79-generic, ipq40xx-generic
2020-11-17 01:53:43 +01:00
Matthias Schiffer ed9e0b6d9e
Merge pull request #2148 from freifunk-gluon/master-v2020.2-tag
Merge v2020.2 tag into master
2020-11-16 18:51:45 +01:00
Martin Weinelt 094705b269
Merge pull request #2146 from freifunk-gluon/weather-radar-map
docs: reference weather radar map for europe for outdoor_chanlist
2020-11-15 23:03:16 +01:00
Martin Weinelt 97d8295b1c Gluon v2020.2
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEE1wQyaXt8TCc4D82jurOXFLSkuHgFAl8UXtgACgkQurOXFLSk
 uHg7pQgAk5RP21P4DUrlRV0Ck3oHDfepKaXveUUQiJA077vWnKgkliiq5xIBxz0C
 n0/A/6GdWOnCZ9vM/D/gxxm0fzujmsUVPY8OsRQ3g9TlkqeA+ff+D7jDmmGk6PbH
 ZkN/wHpZVK8Mxe0GANzPXbqFHYmf/DIZFvnezOmL7K79MLsOLkTQVhARouthVCat
 eNNA4nKo1nNgjJ6Z8NViQ5Kd1Y2IoOLit3ypCxQCwnSzQ6YCDkdNFx+EfjWFv9VC
 gIJRKbadWr86wNDpS2Bbe4rfkOjjG6yNTI63f2Bj1MlNyEYNdkKVCQI7WszQU81M
 ikt5dqZIxfUiSXslbuPUJFtkpJKUJg==
 =fJeO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEE7tAWAry9GWw4vJofvUqgUo9j8X4FAl+xc4MACgkQvUqgUo9j
 8X45WggAr3nALzMZ6d6KU58kZB1kwY9srj4gtyDL3snusTUyyCIsavJaWBGPQOEC
 VN3oELZpsTn9beR8u+dp03Mv3e6sc0dLRgSu+bTH0CiYAAc0x7DNy+aZ8EE3810V
 YrcGIIdij9a/3rdHzsoyy8rYrAxAGtTdCYtqYywWvktfIJM5ks4btym6+vwlCNBy
 3eD/4cMqbYHV4TxbVM0WYiapHTONdjIrxtBN/7g5LIfyLBxXCsUu3OJKw2op8FZW
 t9G+lqgKqsspax4IAW3AwtweILMNCGiYZJcKhJP7+QisDE1WJgGxtbaTcqYJHL9l
 jkjKKyc2l9HyxDmZoN3Bau6hmJMrtQ==
 =jh5p
 -----END PGP SIGNATURE-----

Merge tag 'v2020.2'

Gluon v2020.2
2020-11-15 19:29:20 +01:00
Martin Weinelt a4760320d7
docs: reference weather radar map for europe for outdoor_chanlist
The map is generated from EUMETNET data, it's source code can be
found at https://gitlab.com/aaaaalbert/wxr-channel-map.
2020-11-14 18:33:02 +01:00
Martin Weinelt 277718887d
ath79-generic: add support TP-Link Archer C2 v3 (#2145)
CPU: 750 MHz QCA9563
Flash: 8 MB
RAM: 64 MB
Radio 1: Qualcomm Atheros QCA9563 (b/g/n)
Radio 2: Qualcomm Atheros QCA9887 (a/n/ac)
2020-11-11 22:44:11 +01:00
David Bauer 1f115adf17
ramips-mt7620: use manifest alias for EX3700/EX3800 (#2144)
Use a manifest alias for the autoupdater image string of the Netgear
EX3700 / EX3800. This way, no unnecessary symlink is created and the
autoupdater functionality is preserved.
2020-11-06 11:12:42 +01:00
Andreas Ziegler 2e8febfd04
docs: add v2019.1.3 release notes 2020-11-05 02:03:05 +01:00
Martin Weinelt c273f1a2c9
modules: update routing
02b4dbf (HEAD -> openwrt-19.07, origin/openwrt-19.07) Merge pull request #620 from ecsv/batadv-for-19.07
59e8d5f batctl: Merge bugfixes from 2020.4
6859689 batman-adv: Merge bugfixes from 2020.4

Compile-tested: x86-64
Run-tested: x86-64 (QEMU)
2020-10-27 17:31:32 +01:00
dzzinstant 4134514986
lantiq-xrx200: add support for AVM Fritz!Box 3370 (#2056) 2020-10-26 13:00:15 +01:00
Martin Weinelt 163427649c
Merge pull request #2140 from blocktrron/patch-check
github: add workflow for checking patch status
2020-10-20 21:56:24 +02:00
David Bauer ac4d6625dd github: add workflow for checking patch status
Add a workflow to verify all patches to OpenWrt and the packages feeds
are refreshed. If they are not, the workflow fails.
2020-10-20 20:03:17 +02:00
Matthias Schiffer 53f5b8098c
fastd: reorganize patches for easier backporting
Gluon v2020.2.x uses fastd v19, so we keep that in a separate patch. The
fastd memory leak fix from v18 is not removed in this patch anymore, as
the fix is needed for v19 as well.

The v20 and v21 patches are squashed into one, as they aren't backports
anymore after the rebase onto current openwrt-19.07.
2020-10-19 23:13:50 +02:00
Matthias Schiffer 10ae06abc2
Merge pull request #2139 from blocktrron/20200119-bump
fastd: update to v21
2020-10-19 23:01:48 +02:00
David Bauer d97c518da9 packages: fastd: update to v21 2020-10-19 22:53:58 +02:00
David Bauer 65e5aeed2c modules: bump OpenWrt packages
a2673dc53 fastd: fix buffer leak when receiving invalid packets
51bf00834 logrotate: update to version 3.17.0
8715cef64 logrotate: update to 3.16.0
acb77d5be python3: Update to 3.7.9, refresh/remove backported patches
4af889f20 travelmate: bugfix single radio mode
cb3bab180 netdata: update to version 1.26.0
70bb0b4c8 bind: update to version 9.16.7
d05698fae freeradius3: move "release_" from PKG_VERSION
93360e625 freeradius3: add meta-package for default modules
2f7338b62 python-urllib3: update to version 1.25.10 (security fix)
50a67ed74 nextdns: Update to version 1.8.6
b48575ef4 chrony: update to 3.5.1
35e6986a0 nextdns: mark /etc/config/nextdns as configuration file
418e3b294 simple-adblock: config update file fix
9ac587ca8 libuv: update to 1.40.0
613d21085 nano: update to 5.3
992746571 btrfs-progs: update to version 5.7
cedba1ca2 btrfs-progs: update to version 5.6
25b2751f8 python-pytz: update to 2019.03
f3b424139 adblock: refresh blocklist sources
ec628b10d syslog-ng: bump version in config file
d0a74afad syslog-ng: tweak shell code of network_localhost little bit
f705a5a93 python-sentry-sdk: Update to version 0.12.3
2976a5a0e haproxy: Update HAProxy to v2.0.18
eec7bd646 tor: update to version 0.4.4.5
91af4cf72 mariadb: Update to the latest version from 10.2 branch
9461ae47a Werkzeug: Update to version 0.16.0
f9d9ae8c8 Flask: update to version 1.1.2
4a833e3a8 Flask: Update to version 1.1.1
a4534f160 gstreamer1: enable build options necessary for most applications
8a71cdd6a python-ifaddr: update to version 0.1.7
05ea7dfc6 nextdns: Update to version 1.8.5
9069ad925 ipmitool: fix CVE-2020-5208
826fc8921 nextdns: Update to version 1.8.4
ac7f78285 openconnect: updated to 8.10 to address CVE-2020-12823
3f0e26637 python-zeroconf: update to version 0.28.0
fe7ceaa65 python-zeroconf: update to version 0.24.4
49459505e mwan3: fix typo in mwan3_set_sticky_iptables
cae961784 ocserv: include ocserv-worker
2af61c9a4 vpnbypass: README update, code cleanup
b00feac4b ocserv: updated to 1.1.1
c614914da miniupnpd: add miniupnpd ipv6_disable option, #11971 close
70e57317b simple-adblock: add config auto-update feature
94866d76a collectd: update to 5.12.0
b60fa2de9 collectd: update PKG_RELEASE
aeefbbe34 collectd: remove quotation on interval this is an number
b0ad32a3e collectd: move include line
fbe7abcd5 collectd: update PKG_RELEASE
f53b79ced collectd: fix ubi data source type
67a403bfe collectd: add ubi uci and plugin info
37335cf65 collectd: enable ubi plugin
2020-10-19 22:51:56 +02:00
David Bauer 88ec9cbedf
mt76: mt7603: add additional EEPROM chip ID (#2133)
Some newer MT7628 based routers (notably the TP-Link Archer C50 v4) are
shipped with a chip-id of 0x7600 in the on-flash EEPROM. Add this as a
possible valid ID.

This fixes unstable WiFi on some units of the TP-Link Archer C50 v4.
2020-10-17 13:58:45 +02:00
David Bauer b6096523c9
Merge pull request #2131 from blocktrron/refresh-patches
build: improve refreshing patches
2020-10-16 17:14:00 +02:00
David Bauer 84b0a381dc scripts: display commit title when updating patches 2020-10-11 01:59:55 +02:00
David Bauer 7c0408d96d build: add refresh-patches step 2020-10-11 01:40:45 +02:00
Matthias Schiffer 463c1f49c8
fastd: update to v20 2020-10-10 19:14:12 +02:00
Martin Weinelt bdadb77a3c
Merge pull request #2076 from T-X/bridge-mcast-wakeupcall
kernel: bridge: Implement MLD Querier wake-up calls / Android bug workaround
2020-10-08 23:57:20 +02:00
Linus Lüssing b2add48d2a kernel: bridge: Implement MLD Querier wake-up calls / Android bug workaround
Implement a configurable MLD Querier wake-up calls "feature" which
works around a widely spread Android bug in connection with IGMP/MLD
snooping.

Currently there are mobile devices (e.g. Android) which are not able
to receive and respond to MLD Queries reliably because the Wifi driver
filters a lot of ICMPv6 when the device is asleep - including
MLD. This in turn breaks IPv6 communication when MLD Snooping is
enabled. However there is one ICMPv6 type which is allowed to pass and
which can be used to wake up the mobile device: ICMPv6 Echo Requests.

If this bridge is the selected MLD Querier then setting
"multicast_wakeupcall" to a number n greater than 0 will send n
ICMPv6 Echo Requests to each host behind this port to wake
them up with each MLD Query. Upon receiving a matching ICMPv6 Echo
Reply an MLD Query with a unicast ethernet destination will be sent
to the specific host(s).

Link: https://issuetracker.google.com/issues/149630944
Link: https://github.com/freifunk-gluon/gluon/issues/1832

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2020-10-08 20:06:24 +02:00
David Bauer e5b89b5511
ipq40xx-generic: add support for AVM FRITZBox 7530 (#2125) 2020-10-06 23:37:41 +02:00
David Bauer 177ff68ccf
ar71xx-generic: only create manifest alias for Rocket M5 (#2127)
* ar71xx-generic: only create manifest alias for Rocket M5

This follow up the discussion done in #2070 by not  creating a symlink
for the Rocket M5. Images for the Rocket M2 can still be flashed on a
Rocket M5.

This change will prevent the Rocket M5 from appearing in Firmware
selectors. Existing devices will still receive updates, as the device
name is still referenced for the device name expected by the M5.

Closes #2070

* docs: remove Rocket M5 from supported devices
2020-10-06 19:16:56 +02:00
Steffen Förster 9d83d2396f
docs: Add Netgear EX3700 and EX3800 (#2126)
Fixes #2113
2020-10-06 15:35:43 +02:00
Steffen Förster 954f31a761 ramips-mt7620: add support for Netgear EX3700/EX3800
Specifications:
* SoC: MT7620A
* RAM: 64 MB DDR
* Flash: 8MB NOR SPI flash
* WiFi: MT7612E (5Ghz) and builtin MT7620A (2.4GHz)
* LAN: 1x100M

The -factory images can be flashed from the device's web
interface or via nmrpflash.

Both devices differ by a additional power outlet for the EX3800.
This patch has been tested on a EX3800 device.
2020-10-06 00:04:22 +02:00
David Bauer 73640292e5
modules: bump packages feed (#2121)
03425a0d2 zmq: fix compilation when libbsd is present
8bb1d13a9 pigeonhole: update to 0.5.11
86da3bbeb zmq: update to version 4.3.3 (security fix)
e72b47469 zmq: fix the installed files
48339ba10 zmq: fix pkgconfig file
ef30f8bf8 zmq: update to 4.3.2
a7d129fc2 zmq: switch to building with CMake
a4cbd04df libxml2: patch security issues
207660987 net/u2pnpd: convert init to procd
2d410422c freeradius3: fix hostname invocation in radtest
066ac0392 freeradius3: enable radtest utility
338fa663c samba4: update to 4.11.12
399e1a0bf youtube-dl: update to version 2020.9.6
7825df65f msmtp: update to version 1.8.12
eb8130508 dovecot: disable zstd
538647a26 syslog-ng: update to version 3.29.1
473ca554f php7: update to 7.2.33
62171036b nextdns: Update to version 1.8.3
953de3ca8 gnutls: update to version 3.6.15 (security fix)
d515d9c35 dovecot: update to version 2.3.11.3 (security fix)
a2634c264 nextdns: Update to version 1.8.2
1cf41a88c python-rsa: downgrade to version 4.5 for python2
54847cc7c unbound: improve odhcpd rapid update robustness
d17720f04 htop: update to 3.0.1-1
d953d80bf htop: update to 3.0.0-1
af4cd94a2 htop: fix compilation with GCC10
7af8eaad1 python-rsa: update to version 4.6 (security fix)
8b0457c55 knot: update to version 2.9.6
f2edf8c53 git: update to version 2.26.2 (security fix)
99d0878d0 python,python3: Use locked for host pip
791e0bc76 nano: update to 5.2
3c6b45ab3 clamav: update to version 0.102.4 (security fix)
0202fdc27 clamav: update to version 0.102.3 (security fix)
c5c0e2e33 clamav: update to 0.102.2
9700cea70 bind: New upstream version 9.16.6
256a631d9 bind: update to 9.16.4
ac79fde24 simple-adblock: bugfix: update config; use command -v
4e1bfa748 nspr: update to version 4.27
120ff2c63 nspr: nspr add -flto to compile
847ed6e0f nspr: fix compilation with newer musl
2f58b610d nspr: update to 4.25
fab10b8df nss: update to version 3.55 (security fix)
7c3b05d33 nss: update to 3.53
46d315d31 nss: fix build for mips64 disable arm32_neon on unsupported target
638b1642e nss: revert -flto change it seems that it can lead to segfault in libfreebl3.so
be95fcb78 nss: add -flto and makefile cleanup
f0e6ceff3 nss: update to 3.52
e5d732722 nss: update to 3.51.1
e713f74b7 nss: update to 3.51
d2efcd926 nss: update to 3.50
6a3d05272 nss: update to 3.49.2
5e371c2d5 libffi: fix build failure on powerpc platforms
0413252f3 libffi: update to 3.3
70faa62f3 libffi: do not build in a special directory
9ec9bea25 net/mosquitto: Update to 1.6.12
2f7867074 python3: fix rebasing error
769d51fa9 python: fix host compilation with clang
37857a3f2 python3: fix host compilation with clang
b28c614d3 lvm2: fix CE in mac
2020-09-18 13:50:25 +02:00
David Bauer 0b1ee0cf69
github: remove GitHub actions cache (#2120)
The performance benefit the cache brought was due to a broken sources
CDN mirror handling in OpenWrt.

The cache brings no measurable performance benefit. Disable it to slim
down the pipeline steps.
2020-09-18 13:50:02 +02:00
Andreas Ziegler ab2f82ca73
clean up old cleanup code lines (#2119)
* gluon-core: remove obsolete file 100-core-reset-sysctl

* gluon-core: remove obsolete cleanup line

* gluon-client-bridge: remove obsolete cleanup line
2020-09-17 18:19:59 +02:00
David Bauer 5b068d7c47
treewide: rename local_client zone (#2115)
This renames the local_client zone to loc_client, as local_clint exceeds
the maximum zone length allowed for firewall3, which is 11 bytes.

This worked previously due to firewall3 using unsafe string operations.
Now creation of the chain fails (latest OpenWrt master).
2020-09-13 05:24:33 +02:00
David Bauer 21d1870ac5 modules: update OpenWrt
29b4104d69 OpenWrt v19.07.4: revert to branch defaults
d5810aa613 OpenWrt v19.07.4: adjust config defaults
ce6496d796 ath10k-ct-firmware: update firmware images
b72077150d ath10k-ct-firmware: update firmware images
ddc2af4505 ath10k-firmware: move CT firmwares to new package
a43a39f531 ath10k-firmware: update ath10k-ct firmware images
4b8a5bdc83 ath10k-firmware: update ath10k-ct firmware
e4b47e12cb ath10k-firmware: update Candela Tech firmware images
7ac454014a ramips: ethernet: fix to interrupt handling
f5afa593e7 hostapd: Fix compile errors after wolfssl update
403039c562 wolfssl: Update to version 4.5.0
dc61110adc wolfssl: use -fomit-frame-pointer to fix asm error
ad38a2ae61 wolfssl: update to 4.4.0-stable
0d35fcbff0 mbedtls: update to 2.16.8
2020-09-10 16:55:51 +02:00
Andreas Ziegler f139cbf0b1
docs, README: Gluon v2020.2.1 2020-09-03 00:33:37 +02:00
Andreas Ziegler 1ac36fcff7 docs: add v2020.2.1 release notes 2020-09-03 00:31:52 +02:00
Andreas Ziegler 6f511a9442
docs: add v2020.1.4 release notes 2020-09-01 02:48:02 +02:00
David Bauer b5c88e4134 modules: update OpenWrt
2d7ea69dd3 mac80211: Fix potential endless loop
5a1e4a7fdb oxnas: reduce size of ATA DMA descriptor space
19b8696dd7 mbedtls: update to 2.16.7
a2a75c21bd kernel: Update kernel 4.14 to version 4.14.195
8b0278a17e ath79: add support for TP-Link TL-WR710N v2.1
33973a90dc tools/tplink-safeloader: use soft_ver 1.9.1 for archer c6 v2
fce5101469 tplink-safeloader: update soft_ver for TP-Link Archer C6 v2 (EU)
350883bb90 Revert "scripts/download: add sources CDN as first mirror"
d8ecaef409 generic: platform/mikrotik: fix incorrect test
008db6b970 ath79: enable gpio on ar933x by default
3df63fba70 ath79: fix syntax error in ar7240_tplink_tl-wa.dtsi
be09fdbf36 ath79: ar724x: make sure builtin-switch is enabled in DT
5d3e5d6ccc ath79: WNR612v2: improve device support
fba9a88821 ath79: add LAN LEDs control bits for AR724x GPIO function pinmux
2020-08-31 22:42:37 +02:00
Andreas Ziegler 37a40cbca2
Merge pull request #2111 from freifunk-gluon/features-fix
Fix two feature handling bugs
2020-08-30 17:20:51 +02:00
T-X 9215d28972
ar71xx-generic: Add support for GL-iNet Microuter (GL-USB150) (#2112)
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2020-08-30 00:48:37 +02:00
Linus Lüssing 90b4863b2c modules: update OpenWrt routing
This adds an important bugfix for BATMAN V users
("batman-adv: Fix own OGM check in aggregated OGMs").

b77498bd56 Merge pull request #603 from ecsv/batadv-for-19.07
6dea537c07 batman-adv: Merge bugfixes from 2020.3
0e5c75f536 Merge pull request #601 from bluewavenet/openwrt-19.07
ad8f02a4aa opennds: Backport v5.2.0
017d89d569 batctl: Enable build of mcast_flags subcommand

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2020-08-29 21:34:27 +02:00
T-X d73c6b2bcf
gluon-ebtables-filter-multicast: allow respondd queries (#2103)
This allows running a respondd querier and map server behind a Gluon
node.

For instance at Freifunk Lübeck we now moved the map server
behind a Gluon VM and removed batman-adv and fastd from the
map server VM to reduce the maintenance work.

Increased multicast overhead should be minimal / non existent, as it is
unlikely to accidentally have respondd queriers running behind a Gluon
node.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2020-08-29 09:52:55 +02:00
Andreas Ziegler 53a6720af2
docs: fixes for v2020.2 release notes (#2108) 2020-08-29 00:14:31 +02:00
Matthias Schiffer a9c2db939a features: handle all feature files in a single pass of feature_lib.get_packages()
All defined features need to be known at the same time, otherwise handling
a feed-provided feature definition file would add gluon-web-advanced etc.
to the package list when the corresponding feature flags appear in
GLUON_FEATURES.

Fixes: ee5ec5afe5 ("build: rewrite features.sh in Lua")
2020-08-28 22:27:38 +02:00
Matthias Schiffer 13b743d51e features: fix handling of logical expressions
The rewrite of the feature handling introduced multiple major bugs. One
of them was caused by the way Lua's logical operators work:

An expression of the form

    _'autoupdater' and _'web-advanced'

would return 'web-advanced' rather than the boolean true when _ returned
both strings unchanged (because the features are enabled).

As entries with more than a single feature name in their expressions did
not set no_default, Gluon would then attempt to add gluon-web-advanced to
the package selection, as web-advanced is a "pure" feature.

To fix this, and get rid of the annoying nodefault, separate handling of
"pure" feature and handling of logical expressions into two separate
functions, called feature() and when(). To simplify the feature
definitions, the package list is now passed directly to these functions
rather than in a table with a single field 'packages'.

Fixes: ee5ec5afe5 ("build: rewrite features.sh in Lua")
2020-08-28 22:27:38 +02:00
Matthias Schiffer 097efa9d2d
scripts: feature_lib.lua: improve error handling for invalid feature files
Print a proper error message, rather than just

    openwrt/staging_dir/hostpkg/bin/lua: scripts/feature_lib.lua:48: bad
    argument #1 to 'setfenv' (integer expected, got nil)
2020-08-28 20:41:54 +02:00
Martin Weinelt b1294472c6
Merge pull request #2065 from freifunk-gluon/early-reconfigure
Domain switch during reboot/gluon-reload
2020-08-22 19:50:55 +02:00
Martin Weinelt e9462b5b82
Merge pull request #2101 from 2tata/tata_200-wireless
gluon-core: 200-wireless simplify if conditions
2020-08-22 19:42:45 +02:00
Jan-Tarek Butt 94f5bd23b9 gluon-core: 200-wireless simplify if conditions
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2020-08-19 17:16:22 +02:00
David Bauer 04b87dc1ca
Merge pull request #2100 from freifunk-gluon/lint-action
actions: add linter actions for lua and shell script
2020-08-16 15:08:32 +02:00
Martin Weinelt 7ca9d331e4
editorconfig: indent yaml with two spaces 2020-08-16 13:23:58 +02:00
Martin Weinelt fabc9c1c0f
actions: add linter actions for lua and shell script 2020-08-16 13:23:58 +02:00
Martin Weinelt 78f4d0a348
Merge pull request #2099 from mweinelt/sae-wolfssl
gluon-mesh-wireless-sae: switch to wpa-supplicant-mesh-wolfssl
2020-08-16 01:50:58 +02:00
Martin Weinelt e9e22f60e7
Merge pull request #2042 from blocktrron/wpa3-wolfssl
gluon-wireless-encryption-wpa3: switch to hostapd-wolfssl
2020-08-16 01:50:44 +02:00
Martin Weinelt 882595cc21
gluon-mesh-wireless-sae: switch to wpa-supplicant-mesh-wolfssl 2020-08-16 01:14:22 +02:00
Andreas Ziegler a9e9d4050f
Merge pull request #2096 from freifunk-gluon/cpe210-versions
New CPE210/... v3 versions strings
2020-08-15 23:04:55 +02:00
Matthias Schiffer ea2b811a37
build: check for unsynced feeds before build (#2092)
Forgetting to `make update` or leaving uncommitted changes in the
repositories managed by Gluon is a recurring cause of confusion, even
for experienced developers. Let's print an obvious warning message in
this case.
2020-08-15 22:39:17 +02:00
Martin Weinelt 71046d4a9b
Merge pull request #2071 from freifunk-gluon/gluon-branch
Replace GLUON_BRANCH with GLUON_AUTOUPDATER_BRANCH and GLUON_AUTOUPDATER_ENABLED
2020-08-15 16:41:53 +02:00
Matthias Schiffer b12acc5b03
docs: update autoupdater documentation 2020-08-15 16:37:45 +02:00
Matthias Schiffer e6d3d1584c
build: deprecate GLUON_BRANCH Make variable
GLUON_AUTOUPDATER_BRANCH and GLUON_AUTOUPDATER_ENABLED should be set
separately now.
2020-08-15 16:36:27 +02:00
Matthias Schiffer d82ffb4f81
gluon-autoupdater: make site.conf branch setting optional
Default to the alphabetically smallest branch if none is set in
site.conf.

Also prevent enabling the autoupdater when no branches exist.
2020-08-15 16:36:27 +02:00
Matthias Schiffer ee53357580
gluon-autoupdater: split CONFIG_GLUON_BRANCH into two separate options
The new options are CONFIG_GLUON_AUTOUPDATER_BRANCH and
CONFIG_GLUON_AUTOUPDATER_ENABLED and allow to control the default branch
and default enable status separately.

The `or ''` fallback in targets/generic is removed, as GLUON_ENV will
set all variables in GLUON_VARS, making previously non-existing
variables exist with an empty value.
2020-08-15 16:36:27 +02:00
Matthias Schiffer 26f02a4eb3
gluon-site: print better error message for domain code conflicts (#2098)
We already have a proper message when the creation of an alias fails
because of a name conflict. Also add a message when the primary filename
of a domain config is already occupied by another domain's alias.

Also add an 'Error:' prefix to the existing message to easier to see.
2020-08-15 16:11:49 +02:00
Matthias Schiffer 49e8d95bb4
ar71xx-generic: add manifest_aliases for new CPE210 v3 minor revisions 2020-08-15 15:40:18 +02:00
Matthias Schiffer bcc8eb5232
ar71xx-generic: move CPE/WBS 210/220/510/520 minor versions to manifest_aliases
Only include the major version in the base image name or aliases.
2020-08-15 15:25:23 +02:00
Matthias Schiffer bd0133ad37
scripts/target_lib.lua: print a meaningful error message for missing site_code (#2094)
site_code is evaluated early during config generation, so a site.conf
without site_code would hit this assertion that just printed 'Assertion
failed'. Add a proper error message to tell users what went wrong.

The inner assert() is removed, as it should never be hit (as site.conf
syntax will have already been validated when this script runs), and it
doesn't add anything (even without the assert, the attempt to index a
nil value would throw an error).
2020-08-15 13:59:54 +02:00
Matthias Schiffer b66dcd0477
Merge pull request #2093 from freifunk-gluon/master-bump
modules: bump OpenWrt and packages
2020-08-15 10:50:47 +02:00
Andreas Ziegler 57cb28e815 modules: update OpenWrt
5af8da3787 ramips: fix Xiaomi MiWiFi Mini switch definition
e754e0a143 busybox: delete redundant patch
72878e3244 mac80211: Fix build on mpc85xx target
cdd9f19819 x86: Add CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
b3b7665e62 ar71xx: fix ZyXEL NBG6616 wifi switch
4af7873412 tools/cmake: fix typo in parallel make patch
d6b158b869 mac80211: Update to 4.19.137-1
148d59c67e kernel: update kernel 4.14 to version 4.14.193
7db09853a8 scripts: Add Buildbot dump-target-info.pl script
e52f7cfc1d uboot-envtools: ar71xx: add ZyXEL NBG6616 uboot env support
8ad674e90b ar71xx: change u-boot-env to read-write for ZyXEL NBG6616
dedf089bb7 hostapd: add wpad-basic-wolfssl variant
2788db3d38 hostapd: reorganize config selection hierarchy for WPA3
d40ce8b32d ramips: correct WizFi630S pin mappings
d1985a1be6 ramips: enable flashing WizFi630S via OEM firmware
4212b6a01e ramips: remove doublet entry in WizFi630S dts file
a81c459d99 ramips: disable unused phy ports of WizFi630S
9d2dea8302 mvebu: fix LAN/WAN port assignment on ClearFog Base/Pro
de1693e56f ar71xx: restore support for boot console with arbitrary baud rates
1b3aca9142 ath79: restore support for boot console with arbitrary baud rates
f6acabcbdc ar71xx: enable ethernet LED of Arduino Yun
f17174e843 ar71xx: fix sysupgrade for Arduino Yun
f3c0eab9c7 Revert "ar71xx: fix Arduino Yun enabling of level shifters outputs"
2f756b39ed ramips: add kmod-usb-dwc2 to ZyXEL Keenetic image
06c6a3dd70 ramips: remove patches for USB-dwc2
2020-08-15 04:50:25 +02:00
Andreas Ziegler 695e4ea2cd modules: update OpenWrt packages
59d39c09d openvswitch: backport patch to fix build against kernel 4.14.193
03e8f0e0c adblock: refresh blocklist sources
bef08d8f7 rtl_433: update to 20.02
c34df4543 nano: update to 5.1
4a2d5aed7 nano: update to 5.0
490dfa34a irqbalance: update to 1.7.0
58e39c4b2 mosquitto: update to 1.6.11
2666e3b77 Merge pull request #13092 from jefferyto/golang-1.13.15-openwrt-19.07
6970bc743 golang: Update to 1.13.15
f91521f75 nlbwmon: add hotplug script to reload after interface ifup
b6185d402 nlbwmon: add conffiles
e6cad65f0 Merge pull request #13054 from micmac1/apa2446-19.07
92aff96a2 Merge pull request #13056 from odmdas/odmdas-freeradius3-Makefile-19.07
3fb559e8b freeradius3: add missing conffiles to Makefile
f5a57e42c apache: security bump to 2.4.46
61f3bd507 apache/apr/apr-util: remove maintainer
234fe24e4 apache: revisit suEXEC setup
d5096a76f apache: create log directory o=
30e81c3db Merge pull request #13046 from EricLuehrsen/unbound_20200806_1907
47288133f unbound: update to 1.11.0
d00237135 unbound: improve startup and dhcp script robustness
f73ed87a1 unbound: add dns assistants on local host
d4be5de1c tor-hs: add new package
c856721aa libzdb: fix headers path
650da029b libs: libzdb: bump to version 3.2.1
43db5293c libzdb: update to 3.2
7c5fe897f v4l-utils: bring back getsubopt patch
e9a4d689f libv4l: update to 1.20.0
59f45c6cc libv4l: update to 1.16.8
01ae3c69b libv4l: fix compilation under kernel 4.14
896359e4c libv4l: fix compilation with newer musl
e0deb2c5f libv4l: Update to 1.16.6. Fix missing includes patch
d9e221d6c libv4l: Add missing INTL dependency
cd2de9dc5 net/pagekitec: Update to v0.91.200718
2020-08-15 04:46:24 +02:00
Matthias Schiffer de5ebfa44c
gluon-core: run firewall upgrade script after basic network setup (#2091)
Reorder scripts so that the mesh_lan interface is accounted for.

Two other firewall upgrade scripts (mesh-babel and l3roamd) are
reordered as well. While there seems to be no hard dependency at the
moment, it makes sense to run the basic setup first, also to avoid
problems with future changes.

Closes: #2090
Fixes: ed094bc68c ("gluon-core: firewall: Allow custom gluon_wired interfaces (#2041)")
2020-08-14 21:02:55 +02:00
bobcanthelpyou 2ad473bcd4
docs: fix small typos and use common used notation (#2088) 2020-08-13 13:25:45 +02:00
David Bauer 43b95cfcaa
lantiq-xrx200: remove modem packages from image (#2087)
The packages necessary to get the DSL modem working increase the
squashfs size by around 1MB.

Remove them from Gluon, as this functionality is not supported.
2020-08-11 17:30:49 +02:00
Matthias Schiffer e06081c3fc
Merge pull request #2069 from freifunk-gluon/web-theme-cleanup
gluon-config-mode-theme: cleanup and select box theming
2020-08-10 21:33:40 +02:00
Andreas Ziegler 6346d20b2d
Merge pull request #2058 from freifunk-gluon/board-json-ifnames
Use LAN/WAN interfaces from board.json, add lantiq special case
2020-08-09 00:37:40 +02:00
Andreas Ziegler 892405b9e0
Merge pull request #2043 from freifunk-gluon/iface-type
Fix tunnel interface detection in respondd nodeinfo
2020-08-09 00:36:14 +02:00
David Bauer 64f4095c1c
gluon-status-page: add wireless client count (#2085)
This adds the wireless client count for 2.4GHz and 5 GHz radios to the
status page. Previously, only the total client count advertised by
the mesh protocol was visible.
2020-08-09 00:34:23 +02:00
Matthias Schiffer 96f1547d0f
docs: add a number of CSS fixes (#2078)
Fix a number of issues related to the vertical alignment and margins of
list elements.
2020-08-08 17:20:05 +02:00
Martin Weinelt 23c7003ed4
modules: update routing
4c05fe9 batman-adv: Merge bugfixes from 2020.2
822b55f batctl: Merge bugfixes from 2020.2
3f85711 nodogsplash: update to 4.0.3
2020-08-05 21:22:05 +02:00
Martin Weinelt 4cb7dbb926
modules: update OpenWrt packages
cd2de9dc5 net/pagekitec: Update to v0.91.200718
d7b38d736 simple-adblock: README and config update
0d8f39a36 tor: fix init scripts
a21ffc8eb tor: update init script
30f5119a4 netatalk: fix compile error in mac os
8658203e6 gerbera: fix conffiles
83e58b67d youtube-dl: update to version 2020.7.28
98480822e youtube-dl: update to version 2020.6.16.1
f384d8d78 youtube-dl: update to version 2020.6.6
65d98a79f youtube-dl: update to version 2020.5.29
010b5e6fb youtube-dl: update to version 2020.5.8
b32500958 mwan3: update version to 2.8.12
5f934c667 mwan3: unify variable check
138d02cfc mwan3: remove lock file entirely
520eeb080 mwan3: revert: also cleanup lock on mwan3 stop
294e7503b mwan3: fix race condition on mwan3 restart
e8e290e0f gerbera: enable matroska and ffmpeg
f73b1da1a libmatroska: update to 1.6.0
16d65196a libmatroska: add
18b9aeb4c libebml: update to 1.4.0
39abfa8d7 libebml: add
5bfc1c9cf mwan3: update version to 2.8.11
e02cac815 mwan3: add online and uptime to detail output
538d2fd7c mwan3: add workaround for procd change
b340df682 mwan3: also cleanup lock on mwan3 stop
b5ed0033c mwan3: fix rtmon routing table function generation
2c89e14c3 mwan3: fix IPv6 routing add handling
447d51edb mwan3: fix idx calculation
37e2f8820 mwan3: version bump
b9e346125 mwan3: cleanup duplicate ipv4 and ipv6 logic
db46d3ab0 mwan3: don't send iptable setup failures to /dev/null
383555d07 mwan3: add default rule for ipv6 in example config
dc25b38f1 mwan3: don't try to use ipv6 if not installed
ec45ff805 mwan3: be more efficient with sleep after killing trackers
d6b051b8c mwan3: don't add single ipv4 to connected list if already covered by a cidr
f834ba0fc mwan3: update version to 2.8.9
2f2044ecb mwan3: cleanup function mwan3_create_iface_route
db3c8326f mwan3: fix shellcheck warning SC2086
7d0f2cdb6 mwan3: fix shellcheck warning SC2166
c0b111fea mwan3: remove unused variable complained by shellcheck
3443eb3c7 mwan3: fix shellcheck warning SC2039
be8f287aa mwan3: move redirect error output to trash
08111b9c7 nextdns: Update to version 1.7.1
3272114cc mc: update to 4.8.25
a2b02f67d netdata: update to version 1.23.2
80a38c595 admin/netdata: Update to 1.22.1
76b143e00 netdata: update to version 1.20.0
f29fdc7c2 liblz4: fix previous patch
b40a139fb meson: allow compilation in a subdirectory
9d03a1ea5 liblz4: add patch removing distutils requirement
5f22b6c38 liblz4: convert to meson
345cb18d4 tor: update to version 0.4.2.8 (security fix)
da4a05296 mocp: disable ffmpeg
9b0e858c0 mpd: update to 0.21.25
7b269ec49 dovecot: remove incorrect PKG_BUILD_DEPENDS
14c248274 faad2: update to 2.9.2
f593c37cd xz: update to 5.2.5
97842ae44 zstd: fix compilation without host distutils
00f29de5f zstd: update to 1.4.5
1dc0c3b79 zstd: remove lto and as-needed flags
01abd5d37 zstd: convert to meson
6ae076fd1 aria2: Build with MIPS16
2cdf132b9 aria2: Update to 1.35.0
5200d6449 libvorbis: update to 1.3.7
e798f539c msmtp: update to version 1.8.11
780c45377 msmtp: update to version 1.8.10
0821c5001 squid: update to version 4.12
5658fd93f squid: fix 'localhet' typo in squid.conf
3b285bfaa quasselc: fix compilation with newer glib2
2c6155c9c gkrellmd: update to 2.3.11
fa49751a8 sumo: Update to 1.3.1
ddb0af406 python3: Backport security fixes
1a527963c golang: Update to 1.13.14
54b76dfd7 haveged: update to 1.9.13
984a32fff libvorbisidec: update to version 20180319
fb687b542 dnscrypt-proxy2: update to version 2.0.44
5ed85c038 openvswitch: bump to version 2.11.3
6a0eeda77 getdns: fix compilation without deprecated OpenSSL APIs
805c1344e getdns: properly remove libbsd support
cc0eb59f4 ntpd: update to version 4.2.8p15 (security fix)
fe32da084 python3-maxminddb: Fix build when using newer setuptools
4b0c1f871 python3: Use default _PYTHON_HOST_PLATFORM
86d2bfe02 mwan3: Fix mwan3 start not doing anything Due to a missing config load function call, mwan3 start runs ifup for an empty list of interfaces, thus not calling ifup at all.
b74d5e9c1 mwan3: update version to 2.8.7
4f394c259 mwan3: set status to unknown in rpcd if status file not found
f7749c663 mwan3: switch to procd init script
0498a2b35 mwan3: address reviewer comments on 5147dfc7
cc1bb3e8b mwan3: Use /128 for ipv6 if no other source address was found
74b6f1084 mwan3: Allow user to specify rules based on source interface
c14e74a5a mwan3: Do not mangle outgoing ipv6 pings
465baa46c mwan3: version bump to 2.8.6
19bebd3d8 mwan3: force busybox ping
ffce45e36 mwan3: don't add ipv6 link local address to routing tables
a3c399d01 mwan3: reduce calls to `ip route list'
4af28cc68 mwan3: Update Makefile
0693f0c9e mwan3: Don't use /128 address for ping source
7434c91c5 stubby: add build dependency on check package
140e2ea19 stubby: update to version 0.3.0
048a39258 getdns: update to version 1.6.0
0c03b71b8 samba4: update to 4.11.11
28b5a2b04 mc: fix mouse handling
9b3ce06b9 travis: improve build config
2461e7978 travis: Use Ubuntu 20.04 LTS - Focal Fossa
d7bec1b0f travis: Use Ubuntu (Bionic Beaver) 18.04 LTS
a80754337 travis: use mpc85xx-p2020 sdk instead of ar71xx
2a9998771 travis: Download SDK from OpenWrt instead of LEDE
b80db2c80 bind: add nslookup alternative to busybox nslookup
3c3a1f761 bind: update to version 9.16.3
177623c5f bind: update to version (security fix)
b73f479ea bind9: update to 9.16.1
d78bdbd8a python3: Update to 3.7.8, refresh/rework patches
c7495a200 syslog-ng: detect disabled IPv6 on loopback and fallback to IPv4
cd080dded miniupnpd: added libcap dependency
b418029e4 miniupnpd: update to 2.1.20200510
231e47185 miniupnpd: suppress grep and uci errors
5cb388497 miniupnpd: improve hotplug & interface handling
f49c2c71c stubby: fix handling of tls_port config option
f51ec94f8 acme: Bump release version
f7e03d127 acme: Handle ecc cert correctly
0e5b27324 acme: Handle log message correctly
4344723f8 https-dns-proxy: re-add conffiles and add description to Makefile
2c4644bf9 https-dns-proxy: bugfix: remove eDNS support
8044a7014 nextdns: Update to version 1.7.0
e1b8d033e irqbalance: fix socket directory and create it
4a129a996 treewide: add conffiles
ca6751a7d irqbalance: fix compilation for USE_GLIBC and BUILD_NLS cases
9bdd0f113 haveged: update to 1.9.12
45e78b34a Revert "ksmbd: update to 3.2.0, ksmbd-tools: update to 3.2.6"
1b1c2c598 haproxy: Update HAProxy to v2.0.15
fd3648a7b transmission: add access to web interface files to procd jail
054b87df4 transmission: add a disabled notification
8cb936731 transmission: update to 3.0
de86c989a upmpdcli: update to 0.4.6
9e108dcc7 upmpdcli: Update to 1.4.2
c82f63114 haveged: update to 1.9.11
445c3d8f8 perl: fix build failure in GCC10
456fc88c4 libtirpc: update to 1.2.6
b61848fd0 wsdd2: update to git 2020-05-06
de09918ac simple-adblock: racially-neutral names
5fcf2cb09 unbound: make option interface_auto default on
950646f6c unbound: bump PKG_RELEASE
ba19244b8 unbound: suggest matched domain option for dnsmasq link
72b0ea4b5 samba4: update to 4.11.9
d88405ba8 ksmbd: update to 3.2.0, ksmbd-tools: update to 3.2.6
1a0db6a21 softethervpn5: update to 5.01.9674
91be27471 rpcsvc-proto: update to 1.4.1
c0dce1d3a adblock: update 4.0.6
0ff5cb54e mpd: update to 0.21.24
982e7e2fa adblock: update 4.0.5-5
e2bd118b3 less: update ALTERNATIVES
53fc73b57 simple-adblock: remove obsolete dshield.org links from config
a93ea48b2 golang: Update to 1.13.12
49685b6be collectd: sqm_collect: tidy interval string handling
9a38e786f collectd: sqm_collectd: improve error handling
f89580290 collectd: Improve sqm_collectd error reporting
8dcc144b9 collectd: sqm_collectd improve interface name filter
18128f79d collectd: bump PKG_RELEASE
7ceb83acf collectd: SQM collect data from some qdiscs
9f20fbba5 collectd: add syslog json plugin
fdf5d41b5 rrdtool1: modify logarithmic scale labelling
e667100a9 knot: update to version 2.9.5
aef8cb50f knot: disable libcap-ng
550fa7c28 knot: update to version 2.9.3
1fe19e712 linuxptp: fix build failure
267b49087 sslh: use tls option instead of deprecated ssl
37f5ae61b gnutls: updated to 3.6.14
3efdcd808 mpd: enable id3tag for all builds
f0fd4c151 nextdns: Update to version 1.6.4
18efcda21 simple-adblock: bugfix: proper error reporting on failed downloads; lists update script
2020-08-05 21:20:12 +02:00
David Bauer 923299b834 openwrt: refresh patches
Fixes commit bf36c5b2d3 ("modules: bump OpenWrt")
2020-08-02 00:32:10 +02:00
David Bauer bf36c5b2d3 modules: bump OpenWrt
86727bd158 hostapd: improve TITLE for packages
bf58bfb90e mediatek: mt7623: fix sysupgrade from vendor OpenWrt on UniElec U7623
2147c33e40 mediatek: mt7623: add explicit console= to U7623 kernel
8fbe450e40 curl: patch CVE-2020-8169
7d6e504dbe make_ext4fs: Update to version 2020-01-05
a225164bb5 make-ext4fs: update to HEAD of 2017-05-29 - eebda1
afaa978b74 firewall: backport patch for mss clamping in both directions
a2c9fc9ff0 ath79: correctly define WiFi switch for TL-WR841ND v8
7022f1eb13 bcm47xx: fix switch setup for Linksys WRT610N v2
fba22d89a9 tplink-safeloader: expand support list for TP-Link CPE210 v3
a785aed70e lantiq/xrx200: make WLAN button responsive on Fritzbox 7360 & 7362
4a9d6320af lantiq/xrx200: fix WLAN button actions for Fritzbox 3370
284cd7d18e lantiq/xrx200: make WLAN button responsive on Fritzbox 3370
2ca5a386ee vxlan: bump and change to PKG_RELEASE
e894e1b2f0 vxlan: fix udp checksum control
8c19171255 ipq40xx: fix ethernet vlan double tagging
b9a89bf7b5 build,json: fix compatibility with Python 3.5
9c0ad7f1d5 build: fix compatibility with python 3.6
78f57fbce6 build,json: fix build failure in case no data is found
270711b8ed build,json: store arch_packages in profiles.json
e3618eb2cc build: store default/device packages in JSON
3dbd74d032 imagebuilder: Remove json_info_files/ before build
8ea6be1510 kirkwood: support for button in Pogoplug V4
de75d6ecfa lantiq: dts: Move the &usb_vbus nodes out of &gpio
2d14da2c7d ar71xx: Fix mikrotik NAND compile problem
673e7944bb ar71xx: Fix mikrotik NAND compile problem
73e0ea1ea9 armvirt,x86: fix build breakage of crypto ccp module
d46650de7c nghttp2: bump to 1.41.0
9cad70044f kernel: fix nand_release() usage.
820f4654c6 wireguard: bump to 1.0.20200611
f4985a22ca kernel: Update kernel 4.14 to version 4.14.187
73fecd36bf mac80211: fix use of local variable
938839a565 scripts: JSON merge don't crash if no JSON found
3572711e3c build: refactor JSON info files to `profiles.json`
b7bac0737e build: image: fix build breakage of some images
8a0362c699 build: create JSON files containing image info
8293c8ed46 ath79: do not build TP-Link tiny images by default
670eeb7888 mediatek: fix IPv4-only corner case and commit in 99-net-ps
9c58f5d4ff bcm63xx: DGND3700v1: fix port order
ebefdf61ed ramips: increase SPI frequency for ELECOM WRC-GST devices
6b042217d7 mvebu: fix default EU regdomain for Linksys WRT AC devices
a2c556aa8f libnetfilter-queue: fix package title and description
8adbe26f6e base-files: remove urandom-seed definition
b40e6bc55f ath79: drop and consolidate redundant chosen/bootargs
153392e209 ath79: add support for TP-Link TL-WA801ND v3/v4
6520659870 uclient: update to 19.07 Git HEAD
b547542297 Revert "uclient: Update to version 2020-06-17"
0c910d8459 uclient: Update to version 2020-06-17
18cf2383b6 bcm63xx: a226m-fwb: fix linux partition offset
2020-08-02 00:25:55 +02:00
David Bauer a3a55d6461
openwrt: backport DFS fixes (#2077)
This backports two fixes related to operation on DFS-required
channels.

When a DFS-required channel was selected as the regular
(non-outdoor-mode) 5 GHz channel, hostapd would switch to a non-DFS
channel as OpenWrt did not pass a chanlist of allowed ACS channels.

When hostapd is given a single channel for the chanlist or there's no
available channel left (all allowed channels are in the no-occupancy
period), hostapd prints "no DFS channels left, waiting for NOP to
finish" to the syslog but never stopped transmitting on this channel,
still sending out beacon frames and allowing client data transfer.
2020-07-29 15:45:17 +02:00
David Bauer de9d3a917e
actions: cache OpenWrt DL folder (#2084)
This adds the ability to cache OpenWrt dependencies on a per-target
base. Artifacts over 10MB are excluded, as GitHub imposes a limit of 5G
of available space per repository cache. This affects mostly
linux(-firmware) and gcc / gdb.

The goal is to reduce the total amount of requests necessary to fetch
dependencies.
2020-07-25 00:42:55 +02:00
David Bauer 44bb65af0a docs, README: Gluon v2020.2
(cherry picked from commit bf8c3babae)
2020-07-19 17:01:11 +02:00
David Bauer 7ea55addc7 docs: add v2020.2 release notes
Closes #1979
Closes #2062

(cherry picked from commit 582d2d6954)
2020-07-19 17:01:11 +02:00
David Bauer bf8c3babae
docs, README: Gluon v2020.2 2020-07-19 16:53:08 +02:00
David Bauer 582d2d6954 docs: add v2020.2 release notes
Closes #1979
Closes #2062
2020-07-19 16:49:08 +02:00
David Bauer ec582b7742 gluon-web: don't display outdoor mode on preserve_channels (#2074)
This will hide the outdoor mode setting on compatible devices in case
the defined channels should be preserved.

Otherwise a user might be under the impression their device is compliant
with outdoor operation when in reality it still uses prohibited
channels.

(cherry picked from commit 73b830eb32)
2020-07-13 23:19:09 +02:00
Matthias Schiffer d3613ac5df gluon-radv-filterd: add string.h and guard to mac.h
- #pragma once include guard
- include string.h to get memset and memcmp prototypes to fix respondd
  provider build warning

(cherry picked from commit e32fa5bc64)
2020-07-13 23:18:56 +02:00
Matthias Schiffer ce6caa1ac7 gluon-radv-filterd: downgrade frequent messages to DEBUG_MSG
When the network connectivity is bad, routers may not appear in the
translation tables, or there may be no originator with TQ >0. Such
conditions to not warrant spamming the log with error messages.

(cherry picked from commit fcd07de676)
2020-07-13 23:18:49 +02:00
Matthias Schiffer bc066b88e6 gluon-radv-filterd: remove unneeded memset
(cherry picked from commit e384f899b7)
2020-07-13 23:18:44 +02:00
David Bauer 12f90e3a57 docs: wlan-configuration: document outdoor mode behavior (#2075)
Document the behavior of the Outdoor mode when preserve_channels is
enabled.
2020-07-07 03:09:15 +02:00
David Bauer 2e37ffff56
docs: wlan-configuration: document outdoor mode behavior (#2075)
Document the behavior of the Outdoor mode when preserve_channels is
enabled.
2020-07-06 20:06:52 +02:00
David Bauer 73b830eb32
gluon-web: don't display outdoor mode on preserve_channels (#2074)
This will hide the outdoor mode setting on compatible devices in case
the defined channels should be preserved.

Otherwise a user might be under the impression their device is compliant
with outdoor operation when in reality it still uses prohibited
channels.
2020-07-05 19:05:27 +02:00
Matthias Schiffer 1fc71a73b3
gluon-config-mode-geo-location-osm, gluon-web-osm: add support for custom tile layers (#2072)
Allow replacing the default OSM layer with a custom XYZ layer in
site.conf.
2020-07-05 17:06:59 +02:00
Matthias Schiffer 9b3ee477fa
Rewrite features.sh in Lua (#2045)
* build: target_config_lib: introduce concat_list helper

* build: rewrite features.sh in Lua

The `features` file is converted to a Lua-based DSL.

A helper function `_` is used in the DSL; this will return the original
string for enabled features, and nil for disabled features. This allows
to use boolean operations on features without making the code too
verbose.

Besides having more readable and robust code, this also fixes the bug
that all files `packages/*/features` were evaluated instead of only
using the feature definitions of currently active feeds.

* build: add luacheck support for package/features
2020-07-04 22:07:55 +02:00
Matthias Schiffer 2bfc39f3f7
scripts: generate_manifest: remove obsolete manifest lines (#2067)
The current manifest format was introduced with the new autoupdater in
Gluon v2018.1. Reduce the manifest size by 70% by removing the additional
manifest lines added for backwards compatiblity.
2020-07-04 22:07:25 +02:00
David Bauer b099b3ceba
Merge pull request #2068 from freifunk-gluon/radv-filterd
gluon-radv-filterd: minor cleanup
2020-07-04 21:02:40 +02:00
Matthias Schiffer 813f89a60b
docs: features/multidomain: update docs to mention gluon-switch-domain 2020-07-04 10:50:33 +02:00
Matthias Schiffer f75f40d29a
gluon-config-mode-theme: add cross-browser styling for <select> elements
Replace the ugly arrow shown in Firefox with a custom SVG arrow. Tested
and working in Firefox, Chrome and Edge. The arrow doesn't show in IE, but
the gluon-web-model JavaScript is already severely broken in IE, so we
don't care.
2020-07-03 21:53:51 +02:00
Matthias Schiffer 5263583b74
gluon-config-mode-theme: clean up SCSS
Remove unused and obsolete code.
2020-07-02 23:45:34 +02:00
Matthias Schiffer 7360e97a9c
gluon-web-*: remove non-existing CSS classes 2020-07-02 23:43:23 +02:00
Matthias Schiffer c2f9c28e0e
gluon-config-mode-theme: indent scss using tabs 2020-07-02 22:57:13 +02:00
Matthias Schiffer 02c8650bae gluon-scheduled-domain-switch: use gluon-switch-domain 2020-07-02 22:35:05 +02:00
Matthias Schiffer 6ab9d3415d gluon-hoodselector: use gluon-switch-domain 2020-07-02 22:35:05 +02:00
Matthias Schiffer 6750aef017 gluon-core: add gluon-switch-domain utility 2020-07-02 22:35:05 +02:00
Matthias Schiffer e32fa5bc64
gluon-radv-filterd: add string.h and guard to mac.h
- #pragma once include guard
- include string.h to get memset and memcmp prototypes to fix respondd
  provider build warning
2020-07-02 00:17:50 +02:00
Matthias Schiffer fcd07de676
gluon-radv-filterd: downgrade frequent messages to DEBUG_MSG
When the network connectivity is bad, routers may not appear in the
translation tables, or there may be no originator with TQ >0. Such
conditions to not warrant spamming the log with error messages.
2020-07-02 00:10:45 +02:00
Matthias Schiffer e384f899b7
gluon-radv-filterd: remove unneeded memset 2020-07-02 00:10:29 +02:00
Matthias Schiffer 97f1515284 build: add luacheck support for package/features 2020-07-01 20:35:22 +02:00
Matthias Schiffer ee5ec5afe5 build: rewrite features.sh in Lua
The `features` file is converted to a Lua-based DSL.

A helper function `_` is used in the DSL; this will return the original
string for enabled features, and nil for disabled features. This allows
to use boolean operations on features without making the code too
verbose.

Besides having more readable and robust code, this also fixes the bug
that all files `packages/*/features` were evaluated instead of only
using the feature definitions of currently active feeds.
2020-07-01 20:35:22 +02:00
Matthias Schiffer 0fd5905fc2
build: target_config_lib: introduce concat_list helper 2020-07-01 20:10:40 +02:00
Matthias Schiffer 8a79d0249f
gluon-scheduled-domain-switch: move gluon-switch-domain to /lib/gluon/scheduled-domain-switch
This script is an implementation detail - let's not clutter the global
$PATH namespace with a script with such a generic name.
2020-06-30 23:49:01 +02:00
Matthias Schiffer 60351a1f19
gluon-core: allow to switch domains during reconfiguration
When gluon.core.switch_domain is set, it replaces the old domain.

This also replaces an unnecessary uci:commit() with uci:save().
2020-06-30 23:49:01 +02:00
Matthias Schiffer 62e71fbc40
gluon-core: run gluon-reconfigure on boot when gluon.core.need_reconfigure is set 2020-06-30 23:49:00 +02:00
Matthias Schiffer cf0dc24463
gluon-setup-mode: create symlinks in install script
The package rebuild logic of OpenWrt only checks regular files. Avoid
symlinks in the files directory to make rebuilds more robust.
2020-06-30 23:48:55 +02:00
David Bauer 9be7a5cad7
gluon-wan-dnsmasq: read interfaces to update from flag-files (#2060)
This commit changes the behavior for the wan-dnsmasq to read the
interfaces to update the DNS servers on from flag-files.

This way, external custom packages which add a custom VPN WAN interface
can update the DNS server gluon is using for WAN resolving.
2020-06-30 16:37:09 +02:00
Matthias Schiffer fa0e2d06b6
gluon-core: lantiq: use WAN interface from switch0 configuration
On lantiq, the default WAN ifname is 'dsl0' even on devices that have a
separate WAN port. At least on devices using swconfig we can override
this with the switch port labelled as 'wan'.
2020-06-21 17:47:45 +02:00
David Bauer 5696be7240 mt76: mt76x0: disable GTK offloading
When the GTK is offloaded, MT7610 won't transmit any multicast frames.
This is most likely due to a bug in the offloading datapath. MT7612 is
not affected.

Disable GTK offloading for now. It can be re-enabled once the bug in the
offloading path is fixed.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-14 17:11:17 +02:00
David Bauer efb6b9d555 gluon-core: allow WPA3 features on ramips-mt7620
Backporting the MFP patch allows us to utilize WPA3 features on this
target.

Tested on TP-Link Archer C20i
2020-06-14 17:11:04 +02:00
David Bauer f9008851d5 mac80211: rt2800: enable MFP support unconditionally
This gives us WPA3 support out of the box without having to manually disable
hardware crypto. The driver will fall back to software crypto if the connection
requires management frame protection.

THis allows us to use WPA3 features (Private-WiFi SAE & OWE) on
ramips-mt7620.
2020-06-14 17:10:55 +02:00
David Bauer 2be6fe32e6 modules: update OpenWrt
b515edb775 ipq40xx: essedma: Disable TCP segmentation offload for IPv6
f7f15f8033 ath79: wndr3700 series: fix wifi range & throughput
1f5cbd6be7 ca-certificates: update to version 20200601
fa72f2646a oxnas: build with 8021Q VLAN support
e752fc1ff9 ath79: add support for TP-Link TL-WR802N V1 and V2
6488d2f7cc ath79: update WA/XC devices UBNT_VERSION to 8.5.3
fb79e5d9fe ipq806x: EA8500 fix boot partition detection
e36bdd5dc5 ath79: fix LEDs for GL.inet GL-AR150
21454a772b ar71xx: fix reset key for TP-Link TL-WR802N V1/V2
a32b0ec4cf generic: fix flow table hw offload

Closes #2055
2020-06-14 15:49:17 +02:00
Matthias Schiffer 5e44f7cdde
gluon-core: get LAN and WAN interfaces from board.json
Instead of looking at the initial UCI config, we can read this
information from board.json.
2020-06-14 12:38:53 +02:00
David Bauer 2891454f16 mt76: mt76x0: disable GTK offloading
When the GTK is offloaded, MT7610 won't transmit any multicast frames.
This is most likely due to a bug in the offloading datapath. MT7612 is
not affected.

Disable GTK offloading for now. It can be re-enabled once the bug in the
offloading path is fixed.

Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-13 23:07:05 +02:00
David Bauer baa53b4d8b
Merge pull request #2052 from blocktrron/rt2x00-80211w
mac80211: rt2800: enable MFP support unconditionally
2020-06-13 19:07:52 +02:00
Matthias Schiffer 3926717998
gluon-mesh-batman-adv: do not delete bat0 during hardif teardown (#2057)
With very bad timing, it is possible that the teardown script of a
gluon_mesh interface runs when bat0 was just created, but primary0 is not
yet added to it. Although there is no hardif to remove in this case,
bat0 will still be deleted, because there is no hardif in bat0.

Disable the interface removal logic by passing `-M` to `batctl interface`.

(cherry picked from commit 92647cd47a)
2020-06-13 18:45:13 +02:00
Matthias Schiffer 92647cd47a
gluon-mesh-batman-adv: do not delete bat0 during hardif teardown (#2057)
With very bad timing, it is possible that the teardown script of a
gluon_mesh interface runs when bat0 was just created, but primary0 is not
yet added to it. Although there is no hardif to remove in this case,
bat0 will still be deleted, because there is no hardif in bat0.

Disable the interface removal logic by passing `-M` to `batctl interface`.
2020-06-13 18:44:46 +02:00
Matthias Schiffer 6cb5a2ac7a
docs: update version number to v2020.2+
v2020.2.x has been branched, so the current master is v2020.2+.
2020-06-13 13:21:47 +02:00
Matthias Schiffer ee473ce2a4
gluon-config-mode-outdoor: enable 5GHz mesh interfaces when disabling outdoor mode
There is no setting to explicitly enable mesh interfaces in the config
wizard, so we need to enable mesh interfaces by default when the outdoor
mode is disabled (unless site.conf dictates otherwise).

The simplest way to achieve this is to delete the 5GHz mesh interface
sections when outdoor mode is disabled: 200-wireless would delete and
recreate them a moment later anyways, but by deleting them earlier we
ensure that the disabled status is initialized from site.conf again.

(cherry picked from commit 17bc622892)
2020-06-12 22:12:01 +02:00
Matthias Schiffer b466d00d3f
gluon-web-wifi-config: default to enabled 5GHz mesh interfaces when disabling outdoor mode
When disabling outdoor mode, 5GHz mesh interfaces should be enabled by
default again (unless disabled in site.conf).

(cherry picked from commit d2052431dd)
2020-06-12 22:12:01 +02:00
Matthias Schiffer 86b0a60d8d
gluon-core: fix handling of 'disabled' site.conf attributes for mesh interfaces
Because is_disabled() was always returning true or false, the
first_non_nil() would never actually check the default setting from
site.conf. This was broken since v2017.1.

Fixes: 6cf03bab37 ("treewide: replace normal uses of luci.model.uci with simple-uci to reduce LuCI dependencies")
(cherry picked from commit 3c2593b684)
2020-06-12 22:12:01 +02:00
Matthias Schiffer 41d13742f6
build: target_config_lib: do not build unused packages for targets without opkg (#2051)
Normally, we build all nonshared packages (which includes all kernel
modules) to generate an opkg feed for later package installations by
users. On targets without opkg, this just wastes time - disable it.

(cherry picked from commit b3edfd292a)
2020-06-12 22:12:01 +02:00
Matthias Schiffer a426312cb8
Merge pull request #2054 from freifunk-gluon/outdoor-mesh-enable
Enable 5GHz mesh interfaces when disabling outdoor mode, fix default status from site.conf
2020-06-12 22:10:42 +02:00
Matthias Schiffer 17bc622892
gluon-config-mode-outdoor: enable 5GHz mesh interfaces when disabling outdoor mode
There is no setting to explicitly enable mesh interfaces in the config
wizard, so we need to enable mesh interfaces by default when the outdoor
mode is disabled (unless site.conf dictates otherwise).

The simplest way to achieve this is to delete the 5GHz mesh interface
sections when outdoor mode is disabled: 200-wireless would delete and
recreate them a moment later anyways, but by deleting them earlier we
ensure that the disabled status is initialized from site.conf again.
2020-06-12 19:27:01 +02:00
Matthias Schiffer d2052431dd
gluon-web-wifi-config: default to enabled 5GHz mesh interfaces when disabling outdoor mode
When disabling outdoor mode, 5GHz mesh interfaces should be enabled by
default again (unless disabled in site.conf).
2020-06-12 19:13:20 +02:00
Matthias Schiffer 3c2593b684
gluon-core: fix handling of 'disabled' site.conf attributes for mesh interfaces
Because is_disabled() was always returning true or false, the
first_non_nil() would never actually check the default setting from
site.conf. This was broken since v2017.1.

Fixes: 6cf03bab37 ("treewide: replace normal uses of luci.model.uci with simple-uci to reduce LuCI dependencies")
2020-06-11 23:52:22 +02:00
Matthias Schiffer b3edfd292a
build: target_config_lib: do not build unused packages for targets without opkg (#2051)
Normally, we build all nonshared packages (which includes all kernel
modules) to generate an opkg feed for later package installations by
users. On targets without opkg, this just wastes time - disable it.
2020-06-11 02:16:49 +02:00
David Bauer 2611e86438 gluon-core: allow WPA3 features on ramips-mt7620
Backporting the MFP patch allows us to utilize WPA3 features on this
target.

Tested on TP-Link Archer C20i
2020-06-10 22:45:01 +02:00
David Bauer e8cc866db2 mac80211: rt2800: enable MFP support unconditionally
This gives us WPA3 support out of the box without having to manually disable
hardware crypto. The driver will fall back to software crypto if the connection
requires management frame protection.

THis allows us to use WPA3 features (Private-WiFi SAE & OWE) on
ramips-mt7620.
2020-06-10 22:41:01 +02:00
Matthias Schiffer e6491287ba
gluon-core: create disabled mesh interface sections in outdoor mode
The interfaces should always exist and just be disabled when outdoor
mode is enabled. Not creating them at all leads to an issue in the
advanced wifi settings where an additional reload of the page is
necessary after enabling or disabling the ourdoor mode to make the mesh
VIF options appear or disappear.

(cherry picked from commit b15b008e69)
2020-06-07 10:56:40 +02:00
Matthias Schiffer 3d091912af
gluon-web-wifi-config: make mesh VIF options depend on outdoor=false
Instead of relying on the existence of interface sections only (which is
still used for the case of interface types that are not configured at
all in the site config), add a proper dependency.

This fixes section visiblity with enabled outdoor mode after the following
fix, and gives the user immediate feedback (allowing to disable outdoor
mode and enable meshing in a single step).

(cherry picked from commit d012d7d32f)
2020-06-07 10:56:39 +02:00
Matthias Schiffer 63ca8f8bfa
gluon-web-wifi-config: rename and simplify filter_active_interfaces()
- Return early
- Rename to has_active_interfaces(), as it returns a boolean

(cherry picked from commit 53c33acaf9)
2020-06-07 10:56:39 +02:00
Matthias Schiffer 8ecc5d89cc
gluon-config-mode-outdoor, gluon-web-wifi-config: commit network config
200-wireless will add or remove the mesh network sections of
/etc/config/network. Commit this file, so the modified setting doesn't
get lost on reboot.

Fixes: #2048
(cherry picked from commit 600ab99f80)
2020-06-07 10:56:39 +02:00
Matthias Schiffer 11beb822a5
build: target_config_check: make check more lenient
Always allow options set to builtin (=y) when modular setting (=m) is
expected. This can happen when a package is added explicitly (in a
target defintion or site.mk) that is also pulled in as a dependency of
another builtin package.

Fixes: 9e23534ec3 ("build: rework config generation")
Fixes: #2046
(cherry picked from commit 8b64517f1b)
2020-06-07 10:55:01 +02:00
David Bauer 60d7288255
Merge pull request #2047 from freifunk-gluon/fix-config-check
build: target_config_check: make check more lenient
2020-06-07 03:10:24 +02:00
David Bauer 5d51b7dc2a
Merge pull request #2049 from freifunk-gluon/outdoor-mode-commit
Fix /etc/config/network commit for outdoor mode change, and related fixes
2020-06-07 03:09:00 +02:00
Matthias Schiffer e8c65ef75f
gluon-web-model: fix conflicting table fields "reset"
With 11a3b56617 ("gluon-web-model: add dependency support for
sections"), a "reset" function was added to all model nodes. This
conflicts with the "reset" field of the Form object, making reset
buttons show labels like "function: 0xbb8d50" and possibly breaking form
processing when packages override the reset field.
2020-06-06 17:23:21 +02:00
Matthias Schiffer b15b008e69
gluon-core: create disabled mesh interface sections in outdoor mode
The interfaces should always exist and just be disabled when outdoor
mode is enabled. Not creating them at all leads to an issue in the
advanced wifi settings where an additional reload of the page is
necessary after enabling or disabling the ourdoor mode to make the mesh
VIF options appear or disappear.
2020-06-06 17:12:13 +02:00
Matthias Schiffer d012d7d32f
gluon-web-wifi-config: make mesh VIF options depend on outdoor=false
Instead of relying on the existence of interface sections only (which is
still used for the case of interface types that are not configured at
all in the site config), add a proper dependency.

This fixes section visiblity with enabled outdoor mode after the following
fix, and gives the user immediate feedback (allowing to disable outdoor
mode and enable meshing in a single step).
2020-06-06 17:12:13 +02:00
Matthias Schiffer 53c33acaf9
gluon-web-wifi-config: rename and simplify filter_active_interfaces()
- Return early
- Rename to has_active_interfaces(), as it returns a boolean
2020-06-06 17:12:12 +02:00
Matthias Schiffer 600ab99f80
gluon-config-mode-outdoor, gluon-web-wifi-config: commit network config
200-wireless will add or remove the mesh network sections of
/etc/config/network. Commit this file, so the modified setting doesn't
get lost on reboot.

Fixes: #2048
2020-06-06 16:47:35 +02:00
Matthias Schiffer 8b64517f1b
build: target_config_check: make check more lenient
Always allow options set to builtin (=y) when modular setting (=m) is
expected. This can happen when a package is added explicitly (in a
target defintion or site.mk) that is also pulled in as a dependency of
another builtin package.

Fixes: 9e23534ec3 ("build: rework config generation")
Fixes: #2046
2020-06-05 22:27:10 +02:00
Matthias Schiffer 45b518df11 gluon-web-model: remove unused field error message code
Validation errors are mostly handled in the frontend (by displaying
invalid fields with a red background). There was some code left in the
backend for handling different kinds of errors, and returning custom
error messages from validate(), but the resulting value was not used
anywhere.
2020-06-05 21:46:30 +02:00
Matthias Schiffer 5adbaf2907 gluon-web-model: remove dead code for section errors 2020-06-05 21:46:30 +02:00
Matthias Schiffer e6859ca031 gluon-web-model: remove unused tag_invalid and tag_missing fields 2020-06-05 21:46:30 +02:00
Matthias Schiffer 11a3b56617 gluon-web-model: add dependency support for sections
- Add a dependency array to section template
- Lift dependency handling from AbstractValue to Node
- Split resolve_depends() into a function handling dependencies of a
  node itself (resolve_node_depends()), which now is used for all nodes,
  and the existing recursive descent through the node tree
- When any node's dependencies are not satisfied, all descendents are
  reset recursively, meaning that an option in a section that is hidden
  will always be ignored, as if the option's own dependencies were
  unsatisfied

Fixes: #1349
2020-06-04 22:54:28 +02:00
Matthias Schiffer 35950b44b7 gluon-web-model: fix passing additional variables from form template to sections
This is currently unused in our packages.
2020-06-04 22:54:28 +02:00
Matthias Schiffer 3951607e53 gluon-web-model: fix deplist() argument list
Fixes dependency tracking for individual <option> elements (currently
unused).
2020-06-04 22:54:28 +02:00
Matthias Schiffer 50adb097fa
build: make GluonSrcDiet simpler and more robust (#2033)
- If luasrcdiet fails for a Lua script, this is a bug that should be
  noticed rather than including the unminified script
- Use .tmp suffix for temporary file rather than .o
- Replace chmod + stat + mv with simpler cp + rm to overwrite file while
  preserving file mode
2020-06-04 22:53:14 +02:00
Chrissi^ (Chris Fiege) 1956696da5
openwrt: Store Kernel Debug-Info (#1971)
This change stores a Kernel with Debug-Symbols for the current
architecture in a new output directory '<outputdir>/debug'.
This allows a developer or operator of a network to store the kernel
along with the actual images. In case of a kernel oops the debug
information can be used with the script
'scripts/decode_stacktrace.sh' in the kernel source tree to get the
names to the symbols of the stack trace.

OpenWRT already provides the CONFIG_COLLECT_KERNEL_DEBUG -option that
creates a kernel with debug-symbols in the OpenWRT output directory.
This change enables this option and copies the generated kernel to the
gluon output directory.

Signed-off-by: Chrissi^ <chris@tinyhost.de>
2020-06-04 22:35:58 +02:00
David Bauer cfce3ee91e ar71xx-generic: set tiny class-flag for D-Link DIR-825 B1
The D-Link DIR-825 has only 6M of usable firmware space.
2020-06-04 18:02:32 +02:00
Matthias Schiffer 84525c5a5b
docs: releases: remove "v" prefix from page titles
None of the other release pages have a "v" before the version number.
2020-06-03 21:45:48 +02:00
David Bauer cc75a7681d
docs, README: Gluon v2020.1.3
Signed-off-by: David Bauer <mail@david-bauer.net>
2020-06-03 21:45:48 +02:00
David Bauer ea12efd127 modules: bump OpenWrt packages
e76090945 unbound: expose interface-auto to UCI
0d9483608 Merge pull request #12382 from neheb/gst-p
1d9283083 gst1-plugins-bad: don't add webp support
3f922137d Merge pull request #12383 from neheb/pige
92778390b gst1-libav: update to 1.16.2
216f42ee8 gst1-plugins-ugly: update to 1.16.2
c20a65698 gst1-plugins-bad: update to 1.16.2
eeb2c01d9 gst1-plugins-good: update to 1.16.2
83df5f091 gst1-plugins-base: update to 1.16.2
eee7ce2b4 gstreamer1: update to 1.16.2
3025f6c32 pigeonhole: Update to 0.5.9
114823c7c pigeonhole: reflect license of LGPL-2.1-or-later
59ca87226 pigeonhole: update to 0.5.8
41cb01203 gst1-libav: update to 1.16.1
c187321ac gst1-plugins-ugly: update to 1.16.1
16b7bb066 gst1-plugins-bad: Make HLS crypto explicit
c83524006 gst1-plugins-bad: update to 1.16.1
a0bf86150 gst1-plugins-good: update to 1.16.1
990a21184 gst1-plugins-base: update to 1.16.1
ca4a06a25 gstreamer1: update to 1.16.1
235891593 net/mosquitto: bump to 1.6.10
620838fc9 ola: fix compilation with GCC4
142fd306e dovecot: update to version 2.3.10.1 (security fix)
c09244b01 adblock: update 4.0.5-4
45313e42f adblock: update 4.0.5-3
6e27e5196 Merge pull request #12348 from adrianschmutzler/fixmake
a9b5867e2 Merge pull request #12294 from neheb/keab
d85c355aa treewide: use relative include paths for python Makefiles
07d541c14 Merge pull request #12339 from ja-pa/transmission-fix-19.07
615d909a2 transmission: init script check syscall list for seccomp
d5062122e Merge pull request #12292 from neheb/spoof
4ceab639b Merge pull request #12269 from neheb/gerb56
9aa0d8cf7 Merge pull request #12330 from rs/nextdns-1.6.3-openwrt-19.07
6e6e5fa2a nextdns: Update to version 1.6.3
b43a7d4b1 Merge pull request #12326 from rs/nextdns-1.6.0-openwrt-19.07
474296dcb nextdns: Update to version 1.6.0
5507a02e2 Merge pull request #12313 from aleksander0m/aleksander/mm-mtu-19.07
ede1a8221 modemmanager: set interface MTU based on bearer settings
c6eea20bc giflib: remove host build
b4cf130cb libtasn1: fix host build under old GCC
5a1699aeb kea: do not build static host binaries
bb42a250b kea: Update kea to the latest stable verion (1.6.2).
1d30a273e kea: Remove openssl host dependency
f22e122e6 kea: update package to 1.6.0 Update kea to the latest stable verion (1.6.0).
6f19b894d kea: remove dependency and reduce file size Remove boost-python3 dependency and reduce file size of the compiled kea-libs
87f4d6ba2 kea: fix kea-admin dependency Fix kea-admin dependency where if procps-ng-ps wasn't available busybox would output an error casuse it does't support showing a processe's PID
1360d1f88 kea: fix and improve makefile Fix an issue where the Makefile wouldn't allow kea to show up in the menuconfig Also added some description to the packages
07538f535 kea: remove python3 dependency of kea-admin
efde7c454 kea: Fix compilation without deprecated OpenSSL APIs
09ea6f032 kea: Don't install to STAGING_DIR_HOST
fb58e3b8c spoofer: remove host build + cleanups
deccad892 spoofer: Update to 1.4.5
15257f5b6 adblock: limit domain name length
246fc735b nano: update to 4.9.3
673e76b1c Merge pull request #12275 from micmac1/mar19run
39db22ec9 mariadb: use default umask for rundir
8362f46fe gerbera: backport init and config changes from master
225eeb9a6 gerbera: add taglib support
074444794 libupnp: enable reuseaddr
51efb1723 taglib: update to 1.12-beta-1
778f14f51 taglib: fix taglib-config paths
e74a456c0 taglib: add
c8d2ed2cb adblock: release 4.0.5
a41e068db sslh: update to 1.20
23251b93a Merge pull request #12247 from jefferyto/python-setuptools-site-patch-openwrt-19.07
32fb2ba0d python-setuptools: Fix error when installing from source
6dac29693 python3-setuptools: Fix error when installing from source
49ac1e8b7 bind: update to version 9.14.12
99998e218 syslog-ng: update to version 3.27.1
64ebad3fd syslog-ng: restore service "reload" to actually working
0e80f0486 syslog-ng: including user settings after system settings
98d4126c4 qemu: ignore configure option --disable-ipv6
50148ea08 openvswitch: fix file generation in /etc/modules.d
676e6ddd6 Merge pull request #12216 from BKPepe/19.07-unbound
149a08477 Merge pull request #12231 from jefferyto/python-openssl-ca-certs-openwrt-19.07
c06212082 python-openssl: Add dependency on ca-certs
c32e08f30 python3-openssl: Add dependency on ca-certs
828ba37e0 unbound: update to version 1.10.1
2ccdae9a4 Merge pull request #12206 from micmac1/mar-1907-10413
115f7eeb0 mariadb: install config files readable for all
4f0d10835 mariadb: move mysql_upgrade to the client package
9dda3cc87 mariadb: bump to 10.2.32
5e9f5cd76 Merge pull request #12187 from jefferyto/golang-1.13.11-default-platform-options-openwrt-19.07
d3762591d golang: Set/reset default platform options for target Go compiler
f52fbe1d4 golang: Update to 1.13.11
2e6bd4cb8 php7: update to version 7.2.31
191aac174 Merge pull request #12171 from rs/nextdns-1.5.8-openwrt-19.07
07164dec7 nextdns: Update to version 1.5.8
504a5f1b8 Merge pull request #12169 from jefferyto/arm-aarch64-vfp-neon-openwrt-19.07
a12555cc0 treewide: Enable VFP/NEON optimizations for aarch64
595342148 treewide: Update ARM NEON/VFP detection
5f5d63e79 Merge pull request #12158 from Robby-/openwrt-19.07-eaptlstmpdir
0feb9ad31 freeradius3: Fix to init script.
d8b9b0c92 Merge pull request #12141 from EricLuehrsen/unbound_1907_1100
8668e83d5 unbound: update to 1.10.0
2e01dd838 miniupnpd: make hotplug work again
468f6fa13 Merge pull request #12127 from aleksander0m/aleksander/mm-qmi-19.07
1c8e2e0c2 modemmanager: release 1.12.10
cea4fbe30 modemmanager: fix compilation under uClibc-ng
86fedfd52 libqmi: update version to 1.24.12
2020-06-03 21:44:45 +02:00
David Bauer d9a488371d docs: add v2020.1.3 release notes
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 5a7ac058ebbca98eca04b5d0821878833b642d75)
2020-06-03 21:43:41 +02:00
Martin Weinelt c052a4bf16
docs: specify build dependencies in requirements.txt 2020-06-03 02:17:39 +02:00
David Bauer 29313c0944 actions: build documentation
This adds a new workflow for building the Gluon documentation.

In contrast to the existing build workflow, the documentation
is built for every branch, as it only takes around two minutes
to render the HTML documentation.
2020-06-02 22:03:43 +02:00
Matthias Schiffer d3107790dc
Merge pull request #2037 from freifunk-gluon/config-gen
Config generation fixes
2020-06-02 21:24:45 +02:00
Matthias Schiffer 3fda210f85
gluon-mesh-{batman-adv,babel}: respondd: use libgluonutil to determine interface type
Also make babel match batman-adv and only emit the wireless/tunnel/other
fields when they are non-empty.

Fixes: #1783
2020-06-01 21:45:33 +02:00
Matthias Schiffer 41b3c91284
libgluonutil: introduce gluonutil_get_interface_lower() and gluonutil_get_interface_type()
gluonutil_get_interface_lower() recursively determines the lower of an
interface until the base interface is found.

gluonutil_get_interface_type() tries do distinguish wired, wireless and
tunnel interfaces. For tunnel interfaces, TUN/TAP, L2TPETH and Wireguard
are supported at the moment.
2020-06-01 21:15:47 +02:00
Matthias Schiffer 6b3b5e706e jenkins-community-slave: use requests library to download slave.jar
Do not mix two different HTTP libraries in one script. This fixes a
warning:

/var/lib/jenkins/slave.py:82: DeprecationWarning: URLopener style of invoking requests is deprecated. Use newer urlopen functions/methods

This simple implementation has the disadvantage that it stores the whole
file in RAM, but this isn't an issue for the 1.5MB slave.jar.
2020-06-01 20:18:24 +02:00
Matthias Schiffer 5232428b19 jenkins-community-slave: verify HTTPS certificate in head() request
Fixes a warning:

/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py:1004: InsecureRequestWarning: Unverified HTTPS request is being made to host 'build.ffh.zone'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
2020-06-01 20:18:24 +02:00
Martin Weinelt 7fdffcaa1c
Jenkinsfile: require gluon-vmx label for qemu testing
This allows us to make use of builders that can't run virtual machines.

Drop the TMUX environemnt variable, it's not needed anymore.
2020-06-01 19:54:22 +02:00
Matthias Schiffer 72c71d35ac
gluon-mesh-babel: clean up link-local address handling
- Rename obtain_if_addr() to get_linklocal_address()
- Pass buffer of size INET6_ADDRSTRLEN instead of the oversized NI_MAXHOST
- Check if an address is link-local before converting to a string
- Replace an incorrect use of strncmp() with strcmp()
- Return status to caller
- Streamline control flow

While we're at it, the function handle_neighbour(), which is one of the
callers of get_linklocal_address() is slightly cleaned up as well.
2020-06-01 14:50:40 +02:00
David Bauer 6a15c704cd gluon-wireless-encryption-wpa3: switch to hostapd-wolfssl
This switches hostapd variant used for SAE and OWE from hostapd-openssl
to hostapd-wolfssl.

The bug shich one broke the wolfssl implementation was resolved upstream
with commit 631c437a91c2 ("hostapd: backport wolfssl bignum fixes").
This particular commit also got backported to OpenWrt 19.07.
2020-06-01 11:24:24 +02:00
Sven Roederer 5e35fa1ac4
docs/build: add a short summary for some scripts
This summaries giving an overview of a scripts function and a short summary
how it's doing this. Only the scripts are covered, that are used by the
Freifunk-Berlin firmwarebuiler too.

[Matthias Schiffer: slightly reworded some descriptions]
2020-05-31 23:44:34 +02:00
David Bauer 54dcf935d5 modules: update OpenWrt
9cafcbe0bd ar71xx: correct button type for TL-MR3020 mode slider
2bd1cf92e9 ar71xx: fix splitting firmware partition for TL-WR902AC v1
c963e4267b qos-scripts: fix interface resolving
31de4a40e7 broadcom-wl: don't inherit lock descriptor in nas process
2020-05-31 15:57:51 +02:00
Matthias Schiffer e5456bdf14
build: backport kernel debuginfo ZSTD compression 2020-05-31 11:12:41 +02:00
Jan-Jonas Sämann ed094bc68c
gluon-core: firewall: Allow custom gluon_wired interfaces (#2041)
This allows for multiple mesh legs out of one box. Useful for offloaders
and networks using vlan for separate mesh transport.
Custom mesh interfaces in a VXLAN domain are otherwise firewalled.

This fixes #1479
2020-05-31 10:57:58 +02:00
Matthias Schiffer 7279c4017e
build: target_lib: allow to specify multiple factory_ext values
By passing a table instead of a single string, multiple different
extensions can be specified, each refering to a separate image file
generated by OpenWrt.

This is not supported for sysupgrade (as there can only be a single
image in the format expected by OpenWrt).
2020-05-31 02:20:58 +02:00
Matthias Schiffer 8c386719eb
build: target_lib: do not pass manifest_aliases when defining factory and extra images
manifest_aliases only make sense for sysupgrade images.
2020-05-31 02:20:58 +02:00
Matthias Schiffer 3ce43329f5
build: remove now-unneeded function from target_config_lib.lua
target_config.lua and target_config_check.lua don't pass a table of
callbacks anymore, so target_config_lib.lua can by simplified by moving
all the code that was in the returned function to the toplevel.
2020-05-31 02:20:58 +02:00
Matthias Schiffer 9e23534ec3
build: rework config generation
So far, we were using a sort operation on the generated .config to
implement precedence of =y packages over =m, and =m over unset.
Unfortunately, this sort not only used for packages, but for all config
lines. This made it impossible to override settings from targets/generic
in a target config when the new setting was sorted before the generic
setting.

To fix this, track configurations by their keys, so we can properly
override config keys that were set before. Value-based precedence is
only preserved for package configuration.

The config() and try_config() calls always take key and value as
separate arguments now. Strings are quoted automatically; the values
true, nil and false map to y, m and unset for tristate options. config()
can take an optional third argument to override the error message to
display when the setting fails to apply.

All existing target configs generate the same .config with the old and the
new code. The new code is also a bit faster on targets with many devices.
2020-05-31 02:20:58 +02:00
Martin Weinelt 97e5434b32
docs: clarify beacon_interval documentation
A microsecond is commonly abbreviated as µs. This prevents confusions
between micro- (µs) and milliseconds (ms).
2020-05-30 22:20:41 +02:00
Ruben Barkow-Kuder de1b214c55 docs: enhance OWE documentation 2020-05-30 19:06:48 +02:00
David Bauer e951ff6e21 gluon-core: add support for configuring the beacon interval
This adds support for the beacon interval to be set on a per-band base.
This has the potential to reduce the amount of airtime used up for
sending beacon frames.
2020-05-30 00:47:33 +02:00
Jan-Tarek Butt 22847e4986
gluon-reload: add missing service restarts on domain switching
[Matthias Schiffer: fix up start/stop order and file permissions]
2020-05-28 23:30:25 +02:00
Matthias Schiffer 20c7fd9881
Merge pull request #2011 from freifunk-gluon/board-json-addresses
Look up primary MAC address through board.json for LAN/WAN
2020-05-28 22:30:14 +02:00
David Bauer b1de28bab1 gluon-core: move wireless-related utils to wireless module
Separate wireless-related helper methods from the util module to a
new wireless module. This keeps them separated, as the amount of
wireless helpers increased in the past, justifying a separate module.
2020-05-28 21:46:23 +02:00
Matthias Schiffer fcc6877c8b gluon-core: build in xt_CT with GLUON_SPECIALIZE_KERNEL
xt_CT was added to kmod-ipt-conntrack a while back. Update our
GLUON_SPECIALIZE_KERNEL rules accordingly.

When building xt_CT into the kernel, one of the symbols IP_NF_RAW and
IP6_NF_RAW must be enabled as well, even though there is no runtime
dependency when building as modules. The kernel grows by less than 1KB
even when both IP_NF_RAW and NETFILTER_XT_TARGET_CT are enabled, making
this change a (very slight) net win in both flash and RAM usage.
2020-05-28 19:40:29 +02:00
Matthias Schiffer 7e8af99cf5 generic: reduce squashfs block size to 256KiB
In OpenWrt 19.07, the block size was increased to 1024KiB for "tiny"
devices by default to save flash. Unfortunately, this also significantly
increases the cache memory required by squashfs.

In my test, the increased block size reduced the image size by ~64KiB,
but increased the RAM usage by ~2.6MiB. As most tiny devices have only
32MiB of RAM, this is not a reasonable tradeoff.

The ar71xx-generic target already defines an even lower block size of
64KiB.
2020-05-28 19:40:29 +02:00
Matthias Schiffer 1cb97ad63e generic: remove kmod-ipt-offload
This is unused by Gluon.
2020-05-28 19:40:29 +02:00
David Bauer c3be82f6c8 modules: update OpenWrt
83b714a27f musl: fix locking synchronization bug
f99b1d1d92 rpcd: update to latest openwrt-19.07 Git HEAD
92bd395b04 Revert "rpcd: update to latest Git HEAD"
adf5d753ef rpcd: update to latest Git HEAD
9b48375c7e libubox: update to the latest version
a4e8eca03e libubox: update to the latest master
498f1f4f5d ramips: gsw_mt7621: disable PORT 5 MAC RX/TX flow control by default
d8d1956a80 hostapd: backport wolfssl bignum fixes
ab7e9754df ucert: update to latest git HEAD
bc0c2db2a3 brcm47xx: disable Netgear WNR2000 v2 by default
059db419d7 squashfs: Fix compile with GCC 10
97b522a1f9 usign: update to latest git HEAD
942262f9c8 usign: update to latest Git HEAD
6a89098935 ath79: add support for TP-Link TL-WA901ND v4 and v5
a6f70f2e97 ath79: add support for TP-Link TL-WA701ND/730RE/801ND/901ND v1
8c6c488e9e ath79: add support for TP-Link TL-WR940N v6
36d4140517 ath79: add support for TP-Link TL-WA830RE v1
7187826b8b ath79: reorganize DTSI for ar7240 TP-Link devices
d4092eac1f ath79: migrate TP-Link TL-MR3420v2 to ath79
24cfd961d9 ath79: add support for TP9343-based TP-Link TL-WR94x devices
7de43d66ff generic: platform/mikrotik: disambiguate SPDX-License-Identifier
84154574c8 ramips: drop non-existant ralink,port-map for Ravpower WD03
af667c73c5 bcm63xx: mask interrupts on init
d1ce73677c bcm63xx: periph_intc: report effective affinity
1d40c8a9f2 bcm63xx: ext_intc: fix warning
65f2fae911 bcm63xx: periph_intc: fix warning
b2c9f82eb4 bcm63xx: redboot: fix warning
a2a3ac9f51 bcm63xx: bcm6362: fix pinctrl bug
6c96ecf3b4 bcm63xx: refresh kernel config
c3e3802a8e OpenWrt v19.07.3: revert to branch defaults
f3f38f40da OpenWrt v19.07.3: adjust config defaults
85e04e9f46 generic: platform/mikrotik: fix LZOR support
4cd9ae41c5 libjson-c: backport security fixes
6ffd4d8a4d ar71xx: remove hard-coded folder name from Mikrotik RB upgrade
d2ee15ef76 fstools: blockd: fix segfault triggered by non-autofs mounts
4cd44e5dc7 ar71xx: mikrotik: mach-rbspi.c remove wlan id
3fecb06fb1 ar71xx: mikrotik: bypass id check in __rb_get_wlan_data()
b36aa168d8 ar71xx: mikrotik: ath10k: use new sysfs driver
fa2369e59b generic: platform/mikrotik: support LZOR encoding
612b64e6c4 ar71xx: enable mikrotik platform driver
511859de9b generic: mikrotik platform build bits
ddae86cc69 generic: routerboot sysfs platform driver
2efcfb1d1a kernel: bump 4.14 to 4.14.180
ecea10f2b9 ath79: dts: add missing 'serial0' alias for TP-Link TL-MR3040v2
2020-05-27 02:12:44 +02:00
Ruben Barkow-Kuder 891bfc77ac
gluon-client-bridge: simplify boolean expressions (#2031) 2020-05-25 01:13:30 +02:00
Matthias Schiffer 14ab51876e
scripts: update-patches: fix shellcheck 0.7.1 lint 2020-05-25 01:10:18 +02:00
Matthias Schiffer 653e547b82
fastd: update to v19 2020-05-22 21:18:29 +02:00
lemoer 14481851f6
gluon-status-page: show primary_domain 2020-05-21 18:09:08 +02:00
lemoer b9c1a026b1
gluon-respondd: emit "primary_domain_code" in nodeinfo
Closes #1974

Situation:
==========

$ ls -l /lib/gluon/domains/lindennord.json
lrwxrwxrwx    1 root     root            10 Jan  6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json

Before:
=======

$ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1
{
   "node_id": "525400123456",
   "system": {
     "domain_code": "lindennord",
     "site_code": "ffh"
   },
...
}

After:
======

$ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1
{
   "node_id": "525400123456",
   "system": {
     "primary_domain_code": "dom17",
     "domain_code": "lindennord",
     "site_code": "ffh"
   },
...
}
2020-05-21 18:09:05 +02:00
lemoer bcf57467dd libgluonutil: implement gluonutil_get_primary_domain()
Implemented using readlink() and basename() to the selected domain in
/lib/gluon/domains/${DOMAIN}.json.
2020-05-21 18:08:36 +02:00
lemoer 0c2a52c19f
libgluonutil: fix double free of domain_code when domain is not existing 2020-05-21 18:03:58 +02:00
Matthias Schiffer 121609b3f8
Merge pull request #2010 from txt-file/x86-legacy
Add x86-legacy subtarget
2020-05-17 09:22:18 +02:00
Vieno Hakkerinen d353ad35fe actions: add x86-legacy build workflow 2020-05-17 00:06:03 +02:00
Vieno Hakkerinen 87aecd5ab5 targets: add x86-legacy subtarget
As x86-generic is compiled to pentium4 (and newer) there is a need for
a subtarget for older devices. The x86-legacy subtarget is set to
compile to pentium (and newer) and should support even very old devics.

x86-legacy includes the packages from x86.inc to only maintain one
package list. The three excludes are because the packages do not exist
for x86-legacy.
2020-05-16 23:58:46 +02:00
Matthias Schiffer 55c51f2a73 actions: script improvements
- Rely on shebang instead of setting shell in workflow
- Run whole install-dependencies.sh in sudo
- Use /bin/sh instead of bash
- set -e
2020-05-13 15:48:06 +02:00
Matthias Schiffer 2889904e5f actions: set BUILD_LOG=1 and store logs as artifacts
The new step is added with `if: ${{ !cancelled() }}`, so the logs are
stored even when the build fails.
2020-05-13 15:48:06 +02:00
Matthias Schiffer ab6596115a build: introduce GLUON_AUTOREMOVE flag 2020-05-13 15:48:06 +02:00
lemoer 57516fe4e7
Add GLUON_MINIFY flag to allow skipping the minification process (#1916) 2020-05-13 00:45:06 +02:00
Matthias Schiffer 992457b203
Merge pull request #2024 from SvenRoederer/patch-1
build: ignore deactivated feeds
2020-05-12 20:40:48 +02:00
Matthias Schiffer 3daacfb92e
Merge pull request #2013 from freifunk-gluon/outdoor-setup-ifname
Reuse outdoor device logic for setup mode interface selection, plus some cleanup
2020-05-12 20:39:30 +02:00
Sven Roederer 184dab8fc1 build: ignore deactivated feeds
The OpenWrt feeds.conf.defaults contains some feeds that are commented out
and not active. Such feeds will be returned by the default_feeds.sh script
anyway and causing pseudo feeds. Limit the script to only return active
feeds, by filtering out lines starting with '#'.
This usually only applies to the OpenWrt master branch.

Signed-off-by: Sven Roederer <freifunk@it-solutions.geroedel.de>

change as per NeoRider
2020-05-12 19:46:36 +02:00
Matthias Schiffer b842ec43ff gluon-mesh-batman-adv: do not override WAN MAC address with VXLAN
As a partial fix to #496, do not touch the MAC address of the WAN
interface when using VXLANs (as only the MAC address of the VXLAN
interface matters to batman-adv).
2020-05-12 17:02:37 +02:00
Matthias Schiffer a3569da164
Revert "build: use .SILENT instead of adding @ to each recipe"
This reverts commit 2a8943e516.

.SILENT gets passed down to OpenWrt make as -s through MAKEFLAGS. This
hides certain messages from the build log with V=s.
2020-05-12 01:00:57 +02:00
Matthias Schiffer 4540217342
build: target_config_check: dedup error messages
Certain error message (for example invalid package names) were emitted
once for each device.
2020-05-11 00:09:13 +02:00
Matthias Schiffer 9379137373
Merge pull request #2021 from freifunk-gluon/fastd-peer-cleanup
gluon-mesh-vpn-fastd: clean up peers and groups on update
2020-05-10 18:11:48 +02:00
Matthias Schiffer 8807c76a34
gluon-setup-mode: remove obsolete sysconfig.config_ifname migration
config_ifname was renamed to setup_ifname in Gluon v2015.1.
2020-05-10 16:38:42 +02:00
Matthias Schiffer e9687d7ef1
gluon-setup-mode: use is_outdoor_device() for setup_ifname selection
On PoE-powered devices, we usually want to use WAN for the setup mode.
As all outdoor devices are PoE-powered, we can reuse this function. This
switches the setup mode interface for new installations / after config
reset on a few devices that were missing in this list before.
2020-05-10 16:38:42 +02:00
Matthias Schiffer 0dd9a3e07c
gluon-core: platform: add 2.4GHz-only outdoor devices 2020-05-10 16:38:41 +02:00
Matthias Schiffer f4fe58cfd7
gluon-core: ignore is_outdoor_device() value on devices without 5GHz radio 2020-05-10 16:38:41 +02:00
Matthias Schiffer 5ec08d841d
gluon-core: platform: clean up device_supports_mfp()
- Use util.find_phy()
- Stop foreach() as soon as the result is known
2020-05-10 16:38:41 +02:00
Matthias Schiffer 3ccf7fdd96
gluon-mesh-vpn-fastd: clean up peers and groups on update
The 'preserve' flag can be used to mark a peer so it is not removed or
modified on upgrades. In addition, groups containing preserved peers are
not removed.

Fixes: #557
2020-05-10 14:30:25 +02:00
Matthias Schiffer b019c703c9
gluon-mesh-vpn-fastd: reduce complexity of upgrade script 2020-05-10 13:06:00 +02:00
Martin Weinelt 64725858b4 modules: update OpenWrt
a8c92e9eda opkg: Fix PKG_MIRROR_HASH
844b892a74 ath10k-firmware: fix mirror hash
7e9d84ee4a opkg: update to latest Git HEAD
81f3f6540e wireguard: bump to 1.0.20200506
b956f6bd13 wireguard: bump to 20191226
c61fbdd087 odhcpd: fix PKG_SOURCE_DATE
5e8b50da15 odhcpd: fix lan host reachibility due to identical RIO and PIO prefixes (FS#3056)
ac5d5d8d09 ustream-ssl: update to 19.07 Git HEAD
a6caa8fad1 uhttpd: update to 19.07 Git HEAD
3b9e4d6d4c fstools: update to the latest version
2020-05-09 22:13:43 +02:00
Martin Weinelt 77482a27b3 modules: update packages
af5ada457 wifidog-ng: remove incorrect PKG_BUILD_DIR override
b8ce0e959 ddns-scripts: Increment PKG_RELEASE and internal version number
9437c31c8 ddns-scripts: cloudflare.com-v4: Fix grep patterns.
b7958778a ddns-scripts: cloudflare.com-v4: Fix success check for new response format JSON response now has spaces between parameters. Accept this new format and the old one.
98f12a896 ddns-scripts: fix logging bug
a6a2c8d13 ddns-scripts: use HTTP for IPv6 dyndns URL
d040b2471 ddns-scripts: remove HTTPS from dyndns URL
ab7dfd76b ddns-scripts: use new DDNS URL for dyndns.org
c2943b13f ddns-scripts: update ddnss.de response
4d050bac7 ddns-scripts: Use https for domains.google.com
4938c148c nextdns: Update to version 1.5.7
501c782f7 youtube-dl: update to version 2020.5.3
f79cb0907 gerbera: add
2ce218bdc vpn-policy-routing: support phys-dev policies
9eb229c09 vpn-policy-routing: bugfix: remove non-ASCII from log; update README
0ae7e11d7 vpnbypass: bugfix: remove non-ASCII from system log; update README
1d5350fb4 openconnect: updated to 8.09
b10a73c9a ocserv: updated to 1.0.1
04af75b94 youtube-dl: update to version 2020.3.24
e92ac8abe travelmate: fix captive portal detection
c0f906273 bash: Import upstream patches
2020-05-09 22:10:54 +02:00
David Bauer 659b4acbb3 docs: add Linksys EA6350 v3 to supported devices 2020-05-09 04:09:35 +02:00
Matthias Schiffer e93dca7cb3
gluon-core: primary-mac: replace all eth0/eth1 lookups with lan/wan
The netdev() lookup is confusing to use: whenever a interface does not
exist during boot (for example VLAN) or when the address is overridden
from board.json (which is not obvious at all), it will yield either no
address, or a different address than expected.

To avoid this confusion, using board.json-based interface() is
preferable. This converts all uses of netdev() to the corresponding
lan/wan lookups, except for the final fallback for eth0.
2020-05-08 19:56:36 +02:00
Matthias Schiffer 02e4a13069
gluon-core: primary-mac: add fallback to netdev address to interface()
In most cases, board.json does not contain any MAC addresses; in this
case, the default MAC address of the underlying interface is to be used.
2020-05-08 19:55:41 +02:00
Matthias Schiffer 2250665d18
gluon-core: primary-mac: cleanup
- Replace misnamed, closure-returning sysfs() to a reusable read() function
- Rename eth() to netdev(), pass full interface name
- Rename board() to interface()
- Split reuable get_netdev_addr() out of netdev()
2020-05-08 19:55:40 +02:00
Matthias Schiffer 0c5b5373bb
gluon-core: primary-mac: load board.json only once 2020-05-08 19:55:40 +02:00
Matthias Schiffer c90b400ce5
Merge pull request #2008 from ctr49/master
add hardware: Linksys EA6350 v3
2020-05-08 19:15:39 +02:00
Matthias Schiffer c602462600
Merge pull request #2007 from freifunk-gluon/class-package-order
Fix package selection precedence
2020-05-07 22:59:33 +02:00
David Bauer 0d341a76b3 actions: create per-target artifacts 2020-05-07 02:29:11 +02:00
David Bauer 2e3a4a5179 modules: bump OpenWrt
d9244a1b5b generic: ar8216: fix unknown packet flooding for ar8229/ar8236
429e4490c4 libpcap: fix library packaging issues
e678cb1595 kernel: bump 4.14 to 4.14.179
8fa4ed9ef7 fstools: update to the latest version
5c6dfb5bc0 fstools: update to the latest version
607809dcdc mac80211: Update to version 4.19.120
96d280cc37 scripts/download: add sources CDN as first mirror
55ccb04046 upgs: Remove extra _DEFAULT_SOURCE definition
ee480c50c1 dante: Fix compile with glibc
5f0e25d966 perf: build with NO_LIBCAP=1
005adba939 mac80211: ath10k: increase rx buffer size to 2048
0974d59b5f kernel: backport fix for non-regular inodes on f2fs
f40947a8c0 ath79: indicate boot/failsafe/upgrade for NanoBeam/Nanostation AC
65cf72d5d2 ath79: add SUPPORTED_DEVICES based on ar71xx for some devices
f9ef0c5705 kernel: bump 4.14 to 4.14.178
2df0ea042d wpad-wolfssl: fix crypto_bignum_sub()
ec6cb33452 mac80211: backport fix for an no-ack tx status issue
f141cdd200 hostapd: unconditionally enable ap/mesh for wpa-cli
54b6683390 wireless-regdb: backport three upstream fixes
55591e63bc curl: backport fix for CVE-2019-15601
35ea808b97 uboot-kirkwood: fix ethernet and usb

Compile-tested: all targets
2020-05-07 00:39:16 +02:00
ctr49 02a908ee2f get primary_mac from board(wan) 2020-05-06 01:12:26 +02:00
Matthias Schiffer 0e681d5c37
gluon-core: util: avoid unintended second return value from gsub()
gsub() returns the number of matches as its second return value. This
was unintendedly passed through by the util functions trim() and
node_id(). It can be presumed that this had no effect in practice, but
it can lead to surprising output when passing values to print() for
debugging.
2020-05-04 23:38:22 +02:00
ctr49 e8767bc747 define primary mac 2020-05-04 21:44:47 +02:00
ctr49 07d9db9add add hardware: Linksys EA6500 v3 2020-05-03 23:05:39 +02:00
Matthias Schiffer 53690d83be
build: move package list generation to target_config_lib.lua, fix precedence
The precedence of different package lists was broken since #1876,
disallowing removal of GLUON_FEATURES packages via GLUON_SITE_PACKAGES.

Including all package selections, both implicit defaults and explicit
handling in Gluon, the order of precedence is now the following:

1.  OpenWrt defaults (including target-specific defaults)
2.  Device-specific packages from OpenWrt
3.  Generic default packages (from target/generic)
4.  Target default packages (target/$(GLUON_TARGET))
5.  Removal of opkg for tiny targets
6.  Packages derived from GLUON_FEATURES + GLUON_FEATURES_$(class)
7.  GLUON_SITE_PACKAGES
8.  GLUON_SITE_PACKAGES_$(class)
9.  Device-specific packages from target/$(GLUON_TARGET)
10. Device-specific packages from GLUON_$(device)_SITE_PACKAGES

This also contains various pieces of cleanup:

- No hardcoded order of device classes for target_config.lua arguments
  anymore (in fact, the Makefile doesn't know anything about device
  classes now)
- target_conifg_lib.lua only hardcodes the fallback class for x86, no
  other occurences of specific class names
- Feature -> package list mapping is moved from Makefile to the Lua code
  as well (still implemented in Shell though)
2020-05-03 22:05:20 +02:00
Matthias Schiffer f9062bda0b
build: remove exec prefix from commands with a raw suffix
Allows to append additional commands, for example using `||`.
2020-05-03 18:24:32 +02:00
Matthias Schiffer 89efe55c7c
build: implement image site_packages using a generic site_var function 2020-05-03 18:00:35 +02:00
David Bauer daf8a6c18c docs: dev: add link to device checklist
Closes #1993
2020-05-02 16:15:31 +02:00
Martin Weinelt 468590a17e docs, README: Gluon v2020.1.2
(cherry picked from commit 7f3a30423b1aa9d5b654c9d7788adc50ce1e4f3c)
2020-05-02 15:44:50 +02:00
Martin Weinelt 0a95c92097 docs: add v2020.1.2 release notes
(cherry picked from commit 4bfcd6ae61c27569eaad14a5c37893a5e802f4d3)
2020-05-02 15:44:17 +02:00
Martin Weinelt 9b19883d97 add gluon-logging package
Allows reconfigurtion of remote syslog from within site.conf.

Conflicts with the gluon-web-logging package as user made changes
will be overwritten, because this package will reconfigure the syslog
destination on every upgrade.

Resolves #1845
2020-04-30 01:54:35 +02:00
Martin Weinelt b181803ac4 scripts: check_site: add need_number_range check 2020-04-30 01:54:35 +02:00
Jan Luebbe 6a371d88f0 gluon-setup-mode: start urngd instead of haveged
OpenWRT 19.07 enables urngd by default, so haveged is redundant.
2020-04-30 01:51:42 +02:00
Jan Luebbe 35b4a97cce gluon-autoupdater: start/stop urngd instead of haveged
OpenWRT 19.07 enables urngd by default, so haveged is redundant.
2020-04-30 01:51:42 +02:00
Jan Luebbe 2829c852ef docs: examples: remove haveged from GLUON_SITE_PACKAGES
OpenWRT 19.07 enables urngd by default, so haveged is redundant.
2020-04-30 01:51:42 +02:00
Martin Weinelt dfaa7c0c88 tests: respondd: update shebang to use the environments python3 version 2020-04-29 22:28:00 +02:00
lemoer b11f18f5df tests: add batctl tpmeter test case 2020-04-29 22:28:00 +02:00
Martin Weinelt 03f718a071
patches: reorder OpenWrt 2020-04-29 13:40:04 +02:00
Martin Weinelt 2d2cf07e48
modules: update OpenWrt
5feb0df9bb ramips: remove memory node for ZBT MT7621 devices
b80a98ae7f ramips: remove unnecessary DEVICE_PACKAGES for Belkin F7C027
bfe652c5bd oxnas: move service file to correct place
5b4e4a38d8 relayd: bump to version 2020-04-25
4e5a29827f umdns: update to version 2020-04-25
c2efc973d5 dnsmasq: fix dnssec+ntp chicken-and-egg workaround (FS#2574)
6c020577ae libpcap: fix build breakage with very high number of simultaneous jobs
efe837de84 openssl: bump to 1.1.1g
1df49d98e7 relayd: bump to version 2020-04-20
b71c7c261b umdns: update to version 2020-04-20
b6d8119c53 umdns: update to the version 2020-04-05
ef3df27507 umdns: suppress address-of-packed-member warning
55312cc202 binutils: add ALTERNATIVES for strings (FS#3001)
3b6f079d8d mbedtls: update to 2.16.6
67ed408af2 mvebu: cortexa9: correct cpu subtype
dee8fcfe9f tegra: correct cpu subtype
d8e0b015e8 mvebu: backport ClearFog SPI enablement

Compile-tested: ipq40xx, ath79
2020-04-29 13:25:50 +02:00
Martin Weinelt 34626bce67
modules: update packages
f5cb61cee Merge pull request #11992 from Robby-/openwrt-19.07-freeradius3_update_3_0_21
37812cd96 Merge pull request #11994 from jefferyto/python-2.7.18-openwrt-19.07
caecc597f expat: Update to version 2.2.9
e34d0baee python: Update to 2.7.18, refresh patches
28faf9676 freeradius3: Update to 3.0.21
cb10971c1 freeradius3: Updated patches/004-fix-target-python-header-detection.patch to remove the rlm_python3 specific changes as it is no longer needed to compile and updated the Makefile to reflect this due to the following change/commit in freeradius: 307678b268
4c9d29093 freeradius3: Refreshed patches/002-disable-session-cache-CVE-2017-9148.patch in preparation for the 3.0.21 update.
fe6f04346 freeradius3: Fix the ordering in the Makefile.
0d795d202 mwan3: fix whitespace issue
b7959a8d3 mwan3: Ping IPv6 hosts using address not interface
2ac0a05d6 mwan3: change license to SPDX compatible identifier
928ac2a20 mwan3: update version to 2.8.2
1ea75a8fa mwan3: add httping_ssl option
c2cd3f099 mwan3: fix variable naming
5bf733c2d Merge pull request #11986 from jefferyto/python-target-build-tools-openwrt-19.07
c1394a6a7 python: Fix host build tool names recorded in target files
3d2dc6920 python3: Fix host build tool names recorded in target files
99abc1bd8 Merge pull request #11976 from br101/pingcheck-update
aa353e13d pingcheck: Update and add script directories
411633e52 mpd: update to 0.21.23
63a7426cd Merge branch 'BKPepe-19.07-php7' into openwrt-19.07 (fixes #11923)
d2a02ee24 Merge branch '19.07-php7' of https://github.com/BKPepe/packages into a local branch for conflict resolving.
f2143f6eb php7: fix dependencies for mysqlnd (fixes #11113)
6d9bfa5a8 Merge pull request #11948 from dvtirol/rlm_rest-19.07
742944560 freeradius3: Support building freeradius3-mod-rest
f3bf2e9dd Merge pull request #11946 from jefferyto/python-pip-pep517-pyc-fix-openwrt-19.07
cbb850712 python-pip: Fix error when installing packages that require compilation
5b6607557 python3-pip: Fix error when installing packages that require compilation
ad75f6901 travelmate: refine logical interface selection
eccacec55 less: add ALTERNATIVES
3ab2a1c51 Merge pull request #11938 from aleksander0m/aleksander/modem-updates-19.07
8b46bb9df modemmanager: release 1.12.8
9c337b7ba modemmanager: release 1.12.6
2c1fbf5ec libqmi: update version to 1.24.10
a6f66a078 libqmi: update to version 1.24.8
920c43946 libqmi: bump libqmi version
1b0b8ffa7 Merge pull request #11928 from jefferyto/golang-1.13.10-openwrt-19.07
a15e7212d travelmate: release 1.5.4
f6bb9f3c2 golang: Update to 1.13.10
6e5ca4ddf Merge pull request #11925 from stangri/19.07-simple-adblock
c725bb1b4 simple-adblock: bugfix: start downloads on cold boot
09738290a php7: update to version 7.2.30
059e949ee Merge pull request #11882 from yousong/wget1907
fb64ef9d3 acme: depends on wget-ssl
ba4c4e681 wget: make the ssl variant provides wget-ssl
406b052f7 wget: do not provide itself
ea5c497c2 adblock: filter spurious line endings in sources
b7e94479a git: update to version 2.26.1
5b38ccf0d git: update to version 2.25.1
cc818e580 git: update to version 2.25.0
04d228f9e libupnp: remove patch that should not be there
3f931a4fd minidlna: fix patches from last backport
4dc6dfa77 libxslt: update to 1.1.34
3385d1fd9 libyaml-cpp: Update to 0.63
20d95578e wavemon: update to 0.9.1
83ff6c38f miniupnpd: fix sh syntax error
1fe1c80d6 miniupnpd: convert to procd
c02c42849 miniupnpd: update to 2.1.20191006
66363912d minidlna: update to latest master
a3480774a liblz4: Update to 1.9.2
2caba1671 liblz4: Remove deprecated utime function
a38f59d39 measurement-kit: update to version 0.10.11
856124364 websocketpp: Fix compile with Boost 1.70+
7bfe30462 faad2: update to 2.9.1
f91af9d77 mpc: update to 0.33
c80bc7765 mpc: update to v0.32 and build with meson
a39c4e8e0 libupnpp: link against libm under glibc
b3a09f039 libupnpp: update to 0.17.2
fc2203bb7 libupnpp: Update to 0.17.1
175b26d8b u2pnpd: update to 0.5
caf43f42a libupnp: update to 1.8.7
696d9bdf2 adblock: fix gawk incompatibility
b32a40afe Merge pull request #11843 from neheb/py3
45ca5d87d ruby: update to 2.6.6
84f6fab44 mac-telnet: fix mirror hash
2633415b2 mac-telnet: install uci as config file
4418e49a4 mac-telnet: mark uci as conffile
d12b47361 transmission: add init file STOP directive
54372522f transmission: add syscalls to seccomp filter
10b93cd53 transmission: add service triggers and bump PKG_RELEASE
0ba4820b8 transmission: update config options
125f6ff9e meson: use python3
803c5ef05 libid3tag: add pkg-config file
e91c9b8b1 adblock: fix another reporting bug
67be4858c meson: update to version 0.54.0
7a2b9425d ninja: updated to 1.10.0
66f418654 libmpdclient: update to 2.18
ccd2d7754 libmpdclient: build with meson
2a5a89bcc mpd: update to 0.21.22
5f7f5a205 mpd: allow AAC decoding with mini variant
eda73f927 mpd: link against libpthread under glibc
10ddb2178 mpd: update to 0.21.20
debe4d4d9 mpd: fix ffmpeg AIFF and AMR support
ab7ae0a65 mpd: replace mpg123 with libmad
8346ace9a mpd: fix compilation with uClibc-ng
b061fc6be mpd: update to 0.21.19
82ae5f3bc mpd: update to v0.21.16 and build with meson
fc2a591b5 treewide: Use default PKG_BUILD_DIR when possible
3c59551d8 nsd: Update to 4.2.1
048937c40 xmlrpc-c: Update to 1.51.03
59d23790e libuwsc: update to 3.3.2
2ec415e68 monit: update to the latest release
9eca2ae77 monit: enable / fix IPv6 detection during build
4e3d6eca2 nlbwmon: update to latest Git HEAD
31412a2b4 adblock: update 4.0.4
2944d7142 Merge pull request #11820 from stangri/19.07-https-dns-proxy
210b760d3 https-dns-proxy: bugfix: memory leak
4542b5219 nlbwmon: update to latest Git HEAD
559ff1828 nlbwmon: bump to latest git
45bb9056a nlbwmon: add procd reload trigger for nlbwmon config
2020-04-29 13:22:35 +02:00
Martin Weinelt a070e68849
modules: update routing
9b42e24 Merge pull request #563 from ecsv/batadv-for-19.07
5dd2f44 batman-adv: Merge bugfixes from 2020.1
8b25c90 batctl: Merge bugfixes from 2020.1
094e9b0 batctl: Fix upstream reference in backported patch
20b98f0 Merge pull request #560 from fblaese/babeld
bd25cae babeld: Update to version 1.9.2
9f21b21 Merge pull request #558 from BKPepe/bird2-19.07-bump
dc81e50 bird2: fix service restart and reload (#546)
6e51cca bird2: Update to v2.0.7 (#516)
3a80085 bird2: Update to version 2.0.6
38f2ed9 bird2: Bump to v2.0.5
2020-04-29 13:20:27 +02:00
Matthias Schiffer 35e8b53385 kernel: backport slub prefetch fix from v4.19
This patch fixes a regression introduced in kernel v4.14. While the
commit message only mentions a performance penalty, the issue is
suspected to be the cause of spurious data bus errors on MIPS CPUs
(ar71xx target).

Fixes: #1982
2020-04-29 13:05:25 +02:00
Jan Alexander 079275ebf2 docs: add Aruba AP-303 and Instant On AP11 to supported devices list 2020-04-27 17:02:15 +02:00
André Fiedler 954b7af72b ath79-generic: add support for TP-Link CPE220 v3 2020-04-27 16:42:10 +02:00
Martin Weinelt dd7d37b8e4 Jenkinsfile: add timeout to build and test steps
This will hopefully make CI runs more robust and recover stale workers.
2020-04-26 23:26:09 +02:00
David Bauer 5231fb0178 lantiq-xway: remove support for AVM FRITZ!Box 7320 7330 7330SL
This device has broken Ethernet on both ports.

Remove support for those devices. for now, as there was no feedback from
the original author.

Closes #1943
2020-04-26 18:02:46 +02:00
Matthias Schiffer 696b4316da gluon-web-autoupdater: use human-readable names as branch labels, sort by label
Use the value of the `name` site.conf field as label (it was
accidentally unused before).

Our site.conf currently doesn't define a specific order for the branch
entries. To avoid changing branch orders, sort entries by this label.

Fixes: #1961
2020-04-26 15:31:59 +02:00
Martin Weinelt 42650393b6
contrib/ci: document kvm permissions configuration 2020-04-26 00:25:11 +02:00
Matthias Schiffer aefb0b8c35 scripts/copy_output.lua: delete images from OpenWrt dir after copying them
We don't move the images directly, as multiple images of the same device
may have the same source image (on x86), but only delete them after a
whole device has been handled (multiple devices using the same images
must be handled using aliases or manifest aliases instead).
2020-04-25 21:35:44 +02:00
Matthias Schiffer e993f22233 scripts/target_lib.lua: reorganize images into per-device lists 2020-04-25 21:35:44 +02:00
Sven Eckelmann 8bc602b021 mac80211: ath10k: increase rx buffer size to 2048
Before, only frames with a maximum size of 1528 bytes could be
transmitted between two 802.11s nodes.

For batman-adv for instance, which adds its own header to each frame,
we typically need an MTU of at least 1532 bytes to be able to transmit
without fragmentation.

This patch now increases the maxmimum frame size from 1528 to 1656
bytes.

Tested with two ath10k devices in 802.11s mode, as well as with
batman-adv on top of 802.11s with forwarding disabled.

Fix originally found and developed by Ben Greear.
2020-04-25 21:33:41 +02:00
aiyion.prime 0f3f4bc897 ramips-mt76x8: add support for Cudy WR1000
v2 is available on the market, but apparently has no upstream support, yet:
https://forum.openwrt.org/t/v2-of-cudy-wr1000/56965
2020-04-25 17:25:32 +02:00
Jan Alexander 48df206a4a docs: normalize hardware revision references 2020-04-24 21:58:00 +02:00
David Bauer 3e3d6d5c78 openwrt: refresh patches 2020-04-24 21:21:26 +02:00
Matthias Schiffer 778bf90561
gluon-mesh-batman-adv: add UCI setting for hop penalty
Add a UCI setting gluon.mesh_batman_adv.hop_penalty

Example UCI commands:

    uci set gluon.mesh_batman_adv=mesh_batman_adv
    uci set gluon.mesh_batman_adv.hop_penalty=20
    uci commit

`/etc/config/gluon` config section:

    config mesh_batman_adv 'mesh_batman_adv'
    	option hop_penalty '20'

Fixes: #1942
2020-04-20 23:35:07 +02:00
Martin Weinelt 5c8c479d21 Jenkinsfile: fix glob for test scripts 2020-04-17 20:00:57 +02:00
David Bauer 6042f5256a modules: update OpenWrt
0232f57e1a kernel: bump 4.14 to 4.14.176
286c407c3d ath79: add SUPPORTED_DEVICES for TP-Link TL-WA901ND v2
02c6deab8c mbedtls: update to version 2.16.5
01b624e28e Revert "ramips: disable ZyXel Keenetic by default"
14c8ea0245 ramips: use full 8MB flash on ZyXEL Keenetic
2020-04-16 21:37:15 +02:00
Martin Weinelt 777416a175
Jenkinsfile: require gluon-docker-v2 for build stage
This is required to build the next branch which requires rsync to be
available.
2020-04-15 23:05:57 +02:00
Martin Weinelt 358be325b2
contrib/ci: install rsync on jenkins-community-slaves
Rsync is a requirement for OpenWrt master and therefore our next
branch. Currently builds on x86-64 error out due to missing rsync:

/bin/sh: 1: rsync: not found
2020-04-15 17:56:38 +02:00
Martin Weinelt ac65a4174c .editorconfig: add python 2020-04-15 15:20:45 +02:00
lemoer 56dbfefd14 tests: add gluon-reconfigure testcase 2020-04-15 15:20:45 +02:00
Martin Weinelt d9ea281436 ci: identify runner in each stage 2020-04-15 15:20:45 +02:00
lemoer 4cd26d860a tests: add respondd test case 2020-04-15 15:20:45 +02:00
Martin Weinelt 772db95244 contrib/ci: add test stage 2020-04-15 15:20:45 +02:00
David Bauer c5f43add3d gluon-core: add OWE MAC-assignment
Fixes commit 6692095f9d
2020-04-11 15:14:05 +02:00
David Bauer c4d70f29e6 docs: dev: add OWE MAC-assignment
Fixes commit 6692095f9d
2020-04-11 15:13:57 +02:00
Martin Weinelt 46cd214bb8
modules update packages
619961596 mosh: use mips16 and remove configure patch
376d0b76f mosh: Fix compilation with libcxx
913f95a4b mosh: Add protobuf host build dependency
d0bf13630 mosh: add package
9e581d578 Merge pull request #11800 from dibdot/adblock-19.07
5e69c9961 adblock: release 4.0.3
f207f2bf3 Merge pull request #11802 from stangri/19.07-simple-adblock
af1e0a533 simple-adblock: bugfixes: remove escape chars from log, restore from cache on boot
b7f2b61da nano: update to 4.9.2
c5a7fba5c graphicsmagic: update to version 1.3.35 (security fix)
574a5af56 Merge pull request #11772 from micmac1/19.07-apache-2443
fa572d135 meson: update to 0.53.2
75c1baa9f meson: update to 0.53.1
c7e1a3453 meson: fix building host binaries with ccache
eeeadde02 python-requests: update to version 2.23.0
ca555a054 dnscrypt-proxy2: update to version 2.0.42
8a4d0b206 apache: security bump to 2.4.43
626bda56d nano: update to 4.9.1
a10dd9369 Merge pull request #11755 from gladiac1337/haproxy-2.0.14-openwrt-19.07
7e48c36cc haproxy: Update HAProxy to v2.0.14
c8eb843fb Merge pull request #11729 from stangri/19.07-vpn-policy-routing
153892633 vpn-policy-routing: separation between auto/all proto; compatibility with mwan3; README update
92a4c6933 gnutls: updated to 3.6.13
0d9a89370 Merge pull request #11699 from stangri/19.07-simple-adblock
9923323db simple-adblock: support multiple dnsmasq instances; rework communication between principal package and luci app
7fba38e3f avahi: update to 0.8
0da04e56d avahi: convert to procd
97a0abf46 avahi: Fix pkgconfig files to be cross compile friendly
ca7da040e flac: Update to 1.33
4bd47a5eb msmtp: remove myself as maintainer
7ccf6f235 msmtp: Update to 1.8.7
efab88dc3 msmtp: Update to 1.8.6
97fcfe955 mpg123: Update to 1.25.13
2dbdb7de3 screen: update to 4.8.0
c133dc75d screen: Update to 4.7.0
a677166dd zstd: Fix compilation with uClibc-ng
6c5b9424e zstd: Update to 1.4.4
18efffaf9 nano: update to 4.9
c983b0844 tor: update to version 0.4.2.7 (security fix)
fb0996711 collectd: disable onewire plugin, BROKEN since 2009
afccb8069 collectd: disable dpdk_telemetry module
45dfd3b51 collectd: update to 5.11.0
9ba7b1799 acme: Backport two bug fixes from master
40c5dd0ba openvswitch: depend on IPV6 for intree kmods
ec0a9d4d0 openvswitch: rework skipping intree kmod build for unsupported kernels
d8c836f6a fish: update to 3.1.0
aae54e90c fish: Fix compilation with libcxx
2ea76a676 fish: Convert to CMake
33eda8575 syncthing: configuration cleanup & hardening
e4c685e5b syncthing: bump to 1.4.0
b8dafa475 syncthing: fixup version detection
f7308a55f strongswan: add conffiles for swanctl util
ba76d4274 strongswan: quote 'comment' parameter in Config.in
1cd3f5fdc net/pagekitec: support status reporting json file
1688807f1 net/pagekitec: Update to newest version
407438796 Merge pull request #11647 from jefferyto/byobu-5.133-openwrt-19.07
97e68c1cb Merge pull request #11646 from jefferyto/python-pyasn1-modules-0.2.8-openwrt-19.07
3c6d37bfa Merge pull request #11645 from jefferyto/python-idna-2.9-openwrt-19.07
72ccf6726 Merge pull request #11644 from jefferyto/python-pycparser-2.20-openwrt-19.07
2c8681870 Merge pull request #11643 from jefferyto/python-enum34-1.1.10-openwrt-19.07
897b76d32 Merge pull request #11641 from jefferyto/python-zope-interface-4.7.2-openwrt-19.07
72731c08c Merge pull request #11639 from jefferyto/python-twisted-security-fix-openwrt-19.07
7fa240521 Merge pull request #11636 from jefferyto/golang-1.13.9-openwrt-19.07
34a77ee37 byobu: Update to 5.133
db63e1208 python-pyasn1-modules: Update to 0.2.8
4da9026f2 python-idna: Update to 2.9
a6b32c675 python-pycparser: Update to 2.20
364c24dd2 python-enum34: Update to 1.1.10, refresh patch
da05e0829 python-enum34: Update to 1.1.9, refresh patch
4e5642de1 python-zope-interface: Update to 4.7.2, refresh patch
261d6cbaa python-twisted: Fix several request smuggling attacks
0b654d52e golang: Update to 1.13.9
8677a0e3e libredblack: pass CFLAGS properly
ad782ffff Merge pull request #11615 from stangri/19.07-https-dns-proxy
fc16e964c Merge pull request #11617 from nxhack/19_07_icu_66_1
6abb6bb2a https-dns-proxy: support for dnsmasq noresolv option
2509b0e89 icu: update to 66.1
df7e27dfe youtube-dl: update to version 2020.3.8
0b8102940 haveged: move init script from 13 to 01
2085b990f libarchive: update to 3.4.2
8bd2d5e53 Merge pull request #11566 from BKPepe/python3-update-19.07
f043afe46 openvswitch: fix PIE build against 4.14 kernel
5827a1ed2 x264: add CONFIGURE_VARS and MAKE_FLAGS when NASM is not selected
5746e4a2b nfs-kernel-server: Fix compile with uClibc-ng
17924b128 xtables-addons: disable ASLR PIE
fd4da9667 python3: update to version 3.7.7
3b9648db3 django: bump to version 1.11.29
55176058f Merge pull request #11540 from neheb/softee
dc524aa2a softethervpn: disable PIC
381153d59 softethervpn: Fix openssl header patch
aba0dd872 softethervpn: Add missing OpenSSL header
f09028fcd softethervpn: Update to rtm version 4.29-9680
b546ff127 stubby: fix init script
c5219c8af stubby: makefile and init script cleanup
9b64ae0ba btrfs-progs: fix check for btrfs in btrfs scan
2f5fce820 syslog-ng: update to version 3.26.1
79186664e Merge pull request #11526 from wvdakker/openwrt-19.07
43c5aba9e Merge pull request #11524 from micmac1/1907arc_aio2
62d9ba9a0 Shorewall6: Bump to 5.2.3.7.
e14ee2480 Shorewall: Bump to 5.2.3.7.
84cca11fa Shorewall6-lite: Bump to 5.2.3.7.
803ab2f44 Shorewall-lite: Bump to 5.2.3.7.
7b67a0b91 Shorewall-core: Bump to 5.2.3.7.
c84786237 mariadb: add dependency on libaio for arc as well
b2f00d8b7 youtube-dl: update to version 2020.3.6
c4795d941 youtube-dl: update to version 2020.3.1
c81415a80 Merge pull request #11501 from Bloup1net/phantap19.07
408f666e6 libuv: update to 1.34.2
b97f33e02 cgi-io: fix compilation against uClibc
68aa303ef cgi-io: use O_TMPFILE for uploads and attempt to directly link target file
7f00eebab cgi-io: use dynamic memory for post decoding, support proc files
ce9229d2e Merge pull request #11500 from fantom-x/irqbalance-backport
bbc1b3025 irqbalance: support reload_config & start later
cdd892c9b irqbalance: add support of interval and banirq
cceb2c3ad irqbalance: upgrade to 1.6.0
801a908a1 phantap: add to 19.07
ca93667c8 Merge pull request #11482 from BKPepe/libaio_update
61b732e62 libaio: Update to 0.3.112
abdbeb350 mosquitto: bump to 1.6.9
a7d3b91ce syncthing: enable via config, lower priority, cleanup
0b9578a1d Merge pull request #11472 from fantom-x/syncthing-19.07
653014528 syncthing: bump to 1.3.4
56af7bcf1 syncthing: add package
2020-04-10 20:25:56 +02:00
Martin Weinelt d333bffb67
modules: update OpenWrt
5b9b833f8c bcm53xx: add support for Luxul FullMAC WiFi devices
ab3549a870 bcm53xx: refactor board.d code in 02_network
35413b047c bcm53xx: sysupgrade: optimize building UBI image
55c29c398c busybox: enable truncate on bcm53xx target
a89731ad7a bcm53xx: fix ASUS firmwares to use vendor format
36373c5ddb openssl: bump to 1.1.1f
470f7c046c ath79: add support for TP-Link TL-WDR4310 v1
96ee7c8bfd libpcap: Update shared-lib patch from Debian to fix linking problems
96092a8eea mkrasimage: fix segmentation fault
bf5ea2a8dc rpcd: fix respawn settings
83381ce95d readline: needs host depend on ncurses to build
45b586c4a6 tools: squashfskit4: fix build with GCC10
79b60d878d squashfskit4/Makefile: introduce PKG_RELEASE=1
a08394b3c6 build: prereq: tidy gcc version checks
66cbfeeaae build: add GCC 10 version detection
eea3a9625c openssl: revert EOF detection change in 1.1.1
c6c3f6bb0a mac80211: Update to version 4.19.112
794fd4c6cf procd: turn error into debug message for missing ujail binary
f5b3cd1539 ar71xx: Fix gigabit switch support for Mikrotik RB951G-2HnD
bdbda30384 ath79: add support for TP-Link TL-WA860RE v1
2e6bfab8c5 ath79: add support for TP-Link TL-WA850RE v1
dba6f418fa mac80211: fix brcmfmac monitor interface crash
27e77922a1 ar71xx: use status led for GL.iNet GL-AR750S
2020-04-10 20:24:33 +02:00
David Bauer d3f5adcfa4 github: actions: only build certain branches
This enables build-testing only on master as well as next and release
branches.
2020-04-10 03:50:31 +02:00
Matthias Schiffer 7b7cde7256
Merge pull request #1970 from Kasalehlia/fix-form-reset
gluon-web-model: update inputs on form reset
2020-04-09 23:17:39 +02:00
Jan Alexander 17b49e20ee ath79-generic: add support for GL.iNet GL-AR750S 2020-04-09 20:29:24 +02:00
Matthias Schiffer 2a8943e516 build: use .SILENT instead of adding @ to each recipe 2020-04-09 14:30:44 +02:00
Matthias Schiffer 4e02d9ba9f docs: start doc page on the build system 2020-04-09 14:30:44 +02:00
Matthias Schiffer 584d215f56 build: allow overriding the base feed list 2020-04-09 14:30:44 +02:00
Matthias Schiffer 6155bf82c8 build: reduce build environment pollution
Instead of exporting various variables (unintendedly making them
available to the OpenWrt build, possibly bypassing .config), pass the
environment only to commands that need it.
2020-04-09 14:30:44 +02:00
Matthias Schiffer a180bb8689 build: use .ONESHELL
By using .ONESHELL and adding -e to .SHELLFLAGS, we can simplify complex
shell commands (like manifest generation) and gain a simple way to pass
multi-line environment variables into shell commands.

The @ and + flags for recipe commands are moved to the top of each
recipe.
2020-04-09 14:30:44 +02:00
Matthias Schiffer 47f1509e75 build: indent non-recipe Makefile lines with two spaces 2020-04-09 14:30:44 +02:00
Jan Alexander 016b323a17 gluon-status-page: set fixed layout and responsive view for data tables 2020-04-07 22:34:23 +02:00
Martin Weinelt 8aa30b7099 ci: add chown step to resolve permissions on openwrt dl cache 2020-04-07 19:26:26 +02:00
David Bauer 95b133d4fd x86-geode: add target class
x86-geode does not include the common x86 target-settings. Thus we need
to specify the device class in order to build images with all necessary
packages included.
2020-04-06 21:36:28 +02:00
David Bauer 1b0288d539 contrib: actions: remove surplus package sources 2020-04-05 19:49:44 +02:00
David Bauer 366ba8ab99 contrib: actions: add custom sources.list 2020-04-05 19:43:57 +02:00
David Bauer 83b2c41cee contrib: actions: enable verbose output 2020-04-05 19:19:58 +02:00
David Bauer bb905b3351 actions: move dependencies to dedicated step 2020-04-05 19:08:15 +02:00
Ruben Barkow-Kuder 24dd731019 docs: compress PNG for mtu diagram 2020-04-05 16:35:11 +02:00
Kasalehlia bf090a8a83 gluon-web-model: update inputs on form reset
Register to 'reset' event on form element and make call to 'update' function
delayed in 'data-update' handler to allow the form values to update beforehand.

When using a form's 'reset' button, form field visibility was not updated.
This could lead to situations where a checkbox had to be toggled again
twice to display the detail text inputs. (Example taken from private
wifi package)
2020-04-05 12:47:49 +02:00
Martin Weinelt 3fb4cdad13 gluon-respondd: allow queries from extra_prefix6
Fixes #1959
2020-04-04 22:13:10 +02:00
David Bauer c21d95bf34 github: add build workflow 2020-04-04 18:04:31 +02:00
David Bauer b427a3b1ad modules: use GitHub mirror
Then using GitHub actions, the OpenWrt Git service occasinally returns a
504 leading to a failed build.
2020-04-04 18:04:31 +02:00
David Bauer ebac7e4459 contrib: add build-script for GitHub actions 2020-04-04 18:04:31 +02:00
David Bauer a37098da6b contrib: add generation script for GitHub actions 2020-04-04 18:04:31 +02:00
David Bauer 59a4cd63b8 gluon-respondd: expose OWE clients in nodeinfo
Provide the number of OWE stations in addition to the number of all
connected wireless clients.
2020-04-01 01:15:38 +02:00
David Bauer b7ac32efbc docs: include OWE documentation 2020-04-01 01:15:38 +02:00
David Bauer 9720be5112 gluon-web-wifi-config: set state of OWE VAP 2020-04-01 01:15:38 +02:00
David Bauer 6692095f9d gluob-client-bridge: add support for OWE encryption 2020-04-01 01:15:38 +02:00
David Bauer c9f90c3ef8 build: add class-packages for targets without devices
When adding device classes, targets without devices such as x86 were not
handled. As site and feature packages are included on such a per-device
decision, x86 images ended up without most packages.

Include a class setting for a target and include the class-packages
target-wide when this setting is configured.

Fixes 9c52365077 ("build: introduce device classes")
2020-03-27 23:35:24 +01:00
David Bauer 17db337d95 modules: update OpenWrt
81264ebb51 brcm2708: fix build failure

Compile-tested: brcm2708
2020-03-26 01:40:29 +01:00
Martin Weinelt 9fb4be6104 modules: update OpenWrt
39405644d5 dnsmasq: add 'scriptarp' option
d5b1f4430f openssl: update to 1.1.1e
798ff37aaa openssl: add configuration example for afalg-sync
168acbb36d oxnas: yet another irqchip related patch
cf4520d15e oxnas: backport another fix for irqchip
456e1c60d6 ath79: add support for TP-Link WDR3500 v1
e7fae8fc97 ath79: add support for TP-Link Archer C60 v3
2bd9d2e08b oxnas: backport patch fixing hang after reboot
74a8e36975 layerscape: add kmod-i2c-mux to DEVICE_PACKAGES for traverse-ls1043
7ae345ecb7 ath79: add support for TP-Link TL-WR740N v5
76c1c1daea ar71xx: fix port order on TP-Link Archer C60 v1/v2
f1a3a6b79c ath79: fix port order on TP-Link Archer C60 v1/v2
e4107e30a7 ar71xx: remove wrong MAC address adjustment for Archer C60 v2
83f1015a6c ar71xx: fix swapped LAN/WAN MAC address for Archer C60 v1/v2
9f024d3587 ath79: fix swapped LAN/WAN MAC address for Archer C60 v1/v2
b32129d30b rssileds: add dependencies based on LDFLAGS
9da31d0fb4 mt76: update to the latest version
68351990dc ar71xx/ath79: ew-dorin, fix the trigger level for WPS button
6e4453aecc kernel: backport out-of-memory fix for non-Ethernet devices
06f5a8d3e9 kernel: bump 4.14 to 4.14.172
e7f1313bbb rpcd: add respawn param
f6f0cd54a2 rpcd: update to latest Git HEAD

Compile-tested: ipq40xx-generic, ramips-mt7621
2020-03-25 02:21:24 +01:00
David Bauer 051b275055 build: add class specific GLUON_SITE_PACKAGES
This allows to define a list of packages, which are only installed
for a specific device-class.
2020-03-25 02:05:18 +01:00
David Bauer a9c5b83cad docs: private-wlan: add WPA3 documentation 2020-03-25 02:05:18 +01:00
David Bauer c7fa1927aa gluon-web-private-wifi: enable WPA3 configuration
This allows a user to enable WPA3-Personal and WPA2-WPA3-MM for the
private WiFi in case it is supported by the platform.
2020-03-25 02:05:18 +01:00
David Bauer 86b5104790 gluon-core: add WPA3 platorm helper
This adds a helper method, which determines if the current platform
supports WPA3 or not.

WPA3 is supported if
 - the device is not in the featureset category "tiny"
 - the WiFi driver supports 802.11w management frame protection
2020-03-25 02:05:18 +01:00
David Bauer 88bed04679 build: remove hostapd from default packages 2020-03-25 02:05:18 +01:00
David Bauer 00e029500e features: add hostapd-mini by default
If WPA3 is not selected as a feature, autmatically include
hostapd-mini.
2020-03-25 02:05:18 +01:00
David Bauer b057015455 gluon-wireless-encryption: add package
The gluon-wireless-encryption package selects a WPA3 supporting
hostapd package as a dependency and stores the information, which
encryption method is supported to the device.
2020-03-25 02:05:18 +01:00
David Bauer 1df243d1b3 build: add class specific GLUON_FEATURES 2020-03-25 02:05:18 +01:00
David Bauer 7903d9eb64 docs: add device-classes 2020-03-25 02:05:18 +01:00
David Bauer 7fd7116e2a targets: add device-class flags
This commit assigns class-flags to devices. The following scheme is
used:

 - ath9k & ath10k: tiny if RAM <128M
 - ath10k & ath10k: tiny if RAM <256M
 - all: tiny if RAM <64M
 - all: tiny if flash <8M

All other devices automatically have the default device-class selected.
2020-03-25 02:05:18 +01:00
David Bauer 9c52365077 build: introduce device classes
This commit allows to define a device-class flag in the target
definitions. This way, it is possible to distinguish between groups
of devices in the build-process in terms of package or feature
selection.
2020-03-25 02:05:18 +01:00
David Bauer 3d5a693026
x86: add common wireless packages (#1947) 2020-03-23 19:00:28 +01:00
Martin Weinelt 461d904086 Add gluon-mesh-wireless-sae package
This package adds support for SAE on 802.11s mesh connections.

Enabling this package will require all 802.11s mesh connections
to be encrypted using the SAE key agreement scheme. The security
of SAE relies upon the authentication through a shared secret.

In the context of public mesh networks a shared secret is an
obvious oxymoron. Still this functionality provides an improvement
over unencrypted mesh connections in that it protects against a
passive attacker who did not observe the key agreement. In addition
Management Frame Protection (802.11w) gets automatically enabled on
mesh interfaces to prevent protocol-level deauthentication attacks.

If `wifi.mesh.sae` is enabled a shared secret will automatically be
derived from the `prefix6` variable. This is as secure as it gets
for a public mesh network.

For *private* mesh networks `wifi.mesh.sae_passphrase` should be
set to your shared secret.

Fixes #1636
2020-03-23 17:06:43 +01:00
Martin Weinelt bf04107048 docs: v2020.1: add Edgerouter X NAND driver problem to known issues
Resolves #1937
2020-03-19 20:39:36 +01:00
Matthias Schiffer d7e724ada9
target_lib: replace envtrue with more intuitive istrue helper
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2020-03-14 16:51:43 +01:00
Matthias Schiffer c9f3017ac5
Merge pull request #1955 from freifunk-gluon/dgn3500b
lantiq-xway: add support for NETGEAR DGN3500B
2020-03-14 16:32:34 +01:00
Matthias Schiffer 3bd67ab25f gluon-core: retrieve primary MAC address from board.json for Netgear DGN3500B 2020-03-14 16:26:08 +01:00
Andreas Ziegler d8b944ea95 lantiq-xway: add support for NETGEAR DGN3500B 2020-03-14 16:25:51 +01:00
Matthias Schiffer cd09c95e60
Merge pull request #1956 from freifunk-gluon/primary-mac-cleanup
Primary MAC logic refactoring
2020-03-14 16:13:14 +01:00
Matthias Schiffer 2e265e03c1
gluon-core: refactor primary MAC logic
Remove a lot of redundant code by switching to a match table listing
the targets and boards for each candidate for the primary MAC interface.

In addition, we add some flexiblity by allow to switch out the sysfs file
data source for the MAC address.
2020-03-12 18:52:23 +01:00
Matthias Schiffer 59d182fe54
gluon-core: gluon.platform: allow omitting target and subtarget
Allow wildcard matches on all subtargets of a target, or a full wildcard
always returning true when no arguments are passed.
2020-03-12 00:27:05 +01:00
Martin Weinelt 75684ecf37
modules: update routing
b8fd8c8 Merge pull request #554 from ecsv/batadv-for-19.07
18a724e batman-adv: Merge bugfixes from 2020.0
2020-03-10 17:15:15 +01:00
Andreas Ziegler 43995c4624
codestyle: replace leading spaces with tabs in target files (#1954) 2020-03-09 22:19:07 +01:00
Martin Weinelt 694b6e493d
lantiq-xrx200: disable factory image for tl-w{8970,8980}
There is no factory image, they are flashed using the sysupgrade image.
2020-03-09 15:32:00 +01:00
Martin Weinelt 2c6631a294
docs: supported_devices: flag td-8970 v1 with lan_as_wan note 2020-03-09 08:38:33 +01:00
Martin Weinelt 72e368acb7
.gitignore: add files created when mounting repo in docker 2020-03-09 08:30:33 +01:00
David Lutz 7ffc59d152
lantiq-xrx200: add support for TP-Link TD-W8970, TD-W8980, TD-W9980 (#1867) 2020-03-09 04:15:21 +01:00
Jan Alexander 5591d3e745 ipq40xx-generic: add support for EnGenius ENS620EXT 2020-03-09 02:15:50 +01:00
Martin Weinelt 1c2dc51b76
add .editorconfig (#1951)
Resolves #1929
2020-03-08 19:18:17 +01:00
Ralf Jung 68d970e91b
gluon-mesh-vpn-tunneldigger: only search for exactly the tunneldigger binary in watchdog (#1953) 2020-03-08 13:42:25 +01:00
David Bauer a77d01bb46 docs, README: Gluon v2020.1.1
(cherry picked from commit 447595f0bb0df2e877e8f14fda1ef629ec30265f)
2020-03-07 19:57:00 +01:00
David Bauer 0319206862 docs: add v2020.1.1 release notes
(cherry picked from commit 1566324fd3719adb252ae1cb601c40912d13fe2b)
2020-03-07 19:56:52 +01:00
Martin Weinelt 9e4eb18290
docs: v2020.1: append missing known issues 2020-03-07 19:22:53 +01:00
David Bauer add560b18f modules: bump OpenWrt
1713707673 ar71xx: add missing LED migration for Archer C7 (#1941)
2020-03-01 23:49:18 +01:00
David Bauer 5af0080c24 modules: bump OpenWrt
ef391799e3 ar71xx: correct AVM FRITZ Repeater 450E WPS button flag (#1940)
2020-03-01 18:44:19 +01:00
Martin Weinelt 1c4f1feb36
modules: update routing
efa6e54 luci-app-bmx6: bugfix querying bmx6-info (p2)
f1b0476 luci-app-bmx6: bugfix format to query bmx6-info
839ea37 quagga: update to version 1.1.1 (#541)
c82ce8d Merge pull request #536 from ecsv/batadv-for-19.07
242185e batman-adv: Merge bugfixes from 2019.5

Build-tested: x86-64, ipq40xx
2020-03-01 13:15:37 +01:00
Martin Weinelt 027aa49d91
modules: update packages
99efce0cd pagekite: add simple websockets and update syntax
42c7a7adb pagekite: avoid redundant information in syslog
13e8c6ffe pagekite: bump to v0.91.200218
c3ff03a34 ocserv: updated to 0.12.6
8b1101bbd gnutls: updated to 3.6.12
95c72d8ab php7: update to 7.2.28
61970ece5 xl2tpd: fix building failure caused by pfc
7fe207375 xl2tpd: bump to version 1.3.15
e9ea875a1 zip: remove package
11b2c1ea1 nnn: update to version 3.0
47dc62ba2 nnn: update to version 2.9
201ec1470 youtube-dl: update to version 2020.2.16
7153a1f7f youtube-dl: update to version 2020.1.24
3a4d88f5d youtube-dl: update to version 2020.1.15
2c0a307ee acme: update to 2.8.5
e29cc586f Merge pull request #11381 from wvdakker/openwrt-19.07
1c7b7cfdf Shorewall6: Bump to version 5.2.3.6
481e63feb Shorewall: Bump to version 5.2.3.6
4f0e5c49d Shorewall6-lite: Bump to version 5.2.3.6
7c8f5fd70 Shorewall-lite: Bump to version 5.2.3.6
1fbf3e179 Shorewall-core: Bump to version 5.2.3.6
3cf36f145 Merge pull request #11375 from jefferyto/golang-1.13.8-openwrt-19.07
12b84e6ac golang: Update to 1.13.8
156dd4ad0 Merge pull request #11360 from gladiac1337/haproxy-2.0.13-openwrt-19.07
2f5b20987 haproxy: Update HAProxy to v2.0.13
bd24f9bb3 ffmpeg: disable x86 asm for old CPU types
dbef69927 ffmpeg: update to 3.4.7
c53055aa1 ffmpeg: Fix fdkaac patches
9d6855be1 ffmpeg: Fix pkgconfig files to be more cross compile friendly
1e97faf11 zabbix: remove configure patch
2058e86fa zabbix: Fix compilation with uClibc-ng
403c98169 Merge pull request #11356 from neheb/boostkkk
2b15682da sshpass: add new package
76947a8be boost: reintroduce uClibc-ng patch
78d7c8aef knot: Do not try to build under ARC
b4febf32c liburcu: Don't build under ARC, not even InstallDev
fc5935729 perl: define $sysroot for extensions
5c856ff55 perl: Don't build InstallDev under ARC
c7e1106d1 nss: Fix compilation with uClibc-ng
bdca0e7bf measurement-kit: Fix compilation with uClibc-ng
8e746461f measurement-kit: update to version 0.10.9
659b1b807 boost: Fix embarassing ARC typo
8640d243e Merge pull request #11296 from Andy2244/samba4-update-4.11.6-(19.07)
a0c00a213 Merge pull request #11297 from Andy2244/ksmbd-update-3.1.3-(19.07)
f5be481a4 ksmbd: update to 3.1.3, ksmbd-tools: update to 3.2.1, add smb1 support, add avahi support package
1a503986f samba4: update to 4.11.6, add new UCI option
490685093 dnsdist: fix compilation on PIE ARM64
f815a7416 Merge pull request #11281 from micmac1/apache-19.07-up
9be5706a7 Merge pull request #11245 from Robby-/openwrt-19.07-rlmpython_and_fixproxycfgconflict
9e551f1b3 apache: add postinstall script
019b8fd05 subversion: fix build failure
8b238c840 subversion: add libsqlite3 depend
623ae4614 apache: bump to 2.4.41 & sync with master
4cba41ac1 apr-util: sync with master
391f5f087 apr: bump to 1.7.0 & sync with master
04da60f17 nano: update to 4.8
3cf0c61f2 php7: update to 7.2.27
c417bddda freeradius3: Enable the rlm_python and rlm_python3 modules.
4d16e3ae3 freeradius3: Fix proxy.conf file conflict.
da2071507 syslog-ng: listen not globally but just locally
268ea7a78 python-importlib-metadata: add new package
90e596693 shadow: update to 4.8.1
433264290 Merge pull request #11213 from adde88/openwrt-19.07
f8999d963 Merge pull request #11229 from jefferyto/golang-env-fixes-openwrt-19.07
1d7cda2ed golang: Improve build isolation from user environment
6ac743909 Merge pull request #11226 from micmac1/sqlite3-19.07
0263d2273 sqlite3: update to version 3.31.1
f828174de hcxtools: update to 5.3.0 + changes to Makefile to include latest binaries being compiled
afb4bb4c2 dnscrypt-proxy2: update to version 2.0.39
ba9262f04 dnscrypt-proxy2: update to version 2.0.36
3c95786ac Merge pull request #11219 from jefferyto/golang-1.13.7-openwrt-19.07
9a792f41c golang: Update to 1.13.7, add PKG_CPE_ID to Makefile
98499ee44 Merge pull request #11214 from Andy2244/wsdd2-fix_typos-(19.07)
24c1ebc2b Merge pull request #11216 from dibdot/19.07-2
8dffab34b adblock: update 3.8.15
00a1294d0 wsdd2: fix typos
da3df8f6c hcxdumptool: update to 6.0.1
e73b2a0a0 Merge pull request #11203 from micmac1/19.07-xml2
0eb7b3e4e libxml2: install xml2-config with host triplet
6e5977094 libxml2/host: revert xml2-config prefix fix
752070f84 nextdns: Update to version 1.4.23
266917ae5 Merge pull request #11197 from Ansuel/backport
2c4e6a539 uwsgi: backport master changes to 19.07
8b5c2901c nginx: backport master changes to 19.07
f7b3d0062 Merge pull request #11184 from micmac1/19.07-maria-10.2.31
cff7a04a6 Merge pull request #11176 from jefferyto/python-fix-float-byte-order-openwrt-19.07
265e444d3 mariadb: security bump to 10.2.31
36a1c0c5a python-certify: bump to 2019.11.28
ad50eb7c0 python3: Fix float byte order detection
a76dd0635 python: Fix float byte order detection
30d0c2ee0 python: Replace utime with utimes
1ec76dd7c libxslt/host: depend on libxml2/host
4689c0998 libxslt: patch security issues
db7c84f67 libxslt: add host build
4d2cbcadc Merge pull request #11149 from nickberry17/add_mm_to_19
cac10393e modemmanager: add ModemManager to packages
c9cf3c277 libqmi: add libqmi to packages
5f27a4701 libmbim: add libmbim to packages
cd81e4f06 Merge pull request #11143 from Andy2244/smbd-rename_ksmbd-update-3.1.1-(19.07)
f5f35a72a Merge pull request #11144 from Andy2244/wsdd2-rename_ksmbd-(19.07)
e6c686454 glib2: fix mips16 build, add size reducing static link, fpic CFLAGS
ef940752d glib2: Disable Werror
fd5a51ac0 wsdd2: update for renamed smbd->ksmbd
82b463b19 smbd: update to 3.1.1, rename to "ksmbd", "ksmbd-tools"
1e43dc8f8 Merge pull request #11123 from stangri/19.07-https-dns-proxy
045e54e6b Merge pull request #11129 from Robby-/openwrt-19.07-freeradius3_update_3_0_20
885c9ed6c Merge pull request #11126 from micmac1/19.07-tiff
b3c1a67ff freeradius3: Update to 3.0.20
eee4d0830 tiff: update version to 4.1.0
a9fd019a3 https-dns-proxy: fix deleting server items, configurable dnsmasq settings change
eab36f8a6 avrdude: Fix GPIO path building
9cb0c7f4a Merge pull request #10990 from BKPepe/django-19.07
5afe3fd1d Merge pull request #11078 from ddast/radicale_add_urllib_dep
ea93089af radicale-py3: Add python3-urllib dependency
72af40f2b nut: fix other/otherflag custom variables in nut-server.init
e1aa905ab nut: update OpenSSL 1.1.0 patch
154da8aa0 nut: fix CGI setup
7b07ac9e3 Merge pull request #11063 from EricLuehrsen/openwrt-19.07-unbound
bc4f3c11c unbound: improve dependencies for okpg
895200940 Merge pull request #11061 from cotequeiroz/afalg_1.1.0-19.07
1410d6b73 afalg_engine: bump to v1.1.0
162974f80 btrfs-progs: update to version 5.4.1
072fcb5ce libseccomp: add seccomp-syscalls.h to InstallDev
3ab34b50d Merge pull request #11051 from wvdakker/openwrt-19.07
5022caf86 Shorewall6-lite: Bump to 5.2.3.5
0b890cf4b Shorewall6: Bump to 5.2.3.5
1201cdcd5 Shorewall: Bump to 5.2.3.5
4cb0ff831 Shorewall-lite: Bump to 5.2.3.5
c2a5aa1a5 Shorewall-core: Bump to 5.2.3.5
8ba3c7b19 afalg_engine: fix ENGINES location, zero-copy
776216a65 afalg_engine: add new package
995226d95 strongswan: bump to 5.8.2
243673b2d strongswan: allow to specify per-connection reqid with UCI
3880d65a0 strongswan: bump to 5.8.1
ba43556ae libarchive: update to version 3.4.1 (security fix)
ff87e8dbf oniguruma: bump to version 6.9.4
3030d0fc1 vpn-policy-routing: bugfix: remove conflict with vpnbypass
d0bdd3252 Merge pull request #11021 from jefferyto/golang-updates-openwrt-19.07
2dbc88762 golang: Update to 1.13.6
fdd202bd1 golang: Fix selection of GOARM value
6a64b7aff libseccomp: update to version 2.4.2
a50eeb01f django: update to version 1.11.27
8f3dcbcee unbound: fix TLS forwards with optional suffix
ffdbf4e7c measurement-kit: update to version 0.10.8
8f037084b measurement-kit: update package
8f2eb8f2d measurement-kit: update to version 0.10.6
3dfabe79f smbd: Update to 3.0.2
670f336d7 transmission: Sync with master
e847333d1 python,python3: split python[3]-pkg-resources from setuptools
1f293771c openvswitch: bump PKG_RELEASE
dc097661c openvswitch: backport patch to fix compilation
74e160df2 openvswitch: fix building failure caused by dst_ops api change
a4a54d0f3 openvswitch: bump to version 2.11.1
d974cd367 Merge pull request #10920 from Rixerx/openwrt-19.07
26c23f3b9 Merge pull request #10881 from mstorchak/stubby-19.07
9adadfd8e sqlite3: bump to version 3.30.1
3bfc11ea2 sqlite3: bump to 3.29.0
e2bca1026 nginx: update to 1.16.1
74e9ca74f tor: add respawn to init script
b85cbaf7e tor: update to version 0.4.2.5
2da2cf43b youtube-dl: update to version 2020.1.1
9ec865253 Merge pull request #10940 from Andy2244/samba-4.11.4-(19.07)
7472cc742 Merge pull request #10938 from Andy2244/smbd-rename-3.0.1-(19.07)
396c5fc9b Merge pull request #10939 from Andy2244/wsdd2-init-update-(19.07)
bff320497 Merge pull request #10937 from Andy2244/libtirpc-1.2.5-(19.07)
85066d81d samba4: update to 4.11.4 (python3 version), add rpcsvc-proto, add libasn1 host build
28e84aacf wsdd2: update to git (2019-12-15), bind to 'lan' only, update init for smbd
8bc58d175 smbd: rename from cifsd, update to 3.0.1
71d639a45 libtirpc: update to 1.2.5
3a82973ae zabbix: update to 4.0.16
34938d03f Merge pull request #10903 from stangri/19.07-vpn-policy-routing
a015cc1bd youtube-dl: update to version 2019.12.25
86b48645f vpn-policy-routing: initial release
d22c35e58 nano: update to 4.7
10a7a8763 Merge pull request #10897 from jefferyto/golang-format-ldflags-openwrt-19.07
fc313e772 golang: Format TARGET_LDFLAGS for gcc
8df00a88e Merge pull request #10892 from cshoredaniel/pr-19.07-radicale2-doc-passlib-bcrypt
3b5c73f85 Merge pull request #10893 from cshoredaniel/pr-19.07-update-passlib-1-7-2
64d4fc6e6 radicale2: Document suggested use of passlib and bcrypt
9f39817c7 Merge pull request #10888 from mwarning/zerotier
479b45b8a zerotier: update to 1.4.6
f0c5a95a4 zerotier: make sure the /var/lib exists
38a3ed1c7 zerotier: change license to BSL 1.1
e42648f3c zerotier: update to release 1.4.4
70f4c1d19 zerotier: udpate to 1.4.2
61291196d zerotier: fix linking to libnatpmp and build with uclibc
1961985f8 zerotier: update to zerotier 1.4.0
7b5cc70fa zerotier: keep configuration file on update
bcdb9d00a passlib: Update passlib to 1.7.2
ed6e1024b stubby: switch to ca-bundle in 19.07
73a965aea Merge pull request #10875 from jefferyto/golang-ldflags-fix-openwrt-19.07
db9a8a1e7 golang: Fix ldflags when GO_PKG_LDFLAGS is set
a25849997 Merge pull request #10865 from nxhack/libuv_1_32_0
a23285c00 libuv: update to 1.32.0
b710855ef Merge pull request #10762 from leonghui/wiki-link-update-19.07
07cda0edc Merge pull request #10862 from gladiac1337/haproxy-2.0.12-openwrt-19.07
02985327b haproxy: Update HAProxy to v2.0.12
ef82bba48 unbound: update to 1.9.6
c9cb6a0b1 dnscrypt-proxy2: Update to version 2.0.34
b8bd94ef8 mtr: update to 0.93
5fe674a86 knot: update to version 2.9.2
20d3d99a5 meson: Update to version 0.52.1
c1b410d7a lmdb: use toolchain AR for compilation
38c0db06b shadow: change default encryption method from DES to SHA512
4a8f7d124 netdata: Update to version 1.19.0
39dce33ac syslog-ng: Update to version 3.25.1
cbb329ac7 btrfs-progs: Update to version 5.4
94c4f61b5 Merge pull request #10856 from BKPepe/python3-19.07
198d01f78 Merge pull request #10852 from gekmihesg/19.07-restic-rest-server
0f18984d4 Merge pull request #10853 from gekmihesg/19.07-restic
c5d6ffaf1 python3: Updated to version 3.7.6
34b31493e restic: add package
a018b5149 restic-rest-server: add package
9fffb2b68 icu: Backport C++11 math patch
fff198e7f Merge pull request #10753 from stangri/19.07-https-dns-proxy
e3de8dd08 Merge pull request #10822 from cshoredaniel/pr-19.07-remove-msmtp-scripts
90ef9c18c git: update to version 2.24.1 (security fix)
dc2c25ccf git: Update to version 2.24.0
96c667a12 nspr: update to 4.24
ad246b363 nspr: update to 4.23
8f48dc334 nspr: update to 4.22
78e241c54 nss: update to 3.48
7e51bdee0 nss: update to 3.47.1 and fix xscale
da51495aa nss: update to 3.47
5b1beec9d nss: update to 3.46.1
d4d798baa nss: update to 3.46
0b2a73d15 nss: Replace usleep with nanosleep
666cce12c nss: update to 3.45
01b9bf1a1 nss: update to 3.44.1
ceeac3b37 vpnc-script: bumped release version
13de8da3b php7: update to 7.2.26
b46f4ecd3 vpnc-script: enable reconnect
f57ca519a cgi-io: close pipe descriptors early
9e434da4e cgi-io: implement exec action
59ca5bda3 msmtp-scripts: Remove as abandoning upstream; msmtp-queue works
a84d8ddce https-dns-proxy: switch to https-dns-proxy package name
80c42c968 Merge pull request #10809 from etactica/mb-1907
7ebd7011c libmodbus: update to 3.1.6
a70432b78 tor: update to 0.4.1.6
9147f9d72 tor: update to version 0.4.1.5
2c434727b Merge pull request #10801 from gladiac1337/haproxy-2.0.11-openwrt-19.07
90180becf haproxy: Update HAProxy to v2.0.11
18e9050e3 treewide: update wiki links
10d2e63dd Merge pull request #10776 from rs/nextdns-1.3.1_19.07
d40052862 nextdns: update to version 1.3.1
b4f3e5085 collectd: add vmem uci config
3a65e659d adblock: bugfix 3.8.14
111e84674 net/pagekitec: Update to 20191211 version
a82cbd584 adblock: bugfix 3.8.13
c61579b56 meson: add new package
fd5ef39e8 ninja: add new package
c1dd9499b golang: Update to 1.13.5
e67c39546 transmission: bump PKG_RELEASE
8acf58bf6 geth: Update to 1.9.9
54cbc535d geth: Update to 1.9.6
710c325be nnn: Update to version 2.8.1
b88b43dd1 python-more-itertools: add new package
bc30298f5 motion: fix streaming
77d230b52 motion: add basic procd init script
b1b53e61c motion: Update to 4.2.2
350716771 Merge pull request #10682 from hnyman/collectd-backport
2591e8220 mosquitto: bump to version 1.6.8
12be725fa Merge pull request #10697 from jefferyto/byobu-1.130-openwrt-19.07
1781209be gnutls: fixed pkg-hash to the right one
1c28d8cc2 openconnect: updated to 8.05
b551c5329 gnutls: updated to 3.6.11
6aebfb2df byobu: Update to 5.130
879a1e25b byobu: Update to 5.129
0116633d0 nano: update to 4.6
3dd9ef2f1 banip: update 0.3.11
a9b5f0657 collectd: update to 5.10.0
e33b3f8ca collectd: adjust reaction to ntp time at boot time
a681b766e collectd: update to 5.9.2
bbf35c736 collectd: bump PKG_PACKAGE version
e7ed36702 collectd: add reload and service trigger
ac29330c5 collectd: add logfile plugin definitions
5dd077e95 collectd: add iptables uci config
6884430d4 collectd: add network uci config
df7d418c9 collectd: add curl uci config
53e546854 collectd: add apcups uci config
eb6798351 collectd: add new memory config values
0f9ae62e2 collectd: add new cpu config values
4d54186f1 collectd: use uname to get default Hostname
2bd0a56f0 collectd: log stderr output
c4083af7b collectd: enable threshold plugin
1920eb60f collectd: move jshn.sh include to remove warning
00803ffc9 collectd: enable cpufreq module for ipq40xx and brcm2708_bcm2709
e6ced2769 Merge pull request #10676 from gladiac1337/haproxy-2.0.10-openwrt-19.07
5dd5b3365 haproxy: Update HAProxy to v2.0.10
a79d6df67 transmission: sync with master branch
7c1c00735 Merge pull request #10646 from Andy2244/softethervpn5-9672_19.07
a881ab43c softethervpn5: update to 5.01.9672

Build-tested: x86-64, ipq40xx
2020-03-01 13:14:26 +01:00
Martin Weinelt 1191fda363
modules: update OpenWrt
c56ed72d2b OpenWrt v19.07.2: revert to branch defaults
33732f4a9c OpenWrt v19.07.2: adjust config defaults
65030d81f3 libubox: update to latest Git HEAD
b33cfb7eb2 ath79: add missing reset-gpios for NanoStation Loco M (XW)
4edadfb997 ath79: add support for Ubiquiti NanoStation Loco M (XW)
cf118077cd ppp: backport security fixes
0e9e5b1553 Revert "ppp: backport security fixes"
9e2a1af62f uhttpd: update to latest Git HEAD
af79c3bccc kernel: bump 4.14 to 4.14.171
bc0ca20ca9 ipq806x: fix bug in L2 cache scaling
191822b59f ipq806x: add missing core1 voltage tolerance
d0c8875faf ath79: ar934x: use reset for usb-phy-analog
c9b6bb43ce ath79: phy-ar7200-usb: adapt old behavior of arch/mips/ath79/dev-usb.c
b2660e67f0 Revert "ath79: add support for Ubiquiti NanoStation Loco M (XW)"
21bf718b8c ath79: add support for Ubiquiti NanoStation Loco M (XW)
2d3a93335a ramips: append tail to WF2881 initramfs image
8fa6107aee ath79: add support for Ubiquiti Picostation M (XM)
6a950afde1 ath79: add support for Ubiquiti Nanostation Loco M (XM)
7cbd39421e ath79: add gpio4 pinmux on TL-WR841N/ND v8, WR842N v2, MR3420 v2
085f38351f ath79: enable forceless sysupgrade from ar71xx on fritz300e
6b7eeb74db ppp: backport security fixes
95d5cbdec3 ath79: add wmac migration for all ar93xx/qca95xx SoCs
2d21357b65 ath79: ar93xx/qca95xx: move gmac/wmac/pcie node out of apb bus
b6c01fec92 hostapd: remove erroneous $(space) redefinition
5000fc53a1 ath79: fix DTS node names for Ubiquiti XW partitions
a0ca72d9ab uboot-envtools: ath79: add Netgear WNDR3700v2
53cd2299ee ath79: WNDR3700 v1/v2: make u-boot env partition writable
cff3795450 bcm53xx: build images for Luxul ABR-4500 and XBR-4500 routers
cf2b042855 firmware-utils: add lxlfw tool for generating Luxul firmwares
887eb669f9 mac80211: brcm: backport remaining 5.6 kernel patches
d91b52b1a2 kernel: add missing symbol
2a844349fa kernel: add support for GD25D05 SPI NOR
eca8a2ee0d kernel: bump 4.14 to 4.14.169
3d1c84d424 ramips: reenable image creation for the D-Link DIR-645

Build-tested: x86-64, ipq40xx
Fixes: CVE-2020-8597
2020-03-01 13:12:40 +01:00
Andreas Ziegler ed91ec97c8 docs: minor grammar fix
fixes #1935
found by @lrnzo
2020-02-20 02:03:37 +01:00
Martin Weinelt f83d676442 docs, README: Gluon v2020.1 2020-02-15 00:12:21 +01:00
Martin Weinelt d6c9ab1a81 docs: add v2020.1 release notes 2020-02-15 00:12:21 +01:00
Martin Weinelt a8134ecb40
Revert "docs: features/multidomain.rst: use gluon-reload instead of reboot (#1888)"
This reverts commit 4e070312f9.

The recommendation is not sufficient at this time, so revert it.

See #1898 for further discussion.
2020-02-10 15:43:43 +01:00
Matthias Schiffer 0af45b70f9
brcm2708: update image names and manifest aliases for new libplatforminfo 2020-02-04 23:59:16 +01:00
Matthias Schiffer f0e5c5c3c5
Merge branch 'patch-1' of https://github.com/Dark4MD/gluon 2020-02-04 23:54:08 +01:00
Matthias Schiffer df0e3526dc
modules: update Gluon packages
12e41d0ff07e libplatforminfo: brcm2708: use board_name instead of model for image name
033401c18ecb mmfd: bump version
7cdfb66ece7b l3roamd: bump version
85af24315855 autoupdater: Fixed segfault on wrong long option
2020-02-04 23:25:38 +01:00
David Bauer 78e5ece527 docs readme: Gluon v2019.1.2
(cherry picked from commit 63ebeb25c0b3a7eec4c70efc92dfcfa760dd85b6)
2020-02-04 21:42:33 +01:00
David Bauer 2f3714e355 docs: add v2019.1.2 release notes
(cherry picked from commit f1f188f804edb7fae607e21a62a750167ec52089)
2020-02-04 21:42:23 +01:00
Matthias Schiffer af21f912b2
generic: fix GLUON_DEBUG on targets without configurable rootfs size
Fixes: c3435607e1 ("generic: increase RootFS size when GLUON_DEBUG is enabled")
2020-02-04 02:04:36 +01:00
Ralf Jung ba276dcfbd docs: add a note that hopglass-server needs an update to work with the new
respondd address
2020-02-03 20:49:03 +01:00
Manu.WTF 40ec997641 brcm2708-bcm2710: add manifest_alias for raspberry-pi-3-model-b-rev-1.2 2020-02-03 00:14:22 +01:00
Andreas Ziegler 9a75e2c05b docs: GL.iNet 64xx: remove vendor and version
- vendor name should not be part of model name
- there's no other version, hence mentioning the version is superfluous
2020-02-02 01:12:46 +01:00
Andreas Ziegler 390884819c docs: rename vendor to GL.iNet for uniformity 2020-02-02 01:12:46 +01:00
Andreas Ziegler 0e832c175c ath79-generic: add support for GL.iNet GL-AR300M-Lite 2020-02-02 01:12:46 +01:00
David Bauer 255c0045e7 docs supported-devices: fix alphabetical order 2020-01-31 22:53:59 +01:00
Jan Alexander 9741fb316d ramips-mt76x8: add support for TP-Link TL-MR3020 v3 2020-01-31 22:52:32 +01:00
Jan Alexander 7ee910e1b5 modules: bump OpenWrt
aed6632d31 ramips: use tpt DTS trigger for TP-Link TL-MR3020 v3 and TL-WA801ND v5

Compile-tested: ramips-mt76x8
Runtime-tested: ramips-mt76x8
2020-01-31 22:52:32 +01:00
David Bauer 8315a279bd modules: bump OpenWrt
a229907150 ramips: remove duplicate DEVICE_PACKAGES for TP-Link Archer C20i
4668ae3bed OpenWrt v19.07.1: revert to branch defaults
901bbe2ab9 OpenWrt v19.07.1: adjust config defaults
c155900f66 opkg: update to latest Git HEAD
8ab2b42fac kernel: fix dst reference leak in flow offload
47935940d6 ath79: fix SUPPORTED_DEVICES not matching ar71xx board names
da5b5ae9b9 ath79: remove SUPPORTED_DEVICES for TP-Link Archer D50 v1
f84981f6f8 mac80211: Update to version 4.19.98
3212290a3b lantiq: ltq-ptm: vr9: fix skb handling in ptm_hard_start_xmit()
6ee0138a6c mbedtls: update to 2.16.4
1c5ac590c4 kernel: bump 4.14 to 4.14.167
8038846b62 procd: update to version 2020-01-24
4e91c4e156 ramips: mt7621: ubnt-erx: allow sysupgrade from master
4a58a871c4 hostapd: fix faulty WMM IE parameters with ETSI regulatory domains
abaf329dad tools: tplink-safeloader: update soft_ver for TP-Link Archer C6 v2 (EU)
177c9ed4b0 uboot-envtools: ath79: add support for glinet,gl-ar150
a1502b0443 uboot-envtools: ar71xx: add support for gl-ar150/-domino/-mifi
b6675c2b2e ar71xx: change u-boot-env to read-write for gl-ar150/-domino/mifi
eed8f30b98 urngd: update to version 2020-01-21
1636e99e80 urngd: update to latest Git head
1b4b4e3fae ar71xx: ubnt-rocket-m-ti: fix RSSI LED definitions
c1245ebc96 brcm47xx: fix switch port order for Netgear WN2500RP V1
f638ef4325 kirkwood: fix HDD LED labels for Zyxel NSA325 in 01_leds
d3c2547cf1 brcm47xx: fix switch port order for Netgear WNR3500 V2
f6ab1f1566 ramips: rt305x: remove unnecessary mediatek,portmap
1d56a7b75d ramips: mt76x8: fix bogus mediatek,portmap
49b240cde8 ramips: fix portmap for TP-Link Archer C50 v4
d3eabe44d0 ramips: mt7620/mt7621: remove invalid mediatek,portmap
67595ce380 ramips: add factory image for Netgear R6350
9c6913ccad ramips: add mt7615e support to Netgear R6350
f8902d1ae6 libubox: update to version 2020-01-20
5ca066a5c2 fstools: backport fix from version 2020-01-18
ae953449f2 kernel: bump 4.14 to 4.14.166
945db9fb01 kernel: bump 4.14 to 4.14.165
9298c443df kernel: bump 4.14 to 4.14.164
d46b00cf0f ramips: fix HiWiFi HC5962 status LED
03c35bda03 ramips: fix HiWiFi HC5962 switch configuration
a885f7d3d0 ramips: add kmod-mt7615e to Xiaomi Mi Router 3 Pro images
67c8e586c8 ar71xx/mikrotik: use ath10k-ct-smallbuffers for 64 MiB devices

Compile-tested: ramips-mt76x8
Runtime-tested: ramips-mt76x8
2020-01-29 22:36:23 +01:00
Andreas Ziegler a0926f64bb docs: supported devices: clarify version numbers of Netgear EX61x0 2020-01-28 01:04:18 +01:00
Nudelsalat b01327b5d6 ramips-mt7621: add support for Netgear EX6150 2020-01-26 22:54:34 +01:00
Steffen Förster 79ca7a7baa ramips-mt7620: add support for tp-link archer c20 v1 (#1866)
Specification:
- MediaTek MT7620A (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 5x 10/100 Mbps Ethernet
- 2x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- 8x LED (GPIO-controlled*), 2x button, power input switch
- 1 x USB 2.0 port
2020-01-20 23:26:04 +01:00
Martin Weinelt 055a2337aa
contrib/ci: fix commenting in Jenkinsfile (#1919) 2020-01-18 19:52:50 +01:00
lemoer b25a05eec4 contrib/ci: add build dependency versioning (#1915) 2020-01-18 19:32:00 +01:00
Jan Alexander c30a022e94 ramips-mt76x8: add support for TP-Link TL-WA801ND v5 2020-01-18 11:15:17 +01:00
David Bauer 0b6b2be4fe modules: bump OpenWrt
e18c87ef45 ramips: fix wps leds/btn for TP-Link TL-WA801ND v5
455ba76bf9 hostapd: cleanup IBSS-RSN
dd4d49dcc1 cryptodev-linux: remove DEFAULT redefinition
44b37774f9 mac80211: fix a page refcounting issue leading to leaks/crashes in rx A-MSDU decap
a3b6ffe01b mac80211: fix sta TID stats leak on a few nl80211 calls
25e1afb9e1 ucert: update to version 2019-12-19
fe197b8b09 ramips: mt7621: disable images for gehua_ghl-r-001
08d9828b76 ramips: fix leds for TP-Link Archer C20 v4
fd28ef59db ath79: add SUPPORTED_DEVICES for TP-Link TL-WR841N/ND v9 to v12
7a0d9b2eea ath79: add support for TP-Link TL-WR841N/ND v12
bd3eb071fd ath79: add support for TP-Link TL-WR841N/ND v10
19ff3f5105 ath79: add support for the TP-LINK CPE220 V3
44c827215d ethtool: fix PKG_CONFIG_DEPENDS
eb15634541 OpenWrt v19.07.0: revert to branch defaults
aca39acedf OpenWrt v19.07.0: adjust config defaults
a3ffeb413b ramips: Fix sysupgrade for Xiaomi mir3g
f58705b77e dnsmasq: Fix potential dnsmasq crash with TCP
54711e528d x86: fix missing led variable warning during boot
abb0665bec ca-certificates: provide ca-certs by both ca-certificates and ca-bundle
e9929ebeea ramips: Fix sysupgrade for Xiaomi mir3g
dc399c4e12 ramips: remove duplicate dts nodes of MediaTek LinkIt Smart 7688
a5653ec87e package: remove accidentally added symlink
6395ac4126 fstools: update to latest Git HEAD
f3439c4019 procd: update to version 2020-01-04
64c45d95d6 ubus: update to version 2019-12-27
04fd5e22b2 libubox: update to version 2019-12-28
bf99f79200 base-files: sysupgrade: exit if the firmware download failed
3140d38042 base-files: upgrade: add case to export_bootdevice
3c11032039 sunxi: Turn on CONFIG_PINCTRL_SUN4I_A10 for A20
3fc47dd443 wolfssl: bump to 4.3.0-stable
330046922b kernel: bump 4.14 to 4.14.162
084dfb8ebd kernel: bump 4.14 to 4.14.161

Compile-tested: ath79-generic
Run-tested: ath79-generic
2020-01-17 22:25:13 +01:00
Matthias Schiffer d3d2204e1a
Merge pull request #1879 from freifunk-gluon/respondd-cleanup
gluon-mesh-* respondd cleanup (part 1?)
2020-01-17 21:50:32 +01:00
Ruben Barkow-Kuder 7220c59661 docs: gluon-radv-filterd: enhance documentation with example (#1900) 2020-01-12 17:36:02 +01:00
Dark4MD fbb59cfd60 ramips-mt7620: add support for TP-Link Archer C20i 2020-01-10 02:37:54 +01:00
Steffen Förster c1ed710964 ramips-mt76x8: add support for TP-Link TL-WR902AC v3
TP-Link TL-WR902AC v3 is a pocket-size dual-band (AC750) router
based on MediaTek MT7628N + MT7650E.

Specification:
- MediaTek MT7628N/N (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 1x 10/100 Mbps Ethernet
2020-01-10 02:37:33 +01:00
lemoer 74bdf79be0 gluon-neighbour-info: use default port 1001 and default dest ::1 2020-01-10 00:13:37 +01:00
Dark4MD 19e0f7959e ramips-mt7620: add support for TP-Link Archer C50 v1 2020-01-09 00:53:21 +01:00
Dark4MD 13f16ed737 ramips-mt7620: add support for TP-Link Archer C2 v1 2020-01-08 19:12:34 +01:00
Manu.WTF bc5707340d docs: supported_devices: fix small typo
Just saw a small typo i made in the Xiaomi Mi Wifi Mini PR. This PR Corrects this.
2020-01-07 00:05:16 +01:00
Andreas Ziegler 726ac5b876 docs, README: Gluon v2019.1.1
(cherry picked from commit 239c379d066b73dfc84c60ff57ed5e37a1af30c6)
2020-01-06 23:41:45 +01:00
Andreas Ziegler 351f46a7db docs: add v2019.1.1 release notes
(cherry picked from commit c612dfbabb0a42eeefbd2c26e3b7e6abdbdfb2cb)
2020-01-06 23:39:52 +01:00
Dark4MD 0e1cc743d7 ramips-mt7620: remove broken flag for Xiaomi MiWifi Mini
WiFi driver is stable now.
2020-01-06 00:03:16 +01:00
David Bauer c3435607e1 generic: increase RootFS size when GLUON_DEBUG is enabled
This increases the size of the root filesystem when GLUON_DEBUG is
enabled. Otherwise, the filesystem is too small.

Closes #1907
2020-01-05 19:14:09 +01:00
David Bauer 72e99aa2ba ipq40xx-generic: add alias for Aruba Instant On AP11
The Aruba Instant On AP11 is the Aruba AP-303 with a stripped-down
firmware. Add an alias for the device to remove confusion about the
different naming.
2020-01-05 15:50:11 +01:00
David Bauer b6ec44d6af targets: remove ath10k-ct-smallbuffers
Remove the ath10k-ct-smallbuffers variant from the default
package-seleciton as it clashes with the QCA ath10k driver.
2020-01-05 00:21:29 +01:00
David Bauer b82686322d modules: bump OpenWrt
f8543adb14 mt76: update to the latest openwrt-19.07 version
bce5342fb6 mt76: fix incorrect firmware path
2020-01-04 22:48:22 +01:00
David Bauer 8df207c103 ipq40xx-generic: add support for Aruba AP-303 2020-01-04 01:43:10 +01:00
David Bauer e9dc28241e modules: bump OpenWrt
594f731e04 ramips: fix Archer C20i wireless MAC address
037a151c56 ramips: fix Archer C2 v1 5GHz MAC address
3e8b66e0da ramips: add system LED indicators for TP-Link C20i
80e0b97d07 ramips: convert TP-Link MT7620 boards to tpt trigger
a2e2c40b5e mt76: update to the latest openwrt-19.07 version
1f927bd2f0 ramips: fix inverted reset button for Ravpower WD03

Compile-tested: ramips-mt7621
Run-tested: ramips-mt7621
2020-01-03 20:50:59 +01:00
Andreas Ziegler 8d8634b78e docs: add v2018.2.4 release notes
(cherry picked from commit 1e66cd905773a6271c11f712ae9fd8cf7ce38e9b)
2020-01-03 00:52:01 +01:00
David Bauer ef95448702 modules: bump OpenWrt
7ab5dc77b2 ramips: add LED trigger for TL-WR902AC v3 WAN LED
ad4b939bd0 rt2x00: add throughput LED trigger
91dde4291c mac80211: fix build without CONFIG_PCI
30301dfcf0 mac80211: add patch to include local BSS rx time in survey information
da7dde8993 mac80211: add pcie apsm backport changes
62d5ece70b ramips: remove bogus ralink,mtd-eeprom with offset 0x4
94153971bb ipq40xx: use ath10k-ct-smallbuffers for 128 MiB devices
d13c6d078e kernel: bump 4.14 to 4.14.160
f80272dd9c kernel: bump 4.14 to 4.14.159
3030abfa7e ath79: use ath10k-ct-smallbuffers for 64 MiB devices
36057763fa ath10k-firmware: Add kmod-ath10k-ct-smallbuffers to depends
450b306e54 kernel: ath10k-ct: provide a build variant for small RAM devices
e50d44d985 fstools: update to latest git HEAD
6a151d6558 fstools: update to latest git HEAD
43c5927312 fstools: bump to version 2019-11-03
f7779d64ba fstools: update to latest Git HEAD
ab7386bd67 libubox: bump to version 2019-10-29
c34499a6e4 libubox: update to latest git HEAD
7203a58d7b kernel: remove LINUX_4_9 dependency of kmod-dax
0c07224b5a scripts/dowload.pl: add archive.apache.org to apache mirror list
4fba5dc103 kernel: fix *-gpio-custom module unloading
df45ef5436 cmake: Install host packages to lib instead of lib64
6351205d73 adb: fix for SuperSpeed devices
d2e87c7800 toolchain/gcc: Backport patch to fix unconditional MULTIARCH_DIRNAME
a7d880e830 toolchain/gcc: correct the check expr for newer clang
3a863da268 lantiq: fix phys led
18107f4481 uhttpd: reset PKG_RELEASE
414ea30927 uhttpd: update to latest Git HEAD
27eea24921 ar71xx: fix MAC address setup for TL-WDR4300 board
9bdd3d39ad ath79: fix MAC address setup for TP-Link TL-WDR3600/TL-WDR4300
08c850f046 ramips: fix USB LED for Belkin F9K1109v1
2c16044ccf mac80211: brcm: add support for BCM4359 SDIO chipset
c0f2905fa9 mac80211: brcm: backport 5.5 and 5.6 kernel patches

Compile-tested: ramips-mt7621
Run-tested: ramips-mt7621
2020-01-02 03:59:13 +01:00
Matthias Schiffer 7302fbf5ab Jenkinsfile: fix parallel step declaration 2019-12-30 02:36:08 +01:00
Matthias Schiffer 4de6f3ff36 Jenkinsfile: fix indentation 2019-12-30 02:36:08 +01:00
Martin Weinelt 2c071657ac
contrib: Dockerfile: add shellcheck 2019-12-29 15:54:27 +01:00
Jan-Tarek Butt 600e67350a
CI Jenkinsfile: add parallel task for shellcheck lint 2019-12-29 15:19:05 +01:00
Jan-Tarek Butt 6024c7a22f
CI Jenkinsfile: use taps and fix fileformat 2019-12-29 15:19:05 +01:00
Jan-Tarek Butt a2ced263ab
build: add make targets lint, lint-sh, lint-lua
[Matthias Schiffer: minor script improvements]
2019-12-29 15:18:50 +01:00
David Bauer 25a4f3b816 docs: add mt76 to supported chipsets (#1870)
The docs previously only listed ath9k and ath10k based chipsets as fully
supported by Gluon, however we also support mt76.
2019-12-28 18:40:33 +01:00
nrbffs 920aa1a21d
patches/openwrt: add set TARGET_ROOTFS_PARTSIZE to make combined image fit in 128MB 2019-12-28 18:06:43 +01:00
Matthias Schiffer 8446772d07
gluon-site: add missing build depends on gluon-web/host 2019-12-23 12:02:37 +01:00
David Bauer d428e53457 mpc85xx-p1020: add support for Enterasys WS-AP3710i 2019-12-23 01:54:23 +01:00
Dark4MD fb191ab8e4 lantiq-xway: add support for AVM FRITZ!Box 7320, 7330 and 7330 SL 2019-12-19 22:45:06 +01:00
David Bauer 24a98428d4 modules: bump OpenWrt
3243523c46 ath79: migrate LED paths of TL-WDR4300 board
d0a71a89e1 malta: remove CONFIG_LEGACY_PTY from kernel config
9e6fb4463b sunxi: remove CONFIG_LEGACY_PTY from kernel config
4aebbaeac1 layerscape: remove CONFIG_LEGACY_PTY from kernel config
a2ac5b3a97 kirkwood: remove CONFIG_LEGACY_PTY from kernel config
a467f39e55 at91: disable legacy PTYs and virtual terminals
a77d4bc3a5 mpc85xx: remove CONFIG_LEGACY_PTY from kernel config
40a7e761a0 uml: remove CONFIG_LEGACY_PTY from kernel config
852ec97e1c oxnas: disable legacy PTYs and virtual terminals
1f1867dd9b odhcpd: optimize syslog priority values
03c93679b4 lantiq: remove redundant WiFi LED on FRITZ!Box 7320
795df80917 mpc85xx: add support for Enterasys WS-AP3710i
3959f11005 glibc: update to latest 2.27 commit (BZ #2503, BZ #2504)
a50c2190d3 glibc: backport fix for regexec buffer read overrun
929c6d733a glibc: update to latest 2.27 commit (BZ#23637)
e8e09c5893 glibc: update to latest 2.27 commit (BZ #24228, BZ #24744, BZ #24699)
6e24df296c ath79: add support for TP-Link TL-WDR4300 v1 (IL)
52c9f95178 ramips: allow JCG_MAXSIZE in kiB in Build/jcg-header
e33a123140 brcm47xx: add switch configuration for WNR3500L
d1d84da1c3 ramips: fix number of LAN Ports for Mikrotik RBM33G
fa700ed714 ramips: fix switch port order for TP-Link Archer C20i
0bb4733e67 ath10k-firmware: update Candela Tech firmware images
c3cc419cc6 kernel: bump 4.14 to 4.14.158

compile-tested: ath79-generic
run-tested: ath79-generic
2019-12-18 00:13:04 +01:00
Jan-Tarek Butt dd76e0898d
treewide: solve shellcheck warnings 2019-12-14 18:35:11 +01:00
Tata 4e070312f9 docs: features/multidomain.rst: use gluon-reload instead of reboot (#1888) 2019-12-12 13:08:27 +01:00
Dark4MD 40ef70534d lantiq-xrx200: add support for AVM FRITZ!Box 7360 (v1, v2) and 7360 SL 2019-12-12 12:47:41 +01:00
Dark4MD 510bcd4ab4 lantiq-xrx200: add support for AVM FRITZ!Box 7362 SL
Flash instructions in the OpenWRT Commit: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=eae6cac6a30b95bef04d033ed8a303b7e35a078b
2019-12-11 19:42:44 +01:00
Matthias Schiffer ed2479bd40
docs: add revision number to TP-Link RE450 support list entry
We only support v1, not v2 or v3.
2019-12-07 21:40:01 +01:00
David Bauer ea34bc757c docs: clarify WAN port on LAN-only devices
At the December 2019 review day, the behavior for LAN only devices was
defined. Such devices will use each LAN port as WAN.
2019-12-06 18:29:19 +01:00
lemoer 82082d8c62 gluon-status-page: add gateway_nexthop to statistics 2019-12-05 17:00:59 +01:00
Malte Möller aa679bc6e9 ar71xx-generic: add alias for wndr3800chmychart
a regular Netgear WNDR3800
but identifies itself as wndr3800chmychart.
2019-12-04 11:52:15 +01:00
Simon Terzenbach bb2744f0d8 ath79-generic: add support for devolo WiFi pro 1200e 2019-12-03 19:47:58 +01:00
Simon Terzenbach bdfa4b71ff ath79-generic: add support for devolo WiFi pro 1750e 2019-12-03 19:47:39 +01:00
Martin Weinelt 580b7357d5 Revert gluon-status-page gateway_nexthop changes
This reverts commits
- caf2dd037b.
- 07ebac6a49
- 55eff45f96

I accidentally pushed these commits as I had them lying around on a
dirty checkout I did testing on.
2019-12-01 16:22:34 +01:00
Martin Weinelt e7d9a2749b modules: update OpenWrt
d2d12346e8 mac80211: unify setup of iw htmode for mesh and adhoc
06bf1a9b67 ucert: update to latest git HEAD
d74526c1c5 OpenWrt v19.07.0-rc2: revert to branch defaults
628e996928 OpenWrt v19.07.0-rc2: adjust config defaults
db8345d8e4 generic ar8xxx: increase VLAN table for AR83x7
cde70954ef busybox: add glibc dependency for vi regex option
a4d798e8dd usign: Activate LTO compile option
1fc05c3115 swconfig: Activate LTO compile option
5cb845ebfe mtd: Activate LTO compile option
c38074de92 ramips: disable ZyXel Keenetic by default
432a349761 ramips: disable WR512-3GN 4MB variant by default
67aca5f0ae ramips: disable A5-V11 by default
eb836ea8e9 ar71xx: disable TP-Link TL-WA855RE by default
59ef47ae2c brcm47xx: disable Linksys E1000 v1 by default
7232d9247e ramips: disable TP-Link TL-WA750RE by default
531ab59804 ar71xx: disable TP-Link TL-WA850RE by default
634db7930a ramips: disable TP-Link TL-WR840N v5 by default
6a124efb99 ramips: disable Sitecom WL-351 by default
2607c02ed5 ramips: disable D-Link DIR-645 by default
02fc43b4b4 ramips: disable D-Link DIR-300 B5/B6/B7 by default
0686418338 ar71xx: disable Netgear WNR2000v4 by default
6af348f6a1 ar71xx: disable On Networks N150R by default
c65f09b641 ar71xx: disable TP-Link TL-WA850RE v2 by default
1793baee46 ar71xx: disable Netgear WNR612 v2 by default
4b759caf51 ramips: disable ASUS RT-N10+ B1 by default
953d9c384f kernel: bump 4.14 to 4.14.156
7581a7bebc config: kernel: fix typo in HFSPLUG_FS_POSIX_ACL

Compile-tested: mpc85xx-generic, ipq40xx-generic
Runtime-tested: ipq40xx-generic (GL-B1300)
2019-12-01 16:17:30 +01:00
Martin Weinelt a8beae5189 Merge remote-tracking branch 'lemoer/pr_status_page_gateway_nexthop' 2019-11-27 12:37:50 +01:00
Matthias Schiffer 06476c2496
modules: update OpenWrt and Gluon packages
OpenWrt:

03b412db2e3f luasrcdiet: add package (moved from luci-base package)
b98dcdc34273 cifsd-tools: update to git (2019-11-25)
a45dd8850244 adblock: update 3.8.12
88c37cb6fe2d transmission: Disable webseeding
e8438eb67ab8 transmission: Fix tracker issue with some firewalls
4a821376132a php7: Update to version 7.2.25
36358e7e382c php7: mark /etc/config/php7-fastcgi as conffile
3be4577ee916 php7-mod-xmlreader: add conditional dependency to php7-mod-dom (fixes #10201)
7aadc713003a php7: bump to 7.2.23
fc337287241f python-pyopenssl: Update to 19.1.0

Gluon:

208d9ccd14ba Revert "luasrcdiet: add package (moved from luci-base package)" and following
2019-11-26 20:01:42 +01:00
Matthias Schiffer f276bd3bb4
modules: update OpenWrt base
1859391e9ed2 uboot-envtools: ath79: add support for YunCore XD4200 and A782
45c9923edfeb ath79: add support for YunCore XD4200 and A782
83a18aefbdea ath79: add support for YunCore TFTP image generation
449433d13104 ath79: Add support for TP-Link Archer C60 v2
70233e3afe40 ath79: Add support for TP-Link Archer C60 v1
a2d9de21b841 base-files: config_generate: split macaddr with multiple ifaces
3a5e28bd266b ar71xx: ubnt-(xm,xw): add rssileds package
1cb763c559b8 ath79: add PoE passthrough switch for Ubiquiti Nanostation (XM/XW)
a0897f8a4663 uboot-envtools: ramips: add support for ALFA Network Quad-E4G
71469caa0ab4 ramips: add support for ALFA Network Quad-E4G
939dfe61ed8a uboot-envtools: ramips: add support for ALFA Network R36M-E4G
c515cd7c348c ramips: add support for ALFA Network R36M-E4G
7a62e909b286 ramips: support dual image feature on ALFA Network boards
ee71837e3857 ramips: refresh all subtargets kernel configs
3806899a5015 ramips: use upstream RAW_APPENDED_DTB instead of our OWRTDTB
2019-11-26 19:57:52 +01:00
Simon Terzenbach 04421f60ac ath79-generic: add support for devolo WiFi pro 1750x 2019-11-26 11:57:31 +01:00
Matthias Schiffer ba42412527
Merge pull request #1877 from christf/respondd
gluon-mesh-babel: Fix packets leaving wrong interface
2019-11-24 13:16:19 +01:00
Christof Schulze d5b08fe6c9 gluon-mesh-babel: depend on gluon-mmfd 2019-11-24 12:31:04 +01:00
Christof Schulze 2389679380 gluon-mesh-babel: use babel 1.9.0 feature to set pref-src on installed routes 2019-11-24 12:31:04 +01:00
Matthias Schiffer ecc29e0b09
gluon-mesh-batman-adv: further cleanup of respondd provider
- Split into multiple files
- Avoid alloca()
2019-11-24 12:04:58 +01:00
Matthias Schiffer 0f1fa243f7
Move common code from gluon-mesh-babel and -batman-adv respondd providers to gluon-respondd
In addition this PR contains:
- split of gluon-respondd provider into multiple source files
- minor additional cleanups in gluon-mesh-babel respondd provider
  (untested, as the babel respondd provider already doesn't compile prior
  to these changes...)
2019-11-24 12:04:58 +01:00
Matthias Schiffer f34b302b22
gluon-mesh-babel: remove explicit ubus socket specification, convert timeout to expected units 2019-11-24 12:04:58 +01:00
lemoer 55eff45f96 gluon-status-page: prettify nextnode when node is offline 2019-11-24 02:38:55 +01:00
lemoer 07ebac6a49 gluon-status-page: show gateway_nexthop and gateway in one table row 2019-11-24 02:12:47 +01:00
lemoer caf2dd037b gluon-status-page: add gateway_nexthop to status page statistics 2019-11-24 01:19:17 +01:00
Matthias Schiffer b4101e54e0
gluon-mesh-batman-adv: remove remaining deprecated sysfs usage
While we're at it, also slightly optimize proto_gluon_bat0_renew.
2019-11-24 01:10:59 +01:00
Matthias Schiffer f715a58fdb
gluon-mesh-batman-adv: remove obsolete no_rebroadcast setting 2019-11-24 00:53:54 +01:00
Matthias Schiffer abf46c5f42
gluon-mesh-babel: fix compilation of respondd provider
Adjust for changed libbabelhelper API.
2019-11-23 23:36:33 +01:00
Matthias Schiffer 00b46f0662
modules: update OpenWrt base
f97d2351e2c1 ath79: remove ath10k drivers from Archer C7 v1 profile
7c321e00dd19 kernel: nf_conntrack_rtcache: fix WARNING on rmmod
2a2f9ffe81ce kernel: nf_conntrack_rtcache: fix WARNING on forward path
2019-11-23 22:44:39 +01:00
Matthias Schiffer 4ee5f3590b
gluon-respondd: fix format string type mismatches 2019-11-23 18:56:44 +01:00
Matthias Schiffer b69b9043f4
modules: remove LuCI feed 2019-11-23 17:28:18 +01:00
Matthias Schiffer 43b1368b70
gluon.mk: depend on luasrcdiet/host instead of luci-base/host
We don't use anything else from luci-base anymore.
2019-11-23 17:28:17 +01:00
Matthias Schiffer 23fd9cd0f9
gluon-web: import po2lmo tool from luci-base
The code is slightly cleaned up to fix compiler warnings.
2019-11-23 17:28:17 +01:00
Matthias Schiffer 911ed5263d
Refresh OpenWrt package patches 2019-11-23 17:28:17 +01:00
Matthias Schiffer b97e355e14
modules: update Gluon packages
83dbdbcb7b6f luasrcdiet: update Makefile to openwrt/packages version
0371952ab0fa luasrcdiet: add package (moved from luci-base package)
dced4023f5a2 micrond: move to openwrt packages feed
2019-11-23 17:28:17 +01:00
Matthias Schiffer 2864799c37
modules: update OpenWrt packages
5b2010ce80af samba4: add UCI option 'disable_async_io'
e6564936ecac cifsd: update to git (2019-11-22)
fd254a04c857 bind: update to version 9.14.8 (security fix)
db06f7ee2a9d nextdns: Update version 1.1.5 + add per host config option
d1bab6ef8aa2 nnn: Add a new package
52515c819e75 unbound: Update to version 1.9.5
ff0e3bf71980 cifsd: add package cifsd [backport]
ffbe240f0fa5 knot: update to version 2.9.1
6106619bdef2 travelmate: update 1.5.3
2969a1842d10 django: bump to version 1.11.26
58dd5a94ba6f adblock: update 3.8.11
f28dfa39ea8d haproxy: Update HAProxy to v2.0.9
a907174c3ab2 prometheus-node-exporter-lua: bump version
928915f4a62b prometheus-node-exporter-lua: an unavaliable wifi interface may have stopped the scraper from functioning
0e69b1473372 prometheus-node-exporter-lua: respawn the process
56e0861f7766 prometheus-node-exporter-lua: add a config reload trigger
ee353e6036c7 prometheus-node-exporter-lua: switch config to openwrt interface names
6c42cc8f6df7 nextdns: update to 1.1.3
87e9963eba9f dcwapd: Update init script to use procd
1f417d7ed01f python-zope-interface: Update to 4.7.1, refresh patch
87ccd3ddbd1f python-twisted: Update to 19.10.0, refresh patches
7504b410a677 python-pyasn1: Update to 0.4.8
1feef55c9423 acme: Add dependency on luci-compat for luci-app-acme
a25797e58d95 acme: Update to upstream 2.8.3
bbaed850a3ce acme: Log acme.sh command invocation
d71c1fbe0d7c acme: depends on gnu-wget
b151af8f45ca acme: Update to 2.8.1
71e06448ede2 wget: provides gnu-wget
0031c874683a ttyd: update to 1.5.2 and add init script
56a8ebb769a3 ttyd: update to 1.5.1
f00d0a018525 boost: Fix fiber compilation for mips
6371fc55d98d boost: Remove several host libraries
6002ef66b5fe boost: Remove thread dependency from context
35a9ef61ea06 nextdns: add DNS over HTTPS with NextDNS integration
c1575ecf5cf8 banip: update 0.3.10
0f67fc96d855 mwan3: sync PKG_RELEASE number and PKG_VERSION with master
62c9688adcd3 mwan3: Add missing IPs to wanb
aa5a583869e7 mwan3: update version to 2.8.0
e842ea394197 mwan3: add netifd up info to mwan3 ubus status output
f20b96e4a5c4 mwan3: add enabled info to mwan3 ubus status
0c25f7a51c1b mwan3: add interface uptime netifd value to ubus mwan3 status output
3371703487ac mwan3: rename downtime to offline
aa05eb448b76 mwan3: rename uptime to online
2a64b3a44090 collectd: remove the patch scaling ping_droprate from 0-1 to 0-100
84756e7f60ac mwan3: Fix json_load fails with some data
168c2928f96f io: Add TARGET_LDFLAGS to fix PIE
0441927b246b io: Fix printing 4 bytes memory on 64 bit systems
1f082d84dd7a io: Open /dev/mem with O_SYNC for uncached access
39001de7b042 pcre: remove unnecessary dependency on C++ lib
e91e3fd6ad87 ntpd: Fix libevent dependencies
daebf4aba9bb python-six: Update to 1.13.0
aa4c5e7de6cf Revert "Revert "perl-www-curl: curl 7.66.0 compatibility""
c75917c8a927 banip: update 0.3.9
49e57eadb3d6 banIP: update 0.3.8
1fc8c2c4eaed adblock: update 3.8.10
e0ca91a2fe48 knot: update to version 2.9.0
734a005187dd knot: update to version 2.8.4
145bd2d19eaf dovecot: update to 2.3.8
f7cc8ad37b82 libedit: update to 20191025-3.1
50dfcd79f543 dnscrypt-proxy2: Update to version 2.0.29
a6f026ff5b87 python-zipp: fix python-more-itertools dependency
0faf7bfcc23e python-zipp: add new package
e9748d34f5ab bind: Update to version 9.14.7
91da56a94211 perl: fixed host compilation of static perl on MacOS
bb00671ad423 libmaxminddb: update to version 1.4.2
d60dbbed2c18 clamav: Update to version 0.101.4
c58d563120d1 haproxy: Rework hotplug script for HAProxy
98a4cd0fd83f haproxy: Update patches for HAProxy v2.0.8
ec6cd9b9c395 Revert "perl-www-curl: curl 7.66.0 compatibility"
522aea0cadf5 Revert "haproxy: Update patches for HAProxy v2.0.8"
22bcd9e78467 Revert "haproxy: Rework hotplug script for HAProxy"
7a1f32f704e8 banip: update 0.3.7
848589d758f0 banip: update 0.3.6
7401166ea88b banip: update 0.3.5
be9e82b01710 travelmate: update 1.5.2
fff155b2bf7f adblock: update 3.8.9
bc89112c27bb adblock: update 3.8.8
32a8209c55c7 samba4: update to 4.9.15
349d73b2c39d sqm-scripts: Add required new depends for luci-app-sqm
5c51d658cf52 sqm-scripts: Bump to v1.4.0
94c4c1304a58 libarchive: update to version 3.4.0
6d5e468f2d12 circleci: skip compiling packages not enabled
ef4de15df800 build: only install changed packages
3f3c613ac5bb btrfs-progs: Update to version 5.3.1
bfcdf4e202d3 syslog-ng: Update to version 3.24.1
6f6c5d17c0f9 youtube-dl: Update to version 2019.10.29
af20f836e000 youtube-dl: Update to version 2019.10.22
e31921f2af1c net: seahub: remove inexistent deps
e1d9652edc9d python-cffi: Update to 1.13.2
07835fc26e2b golang: Update to 1.13.4
3d4c934584df sispmctl: Reduce ipk size
248c3d01faed sispmctl: Update to 4.2
c7bd76919fb4 libgphoto2: libgphoto2_port.pc needed by dev
22ab1fcefe47 telldus-core: Doxygen in-file was not found.
42c85958fdc9 treewide: Replace MD5SUM with HASH
5bc62e00aa8f vim/host: fix build failures
c9ee50d19009 haproxy: Rework hotplug script for HAProxy
76a2da3fd413 haproxy: Update patches for HAProxy v2.0.8
58ed21040c1f python,python3: Add PYPI_SOURCE_NAME to pypi.mk
c8113fcd05d4 google-authenticator-libpam: fix install section
866b42c60ea6 python,python3: Add pypi makefile
4900b2cb2d7a adblock: update 3.8.7
0d146c23175f https-dns-proxy: implement dnsmasq integration
807c557cf9b7 django: bump to version 1.11.25
4574e8fcb98a python-cffi: bump to version 1.13.1
2019-11-23 17:28:17 +01:00
Matthias Schiffer 154567dfdd
openwrt: Revert "kernel: nf_conntrack_rtcache: fix cleanup on netns delete and rmmod" 2019-11-23 17:28:17 +01:00
Matthias Schiffer 51a36abc6f
modules: update OpenWrt base
15ce616c2de7 build: add PKG_SOURCE_URL_FILE support
436dbf12aa73 kernel: nf_conntrack_rtcache: fix cleanup on netns delete and rmmod
b177b180bbdb mac80211: add default value for noscan
e68d589e7b8c e2fsprogs: Fix CVE-2019-5094 in libsupport
2019-11-23 14:34:31 +01:00
Matthias Schiffer c3e764d1df
modules: update OpenWrt base
6160f773fef2 ipq40xx: add support for AVM FRITZ!Repeater 1200
63b1e8f8d226 ipq-wifi: add AVM FRITZ!Repeater 1200 bdf
496489ea95af uboot-fritz4040: update to latest HEAD
e30ca0d90a98 mac80211: update to version 4.19.85
b1ef0e443720 layerscape: Fix kernel patch
ad0463c2e875 kernel: Add missing configuration option
b0adf79c9e7c firewall: update to latest Git HEAD
b41619592792 firewall: update to latest git HEAD
3685f86cefac cns3xxx: use proper macros for defining partition regions
db345220b485 kernel: bump 4.14 to 4.14.155
538ca42ddad8 wireless-regdb: fix build when python2 from package feeds exists
2751c5c75219 wireless-regdb: fix patch fuzz
d6ecadb05c2b wireless-regdb: fix Makefile indentation
0a4071b550eb wireless-regdb: set PKGARCH:=all
e8d528af7e91 wireless-regdb: prefer python provided by make variable
53d8de0207e8 wireless-regdb: Make it build with python2
f2ef9b4feafe wireless-regdb: update to 2019.06.03
8fac0b398c34 ar71xx: fix buttons for TP-Link TL-WDR4900 v2
3c65c47ce6fd ar71xx: fix LED setup for TL-WDR4900 v2
b6c80f85cb7b ramips: set uImage name of WeVO 11AC NAS and W2914NS v2
e945c43142ab ar71xx: fix MAC address setup for TL-WDR4900 v2
8a21bc36229d ar71xx: fix MAC addresses for Archer C5 v1, C7 v1/v2, WDR4900 v2
2019-11-22 22:45:19 +01:00
David Bauer 4e3f1053da ath79-generic: add support for devolo WiFi pro 1750c (#1875) 2019-11-22 01:45:00 +01:00
Simon Terzenbach ee917a7ea9 ath79-generic: add support for devolo WiFi pro 1750i 2019-11-20 23:17:21 +01:00
David Bauer e30b0092bb ath79-generic: add missing ath10k packages
The devolo WiFi pro 1200i lost it's ath10k package definitions while
rebasing, thus selecting the wrong package set.

Fix it by adding the correct firmware and driver.
2019-11-20 16:21:28 +01:00
Martin Weinelt 9b4d59c5e0 modules: update OpenWrt
ca3339c0fc ipq40xx: fix build error
75d11f665c mac80211: backport upstream fixes
dd284c6c57 toolchain/gcc: bump to 7.5.0
3c5c49af8b kernel: bump 4.14 to 4.14.154
17d8e47d35 mac80211: Adapt to changes to skb_get_hash_perturb()
67957cd807 mac80211: brcmfmac: fix PCIe reset crash and WARNING

compile-tested: ipq40xx-generic, ath79-generic
2019-11-20 14:18:19 +01:00
David Bauer 3ca6abe7b1 ath79-generic: add support for OCEDO Raccoon (#1869) 2019-11-20 13:46:18 +01:00
David Bauer fe41ba7121 ath79-generic: add support for devolo WiFi pro 1200i (#1871) 2019-11-20 13:39:22 +01:00
Matthias Schiffer 02cbe0b794
kernel: refresh patches 2019-11-19 23:43:37 +01:00
Matthias Schiffer 0374526a8e
kernel: remove obsolete kernel 4.9 patch files 2019-11-19 23:36:20 +01:00
Manu.WTF 62bd916b76 lantiq-xrx200: add support for AVM FRITZ!Box 7412 (#1859) 2019-11-18 22:54:50 +01:00
David Bauer fd3fa7728a ipq40xx: add support for AVM FritzRepeater 1200 2019-11-18 22:23:16 +01:00
Martin Weinelt 7b3cb465de modules: update OpenWrt
a8b293598f ath79: fix sysupgrade from ar71xx for WNDR3700 V2 and WNDR3800(CH)
fe82c71964 ath79: include rssileds package for ubnt devices with LEDs
960de44fa9 ramips: assign correct key-code to wps buttons
b50177d151 ath79: remap D-Link DIR-859 A1 WPS button to WPS
1bd280b1ef ramips: disable D-Link DIR-300 B1 by default
a1ff175dbf ramips: rt3833: fix build breakage
60f41c6c9e ramips: add usb-ledtrig-usbport to DEVICE_PACKAGES of CY-SWR1100
079b202749 ramips: fix MAC address setup for Samsung CY-SWR1100
2117f632e3 kernel: fix typo in fb-sys-fops autoload
a6e7f68c7f hostapd: add IEEE 802.11k support
f6111dbeed hostapd: Add mesh support for wpad full
0e85b638f7 hostapd: use getrandom syscall
81908622a9 hostapd: Remove unneeded patch
90a0daf4fe hostapd: use config option CONFIG_NO_LINUX_PACKET_SOCKET_WAR
5e8d1b52da hostapd: Update to version 2.9 (2019-08-08)
80b58a9db6 hostapd: Update to version 2.8 (2019-04-21)
e1854815aa hostapd: mirror ieee80211w ap mode defaults in station mode
3e9b3d0ba9 hostapd: fix OWE settings in client mode
eba68342f9 hostapd: declare struct wpa_bss early
0fcf02d0a5 hostapd: revert signature change in patch
047329273b hostapd: adjust removed wolfssl options
d5f509861e base-files: add /usr/share/libubox/jshn.sh to sysupgrade stage2
d1fbaa3fbc ath79: update uboot-envtools for Netgear WNR routers
ab29ffbb10 ath79: fix SUPPORTED_DEVICES for TP-Link TL-WR1043ND v3
3d840ee798 ar71xx: fix tl-wdr3320-v2 upgrade
c9e5979dbe ar71xx: update uboot-envtools for Netgear WNR routers
6ac1aa1957 kernel: bump 4.14 to 4.14.152
5e1864da33 firmware: intel-microcode: bump to 20190918
8cd24d3256 firmware: intel-microcode: bump to 20190618
a6b30f962c firmware: intel-microcode: bump to 20190514
cc598c91c1 ath79: fix identifier for Nanostation M in ath9k caldata extraction
42aa51a898 rpcd: update to latest Git HEAD
6cabbe9646 wolfssl: update to v4.2.0-stable
9be3501dc3 wolfssl: allow building with hw-crytpo and AES-CCM
58db9bee0f ustream-ssl: update to latest Git HEAD
2a09f43ae6 ustream-ssl: Update to latest git HEAD
d3e11e8ad8 mac80211: Fix dependencies of kmod-rsi91x-usb
69dcd89dcd strace: Fix build on PowerPC
0803b62fc6 uboot-envtools: Add TARGET_LDFLAGS to fix PIE and RELRO
963cee15e8 xfsprogs: Fix compilation with newer musl

compile-tested: ramips-rt7621, mpc85xx-generic
runtime-tested: ramips-rt7621 (D-Link DIR-860L B1)
                mpc85xx-generic (TP-Link WDR4900v1)
2019-11-18 17:32:37 +01:00
David Bauer 8df38311fa ramips-mt7621: add support for Netgear R6220 2019-11-10 17:11:57 +01:00
David Bauer e9da57665c modules: bump OpenWrt
5d30ff1bc6 ramips: correct R6220 button flag
9834c3dae0 kernel: fix LED netdev trigger on interface rename
799de7c641 build: cleanup possibly dangling Python 3 host symlink
785d4f3efd build: fixup python SetupHostCommand to use python2
502c4a81d3 expat: Update to version 2.2.9
9943506816 tools/e2fsprogs: Update to version 1.45.4
569bec190c curl: bump to 7.66.0
5fc63ec8a4 ath79: disable building future NAND images for GL-AR300M/GL-AR750S
2b4d9b6850 mac80211 ath9k: force QCA953x clock to 25MHz
b3514e3569 ar71xx: improve support for TP-Link CPE510 v2
0c9be4f76b gitignore: ignore patches in OpenWrt root directory
112df2ac56 OpenWrt v19.07.0-rc1: revert to branch defaults
88bff692a5 OpenWrt v19.07.0-rc1: adjust config defaults
c4fdb377a2 Revert "ipq806x: fix EA8500 switch control"
d7ea380363 ath10k-firmware: update Candela Tech firmware images
c5d5cdb759 ustream-ssl: backport fix for CVE-2019-5101, CVE-2019-5102
439ac8104b mac80211: rt2x00: backport upstream patches
2019-11-10 17:11:57 +01:00
David Bauer b8defb1c08 ath79-generic: limit line length
This limits the line-length for the ATH10K package
definitions.

Fixes f49813b5
2019-11-09 12:13:22 +01:00
David Bauer f49813b52f ath79-generic: remove unused package definitions
This removes the unused package definitions, as otherwise the Lua linter
will complain.
2019-11-09 11:30:22 +01:00
Steffen Förster 50db7654fc ath79-generic: add support for TP-Link Archer C6v2
Hardware specification:
- SOC: Qualcomm QCA9563 @ 775MHz
- Flash: GigaDevice GD25Q64CSIG (8MiB)
- RAM: Zentel A3R1GE40JBF (128 MiB DDR2)
- Ethernet: Qualcomm QCA8337N: 4x 1Gbps LAN + 1x 1Gbps WAN
- Wireless:
  - 2.4GHz (bgn) QCA9563 integrated (3x3)
  - 5GHz (ac) Qualcomm QCA9886 (2x2)
- Button: 1x power, 1x reset, 1x wps
- LED: 6x LEDs: power, wlan2g, wlan5g, lan, wan, wps
- UART: There's no UART header on the board
2019-11-09 11:15:34 +01:00
bobcanthelpyou 4b962f24d1 treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
Matthias Schiffer 0ff396b213
ath10k-ct: drop memory reduction patch
With the removal of IBSS support, Gluon doesn't use ath10k-ct anymore, so
we can drop this patch.
2019-11-08 21:10:11 +01:00
David Bauer 18dd76471c ar71xx-generic: add dedicated UniFi AC LR image
As upstream now has model detection for the Ubiquiti UniFi AC LR, we
need to provide an autoupdater image matching the expected filename.

Closes #1834
2019-11-08 18:47:07 +01:00
Matthias Schiffer f700fb26d8
Merge pull request #1858 from freifunk-gluon/drop-ibss
Drop IBSS support
2019-11-08 15:26:39 +01:00
Matthias Schiffer ee0756a70b x86: switch to non-CT ath10k module
It seems the CT variant was used for 11s meshing on x86 by accient. Switch
to non-CT to match the other targets.
2019-11-07 19:48:16 +01:00
Matthias Schiffer ed8cd9c0f7 docs: update for reflect dropped IBSS support 2019-11-07 19:48:16 +01:00
Matthias Schiffer 335fae1025 build: drop GLUON_WLAN_MESH variable 2019-11-07 19:48:16 +01:00
Matthias Schiffer 02c7503f74 gluon-mesh-batman-adv: remove MTU workaround for VLAN-on-WLAN
We don't support VLANs on 11s interfaces, so the workaround can be dropped
with the IBSS support.
2019-11-07 19:48:16 +01:00
Matthias Schiffer 066158a27b gluon-core: drop IBSS support 2019-11-07 19:48:16 +01:00
Matthias Schiffer 2fdb3080ce
gluon-web-wifi-config: drop IBSS enable setting 2019-11-06 22:03:51 +01:00
Matthias Schiffer 2a009a8328
hostapd: drop obsolete channel selection patch
As of OpenWrt commit b3d8b3ab8e6f ("mac80211: set noscan=1 if sta/adhoc/
mesh interfaces are present"), the issue workarounded by this patch cannot
occur anymore.
2019-11-06 22:02:04 +01:00
Misanthropos b4c75a9879 lantiq-xway: add support for AVM FRITZ!Box 7312 2019-11-06 18:58:45 +01:00
Misanthropos b359ed1887 gluon-setup-mode: add DECT button to enter setup mode
many AVM devices do not have RESET/WPS buttons. So use the otherwise unused DECT/PHONE button to boot the device into setup mode.

This patch allows to enter the setup-mode by pressing the phone button
(often labeled as DECT) in addition to WPS and reset button.

This patch is necessary to allow supporting boards without a WPS and reset
button (e.g. AVM FRITZ!Box 7312).
2019-11-06 14:59:23 +01:00
David Bauer 7f858b1c6d ipq806x-generic: remove BROKEN flag for target and NETGEAR R7800
This commit removes the broken flag for the ipq806x-generic target,
as the first device (NETGEAR R7800) now has full support in Gluon
2019-11-05 20:24:05 +01:00
David Bauer 4cb2bc481d modules: bump OpenWrt
d6d9f58290 ipq806x: use switch trigger for WAN LED on NETGEAR boards
bee28adf6e hostapd: enable PMKSA and OK caching for WPA3-Personal
5d6308ecae scripts/dl_github_archive.py: fix python3 str, bytes confusion
2019-11-05 20:24:05 +01:00
Matthias Schiffer a3a8d962fc
gluon-web-node-role: fix node role list
Fixes: 4249d65af7 ("treewide: fix luacheck warnings")
Closes: #1851
2019-11-05 20:05:16 +01:00
David Bauer e3bdfeefa1 ipq806x: rename target to ipq806x-generic
This commit accounts for the target renaming which was done in upstream
commit 7407e723991 ("ipqx0xx: add Generic subtarget")
2019-11-04 17:22:46 +01:00
David Bauer 88e6bc5278 ipq40xx: rename target to ipq40xx-generic
This commit accounts for the target renaming which was done in upstream
commit 7407e723991 ("ipqx0xx: add Generic subtarget")
2019-11-04 17:22:46 +01:00
David Bauer b9bdcc7b69 modules: update OpenWrt
22c443c20c uboot-fritz4040: build with ipq40xx "generic" subtarget
7407e72399 ipqx0xx: add Generic subtarget
9b2a147cfe ramips: enable external amplifier for D-Link DIR-810L
e539dc2daa ath79: Clean up GL-AR300M DTS/DTSI inclusions
8f0deedc11 ramips: fix WiFi MAC addresses for D-Link DIR-810L
f051a967b8 libevent2: Update to 2.1.11
466d499d03 rpcd: update to latest Git HEAD
7f29dc0fda kernel: bump 4.14 to 4.14.151
2436e521b4 kernel: mark kmod-usb-serial-wwan as hidden
79e6391600 kernel: bump 4.14 to 4.14.150
c51a39d4a5 mac80211: add an improved moving average algorithm to minstrel
2019-11-04 17:22:46 +01:00
David Bauer ab2efef7f9 mpc85xx-p1020: add support for OCEDO Panda (#1847) 2019-11-03 18:59:00 +01:00
Andreas Ziegler baab4d3614 docs: feature/roles: fix uci set command 2019-11-03 18:49:42 +01:00
David Bauer 9dba2ca580 ramips-mt76x8: add support for GL.iNet VIXMINI 2019-10-30 14:38:48 +01:00
David Bauer ac971f88e8 mvebu-cortexa9: rename Linksys WRT1200AC 2019-10-30 00:06:14 +01:00
David Bauer 825577f6df ramips-mt7621: fix sysupgrade extension for ER-X 2019-10-30 00:06:14 +01:00
Martin Weinelt ba3415059c ar71xx-generic: drop ALFA N2, N5, Tube2H and Hornet-UB
Their kernel partition is too small, the OpenWrt build system
is unable to create an image.
2019-10-30 00:06:14 +01:00
David Bauer 82cdd5f808 targets: adapt ath10k selection to OpenWrt 19.07
This changes the ath10k firmware and driver selection, as
ath10k-ct is now the default in upstream OpenWrt.

However, for 802.11s operation we need the QCA firmware and driver.
2019-10-30 00:06:14 +01:00
David Bauer dc8d5d3ca9 gluon-setup-mode: get status-led from device-tree
With this commit, the status-led is set to be the "led-running"
device-tree alias for targets which do not implement the get_status_led
method in /etc/diag.sh.
2019-10-30 00:06:14 +01:00
David Bauer 09780191cb targets: remove wpad-basic by default
This is necessary, as wpad-basic conflicts with hostapd-mini.
2019-10-30 00:06:14 +01:00
Matthias Schiffer b262b72563 gluon-mesh-batman-adv: adjust to removal of batman-adv UCI config 2019-10-30 00:06:14 +01:00
David Bauer 75fa7e73db gluon-setup-mode: fix dropbear hostkey generation
Upstream commit 5eb7864a changed the method name for host-key
generation.
2019-10-30 00:06:14 +01:00
David Bauer 966f398782 modules: switch to OpenWrt 19.07 2019-10-30 00:06:14 +01:00
David Bauer 3522197ff9 ar71xx-generic: add missing ath10k packages (#1844)
This adds previously absent ath10k packages definitions. This way,
devices correctly select CandelaTech firmware correctly, when
GLUON_WLAN_MESH is set to IBSS.

This is also necessary for all devices, when OpenWrt is switched to
19.07.
2019-10-22 02:15:35 +02:00
Ruben Barkow e990342f85 docs: replace alfred with respondd (#1842) 2019-10-16 23:59:17 +02:00
Marssl78 b823b80356 ar71xx-generic: add support for TP-Link Archer C60 v2 (#1840) 2019-10-06 22:11:02 +02:00
Andreas Ziegler 94ca071e12 ar71xx-generic: fix device alias for Ubiquiti UniFi AC LR
fixes #1834
fixes #1332
2019-10-03 21:22:12 +02:00
David Bauer ea24298f2d ar71xx-generic: add ath10k packages to OCEDO Koala (#1838)
The OCEDO Koala was missing the correct package definition. Because of
this, firmware is potentially built with the wrong ath10k firmware /
driver.
2019-10-03 01:44:20 +02:00
lemoer 21397ce678 gluon-status-page: add domain and site (#1820) 2019-09-30 02:00:17 +02:00
Christof Schulze 6d64057536 gluon-mesh-babel: neighbours-babel: adjust to libbabelhelper interface
specify command 'dump' for now until babeld supports filtering
2019-09-29 22:44:39 +02:00
Christof Schulze 33fb58bbf9 gluon-mesh-babel: getnumber() allocate sufficient memory including \0 byte
increase size of path by 1 to be able to fit the full path including trailing \0 byte into array
2019-09-29 22:44:39 +02:00
lemoer f90b673f14 contrib: fix inheritance of jenkins-community-slave dockerfile (#1831) 2019-09-28 00:56:53 +02:00
Martin Weinelt a394054d81
modules: update Gluon packages
de7b228 batman-adv-legacy: remove the package
85c8044 l3roamd: update to fix build
295f055 l3roamd: bump version: instant claiming, FIX removing routes
2019-09-27 10:05:13 +02:00
lemoer 174dd3146f contrib: Set up continuous integration through Jenkins 2019-09-26 16:12:09 +02:00
bobcanthelpyou 8553254867 docs: fix typos 2019-09-26 13:04:19 +02:00
Matthias Schiffer 5b97d36c7e gluon-mesh-batman-adv: remove gluon-mesh-batman-adv-14 2019-09-25 21:57:52 +02:00
Matthias Schiffer 7837bc1059 Gluon v2019.1
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEE7tAWAry9GWw4vJofvUqgUo9j8X4FAl2HqPMACgkQvUqgUo9j
 8X4XGQgAss8qY9mDtSBCEvIOXZVlopDYH/JxY/24EUOpJQSNgeJuLdlf/p5uS5c7
 5fIsAjRbnX+QVzWVX74KmOlZ9Dl8FSiUhu9IOveRTqGUIzLEKzTSyLABdtloFBni
 rFCcLN5805XGksqgUnfC3+sz2ogKrBTtKe4jR8HyzI1xQn1W7s1TWKdL+muBWqrJ
 Hi+5r+FiT9VWpKQDHM2EtSNBZuych5lN0YmuSBgdsLU5u+rBJtTg79FAVqY0XRaq
 9FbSPii/c68OI7DkK5lkbVRcCHn5E8QqsYJnUgV4rvwxXhLS0A0QHqiqwRx3wvK6
 2uXMQl+E5e+F8T3oSJcUt2gKin+xtg==
 =pRPr
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEZmTnvaa2aYgexS51Fu8/ZMsgHZwFAl2KmiMACgkQFu8/ZMsg
 HZzdahAAoQr3dREwQatJtJnJVfm9q24Yz9ukbWM/8AAEJHJb2YY43d5nrNo+Z/OQ
 rbp1NA6pYWryReq93lUR44IGzPX6MtYf+nZ8mAJlUtHOigo5JsAlSSljJckJevU1
 okLh5lkiS6tBgTNK4ziXFfCD6d2AOwL7LEX+ULGKPWShmpm9JI42oOH+yE+eDids
 oFI0uvCw0rBHoX8Ye0GDEljwVhWewENTV/mPf+kGUVh64AcSVXECJQv0fA6uWxC6
 3I+Q6coriOO5wLXjW4NeCKmJNcrhZ7pGQiEWusw294pVz7/f3VawGDr2CsW6kkzR
 ggjhrsGzs3li3IeCttNrfwIx86UsICw1g12bw7AUNrn589AA4OM31uZQQk2s918h
 c1fie6z5y0V0RKilG6+z56WCdKZnKSecdaaYx0vKWL0DMgACvxOTIOoaWbODKjdx
 cY4nLcD2aiGQ/d+pw6LKDQuTiE1ORaa+MkDyN0/ZnMI2FLWJq646kO1V33JgBF0r
 tQ6n7dUwDB9rkZ/UUqqwmneeXs2vxNpnHQg/YiiFEDrdNsBC2irmWuP2Ui6JD9Rj
 Kik6NTve1f7Jp0w8ssgjyTC7mhL6fES4VFkaQP+vrmTI8qSl0QudZXT3bIOfc+sa
 hve8DPfu2yof5fdDrY47PqlNXkKE2IvulIzm+h7OSLXL+hrsDQE=
 =vgC5
 -----END PGP SIGNATURE-----

Merge tag 'v2019.1'

Merge tag to fix 'git describe'
2019-09-25 00:34:29 +02:00
Tata 6742584e12 gluon-config-mode-geo-location: allow to set location independently from sharing it (#1537)
also properly delete location data when a user disables
the location option after re-entering config-mode.
2019-09-24 09:56:40 +02:00
Christof Schulze 6aee8e95e8 gluon-mmfd: add package (#1802) 2019-09-23 21:34:53 +02:00
Martin Weinelt dcfbbea090
docs: Gluon v2019.1+ 2019-09-23 13:57:33 +02:00
Andreas Ziegler 07fe28c855
ar71xx-generic: add zram-swap to boards with 8M flash but only 32M memory (#1819) 2019-09-23 09:54:54 +02:00
Martin Weinelt bf5b026a87 docs: Add v2019.1 release notes 2019-09-22 19:11:28 +02:00
Martin Weinelt ca3631723f
docs: Add v2019.1 release notes 2019-09-22 18:58:33 +02:00
Linus Lüssing ff050a2916 docs: gluon-mesh-batman-adv: note regarding IGMP/MLD snooping switches
This adds a warning that entprise switches with an IGMP/MLD snooping
feature are not supported yet with IGMP/MLD filtering enabled.

For this to work, firstly the Linux bridge on the Gluon node needs to
support Multicast Router Discovery (RFC4286). But this feature was only
added to the Linux kernel recently, in 5.1.

Secondly, a Gluon node would need to periodically send "Multicast Router
Advertisment" (RFC4286) messages, to "announce" the multicast router
port setting on bridge port bat0.

Thirdly, the IGMP/MLD snooping switches would need to implement
RFC4286.
2019-09-21 23:45:44 +02:00
Linus Lüssing 302a795189 Revert "gluon-mesh-batman-adv: reenable batman-adv multicast optimizations"
This reverts commit 9b1eb40fe7.

With the batman-adv v2019.2 upgrade reverted (c1a7733956), the batman-adv
multicast-to-multi-unicast feature is not available yet. Without that it is
going to be very unlikely of the batman-adv multicast optimizations to
take effect. E.g. some outdated nodes would disable it.

To avoid confusion and diversion with a few communities having it enabled
and most implicitly deactivated, just deactivate it for all for now
until batman-adv is updated to v2019.2 or greater again.
2019-09-21 23:28:12 +02:00
Martin Weinelt be965e7e4a ar71xx-generic: deprecate ALFA AP121, Hornet-UB, Tube2H, N2/N5
The kernel partition on these devices is too small for the
OpenWrt 19.07 kernel. It is also located after the rootfs, so
we cannot grow it further.

Therefore mark these devices as deprecated now.
2019-09-20 17:02:41 +02:00
Martin Weinelt cdb334aae9 docs: mark ar71xx-tiny and ramips-rt305x as deprecated 2019-09-20 17:02:41 +02:00
Martin Weinelt 798236b3cf
docs: gluon-hoodselector: add openstreetmap copyright
Fixes #1821
2019-09-17 13:21:42 +02:00
bobcanthelpyou 2792309cd4 docs: remove Netgear WNDR3700 v5 (#1817) 2019-09-15 14:28:23 +02:00
bobcanthelpyou 5ed145c6a6 docs: mention ff05::2:1001 on the node monitoring page (#1818) 2019-09-15 14:25:18 +02:00
Tata 69fd7b5d81 docs: gluon-hoodselector: fix arrow with 0->0.05 to let it visible on svg's (#1816) 2019-09-14 15:34:26 +02:00
Matthias Schiffer 78054cddbf
scripts: target_config_lib: fix inclusion of device-specific packages from site.mk
Fixes: 071cf7b20f ("Switch to Lua for target definitions")
2019-09-14 13:46:56 +02:00
Andreas Ziegler b113e0f517
ramips-rt305x: remove opkg and USB packages from 4M flash boards (#1807)
reduce size by removing dispensable packages,
to fix builds of this target in most cases.
2019-09-14 13:24:37 +02:00
Christof Schulze a3fd203e13 gluon-mesh-babel: add dependency: gluon-l3roamd
gluon-mesh-babel conigures babeld and thus the mesh. This mesh is only usable
with routes to the clients which are discovered by l3roamd.
2019-09-14 00:32:55 +02:00
Christof Schulze d5a4f4fd8c gluon-mesh-babel: distribute routes to 2000::/3 2019-09-14 00:32:55 +02:00
Christof Schulze 59b7625e54 gluon-l3roamd: utilize node_client_prefix6 from site, add checks
* add check_site.lua to validate required field from site
* make use of node_client_prefix6 if defined in site
2019-09-14 00:32:55 +02:00
Andreas Ziegler a96f996e1b
docs: add v2018.2.3 release notes 2019-09-13 00:10:18 +02:00
T-X bce76bcaf0 docs: Add documentation for gluon-mesh-batman-adv (#1810)
This adds documentation for the gluon-mesh-batman-adv package and
elaborates on its build and configuration options, as well as
the implemented multicast architecture.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-09-10 23:55:06 +02:00
Matthias Schiffer b2f5f71c43
gluon-web-wifi-config: fix incorrect UCI call
Fixes #1809

Fixes: bf55249159 ("gluon-core: add outdoor support for 5 ghz radios")
2019-09-06 20:37:37 +02:00
Matthias Schiffer fdf552e55e
uboot-fritz4040: add fixes for bootloader image generation
This seems to unbreak bootloader image generation with certain shells /
build setups.

Fixes #1766
2019-09-04 21:03:08 +02:00
Matthias Schiffer 45183296c3
modules: update Gluon packages
e130b6f54d0f simple-tc: increment PKG_VERSION
89260206971f libbabelhelper: bump version to allow specifying the command for readbabeldata()
0447a6960caf bump mmfd: Bugfix Crash  and firends
2019-09-04 20:57:37 +02:00
Christof Schulze bd543db86b gluon-core: enhance mac_to_ip() beyond RFC 4291 (#1798)
mac_to_ip() calculates an ipv6 address from a mac address according to
RFC 4291. For wireguard we have to use specially crafted addresses that
must be unique. This allows calculating such unique mac-based addresses
by allowing to optionally specifying the bytes to be inserted into the
address.
2019-08-23 20:42:23 +02:00
Matthias Schiffer 087f14be80
docs: whitespace fixes 2019-08-22 23:07:23 +02:00
Matthias Schiffer 79933d7e83
docs: document new mesh.batman_adv.routing_algo settings for coexistence 2019-08-22 23:05:32 +02:00
Linus Lüssing cb899874dc
gluon-mesh-batman-adv: allow installing mesh-batman-adv-14 and -15 at the same time
The new routing_algo site.conf value BATMAN_IV_LEGACY is introduced. With
these changes, the routing_algo setting becomes mandatory.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-08-22 20:09:10 +02:00
Linus Lüssing f9e68be4e0
gluon-mesh-batman-adv: respondd: determine compat version from release version
We cannot add the same file (here: /lib/gluon/mesh-batman-adv/compat) to
two, installed packages. Therefore, instead of determining the compat
version number from this file, infer it from the batman-adv release
version number instead.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-08-22 20:09:10 +02:00
Linus Lüssing 011187e9f5
batman-adv: remove module autoload
Instead of unconditionally loading this module on boot the gluon_bat0
netifd protocol script will later take care of loading either the
batman-adv or batman-adv-legacy module, depending on the configured routing
algorithm in UCI.
2019-08-22 20:09:10 +02:00
Matthias Schiffer f3ce3e4d3e
modules: update Gluon packages
19ef88a7191f batman-adv-legacy: update maintainers
c04321b96386 batman-adv-legacy: rename title from "B.A.T.M.A.N. Adv" to "... Legacy"
a382d21c6a21 batman-adv-legacy: move binaries, scripts and config to avoid conflicts
3e3db36a2eff batman-adv-legacy: remove module autoload
2019-08-22 20:09:10 +02:00
Christof Schulze afa3e89890 scripts/update.sh: add verbose error message when commit cannot be found (#1794)
This displays the branch, repo and commitID that was attempted to update to but
failed. Users then can compare this output to the configuration they meant to
activate in modules and hopefully better find their typos.
2019-08-21 23:48:06 +02:00
Julian 01e03aa2ea docs: move supported devices to own page (#1797) 2019-08-21 23:46:08 +02:00
Matthias Schiffer dcb18e6efe
features: include gluon-radvd by default
Fixes #1775
2019-08-21 19:34:12 +02:00
Chrissi^ dc8149abc4
gluon-mesh-vpn-core: Add dependency for KERNEL_NET_ACT_POLICE
This is a fix for the broken ingress traffic-shaping in gluon v2018.2.2
and possibly earlier.

For ingress traffic shaping the kernel option NET_ACT_POLICE is needed.
Before this patch there was no dependency to this. Neither in
gluon_core, gluon-mesh-vpn-core nor in the package.

This patch adds this dependency.

[Matthias Schiffer: move dependency from GLUON_CORE to gluon-mesh-vpn-core]

Fixes #1790
2019-08-21 18:37:53 +02:00
Matthias Schiffer 1b02bbf3a2
modules: update Gluon packages
7c31643f5cb0 simple-tc: depend on KERNEL_NET_ACT_POLICE or kmod-sched
2019-08-21 18:19:07 +02:00
Martin Weinelt 61bd88309e Revert "ar71xx-generic: unmark archer-c25-v1 as broken"
This reverts commit fb08e10494.

Devices featuring ath10k radios should at least 128 MB of memory
as their driver is quite memory hungry.

Devices with a configuration (1x ath10k, 64M memory) like this have
often been seen as running out of memory.
2019-08-18 19:32:43 +02:00
David Bauer fc46d4470f docs: add RT-AC57U to supported devices 2019-08-15 15:53:04 +02:00
David Bauer 35bde952e1 ramips-mt7621: add missing broken flg for ASUS RT-AC57U 2019-08-15 15:53:04 +02:00
Martin Weinelt eeb745d717 gluon-web-network: fix variable shadowing
package/gluon-web-network/luasrc/lib/gluon/config-mode/model/admin/network.lua:122:16: (W431) shadowing upvalue f on line 19

Fixes: bab4af01e ("gluon-web-network: improve PoE GPIO name translation
handling")
2019-08-13 17:49:02 +02:00
Martin Weinelt 8974d32672 modules: update OpenWrt
89808e211c kernel: bump 4.14 to 4.14.137
349714a491 kernel: bump 4.9 to 4.9.188
0a4a82a431 config: introduce separate CONFIG_SIGNATURE_CHECK option
8a83892662 packages: apply usign padding workarounds to package indexes if needed
0bce1d0db9 usign: update to latest Git HEAD
958411aa61 kernel: bump 4.14 to 4.14.136
2807f84b62 kernel: bump 4.9 to 4.9.187
7e4ce0c655 ar71xx: wpj531: fix SIG1/RSS1 LED GPIO

Compile-tested: ar71xx, mpc85xx
2019-08-13 16:43:51 +02:00
Simon Terzenbach bb7b04c0ed docs: add Aerohive HiveAP 121 and HiveAP 330 to Supported Devices List 2019-08-13 13:25:20 +02:00
Simon Terzenbach c124f6f410 mcp85xx-p1020: add support for Aerohive HiveAP 330 2019-08-13 13:25:20 +02:00
Vincent Wiemann 0a22218304 ar71xx-generic: Fix packages for GL.iNet AR750 (#1792)
The profile for GL.iNet AR750 currently selects ATH10K_PACKAGES, but this device actually has a QCA9887 which needs another driver.
This commit fixes the issue by setting ATH10K_PACKAGES_QCA9887 instead.
2019-08-10 10:17:29 +02:00
Simon Terzenbach c37644e004
ar71xx-nand: add support for Aerohive HiveAP 121 2019-08-02 00:37:26 +02:00
Martin Weinelt 72af472331
modules: update OpenWrt
b7e7d220e7 ar71xx: fix HiveAP 121 PLL for 1000M
2019-08-02 00:33:41 +02:00
Martin Weinelt 44675db7c1
modules: update Gluon packages
fb15946 Merge pull request #233 from jluebbe/simple-tc
17e2535 simple-tc: fix confusing program names in error messages
63e6e0d mmfd: split package into mmfd and gluon-mmfd, bump mmfd version
9c0ac53 bump mmfd: remove babel dependency
aae659d bump l3roamd version
32c9f65 lua-simple-uci: luacheck fixes
cf0619a lua-simple-uci: do not use module(), do not rely on UCI internals
9d26ec1 pretty-hostname: do not use module()
fccb564 l3roamd: bump version for Allow to run l3roamd without mesh interfaces
fbcd1b3 l3roamd: bump version for FIX when roaming within the first 4.5 seconds
71d0566 autoupdater: clarify usage of -n in help
2019-07-31 23:01:12 +02:00
Martin Weinelt a749a6d151
modules: update packages
1eeea30fd softethervpn: Fix compilation under 64-bit targets
276b7d9b0 Merge pull request #9542 from jefferyto/python-musl-find_library-openwrt-18.06
e1cb7f98d opendkim: Fix compilation with uClibc-ng
bc8fc4fb7 tvheadend: Fix compilation on GCC8
4c1252e9d tvheadend: Fix compilation without deprecated OpenSSL 1.0.2 APIs
bd96e95e3 tvheadend: Fix compilation without OpenSSL deprecated APIs
59f7eb5e1 libartnet: Fix compilation with GCC8
e00521bc7 poco: Do not build on ARC
0662e833e flent-tools: Fix compilation with uClibc-ng
131c9436c oath-toolkit: Fix compilation with uClibc-ng
0524f21ed flashrom: Add ARC support
8923eecd3 elektra: Fix compilation with uClibc-ng
24ad87702 elektra: Fix compilation without deprecated OpenSSL APIs
f30898d3e hfsprogs: Fix compilation with uClibc-ng
02d64a922 dosfsutils: Properly fix iconv linking
f273581e1 dosfstools: Fix compilation with full NLS
4870eab08 loudmouth: Fix compilation with uClibc-ng
b1adbbe5b loudmouth: Disable debug and fix no deprecated API compilation
30ddc8a15 transmission: Fix compilation under uClibc-ng
0cac0b3eb transmission: add PKGARCH:=all for transmission-web
c2860ce2c transmission: Add LTO support to shave off 35KB off of the ipk
b5957aed6 transmission: Allow user to configure web ui home directory
cdc001736 open2300: Switch to GitHub fork
dddcd5d90 softethervpn: Add openssl to host build deps
0a4f88e56 softethervpn: Really fix iconv support
e05f50c12 softethervpn: add package name to build dir
8358aa690 softethervpn: cleanup host/build, pass HOST_*FLAGS
5cb4c348a python,python3: Fix ctypes.util.find_library()
d16a931db python: add patch for CVE-2018-20852
2402c223d python: bump to version 2.7.16
ae21f4990 python3: update to version 3.6.9
12c96eaad diffutils: provide diff, cmp as alternatives
04c9e6708 Merge pull request #9463 from ps790/patch-4
4265311c1 Merge pull request #9461 from ps790/patch-2
93e7b0982 coreutils: add alternatives support
ef44ef698 bridge-utils: fix conflict with busybox brctl
4e93f455a softethervpn: Update to rtm version 4.29-9680
4682d1741 softethervpn: Pass FLAGS to CC for hamcorebuilder
f424f7dfa wifidog: fix getting ip from interface, cleanup
bba8e2c44 irssi: update to version 1.2.1 (security fix)
d10ac7c29 Merge pull request #9396 from stangri/openwrt-18.06-simple-adblock
78b0da469 simple-adblock: options to filter non-ASCII domains, local compressed storage
1e398bbcb ocserv: updated to 0.12.4
43bfa6fe4 Merge pull request #9292 from BKPepe/18.06-youtube
68461c4c5 php7: update to 7.2.19
f9b20e9dd php7: update to 7.2.18
5779614d2 znc: backport fix for CVE-2019-12816
63c532a71 youtube-dl: update to version 2019.06.21
7879bbdb4 Revert "php7: Fix compilation without deprecated OpenSSL APIs"
115f72fc4 Revert "php7: update to 7.2.18"
70e4af441 Revert "php7: update to 7.2.19"
d90a035c1 libxml2: update to 2.9.9
5aa670ed3 libxml2: Fix CVE-2018-14404
8abaf8a30 php7: update to 7.2.19
8e9429f3e php7: update to 7.2.18
a176ffa0a php7: Fix compilation without deprecated OpenSSL APIs
53742f130 php7: update to 7.2.17
81a8e5904 nano: update to 4.3
dd927adce Merge pull request #9272 from gladiac1337/openwrt-18.06
28007a8bd Merge pull request #9268 from EricLuehrsen/unbound_192_1806
1784615d3 haproxy: Update HAProxy to v1.8.20
88a7f98bd unbound: update to 1.9.2 with package bug fixes
7290c123d Merge pull request #9232 from neheb/13
356bb1162 haproxy: Remove unnecessary OpenSSL depends All of these are either not needed or not valid.
3afd61982 lm-sensors: install libsensors using CP instead of INSTALL_DATA
d8ecf9cb7 boost: Release update with minor fix
efa0b885a znc: update my email address
45e1b91ae Merge pull request #9193 from ryzhovau/getdns_lib-18.06
55e357b66 getdns: fix library double packing
810f22da8 nlbwmon: update to latest Git HEAD
2019-07-31 23:00:03 +02:00
Martin Weinelt 6b9dd169f4
modules: update OpenWrt
df53824f46 kernel: bump 4.14 to 4.14.134
76d1e8a0c2 kernel: bump 4.9 to 4.9.186
ef9c13fb5d imx6: bump SDMA firmware to 3.5
41e3f12e00 imx6: bump sdma firmware to 3.4
f51e2d031e mac80211: brcm: improve brcmfmac debugging of firmware crashes
95745e26b3 mac80211: brcm: update brcmfmac 5.4 patches
65a405382b omcproxy: fix compilation on little-endian CPUs
a68be42f99 scripts: ipkg-make-index.sh: dereference symbolic links
8231f67218 mac80211: brcmfmac: backport fixes from kernel 5.4
627bb0b8dc busybox: strip off ALTERNATIVES spec
e6af9c017b opkg: bump to version 2019-06-14
33e7beeb31 base-files: Fix path check in get_mac_binary
687977bfc9 kernel: bump 4.14 to 4.14.132
6ee6c97ded base-files: Really check path in get_mac_binary
aced9de9a4 wireguard: bump to 0.0.20190601
3bbd16da46 ramips: fix mt7620 pinmux for second SPI
b84f761d91 OpenWrt v18.06.4: revert to branch defaults
f6429577c5 OpenWrt v18.06.4: adjust config defaults

Compile-tested: ar71xx-generic, ipq40xx, mpc85xx-generic, ramips-mt7621
Runtime-tested: mpc85xx-generic (WDR4900v1), ramips-mt761 (DIR-860L-B1)
2019-07-31 22:58:48 +02:00
Matthias Schiffer bab4af01eb
gluon-web-network: improve PoE GPIO name translation handling
- Replace string concat for i18n key with an explicit list to make the code
  compatible with i18n-scan.pl
- Improve fallback string
2019-07-20 20:56:58 +02:00
Matthias Schiffer df5bf20b6c
docs: improve note on targets without IBSS support (#1788)
Fixes #1718
2019-07-20 16:44:55 +02:00
Matthias Schiffer 93db2f3703
docs: remove executable mode from index.rst
It seems this was changed by accident.
2019-07-20 14:02:14 +02:00
Matthias Schiffer 6867cc98a5
Refresh patches 2019-07-20 13:19:57 +02:00
bobcanthelpyou bde40fb931 CONTRIBUTING.md: fix link to list of rejected features (#1785) 2019-07-13 14:32:41 +02:00
David Bauer 9abce01e87 ramips: add support for ASUS RT-AC57U (#1786) 2019-07-13 14:32:22 +02:00
Andreas Ziegler 350fe73fe5 ramips-mt76x8: add support for TP-Link TL-MR3420 v5 2019-07-08 14:29:00 +02:00
Sven Eckelmann 2eb15bac0e gluon-authorized-keys: Force installation of gluon-lock-password
The gluon-authorized-keys is usually installed to use SSH keys to
authenticate a user against the device. To make this useful, it is also
required to disable passwordless SSH access to the device.

This new dependency is only required when the user doesn't have
gluon-setup-mode enabled already.

Fixes: #1777
Reported-by: yanosz <github@yanosz.net>
Fixes: a753fa79e3 ("gluon-authorized-keys: add keys from site.conf")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2019-07-02 12:34:55 +02:00
Chrissi^ (Chris Fiege) 9dfaed000c doc/dev/package: Fix path to gluon.mk (#1774)
$(TOPDIR) does not contain a trailing slash.
Thus the 'gluon.mk'-include must include
the trailing slash. (Just like the link to
$(INCLUDE_DIR)/package.mk does.)

Signed-off-by: Chris Fiege <chris@tinyhost.de>
2019-06-29 23:41:07 +02:00
Adrian Schmutzler 851dfc6a93 ar71xx-generic: Add support for TP-Link CPE210 V3 (#1696)
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2019-06-29 14:49:54 +02:00
Jan-Tarek Butt f9a47f027b gluon-hoodselector docs: add package documentation
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

gluon-hoodselector docs: replace 'Router have' with 'Router has'

gluon-hoodselector: docs: fix spelling/grammar

docs: gluon-hoodselector.rst, chnage 'VPN-mode' to VPN mode and 'trigon polygon' to triangle

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs/package/gluon-hoodselector: update .dia and .svg to current code behave

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs/package/gluon-hoodselector: replace hood with domain update doc to current code behave

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs hoodselector: fix spelling

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs/package/gluon-hoodselector: fix spelling second round

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs:gluon-hoodselector.rst: fix spelling

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs gluon-hoodselector.rst: fix line length

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs gluon-hoodselector: rename doc imports to be assoziated with the hoodselector

docs gluon-hoodselector: fix image name and rst inmport

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs gluon-hoodselector: information without es (uncountable)

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

docs/package: gluon-hoodselector.rst fix grammer issues

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2019-06-29 02:43:01 +02:00
Jan-Tarek Butt 90baebc2b7 add gluon-hoodselector: Integrate geolocation mode
This MR includs only the VPN MODE of the hoodselector whitch simply set
hoods base on their geopositions.

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

check_site.lua: fix language syntax

muss -> must
rage -> range
at lease -> at least
coordiantes -> coordinates
realaise -> realised

gluon-hoodselector: fix language syntax in hoodselector

can not -> can't
routers -> router's
continure -> continue
to next -> to the next
TMP -> temporary
for current -> for the current
continure -> continue
with next -> with the next
thier -> there
provides -> provide
possition -> position
therfore -> therefore

gluon-hoodselector: fix language syntax in util.lua

realaise -> realised

gluon-hoodselector: fix language syntax and use autoupdate lock mechanism.

gluon-hoodselector: fix spelling/grammar

gluon-hoodselector: automatically set SECTION and CATEGORY for Gluon packages

gluon-hoodselector-add-VPN-MODE: add micrond & libjson-c dependency

gluon-hoodselector-add-VPN-MODE: check running hoodselector before loading lua

gluon-hoodselector-add-VPN-MODE: remove nixio dependency from hoodselector util

Revert "gluon-hoodselector-add-VPN-MODE: check running hoodselector before loading lua"

This reverts commit 535b0a1b2fb73e563bf6a44b568a796440bd307f.

add luaposix and luabitop to pakage dependency

sbin/hoodselector: remove nixio requiemend

sbin/hoodselector: load hoods only if necessary

gluon-hoodselector: use VPN abstraction layer. the hoodselectore does
not need to know about all individual VPN protocols.

gluon-hoodselector: Makefile add gluon-mesh-vpn-core as dependency

gluon-hoodselector: apply changes of mesh vpn lib

gluon-hoodselector: remove outdated comments

package/gluon-hoodselector: check_site.lua rm domain seed check thus its already checked by gluon-core

package/gluon-hoodselector: util.lua code cleanup and refactoring

package/gluon-hoodselector: hoodselector code cleanup and refactoring

gluon-hoodselector: util.lua, use taps instead of spaces. Use posix.unistd.access instead of io.open

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

gluon-hoodselector: hoodselector, use taps instead of spaces.

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

gluon-hoodselector: check_site.lua: replace hood with domain

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

gluon-hoodselector: drop VPN mode and rename hood to domain. Furthermore implement geolocator mode as neorayder way

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: rm duplicated print output

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector util: fix wrong function signature

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

small typo fixes

small typo fixes

Update util.lua

processes are really restarted now. new (old) problem: nodes will not forget their former ipv6-addresses. watchdog could here with that.

gluon-hoodselector util.lua: replace i iterator with _

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

Update util.lua

now polygons with holes are recognized correctly. also a mix of nested polygons and boxes should be possible as shapes[]

package/gluon-hoodselector: hoodselector use gluon-reload for daemon restarts/reloads

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: util.lua use math-polygon lib and rm restart_services function. Rectengles will be converted into polygons now

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: Makefile rewrite description update depends list

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: check_site.lua reduce complexity

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: use : for gluon_version Val

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: fix if equal syntax

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

luasrc/usr/lib/lua/hoodselector/util.lua: check_site.lua simplify checksite script and fix if logic

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: set space after comma, rm unnecessary error handling

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: use only brackes on require function no mixup

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: check_site.lua rm unuse variables and fix non std global function

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: util.lua rm unuse include

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: rm comment return nil in function get_geolocation()

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>

package/gluon-hoodselector: Makefile refactor pkg description

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2019-06-29 02:43:01 +02:00
Martin Weinelt 6ebb721ebc
modules: update OpenWrt
ef686b7292 uqmi: bump to latest git HEAD
3dc740257b uqmi: inherit firewall zone membership to virtual sub interfaces
a2c22b8776 uqmi: fix PIN_STATUS_FAILED error with MC7455 WCDMA/LTE modem
d5ff0897cb kernel: bump 4.14 to 4.14.131
18266fc6c0 kernel: bump 4.9 to 4.9.184

Compile-tested: mpc85xx-generic, ramips-mt7621
Runtime-tested: mpc85xx-generic (TP-Link WDR4900 v1), ramips-mt7621 (D-Link DIR-860L B1)
2019-06-29 02:39:49 +02:00
Martin Weinelt fb08e10494
ar71xx-generic: unmark archer-c25-v1 as broken
memory usage seems to behave more reasonable for a while now
2019-06-28 01:58:35 +02:00
Martin Weinelt 10d05d268c
gluon-core: fix primary mac selection on tp-link archer c25 v1
Fixes #1771
2019-06-27 13:35:35 +02:00
Martin Weinelt 5cf2f017dc
modules: update OpenWrt
5e771160b8 kernel: bump 4.14 to 4.14.130
9c6fb1d67a kernel: bump 4.14 to 4.14.129
6c1bef833d kernel: bump 4.9 to 4.9.183
467adaf6c5 OpenWrt v18.06.3: revert to branch defaults
4382d4ce19 OpenWrt v18.06.3: adjust config defaults
97ae9e0ccb fstools: block-mount: fix restart of fstab service
25fc20db8b fstools: update to the latest master branch
fc39d5fc45 fstools: media change detection (eg:sdcard) using kernel polling
b463a13881 hostapd: fix multiple security problems

Compile-tested: ramips-mt7621
Runtime-tested: ramips-mt7621 (D-Link DIR-860L B1)
2019-06-27 03:05:33 +02:00
rubo77 2541d0a0e2 docs: Add information how to automatically check your code with luacheck 2019-06-26 23:30:17 +02:00
rubo77 a8e5a82215 docs: fix troubleshooting link from markdown to RST 2019-06-24 19:42:32 +02:00
Martin Weinelt 8118e7315f
docs: Add v2018.2.2 release notes 2019-06-24 14:29:24 +02:00
lrnzo d42705f36a docs: update upgrade.rst
small grammatical fix
2019-06-24 13:37:06 +02:00
Martin Weinelt 7d386a66f3
docs: fix reference to #noibss in v2018.2.1 release notes
Uncovered by sphinx-build:
docs/releases/v2018.2.1.rst:19: WARNING: Too many autonumbered footnote references: only 0 corresponding footnotes available.
docs/releases/v2018.2.1.rst:19: WARNING: Unknown target name: "noibss".
docs/releases/v2018.2.1.rst:26: WARNING: Unknown target name: "noibss".
docs/releases/v2018.2.1.rst:30: WARNING: Unknown target name: "noibss".
docs/releases/v2018.2.1.rst:34: WARNING: Unknown target name: "noibss".
docs/releases/v2018.2.1.rst:35: WARNING: Unknown target name: "noibss".
2019-06-21 00:44:10 +02:00
Martin Weinelt 8a2da00d0d
docs: fix codeblock in getting_started.rst
Issue was uncovered by sphinx-build:
docs/user/getting_started.rst💯 WARNING: Definition list ends without a blank line; unexpected unindent.
2019-06-21 00:42:29 +02:00
Matthias Schiffer 99f344bac3
modules: update OpenWrt
fc1dae5be797 brcm2708: Revert "staging: vc04_services: prevent integer overflow in create_pagelist()"
84aba5796ea2 gemini: 4.14: Fix up DNS-313 compatible string
9656f49ea009 base-files: fix uci led oneshot/timer trigger
bd0c3988e742 kernel: bump 4.14 to 4.14.128
2019-06-21 00:20:03 +02:00
Matthias Schiffer c1a7733956
Revert "batman-adv: update to current openwrt-routing / batman-adv v2019.2"
This reverts commit 8dd13cbbca.

Fixes #1756
2019-06-20 20:53:29 +02:00
Matthias Schiffer b41ee49aac
Revert "batctl: upgrade package to latest release 2019.2"
This reverts commit 3d3617ed2c.
2019-06-20 20:48:31 +02:00
rubo77 721adc4c6b docs: Add example how to build all targets 2019-06-20 14:33:47 +02:00
rubo77 a552575131 docs: link to Wiki Troubleshooting page in Getting Started 2019-06-20 14:33:47 +02:00
Martin Weinelt 0c22f3c629 docs: treat sphinx warnings as errors 2019-06-20 13:38:09 +02:00
Martin Weinelt 372d9c372e Add minimal docker environment
This will be a useful precursor for continuous integration.
2019-06-20 01:19:28 +02:00
Ruben Barkow 2bda2ea028 gluon-web-mesh-vpn-fastd: update comment after luacheck fixes (#1751)
Fixes: 4249d65af7 ("treewide: fix luacheck warnings")
2019-06-19 22:40:05 +02:00
Matthias Schiffer a6a25c9431
Merge pull request #1724 from freifunk-gluon/pr/tc-mbits
gluon-config-mode-mesh-vpn: display tc limits in Mbit/s
2019-06-19 19:35:59 +02:00
Matthias Schiffer a2ba3efe8b
Merge pull request #1743 from freifunk-gluon/mesh-vpn-fix-limits
gluon-mesh-vpn-core: move common VPN config to gluon UCI package
2019-06-19 19:34:28 +02:00
bobcanthelpyou 025e9c71c3 Add luacheck config (#1741) 2019-06-18 22:27:41 +02:00
Matthias Schiffer ecc8ebc8ed
treewide: move ebtables filter definitions from files to luasrc 2019-06-18 19:52:33 +02:00
Martin Weinelt 1b06a15bbd modules: update OpenWrt
2999c342aa kernel: bump 4.14 to 4.14.127
9de2f4d4ce kernel: bump 4.9 to 4.9.182
5fe809d718 Revert "ipq806x: fix EA8500 switch control"
e493230e84 kernel: bump 4.14 to 4.14.126
c449130bb2 mvebu: fixes commit f63a1caf22cb
6fa6f74e37 kernel: backport 4.18 patch adding DMI_PRODUCT_SKU
2cd234d96b mac80211: brcmfmac: backport important fixes from kernel 5.2
85eda6f61e kernel: mt29f_spinand: fix memory leak during page program
a0543d8e70 uboot-fritz4040: update PKG_MIRROR_HASH
f63a1caf22 kernel: bump 4.14 to 4.14.125
40b1e899ba kernel: bump 4.9 to 4.9.181
5dbac47426 kernel: re-add bridge allow reception on disabled port
5d27e87de7 rpcd: fix init script reload action
1867f10807 kernel: bump 4.14 to 4.14.123
7fe1b4a4b2 kernel: bump 4.9 to 4.9.180
6563e494a0 kernel: bump 4.14 to 4.14.122
e3408d09b0 kernel: bump 4.9 to 4.9.179
b2b1265a1d apm821xx: backport accepted linux-crypto patches

Fixes: CVE-2019-11477, CVE-2019-11478, CVE-2019-11479

Compile-tested: x86_64
Runtime-tested: x86_64
2019-06-18 15:58:04 +02:00
Linus Lüssing 3d3617ed2c batctl: upgrade package to latest release 2019.2 2019-06-18 03:45:50 +02:00
Matthias Schiffer 09a09d634a
scripts: avoid global variables in target handler scripts 2019-06-18 01:34:45 +02:00
Matthias Schiffer c9f1fdf6ee
scripts: check_site: use setfenv to keep global environment clean
This is now much nicer to luacheck.
2019-06-17 20:36:35 +02:00
Matthias Schiffer 95e7d41563
gluon-ebtables-source-filter: another luacheck fix 2019-06-17 20:12:47 +02:00
Martin Weinelt cd9f1a0f0c gluon-core: fix and complete list of outdoor board names 2019-06-17 16:27:19 +02:00
Martin Weinelt 3d4fb37351
gluon-mesh-vpn-tunneldigger: move watchdog script into luasrc directory
This allows the script to be minified as well as being checked by
luacheck.
2019-06-17 00:48:08 +02:00
bobcanthelpyou 266e0aed38 gluon-mesh-vpn-tunneldigger: fix luacheck warnings 2019-06-17 00:41:20 +02:00
Matthias Schiffer f67522bef3
Merge pull request #1748 from bobcanthelpyou/luacheck_warnings
treewide: fix luacheck warnings
2019-06-16 23:17:43 +02:00
bobcanthelpyou f2305faea8 gluon-web-model: fix return value of resolve_depends() 2019-06-16 22:51:53 +02:00
bobcanthelpyou 4249d65af7 treewide: fix luacheck warnings 2019-06-16 22:51:53 +02:00
Matthias P. Walther 8e176354f8
gluon-mesh-vpn-tunneldigger add watchdog script
The logic is based on the previously used shell script implementation.

Co-Authored-By: Robin Weiligmann <admin@robwei.me>
2019-06-16 20:56:35 +02:00
Martin Weinelt ada723a0df
gluon-config-mode-mesh-vpn: display tc limits in Mbit/s 2019-06-16 19:32:57 +02:00
Matthias Schiffer fc7c8cb086
gluon-mesh-vpn-core: remove obsolete migration code
/etc/config/gluon-simple-tc was removed with Gluon 2016.1.
2019-06-16 18:40:10 +02:00
Matthias Schiffer 818c31afdd
gluon-mesh-vpn-core: move common VPN config to gluon UCI package
We now keep the VPN enable state, bandwidth limit enable and actual limits
in the core config to avoid having to recover "user intent" from different
config files when the used VPN packages change.

Fixes #1736
2019-06-16 18:40:10 +02:00
Matthias Schiffer f6df3b0541
gluon-mesh-vpn-core: don't consider tunneldigger when fastd is installed
None of our scripts can handle fastd and tunneldigger running at the same
time. When both are installed, ignore tunneldigger.
2019-06-16 17:56:18 +02:00
Matthias Schiffer 80b6e7f18f
Merge pull request #1742 from bobcanthelpyou/luacheck_gluon-mesh-vpn-core
gluon-mesh-vpn-core: fix luacheck warnings
2019-06-16 17:39:24 +02:00
bobcanthelpyou 9f4c393295 gluon-mesh-vpn-core: fix luacheck warnings
./gluon-wan:25:1: (W122) setting read-only field ? of global arg
./gluon-wan:29:1: (W311) value assigned to variable ok is unused
2019-06-16 17:31:53 +02:00
Matthias Schiffer da45bd5987
treewide: do not use Lua module() 2019-06-16 15:51:43 +02:00
Matthias Schiffer 3ec108aacc
gluon-web: fix Http:getcookie()
None of our code uses cookies, so this issue went unnoticed.
2019-06-16 14:55:23 +02:00
Matthias Schiffer 8e00149f11
targets: add deprecated flags as appropriate 2019-06-15 23:34:07 +02:00
Matthias Schiffer 912490c026
Add GLUON_DEPRECATED flag
This new build flag is mandatory for now (it may default to 0 in a future
Gluon version). It may be set to the following values:

* 0 - Do not build any images for deprecated devices.
* upgrade - Only build sysupgrade images for deprecated devices.
* full - Build both sysupgrade and factory images for deprecated devices.

"Other" images are handled like factory images, as they are also used for
the initial installation of Gluon on a device.
2019-06-15 23:34:07 +02:00
Matthias Schiffer 071cf7b20f
Switch to Lua for target definitions
The old bash-based parsing code was way too complex. Replace it with Lua.
2019-06-15 23:34:07 +02:00
Matthias Schiffer a44a5dce02
ar71xx: Onion Omega is BROKEN
This device doesn't have an Ethernet port, and even with the Ethernet
shield, eth0 is not configured.
2019-06-15 23:30:23 +02:00
Matthias Schiffer 0970dd3e01
targets: unset executable mode for target files
For some reason, some of the target files were executable.
2019-06-12 14:15:25 +02:00
Martin Weinelt 709c1b1b91 gluon-config-mode-outdoor: fix reference mess for real this time 2019-06-10 11:20:53 +02:00
Martin Weinelt 718696e11d gluon-config-mode-outdoor: fix default value readout 2019-06-09 21:54:52 +02:00
Matthias Schiffer 7be7064432
gluon-ebtables-filter-multicast: fix comment char in Lua code
It seems this mistake didn't cause an error because of Lua's support for
shebang lines.
2019-06-09 15:27:08 +02:00
Linus Lüssing 9b1eb40fe7 gluon-mesh-batman-adv: reenable batman-adv multicast optimizations
Several fixes and enhancements related to multicast were added upstream
in batman-adv. So let's give the batman-adv multicast optimizations
another go.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-06-07 15:16:40 +02:00
Linus Lüssing 8dd13cbbca batman-adv: update to current openwrt-routing / batman-adv v2019.2
This updates the batman-adv OpenWrt package to the current version
provided in the master branch of the openwrt-routing packages
repository:

* e26096a batman-adv: Fix duplicated OGMs on NETDEV_UP
* 1ff00ee batman-adv: upgrade package to latest release 2019.2

Small difference to the original:

* Compat code for batadv_genl_dump_check_consistent()
* Compat code for cfg80211_sinfo_release_content()
* 0001-batman-adv-add-compat-hacks.patch kept
* batctl dependency kept removed
* config related files unchanged

The new config format was not backported yet to keep this patch small
and less invasive.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-06-07 15:16:40 +02:00
Martin Weinelt 9e00ecd8e4
modules: update routing
c07326c batman-adv: Fix duplicated OGMs on NETDEV_UP

fixes #1446
2019-06-03 00:12:19 +02:00
Martin Weinelt 832de8615a
modules: update routing
cad1fba Merge pull request #469 from ecsv/batadv-for-18.06
145ba7f batman-adv: Merge bugfixes from 2019.2
40b7519 batman-adv: Reorder patches
2019-06-02 02:51:43 +02:00
Martin Weinelt bbd52db511
modules: update packages
5d3cb594e Merge pull request #9058 from micmac1/sqlite3-arm-endian-owrt18
d13f831ba sqlite3: fix arm endian issue
48687a581 Merge pull request #8966 from BKPepe/18.06-ytdl
5387239ad youtube-dl: update to version 2019.05.11
76ebe2be0 Merge pull request #8765 from BKPepe/1806-urllib3
ec5e894ce Merge pull request #8954 from jonathanunderwood/openwrt-18.06-getdns-stubby-from-master
54928eb69 nfs-kernel-server: use portmap, drop rpcbind
09e18eef7 stubby: set PKG_SOURCE_VERSION using PKG_VERSION
f8c8b96e7 stubby: remove PKG_SOURCE from Makefile
28c328d66 stubby: add support for TLS configuration options
eec23a91b stubby: add support for tls_port resolver config option (#8889)
5415cc7b2 stubby: update to 0.2.6
b1cc26adf getdns: update to version 1.5.2
813d49c69 stubby: Update PKG_RELEASE
3b498844a stubby: fix handling of pkis in config (#8888)
95daecd81 stubby: fixed duplicate IPv6 address in stubby.yml; fixed typo in README.md
eca82ce3d Merge pull request #8938 from lucize/doveup18
2c87aeba1 dovecot: update to 2.2.36.1
8459433eb python-urllib3: update to 1.24.3
014106741 Merge pull request #8781 from neheb/pros
41c85f8ef Merge pull request #8767 from neheb/cr2
9e4966bd3 Merge pull request #8816 from neheb/lo
55b505f82 Merge pull request #8815 from neheb/gr
1663a0186 Merge pull request #8881 from micmac1/maria_10.1.39
78328ebe3 libxslt: add PKG_CPE_ID for proper CVE tracking
816c7aed6 Merge pull request #8882 from micmac1/xslt-cve-18
2eb2a94da mariadb: bump to 10.1.39
d03db02bc libxslt: backport patch for CVE-2019-11068
d3c324d8b Merge pull request #8871 from neheb/ad
fb9238b61 addrwatch: Add -std=gnu89 to fix compilation
5fae371ab Merge pull request #8779 from neheb/libsec
3ca88ff6d Merge pull request #8780 from neheb/apc
1d44e408f Merge pull request #8770 from neheb/es
759e83674 Merge pull request #8772 from neheb/oa
ea1429f69 Merge pull request #8778 from neheb/liba
46d30c221 Merge pull request #8850 from EricLuehrsen/unbound_dhcp_1806
7f7fda67b add rpcbind
80429e0a5 unbound: fix local dns synthesis corner cases
1f77a0582 Merge pull request #8777 from neheb/sendm
071a926dd Merge pull request #8817 from neheb/bonnnnn
ddc48c3d5 bonnie++: Remove wrongly added patch during cherry-pick
21de3c1ac loudmouth: Disable debug and fix compilation
79e69bf41 grilo: Remove build dependency on perl-xml-parser
c3f6660b8 nfs-kernel-server: fix missing libbsd dependency
d2f254a72 nfs-kernel-server: update to 2.3.3
dac119d49 nfs-kernel-server: Switch to xz tarball
f1ab32ab6 nfs-kernel-server: switch to libtirpc, enable ipv6
5ab569a06 nfs-kernel-server: fix missing host symbol res_querydomain/missing-include-dir
20809ba6a nfs-kernel-server: add -Wno-error=format-security to TARGET_CFLAGS to a fix compily error
2c137a7a5 nfs-kernel-server: update to 2.3.2
765ae2798 libtirpc: enable host build
9b3414fd1 znc: Clean up Makefile and fix compilation on PPC
a8316a5c6 nano: update to 4.2
f69a00efb Merge pull request #8764 from BKPepe/1806-youtubedl
024543fb1 Merge pull request #8766 from neheb/qu
c69c1aea4 Merge pull request #8768 from neheb/cmd
d018e0946 Merge pull request #8776 from neheb/luas
9f74ef0f8 luasec: cleanup Makefile
bbfd71a59 luasec: use gcc to link instead of ld
7059f9476 luasec: Replace -fPIC with $(FPIC)
a3d99ad90 youtube-dl: update to version 2019.04.24
9e532f225 Merge pull request #8773 from neheb/cla
bcf889b36 intltool: Add patch to fix regular expressions and avoid warnings in perl 5.22 and later.
2653eabd4 prosody: Change linker from LD to CC
c15b779b8 prosody: Update prosody to 0.11.2 Update Fixes CVE-2018-10847
9104a1f14 apcupsd: preset shutdown binary
e484057d0 libseccomp: Update to 2.3.3
f61ee11d0 libartnet: Fix compile with GCC7
9d2bf88ec sendmail: link with gcc instead of ld
dd2c1e03e Merge pull request #8769 from neheb/da
3a478756f Merge pull request #8774 from neheb/psq
cf4537574 psqlodbc: Update to 11.00.0000
8ca29a4f3 psqlodbc: bump to 10.03.0000, fix --with-unixodbc
81a6687a6 Merge pull request #8771 from neheb/pia
fa060f40e clamsmtp: Really fix compilation
850126c0d oath-toolkit: Add patch from Fedora to fix compilation
fd52a3df0 pianod: Update to 174.09 release (removes BSD dependencies)
a0ca3e308 espeak: Fix build issues. Cleanup patches
d02a17b35 darkstat: Remove libbsd dependency
0a4f26f3c cmdpad: Fix compile
27af84f57 crtmpserver: Update to official git repo
1a7d79d98 quassel-irc: Update to latest version
873762ce2 quasselc: Update to latest commit
c8c8c1a4a Merge pull request #8759 from neheb/bon2
76132b044 bonnie++: Update to 1.98
df7f21bcd Merge pull request #8718 from neheb/lcd
588f971f0 Merge pull request #8716 from neheb/wifi
4e0a836c5 Merge pull request #8717 from neheb/setser
403d40d91 Merge pull request #8720 from neheb/iio
03a4afe5f Merge pull request #8719 from neheb/unix
d42547cd3 Merge pull request #8733 from jefferyto/openwrt-18.06-python-cve-2019-9636
fbcac2d53 python,python3: Fix CVE-2019-9636 - urlsplit missing NFKC normalization
01f90caa1 Merge pull request #8706 from nxhack/18_06_icu_support_reiwa
e0bee26f4 libiio: add missing dependency to zlib
7220dab75 unixodbc: save unixodbc_conf.h for host build
01a2f4353 unixodbc: fix clean-build compilation
bd380a3c7 unixodbc: Fix LIB_PREFIX in host build
9b5b23f44 lcd4linux: Update to 1204
c26a03a1d setserial: Don't build docs to remove nroff dependency
2a85006ab wifidog: Change to use TLS above 1.0
94b07876e icu: [openwrt-18.06] support for new Japanese era Reiwa
c9aedd9a5 nano: update to 4.1
49e759b28 Merge pull request #8638 from mwarning/zerotier
890993d40 Merge pull request #8477 from BKPepe/openwrt-18.06_perl
d6ed5c22b net/mosquitto: correct config file option name
05e16dd22 zerotier: fix multiple instance handling and port setting
59c6457ec zerotier: update to version 1.2.12
4db102755 Merge pull request #8595 from EricLuehrsen/openwrt-18.06
43c1d6c2a unbound: correct forward of root domain
b8970833b perlmod: fix ability to build module out-of-feed
2019-06-02 02:50:21 +02:00
Martin Weinelt f8bbdd96f0
modules: update OpenWrt
6761961919 openssl: update to 1.0.2s
9591155737 kernel: Fix arc kernel 4.14 build
dc1b578a4c curl: Fix multiple security problems
40ed8389ef mbedtls: update to version 2.16.1
7e07320dc4 kernel: bump 4.14 to 4.14.121
054aecdf0b kernel: bump 4.9 to 4.9.178
e9a7344550 uci: fix heap use after free (FS#2288)
4b633affff brcm63xx: drop linux,part-probe usage where possible
cfb72eed69 brcm63xx: drop own implementation of DT partitions in favour of upstream
68a5e662c2 kernel: bump 4.14 to 4.14.120
85294fc5e7 kernel: bump 4.9 to 4.9.177
152755c9a2 kernel: bump 4.14 to 4.14.119
82e4b4250d kernel: bump 4.9 to 4.9.176
cf2aa873ea ar71xx: Fix network setup for TP-Link Archer C25 v1
e6928e6b29 kernel: Fix arc kernel build
3239f56136 uboot-fritz4040: Add host flags for host compiler
b5ce5217e2 ramips: rt305x: Reduce size of a5-v11 image
d3053b1bdc kernel: bump 4.14 to 4.14.118
f053a8ce41 kernel: bump 4.9 to 4.9.175
412d80cdb7 kernel: bump 4.14 to 4.14.115
f105a9c35c kernel: bump 4.9 to 4.9.172
4685bf1d2f kernel: bump 4.14 to 4.14.114
2faceb1a39 kernel: bump 4.9 to 4.9.171
e0505cc018 Revert "uhttpd: disable concurrent requests by default"
24aefaec62 tools/pkg-config: Handle variable substitution of 'bindir' to redirect to STAGING_DIR/bin
aaa34526c4 tools/pkg-config: pass arguments at the end
3103bd54c5 kernel: bump 4.14 to 4.14.113
a5c62c933b kernel: bump 4.9 to 4.9.170
ac3b5f00e1 kernel: bump 4.14 to 4.14.112
15a70d085d kernel: bump 4.9 to 4.9.169
e6e5435c5b ar71xx: GL.iNet AR300M family: correct LED definitions
ecfe0f1cc4 ca-certificates: update to version 20190110
2d2e615dee mac80211: brcmfmac: really add early fw crash recovery
02aed76968 mac80211: brcmfmac: early work on FullMAC firmware crash recovery
1a6d7a651f lantiq: tdw89x0: Fix WLAN LED on TP-Link W8970 v1.2 (FS#2232)
6ac061f319 ar71xx: Fix IMAGE_SIZE for TP-Link Archer C7 v5
7268ebb1e4 ar71xx: Correct MAC address for WAN interface of Archer C7 v5
c7eb679047 ar71xx: Add "info" partition for TP-Link Archer C7 v5
9c4fa1bb5b ar71xx: Remove ath10k packages from archer-c7-v1 (fixes FS#1743)
6c81f5fac6 kernel: bump 4.14 to 4.14.111
aa0e6fc489 kernel: bump 4.9 to 4.9.168
dad220a00c kernel: bump 4.14 to 4.14.110
07bd5b7a81 kernel: bump 4.9 to 4.9.167
4b4de23dfb openssl: update to 1.0.2r

Build-tested: x86-64
2019-06-02 02:49:10 +02:00
Christof Schulze 08a8815815 gluon-l3roamd: add missing uc dependency
uc is used in the initscript. It must be set as dependency
2019-05-25 15:43:25 +02:00
David Bauer 5f19706756 gluon-core: fix mesh radios not being created
This commit fixes a bug where on first setup, mesh interfaces won't be
created for 2.4GHz radios.
2019-05-21 13:42:22 +02:00
David Bauer 1aa4ffc514 gluon-config-mode gluon-core: fix incorrect gluon.platform reference
The is_outdoor function is placed inside the gluon.platform module, not
the platform_info module. Currently, the outdoor-mode wizard component
and the upgrade script fail due to nil-value calls.
2019-05-21 13:42:22 +02:00
David Bauer dca50d2f26 ramips: fix R6120 factory image
The factory firmware omits the JFFS2 end-marker while flashing via
web-interface. Add a 64k padding after the marker fixes this problem.

When the end-marker is not present, OpenWRT won't save the overlayfs
after initial flash.
2019-05-10 11:25:24 +02:00
Matthias Schiffer 7f0299b53d
modules: update Gluon packages
9a364fb8d0a4 respondd: fix crash caused by division by zero
67177de99afc libs/lua-math-polygon: add add math lib for gauss jordan Ponit in Polygon algorithm

Fixes #1717
2019-05-01 16:19:28 +02:00
Martin Weinelt ad1a1906ab
gluon-core: fix reference to outdoors config site variable 2019-04-29 16:08:10 +02:00
Matthias Schiffer 16a78b4e9e
scripts/check_site.lua: use new format() function to simplify var_error() 2019-04-28 19:17:47 +02:00
Matthias Schiffer 5abddd2976
scripts/check_site.lua: fix array_to_string with non-string/number array elements
Fixes need_one_of() with boolean elements.
2019-04-28 19:16:28 +02:00
Matthias Schiffer ddb11ddd69
Merge pull request #1329 from mweinelt/outdoor_mode
gluon-core: add outdoor channel support for 5 ghz radios
2019-04-28 18:52:10 +02:00
Martin Weinelt 501c3b38bb add gluon-config-mode-outdoor package
adds a section to the wizard for outdoor capable devices
that informs the user of of the regulatory situation and
allows a quick toggle of the outdoor mode.
2019-04-28 18:19:43 +02:00
Martin Weinelt e20d5b0a3e gluon-core: allow presetting the outdoor mode for new installations 2019-04-28 18:19:43 +02:00
Martin Weinelt 423aafbd29 gluon-core: improve channel and add chanlist validation 2019-04-28 18:17:40 +02:00
Martin Weinelt bf55249159 gluon-core: add outdoor support for 5 ghz radios
Add the `wifi5.outdoor_chanlist` site configuration that
allows specifying an outdoor channel range that can be
switched to for regulatory compliance.

Upon enabling the outdoor option the device will
 - configure the `outdoor_chanlist` on all 5 GHz radios
 - which may enable DFS/TPC, based on the regulatory domain
 - disable ibss/mesh on the 5 GHz radio, as DFS *will*
   break mesh connections
 - allow for htmode reconfiguration on 5 GHz radios

The outdoor option can be toggled from
 - Advanced Settings
   - W-LAN
     - Outdoor Installation

The `preserve_channel` flag overrules the outdoor channel
selection.
2019-04-28 18:17:11 +02:00
Martin Weinelt 4f60f6dbc6 gluon-core: disable legacy_rates by default, drop support for supported and basic rates (#1716) 2019-04-28 16:47:29 +02:00
Matthias Schiffer 09916f6e35
gluon-mesh-batman-adv: drop packets from mesh with next-node source or destination address (#1714)
Fixes #1659
2019-04-28 14:56:09 +02:00
bobcanthelpyou fe521db441 build: add site check for obsolete settings (#1702) 2019-04-28 14:38:08 +02:00
Tata e81d1a390f Add mechanism to reload domain related services (#1710) 2019-04-23 17:34:49 +02:00
Petr Štetiar 9dc1ac7f58
build: replace hardcoded paths with overridable variables
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2019-04-22 22:00:45 +02:00
Matthias Schiffer 1c1ccc3c2f
modules: update Gluon packages
ac0f8ac4b588 batman-adv-legacy: update to latest git

Fixes build for targets using kernel 4.9.
2019-04-22 00:17:27 +02:00
Matthias Schiffer 6412177a45
Refresh openwrt patches 2019-04-21 19:39:27 +02:00
Matthias Schiffer 59a44274cb
gluon-respondd: do not join link-local multicast group on br-client
Fixes #1701
2019-04-21 19:31:32 +02:00
Matthias Schiffer befc439a61
modules: update Gluon packages
cf3e8d1a080f respondd: exit on unknown command line parameters
0f57108e3d65 respondd: make all internal functions static
593b2c626690 respondd: fix incorrect use of strncpy
31eb441db163 respondd: make delays specific for group and interface
2d89e972d9dd respondd: fix inet_pton() error message
a906d2447fbd respondd: miniz: fix -Wmisleading-indentation warning
42da0795e2dd batman-adv-legacy: update package version number
3dd552288959 batman-adv-legacy: restore Build/Prepare step
df0dd9cd6b49 batman-adv-legacy: update to latest git
2019-04-21 19:30:44 +02:00
Matthias Schiffer a5614a5019
gluon-neighbour-info: fix outgoing interface for non-link-local multicast addresses 2019-04-21 19:19:02 +02:00
Matthias Schiffer e9e1e2d18a
gluon-neighbour-info: exit on unknown parameters 2019-04-21 19:19:02 +02:00
Matthias Schiffer 7dec8ebf87
gluon-neighbour-info: fix mixed tab/space indentation 2019-04-21 19:19:02 +02:00
Matthias Schiffer fc5f93604e
gluon-neighbour-info: fix inet_pton() error message
inet_pton() doesn't set errno on regular parse errors, so using perror()
doesn't make sense (and we avoid a confusing "Success" message).
2019-04-21 19:19:02 +02:00
bobcanthelpyou aeebcf272c docs: add GLUON_DEBUG 2019-04-21 16:05:57 +02:00
Tata 12b87b2441 ipq40xx: add jalapeno from 8devices (#1706)
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2019-04-19 15:15:00 +02:00
Matthias Schiffer 134a6460a7
build: move hostapd-mini package from generic target to Makefile
By passing the package name through merge_packages, it becomes possible to
override the package choice in GLUON_SITE_PACKAGES again, for example:

	GLUON_SITE_PACKAGES += -hostapd-mini hostapd
2019-04-19 13:53:09 +02:00
Linus Lüssing 8e04679be6 gluon-mesh-batman-adv: add batctl dependency to gluon-mesh-batman-adv-14
The batctl v2013.4 build was removed from the batman-adv-legacy package
as the current, upstream batctl releases work with batman-adv-legacy,
too.

As a replacement we need to add the upstream batctl dependency to
gluon-mesh-batman-adv-14 to have a batctl available again here.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-04-16 12:03:20 +02:00
Linus Lüssing a2bbc125b3 batctl: remove kmod-batman-adv dependency
This always pulls in the batman-adv compat 15 kernel module. However,
batctl works just as well with batman-adv-legacy (compat 14).

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2019-04-16 12:03:20 +02:00
Linus Lüssing 01fd25de42 modules: update Gluon packages
972e67f batman-adv-legacy: remove batctl v2013.4 (#213)
524ae77 tunneldigger: update to newest upstream commit (#216)
2019-04-16 12:03:20 +02:00
bobcanthelpyou 149b55526f gluon.mk: fix reference to LuaSrcDiet binary 2019-04-14 11:21:31 +02:00
bobcanthelpyou 2ce07ae2fe ar71xx: add support for TP-Link TL-WR840N v2 (#1697) 2019-04-12 01:32:11 +02:00
bobcanthelpyou 2c4f022994 build: rename DEVICES to GLUON_DEVICES (#1686) 2019-04-12 01:05:04 +02:00
bobcanthelpyou 078184a59c docs: add notice for opkg repo change (#1693) 2019-04-11 08:54:52 +02:00
Tata d4c066a0f8 gluon-config-mode-mesh-vpn: 0300-mesh-vpn.lua fix limit_ingress default value (#1682)
in case of default disabled simple-tc for tunneldigger

Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2019-04-11 08:50:48 +02:00
Sven Eckelmann e13a614420 gluon-status-page-mesh-batman-adv: Save if metrics chose neighbor as own best nexthop
The commit a0800497352e ("gluon-status-page-mesh-batman-adv: Retrieve TQ of
neighbors with non-best direct link") removed the check whether a neighbor
has the BATADV_ATTR_FLAG_BEST set. But consumers may still want to filter
out or mark neighbors which don't have this flag set. To assist with such a
feature, enhance the neighbor object with an extra boolean "best" attribute
which stores whether the BATADV_ATTR_FLAG_BEST was found or not.

Reported-by: Vincent Wiemann <webmaster@codefetch.de>
2019-04-09 01:31:51 +02:00
Sven Eckelmann cef21e584a gluon-mesh-batman-adv: Save if metrics chose neighbor as own best nexthop
The commit ee63ed42fe6c ("gluon-mesh-batman-adv: List neighbors with
non-best direct link") removed the check whether a neighbor has the
BATADV_ATTR_FLAG_BEST set. But consumers may still want to filter out or
mark neighbors which don't have this flag set. To assist with such a
feature, enhance the neighbor object with an extra boolean "best" attribute
which stores whether the BATADV_ATTR_FLAG_BEST was found or not.

Reported-by: Vincent Wiemann <webmaster@codefetch.de>
2019-04-09 01:31:51 +02:00
Sven Eckelmann d0df47d943 gluon-status-page-mesh-batman-adv: Retrieve TQ of neighbors with non-best direct link
Links between two direct neighbors are not always the best route between
these devices. The flag BATADV_ATTR_FLAG_BEST would not be set for these
originator entries and the respondd module would just ignore this entry.

If these neighbors are not accepted and returned to the status page then
some of the neighbor entries will show a name, (acceptable) signal strength
and mac address but no TQ value.

Fixes: 28668c8c52 ("gluon-status-page: API")
2019-04-09 01:31:51 +02:00
Sven Eckelmann ec72d30b8f gluon-mesh-batman-adv: List neighbors with non-best direct link
Links between two direct neighbors are not always the best route between
these devices. The flag BATADV_ATTR_FLAG_BEST would not be set for these
originator entries and the respondd module would just ignore this entry.

This causes missing links in meshviewer and similar tools. And when the
link quality is nearly equal and but fluctuates slightly, these links will
from time to time appear and disappear on the map.

Fixes: 2e0e24a992 ("announce neighbours using alfred/gluon-announce")
2019-04-09 01:31:51 +02:00
Vincent Wiemann deb020d3ef docs: faq: add note for supported hardware (#1665)
A table with hardware supported by Gluon can be found on the OpenWrt Wiki. This commit adds a corresponding FAQ entry.
2019-04-09 00:10:34 +02:00
Martin Weinelt c919f5fd29
modules: update luci
b99e77d5c remove artifacts from de3be2388393ed28e44d2714c25eee9b9886e820
5248d3719 freifunk profile_berlin: add default section for 802.11s
de3be2388 freifunk-common: add default configuration for 802.11s interfaces
071e540e3 luci-app-attendedsysupgrade: refactor and format
76cf6533d luci-app-attendedsysupgrade: update to new api
30d9bc02b luci-app-nlbwmon: Fixed incorrect period parameter/display
23029f516 treewide: avoid double-escaping CBI section labels
28e852f4e luci-base: dispatcher: support raw values in attr() and ifattr()
a0ae6c97f Merge pull request #2504 from aparcar/openwrt-18.06
ac90b1bc3 luci-app-attendedsysupgrade: fixup error_box
449d5ad6d Merge pull request #2494 from aparcar/18.06-unify
98ae788eb luci-app-attendedsysupgrade: new api, unify status
4c45a5259 luci-mod-rpc: drop "secret" value from rpc session objects
43959e3ab luci-app-lxc: add aarch64 to target map
3ff3b9e86 luci-app-lxc: add i686 to target map Add i686 to target map so i386 container templates are usable.
6f6641d97 luci-base: fix UCI changelog markup mistake
a11f4ac2e treewide: rework uci change display
f1a5b179d luci-base: fix cbi dropdown quirks with MS Edge
1f423b114 Merge pull request #2451 from pmelange/backport/PR2450-luci_mod-freifunk_basics
8fe6f04d6 Merge pull request #2449 from pmelange/backport/PR2448-luci_mod-freifunk_get_all
14456d30f luci-mod-freifunk: fix the list of community profiles
fb9721244 luci-mod-freifunk: replace calls to get_all() with separate get() calls
04d60f214 timezone data: update to 2018i
3dea6b5bc Merge pull request #2355 from pmelange/freifunk_backport_18.06
12534ad03 luci-app-olsr: reenable the "auto refresh" feature
a3bfc596b luci-app-olsr change ccs style to use class "left" instead of "style=text-align: left"
94a1673fc luci-app-olsr: make cosmetic changes.
68fb3b279 community-profiles: change subnet of mesh_network option for Berlin
02bd34be1 get rid of library version numbers in luci olsrd code
e98580b05 community-profiles: create profile for Fürstenwalde
f7e420150 luci-app-olsr: convert olsr.lua and smartgw.htm to new json plugin
bfad30246 luci-app-olsr: convert mid.htm to new json plugin
34d13c0c6 luci-app-olsr: convert interfaces.htm to new json plugin
2dd31c4ff luci-app-olsr: convert olsr.lua and overview.htm to new json plugin
12b0b31bb luci-base: network.lua add ipv6-prefix-assignment support to get_status_by_address
bcfd7cf05 luci-app-olsr: cbi remove library version numbers in library search results
63a72b3bf freifunk profiles: add nameserver 80.67.169.40 from www.fdn.fr/actions/dns
60dfc7348 luci-app-olsr-services: Don't use the nameservice with a specific version.
5e8708345 luci-mod-network: adapt to current 802.11r defaults
3787301e3 applications: drop luci-app-asterisk
44f91bb26 Merge pull request #2278 from sotux/openwrt-18.06
3dc653cd8 i18n: luci-app-uhttpd: add initial Simplified Chinese translation
d6925de33 i18n: luci-base: update Simplified Chinese translation
1fe70f3b4 i18n: luci-app-firewall: update Simplified Chinese translation
8e1579c55 luci-app-adblock: sync translations
59383800e luci-app-travelmate: sync translations
0cfd99cb0 i18n: sync translations
9f94fe3a7 i18n: luci-app-firewall: cleanup multiple definitions in uk/firewall.po
197827ffe i18n: luci-app-addblock: cleanup multiple definitions in zh-cn/adblock.po
01fe78349 i18n: fix german base.po
b3d4b84aa timezone data: update to 2018g
463fb0411  timezone data: update to 2018f
55ebe88f4 luci-app-openvpn: remove obsolete config options
b3cbe89b2 luci-app-openvpn: fix template based config creation
69325c11b timezone data: update to 2018e
9541751f7 luci-app-adblock: sync with adblock 3.5.5
650375611 Merge pull request #2109 from kagurazakakotori/openwrt-18.06
4f4b28b78 luci-app-adblock: fix chinese translation
f64b15234 luci-app-firewall: allow "open ports" when no wan zone exists
f4da0b8cf luci-mod-admin-full: applyreboot doesn't reload page
e0599d506 luci-mod-admin-full: fix broken applyreboot page
f9121fd86 luci-theme-material: fix theme for applyreboot page changes
199eac416 luci-base: mark password template dummy field as hidden
a49e4e4d5 Correct grammar in apply_widget.htm
8bb487332 luci-base: update Chinese translation
8407d90aa luci-base: update Polish translation
5d1d6915c luci-base: update Polish translation
3d5d9dc57 luci-mod-admin-full: Fix DSL Stats display of dB statistics
7d69fa6a5 Merge pull request #2018 from chris5560/18.06-ddns
2da3f93fe Merge pull request #2016 from chris5560/openwrt-18.06
5ec72617e luci-theme-bootstrap: fix CSS regression in kernel/system log pages
9beff0720 luci-app-adblock: "final" fixes
cc4310817 luci-app-travelmate: "final" fixes
e290fe917 fix compilation failure when luasrcdiet is being copied to non existing directory
1983dc615 Merge pull request #2014 from dibdot/travelmate-18.06
d844d5132 Merge pull request #2013 from dibdot/adblock-18.06
7f5b296e3 luci-app-ddns[18.06]: remove myself as PKG_MAINTAINER
b0dce7a68 luci-app-radicale[18.06]: remove myself as PKG_MAINTAINER
56266d070 luci-app-travelmate: backport 1.2.1 to 18.06 branch
bf5dd5837 luci-app-adblock: backport 3.5.4 to 18.06 branch
6df9a57ef luci-theme-openwrt: style tweaks for DSL status display
c26709a85 luci-theme-bootstrap: style tweak for DSL status display
db5bde618 luci-mod-admin-full: rework DSL Status display
d05f442ad luci-mod-admin-full: fix style glitch on packages page
ea0951309 luci-base: fix luasrcdiet
680a6d2ad luci-proto-relay: propagate up state, do not forward netifd errors
520afa4c3 luci-base: fix footer template
7e5331f15 treewide: rework rollback/apply workflow
64e3fe9f6 luci-base: xhr.js: decode JSON for POST requests as well
186228e36 luci-base: utils: support multiple return values in util.ubus()
58bd130a8 luci-mod-admin-full: abbreviate "MAC-Address" as "MAC" to align with rest
198474f69 luci-mod-admin-full: fix wifi overview display when no networks are defined
667f73a42 ff_olsrd_watchdog: delete existing tunnels
df614ffd4 luci-base: strip superfluous space in additional field markup
867fcff8b luci-theme-openwrt: fix button placement quirk
97b3e5773 luci-base: cbi.js: fade to-be-deleted section when hovering delete button
6cf7d11e1 luci-base: cbi.js: use adjacent button dynlist add/remove buttons
d7d15f6c5 luci-base: rework reveal/hide CBI password template button
97e647bb2 luci-theme-bootstrap: add styling for input-adjacent buttons
b8a0b617a luci-theme-openwrt: add styling for input-adjacent buttons
516ce4af7 luci-mod-admin-full: unify "Alias interface" and "Alias Interface" strings
bcb8d8969 luci: do not depend on uhttpd-mod-ubus
024fa3cf3 luci-theme-openwrt: support rendering tblsection cell descriptions
81682971d luci-base: add description annotations to tblsection cells
03b6d77ee luci-base: update Polish translation
ffed0206b luci-proto-ncm: remove unrelated options
a6b2b29dc luci-proto-ncm: add pdptype option
cd72e1d97 Merge pull request #1992 from sotux/openwrt-18.06_zh_CN
7501bf6f5 Merge pull request #1996 from EricLuehrsen/unbound_1806_doc
d6f8ac1a7 luci-base: zh_CN: Update Simplified Chinese translation
ad0d3f503 luci-app-unbound: point documentation to 18.06 branch
14c73faf3 collections: drop nginx support for 18.06
1d32ea9b0 luci-mod-admin-full: fix check for traceroute6
9724d7661 luci-base: fix Russian translation
4c87b8345 luci-app-upnp: update Russian translation
ed4f4644e Update Russian translation
4b267cecf luci-app-simple-adblock: remove extra controller file
968f9dc0a luci-base: update Ukrainian translation
11e9a5503 luci-app-upnp: update Ukrainian translation
18c8e1fe5 luci-app-wol: update Ukrainian translation
c81359898 luci-base: fix bad CSS class names in table section template
39401a761 luci-app-ocserv: remove unneeded br element from template
5b34fbaab luci-app-ocserv: update user status template
5bbf669c8 luci-base: update Japanese translation
da600939f i18n: sync translations
beb9ab2da luci-proto-ncm: add modem default mode
16837a5d0 luci-admin-full: add further wifi options
758c66b9d luci-admin-full: add dnsmasq allservers option
69a4c258f luci-app-simple-adblock: change style of button to important
b9166ca96 luci-app-advanced-reboot: change style of buttons to important
5fc6bc7d9 luci-app-ddns: update and improve Russian translation
d3bfc5d03 luci-base: fix a typo in Russian translation
91238dccc luci-theme-bootstrap: allow pointer events on readonly textareas and dropdowns
5d4c365f1 luci-theme-openwrt: fix another instance of misplaced page action button
8d88802b8 luci-mod-admin-full: use incremental background scanning for wireless join
5ea795a4b luci-theme-openwrt: fixes for page action button placement
fbc02d33a luci-theme-bootstrap: various fixes
0b44d33dd luci-mod-admin-full: properly reset internal device form field
d7c868a05 luci-base: rework CBI footer template
bea5187f3 luci-base: rework tblsection template
24b924bfe luci-base: rework simpleform template
392fd0238 luci-base: cbi.js: add cbi_submit() helper
c0612e820 luci-mod-admin-full: offer "Cancel" button in iface add dialog
94b6aa2a8 luci-base: remove unused icons
53686fd49 luci-base: update and improve Russian translation
0b00ceef0 luci-base: fix Russian translation
984a1afcf luci-app-simple-adblock: new start/stop button, better integration with simple-adblock
a7e1edf93 luci-app-upnp: update Ukrainian translation
8d882e559 luci-base: update Ukrainian translation
b49c62b2e base.po: Update chinese translations.
bf2c25e44 luci-base: fix Russian translation
edbcdef15 luci-base: Avoid block umount on fstab apply
efff0139b luci-base: resync translations
b8b87182f luco-proto-ipv6: allow multiple prefixes for 6in4 and dhcpv6
4da137e89 luci-base: fix field section add button/input field names
911219898 luci-mod-admin-full: fix changing alias interface ifnames
9cc24e6c6 luci-base: fix handling alias interfaces in ifacelist widget
cd8fc0013 luci-base: luci.model.network: recognize alias interfaces
d03537c2d luci-mod-admin-full: improve interface overview display
8a7cd70d4 luci-theme-bootstrap: small style fix for link buttons
98adc98f7 luci-mod-admin-full: fix wifi add and scan actions
f974cfe09 luci-base: update german translation
16aa088ca luci-base: update Polish translation
fb817df83 openwrt-18.06: merge master
b38306dce luci-base: xhr: increase poll request timeout
053682c4c luci-theme-bootstrap: margin fix for multiple wifs on status overview
98f4c3cf5 Merge pull request #1933 from Ansuel/hostname_upnp
524ce90c4 luci-base: resync base translations
aef1c2fca luci-mod-admin-full: differentiate between disabled and not associated wireless
4115f8cc5 luci-app-advanced-reboot: fix translation string
4381a27ef luci-theme-material: table and button style fixes
58cee7986 luci-theme-openwrt: cleanup CSS
887d0a685 luci-theme-bootstrap: cleanup CSS
4f0dfb6ab luci-mod-admin-full: tweak interface and wireless overview markup
572210500 luci-app-upnp: tweak table markup
22e4a2420 luci-base: tweak tblsection markup
777ffa948 luci-mod-admin-full: small wifi overview markup fix
a0e5e8a9d luci-theme-bootstrap: compress color names, fix table striping
b7bf164fe luci-mod-admin-full: produce valid JSON in status/realtime/connections_status
401898a43 luci-proto-qmi: register further network error codes
5f2aa8d47 luci-proto-ncm: register further network error codes
80ed1af63 luci-proto-ipv6: register further network error codes
85bc16605 luci-base: add icons for alias interfaces
c4dca3679 luci-mod-admin-full: rework interface overview page
54c9a77bd luci-mod-admin-full: expose errors, description and up state in net status
94be4881a luci-base: add error reporting and basic support for dynamic interfaces
be2b83c9f luci-mod-admin-full: reimplement wireless overview page as cbi model
d4e52ca03 luci-base: apply_widget: various fixes
674b090d3 luci-base: xhr.js: use JSON.parse() and pass request duration to callbacks
0d96655f8 luci-theme-openwrt: consolidate font sizes and button styles
6f773999a luci-mod-admin-full: improve text contrast in realtime graphs
6d5d1473c Merge pull request #1945 from stangri/luci-app-advanced-reboot
3c332e456 luci-app-advanced-reboot: support for Linksys WRT32X
36b6d9874 Merge pull request #1937 from LuKePicci/luci-proto-ppp_pppoe_host-uniq
265b0ebbd luci-proto-ppp: expose pppoe host_uniq tag setting
4a083f6d2 luci-base: fix placement of CBI strings
9651be295 luci-theme-material: table layout fixes and minor CSS corrections
994531ea2 luci-app-adblock: align blocklist markup with recent changes
8e1011884 luci-mod-admin-full: rework connection status table handling
6cda8e6da luci-base: cbi.js: avoid setting empty cell title attributes
690f3f13a luci-theme-bootstrap: add CSS fixes for IE 11
bf084f7f9 luci-theme-openwrt: add CSS fixes for IE 11
260d2cc44 luci-base: cbi.js: add NodeList.forEach() polyfill for IE 11
c0de036b3 treewide: always include cbi.js
069c0c93e luci-mod-admin-full: use sans-serif fonts for realtime graph legends
7c404d72e luci-mod-admin-full: small markup fixes for placeholder texts
ecedfe5dc luci-mod-admin-full: style and script fixes for realtime bandwidth graph
bce7543d8 Merge pull request #1944 from rwalli/patch-1
140f41b40 Add description
d35be37b8 Merge pull request #1871 from felixonmars/patch-1
e617902c9 Merge pull request #1942 from Rixerx/master
4b8e0f834 luci-base: update Polish translation
711d1036c Merge pull request #1941 from musashino205/l10n/base-upd-ja
057c71a67 luci-base: update Japanese translation
885f99359 Merge pull request #1939 from Ansuel/luci-nginx
639bbc182 luci-nginx: fix nginx dependency
26d90f0c1 luci-base: update Ukrainian translation
84f86ad7b base.po: Update chinese translations.
e8a9a6695 luci-theme-bootstrap: minor style fixes
04bec5695 luci-base: resync translations
e489a82ac luci-mod-admin-full: rework flashops page markup
afd14fb9c luci-app-upnp: add hostname info
50b88a435 luci-mod-admin-full: fix flashops url generation for config tab
65ba4b8b8 luci-mod-admin-full: check backup.tar.gz on apply
ddbde3caa luci-mod-admin-full: improve reboot page
cde13dc24 Revert "luci-lib-json: depend on luci-base"
8ca29efec luci-lib-json: depend on luci-base
7b43e6721 luci-mod-admin-full: improve Y-axis scaling in bandwidth graph
9f2672f2c Merge pull request #1929 from pleasantone/mwan3_interface_aliases
b0486ab5d luci-app-mwan3: fix aliased interfaces (@wan6)
1510111fa Merge pull request #1925 from YuriPet/master
4097a6333 luci-mod-admin-full: fix uci revert success message
04e483d16 luci-theme-openwrt: minor mobile style fixes
2ee1873ac luci-theme-openwrt: add further style tweaks
30eaba02f luci-mod-admin-full: cleanup markup on flashops page
b693baaa6 luci-mod-admin-full: rework wireless network status indicator
3aba61502 luci-base: rework "in request" flagging logic for menu nodes
d0298e4cd luci-base: update Ukrainian translation
1455ab657 luci-app-firewall: update Ukrainian translation
2e2dab3e5 Merge pull request #1924 from dibdot/lxc_fix
1f2d40b50 luci-app-lxc: add backingstore support
3699509ed Merge pull request #1921 from musashino205/l10n/fw-upd-ja
1fd3a1663 Merge pull request #1920 from dibdot/lxc_fix
b198de11b luci-app-lxc: small fixes & cosmetics
ad08b5657 luci-app-firewall: update Japanese translation
ca0a086a2 i18n: sync translations
1a36f0307 Merge pull request #1902 from panda-mute/patch-1
532846c3d luci-theme-bootstrap: fix input width in table cells
485e5c930 luci-app-upnp: cleanup UPnP lease status markup
c405b23ab luci-mod-admin-full: unify DHCP lease status code
c61c5deac luci-base: luci.tools.status: add host_hints to DHCPv6 leases
ccbb17d26 Merge pull request #1915 from Ansuel/upgrade
b5d5e5bf1 luci-base: update luasrcdiet
167d37130 luci-theme-material: fix switch status display
8d7869f67 luci-mod-admin-full: properly remap ports in switch status display
60c5d15e9 luci-mod-admin-full: fix possible switch status layout bug
2efcc53f2 luci-theme-openwrt: add some compatibility styles
62f5c22f8 Merge pull request #1912 from Ansuel/fixassoci
c32097d7d luci-theme-freifunk-generic: fix & modernize
5818a90df luci-mod-admin-full: fix missing wifi_assoclist
0d9a64b3b Merge pull request #1881 from TDT-AG/pr/20180614-luci-mod-admin-full-fix-ssh-key-textarea
6ff7f34ee luci-mod-admin-full: report SNR unit as dB, not dBm
1b0165645 Merge pull request #1906 from ldir-EDB0/typofix
002c4d1d5 luci-base: add "Name" label to autogenerated title column
211d8bc55 luci-theme-bootstrap: render tblsection row titles
18d92aca5 luci-base: annotate tblsection description row as well
e3d02b1a4 luci-theme-bootstrap: remove unused styles
b79982e5d luci-mod-admin-full: fix average traffic calculation in realtime bandwidth
ff55e7f6b luci-mod-admin-full: fix initializing realtime graphs
e5ba594d7 luci-base, luci-mod-admin-full: unify wifi assoclist code
86c6c60a0 luci-mod-admin-full: replace status page legend tags with h3 (#1907)
483c9d35b Merge pull request #1895 from jow-/master
7cf8f9718 luci-app-rp-pppoe: Fix typo
c7ee1ffcf luci-app-shadowsocks-libev: cleanup section add markup
b4d78d204 luci-mod-admin-full: packages: display available packages by default
db4139b14 luci-app-travelmate: consolidate markup
ce8101ae7 luci-app-upnp: rework lease status indicator
e097d3f73 luci-app-firewall: cleanup template markup
bbf096c79 luci-mod-admin-full: cleanup markup
c4e25bebf luci-theme-material: align CSS with markup changes
b453624dc luci-theme-bootstrap: align CSS with markup changes
f714f684f luci-theme-openwrt: rework and polish OpenWrt theme
d0b91bcca luci-base: globally cleanup markup
a65d55ebc Merge pull request #1905 from ldir-EDB0/bcp38
65cfbd8f7 luci-app-bcp38: improve interface selection dropdown
c4bd6fb7b luci-base: cbi.js: add tooltip handling and responsive table helper code
5142e40f9 luci-app-firewall: update cbi models
69782ccbc luci-base: xhr.js: defer starting poll queue
d024d73da Update 40_luci-transmission
e380cf51f Merge pull request #1894 from YuriPet/patch-2
1dcf85b78 luci-app-firewall: update Ukrainian translation
6cc547fdc Merge pull request #1891 from YuriPet/master
a72c19751 Merge pull request #1892 from musashino205/l10n/fw-upd-ja
88f03a614 luci-app-firewall: update Japanese translation
7001e8f3b luci-app-firewall: sync translations
fef02b31e luci-base: update Ukrainian translation
83dc5e075 luci-app-firewall: update Ukrainian translation
de62263f7 luci-app-upnp: update Ukrainian translation
86ed5ab65 luci.mk: Correcting native name Ukrainian language.
52de52e3e Merge pull request #1889 from Ansuel/lucnginx
0a6ad23f2 luci-nginx: add nginx support file
24fb85205 Merge pull request #1886 from musashino205/l10n/fix-syntax-uk
fe591dd1c i18n: fix syntax errors in Ukrainian po
0251603f0 luci-mod-admin-full: fix empty SSH-Keys issue
b5a43cf87 Merge pull request #1862 from Ansuel/lucidep
8798bb22b Merge pull request #1879 from sotux/master_zh_CN
934e954a7 luci-app-firewall: zh_CN: change better translation for offloading
90bf08af8 luci-nginx: add nginx metapackages
9abf409a3 Merge pull request #1877 from Ansuel/ddnsipkg
5d1605ecc Merge pull request #1876 from ldir-EDB0/wgurl
492d4d91b luci-app-ddns: use standard pkg info function
8f6701971 wireguard: update wireguard url
d3aa12b8e luci-app-firewall: Fix typo in forwards redirect
8363d0ad6 Merge pull request #1875 from YuriPet/master
658d11e75 luci-app-firewall: disable port fields when protocol is not TCP or UDP
cebe38dcf luci-app-firewall: update Ukrainian translation
0c410c848 luci-base: update Ukrainian translation
8a4c3a01b Merge pull request #1874 from Rixerx/master
ad5f768c4 luci-base: update Polish translation
fad02ac8d Merge pull request #1868 from sotux/master-zh_CN
966e86cd0 luci-app-adblock: update Simplified Chinese translation
bfcf2189f luci-app-mwan3: update Simplified Chinese translation
434d8baff Fix a typo in vizdata.sh
2eb4015e1 luci-app-firewall: recognize egress rules in rule overview
e7866c7dc luci-mod-admin-full: add suggested italian translations
588c8618b luci-mod-admin-full: fix translation interpolation in JS confirm() calls
0e0ee2fed luci-mod-admin-full: git rid of embedded newlines in translation strings
2e7fa89e1 luci-base: update Simplified Chinese translation
81c66069c Merge pull request #1867 from dibdot/adblock
45c2059c1 luci-app-adblock: partly revert last commit
74be6f397 treewide: switch firewall zone, network and iface lists to dropdown code
9d4849072 luci-base: add markup, JS and CSS for new dropdown
4cca96ef0 luci-base: support option aliases in luci.cbi
501f1a900 Merge pull request #1863 from dibdot/adblock
71d296f7c Merge pull request #1864 from Ansuel/master
b46e8c5a6 luci-app-ddns: fix div conversion
53ea80391 Merge pull request #1854 from jollaman999/master
a561d3045 luci-app-adblock: sync with adblock 3.5.3
7be3f0400 luci-base: fix some minor luci.model.uci issues
2d410379c luci-app-ddns: Convert HTML tables to div
4cd08258b Merge pull request #1835 from Ansuel/ddns-optional
09c3a8385 luci-app-ddns: make param opt, optional, add myself as maintainer
1ce88dced Merge pull request #1851 from dibdot/lxc_fix
2b43ebe92 luci-app-lxc: made container creation more reliable
2d352a925 luci-base: cbi: atomically reorder uci sections
660e4f550 Merge pull request #1819 from Ansuel/ddns-performance
299121fc8 luci-app-ddns: improve performance
18b5b068c Merge pull request #1846 from musashino205/l10n/base-upd-ja
c4559052c Merge pull request #1847 from dibdot/lxc_fix
babcc14c7 luci-app-lxc: bugfix
f28784b61 luci-base: update Japanese translation
2d196614f luci-base: sync translations
fed315a5e themes: drop errorbox styles
a64ab077d luci-mod-freifunk: use common alert message markup
29b391d7b luci-base: use common alert message markup
724cc2997 luci-mod-admin-full: use common alert message markup
e3bc12da6 themes: unify no-password / no-javascript alert boxes
298d164dd luci-base: update coxpcall() implementation, fix runtime error reporting
79d793dff themes: adjust CSS for reworked apply widget
542739564 luci-base: add full page overlay during apply
5452cc214 Merge pull request #1845 from dibdot/lxc_fix
7bd1bcaf3 luci-mod-admin-full: fix status page render glitch on Chrome
d8f2f24a5 luci-app-lxc: fix "plain-vanilla" integration, part 3
c3da1fc23 luci-base: cbi.js: remove unused serialize functions
d1df5a6b7 luci-base: cbi.js: fix cbi_row_swap() after recent table markup changes
0d2ae8d65 luci-mod-admin-full: rework network and wifi status displays
879f90d15 luci-theme-material: add new style classes
7875d92c4 luci-theme-bootstrap: add new style classes
f8221b982 luci-theme-openwrt: add new style classes
f0094cc06 luci-mod-admin-full: fix revert page
796d68744 Merge pull request #1839 from EricLuehrsen/unbound_defdoc
d0757f1f4 luci-app-unbound: add root zone file cache option
60ea5dc53 luci-app-unbound: provide transparent defaults with documentation
f6aec9fe2 luci-proto-3g: make it a self-contained package
a013967e6 Merge pull request #1822 from Ansuel/luci-cpuinfo
b8f32b6da luci-admin-full: add architecture info
5e37b724c Merge pull request #1827 from Ansuel/luci-map
067d7dc9f treewide: convert HTML tables to div
79c82237e luci-base: add element creation helper to cbi.js
97a640c83 themes: add forward-compatibility CSS
fb70693b7 Merge pull request #1836 from sotux/master-zh_CN-translation
c69bbd194 luci-app-firewall: zh_CN: update Simplified Chinese translation
402ad57e5 shadowsocks-libev: fix enumerating server and ss_redir sections
6f630b5e6 Merge pull request #1834 from Ansuel/fixpo
c29ffe4df luci-base: fix broken translation
31dfa80d4 Merge pull request #1828 from dibdot/lxc_fix
d9b6c5dd7 luci-app-lxc: fix "plain-vanilla" integration, part 2
247754431 Merge pull request #1833 from ysoyipek/patch-3
2d053d39d Update base.po
c0fc86114 Merge pull request #1832 from musashino205/l10n/fw-upd-ja
a3be23499 luci-app-firewall: update Japanese translation
b4d484e37 luci-app-firewall: sync translations
aadc1f79c Merge pull request #1826 from hnyman/offload
be6dff8f2 Merge pull request #1829 from musashino205/l10n/mwan3-upd-ja
e050337c5 luci-app-mwan3: update Japanese translation
177224c14 luci-app-firewall: expose flow offloading options
2f0c07a2c luci-theme-material: upgrade jquery
9de9a71a9 i18n: one more fix for Polish translation
36654b7f4 i18n: sync, fix and cleanup translations
67ba105de Merge pull request #1821 from TDT-AG/pr/20180521-protocols-remove-aiccu
9e3fb2c58 luci-proto-ipv6: remove outdated aiccu proto support
c181699bf Merge pull request #1481 from TDT-AG/luci-app-openvpn-fixes
59d91d8a7 Merge pull request #1818 from dibdot/lxc_fix
e9fa69df1 luci-app-lxc: remove wrong leftover from last commit
77d957c39 Merge pull request #1817 from dibdot/travelmate
85342e2c0 luci-app-travelmate: fix url ampersand encoding
1b2cd8d1c Merge pull request #1808 from dibdot/lxc_fix
fa4dc6be9 luci-app-lxc: fix "plain-vanilla" integration
7acacf2cf Merge pull request #1814 from Ansuel/lua-interpreter
da1e65529 luci-base: fix dispacher fail
bc8e92863 Merge pull request #1810 from musashino205/l10n/tmate-upd-ja
af19588b9 luci-app-travelmate: update Japanese translation
4b27ad002 Merge pull request #1809 from musashino205/l10n/adblk-upd-ja
d3c1951cb luci-app-adblock: update Japanese translation
ba8e7fd7b Merge pull request #1805 from musashino205/l10n/base-upd-ja
b01471b1f luci-base: update Japanese translation
b1fd056fa i18n: sync translations
37a4a1c07 luci-mod-admin-full: fix crash on wireless when no networks are declared
fdbb417ab luci-mod-admin-full: do not override iface section in wireless cbi map
64da34b13 luci-base: handle potential crash in luci.model.network.interface.get_i18n()
9ed48ef2a luci-base: break circular luci.config <> luci.model.uci dependency
72fe5dd70 Merge pull request #1801 from dibdot/adblock
840f45ecc luci-app-adblock: respect SimpleForm size limit
09de5a74e luci-lib-json: support serializing userdata
364c271a8 luci-mod-rpc: fix unresolved controller reference in rpc_auth()
828202ef5 Merge pull request #1769 from jow-/master
80cb4fef8 luci-base: raise maximum POST value size to 100KB
27b7e4318 lucihttp: update to latest HEAD
521554f4a Merge pull request #1748 from hnyman/wifidata
7b684361c Merge pull request #1793 from TDT-AG/pr/20180514-luci-app-ddns-fix-output
7a9957e72 luci-app-ddns: fix HTML page rendering in globals section
47971d220 Merge pull request #1797 from Rixerx/master
452c161ac Merge pull request #1796 from TDT-AG/pr/20180515-luci-app-mwan3-add-param
3782e74cf luci-base: update Polish translation
9a93359d4 luci-app-mwan3: add quality check options
2c6faaecd luci-app-mwan3: add dependecy to size option
9f796fad3 luci-base: add transitional /etc/init.d/ucitrack
fd1ddcc41 luci-mod-admin-full: rework wifi configuration
8deb94955 treewide: rework uci apply workflow
7cca31395 luci-base: enable uci session isolation
4edc9256f luci-base: show wifi chip identification on overview
e88a95ca2 luci-app-openvpn: run '/etc/init.d/openvpn reload' after commit
7c643558a luci-app-openvpn: fix validity check for new instance input field
bab9c12e2 luci-app-openvpn: use initscript to stop instances
2019-04-05 01:40:52 +02:00
Martin Weinelt b6c4e06b40
modules: update routing
e5fe4b6 Merge pull request #462 from ecsv/batadv-18.06
ee2d981 batman-adv: Merge bugfixes from 2019.1
4d7a182 nodogsplash: fix invalid pointer bug when clock is turned back (#456)
2ad165c Merge pull request #452 from dangowrt/openwrt-18.06
71f9aae luci-app-bmx7: update to v0.1-alpha
0e3d701 bmx7: update to git snapshot as of 2018-12-29
42af835 batman-adv: Refresh patches
2019-04-05 01:39:37 +02:00
Martin Weinelt 23cc093bd0
modules: update packages
b7bcf24a0 znc: backport CVE fixes to 1.6
f91539e92 Merge pull request #7807 from D-Albers/openwrt-18.06
550de2331 Merge pull request #8449 from micmac1/ssh2-1806-181
16fcd6d38 mosquitto: bump to v1.5.8
1a23db5b2 php7: Add PKG_CPE_ID for proper CVE tracking
7aacf2423 php7: update to 7.2.16
27433fc3e php7: fix cross compiling patch (fixes #8166)
00f6119bd php7: update to 7.2.15
ef57201aa php7: update to 7.2.14
e9271cf27 php7: update to 7.2.13
1308ba92c php7: update to 7.2.12
9e330d6e9 php7: update to 7.2.11
5e25be535 php7: update to 7.2.10
85c616557 php7: adjust load priority for openssl (fixes #6893)
31d279c96 nano: update to 4.0
59aa52ccd libssh2: version bump/CVE fixes
e47fe43ea Jinja2: Update to 2.10
8d7e62d95 ruby: update to 2.5.5
17a0279dd ruby: fix build for uclibc
017b74d35 vpnc: fix IPv6-triggered inoperability
563aafcee postgresql: Revert adding build dependency to zlib/host
3323ebddf Merge pull request #8403 from BKPepe/transmission_openwrt-18.06
c0293cd99 Merge pull request #8402 from BKPepe/netdata_openwrt-18.06
9bb4bcc9b Merge pull request #8395 from EricLuehrsen/unbound_191_1806
d444a910f transmission: update to version 2.94
99c3670bb Netdata: update to version 1.12.2
1e347beb3 libtalloc: Merge 2.1.14 from master (remove libbsd dependency)
a476bf8d0 unbound: update to 1.9.1
060e59a28 Merge pull request #8386 from wvdakker/openwrt-18.06
86efe678a Shorewall6: Bump to 5.2.0.5.
9cdc22eef Shorewall: Bump to 5.2.0.5.
3669215b2 Shorewall6-lite: Bump to 5.2.0.5.
762093fe7 Shorewall-lite: Bump to 5.2.0.5.
1a97a8444 Shorewall-core: Bump to 5.2.0.5.
121072523 postgresql: add HOST_BUILD_DEPENDS:=zlib/host
daef6665b gnurl: update to version 7.64.0
5fff80472 libgabe: add package
cb253649a libpbc: add new package
f03acaa39 Merge pull request #8346 from Cynerd/jinja2-missing-dep-18.06
2324d341e Jinja2: add missing dependency on markupsafe
0ba0e0d1b gnunet: revert accidentally applied libmicrohttpd changes
799c409d3 gnunet-secushare: add package (replacing gnunet-social package)
d70e35ba1 gnunet: GNUnet v0.11.0 release
799f553b2 postgresql: update to version 9.6.12
257dfbb55 libextractor: update to version 1.9
6c2266acf gnurl: update to version 7.63.0
3e6d392e0 openvswitch: bump to version 2.8.5
931070c26 jool: Backport two fixes for newer kernels.
2019-04-05 01:38:30 +02:00
Martin Weinelt e79fce2c6d
modules: update OpenWrt
ca8b4d684b kernel: bump 4.14 to 4.14.109
1ff4cd1ff1 kernel: bump 4.9 to 4.9.166
22a3e65662 kernel: bump 4.14 to 4.14.108
dac25a5f22 kernel: bump 4.9 to 4.9.165
6c3ca1d1ea kernel: bump 4.14 to 4.14.107
dcdf50956f kernel: bump 4.9 to 4.9.164
4336cfda12 ramips: allow packets with ttl=0
13eb73b278 mt76: update to latest openwrt-18.06 branch
0a637c7f87 kernel: bump 4.14 to 4.14.106
24f32072d2 kernel: bump 4.9 to 4.9.163
dcfca830a8 ipq40xx: copy Fritz4040 UBoot to STAGING_DIR_IMAGE
400601f0e3 tools/libelf: Add mirrors as main site is dead
f87a1874ef mt76: update to latest openwrt-18.06 branch
9f2cbcad6d busybox: add missing install dir
4918fe0291 kernel: bump 4.14 to 4.14.105
2b9d2f6624 kernel: bump 4.9 to 4.9.162

Build-tested: ar71xx-generci, ramips-mt7621
Runtime-tested: ramips-mt7621 (D-Link DIR-860L B1)
2019-04-05 01:35:46 +02:00
bobcanthelpyou ff7aeafad2 docs: fix typos and small text improvements 2019-04-02 02:32:50 +02:00
Andreas Ziegler b5b2a2176b ar71xx: remove redundancy from 2 target specifications 2019-03-31 17:45:24 +02:00
Manu.WTF 3b0e5fab71 ramips-mt7620: add support for Xiaomi MiWifi Mini (#1638) 2019-03-29 12:43:05 +01:00
David Bauer a9a4abb637 ipq806x: add support for NETGEAR R7800 (#1669)
The device is broken until the next release. The LEDs are currently not
working (fixed in current OpenWRT master).

Also give a brief explanation about the BROKEN status being dependent on
the WiFi chip used and not the SoC family in general.
2019-03-28 14:49:17 +01:00
bobcanthelpyou dca5abaa26 docs: rename target sunxi to sunxi-cortexa7
renamed by 210d97c53e
2019-03-26 00:34:34 +01:00
bobcanthelpyou 7d314821a8 docs: remove target ipq806x
was marked as broken by #1526 cause of #1505
2019-03-26 00:34:34 +01:00
bobcanthelpyou cae79eb074 docs: add new <%| tag for escaped expressions (#1683)
the tag was added by dd23a805c2
2019-03-23 18:37:49 +01:00
Matthias Schiffer c208fc4fd9
gluon-site: add better error message for domain name conflicts
When two domains alias the same name (or one aliases another), display a
meaningful error message like:

    Failed to alias domain 'foo' as 'bar', name already taken by
    domain 'baz'.
2019-03-22 20:15:25 +01:00
bobcanthelpyou 3b55cbc1f3 gluon-web: fix typos 2019-03-18 21:49:54 +01:00
Sven Eckelmann b850fff7e4 gluon-mesh-batman-adv: Only use local TT to count non-wifi clients (#1676)
The amount of local wifi clients is currently counted by two different
ways:

* asking the kernel wifi layer for the number of of clients on 2.4GHz and
  5GHz band
* asking batman-adv for the number of non-timed out entries in the local
  translation table with WiFi flag

The number of wifi24+wifi5 and the number of TT wifi client counts are
reported via respondd to various consumers. The ffrgb meshviewer is
displaying these values as:

* 2,4 GHz: wifi24
* 5 GHz: wifi5
* other: (TT local wifi+non-wifi clients) - (wifi24 + wifi5)

But the local translation table is holding entries much longer than the
wifi layer. It can therefore easily happen that a wifi client disappears in
the kernel wifi layer and batman-adv still has the entry stored in the
local TT.

The ffrgb meshviewer would then show this count in the category "other".
This often results in confusions because "other" is usually for ethernet
clients. And nodes with a frequently disappearing larger group of clients
(near bus stations or larger intersections) often show most clients under
the group "other" even when this devices doesn't have a LAN ethernet port.

It is better for presentation to calculate the number of total wifi clients
by summing up wifi24 + wifi5. And getting the number of total clients (non
wifi + wifi) by adding the result of the previous calculation to the sum of
non-wifi client in the local batman-adv translation table.

Fixes: 89a9d8138c ("gluon-mesh-batman-adv-core: Announce client count by frequency")
Reported-by: Pascal Wettin <p.wettin@gmx.de>
2019-03-16 13:37:49 +01:00
Manu.WTF 917d6af299 ar71xx: add support for D-Link DAP-1330 (#1672) 2019-03-15 23:35:35 +01:00
Martin Weinelt fe9892d96a
docs: add v2018.2.1 release notes 2019-03-15 22:53:01 +01:00
Martin Weinelt ce8cf1b900
ramips-mt76x8: fix image name for wr841n v13 2019-03-14 04:58:19 +01:00
bobcanthelpyou 170c494f40 docs: fix typos and common misspellings (#1668) 2019-03-10 20:15:25 +01:00
bobcanthelpyou e8b37b2d7c docs: remove unavailable devices (#1667)
- A Picostation M5 never existed
- TL-WR710N v1 and v2.1 are part of ar71xx-generic not ar71xx-tiny
2019-03-10 02:52:34 +01:00
Martin Weinelt 6e1a834bbc patches/openwrt: refresh 0006-generic-vxlan-backport-support-for-VXLAN-over-link-local-IPv6-to-4.9.patch (#1663) 2019-03-09 11:06:15 +01:00
Martin Weinelt 2086bed7cc modules: update OpenWrt
8de93ce745 mt76: update to the latest version
85cb473f93 mac80211: add a fix to prevent unsafe queue wake calls during restart
08db9397c9 mac80211: backport tx queue start/stop fix
810ee3b84a kernel: bump 4.14 to 4.14.104
5183df0dbf kernel: bump 4.9 to 4.9.161
eea538204b kernel: fix refcnt leak in LED netdev trigger on interface rename
f1803e3492 oxnas: add SoC restart driver for reboot
1bfe1ce5c4 oxnas: cheery-pick DTS improvements from master
9ee8c8daf4 kernel: bump 4.14 to 4.14.103
e2ba7a4b47 kernel: bump 4.9 to 4.9.160

Compile-tested: ramips-mt7621, ar71xx-generic
2019-03-07 22:40:47 +01:00
Sven Eckelmann b2f249e995 ath10k/ath10k-ct: fix incorrect multicast/broadcast rate setting
If no mcast_rate is set for the wifi-iface then there is no rate_idx (0)
set for the bss. This breaks for example 5GHz meshpoint interfaces because
0 maps to a CCK rate (11Mbit/s).

It must also be avoided that the ath10k-ct internal state for the rates is
not synced with the mac80211 rates state. Otherwise, the user specified
rate (e.g. a wifi-iface mcast_rate for a meshpoint interface) will only be
set on startup. And a short while after that, ath10k-ct specific code in
ath10k_check_apply_special_rates is missing a valid rate in its own
structures and is then recalculating a new default rate. This default rate
is in most situations not the requested rate.

Fixes: a399b60735 ("ath10k/ath10k-ct: support multicast and management rate control")
2019-02-26 15:16:37 +01:00
bobcanthelpyou dcf5f192a0 gluon-web-node-role: Update i18n role translation (#1655) 2019-02-25 21:24:08 +01:00
Martin Weinelt 36cdd2723e
modules: update packages
5de163d67 vallumd: bump to 0.1.4
b8c2c2b1b mosquitto: update to 1.5.7
8a2d56684 irssi: update to 1.2.0
d0f5ae180 [18.06] python3: fix [CVE-2018-20406]
dad217d34 shadowsocks-libev: flush ss rules on entry
bbc2e68ed mosquitto: bump to 1.5.6
9ffcfea19 mariadb: bump to 10.1.38
09b794ecc stubby: update to version 0.2.4
41c4f82f8 stubby: Remove iamperson347 from maintainer
2cf2210d8 stubby: add Jonathan Underwood as co-maintainer (#7307)
709a73604 stubby: add reload_config to documentation
aa8380721 stubby: fix loading of config file
6e2451dd0 stubby: add uci support to init file
7a2b9df89 stubby: bump PKG_RELEASE
304596d21 stubby: remove unnecessary core limit
fd8505f76 stubby: add SPKI pin set for Cloudflare cert
b77053d35 stubby: add Cloudflare 1.0.0.1 and ::1001 servers
3f17c54f2 stubby: use EDNS client-subnet privacy by default
935126632 stubby: fix config file definition
d3b090a31 stubby: rearrange Makefile for clarity
a3a73ef7b stubby: add missing dependency on ca-certificates
ccf0c71ac getdns: update to version 1.5.0
07e647645 getdns: Remove iamperson347 from maintainer
ca7555e52 getdns: fix missing libbsd dependency
cc8439566 acme: Fix loading credentials
fb3dd71ef youtube-dl: update to version 2019.01.30.1
4368783e9 python-idna: Add missing dependency on python(3)-codecs
480e4d7e8 python/python3: Fix lib2to3 fixes search
02dd97d14 libsndfile: update to 42132c543358cee9f7c3e9e9b15bb6c1063a608e
34dec8190 python3: backport CVE-2018-14647 patch from upstream [18.06]
3785db429 python: backport CVE-2018-14647 patches from upstream [18.06]
8f41fa7f8 nut: Default to run as root but fix alt runas
f7048b725 libsndfile: update to 8ddc442d539ca775d80cdbc7af17a718634a743f a/ulaw: fix multiple buffer overflows
e3f32b75b python/python3: fix .dist-info missing for setuptools and pip

Compile-tested: ramips-mt7621, ar71xx-generic
2019-02-25 14:47:12 +01:00
Martin Weinelt 9741bdfad6
modules: update OpenWrt
1be6ff6dc0 kernel: bump 4.14 to 4.14.102
e9cb40caa4 kernel: bump 4.9 to 4.9.159
d32bbd7477 mac80211: brcmfmac: backport 5.0 & 5.1 important changes/fixes
ce3a53c4f6 dnsmasq: prefer localuse over resolvfile guesswork
87fb8aea87 dnsmasq: allow using dnsmasq as the sole resolver
405840631c build: Accept BIN_DIR parameter for legacy-images
bc3eb970ab ar71xx: Fix 5 GHz MAC address for Archer C60 v2
20f1b7d3f5 kernel: bump 4.14 4.14.101
d669be4654 kernel: bump 4.9 to 4.9.158

Compile-tested: ramips-mt7621, ar71xx-generic
Runtime-tested: ramips-mt7621 (D-Link DIR860L B1)
2019-02-25 14:44:01 +01:00
David Bauer f52bd99e71 gluon-mesh-batman-adv: use libnl-tiny to get IPv6 addresses (#1616) 2019-02-17 19:53:24 +01:00
bobcanthelpyou 5cdb6e86c7 package: update urls to https 2019-02-16 19:25:49 +01:00
bobcanthelpyou 8549438063 docs: update links (moved permanently) 2019-02-16 19:25:49 +01:00
bobcanthelpyou 122e9e90cc contrib: update ECDSA utils link 2019-02-16 19:25:49 +01:00
Martin Weinelt b8ff310631
docs: link gluon-scheduled-domain-switch in nav 2019-02-16 16:50:30 +01:00
David Bauer 5b97b07f6a ramips-mt76x8: add support for Netgear R6120 (#1650) 2019-02-16 14:41:48 +01:00
Martin Weinelt b8cc35a1b1
modules: update OpenWrt
62feabecd8 kernel: bump 4.14 to 4.14.99
9fb3710a8b kernel: bump 4.9 to 4.9.156
e5ace80759 mt76: update to the latest version
fbb2186fbd kernel: bump 4.14 to 4.14.98
72870cc108 kernel: bump 4.9 to 4.9.155
19a6c4b2b3 mac80211: brcmfmac: fix a possible NULL pointer dereference
d997712c71 ath9k: register GPIO chip for OF targets

Compile-tested: ipq40xx, ramips-mt7621
Runtime-tested: none
2019-02-16 01:38:54 +01:00
David Bauer c1b9ea2d9c gluon-scheduled-domain-switch: add package (#1555)
This package allows to automatically switch to another domain, either
at a given point in time or after the node was offline long enough.
2019-02-12 11:00:29 +01:00
Martin Weinelt 131548580e Revert "docs: multidomain: add missing uci commit in gluon-reconfigure example"
This reverts commit b92e404437.

Committing in this case is unnecessary as that job is already handled by 998-commit
which is in a superior position to commit, as it is run after all relevant changes to
the configuration have been made.
2019-02-11 23:53:55 +01:00
David Bauer 387a9b4fe4 gluon-core: assert WiFi driver provides 4 MAC-addresses (#1626)
Gluon has multiple ways to obtain unique MAC-addresses. They are either
provided by the WiFi driver or derived from the primary MAC-address.

Quoting the same file:

> It's necessary that the first 45 bits of the MAC address don't
> vary on a single hardware interface, since some chips are using
> a hardware MAC filter. (e.g 'rt305x')

This currently fails in case the rt35xx based chips mac address differs
from the primary MAC. In this case, the MAC address for the client0 radio
(vif 1) comes from the WiFi driver. As there is only a single
MAC-address provided by '/sys/class/ieee80211/phyX/addresses' but the
MAC-address for mesh 0 (vif 2) is derived from the Node-ID, resulting in
different first 45 bits. The WiFi won't come up altogether in this case.

This commit verifies at least 4 MAC-Addresses are provided by the WiFi
driver. If this is not the case, all MAC-addresses are derived from the
primary MAC. This way, affected radios are working correctly.
2019-02-11 21:22:46 +01:00
Julian Labus b92e404437 docs: multidomain: add missing uci commit in gluon-reconfigure example 2019-02-11 16:06:23 +01:00
Sven Eckelmann a399b60735 ath10k/ath10k-ct: support multicast and management rate control
Drivers with software rate control can directly use the selected multicast
rate for multicast/broadcast frames and the minimal basic rate for
management frames. But drivers with offloaded rate control algorithms must
be informed about such upper layer decisions to configure the
hardware/firmware.

A new BSS_CHANGED_MCAST_RATE is introduced in mac80211 to automatically
inform all drivers. ath10k can detect this event and forward it via WMI to
the driver. The already existing BSS_CHANGED_BASIC_RATES can be used to
select the management rate.

Without the WMI commands, a low rate (not necessarily one from the basic
rates) is used for bcast/mcast/management frames. This means that the
/etc/config/wireless settings basic_rate and mcast_rate would have no
effect on the rates selected by this driver for the mentioned frames.
2019-02-11 01:22:22 +01:00
Steffen Förster 7b092e1e13 ramips-mt7620: add support for ASUS RT-AC51U (#1642) 2019-02-09 23:31:58 +01:00
David Bauer 1ace3d5bb0 ramips-mt76x8: add support for TP-Link Archer C50 v4 (#1641)
This backports the TP-Link Archer C50 v4.

We are dropping the following upstream commits. They add support for the
TP-Link recovery-flag which enabled the web-recovery. As they are not
needed for the router to work, we drop them for now.

28cd2ca base-files: sysupgrade: support additional mtd options
1e06482 mtd: add logic for TP-Link ramips recovery magic
2019-02-08 02:48:09 +01:00
oszilloskop b9cf102f46 ar71xx: fix incorrect gl-ar150 and gl-ar300m image names (#1640)
also added manifest aliases for gl-ar150, gl-ar300m, gl-ar750
2019-02-07 01:55:07 +01:00
Martin Weinelt 9f7276cdd6 docs: improve references to the IRC chatroom (#1643) 2019-02-07 01:53:18 +01:00
Martin Weinelt f9634ca0f6 meta: add template for bug reports (#1637) 2019-02-05 01:22:55 +01:00
txt-file 97485dcecf target x86-*: change from ext4 to squashfs (#1634)
This allows for smaller firmware images and makes it possible to reset a
device via firstboot command.

Signed-off-by: Matthias Fritzsche <matthias@chemnitz.freifunk.net>
2019-02-03 23:57:16 +01:00
Matthias Schiffer 2cbb2808a0
docs: don't highlight code blocks unless requested explicitly 2019-02-03 22:48:01 +01:00
Matthias Schiffer f33d729253
docs: use sphinx_rtd_theme for HTML output
It makes sense to render using the same theme locally that is used on RTD.
The theme can be installed using:

    pip install sphinx_rtd_theme
2019-02-03 22:45:47 +01:00
Matthias Schiffer cd355bbbfb
docs: update Makefile and config to Sphinx 1.8.4 defaults 2019-02-03 22:41:55 +01:00
bobcanthelpyou 95acfb5493
docs: update sphinx config to v1.4.9 2019-02-03 22:41:55 +01:00
Martin Weinelt 9342e31d45
brcm2708-bcm2708: add manifest alias for Raspberry Pi Model B Plus Rev 1.2 2019-02-03 21:15:32 +01:00
Martin Weinelt 659eecd974 modules: update OpenWrt
9b14c7d3d1 netifd: handle hotplug event socket errors
e33612484a brcm63xx: HG655b: fix the imagetag at dts
ef17edae3d kernel: bump 4.14 to 4.14.97
21762fe9d6 kernel: bump 4.9 to 4.9.154
ab41836321 mt76: update to the latest version
026f08a610 kernel: bump 4.14 to 4.14.96
1f1f421af6 kernel: bump 4.9 to 4.9.153

Compile-tested: ar71xx-generic, ramips-mt7621, x86-64
2019-02-03 01:29:57 +01:00
Martin Weinelt 96fea449a3
modules: update OpenWrt
13eeee7b2b mt76: update to the latest version
ac1ce25671 OpenWrt v18.06.2: revert to branch defaults
a02809f61b OpenWrt v18.06.2: adjust config defaults
cddd7b4c77 base-files: config_get: prevent filename globbing
e6162b2127 dnsmasq: backport missing braces fix
d4178c8f47 build: fix umask detection bashism
b98b55a64f build: fix STAGING_DIR cleaning for packages
e6c2f3feb1 ar71xx: use correct wan mac address for the TP-Link Archer C7 v4
2c7a1ccaea ar71xx: Add usb drivers in Archer C7 v4/v5 images
39c3b5139f openssl: bump to 1.0.2q
80ed6ebc56 dnsmasq: backport upstream static lease fix
4f2199f528 wireguard: bump to 0.0.20190123
8c105c62e4 wireguard: Update to snapshot 0.0.20181218
1447924c95 mbedtls: update to 2.14.1 for 18.06
e5a0b6cde0 uhttpd: disable concurrent requests by default
11bfb39e39 kernel: bump 4.14 to 4.14.95
dd5fa217dc kernel: bump 4.9 to 4.9.152
91d3b87353 uboot-fritz4040: fix crash caused by interaction with gcc 7.1+

Compile-tested: ar71xx-generic, mpc85xx-generic, ramips-mt7621
Runtime-tested: ramips-mt7621 (D-Link DIR860L)
2019-01-31 02:58:41 +01:00
Matthias Fritzsche 3abadc286f ar71xx-mikrotik: remove kmod-ath5k package
ath5k supports only IEEE 802.11 a/b/g

Signed-off-by: Matthias Fritzsche <matthias@chemnitz.freifunk.net>
2019-01-29 12:54:30 +01:00
Matthias Fritzsche cecfe03839 ar71xx-mikrotik: add missing OpenWrt image types
Signed-off-by: Matthias Fritzsche <matthias@chemnitz.freifunk.net>
2019-01-29 12:54:01 +01:00
Martin Weinelt 8b9cdd32f6 modules: update routing
ea345d1 Merge pull request #442 from ecsv/batadv-18.06
0231308 batman-adv: Merge bugfixes from 2019.0

Compile-tested: ar71xx-{tiny,generic}, ramips-mt7621, x86-64
Runtime-tested: ar71xx-generic (TP-Link TL-WR1043NDv2)
2019-01-27 17:59:05 +01:00
Martin Weinelt 3ed0ba5a74 modules: update OpenWrt
6e16dd1234 mt76: update to the latest version
76037756d0 kernel: bump 4.14 to 4.14.94
455bfd1065 kernel: bump 4.9 to 4.9.151
fafd7691e6 opkg: update to latest Git head
e789bd2243 opkg: drop argument from check_signature in opkg.conf
3603c2321d ramips: mt7621: fix 5GHz WiFi LED on ZBT WG3526
7f98cd8d50 odhcpd: fix onlink IA check (FS#2060)
abd0f7995e kmod-sched-cake: bump to latest cake

Compile-tested: ar71xx-{tiny,generic}, ramips-mt7621, x86-64
2019-01-26 16:41:47 +01:00
Martin Weinelt 9153b38117 gluon-core: fix unifiac-{lite,pro} primary mac selection
fixes #1629
2019-01-25 01:50:53 +01:00
Martin Weinelt c4d435c9c7 gluon-core: sort 010-primary-mac by target and board_name 2019-01-25 01:50:53 +01:00
Malte Moeller 692f61ec5a change device identifier to match machine identifier
this matches the output of
lua -e 'print(require(platform_info).get_image_name())'

This way the manifest file is accepted by the autoupdater
2019-01-18 23:33:05 +01:00
Martin Weinelt 86148bdfc3 gluon-status-page: rebuild status-page.js after 02dfc66
The original commit only applied its changes to the source file and did
not rebuild the minified file, therefore the change never went live.
2019-01-17 23:25:31 +01:00
Manu.WTF 04cca280a1 ramips-mt7620: add support for Nexx WT3020 (8M) 2019-01-17 22:42:10 +01:00
Martin Weinelt de19cd56ba
modules: update OpenWrt
939fa07b04 kernel: bump 4.14 to 4.14.93
cae263227f kernel: bump 4.9 to 4.9.150
f34ad1a8f0 mt76: update to the latest version
d58c6aedb6 tools/firmware-utils: fix sysupgrade typo in mkdapimg2
0cef35f096 tools/firmware-utils: fix sysupgrade typo in mkdapimg
0d6eaa0ba5 octeon: fix typo in platform.sh
069fda746e fstools: update to the latest master branch
3b4e779e93 fstools: update to git HEAD
d7275c0312 fstools: filter unknown action in mount.hotplug script
e0daa62af6 fstools: Install mount.hotplug and 10-fstab.defaults as 600
4c0e15fc16 base-files: install missing /etc/iproute2/ematch_map
c3fef269d6 cns3xxx: use actual size reads for PCIe
367ccf7a2d kernel: bump 4.14 to 4.14.91
b9dcf2de5f kernel: bump 4.9 to 4.9.148
a8cc06c537 mac80211: brcmfmac: backport firmware loading changes & fix memory bugs
c5c20f510a odhcpd: noop to fix PKG_SOURCE_DATE
62ddfaff32 odhcpd: filter routes based on prefix_filter
8a9b0b95df apm821xx: switch MX60(W)'s recovery images to multi-image method
afcdf099b7 kernel: fix f2fs on big endian machines
016a71a18a odhcpd: backport prefix filter/NETEV_ADDR6LIST_CHANGE event fixes
806b570a35 ath10k: update QCA4019 firmware
baa00b2182 brcm2708-gpu-fw: update to git HEAD
5af6b7976f bcm53xx: backport DTS changes queued for the 4.21
dbbba84ed4 bcm53xx: rename dts backport patches changing their prefixes

Compile-tested: ar71xx, ramips-{mt7621,mt76x8}, x86-64
Runtime-tested: ramips-mt7621 (D-Link DIR860L)
2019-01-15 17:07:04 +01:00
Matthias Schiffer 2aa324ecf7
gluon-config-mode-geo-location: fix source/i18n mismatch
The text was changed in the i18n files, but the corresponding change in the
Lua sources seemingly got lost during a rebase.

Closes #1611
2019-01-03 03:16:11 +01:00
Matthias Schiffer cdbd7b65df
docs: releases/v2018.2: fix feature/package name for config wizard map 2019-01-02 20:20:18 +01:00
Ralf Jung 591107111c
docs: releases/v2018.2: add renamed target information to changelog 2019-01-02 20:17:14 +01:00
David Bauer 55d2acd709 ramips-mt76x8: remove broken flag (#1608)
This commit removes the broken flag from all devices in the mt76x8
subtarget.

The stability of the mt76 driver for the mt7628 and mt7612 has greatly
improved in the last half-year. It might be still behind ath9k and
ath10k but it is suitable for daily use.

This affects the following devices:

 - GL.iNet MT300N v2
 - TP-Link Archer C50 v3
 - TP-Link TL-WR841 v13
2018-12-29 23:32:02 +01:00
Martin Weinelt 656230a79f ar71xx: add support for FRITZ!Repeater 300E (#1604)
Signed-off-by: Martin Weinelt <martin@darmstadt.freifunk.net>
2018-12-29 22:51:57 +01:00
David Bauer 888cddb662 gluon-core: distribute dualband radios (#1606)
This commit distributes dualband radios evenly on 2.4 GHz and 5GHz with
2.4 GHz being prioritised higher than 5 GHz. This means in case a device
has only a single radio and this radio supports operation in both bands,
it will be set to 2.4 GHz.

Tested-by: Martin Weinelt <martin@darmstadt.freifunk.net>
Signed-off-by: David Bauer <mail@david-bauer.net>
2018-12-29 21:48:12 +01:00
Matthias Schiffer 497b77b5db
docs: post-release version bump 2018-12-29 21:18:53 +01:00
Matthias Schiffer 3699ce8c1f
Gluon v2018.2 2018-12-29 21:07:59 +01:00
Matthias Schiffer e8aa119289
docs: add v2018.2 release notes 2018-12-29 21:04:59 +01:00
David Bauer 9bb91e7846
docs: add pointer for AVM flash instructions
Adds a footnote with a link to an instruction on how to flash Gluon onto
AVM routers.

Signed-off-by: David Bauer <mail@david-bauer.net>
2018-12-29 21:03:50 +01:00
Matthias Schiffer e0f2257e4f
docs: add TL-WR810N v1 to device list 2018-12-29 20:13:31 +01:00
Matthias Schiffer a6bce7959d
ramips-mt76x8: remove VoCore 2 BROKEN flag again
The driver has stablized enough to officially support ramips-mt76x8 devices
again. At least remove BROKEN for VoCore 2 (as it was supported before).
2018-12-29 19:31:51 +01:00
Andreas Ziegler 5746fb08c4 ramips-mt7621: remove BROKEN flag for ZBT WG3526-16M & WG3526-32M 2018-12-28 21:15:29 +01:00
Andreas Ziegler 276c6c3dae ramips-mt7621: fix 5GHz WiFi LED on ZBT WG3526 2018-12-28 21:15:29 +01:00
Matthias Schiffer 9eadf02b34
modules: update OpenWrt
eef6bd3393f4 bcm53xx: update pinctrl driver & use its new DT binding
61323d22c073 dropbear: fix dropbear startup issue
2018-12-26 18:54:55 +01:00
Matthias Schiffer d535b4708e
docs: remove ramips-mt76x8 target from supported devices
The ramips-mt76x8 target is marked as BROKEN.
2018-12-26 18:10:19 +01:00
Matthias Schiffer 15c471642e
docs: add Gluon v2018.1.4 release notes 2018-12-26 16:37:02 +01:00
Andreas Ziegler 0df910bb48 docs: add D-Link DIR-860L (B1) to supported hardware list 2018-12-24 12:56:53 +01:00
Andreas Ziegler 74f6372348 docs: standardize revision notation in supported hardware list 2018-12-24 12:56:17 +01:00
Martin Weinelt e9c6153cd5
ramips-mt7621: unflag dir860l-b1 as broken with 11s mesh
Signed-off-by: Martin Weinelt <martin@darmstadt.freifunk.net>
2018-12-23 02:49:17 +01:00
Matthias Schiffer b042349b36
modules: update OpenWrt packages
578762f4fcbf sqlite3: remove $(FPIC)
68694dddb128 sqlite3: security bump
13a4dcd6147c net/mosquitto: bump to 1.5.5
3e4fae2465fe CircleCI: [18.06] branch specific version.
bb1b12733e1a nut: Backport fixes from master
e6769fc7efd2 libsndfile: Fix MIRROR_HASH
f4321408639e libsndfile: add PKG_SOURCE_DATE
18c316638581 libsndfile: switch to cmake
6124b001e9e5 libsndfile: switch to git
e802a0c00880 tiff: security bump to 4.0.10
b9b3445cc0a9 tree: Update to 1.8.0
890c302e1a92 net/mosquitto: support more acl plugin options
8643915bbd2e darkstat: [18.06] procd init script and enabling additional parameters
8ccfae065f14 prometheus-node-exporter-lua: close io.popen files to reap zombies
430f6c01641b build,circleci: Updates with additional checks from travis scripts.
677eb7ec2b99 build,circleci: add curl & wget to base image
7370760f5de0 nano: update to 3.2
1f2f177d3ca0 collectd: update to 5.8.1
44458746f2dc collectd: remove obsolete references to avr32
635d96ca45ac collectd: include nls.mk for mysql plugin
86c3ea10ecd3 utils/collectd: run with low priority
f1209a6eb8ef net/mwan3: fix NDP on ipv6 for ra services
b6f6df1d771e strongswan: backport upstream fixes for CVEs in gmp plugin
2018-12-20 21:45:38 +01:00
Matthias Schiffer 83f2dc230d
modules: update OpenWrt
753531da249f wireguard: bump to 0.0.20181119
6de949113210 wireguard: bump to 0.0.20181115
6319242a2a37 wireguard: bump to 0.0.20181018
a6a3abeb96f5 wireguard: bump to 0.0.20181007
a74369a64d0a wireguard: bump to 0.0.20181006
1f7504b8843d ethtool: update to 4.19
83cbf4c0bacd ethtool: Update to 4.18
44979a31e13b ethtool: Update to 4.17
2f97b405fed4 ethtool: Update to 4.16
ec9e3e6a9e3e mbedtls: Cosmetic cleanups
492174198f61 tools/e2fsprogs: Update to 1.44.2
e78aa6f77b73 strace: Update to 4.22
3af64ddbff9f fstools: Add the new options available in the menuconfig
dfa9d4a70ec8 fstools: update to latest git HEAD
fc38aad19491 x86: make sysupgrade.tgz reachable again
6b0bafb16b77 x86: add packages files to image bootfs
dab5305e3166 x86: mount writable bootfs
75d4465464e6 include/rootfs.mk: remove boot directory
0f5b8a92b42d mwlwifi: update to version 10.3.8.0-20181114
575621e35561 lantiq/basefiles: use shutdown instead of stop when the system goes down
f7a97a21f77b base-files: sysupgrade: Allow downloading of firmware images using HTTPS
0340d3ad2d1b flex: Add a lex symlink
e2637a471a64 Revert "iptables: fix dependency for libip6tc on IPV6"
c756d666dc04 scripts: update config.guess and config.sub
66ff4e478a1b mwlwifi: update to version 10.3.8.0-20181029
ebe02f7a354f mwlwifi: driver version to 10.3.8.0-20181022
2046cd259035 mwlwifi: driver version to 10.3.8.0-20181008
3d4eb5607817 wolfssl: update to version 3.15.3-stable
53249917825a tools/ccache: update to 3.5
1249e6d498e6 tools/xz: Add PKG_CPE_ID for proper CVE tracking
ae16d0fb39d6 tools/libressl: Add PKG_CPE_ID for proper CVE tracking
b2df8076bd69 tools/patch: Add fedora patch for crashing git style patches
27528d48e1f2 tools: patch: Add missing CVE-2018-6951 fix
a10c67b05727 tools: patch: Fix build by not modifing Makefile.am
1adb3b28a9c1 tools: patch: make patch build depend on automake
ed32045bcc64 patch: apply upstream cve fixes
ab64f9da81c7 ugps: update to latest git HEAD
b64622b0c8de uqmi: update PKG_RELEASE version
bcf824a4794f uqmi: stop proto handler if verify pin count is not 3
4f02bee9bbc7 uqmi: evaluate pin-status output in qmi_setup function
5a3810b38604 uqmi: do not block proto handler if SIM is uninitialized
1e012fd697d8 uqmi: do not block proto handler if modem is unable to registrate
5c10aaa65b1c uqmi: fix variable initilization for timeout handling
251f4fd20e7c uqmi: add timeout option value
860e2dac40db uqmi: redirect uqmi commands output to /dev/null
5d8040455e42 uqmi: fix indenting
1c56c3d2530c gre: make encaplimit support configurable
d5dd3b113465 odhcpd: update to latest git HEAD (FS#1853)
dc78c70d5c07 iw: strip a few more non-essential features from iw-tiny
ab1b46870153 iw: fix filtering linked object files for iw-tiny
0609ea0bf0de iw: add iw-full package without size reduction hacks
0d8ef978744e ubus: update to latest git HEAD
ea08a29d2a1c ipset: update to 6.38
52e9f03b49f0 zram-swap: bump pkg version
243265812813 zram-swap: Add "max compression streams" configuration option
2d4b52707dd6 zram-swap: fix number of created zram devices for multicore CPU's
9a5509736a8e zram-swap: fix zram dev reset for multicore cpu devices
5ff4ea6bc4d2 zram-swap: compression algorithm configuration option
afd6460418df zram-swap: Shell cosmetic
ac7c30708f8b zram-swap: remove trailing whitespaces in init script
d275b30414dc odhcpd-ipv6only: fix dependency for IPV6
b1cc8c8ef246 netifd: update to latest git HEAD
0ca423d59509 netifd: update to latest git HEAD
46fa2453fdbd hostapd: expose device taxonomy signature via ubus
c1a856b18ba8 hostapd: add support for client taxonomy in the full config
8bf1a35eda4f hostapd: fix MAC filter related log spam
0439280c2fcf kernel: support gcc-optimized inlining on all architectures
a29fe94e8cef kernel: Add missing config option for NFSDv4
c1e53d2c82c4 kernel: build support for NFSv4 in nfsd
1a3c129967e0 kernel: add missing dependency to regmap to kmod-gpio-mcp23s08
9885d3aec1db build: Introduce building of artifacts
16f4057188b7 build: fix libressl build on x32 (amd64ilp32) host
8b07cd6000dd build: remove obsolete -rc kernel testing rewrites
868a4cf69f93 build: insert blank line after KernelPackage template to allow chaining calls to it
ca05fd5ebf20 build: fix kernel headers install for uml
2f11a9ed68f5 cns3xxx: fix writing to wrong PCI registers
7b0e1d28e89e kernel: bump 4.14 to 4.14.89
386a57dc596c kernel: bump 4.9 to 4.9.146
217219ee1dd4 kernel: Activate VDSO on MIPS again
fbce30208801 wireguard: bump to 0.0.20180925
113dadc6dde5 wireguard: bump to 0.0.20180918
9f9f8db13865 wireguard: bump to 0.0.20180910
686f70729321 wireguard: bump to 0.0.20180904
b920285883c7 wireguard: bump to 0.0.20180809
4e165fbc29cb wireguard: bump to 0.0.20180802
b3cc304e4552 iptables: fix dependency for libip6tc on IPV6
468a4b5b6279 netifd: do not validate relevant section when ipv6 is not supported
0ccf009b623a base-files: add network_get_metric() to /lib/functions/network.sh
d5b045b52b8c ncurses: use default host install
38e99cb37942 gettext-full: host compile with -fpic
9a01ff5c0349 dante: disable sched_getscheduler() - not implemented in musl
991e43c894d0 kernel: re-enable MIPS VDSO
85c77301d4ad base-files: fix postinstall uci-defaults removal
6bcafab581cd rules.mk: add ESED command
a3446cb0d227 lldpd: inhibit linking of libbsd on !GLIBC
63b867adedf4 kernel: fix build of nftables
69d6da1de601 kernel: generic: Fix nftables inet table breakage
bbc0c4d9cbfe mwlwifi: driver version to 10.3.8.0-20180920
6f50d5ccf378 map: drop default encaplimit value
f6eab3c3de02 ds-lite: drop default encaplimit value
d9f845f76132 odhcpd: enable ipv6 server mode only when it is supported
15a023a458a2 tools/expat: fix docbook2man error on some systems
4b5e062bd3b9 base-files: /etc/services: add missing 'rpcbind' alias
376e9294c718 usbutils: Update usb.ids to 0.315
3dbdd404a872 hostapd: Fix compile with OpenSSL 1.1.0 + no deprecated APIs
fa3805f2b6d3 scripts/ipkg-build: quash error messages when conffiles.resolved is empty
f5cf9b265f78 scripts/metadata.pm: avoid adding dup names in provides list
0dbafc3a3a9b strace: fix build on aarch64
8cac88af4b0f odhcpd: bump to git HEAD (detect broken hostnames)
69f28f3a205d hostapd: fix build of wpa-supplicant-p2p
42dafa0ac589 build: add support for enabling the rootfs/boot partition size option via target feature
62e7ad1d2100 ppp: remove hardcoded lcp-echo-failure, lcp-echo-interval values
87a6aadfd558 base-files: provide more tolerant xterm detection
40ca437c325d brcm47xx: Enable USB power on WNDR3400v3
9afbe27bd01f kernel: add kmod-tcp-bbr
39420c3eadd8 libbsd: Update to 0.8.7
8ec7ad033efd kernel: fix kmod-gpio-mcp23s08 for linux 4.14
741f03b8b7c4 x86/64: enable X86_INTEL_LPSS to select PINCTRL
7d00815ea80a x86: geode: Add missing config options
ac7b9ca362f0 x86/geode: enable X86_INTEL_LPSS to select PINCTRL
4424fa9ef0bb x86: add UHCI and XHCI USB host drivers to 4.14
7772a5b05be1 build: Unset CDPATH to avoid problems
97fddb2fddbf dropbear: backport upstream fix for CVE-2018-15599
e005beec2d02 samba36: Enable umdnsd support
57f3a57abde3 base-files: create /etc/ethers by default
a009d4cdf3de mwlwifi: Update to 10.3.8.0-20180810
1e06b02bf77f firewall: bump to git HEAD
d93bd72a9806 base-files: add function to get mac as text from flash
54278dfa6938 base-files: use consistent coding style
a2b2a9c55fd9 base-files: make wifi report unknown command
7a52e0a7ab08 odhcp6c: apply IPv6/ND configuration earlier
cc6da6fa1ad6 ustream-ssl: update to latest git HEAD
4db4444697b8 imagebuilder: manifest function show stderr
2890abbcc032 scripts: time.pl: avoid hard Time::HiRes dependency
b4454ca4fae1 build: remove GNU time dependency
43c96e8dd87e iwinfo: update to latest Git HEAD
34e3a4a034bb wolfssl: disable broken shipped Job server macro
30d7924c3c62 wolfssl: remove myself as maintainer
eb9ac2590343 openvpn-easy-rsa: update to 3.0.4
38d4ba4e1917 kernel: package x86-optimized crypto-misc modules
63a87b4c7a53 base-files: do not add relevant sections & options except when ipv6 is support in kernel
c58c31bf9974 base-files: sysupgrade: abort if config backup fails
1c833e7bce26 base-files: fix HOME_URL replace
7939cd49c149 include: add netdev family support for nftables
08e73c9526f9 ncurses: install lib on host build
eb7ab27336d8 igmpproxy: drop SSDP packets
f1b086bf0fe4 include/verbose.mk: Add sc to failure message
de3e415a2e95 igmpproxy: add a silent logging option
81541d9159c9 bcm53xx: exit if writing kernel during sysupgrade fails
8dd91b56bef0 brcm2708: Update brcm2708-gpu-fw package
031d5cf24849 kernel: don't auto attach ubi on read error
e6945262642a kernel: handle bad blocks in ubi auto attach code
edc2af2be931 kernel: improve ubi auto attach code readability
c0673db23f1c build: do not override CCACHE_DIR when ccache is disabled
f8750b1a433f build: prereq-build.mk: fix gcc/g++ SetupHostCommand invocation
e5c46a112bed hostapd: remove unused struct hostapd_ubus_iface
aa3e4d56c6a5 base-files: fix wrong sysctl parameter order
4e4d124b27a3 hostapd: fix conflicts hell
775473cf8d47 hostapd: cleanup package definition
0282d04a85b3 openvpn: increase procd termination timeout to 15s
fa112bc46ac7 librpc: add host build to install h files needed for nfs-kernel-server to get compiled
6d5a6c5c9b0e verbose.mk: quote SUBMAKE options
e68e498ff354 kernel: replace bridge port isolate hack with upstream patch backport on 4.14
b06665b2052e kernel: adjust bridge port isolate patch to match upstream attribute naming
0291b76af963 tools/ccache: update to 3.4.2
bc6c4fcd2d67 tools/cmake: update to 3.11.4
24bf0c63dcde fixup-makefile.pl: fixup when PKG_SOURCE is defined elsewhere
becdd2b28e0d build: ASLR hardening use $(FPIC)
f5e33b98394e toolchain: gdb: enable TUI
3341376e0bed ebtables: update to latest git 2018-06-27
b1c42ef11571 ramips: fix wizfi630a swapped lan/wan port
3e3b286fa17a usbutils: Switch to Fedora usbutils
66353bdf5a91 samba36: Disable external libtdb and libtevent
e89126d5d2dc swconfig: swlib_map_settings(): change return type to void
c388a92d61af swconfig: fix un-initialized return value
3b9bfe8328e0 build: include package directory in sha256sums when running on buildbot
ef7a6a4d7260 base-files: add menuconfig option for HOME_URL
7408cdaa310f netfilter: add bpf match support
9f8f5d4d142a dropbear: let opkg manage symlinks of ssh, scp
32b18f6e211e busybox: udhcpc: replace udhcpc_no_msg_dontroute patch by upstream fix
fe193369872b busybox: update to 1.28.4
6d59535b6ac5 nftables: bump to version 0.9.0
cd116c6d5c8e libnftnl: bump to version 1.1.1
21bcc90b1021 base-files: exit if mtd write command fails during sysupgrade
b81774cff807 ramips: mt7621: fix mtu setting with kernel 4.14
3a507b2f9b6e kernel: avoid flow offload for connections with xfrm on the dst entry (should fix IPSec)
1e0db693dfe6 hostapd: make cli treat UNKNOWN COMMAND as failing
cc7fa7fcecbd ramips: fix reboot with W25Q256 with 4-address-mode enabled
a6b561dd01d3 ebtables: update to latest git 2018-06-06
2b51cac21a5a scripts: Replace obsolete POSIX tmpnam in slugimage.pl with File::Temp function
fc0907bc2599 netifd: drop conflicting 'device' interface property
b7beb89b5838 nettle: bump to 3.4
3e02d196553c ca-certificates: ca-bundle: add symlink for openssl default setting
60b29c9c177d curl: Add ca-bundle dependency
0d3bdf7b5940 curl: Use ca-bundle for all TLS libraries.
31f935edafa4 ath10k-firmware: Fix QCA6174 support
5826efd18ca9 hostapd: properly build hostapd-only SSL variants
000a3fef0ad9 hostapd: update packaging and patches
0d08c6705864 hostapd: convert ssl provider build options to variants
a35f24309021 hostapd: update to git HEAD of 2018-05-21, allow build against wolfssl
5435e8023e95 ustream-ssl: fix build against wolfSSL
42121995c7e5 wolfssl: change defaults to cover wpa_supplicant needs
22739871fe51 wolfssl: add PKG_CONFIG_DEPENDS symbols
49487b0ca489 wolfssl: update to version 3.14.4
fbd840724821 package sysfsutils: add support for sysfs settings at boot
903ef9aaecfb kernel: merge kmod-fbcon with kmod-fb
db4341d907a0 ath10k-firmware: Fix mirror hash sum
2e7e60f2d6eb ath10k-firmware: Update QCA988X firmware to the latest version
25f58ed81a34 nftables: bump to 0.8.5 version
1e432993c513 libnftnl: bump to 1.1.0
2f2055de0edb ebtables: update to latest git 2018-05-15
2018-12-20 21:43:51 +01:00
Matthias Schiffer 41174876aa
modules: update Gluon packages
30be52e03bbf autoupdater: consider end of string smaller than all characters except for '~'
688051cb21d6 autoupdater: fix regression in version compare
0835251ca9e2 libplatforminfo: extend Makefile to define compile with custom target
90b26e338877 libplatforminfo: add Config.in for custom target
3a9ea0b47f4b libplatforminfo: add custom definition target
2018-12-20 19:42:40 +01:00
Christoph Krapp b5aa8c2f7c ar71xx: add support for ZyXEL NBG6616
Signed-off-by: Christoph Krapp <achterin@googlemail.com>
2018-12-20 14:12:50 +01:00
Micha Lenk 4aebb0fd17 docs: getting_started: Update to Debian Stretch (#1602)
I just followed this document on a Debian Stretch, and it worked out of
the box. So let's use Debian's current stable release here.
2018-12-20 01:06:01 +01:00
Martin Weinelt c6ad711940 modules: update OpenWrt
50789acf4e ar71xx: add support for UniFi-AC-Mesh-Pro
40e1450f59 kernel: bump 4.14 to 4.14.88
85f42a74d3 kernel: bump 4.9 to 4.9.145

Compile-tested: ar71xx-generic, ramips-mt7620, ipq40xx
2018-12-16 01:04:42 +01:00
Martin Weinelt 01a5a79129
modules: update OpenWrt
6f74e269c8 kernel: bump 4.14 to 4.14.87
b2f243394e kernel: bump 4.9 to 4.9.144
2213b20aee kernel: bump 4.14 to 4.14.86
bcd7644007 kernel: bump 4.9 to 4.9.143
d5afaa4114 openvpn: re-add option comp_lzo
629073e86d rpcd: update to latest Git head
1cd945ea22 ramips: fix leds on GL.iNet GL-MT300N-V2
fbadfecbb5 ipq40xx: fix openmesh sysupgrade with tar content out of order
06a20afb34 rules.mk: fix syntax error
d40e90986c rules.mk: add INSTALL_SUID macro
d40de11d1b base-files: fix prerm return value, align with postinst code
cc8e875039 sdk: find kernel modules when KDIR is a symlink
a8b292afe6 uhttpd: update to latest Git head
7a8b75375c uhttpd: support multiple Lua prefixes
fede6df09e uhttpd: update to latest Git head
9671a2d2c8 apm821xx: MBL: load kernel/dtb from SATA 0:1 first
26ebcc88e3 apm821xx: wndr4700: restore sd-card media detection
5337319bdf uclient: update to latest Git head

Compile-tested: ar71xx, ipq40xx, x86-64
Runtime-tested: ar71xx
2018-12-14 01:50:10 +01:00
Christoph Krapp 1c590ca148 ar71xx: add support for UniFi-AC-Mesh-Pro
Signed-off-by: Christoph Krapp <achterin@googlemail.com>
2018-12-09 20:41:56 +01:00
bobcanthelpyou 3c9afd1274 docs: update some old urls (#1598) 2018-12-07 21:40:55 +01:00
Martin Weinelt 76f591995e gluon-client-bridge: set ra_holdoff interval to 30 seconds (#1597)
Allow odhcp6c to fork the script to handle router
advertisments in 30 seconds intervals. This is the value
that was previously used in Gluon v2018.1 / LEDE 17.01.

The default value is 3 seconds and while it is RFC compliant
it can put alot of pressure on even moderately sized devices.

Signed-off-by: Martin Weinelt <martin@darmstadt.freifunk.net>
2018-12-07 21:40:13 +01:00
Christof Schulze 8c058af89d gluon-mesh-babel: remove broken log-file option from config
log-file /dev/stderr is broken for babeld as it eats log messages for debug log.
This commit gets rid of the option. This allows -d N to be used as babeld command
line option.
2018-12-05 00:21:33 +01:00
Julian 68ee1db91e gluon-core: fix pattern %v in opkg URLs (#1594)
$VERSION_ID is a lowercase value
2018-12-02 16:59:06 +01:00
Matthias Schiffer ccd5c39e12
Merge pull request #1592 from bobcanthelpyou/docs-links
docs: fix some old urls or 'upgrade' to https
2018-12-01 10:13:35 +01:00
bobcanthelpyou 544989fec8 docs: switch links of issues and pull requests 2018-11-30 23:54:14 +01:00
bobcanthelpyou ba803a1329 docs: fix some old urls or 'upgrade' to https 2018-11-30 23:54:07 +01:00
Sven Eckelmann 6845688016
ath10k-ct: reduce memory consumption
ath10k-ct uses a rather high number of buffers to communicate with the
QCA/Candelatech firmware. Especially the HTC (host-target-communication)
and HTT (host-target-transport) can take up a lot of memory when data is
transferred over a ath10k wifi link.

Even a 256MB device with three radios can go OOM (while sending to three
devices using UDP unicast/multicast packets) with the default buffer
limits. Unfortunately, this also reduced the maximum 5GHz throughput on an
IPQ40xx device from 494/432 Mbit/s for TCP transfers (download/upload) to
438/343 Mbit/s. These throughput values should still be good enough for a
Freifunk installation. And these changes are already used by ath10k in
OpenWrt 18.06.
2018-11-30 20:50:18 +01:00
bobcanthelpyou f3fa17d0f7 gluon-mesh-babel: Variable 'uret' is reassigned a value before the old one has been used. 2018-11-29 23:57:06 +01:00
bobcanthelpyou 62f06c1b16 gluon-mesh-babel: Unsigned variable 'total' can't be negative 2018-11-29 23:57:06 +01:00
bobcanthelpyou 083b7ef675 gluon-mesh-babel: 'buf' nulled but not freed upon failure 2018-11-29 23:57:06 +01:00
Martin Weinelt bcf4d076e1 gluon-status-page: display position and link it with geo uri scheme (#1587)
Fixes: #659
Signed-off-by: Martin Weinelt <martin@darmstadt.freifunk.net>
2018-11-27 23:16:32 +01:00
Andreas Ziegler 1d2e36dab5 Revert "gluon-config-mode-geo-location: allow to store coordinates without sharing"
This reverts commit 104d7455fa.
in its current form it requires you to enter coordinates, which we don't want to enforce by default.
2018-11-27 02:07:04 +01:00
Martin Weinelt 7d79298d38
docs: add v2018.1.3 release notes 2018-11-26 22:24:43 +01:00
Martin Weinelt 60a341f910 docs: releases/v2018.1.2: fix link in known issues 2018-11-26 22:14:45 +01:00
Andreas Ziegler f5dc9601c3
Merge pull request #1577 from freifunk-ffm/wireguard-prep
Prepare existing babel stack for wireguard
2018-11-26 01:22:14 +01:00
Christof Schulze 62406509fc gluon-core: enable ECN 2018-11-26 01:20:31 +01:00
Christof Schulze e5b238e04a gluon-mesh-babel: exit with error if unable to connect to babeld 2018-11-26 01:20:31 +01:00
Christof Schulze 89b7612fdb gluon-l3roamd: init: dynamically configure mesh interfaces gracefully during reload
This patch makes use of the new feature in l3roamd to gracefully
add, remove and list the mesh interfaces that are currently in use. This
helps when changing mesh interfaces often - a characteristic of the
wireguard protocol implementation as in the previous behavior all local
clients are dropped when adjusting mesh interfaces.
2018-11-26 01:20:31 +01:00
Christof Schulze a3d9446a3a modules: update packages
2703207 libbabelhelper: bump version, correct error handling on babel socket
8e768b3 mmfd: bump version, include babeld reconnect fix
9e0b9bb l3roamd: allow to del_meshif for initially specified interfaces and get_meshifs on socket
54fac53 micrond: add PKG_LICENSE value
d2c162f bump libbabelhelper version
9eb42b8 bump mmfd version
8fcc217 libbabelhelper: bump version
a5815a3 bump mmfd
50874ee respondd: add documentation for some protocol related functions (#194)
00c6b72 uc: add new package (#192)
c56ec3a mmfd: bump version
521246b l3roamd: bump version, fixing a crash, increasing efficiency and roaming stability by introducing ACK
2018-11-26 01:20:14 +01:00
Ruben Barkow f1abdf88fe docs: clarify routing_algo example for BATMAN_V (#1579) 2018-11-25 18:30:00 +01:00
Martin Weinelt 9d7647c30a docs: releases/v2018.1.2: update known issues with kmod dependencies regression 2018-11-25 02:51:41 +01:00
Martin Weinelt 24dc8cc8a1
modules: update OpenWrt
a02d9a7d9f tools: tplink-safeloader: add C7v5 EU SupportList
709d080da5 base-files: fix unkillable processes after restart
216c04ff20 kernel: bump 4.14 to 4.14.82
07ef8b70b8 kernel: bump 4.9 to 4.9.138

Compile-tested: ar71xx, ipq40xx, x86-64
Runtime-tested: ar71xx
2018-11-24 15:05:19 +01:00
Jan-Tarek Butt 104d7455fa gluon-config-mode-geo-location: allow to store coordinates without sharing 2018-11-24 15:02:49 +01:00
rubo77 2b066a34a4 docs: add routing_algo example 2018-11-22 11:15:27 +01:00
Christof Schulze 171c293ebe gluon-core, gluon-mesh-babel: move lua functions that generate ll-addresses from a mac into gluon-core 2018-11-21 20:56:35 +01:00
Christof Schulze c23e6e4b53 gluon-mesh-babel: babel-respond: stop relying on mac addresses and instead obtain ll-address from nic 2018-11-21 20:56:35 +01:00
Christof Schulze bd96bd4024 gluon-mesh-babel: explicitly specify the use of the busybox netcat 2018-11-21 20:56:35 +01:00
Christof Schulze b90d214da9 gluon-iptables-clamp-mss-to-pmtu: clamp mss on all mesh interfaces for all destinations to pmtu 2018-11-21 20:47:39 +01:00
Matthias Schiffer eda3aa3333
gluon-mesh-vpn-core: add gluon-wan exec wrapper
gluon-wan is a sudo-like exec wrapper that switches the process group to
gluon-mesh-vpn, making it use the WAN dnsmasq rather than resolving over
the mesh.

Note that this only affects DNS at the moment. Processes running under
gluon-wan will still use the regular mesh IPv6 routing table, and not the
WAN routing table. This is not a problem for IPv4, as there is only one
IPv4 routing table.

Fixes #1575
2018-11-21 12:09:10 +01:00
Martin Weinelt 8e3a90ff65
docs: add v2018.1.2 release notes 2018-11-20 21:08:00 +01:00
Matthias Schiffer 6d4d4792d5
gluon-mesh-*: do not count wifi clients/neighbours inactive for more than 60s 2018-11-18 11:45:16 +01:00
Matthias Schiffer f61d252361
gluon-mesh-batman-adv: respondd: do not count batadv clients inactive for more than 60s 2018-11-17 20:07:00 +01:00
Matthias Schiffer af9c1f7e9f
gluon-mesh-babel: fix respondd provider build/install
Rename to respondd.c / respondd.so, gluon.mk expects these names. This way
we can remove the install code. The installed filename is changed to
gluon-mesh-babel.so, bringing it in line with out common naming scheme.
2018-11-17 19:45:18 +01:00
Matthias Schiffer 7620d41c29
modules: update OpenWrt
0d549271d397 ar71xx: fix TP-Link Archer C7 v5 switch LEDs
dd6d554b2c1e kernel: fix ubifs loosing O_TMPFILE data after power cut
4db74fbd6908 kernel: bump 4.14 to 4.14.81
6f388adef820 kernel: bump 4.9 to 4.9.137
b0d08ec3aef3 sunxi: remove kernel 4.9 support
2018-11-17 16:42:27 +01:00
T-X cb35b0d10a gluon-ebtables: build kernel with ebt_dnat and ebt_redirect (#1472)
The redirect and dnat target are needed for gluon-alt-esc-client to
forward frames to the selected, alternative gateways.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-11-16 21:33:59 +01:00
rubo77 e2e36921a6 docs: multidomain: fix indentation 2018-11-15 00:15:50 +01:00
Martin Weinelt 3601c9aba6 mt76x8: add support for GL.iNet GL-MT300N-V2 (#1548)
Signed-off-by: Martin Weinelt <martin@darmstadt.freifunk.net>
2018-11-14 23:35:02 +01:00
David Bauer a51ec56363 ipq40xx: add support for ZyXEL NBG6617 (#1560) 2018-11-14 23:02:25 +01:00
Martin Weinelt d3f2c5f87e
modules: update routing packages
bc6e7f6 Merge pull request #425 from ecsv/batadv-18.06
c00a1bf alfred: Merge bugfixes from 2018.4
7bf62cc batman-adv: Merge bugfixes from 2018.4
d1cf6d1 Merge pull request #422 from ecsv/batadv-18.06
121c92d batctl: Don't overwrite default PKG_BUILD_DIR
95e56cf alfred: Add openwrt revision to internal version
93cce26 batctl: Add openwrt revision to internal version
1a83b56 batman-adv: Add openwrt revision to internal version
1ba424a batman-adv: Load module with AutoProbe
b9656fb batman-adv: Fix search for cfg80211 module symbols
059d726 batman-adv: Remove unused option "interfaces" in config
3d5c2d0 batman-adv: Add DEBUG_LOG -> DEBUGFS dependency
a9a4b04 batman-adv: Rebuild automatically on mac80211 changes
2018-11-14 02:01:47 +01:00
Martin Weinelt 1628665823
modules: update OpenWrt packages
c6a9b01a6 CircleCI: Fix URL references and add BRANCH refs
bbbb47b7a Merge pull request #7366 from thess/ffmpeg-18.06
4e8dd3649 ffmpeg: work around hard/soft float configs for libffmpeg-full
f09f0f1c5 Merge pull request #6932 from chris5560/radicale_18.06
74fc2449e adblock: fix adguard source
1ec36271b net/mosquitto: bump to 1.5.4
5552214d8 haveged: update to 1.9.4
57b1bbb9a ccrypt: Update to 1.11
335bd7cba Merge pull request #7301 from micmac1/maria37
c646c1841 Merge pull request #7231 from padre-lacroix/bandwidthd-18.06
377f88624 mariadb: security bump to 10.1.37
104ce78af bandwidthd: [18.06] fix undefined references to inline functions This is basically same commit that took place in master 3 weeks ago. gcc-7 with -Os makes inline functions disappeard. It is caused by the new C11 inline semantics. pass option -fgnu89-inline to gcc let it use gnu inline semantics. see https://wiki.debian.org/GCC7#Porting_help
db5d46f28 build,circleci: fix container digest
da4563092 build,circleci: add 'time' to container build image
7b85f3c37 isc-dhcp: drop .conf suffix on dhcrelay config file
ca30e0654 build,circleci: copy and adjust config from master
fc212923d glib2: update to 2.58.1
06579f632 ruby: bump to 2.5.3
99208fcfe libssh: mark as BROKEN due to CVE-2018-10933
7bd9d6914 patch: Add missing CVE-2018-6951 patch
bfa879cdf patch: Fix CVE-2018-6952 and CVE-2018-1000156
971efb45a Merge pull request #7160 from EricLuehrsen/o1806_ub_181
c346de9b4 Merge pull request #7164 from pacien/181009-1806-pkg-tinc
9f5ea1c28 watchcat: make compatible with updated busybox ash array handling (fixes #7148)
58dbd3fda tinc: update to 1.0.35
f3bc02155 unbound: update to 1.8.1
482d94bf4 iotivity, i2pd, domoticz: Bump PKG_RELEASE to force re-build with Boost upgrade to 1.68
15cf061d5 gnutls: updated to 3.5.19
d7980aceb mosquitto: bump to 1.5.3
fae92edd7 sendmail: fix confLIBSEARCHPATH to $(STAGING_DIR)
21b69c23a jamvm: Use <fenv.h> instead of <fpu_control.h>
218a7a686 fdm: Merge latest version and build fixes from master
11c25f58f boost: Merge updates (1.68.0) and build fixes from master
cea8bebc6 Merge pull request #7084 from brianjmurrell/add-foolsm-to-18.06
c58367d4f cshark: update to latest git HEAD
e70b4775d strongswan: refresh patches
88715598b strongswan: fix OpenWrt hotplug script handling
1f4c93972 strongswan: add openwrt hotplug script handling
c340159a9 strongswan: include nls.mk for mysql plugin
474d9a0a1 net-snmp: fix inbound firewall rule support
fddaa085f tdb: Remove libbsd dependency
aa58b6bfb tdb: bump to latest version
da27b3134 tdb: avoid installing duplicate files
93587e54e node: Fix incorrect detection of arm_version and arm_fpu
c99983288 node: fix host build fail
0a2078bf1 nano: update to 3.1
791933dd5 Nano: Update to 3.0 Signed-off-by: Jonathan Bennett <jbennett@incomsystems.biz>
1bdddaefc foolsm: Add package foolsm
df8b221e0 Merge pull request #7053 from mlichvar/chrony-fix-ipv6-allow-18.06
1377bc60f chrony: fix configuration of IPv6 client access
23bb744ff adblock: bugfix 3.5.5v2
e8813bb56 adblock: update 3.5.5
c7e97bf2b radicale[18.06]: add extra command "export_storage" to init script
2018-11-14 02:00:36 +01:00
Martin Weinelt d91b4a8882
modules: update OpenWrt
9d07678d35 mac80211: fix spurious disconnections with powersave clients
eb89dcaf4a kernel: bump 4.14 to 4.14.80
76574f19e2 tcpdump: explicitly disable libcap-ng support
514ad059ef mt76: update to the latest version, sync with master
4f40d4ca73 oxnas: squash-pick commits from master branch
f2a6d39b95 mac80211: brcmfmac: add 2 more recent changes
33731ccff3 bcm53xx: add DT patch describing pins mux controller
e4b0704a51 mac80211: backport firmware_request_nowarn and firmware_request_cache
3589915a43 kernel: backport and include linux/overflow.h
057893024e mac80211: backport sg_init_marker()
f9e50a9468 bcm53xx: update pinctrl driver
e6971b8def bcm53xx: add pending pinctrl driver
55d078b249 script: ipkg-build: honour $SOURCE_DATE_EPOCH
2e54de4e54 mac80211: brcmutil: backport chanspec debugging patch
941256c004 mac80211: brcmfmac: backport the latest 4.20 changes
5195136002 mac80211: brcmfmac: rename 4.20 backport patches
156f6e63c4 mac80211: add iw command wrapper with error logging
aa0aa47aa1 kernel: Add support for Winbond w25q128jv SPI NOR flash
44084d89f2 imx6: fix DMA transaction errors
779b89c757 ath9k: fix dynack in IBSS mode
f9c79947b5 kernel: bump 4.14 to 4.14.79
91a8bc1dd0 Revert "mt76: update to the latest version"
f1a2b5bbbc kernel: tolerate using UBI/UBIFS on MLC flash (FS#1830)
24ca1cda38 mt76: update to the latest version
2018-11-14 01:55:37 +01:00
Ruben Barkow 925d452ba7 docs: multidomain: fix site.conf path to basic and supported rates 2018-11-13 14:55:07 +01:00
Martin Weinelt e56acfbec0 docs: releases/v2018.1: add remark about GLUON_WLAN_MESH variable
fixes #1561
2018-11-04 14:35:45 +01:00
bobcanthelpyou 94cf96d72f docs: features/autoupdater: fix typos and add GLUON_TARGET for `make clean` 2018-11-03 12:10:29 +01:00
David Bauer c1967fe383 ar71xx: remove BROKEN flag for TL-WR810N v1
Fixes #856
2018-10-24 23:44:01 +02:00
Martin Weinelt 9baf454eb3 modules: update OpenWrt
4fb73b61c0 bcm53xx: use upstream SPI controller fix
2db4015285 bcm53xx: replace SPI revert with a fix sent upstream
1e2164aeb4 kernel: add missing symbol for target bcm53xx
3a9aed24d1 dnsmasq: bump to v2.80
270b9d30f6 kernel: bump 4.14 to 4.14.78
4dc42ef40e kernel: bump 4.9 to 4.9.135
47f68ca586 kernel: bump 4.14 to 4.14.77
dbd067013d kernel: bump 4.9 to 4.9.134
486dc7583d ar71xx: fix mtd corruption
9ac7eb4a86 kernel: bump 4.14 to 4.14.76
235148b077 kernel: bump 4.9 to 4.9.133
4fa4b5edaf mac80211: fix A-MSDU packet handling with TCP retransmission
70cb2d20c9 netfilter: add missing dependency for kernel 4.14
bba743458e kernel: bump 4.14 to 4.14.75
86a3d2604f kernel: bump 4.9 to 4.9.132
ae2a3a1d80 kernel: enable memory compaction
46a700e118 e2fsprogs: fix glibc compile issue (FS#1749,FS#1796)
0dbe3d28f7 iperf: fix --daemon option
95e2da8366 ar71xx: Fix installation of fw_setenv in sysupgrade ramdisk
234b893a18 base-files: Reintroduce sysupgrade_pre_upgrade hook
f3753a9ae0 netifd: fix segfault (FS#1875)
b3c64797db build: use CMAKE_SOURCE_SUBDIR variable to cmake.mk
149dcc26d1 kernel: bump 4.14 to 4.14.74
d837c93623 kernel: bump 4.9 to 4.9.131
2018-10-23 17:14:34 +02:00
David Bauer ffb46c40d9 ar71xx: add Archer C7 v5 switch LEDs 2018-10-15 00:38:18 +02:00
David Bauer 665cc49d67 ar71xx: add support for Archer C7 v5 2018-10-15 00:38:18 +02:00
Martin Weinelt 7c86795d4f modules: update routing packages (#1554)
8b76007 nodogsplash: fix download hash
ebc5874 Merge pull request #417 from bluewavenet/openwrt-18.06
f68a998 nodogsplash: Backport v3.2.1 to OpenWrt 18.06
2e21588 Merge pull request #414 from ecsv/batadv-18.06
3785b55 Merge pull request #411 from bluewavenet/openwrt-18.06
ddef390 batman-adv: Merge bugfixes from 2018.3
ed5d97c nodogsplash: add missing config options
b0e37f2 Merge pull request #409 from wfleurant/backport-fix-luci-cjdns
85775e9 luci-app-cjdns: luci admin support for cjdns-v20.2 (#394)
59e8158 Merge pull request #407 from bluewavenet/openwrt-18.06
883dec4 nodogsplash: Backport v3.2.0
021153d nodogsplash: Remove nodogsplash and nodogsplash2 in preparation for backport of v3.2.0
9d9c0d0 Merge pull request #403 from dangowrt/bmx7-for-openwrt-18.06
ab3529a bmx7: Avoid namespace collision with libubox.
f0b852b bmx7: add config trigger
2018-10-12 11:20:46 +02:00
Andreas Ziegler 849f72b0a6 gluon-status-page: don't cache index meta redirect 2018-10-11 03:23:29 +02:00
Andreas Ziegler 1628f2d49e gluon-config-mode-core: don't cache index meta redirect 2018-10-11 03:23:29 +02:00
Martin Weinelt 84585d8ada docs: move site configuration repositories list to the wiki (#1552) 2018-10-11 03:22:47 +02:00
David Bauer 246a617d71 ar71xx: add support for TL-WR902AC v1 (#1546)
This adds support for the TP-Link TL-WR902Ac v1 travel router.

The device is marked as broken due to 64MB which might be insufficient
in certain environments.
2018-10-11 03:21:51 +02:00
Martin Weinelt 8ecd302dfe
modules: update OpenWrt
8baadecb16 ar71xx: flag FritzBox 4020 buttons as active low
cd12c91dde kmod-sched-cake: don't gso fixup on fixed kernels
670f14ce67 kerneL: bump 4.14 to 4.14.73
23bd33c5a3 kernel: bump 4.9 to 4.9.130
2163b4936e mt76: update to the latest version, fixes mt76x2 beacon issue
b115fcaa86 mac80211: fix management frame protection issue with mt76 (and possibly other drivers)
2018-10-03 00:06:24 +02:00
Ruben Barkow 2a077f86cf ar71xx: unify position of comment containing BROKEN flag reason (#1545) 2018-10-02 01:03:55 +02:00
Matthias Schiffer 1e61e8e897
Disable build of kmod-jool again
kmod-jool build is broken with current kernel 4.14.y.
2018-09-30 19:09:23 +02:00
yanosz 04d524e0d4 docs: user/site: improve explanation of basic_rates / supported_rates (#1540) 2018-09-29 19:18:19 +02:00
Matthias Schiffer c584d81952
gluon-config-mode-hostname: fix site check for prefill
Do not require this setting in site.conf.
2018-09-29 14:09:28 +02:00
Matthias Schiffer 03702aa881
modules: update OpenWrt
9f3cce2bfb3f mt76: update to the latest version from the 18.06 branch
0b99f08a64c3 uboot-lantiq: fix compatibility with gcc7
e4678c6c01fa ramips: fix Archer C20 sysupgrade
3a783e59ae0e ramips: ex2700: actually remove kmod-mt76*
81b2bf8e3bd7 kernel: bump 4.14 to 4.14.72
2e946ca366c5 kernel: bump 4.9 to 4.9.129
05606de1aa5b kernel: pick earlycon regression fixes from the stable-queue.git
cb352a7c4cf7 build: drop buildbot toolchain rebuild check when not using git
609707cbe7cf mac80211: fix tx queue allocation for active monitor interfaces
ca1d6c7d30cf mt76: fix tx power issue for mt76x2
8a006c24809c mac80211: backport upstream fixes
492bd8ddc906 kernel: bump 4.14 to 4.14.71
0d8d63c038a3 kernel: bump 4.9 to 4.9.128
f506de2cdaf9 ath9k: fix unloading the module
7347ea7453ae uqmi: pass-through ipXtable to child interfaces
de76cefd865c kernel: bump 4.14 to 4.14.70 for 18.06
b4f672c1f986 kernel: bump 4.9 to 4.9.127 for 18.06
4f6ad3c13ace iproute2: q_cake: Also print nonat, nowash and no-ack-filter keywords
e60be1133036 toolchain/glibc: update to latest 2.26 commit
a57062a90832 iproute2: q_cake: Add printing of no-split-gso option
1fdf3b4a4440 iproute2: update cake man page
ae1285286487 kmod-sched-cake: fix 6in4/gso performance issue
f6bd1b306bbb kmod-sched-cake: bump to 20180827
b2a042b5fe0c iproute2: cake: make gso/gro splitting configurable
f14c321a0d26 kmod-sched-cake: bump to 20180728 optional gso split
6f0ede54387e mac80211: brcmfmac: backport CYW89342 support & fixes from 4.20
d3e9c8862ff9 mac80211: brcmfmac: backport patch for per-firmware features
1a7471a303f3 mac80211: brcmfmac: backport 4.19 patches preparing monitor mode support
9e319b7ae268 odhcp6c: add client fqdn and reconfigure options
55bbd8293c9f kernel: bump 4.14 to 4.14.68
81d73ae74788 kernel: bump 4.9 to 4.9.125
5c8d61d7e32d dnsmasq: allow dnsmasq variants to be included in image
2018-09-29 13:48:26 +02:00
Ruben Barkow 5648faf82d Enhance example translation files 2018-09-23 19:00:00 +02:00
Sven Eckelmann 2b208647f7 ar71xx-generic: Reduce SquashFS blocksize to 64K (#1455)
Some 32 MB devices like the Nanostation M2 suffer from sudden high loads
combined with a squashfs related OOM reboot:

  logd invoked oom-killer: gfp_mask=0x2420848, order=0, oom_score_adj=0
  CPU: 0 PID: 774 Comm: logd Not tainted 4.4.135 #0
  Stack : 804214dc 00000000 00000001 80480000 8182fa3c 80474803 804028d0 00000306
          804e378c 00001ade 00000040 00000000 00000000 800a7f10 00000006 00000000
          00000000 00000000 804063e0 80c69994 804e6542 800a5e8c 02420848 00000000
          00000001 801fd600 00000000 00000000 00000000 00000000 00000000 00000000
          00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
          ...
  Call Trace:
  [<800721cc>] show_stack+0x54/0x88
  [<800d5468>] dump_header.isra.4+0x48/0x130
  [<800d5c38>] check_panic_on_oom+0x48/0x84
  [<800d5d64>] out_of_memory+0xf0/0x324
  [<800d9888>] __alloc_pages_nodemask+0x6b8/0x724
  [<800d2960>] pagecache_get_page+0x154/0x270
  [<80134cb0>] __getblk_slow+0x15c/0x374
  [<80160418>] squashfs_read_data+0x1c8/0x6e8
  [<80164628>] squashfs_readpage_block+0x32c/0x4d8
  [<801622a4>] squashfs_readpage+0x5bc/0x6d0
  [<800dd030>] __do_page_cache_readahead+0x1f8/0x264
  [<800d479c>] filemap_fault+0x1a8/0x458
  [<800efc1c>] __do_fault+0x64/0xd0
  [<800f2824>] handle_mm_fault+0x4a4/0xb40
  [<80076e98>] __do_page_fault+0x134/0x470
  [<80060820>] ret_from_exception+0x0/0x10

Reduction of the SquashFS blocksize should reduce the problem slightly on
these nodes. The image size will increase slightly but this should be no
problem for ar71xx-generic (in contrast to ar71xx-tiny).
2018-09-23 14:34:14 +02:00
David Bauer 728d1ffdb1 mt76x8: flag target as broken (#1533)
The MT76x8 is currently not stable enough for worry-free use with Gluon.
It suffers from reboots in intervals as little as 12 hours or WiFi
freezes for several hours.

It may be unflagged as soon the situation with mt76 got better.
2018-09-17 22:40:44 +02:00
David Bauer 9de78e27b6 gluon-config-mode-hostname: add option to use default hostname (#1529)
Before 7827f89, mandatory hostname field in config mode was
pre-filled with the default hostname.

This commit adds the config_mode.hostname.prefill option for
controlling the default value.
2018-09-15 22:36:07 +02:00
Ruben Barkow 71d1c00f89 docs: sensible example values for gluon-config-mode-geo-location-osm (#1528) 2018-09-11 23:46:54 +02:00
Tata 1a690d2fd6 package/features: add gluon-ebtables-limit-arp to batman feature (#1516)
this activates the package by default when using the batman feature
while still allowing to explicitly remove it like this:

GLUON_SITE_PACKAGES := \
  -gluon-ebtables-limit-arp
2018-09-05 04:45:41 +02:00
Matthias Schiffer c0e9336a98
modules: update OpenWrt
f7413579c082 mpc85xx: add migration script for TP-Link TL-WDR4900 v1 WLAN PCI paths

Fixes #1486
2018-09-04 21:31:21 +02:00
David Bauer a29883986c ar71xx: add AVM FRITZ!WLAN Reapeater 450E (#1506) 2018-09-04 20:59:16 +02:00
Matthias Schiffer d9b4d162e1
modules: update OpenWrt packages
6680ce865043 socat: Fix CRDLY, TABDLY and CSIZE shifts for PowerPC
09f9947f8347 sqm-scripts: Bump to v1.2.4
88db40cd2687 php7: update to 7.2.9
853f87a5f68e php7: add dependency to hash for mysqlnd
b2eda633962b libxml2: add cpe id for CVE tracking
84767508864e libxml2: fix CVE-2018-9251 and CVE-2018-14567
c696cc46009d net/mosquitto: update to 1.5.1
19e00979780d tiff: fix remaining CVEs
45ffcb3d6a99 unbound: drop odhcpd leases with wrong field count
251640ac95f7 ffmpeg: Add build overrides for some specific CPUs: Octeon, X86 and 24kf.
a64352cae065 ffmpeg: Add cpu_type to configure opts. Upgrade to 3.2.12
2db46d289c9e postgresql: security bump to 9.6.10
4f3f81b64f1d perl: version modules and non-base packages
bc6753832d30 mariadb: security bump to 10.1.35
1e5416bbd153 travelmate: update 1.2.2
d7bea561dc3c usbip: remove nonshared flag (#6681)
c875de62b36c perl: update to 5.28
53597cf64e00 travis: don't need git cloning progress
bae476afe568 isc-dhcp: write resolv.conf per network & dhcp settings
e9854d09f303 perl: build with -fno-strict-liasing and -fwrapv
af0ad2ce0d70 nut: Fix for nut-upsmon without nut-server
6a5a257fc057 nut: Update my email
41a9bf21f03c nut: Add PKG_FIXUP:=autoreconf
6576f7be9234 nut: added compatibility with openssl-1.1
edf11aaaeeba ddns-scripts[18.06]: bump to version 2.7.8-1
cb54af8d0d31 privoxy: fix uci configuration parsing after upstream OpenWrt changes
327a03e8f0c6 usbip: adapt package to new kernel/libudev
8f6157048f61 usbip: Remove obsolete patches
8bf5fc17db60 krb5: update to 1.16.1
59199e2534dd krb5: set replay cache directory to /tmp
14340062e3da krb5: update depends, adapt FS#1310
8a19a18c4545 travelmate[18.06]: backport release 1.2.1 to 18.06 branch
5e41db3de396 adblock[18.06]: backport release 3.5.4 to 18.06 branch
87b3ea5c8596 lxc: nl: avoid NULL pointer dereference
98822cd11d71 prometheus-node-exporter-lua: add conntrack collector
605acbbebe87 prometheus-node-exporter-lua: set myself as maintainer
44790e43cbef unbound: fix TLS override documentation
522800696de0 php7: update to 7.2.8
98edb6e210f7 php7: fix load order of mysqli extension
cdf150d0cae9 php7: update to 7.2.7
81332c47658b php7: add package dependency on zoneinfo-core
b65a759e8026 php7: use mysqlnd
7e33126dc040 php7: update to 7.2.6
ac5ee1ffb16e php7: replace libmysqlclient dependencies with libmariadbclient
fd57c8cfeb80 irqbalance: fix AARCH64 compilation
45f6a81fb235 simple-adblock: better download processing, luci-app integration, lists optimization, firewall integration
1fb64b107d79 slide-switch: update to latest version
2018-09-04 19:01:54 +02:00
Matthias Schiffer 1128162716
modules: update OpenWrt
13dccfc8e4e8 libubox: set RPATH for host build
456f88376a80 libubox: set HOST_BUILD_PREFIX
0a337dae9cc6 libubox: make sure blobmsg-json is included in host-build
549eb9b3831b libjson-c: set HOST_BUILD_PREFIX
c571627a25c3 libjson-c: Update package URL
0320fea968e3 libjson-c: fix host-build
da9fe5af199f libjson-c: add host build (for libblobmsg-json)
6a4f059ec831 ar71xx: allow to override at803x sgmii aneg status
3444638a05ab ar71xx: fix QCA955X SGMII link loss
a662d6f6bcdc grub2: rebase patches
a0569f5e812b grub2: Fix CVE-2015-8370
30758ee10e82 bzip2: Fix CVE-2016-3189
3315558870e1 scripts: bundle-libraries: fix logic flaw
686c6c5ca7f2 scripts: bundle-libraries: prevent loading host locales (FS#1803)
0f3ec67a8388 ramips: only limit lzma dictionary size on mt7621
cd49f57ff7f6 uqmi: wait for the control device too
159a52e1c2d0 comgt: increase timeout on runcommands
27e6d719e990 ugps: Update to fix position calculation
011e7cb5feab ugps: Add option disabled
def9d215ac7d kernel: bump 4.14 to 4.14.67
5fde931d6071 kernel: bump 4.9 to 4.9.124
4bff3f392bf1 ar71xx: WNR612v2: fix kernel panic due to wrong Wifi LED init
e30227276581 ar71xx/generic: enable Zyxel NBG6616 in kernel config again
5a07b4e7f5b7 mac80211: mwl8k: Expand non-DFS 5G channels
14580aaf81c6 mt76: update to the latest version
8bb9d053eb17 dropbear: backport upstream fix for CVE-2018-15599
79518b7a4b0e ramips: mt7620: add dir-810l network config
f1c3b5454e37 ramips: fix compatibles in SoC dtsi
446dccc0005f ramips: fix GL-MT300N-V2 SoC compatible
4ffed014a36b ramips: drop not existing groups from pinmux
6118db38b9d3 generic: revert workarounds for AR8337 switch
82f9ef60ab7c kernel: bump 4.14 to 4.14.66
a5ccdc0f5950 kernel: bump 4.9 to 4.9.123
2018-09-04 18:58:47 +02:00
Martin Weinelt 3fb83cc3d5 ipq806x: mark as broken because of unstable wifi drivers 2018-09-04 01:05:39 +02:00
Matthias Schiffer 6b5cb4f23d
Merge branch 'geo-location-osm' 2018-09-01 11:38:10 +02:00
Matthias Schiffer a8d736ac7b
gluon-config-mode-geo-location-osm: add OSM-based location picker
gluon-config-mode-geo-location-osm extends the
gluon-config-mode-geo-location with a location picker based on
OpenStreetMaps.

Based-on-patch-by: Jan-Tarek Butt <tarek@ring0.de>
2018-09-01 11:35:39 +02:00
Matthias Schiffer 0d4188d40b
gluon-web-osm: base on OpenLayers 5, add model class
The new code is shorter and uses more readable variable names. It does not
depend on specifically named input fields anymore (allowing to use multiple
maps on the same page), and only uses well-defined interfaces to trigger
revalidation of input fields.

The Map model class allows to add OSM maps to gluon-web forms.
2018-09-01 11:35:33 +02:00
Matthias Schiffer ba1df47dba
gluon-web-model: add custom events for form elements 2018-09-01 11:28:12 +02:00
Matthias Schiffer a3a1d217f2
gluon-web-model, gluon-config-mode-theme: replace old gluon-map class, fix Form id 2018-09-01 11:28:12 +02:00
Matthias Schiffer 9a732f30dd
gluon-web-model: reorder Node arguments so Section:option() can just pass them through 2018-09-01 11:28:12 +02:00
Matthias Schiffer 653c132013
gluon-web-model: remove unused Section attribute "fields" 2018-09-01 11:28:12 +02:00
Matthias Schiffer a2be178ce8
gluon-web: add view helper for JSON-encoded values
Can be used for inserting Lua values into inline JS code.
2018-09-01 11:28:12 +02:00
Matthias Schiffer 897ee73d14
gluon-mesh-batman-adv: respondd: remove incorrect field width limits
At least the ifindex and the flags fields can be larger than 0xff.

Fixes #1523
2018-09-01 11:12:22 +02:00
Matthias Schiffer 1ef4eb493c
docs: add v2018.1.1 release notes 2018-08-28 20:58:38 +02:00
Matthias Schiffer b8c81a4509
docs: update v2018.1 release notes 2018-08-28 20:58:38 +02:00
Matthias Schiffer 839afa577c
docs: define version number only once in config file 2018-08-28 20:55:26 +02:00
mokkin 18d88fccf1
docs: site: fix typo (#1498) 2018-08-26 12:59:26 +02:00
Matthias Schiffer d3d6637c7f
Merge pull request #1517 from blocktrron/pr-memory-calculation 2018-08-25 01:55:01 +02:00
David Bauer 02dfc66438 gluon-status-page: update memory usage estimation
Let gluon-respondd expose "MemAvailable" from /proc/meminfo to allow for
a more realistic memory-usage estimation.

Information on MemAvailable can be found here:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
2018-08-25 00:57:44 +02:00
David Bauer 44c70ca4d6 gluon-respondd: expose MemAvailable 2018-08-25 00:57:44 +02:00
Tata 20d22f66dd gluon-mesh-vpn-core: add abstraction layer for VPN interface name (#1518) 2018-08-24 23:21:43 +02:00
Matthias Schiffer 6ebe2ccd1b
gluon-config-mode-geo-location: fix typo 2018-08-23 23:01:43 +02:00
Matthias Schiffer 2b19266a7d
modules: update OpenWrt
24984b07e8ef tools/bison: Update to 3.0.5
50dbaee55c4d cns3xxx: fix mtu setting with kernel 4.14
705262f4d305 kernel: bump 4.14 to 4.14.65
c3be3c0e1d14 kernel: bump 4.9 to 4.9.122
4b4a6308e711 OpenWrt v18.06.1: revert to branch defaults
70255e3d624c OpenWrt v18.06.1: adjust config defaults
5eb055306fc6 rpcd: update to latest git HEAD
e11df1eac62f openssl: update to version 1.0.2p
033472e1bd9c kernel: bump kernel 4.9 to version 4.9.120
bfc9a4401bbe kernel: bump kernel 4.14 to version 4.14.63
75e4d2d18c0c ramips: add missing USB packages into ASL26555-16M
5b1c6570ca6f brcm47xx: cosmetic fix in model detection
1fe7a17aed63 ath25: Do not build images for ubnt2 and ubnt5
9cc774f91abb at91: do not build image for at91-q5xr5
508adbd871df uci: bump to source date 2018-08-11
ec1c66f53fff mwlwifi: update to version 10.3.8.0-20180615
9866622d8179 tools: findutils: fix compilation with glibc 2.28
c448f798404a tools: m4: fix compilation with glibc 2.28
67f91dfa5150 kernel: bump 4.14 to 4.14.62
e4a57509311e kernel: bump 4.9 to 4.9.119
433c94f29688 wpa_supplicant: fix CVE-2018-14526
2a8d8adfb0a9 Revert "libevent2: Don't build tests and samples"
9fe68b436947 kernel: move e1000e patches to backports
bd451d46a695 kernel: add pending e1000e fixes
aeec1dd7bab6 firmware: intel-microcode: bump to 20180703
8d903be35ad0 curl: Fix CVE-2018-0500
1e4b5c8b1f18 ustream-ssl: update to version 2018-05-22
ea22e3df3eb0 mbedtls: Update to 2.12.0
0d5a041095a1 mbedtls: Activate the session cache
69c75f076a08 mbedtls: cleanup config patch
6603a0c23274 mbedtls: Deactivate platform abstraction
ae1ae0751332 kernel: remove stray 4.4 references
fb5f02616084 kernel: backport upstream fix for CVE-2018-5390
16d89ef291f7 kernel: bump 4.14 to 4.14.61
ca3174e4e9de kernel: bump 4.9 to 4.9.118
0990dfc9cebe Revert "kernel: usb: dwc2 DMA alignment fixes"
be4ab7e178a9 brcm2708: fix w1 patch
6a27c2f4b1a4 base-files: drop fwtool_pre_upgrade
fe90d14880ad libevent2: Don't build tests and samples
eb06fa6cf73a kernel: generic: fix problem with w1-gpio-custom
25cb85abe7f3 wwan: Fix teardown for sierra_net driver
7e03be7e2e32 kernel: leds-apu2 remove boardname check
8139438fc036 dropbear: close all active clients on shutdown
c3df07ab3b2b kernel: gpio-nct5104d remove boardname check
5a430bd13f7a build: README punctuation pendantry
888cc05cf578 build: Update README & github help
da9a7a9a51b3 basefiles: Reword sysupgrade message
d10189939549 linux: update license tag to use correct SPDX tag
1e5bd42d63e5 kernel: usb: dwc2 DMA alignment fixes
c61f543532a6 firmware: amd64-microcode: update to 20180524
4017c528ca9e kernel: remove linux 4.4 support
e3ab280e4700 kernel: remove linux 3.18 support
5742a2ba35e2 libubox: fix mirror hash
23d4f663e33a netifd: update to latest git HEAD
cb043ad8dada Revert "mt7620: gsw: make IntPHY and ExtPHY share mdio addr 4 possible"
6c075777d5af kernel: add missing ARM64_SSBD symbol
b40316c21a96 mt7620: gsw: make IntPHY and ExtPHY share mdio addr 4 possible
f63463591b9f ramips: fix gigabit switch PHY access on MDIO
9ce7aa325ebd kernel: bump 4.14 to 4.14.60 for 18.06
9e1530b2a35e kernel: bump 4.9 to 4.9.117 for 18.06

Fixes build with glibc 2.28.
2018-08-21 21:24:31 +02:00
Matthias Schiffer a72cf0b86b
gluon-config-mode-geo-location: revise altitude label overrides
As already done with other config mode texts, the altitude field now has
default texts that are used when they are not set in the site i18n files.
The altitude-help text has been removed from site i18n; instead, the
geo-location-help text now overrides the whole section description
including the part that mentions the altitude.
2018-08-19 20:58:26 +02:00
Matthias Schiffer b4346ff9e6
gluon-config-mode-geo-location: make altitude show behaviour match docs
Do not show by default, delete old altitude value when a form without
altitude shown is saved.

Fixes #1493
2018-08-19 20:20:31 +02:00
Matthias Schiffer 688de03db2
docs: dev/web: update model/view/controller paths
Fixes #1491
2018-08-15 19:31:43 +02:00
Matthias Schiffer fead411f87
brcm2708: adjust to changed OpenWrt image names 2018-08-11 00:19:28 +02:00
David Bauer 6296e20462 docs: add OCEDO Koala to supported devices (#1511)
Addition of the OCEDO Koala to the supported devices in the docs was
forgotten in 52bc028.
2018-08-10 11:02:55 +02:00
Ruben Barkow d861266842 docs: getting_started: dependency for time package (#1503) 2018-08-07 13:47:19 +02:00
Ruben Barkow 2b16257896 gluon-web-mesh-vpn-fastd: clarify config of default crypto method (#1502) 2018-08-06 21:36:05 +02:00
Andreas Ziegler f6dee4386c modules: update OpenWrt
8be3af93b4 uclient: update to latest git HEAD
2589f8589c sdk: include arch/arm/ Linux includes along with arch/arm64/ ones
7d15f96eaf iperf: bump to 2.0.12
4f3082583a sdk: bundle usbip userspace sources
5f23d0f3db include/feeds.mk: fix distfeeds.conf without per-feed repos
5828113986 bcm53xx: backport BCM5301X/BCM53573 dts commits from 4.19+
f7e647ca7b bcm53xx: switch USB 3.0 PHY DT description to use MDIO bus
9c110b97c6 bcm53xx: backport DT fix for I2C controller interrupt
b5b5f5dfa6 kernel: backport mtd support for subpartitions in DT
f8e57f450d kernel: backport mtd patches with Broadcom of_match_table-s
f7668334a8 Re-enable arbitrary IPv6 addresses as outer ip4-in-ip6 tunnel source address
d700eb187b kernel: remove duplicate #define's in at803x Ethernet PHY driver
20c64dabb6 kernel: re-add patch for AT8032 Ethernet PHY
93782d5e8e ca-certificates[18.06]]: remove myself as PKG_MAINTAINER
ce234299bc OpenWrt v18.06.0: revert to branch defaults
03b693064b OpenWrt v18.06.0: adjust config defaults
b0b5c64c22 Revert "ar71xx: define switch for rb-952ui-5ac2nd"
3442ec5d57 ar71xx: define switch for rb-952ui-5ac2nd
f4798d37f1 imagebuilder: add function to show manifest
a3dd6c939d ar71xx:add support for E750G v8
11a5128b98 ar71xx:add support for E750A v4
21ad5fb1ea ar71xx:add support for E558 v2
4dc0ff8183 brcm2708: split sdcard.img.gz into a sysupgrade and factory image
f24e012997 base-files: network.sh: gracefully handle missing network.interface ubus ns
d4a4f06589 iwinfo: update to version 2018-07-24
4a39d8cfd0 iwinfo: bump to latest git HEAD
cb73dd21a3 ar71xx: rbspi: fix RB wAP AC gpio conflict and LED
bb06f6d3ba ar71xx: add missing diag LED support for RB wAP 2nD
c8e8ff1c9f brcm47xx: rework model detection
ca0c649a38 bcm53xx: revert SPI controller commit breaking flash reads
cf5a892430 dnsmasq: bump to dnsmasq v2.80test3
bf1b0fad2b dnsmasq: don't use network functions at boottime (FS#1542)
cb9d5f0a7c dnsmasq: bump to latest patches on 2.80rc2
962e86d9af brcm47xx: revert upstream commit breaking BCM4718A1
29aab93ea2 mac80211: backport brcmfmac fixes & debugging helpers from 4.18
4e7f4777b0 odhcpd: update to latest git HEAD
da0dd6adc2 ubus: update to latest git HEAD
3f0d44b8de firewall: update to latest git HEAD and build with LTO
69021e9b89 ubus: update to latest git HEAD
6302f0161b libubox: update to latest git HEAD
f91a0f3b1a wireguard-tools: add wireguard_watchdog script
f1dbfa1937 wireguard: bump to 0.0.20180718
ff91b32d26 wireguard: bump to 0.0.20180708
b84a1c56f3 build: do not alter global default package selection from profiles
90b15b00a2 WDR4900v1 remove dt node for absent hw crypto.
a80276235a iproute2: tc: backport canonical cake support
5b12057d7c build: fix compile error when a package includes itself in PROVIDES
8a0ad2660a apm821xx: fix sata access freezes
2018-08-06 03:07:01 +02:00
Andreas Ziegler 01c1bf603f docs: vpn: fastd's unencrypted method is 'null', not 'none' 2018-08-04 12:19:15 +02:00
Andreas Ziegler 78ed75ee28 Revert "gluon-core: make sure dns traffic leaves the correct interface when there is ipv6 wan uplink"
This reverts commit b3d7011130.

with this change, DNS in batman-adv based networks is broken.
although the revert breaks babel based networks, this is not as big of a problem.
2018-08-03 15:04:26 +02:00
Christof Schulze a304814c80 gluon-l3roamd: set gc_thresh for ipv4 and ipv6 to obtain DELNEIGH messages 2018-08-02 00:58:51 +02:00
Christof Schulze d17cef06a2 gluon-l3roamd: obtain uci cursor 2018-08-02 00:58:51 +02:00
Christof Schulze b3d7011130 gluon-core: make sure dns traffic leaves the correct interface when there is ipv6 wan uplink 2018-08-02 00:58:51 +02:00
Christof Schulze 0f9ab5e306 gluon-mesh-babel: add new package 2018-08-02 00:58:51 +02:00
Christof Schulze 6241ba5435 gluon-iptables-clamp-mss-to-pmtu: add new package 2018-08-02 00:58:51 +02:00
Martin Weinelt 0e21d17032 ar71xx-generic: prefer kmod-ath10k for 802.11s mesh (#1499)
removes cryptic debug messages from kernel ring buffer and
also reduces memory usage by as much as 20-25 MiB.
2018-08-01 03:37:56 +02:00
Tata cf9b6e34ff gluon-web-osm: add javascript static osm source (#1483)
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2018-07-29 16:07:39 +02:00
Felix Kaechele d87c4b521b gluon-mesh-vpn: support ingress bandwidth shaping with tunneldigger (#1460)
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2018-07-26 01:26:00 +02:00
Ruben Barkow b9b61ed79c gluon-config-mode-theme: background grey of clicked buttons (#1492) 2018-07-25 22:36:48 +02:00
Ruben Barkow ca2929a61f gluon-web-admin: add site-commit to info page (#1482) 2018-07-25 22:30:29 +02:00
Sven Eckelmann b9ec173ffb ipq40xx: add support for OpenMesh A62
This device is a dual 5GHz device. It is recommended to manually change the
radio of the first device to the lower 5GHz channels and the second radio
to the upper 5GHz channels.
2018-07-25 22:27:16 +02:00
Sven Eckelmann 36a5604dfe ipq40xx: add support for OpenMesh A42 2018-07-25 22:27:16 +02:00
David Bauer 04b446d8cd ramips: add support for TP-Link TL-WR841N v13 (#1470) 2018-07-25 22:19:59 +02:00
David Bauer 8395c08e66 ramips: add support for TP-Link Archer C50 v3 (#1487) 2018-07-23 04:34:37 +02:00
Sven Eckelmann 3ef28a4684 gluon-client-bridge: Revert "move IPv4 local subnet route to br-client (#1312)"
The commit b3762fc61c ("gluon-client-bridge: move IPv4 local subnet route
to br-client (#1312)") moves the IPv4 prefix from the local-port interface
to br-client. A client requesting an IPv4 connection to the IPv4 anycast
address of the node (the device running gluon) will create following
packets:

1. ARP packet from client to get the MAC of the mac address of the anycast
   IPv4 address
2. ARP reply from node to client with the anycast MAC address for the IPv4
   anycast address
3. IPv4 packet from client which requires reply (for example ICMP echo
   request)
4. ARP request for the client MAC address for its IPv4 address in prefix4
   (done with the mac address of br-client and transmitted over br-client)
5. IPv4 packet from node (transmitted over br-client with br-client MAC
   address) as reply for the client IPv4 packet (for example ICMP echo
   reply)

The step 4 and 5 are problematic here because packets use the node specific
MAC addresses from br-client instead of the anycast MAC address. The client
will receive the ARP packet with the node specific MAC address and change
their own neighbor IP (translation) table. This will for example break the
access to the status page to the connected device or the anycast DNS
forwarder implementation when the client roams to a different node.

This reverts commit b3762fc61c and adds an
upgrade code to remove local_node_route on on existing installations.
2018-07-22 16:42:41 +02:00
Sven Eckelmann fc59d5208d gluon-mesh-batman-adv: Drop IPv4 anycast related packets from/to bat0
The commit b3762fc61c ("gluon-client-bridge: move IPv4 local subnet route
to br-client (#1312)") moves the IPv4 prefix from the local-port interface
to br-client. A client requesting an IPv4 connection to the IPv4 anycast
address of the node (the device running gluon) will create following
packets:

1. ARP packet from client to get the MAC of the mac address of the anycast
   IPv4 address
2. ARP reply from node to client with the anycast MAC address for the IPv4
   anycast address
3. IPv4 packet from client which requires reply (for example ICMP echo
   request)
4. ARP request for the client MAC address for its IPv4 address in prefix4
   (done with the mac address of br-client and transmitted over br-client)
5. IPv4 packet from node (transmitted over br-client with br-client MAC
   address) as reply for the client IPv4 packet (for example ICMP echo
   reply)

The step 4 is extremely problematic here. ARP replies with the anycast IPv4
address must not be submitted or received via bat0 - expecially not when it
contains an node specific MAC address as source. When it is still done then
the wrong MAC address is stored in the batadv DAT cache and ARP packet is
maybe even forwarded to clients. This latter is especially true for ARP
requests which are broadcast and will be flooded to the complete mesh.

Clients will see these ARP packets and change their own neighbor IP
(translation) table. They will then try to submit the packets for IPv4
anycast addresses to the complete wrong device in the mesh. This will for
example break the access to the status page to the connected device or the
anycast DNS forwarder implementation. Especially the latter causes extreme
latency when clients try to connect to server using a domain name or even
breaks the connection setup process completely. Both are caused by the
unanswered DNS requests which at first glance look like packet loss.

An node must therefore take care of:

* not transmitting ARP packets related to the anycast IPv4 address over
  bat0
* drop ARP packets related to the anycast IPv4 when they are received on
  bat0 from a still broken node
* don't accept ARP packets related to the anycast IPv4 replies on local
  node when it comes from bat0

Fixes: b3762fc61c ("gluon-client-bridge: move IPv4 local subnet route to br-client (#1312)")
2018-07-22 16:42:41 +02:00
Adorfer 65d172f835
gluon-config-mode-mesh-vpn: i18n/de: fix missing comma 2018-07-19 19:28:48 +02:00
Matthias Schiffer bd75341739
modules: update OpenWrt
a297324a135a base-files: fix wrong sysctl parameter order
1e48546a6ad1 igmpproxy: run in foreground for procd
2018-07-18 20:37:07 +02:00
Matthias Schiffer 017bcd43ce
gluon-core: remove nixio dependency 2018-07-17 20:08:16 +02:00
Matthias Schiffer 06a9d61523
gluon-web-*: replace nixio with luaposix 2018-07-17 20:08:16 +02:00
Matthias Schiffer 92d90cdfb7
gluon-config-mode-*: replace nixio with gluon.util 2018-07-17 20:08:16 +02:00
Matthias Schiffer 90031ba97a
gluon-status-page: replace nixio with luaposix 2018-07-17 20:08:16 +02:00
Matthias Schiffer 5fc04fb34a
gluon-wan-dnsmasq: replace nixio with luaposix 2018-07-17 20:08:15 +02:00
Matthias Schiffer 32394dc694
gluon-mesh-vpn-core: replace nixio with luaposix 2018-07-17 20:08:15 +02:00
Matthias Schiffer fd10d7cbb0
gluon-core: replace nixio with luaposix and luabitops 2018-07-17 20:08:15 +02:00
Matthias Schiffer 60a0e78a4a
gluon-core: gluon.util: remove unused function readline() 2018-07-17 20:08:15 +02:00
Matthias Schiffer 223dd49f95
modules: update OpenWrt packages
787a5f9c555b gcc: enable compilation with gcc 7.x
2018-07-17 19:54:33 +02:00
Matthias Schiffer 22e9e2c45b
modules: update OpenWrt
f8cc68670fcf mediatek: fix parallel build issues in image build code
1086408b17fa mtd: improve check for TRX header being already fixed
5dca299fabc4 mtd: support bad blocks within the mtd_fixtrx()
5889cf70e99f kmod-sched-cake: bump to 20180716
393ee8d0b28a qos-scripts: fix uci callback handling
c9c0fc28a9c4 base-files: fix UCI config parsing and callback handling
aee917a5a28d apm821xx: fix usb-otg on 4.14
3539430b3daa odhcp6c: add noserverunicast config option for broken DHCPv6 servers
6363377c477f odhcp6c: update to latest git HEAD
ce8cab388aab odhcp6c: user string option support
dc52b7b104aa ipq40xx: add get_status_led to diag.sh
7fc7128b086a OpenWrt v18.06.0-rc2: revert to branch defaults
4de335bdbed6 OpenWrt v18.06.0-rc2: adjust config defaults
e4d0ee5af5a0 uhttpd: update to latest Git head
2018-07-17 19:52:41 +02:00
David Bauer c3ceded76f ipq40xx: add support for IBSS
Add support for IBSS meshing. Leave target marked as BROKEN for IBSS
as stability is unknown and WiFi LEDs are not working.

Functionality was tested in the network of Freifunk Frankfurt with other
ipq40xx and ar71xx devices.
2018-07-16 01:39:36 +02:00
David Bauer 6e48dedeb8 scripts: include binaries in patch
This commit allows for binary content in patches created via 'make
update-patches'.

Binary patches are needed for BDFs required for al boards on the new
ipq40xx target. Before this commit, binaries were omitted from the
generated patch which resulted in the patch not able to apply.

Patches without binary content do not differ in case they are created
with the '--binary' flag.
2018-07-16 01:39:36 +02:00
David Bauer c4b1febd31 ipq40xx: add target
This commit adds support for the new ipq40xx target.
2018-07-16 01:39:36 +02:00
Christoph Krapp 4883bc7141 ar71xx: add support for TP-Link RE355 (#1478)
Support is marked as broken because this device is sold in two variants,
one with 64M RAM and another with 128M. As of now 64M is not enough
for ath10k with 5GHz enabled.
As there is no indication known which variant one will get better mark
it as broken.

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
2018-07-15 18:29:42 +02:00
Matthias Schiffer 81756ad734
docs: releases/v2018.1: extend explanation of status page rewrite 2018-07-14 21:18:41 +02:00
Matthias Schiffer 3bf5e1c875
docs: releases/v2018.1: add note regarding next_node.name change
Fixes: #1463
2018-07-14 21:07:26 +02:00
Matthias Schiffer 7460431faa
scripts/copy_output.sh: add support for "extra" images
The new extra_image command allows to copy additional images that don't
fall into the sysupgrade or factory categories to the output directory.
These images will be placed in the "other" subdirectory.

The extra_image command takes 3 arguments: in_suffix (suffix in OpenWrt
bin directory), out_suffix (suffix in Gluon output directory) and ext (file
extension). Example:

  extra_image '-tftp' '-tftp' '.bin'

The ext argument can be omitted to control the whole filename suffix
including the extension from in_suffix and out_suffix. Multiple extra_image
commands can be used for a single device; aliases work as usual.

Based-on-patch-by: David Bauer <mail@david-bauer.net>
2018-07-14 18:33:37 +02:00
Matthias Schiffer e8cb34bae2
scripts/copy_output.sh: refactor 2018-07-14 18:17:36 +02:00
Matthias Schiffer ece5c6af77
modules: update OpenWrt
a7b2764879db include/prereq-build.mk: explicitly check for -f flag when using busybox time
2018-07-14 15:50:31 +02:00
Matthias Schiffer 7e4bfee3c9
gluon-core: upgrade: remove unused variables 2018-07-14 13:35:28 +02:00
Matthias Schiffer 7b23e443e1
modules: update OpenWrt
bc7abe8729f3 include/kernel-build.mk: fix kernel rebuild on backport patch changes
c99c70e05303 kernel: backport page fragment API changes from 4.10+ to 4.9
2018-07-14 13:11:47 +02:00
Matthias Schiffer 83301241ec
mt76: depend on kernel 4.14
Do not break the build on kernel 4.9 (ar71xx).
2018-07-14 01:24:13 +02:00
Matthias Schiffer f1f2bae94f
gluon-core: remove obsolete gluon.site_config library 2018-07-13 23:16:33 +02:00
Matthias Schiffer c5fd53e527
modules: update OpenWrt
3e81365141e4 kernel: gen_stats: Fix netlink stats dumping in the presence of padding
dd1f97b37d41 ramips: clean up and fix MT7621 NAND driver issues
68f40d7ecc4c mt76: update to the latest version
16a9ddfe64e2 ramips: ethernet: use own page_frag_cache
0e6cfb691914 ramips: ethernet: use skb_free_frag to free fragments
2018-07-13 17:33:27 +02:00
David Bauer 52bc028e6b ar71xx: add support for OCEDO Koala (#1475) 2018-07-13 01:25:58 +02:00
Matthias Schiffer 79b20b6e12
modules: update OpenWrt
514a4b3e1b4e include/feeds.mk: rework generation of opkg distfeeds.conf
3e89f58a5ead base-files: fix feed list in PKG_CONFIG_DEPENDS
7fa7c854fe33 include/feeds.mk: always add available feeds to PACKAGE_SUBDIRS
a5b9553cf592 scripts/feeds: add src-dummy method
2f306873efbe ramips: TP-Link TL-WR902AC v3: add missing wps button
36a4681b2bef ramips: TP-Link TL-WR902AC v3: don't build factory image
ca903c73c705 kernel: bump 4.14 to 4.14.54 for 18.06
3a5498c5e55d kernel: bump 4.9 to 4.9.111 for 18.06
27014da237f1 mac80211: Expose support for ath9k Dynack
5a40fad22a39 kernel: bcm47xxpart: fix getting user-space data partition name
2018-07-12 21:40:49 +02:00
Julian 126b34ff14 mvebu: add correct subtarget (#1473) 2018-07-11 22:13:16 +02:00
Matthias Schiffer 63c16c01a0
scripts: move DEFAULT_FEEDS definition to a separate file
modules.sh can't depend on openwrt/feeds.conf.default, otherwise the
initial update will fail.
2018-07-11 21:47:50 +02:00
Julian 9906d69322 docs: fix wrong Banana Pi model in v2018.1 release notes (#1466) 2018-07-11 04:12:00 +02:00
Matthias Schiffer 210d97c53e
Switch to OpenWrt 18.06 branch 2018-07-10 22:57:40 +02:00
Matthias Schiffer fcd5f183ee
docs: Gluon v2018.1+ 2018-07-08 21:01:29 +02:00
Matthias Schiffer f01037384d
docs, README: Gluon v2018.1 2018-07-08 20:59:57 +02:00
Matthias Schiffer 473818e905
docs: add v2018.1 release notes 2018-07-08 20:55:30 +02:00
Matthias Schiffer 0036ed5ddf
docs: examples: improve domain_seed comments 2018-07-08 20:55:30 +02:00
Matthias Schiffer 3540eb96ed
docs: user/site: improve feature flag explanation 2018-07-08 20:55:29 +02:00
Matthias Schiffer 655da23520
docs: features/wired-mesh: add section about VXLAN encapsulation 2018-07-08 20:55:29 +02:00
Matthias Schiffer 446ae60d94
modules: update Gluon packages
be2c35785994 respondd-module-airtime: Fix reported noise result (#190)
2018-07-08 20:11:21 +02:00
Matthias Schiffer 6a5e67b383
docs: add documentation for site library 2018-07-07 11:43:37 +02:00
Vincent Wiemann 68af719e24 docs: private-wlan: add uci command to set MAC (#1454)
add a missing command to set the special Gluon MAC address of the private WLAN interface to the documentation.
2018-07-04 00:06:23 +02:00
Vincent Wiemann dc13668b9d docs: increase recommended disk space for builds (#1450)
With all the packages being built 10GB are not enough anymore.
2018-07-03 00:06:05 +02:00
Matthias Schiffer baebf9b852
docs: add ebtables-limit-arp feature to site.mk example
Closes: #1436
2018-07-01 16:34:00 +02:00
David Bauer 2fda1a1f86 ar71xx: use Power-LED as Diag-LED on FRITZBox 4020 (#1453)
This commit makes use of the Power-LED as Diag-LED, allowing the LED to
work as a status indicator for config-mode.

Signed-off-by: David Bauer <mail@david-bauer.net>
2018-06-30 19:23:12 +02:00
Matthias Schiffer da058c5ef9
gluon-status-page: move neighbours-batadv wrapper to batadv-specific package 2018-06-30 16:03:13 +02:00
Matthias Schiffer df22d41593
docs: site-example: remove duplication of contact-info texts in example
Let sites leave these texts empty by default, just add a comment where to
find the default labels.
2018-06-29 21:03:45 +02:00
Andreas Ziegler 5cf7c53e69
gluon-config-mode-geo-location: allow overriding geo location description text 2018-06-29 21:01:24 +02:00
Andreas Ziegler 533ea986ad
gluon-config-mode-hostname: allow overriding hostname description text 2018-06-29 20:55:32 +02:00
Matthias Schiffer a49cf395bd
cripts/check_site.lua: print paths separated by '.' rather than '/'
Using slashs instead of dots is a bit unexpected, and as long as we're not
going for full-blown JSONPath, neither is more correct than the other.
2018-06-29 20:47:59 +02:00
Sven Eckelmann 3d18ae02d8 ar71xx: Add support for TP-Link CPE210 v2 (#1445) 2018-06-26 01:19:55 +02:00
Ralf Jung 1649635be4
gluon-config-mode-contact-info: allow overriding contact field help and note in site 2018-06-24 19:47:52 +02:00
Sven Eckelmann 384c2772c9 ar71xx: add ath10k packages for OpenMesh A40/A60 (#1444)
The dependency line was lost during the rebase of the current master
version.

Fixes: 9d719a2e57 ("ar71xx: add support for OpenMesh A40/A60 (#1424)")
2018-06-24 13:32:56 +02:00
Matthias Schiffer b2436f674b
docs: add new doc page about package development
Explain the magic of gluon.mk. The feature flag documention is moved into
this new page.
2018-06-23 19:44:43 +02:00
Christoph Krapp 1a065fbe24 ar71xx: add support for ZyXEL NBG6716 (#1443) 2018-06-22 20:21:11 +02:00
J0WI ee97fe8b9e gluon-web-admin: show sha256sum to verify upgrade (#1441) 2018-06-19 19:24:27 +02:00
Matthias Schiffer 4919f5443d
docs, README: Gluon v2017.1.8 2018-06-17 17:38:34 +02:00
Matthias Schiffer c36d3286a1
modules: switch routing feed to openwrt-18.06 branch
By using the release branch, we will be able to get future bugfixes without
local patches.
2018-06-17 17:31:02 +02:00
lemoer c0e7b96d1d docs: add documentation about multidomain support (#1365) 2018-06-14 00:01:56 +02:00
Matthias Schiffer 046103e5a2
modules: update routing packages
87cba7f8996a batman-adv: add patches from 2018.1-maint 2018-06-12
2018-06-13 22:52:37 +02:00
heini66 c0df74876f docs: add link to site config of Freifunk Nordheide (#1428) 2018-06-09 15:55:29 +02:00
J0WI 27e460f8ca docs: add link to site config of Freifunk Dreiländereck (#1425) 2018-06-09 14:23:50 +02:00
J0WI 6a68d6fba8 docs: update link to site config of Freifunk Kiel to HTTPS (#1427) 2018-06-09 14:23:01 +02:00
Sven Eckelmann ef819cc196 ar71xx: add support for OpenMesh OM2P(-HS)v4 (#1426) 2018-06-09 13:55:38 +02:00
Martin Weinelt 2ba3b35d0d docs: update site url for darmstadt (#1413) 2018-06-09 13:53:12 +02:00
Sven Eckelmann 9d719a2e57 ar71xx: add support for OpenMesh A40/A60 (#1424) 2018-06-08 20:18:30 +02:00
Christoph Krapp 54ff903633 ar71xx: add support for TP-Link TL-WA901ND v5 (#1423) 2018-06-07 22:36:18 +02:00
Matthias Schiffer 998cc6e16e
modules: update LEDE
b6a1f43075f9 base-files: fix UCI config parsing and callback handling
6734f32d91cd mtd: add build hack to reintroduce shared mtd for older releases
aaac9e82aa60 mtd: mark as nonshared to fix FS#484
0fee4906d5c0 ustream-ssl: update to latest git HEAD
f34a0756fd94 ustream-ssl: update to latest git HEAD
98b9d8a3d3fd mbedtls: Activate the session cache
88ba88e5adc4 mbedtls: update mbedtls to version 2.7.3
2018-06-06 22:33:23 +02:00
Matthias Schiffer 0563473abb
ar71xx: fix boot with increased kernel size on CPE/WBS 210/510
Fixes: d139a13563 ("Add various patches to deal with bigger kernels")
Fixes #1417
2018-06-06 22:29:01 +02:00
Sven Eckelmann c840a588b9 mac80211: initialize sinfo in cfg80211_get_station
Most of the implementations behind cfg80211_get_station will not initialize
sinfo to zero before manipulating it. For example, the member "filled",
which indicates the filled in parts of this struct, is often only modified
by enabling certain bits in the bitfield while keeping the remaining bits
in their original state. A caller without a preinitialized sinfo.filled can
then no longer decide which parts of sinfo were filled in by
cfg80211_get_station (or actually the underlying implementations).

cfg80211_get_station must therefore take care that sinfo is initialized to
zero. Otherwise, the caller may tries to read information which was not
filled in and which must therefore also be considered uninitialized. In
batadv_v_elp_get_throughput's case, an invalid "random" expected throughput
may be stored for this neighbor and thus the B.A.T.M.A.N V algorithm may
switch to non-optimal neighbors for certain destinations.
2018-06-06 11:39:00 +02:00
Jan-Philipp Litza e909d45ab0 gluon-radv-filterd: Invalidate originators cache after some time (#1343) 2018-06-05 21:55:30 +02:00
Matthias Schiffer 603912dd0d
gluon-config-mode-contact-info: restore datatype definition
optional = true does not make sense without a datatype. When no datatype is
set, the empty string will be a valid value, so data is never unset in the
write function. Restore the minlength(1) datatype so the contact setting is
deleted as intended when no value is provided.
2018-06-04 23:37:32 +02:00
Matthias Schiffer b8fa1b2a99
gluon-config-mode-contact-info: remove useless description
The first half was just the package title, the second was outdated.
2018-06-04 23:15:59 +02:00
Matthias Schiffer 184dc54317
modules: update routing packages
2dfb22876414 batman-adv: add patches from 2018.1-maint 2018-06-03
2018-06-04 19:20:05 +02:00
Matthias Schiffer 0351fc0ade
modules: update routing packages
688901a664eb bird2: Add package
ecbdeb0500cc bird: Rename to bird1 and bump to v1.6.4
453de2136e2f nodogsplash2: update to version 2.1.1 (#376)
a71ecc3dddc4 babeld: Update to 1.8.2
209877071051 miniupnpd: drop from repo
2018-06-03 16:11:03 +02:00
Matthias Schiffer ef9b7deb12
modules: update OpenWrt packages
b93e46562a0d lighttpd: CONFIG_LIGHTTPD_SSL includes mod_openssl
08e547f94394 usbip: remove upstreamed musl compatibility patch (#5983)
09b00c08f56a ruby: bump to 2.4.4
20984d673e43 icu: fix CVE-2017-15422
e1b36a234cbb lighttpd: add mod-wstunnel
62b0d30aebc0 lighttpd: update to 1.4.48
0b748a3ac596 sqm-scripts: Fix return value bug in postrm script
96c08703f38a mosqitto: bump to 1.4.15 for CVE fixes.
90d3ef2f7633 minidlna: exclude "po" directory to fix CONFIG_BUILD_NLS=y builds
b8e6fc3eb752 sqlite3: fix uClibc builds
acc974f84caf p11-kit: disable trust module
4e93c8bf468b tiff: version bump to address open CVEs
2847e03934e9 libxslt: add patches copied from Debian to fix CVEs
902542faa04e libssh: fix zlib detection
dc7f2ccad2fd alsa-lib: fix uClibc builds
e359065b625b net/https-dns-proxy: Update to 2018-01-24.
b6cf69bca6d3 unbound: update to 1.6.8 for CVE-2017-15105
4038c7ea6f44 [17.01] travelmate: release 1.0.2
366e595d5689 [17.01] adblock: release 3.4.3
f5046db67e53 vpnc: fix using proto_add_host_dependency
c13cd82a4a76 ulogd: use strncpy instead of memcpy
02692887ba89 wget: backport 1.19.2 from master
23d7fd181720 tree: backport from master
eb3a0d828e1f postgresql: update to version 9.5.10
81571ac0efd5 gnutls: Use HTTPS instead of FTP
2c4ea103d01c ruby: bump to 2.4.3
fe63607e8802 python: declare explicit Host/Compile to fix pgen tool installation error
78acfcc7ed06 net/mwan3-luci: fix iface_state on on status page
7cf09e3ec4f0 python: update to version 2.7.14 for branch 17.01
0230af3b2027 attendedsysupgrade-common: add package
feda1e4ba614 tinc: version bump 1.0.33
f2131de798e2 gnutls: updated to 3.5.16
2018-06-03 16:07:12 +02:00
Matthias Schiffer 0bce62ca3e
modules: update LEDE
6e47c22268d5 ar71xx: Deactivate build of Netgear WNR2000v3
9dd189d4adc4 mvebu: Add support for WRT3200ACM with new NAND flash
adfd64ddd62c brcm47xx: add switch port mapping to Asus WL-500W
4a38c0cad5b2 odhcpd: fix managed address configuration setting
058a0b7552f8 apm821xx: Add default packages to NAND target
6eec0e46ed33 wireguard: bump to 20180519
5ad80ff24b27 wireguard: no longer need portability patch
83089916dcc3 wireguard: bump to 20180514
6cc65b05f311 wireguard: Add support for ip6prefix config option
0e3cc084968f wireguard: bump to 0.0.20180513
4cb9af80dd9b wireguard: bump to 20180420
9e5bed665259 wireguard: bump to 20180304
57e773bd4ea7 wireguard: bump to 20180202
90d9df048b47 wireguard: bump to 20180118
161d95f4c5a7 kernel: bump kernel 4.4 to 4.4.132 for 17.01
2c0cd47dab77 rpcd: update to lastest HEAD
7b54d52a443e kernel: use accepted version of bcm47xxpart fix commit
3c81d12ec328 bcm53xx: backport the first bunch of 4.18 BCM5301X patches
b07875308476 ar71xx: fix and improve ALFA Network Tube2H support
e8b1af45f8b2 kernel: bump kernel 4.4 to 4.4.131 for 17.01
2018-06-03 16:04:44 +02:00
Matthias Schiffer baf40535b1
modules: update Gluon packages
c34d129afb48 batman-adv-legacy: update to git version 2018-06-03
ed7ed7dcbaf0 autoupdater: allow skipping the version check (#187)
6268f870f17f mmfd: bump version to use new libbabelhelper, do not start verbose
f51707e1c5fd libbabelhelper: bump version for new lexer
d3391981cd09 l3roamd: bump version
2018-06-03 15:59:44 +02:00
Sven Eckelmann e1a741be4f batman-adv: Fix best gw refcnt after netlink dump (#1411)
A reference to the best gateway is taken when the list of gateways in the
mesh is sent via netlink. This is necessary to check whether the currently
dumped entry is the currently selected gateway or not. This information is
then transferred as flag BATADV_ATTR_FLAG_BEST.

After the comparison of the current entry is done,
batadv_*_gw_dump_entry() has to decrease the reference counter again.
Otherwise the reference will be held and thus prevents a proper shutdown of
the batman-adv interfaces (and some of the interfaces enslaved in it).

Fixes: 899235a4a637 ("Merge pull request #241 from ecsv/batman-adv-2016.4-maint-2016-10-29")
Reported-by: Andreas Ziegler <dev@andreas-ziegler.de>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-06-03 14:37:59 +02:00
Christoph Krapp 114d4688d2 ar71xx: generic: enable CONFIG_MTD_SPLIT_TPLINK_FW (#1406) 2018-05-26 22:25:14 +02:00
Vincent Wiemann 33956cd4b3 ar71xx: add support for Alfa AP121F (#1404)
Adds support for Alfa AP121F USB powered travel router (looks like an USB ethernet adapter).
There is no factory image, but only a sysupgrade file for this router which can be installed using the inbuilt UBoot web interface.
Configure your PC with IP address 192.168.1.2 and connect the router using its RJ45 port. Hold the reset button while powering the device until all LEDs have flashed 3 times simultaneously. You can now access the fallback web interface using a web browser at http://192.168.1.1 and flash the sysupgrade file.
2018-05-23 19:32:40 +02:00
Matthias Schiffer f51eac7582
gluon-status-page: add contact information again
The field was accidentally removed during the status-page rewrite.

Fixes #1401
2018-05-22 22:48:27 +02:00
Andreas Ziegler 7b1857e743 modules: change url from git.lede-project.org to git.openwrt.org 2018-05-22 01:42:06 +02:00
Christoph Krapp 7ce4fac1a9 ar71xx: add model detection for Ubiquiti AC Mesh (#1400) 2018-05-21 15:51:26 +02:00
Christof Schulze ab7f1acd0c gluon-config-mode-contact-info: provide enhancements for german, english and french translation to comply with DSGVO (#1394)
* do not allow to obligatorily require contact information
* add remark that the data is provided voluntarily
* mention how to delete the data
* be very clear about the fact that the data being entered is public and
  can be downloaded and processed by anyone.
2018-05-19 19:26:33 +02:00
Christoph Krapp 1be49d1326 Update LEDE patches (#1399) 2018-05-18 23:08:08 +02:00
Christoph Krapp 68ee56b869 ar71xx: add support for GL.iNet GL-AR750 (#1395) 2018-05-17 22:33:18 +02:00
David Bauer ed7d68490d gluon-config-mode: add platform on config-mode reboot (#1397)
This commit adds the ability to show information about the platform on
config-mode reboot.
2018-05-17 02:30:29 +02:00
Martin Weinelt b0bfe25274 docs: add package/gluon-ebtables-limit-arp (#1386)
based on package documentation, authored by T_X 
84a6f65f02/package/gluon-ebtables-limit-arp/Makefile (L18-L39)

fixes #1383
2018-05-17 02:02:15 +02:00
Christoph Krapp eaa23aeae6 ar71xx: add support for TP-Link TL-WR940N v6 (#1389) 2018-05-17 01:33:52 +02:00
Andreas Ziegler b1d1ecc923
docs: add devices which only support 11s meshing (#1384) 2018-05-12 14:04:14 +02:00
Andreas Ziegler 05e65eadff docs: fix naming of UniFi AC Mesh 2018-05-11 02:03:25 +02:00
Andreas Ziegler 678c0e1f6c docs: RE450: add remark regarding ath10k meshing 2018-05-11 02:03:01 +02:00
Andreas Ziegler 4487a767a7 docs: add Archer C7 v4 to supported hardware list 2018-05-11 02:02:24 +02:00
Andreas Ziegler c938b213c8 docs: add missing devices which are already supported 2018-05-09 04:02:05 +02:00
Andreas Ziegler 59d6b2a4ee ramips-rt305x: correct alphabetical order 2018-05-09 04:00:02 +02:00
Andreas Ziegler 21e84243fe docs: remove duplicate entry for DIR-615 (C1) 2018-05-09 03:57:56 +02:00
Ruben Barkow 894539efe8 docs: enhance section about GLUON_FEATURES (#1348) 2018-05-09 03:30:12 +02:00
Matthias Schiffer 5bd1d88f85
ar71xx-generic: make ubiquiti-rocket-m a separate device
Make ubiquiti-rocket-m a separate device rather than a bullet-m alias to
enable USB support and allow adding devive-specific packages.
2018-05-08 18:39:18 +02:00
David Bauer 22d45448fd ar71xx: add support for Fritz!Box 4020
This commit adds support for the AVM Fritz!Box 4020 WiFi-router.

SoC:   Qualcomm Atheros QCA9561 (Dragonfly) 750MHz
RAM:   Winbond W971GG6KB-25
FLASH: Macronix MX25L12835F
WiFi:  QCA9561 b/g/n 3x3 450Mbit/s
USB:   1x USB 2.0
IN:    WPS button, WiFi button
OUT:   Power LED green, Internet LED green, WLAN LED green,
       LAN LED green, INFO LED green, INFO LED red
UART:  Header Next to Black metal shield
       Pinout is 3.3V - RX - TX - GND (Square Pad is 3.3V)
       The Serial setting is 115200-8-N-1.

Tested and working:
 - Ethernet (LAN + WAN)
 - WiFi (correct MAC)
 - Installation via EVA bootloader
 - OpenWRT sysupgrade
 - Buttons
 - LEDs

Not working:
 - USB port

Installation via EVA:
In the first seconds after Power is connected, the bootloader will
listen for FTP connections on 169.254.157.1 (Might also be 192.168.178.1). Firmware can be uploaded
like following:

  ftp> quote USER adam2
  ftp> quote PASS adam2
  ftp> binary
  ftp> debug
  ftp> passive
  ftp> quote MEDIA FLSH
  ftp> put openwrt-sysupgrade.bin mtd1

Note that this procedure might take up to two minutes. After transfer is
complete you need to powercycle the device to boot OpenWRT.

Signed-off-by: David Bauer <mail@david-bauer.net>
2018-05-08 15:20:02 +02:00
Andreas Ziegler 1531571a7e targets/ipq806x: use ath10k-firmware-qca99x0-ct for 11s and remove BROKEN flag 2018-05-07 00:03:04 +02:00
lemoer 73c30b0916 gluon-respondd: fix whitespace after "if" 2018-05-05 15:09:30 +02:00
lemoer dde708692c gluon-respondd: use %SCNu64 instead of %llu for uint64_t 2018-05-05 15:09:30 +02:00
lemoer 6ac7e97fae gluon-respondd: add information from /proc/stat to "statistics"
This commit adds information about:
- how cpu time is spent since boot in jiffies (1/100*sek) (cpu)
    - the value is summed for all cores, so in 10 seconds the
      summed values will increase by 4000, if the cpu has
      4 cores
- context switches since boot (ctxt)
- interrupt counters since boot (intr, softirq)
- forks since boot (processes)

    { "stat": {
       "cpu": {
         "user": 219403,
         "nice": 1714,
         "system": 75159,
         "idle": 2727739,
         "iowait": 2943,
         "irq": 0,
         "softirq": 571
       },
       "intr": 8426340,
       "ctxt": 50992590,
       "processes": 10549,
       "softirq": 5161884
    } }
2018-05-05 15:09:30 +02:00
Matthias Schiffer 39c17c6a34
modules: update routing packages
0bf3b72c33d9 nat46: fixup PKG_MIRROR_HASH
23aa2e7b4afa nodogsplash2: Add NDS Restart Hook for Firewall (#369)
7ae81c8311ec cjdns: 20.1 -> 20.2
ff7b5da265e1 prince: version bump to v0.4
2f90fe406c58 miniupnpd: De-maintainering myself.
fdaa4cde3b2c bmx7: bump version
455a54207c84 batman-adv: upgrade package to latest release 2018.1
2e4937ea68f8 batctl: upgrade package to latest release 2018.1
a0eca40b0003 alfred: upgrade package to latest release 2018.1
015e5e99f2b6 bmx7: use configReaload on service reload
0ced8ec5a763 bmx7: keep bmx7 secret keys on sysupgrade
4bff0b3c65c5 cjdns: build fixes
7fc2fbdfc1b7 babeld: release 1.8.1
135bc605b4cf alfred: Support interface IDs with more than two digits
91e600e1cd9a bmx7: convert init script to use procd
86be0095b475 nodogsplash2: Add compatibility with mwan3 v2
17fccad969ea smcroute: Change download to HTTP
63cae8f571a6 bmx7: bump version
2018-05-04 20:35:42 +02:00
Matthias Schiffer 0b090252ec
modules: update LEDE
999bb66b20b0 kernel: add missing in6_dev_put_clear call to an ipv6 network patch
81573ea25924 kernel: bump kernel 4.4 to 4.4.129 for 17.01
afa887388766 gcc: gcc 6.3.0 fix comparison between pointer and integer
2018-05-04 19:59:09 +02:00
Matthias Schiffer 0a0105307f
docs, README: Gluon v2017.1.7 2018-04-30 12:25:21 +02:00
Matthias Schiffer 1f7ed28b76
gluon-core: set VXLAN/legacy mode in site config
In multidomain setups, VXLAN is enabled by default, but can be disabled in
domain configs using the mesh/vxlan option. In single domain setups, the
mesh/vxlan option is mandatory.

The UCI option for legacy mode is removed.

Fixes #1364
2018-04-27 18:05:50 +02:00
Matthias Schiffer 5d92f125cd
gluon-web-network: remove legacy option for wired mesh 2018-04-27 17:48:36 +02:00
Matthias Schiffer aeae9df001
check_site: improve error message for unset values 2018-04-27 17:48:36 +02:00
Matthias Schiffer 3519f4e61b
gluon-radv-filterd: correct call to ebtables-tiny
Fixes: 8e5abf02ae ("treewide: switch to ebtables-tiny")
2018-04-27 14:38:01 +02:00
Matthias Schiffer a2eb50e0e6
x86: move common parts of x86-generic and x86-64 to include file 2018-04-26 22:59:36 +02:00
Matthias Schiffer 818acd6021
x86: remove bash and wget again
Let's keep the default package selection to hardware support.
2018-04-26 22:55:36 +02:00
Andreas Ziegler 563f351b78 x86: add packages: leds, sensors, gpio, usb, wifi and tools 2018-04-26 20:54:49 +02:00
Matthias Schiffer a55b83f42e
modules: update LEDE
eed9d40133fe ar71xx: Ubiquiti Airmax M: add relocate-kernel to invalidate cache
23a638ebd1fd brcm47xx: backport upstream patches for Netgear WNR1000 V3
2018-04-26 20:46:44 +02:00
Matthias Schiffer 7bb6a775b1
modules: update LEDE
efb6ca189641 base-files: /lib/functions.sh: ignore errors in insert_modules
b5ba01a0d3f6 fstools: update to latest lede-17.01 branch
a9b607740273 kernel: bump kernel 4.4 to 4.4.126 for 17.01
09d95e44fc3d mbedtls: change libmbedcrypto.so soversion back to 0
4673a0bffc89 kernel: mtd: bcm47xxpart: improve handling TRX partition size

Also switch to the upstreamed version of "kernel: disable accept_ra by
default".
2018-04-17 22:23:26 +02:00
Matthias Schiffer dff02d5d60
docs, README: Gluon v2017.1.6 2018-04-16 18:09:37 +02:00
Christof Schulze 2465a103f6
gluon-status-page: when prettifying undefined numbers, show - instead of NaN 2018-04-16 10:23:15 +02:00
Matthias Schiffer 62943f9ca1
gluon-mesh-vpn-tunneldigger: fix typo in description 2018-04-15 22:48:23 +02:00
Matthias Schiffer 6304a317e4
gluon-l3roamd: fix interface checks in initscript
The local_node ifstatus must be checked for local-node, not client. While
we're at it, also clean up the syntax a bit.
2018-04-15 12:49:52 +02:00
Christof Schulze 8959d8c3ea
gluon-status-page: make status page mesh protocol agnostic
batman-adv-specific parts are moved to a new package
gluon-status-page-mesh-batman-adv.
2018-04-15 12:46:01 +02:00
Christof Schulze b70d4ce20a
gluon-core, gluon-l3roamd: introduce script gluon-list-mesh-interfaces that lists all currently active mesh interfaces 2018-04-15 12:41:01 +02:00
Christof Schulze 6dff120e3c
gluon-status-page: reduce usage of absolute paths in cgi-bin scripts neighbours-nodeinfo and stations 2018-04-15 12:39:36 +02:00
Matthias Schiffer 35ade80f1c
gluon-status-page: move mesh protocol specific definitions into a separate file 2018-04-15 11:36:37 +02:00
Matthias Schiffer 3282a63ea7
gluon-status-page: remove "lastseen" field from neighbours-batadv output
The field is unused.
2018-04-15 10:09:36 +02:00
Matthias Schiffer 433af56f99
gluon-status-page: fix code indentation 2018-04-15 10:01:25 +02:00
Matthias Schiffer 994c94918a
treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
Matthias Schiffer 6f0d9f1e2d
gluon-status-page: fix typo in comment 2018-04-13 22:50:37 +02:00
Matthias Schiffer 2ef34bddca
Merge branch 'builtin-kmods' 2018-04-13 18:03:57 +02:00
Matthias Schiffer 02f905f542
ar71xx: build kernel modules used by Gluon into the kernel
ar71xx-generic and -tiny benefit most from the optimized kernel, as they
contain all devices with 32MB RAM. We enable CONFIG_GLUON_SPECIALIZE_KERNEL
for all targets using the mips24_kc architecture so packages shared between
targets don't need to be rebuild all the time.
2018-04-13 17:32:20 +02:00
Matthias Schiffer 74f4119c1b
treewide: add support for building kernel modules used by Gluon into the kernel 2018-04-13 17:32:20 +02:00
Matthias Schiffer d139a13563
Add various patches to deal with bigger kernels 2018-04-13 16:00:58 +02:00
Matthias Schiffer 2f4d3b71af
Add patches to reduce iptables module dependencies 2018-04-13 16:00:58 +02:00
Matthias Schiffer 8e5abf02ae
treewide: switch to ebtables-tiny 2018-04-13 16:00:58 +02:00
Matthias Schiffer 461f93bfe4
modules: update Gluon packages
6c38a5dd639e simple-tc: add PKG_CONFIG_DEPENDS to trigger rebuild on dependency changes
2018-04-13 16:00:33 +02:00
Matthias Schiffer 543eb17882
gluon-core: remove DNS cache feature
dnsmasq's caching is severly broken and does not handle all answer records
equally. In particular, its cached answers are missing DNSKEY and DS
records, breaking DNSSEC validation on clients.

Remove the cache for now. It may return if dnsmasq is fixed or we switch to
a different resolver.
2018-04-13 15:15:40 +02:00
Matthias Schiffer 395266e404
gluon-core: remove obsolete dnsmasq upgrade script
The script cleaned up an old setting that was removed in 2014.
2018-04-13 15:01:43 +02:00
Matthias Schiffer ba9fc94e85
gluon-core: get rid of old sysctl settings 2018-04-13 14:41:01 +02:00
Matthias Schiffer 9b937a8c64
gluon-core: remove unused gluon.sysctl Lua module 2018-04-13 14:41:01 +02:00
Matthias Schiffer 25b32ec2fe
treewide: move sysctl settings to /etc/sysctl.d
net.ipv6.conf.br-client.forwarding is moved from gluon-client-bridge to
gluon-mesh-batman-adv, as the setting is not useful with non-bridged
protocols.
2018-04-13 14:41:01 +02:00
Matthias Schiffer 0b4340b5a6
Backport patches for improved sysctl handling 2018-04-13 14:41:01 +02:00
Matthias Schiffer 46c5effae3
gluon-core: reduce mac80211 fq_codel memory limit to 256KB on devices with 32MB RAM 2018-04-11 08:33:30 +02:00
Matthias Schiffer d210cfcad9
generic: do not attempt to build kmod-usbip
kmod-usbip is broken since the last kernel update.
2018-04-10 20:25:38 +02:00
Matthias Schiffer e44f74531f
Update LEDE patches 2018-04-10 19:15:49 +02:00
Matthias Schiffer 710a2ed0e2
modules: update LEDE
6577fe2198f5 ar71xx: sysupgrade: improve CPE/WBS 210/510 validation, add new metadata offset
afca23558a2f kernel: backport commit reverting genirq patch causing regressions
ba502a49a7e4 intel-microcode: update to 20180312
5a9b101543ed brcm47xx: add Luxul XAP-1500 and XWR-1750 WiFi LEDs
fe3db683f943 mac80211: brcmfmac: add support for BCM4366E chipset
3ca1438ae0f7 mbedtls: update to version 2.7.2
c4b382934836 openssl: update to 1.0.2o
bed0ee7cbfaa Kernel: bump 4.4 to 4.4.124 for 17.01
fad29d2c3dea mac80211: brcmfmac: backport commit dropping IAPP packets by default
2018-04-10 19:14:33 +02:00
Matthias Schiffer c1f49a5661
modules: update Gluon packages
61c7aac8ef87 simple-tc: conditionalize kmod dependencies
73d9ff871b90 ebtables-tiny: introduce stripped-down ebtables variant
2018-04-10 13:09:25 +02:00
Matthias Schiffer 968840c774
modules: update Gluon packages
e1d11c9393d2 batman-adv-legacy: update source date
2018-04-07 22:01:13 +02:00
Matthias Schiffer bf611a9ab8
modules: update Gluon packages
878f83eb741f batman-adv-legacy: update to latest git

Fixes #1358
2018-04-07 21:56:08 +02:00
Matthias Schiffer ad7d154c5a
scripts/check_site.lua: show type of incorrect values in error messages 2018-04-01 23:21:18 +02:00
Matthias Schiffer b7be32d9f4
scripts/check_site.lua: print proper error message for non-string keys in need_alphanumeric_key() 2018-04-01 23:18:53 +02:00
Linus Lüssing 951b6632bc gluon-ebtables-limit-arp: do not add multicast addresses to filter
With the batman-adv multicast support compiled back in again we end up
with multicast addresses in the batman-adv translation table.

Currently we wrongly interpret multicast addresses returned by TT as a
unique host, too, which adds them with a source address filter to
ebtables as well. However, the source address of an ethernet frames is
never supposed to be a multicat one.

This leads to unnecessary entries in ebtables. Fixing this by ignoring
those MAC addreses returned by TT which have the multicast bit set.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-04-01 03:26:50 +02:00
Jan-Tarek Butt d5ef9b67c9
gluon-mesh-vpn-tunneldigger: only allow in domain config
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2018-03-28 18:38:01 +02:00
Matthias Schiffer f17bb94ad7
gluon-config-mode-theme: fix styling of select elements
* Use correct width
* Don't display focus outline (Webkit)
* Don't let option elements inherit error colors (Webkit)
2018-03-27 20:38:26 +02:00
Matthias Schiffer 6dc9369715
gluon-status-page: suppress "broken pipe" syslog message
Some HTTP endpoints were writing annoying "broken pipe" messages to stderr.
2018-03-27 19:48:04 +02:00
Martin Weinelt 946b42e234
gluon-config-mode-domain-select: allow hiding of individual domain codes 2018-03-20 18:05:38 +01:00
Martin Weinelt 85c0bd6f57
scripts/check_site.lua: add table_keys() helper 2018-03-20 17:23:48 +01:00
Matthias Schiffer 1a7d93a2b9
scripts/check_site.lua: add support for alternative checks 2018-03-20 17:15:55 +01:00
Andreas Ziegler 91912f4935 ar71xx-tiny: add support for TP-Link TL-WR940N v5
adding an alias as it uses the same image as the TL-WR940N v4
2018-03-19 23:34:45 +01:00
Matthias Schiffer 84f82a1339
docs: remove duplicated (and outdated) site docs
At the moment, we don't have a good guideline for package-specific
configuration, but it seems like a good idea not to split configuration
into too many tiny pages, especially for packages that aren't commonly
selected explicitly.

Some uncommon configuration is dropped from the example site.conf to remove
clutter.
2018-03-17 21:20:47 +01:00
Matthias Schiffer 532b57011f
gluon-core, gluon-client-bridge: allow 0-character ESSIDs/mesh IDs 2018-03-17 15:38:24 +01:00
Jan-Tarek Butt dda1b2a127
gluon-client-bridge: check AP SSID length to be in range of 1-32 characters 2018-03-17 15:33:40 +01:00
Jan-Tarek Butt 9a9024843b
gluon-core: check mesh ID and IBSS SSID length to be in range of 1-32 characters 2018-03-17 15:33:12 +01:00
Matthias Schiffer 7827f8960f
gluon-config-mode-hostname: add config_mode.hostname.optional site option
This setting allows to enforce manually setting a hostname.

In the initial configuration, the hostname field is now left empty; when
setting the hostname is not enforced, the default hostname is shown as the
field placeholder.

Fixes #1139
2018-03-17 12:51:14 +01:00
Matthias Schiffer 486c2e4821
gluon-config-mode-contact-info: change "mandatory" site option to "optional"
Also add documentation about config mode settings.
2018-03-17 12:27:57 +01:00
Matthias Schiffer 440cc1ec54
docs: remove obsolete gluon-legacy configuration 2018-03-17 12:05:59 +01:00
Matthias Schiffer 87ded4c3d8
gluon-config-mode-hostname: improve English node name explanation 2018-03-17 11:48:25 +01:00
Matthias Schiffer 9f86bf3155
gluon-core: add default_hostname helper 2018-03-17 11:44:33 +01:00
Matthias Schiffer a5cb34bdc1
modules: update LEDE
60f8d388c69e kernel: merge a pending fix for HFSC warnings/slowdowns (fixes FS#1136)
f609913b5c60 mbedtls: update to version 2.7.0
58a95f0f8ff7 tools/e2fsprogs: fix building on a glibc 2.27 host
2018-03-16 23:16:26 +01:00
Matthias Schiffer d87a798ac3
gluon-core: disable VXLAN checksums
Our VXLAN setup was changed to accept VXLAN packets without checksum almost
2 months ago, so we can disable sending the checksums now as well. Slightly
improves performance.
2018-03-16 20:17:03 +01:00
Matthias Schiffer 22cdd1d78e
batman-adv: add pending patches
Fixes checksum failures on TT version updates.

Fixes #1321
2018-03-16 20:11:35 +01:00
Matthias Schiffer 7b8ee50ceb
modules: update Gluon packages
9bf34bebc545 batman-adv-legacy: update to latest git
2018-03-16 19:44:51 +01:00
Andreas Ziegler d66ff7b087 docs: features/dns-cache: multiple names and better example domain 2018-03-13 04:18:16 +01:00
Matthias Schiffer 7f812e8754
package/features: never implicitly enable gluon-web-mesh-vpn-fastd
This package only provides the choice between "security" and "performance
mode". It should only be enabled when specified in site.mk.
2018-03-12 13:57:57 +01:00
Matthias Walther 4aa6dce17a docs: hardware.rst: explain how to get the image name for a new device (#1335) 2018-03-12 03:28:28 +01:00
Matthias Schiffer c80c294b3f
gluon-mesh-batman-adv: increase bridge multicast querier robustness to 9
The RFC standard multicast querier interval is 120s. Our querier uses in
interval of 20s for better support of roaming clients, but our robustness
setting of 3 leads to external queriers using the standard interval to be
timeout after only 60s, leading to frequent "querier appeared/disappeared"
messages. Increase robustness so that external queriers with any interval
<180s are supported.
2018-03-11 12:36:54 +01:00
Matthias Schiffer 68a706a948
gluon.mk: remove GLUON_PKG_MAKE option 2018-03-09 10:05:44 +01:00
Matthias Schiffer c514ae1882
modules: update LEDE
9bdea6a2964b generic: revert broken LED core patch
2018-03-08 22:31:25 +01:00
Matthias Schiffer 5e086da608
gluon-respondd: remove Gluon-specific provider directory
Our provider modules are prefixed with gluon- now, and the log message
about a missing provider dir was confusing users.
2018-03-08 21:46:05 +01:00
Matthias Schiffer 60522ee253
treewide: move package Makefile boilerplate to gluon.mk 2018-03-08 19:49:41 +01:00
Ruben Barkow ee14a03e70 treewide: french translation: WLAN -> Wi-Fi (#1342) 2018-03-08 11:26:10 +01:00
Matthias Schiffer ca43e9058f
gluon-radv-filterd: add missing build dependency on respondd 2018-03-07 21:26:11 +01:00
Matthias Schiffer 934221b86f
treewide: remove redundant definitions from package Makefiles 2018-03-07 21:23:41 +01:00
Matthias Schiffer 5315cfd4f7
modules: update Gluon packages
31e20006049b treewide: remove redundant definitions from package Makefiles
53a659abf880 lua-geolocate: add package for WLAN-based geolocation based on openwifi.su
2018-03-07 20:53:34 +01:00
Matthias Schiffer d0fbb81a65
modules: update LEDE
9b0a4bafbce7 base-files: tune fragment queue thresholds for available system memory
b47094ce96ff include/package-defaults.mk: fix default Build/Prepare with empty ./src
75be005e8bdc include/rootfs.mk: retain list of conffiles with CONFIG_CLEAN_IPKG
696c6325a3a7 include/rootfs.mk: do not remove opkg prerm scripts during rootfs preparation
17c0362178ca base-files: sysupgrade: do not rely on opkg to list changed conffiles
2ae9ebf37402 kernel: bump 4.4 to 4.4.120 for 17.01
571d3def6baf x86: add preinit hook to reload microcode
681aaaf719ec firmware: add microcode package for Intel
c6314ee06f94 firmware: add microcode package for AMD
222521d5937a tools: add iucode-tool
f7a6b6724a63 x86: enable microcode loading for Intel and AMD
dfe620cb93c0 odhcpd: fix interop with wide DHCPv6 client (FS#1377)
18c999a6ff33 base-files: fix off-by-one in counting seconds for factory reset
92ea65b36aa7 sunxi: disable LPAE to allow kernel to run on A13
7dcbe0e22dbb bcm53xx: fix fallback code for picking status LED
4db583b9c2ab mountd: update to the latest version from 2018-02-26
2018-03-07 19:17:48 +01:00
Linus Lüssing 7e404ac517 batman-adv: multicast TT fixes and cleanups
The first one adds a fix that might potentially result in multicast packet
loss once we would enable multicast_mode again.

The second one avoids some small but unnecessary overhead. More
importantly though, it is supposed to ease further multicast improvements
later (e.g. no need for a multicast sending node to determine overlap
between WANT_ALL_IPV4/6 flags and TT entries while on fast-path).

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-03-07 10:10:32 +01:00
Matthias Schiffer 4d9c3c1c79
modules: update routing packages
3aaa772ef520 bmx7: bump version
ccd4210f0ba7 bmx7: add PKG_MIRROR_HASH
d6dcd0c75630 bmx6: add PKG_MIRROR_HASH
536782119f0a alfred: upgrade package to latest release 2018.0
6a6f5da5efd5 batctl: upgrade package to latest release 2018.0
3bb75b003563 batman-adv: upgrade package to latest release 2018.0
2f74073c209d bmx7: bump version to 58b3823262512a48f5174e6778b2368c55bd05d9
733e935f04fc cjdns: v20 -> v20.1
f0ee73aa2285 bmx7: bump version
21a6454d7226 bmx6: bump to latest upstream version
2018-03-07 08:45:52 +01:00
Matthias Schiffer 17370d8462
gluon-ebtables: unconditionally segment IGMP/MLD
We must ensure that each node becomes IGMP/MLD querier for its local
clients; having only a single querier for the whole mesh is generally
unreliable, leading to frequent "IGMP/MLD querier appeared/disappeared"
messages from batman-adv and unreliable snooping.

In smaller meshes it might be interesting only segment querier domains, but
allow membership reports to pass through the mesh, in order to support
snooping switches outside the mesh without special configuration. A
site.conf switch is provided to control this behaviour.

Fixes #1320
2018-03-07 08:12:30 +01:00
Matthias Schiffer 7c9e1e1007
ebtables: add support for ICMP/IGMP type matches 2018-03-07 08:12:01 +01:00
Matthias Schiffer 0d07d179d8
Revert "busybox: compile with debug information"
This reverts commit 582635b031.

The segfault issue has disappeared, so the workaround is not needed
anymore.
2018-03-05 06:53:17 +01:00
rubo77 d4bfa6c4e0 gluon-config-mode-hostname: clarify the use of the nodename 2018-03-02 02:57:59 +01:00
Matthias Schiffer 208cd4d98c
gluon-client-bridge: allow WLAN configs without ap section again
Fixes: 7ccdacd294 ("treewide: rework check_site_lib.lua")
2018-03-01 01:18:39 +01:00
Matthias Schiffer 3e88331137
gluon-status-page: add dependency on libubus-lua 2018-02-26 18:55:51 +01:00
Matthias Schiffer 27f7ce444f
gluon-status-page: when visiting via a next-node address, redirect to a unique address
A downside of this behaviour is that the page does not work for IPv4-only
clients, as the redirect will always point at an IPv6 address.

Still, it seems like a good idea to enforce the redirect even from the IPv4
next-node address, as switching nodes while being connected to the status
page would lead to unexpected behaviour.
2018-02-26 03:25:01 +01:00
Matthias Schiffer fdf823a3a2
gluon-status-page-api: merge back into gluon-status-page
All Access-Control-Allow-Origin are removed to improve users' privacy. As
the status page API is thus not useful without the status page anymore,
merge them back into a single package.

The status-page-api respondd provider is removed as well.

Fixes #1194
2018-02-26 02:20:38 +01:00
Matthias Schiffer 88906f238b
gluon-status-page: reimplement based on gluon-web
This new status page is significantly smaller than the old one. It always
loads its resources from the same host as the page itself, not requiring
cross-origin requests anymore.

It also uses the common i18n infrastructure of gluon-web.

Fixes #914
2018-02-26 02:20:38 +01:00
Matthias Schiffer b1aa5390a7
gluon-config-mode-core: move gluon-web base path to /lib/gluon/config-mode
- CGI script and index.html are moved from gluon-web to
  gluon-config-mode-core, the script is renamed to 'config'
- gluon-web and gluon-web-model base views and i18n files are symlinked
  into the new path
- gluon-web-theme is renamed to gluon-config-mode-theme and installs
  directly into the new path
- all gluon-web-* models, controllers and views are moved into the new
  path
2018-02-26 00:07:13 +01:00
Matthias Schiffer 3925344292
gluon-setup-mode: move HTTP server support to gluon-config-mode-core, add gluon-lock-password 2018-02-26 00:07:12 +01:00
Matthias Schiffer 9648489a01
gluon-web: reorganize layout handling
Also bring back gluon-web-theme's i18n strings.
2018-02-26 00:07:12 +01:00
Matthias Schiffer c3e4ceed28
gluon-web: split out model support into a separate package 2018-02-26 00:07:08 +01:00
Matthias Schiffer 83a6847fbd
gluon-web: remove unneeded functions from gluon.web.util
exec() is moved to gluon.util.
2018-02-25 17:13:30 +01:00
Matthias Schiffer 5dcb784308
gluon-core: remove unused lock and exec functions 2018-02-25 17:13:30 +01:00
Matthias Schiffer 987eef011a
gluon-core: remove unused user/group management functions, call lock command directly 2018-02-25 17:13:30 +01:00
Matthias Schiffer 6ae1af9694
gluon-mesh-vpn-core: use OpenWrt's user/group management 2018-02-25 17:13:30 +01:00
Matthias Schiffer 218de7e0ae
gluon-web: pass base path from CGI script 2018-02-25 17:13:30 +01:00
Matthias Schiffer 661e4dee9f
gluon-config-mode-core, gluon-web-*: do not access dispatcher directly 2018-02-25 17:13:30 +01:00
Matthias Schiffer 4a8283b5ab
gluon-web: remove unused files 2018-02-25 17:13:30 +01:00
Matthias Schiffer 93c1d77e07
gluon-web-theme: add missing dependencies 2018-02-25 17:13:30 +01:00
Matthias Schiffer d5dc7a63fc
modules: update LEDE
01d7a5d7dee2 perf: restrict libunwind dependency to archs that actually support libunwind
b345cc24892d libunwind: fix build with musl on PPC
2018-02-25 17:11:16 +01:00
Matthias Schiffer 37cdea9733
gluon-web-*: consistently use <%| tag 2018-02-23 20:05:07 +01:00
Matthias Schiffer dd23a805c2
gluon-web: add new <%| tag for escaped expressions 2018-02-23 19:45:28 +01:00
Matthias Schiffer 961c9db81f
gluon-web-mesh-vpn-fastd: remove "gluon" from view paths
These files are already located in /lib/gluon, no need to add it a second
time.
2018-02-23 18:55:04 +01:00
Matthias Schiffer b2b489854e
gluon-config-mode-core: remove "gluon" from view paths
These files are already located in /lib/gluon, no need to add it a second
time.
2018-02-23 18:53:41 +01:00
Matthias Schiffer 002ab9b0e5
docs: package/gluon-config-mode-domain-select: fix syntax error 2018-02-23 14:06:43 +01:00
Matthias Schiffer 4ba7356a24
docs: dev/web: update i18n docs 2018-02-23 14:05:32 +01:00
Matthias Schiffer f558279137
contrib: update i18n-scan.pl script 2018-02-23 13:39:56 +01:00
Matthias Schiffer 88789b1536
gluon-web: update i18n strings 2018-02-23 13:39:56 +01:00
Matthias Schiffer 172a02e2dc
gluon-config-mode-domain-select: remove i18n build commands
gluon-config-mode-domain-select does not have any i18n files of its own.
2018-02-23 13:39:56 +01:00
Matthias Schiffer 557565e189
gluon-web: add i18n package namespaces 2018-02-23 13:39:56 +01:00
Matthias Schiffer 1a426c3bb9
gluon-web: make pcdata() prototype match lmo_translate() 2018-02-23 02:08:25 +01:00
Matthias Schiffer 93d3393993
gluon-web: make buf_length() argument const 2018-02-23 02:08:11 +01:00
Matthias Schiffer 2681622018
gluon-web: build with -fvisibility=hidden 2018-02-23 01:05:27 +01:00
Matthias Schiffer 43e70f351f
gluon-web: handle translation and escaping in generated Lua code
By emitting Lua code to call translate() and pcdata(), we are more
flexible than when doing this internally in the parser. The performance
penalty should be negligible.
2018-02-23 00:57:03 +01:00
Matthias Schiffer 933cc3d7d9
gluon-web: use ' instead of " for strings in generated Lua code
We need a bit less escaping this way.
2018-02-23 00:34:06 +01:00
Matthias Schiffer 3e292ba06f
gluon-web: close FDs after mmap() 2018-02-23 00:03:57 +01:00
Matthias Schiffer 99b4d2eaf0
gluon-web: clean up LMO code 2018-02-22 22:47:27 +01:00
Matthias Schiffer 3203970969
gluon-web: clean up parser 2018-02-22 21:13:24 +01:00
Matthias Schiffer 5a20f9794c
gluon-web: clean up buffer handling 2018-02-22 21:13:24 +01:00
Matthias Schiffer 624d969c52
gluon-web: compile with -std=c99 -Wall -Wextra
Also fix all warnings.
2018-02-22 21:13:23 +01:00
Matthias Schiffer 56a10e03b3
gluon-web: update copyright 2018-02-22 21:13:23 +01:00
Matthias Schiffer 7e5f0fe1d5
gluon-web: clean up opening files
Open with O_CLOEXEC, use fstat() instead of stat().
2018-02-22 21:13:23 +01:00
Matthias Schiffer 94f22e50e6
gluon-web: clean up malloc() calls 2018-02-22 21:13:23 +01:00
Matthias Schiffer f957593f26
gluon-web: template_lmo: clean up sfh_hash() 2018-02-22 21:13:23 +01:00
Matthias Schiffer 9e8a6ec2b5
gluon-web: remove lmo_canon_hash()
Our strings can be looked up verbatim.
2018-02-22 13:58:20 +01:00
Matthias Schiffer b5817f5523
gluon-web: replace custom strfind() function with memmem() 2018-02-22 13:37:57 +01:00
Matthias Schiffer 0ff4761a57
gluon-web: remove unnecessary template_lualib.h 2018-02-22 13:34:32 +01:00
Matthias Schiffer 91ae553c93
gluon-web-node-role: don't mention "Freifunk" in the labels 2018-02-22 03:27:29 +01:00
Matthias Schiffer 5b1989249a
modules: update Gluon packages
5c6476ea5893 autoupdater: use safe allocation functions
3566cabef51d autoupdater: add safe allocation functions
0b61fee98e85 autoupdater: Check if allocation of uci contect was successfull
c802276581e0 autoupdater: uclient: fix nullpointer dereference on invalid URL (#183)
2018-02-22 02:43:57 +01:00
Matthias Schiffer b943691488
modules: update LEDE
788312ca59c5 uqmi: ensure CID is a numeric value before proceeding
b934aa2f2144 kernel: update 17.01 kernel to 4.4.116
b3b16c8ce5c6 uqmi: use built-in command for data-link verification
e9eb219e5a07 uqmi: use correct value for connection checking
5661ac1de4d8 uqmi: use general method for state cleaning
7c259fb98018 uqmi: silence error on pin verification
046222dfaf12 uqmi: fix raw-ip mode for newer lte modems
0393009ec84e net: uqmi: fix blocking in endless loops when unplugging device
31ae7381b8db kernel: refresh patches
3b227103e6a3 kernel: backport raw-ip mode for newer QMI LTE modems
f60be720772c base-files: don't evaluate block-device uevent
623cdc4ffeef ramips: backport mt7530/762x switch fixes
b15d54e659b4 perf: use libunwind
566ff9e6ee69 libunwind: enable build for arm
2018-02-20 23:05:41 +01:00
Andreas Ziegler b38ca0a794
docs: update copyright year in sphinx's conf.py 2018-02-20 15:45:43 +01:00
lemoer 84618ed65a docs: add features/vpn to index (#1330) 2018-02-20 15:28:15 +01:00
Jan-Tarek Butt 60ca1ddf1a docs: add Unifi AC-LR and AC-Mesh to HW list. 2018-02-20 15:22:21 +01:00
Jan-Tarek Butt be286c4c69 ar71xx-generic: set unifi-ac-lr alias on ac-lite 2018-02-20 15:22:21 +01:00
lemoer 1a5ae67ff8 docs: add general documentation about vpn protocols (#1330) 2018-02-19 08:01:06 +01:00
Christof Schulze 9711afaf69
gluon-core: allow multiple domain names for next_node-feature
* change type of next_node.name
* create domain entry for each entry and add to dnsmasq configuration

[Matthias Schiffer: reword documentation]
2018-02-16 15:15:31 +01:00
T-X b3762fc61c gluon-client-bridge: move IPv4 local subnet route to br-client (#1312)
This patch moves the prefix4 subnet route from the local-node veth
device to br-client (while keeping the next node ipv4 address on the
local node device).

This is in preparation to allow routing over the br-client interface
later.
2018-02-16 00:00:12 +01:00
Christof Schulze f94a410738 gluon-l3roamd: let l3roam0 interface and routes be set up by l3roamd 2018-02-15 23:54:06 +01:00
Christof Schulze e724fec260 gluon-l3roamd: adjust l3roamd startup parameters
* use local socket
* use main routing table,
* pass client-bridge
2018-02-15 23:54:06 +01:00
Matthias Schiffer 62d8d3e8f2
Update LEDE patches 2018-02-15 23:27:15 +01:00
Linus Lüssing 84a6f65f02 gluon-ebtables-limit-arp: a package for ARP rate-limiting
This package adds filters to limit the amount of ARP Requests
devices are allowed to send into the mesh. The limits are 6 packets
per minute per client device, by MAC address, and 1 per second per
node in total.

A burst of up to 50 ARP Requests is allowed until the rate-limiting
takes effect (see --limit-burst in the ebtables manpage).

Furthermore, ARP Requests with a target IP already present in the
batman-adv DAT Cache are excluded from the rate-limiting,
both regarding counting and filtering, as batman-adv will respond
locally with no burden for the mesh. Therefore, this limiter
should not affect popular target IPs, like gateways.

However it should mitigate the problem of curious people or
smart devices scanning the whole IP range. Which could create
a significant amount of overhead for all participants so far.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-02-15 23:21:11 +01:00
Linus Lüssing 66d4cdf466 kernel: bridge: ebtables: Avoid resetting limit rule state
This is needed for the Gluon ARP limiter to work without hiccups in
traffic.

Link: https://patchwork.ozlabs.org/patch/841210/
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-02-15 23:21:11 +01:00
kb-light b98956e47e
gluon-config-mode-domain-select: new package
[Matthias Schiffer: slightly clean up code]
2018-02-15 20:57:53 +01:00
Matthias Schiffer 0dd03597a6
gluon-config-mode-core: allow returning functions from wizard modules
Allow returning functions in addition to the names of UCI packages to
commit. Functions are run after all packages have been committed.
2018-02-15 20:57:53 +01:00
Matthias Schiffer 345a5de861
gluon-core: add newline to the end of sysconfig files
Both gluon.sysconfig and libgluonutil already remove the trailing newline
if it exists. It's nicer to avoid files without a trailing newline, e.g.
for printing the file contents in a terminal.
2018-02-15 20:57:53 +01:00
Martin Weinelt 427c83754b gluon-core: 200-wireless: upgrade 11ac radios to VHT20 (#1328)
Patch originally authored by @oleeander.

Fixes #424
2018-02-15 20:29:19 +01:00
Matthias Schiffer d61f6a1e85
gluon-core: rename iterate_radios() to foreach_radio(), pass whole radio section
Allows to remove some redundant UCI lookups.
2018-02-15 14:04:37 +01:00
Matthias Schiffer ffa5bdd716
modules: update Gluon packages
7abd688e6ae7 sse-multiplex: don't use stdio FILE I/O for nonblocking sockets
2018-02-13 22:31:03 +01:00
Matthias Schiffer 985d0cfd81
modules: update LEDE
2e26bdfeca ar71xx: remove bs-partition ro-flag for UniFi AC
28483d4ab2 procd: update to latest git HEAD
2018-02-11 19:42:51 +01:00
Karsten f69fbf7d05 gluon-core: don't disable legacy mesh on mesh_lan on reconfigure (#1323)
Fixes #1322
2018-02-07 07:33:25 +01:00
Andreas Ziegler 4315ef7a1f sunxi: cleanup BROKEN flag formatting 2018-02-07 04:03:00 +01:00
Julian 167e1b34dc sunxi: LeMaker Banana Pi: remove BROKEN (#1325) 2018-02-06 18:24:46 +01:00
Martin Weinelt 42763d21dc
gluon-mesh-vpn-core: add public key to nodeinfo response
This is currently only implemented in the gluon-mesh-vpn-fastd
package.

Advertising the public key may be deemed problematic when
your threat-model involves protecting the nodes privacy
from tunnel traffic correlation by onlink observers.

It can be enabled by setting site.mesh_vpn.fastd.pubkey_privacy
to `false`.
2018-02-04 20:47:53 +01:00
Matthias Schiffer 623faf794a
gluon-web: fix access to undefined in checkvalue()
Fixes: cfe1bba8 "gluon-web: fix radio button view of ListValues"
2018-02-04 18:57:27 +01:00
Matthias Schiffer 9ece0daa76
gluon-web: ListValue: convert keys to strings before adding to key list
Fixes validation of ListValues.

Fixes: ec532b95 "gluon-web: extend ListValue with optional and unset
values"
2018-02-04 18:57:27 +01:00
Vincent Wiemann 273a60fe62 ramips-mt7621: Add support for ZBT-WG3526-32M (#1296)
including backport of mtd patches.

The general flash issue (32MB) was discussed here:
https://gist.github.com/dmke/d389bc364b3f73f525076eaee0019dc1
The resulting patch was the following:
http://lists.infradead.org/pipermail/linux-mtd/2016-December/070889.html

Another patch by nbd168 added the required mtd read operations for supporting ZBT-WG3526-32M:
https://github.com/lede-project/source/commit/22d982e#diff-3835f027e16e6416090c1833bc732af3
2018-02-04 17:42:48 +01:00
Matthias Schiffer c7ab72317e
lede: update patches 2018-02-03 14:22:48 +01:00
Matthias Schiffer 87ced3c5c6
modules: update LEDE
b1205a9211 ar71xx: /lib/ar71xx.sh: add model detection for TP-Link TL-WR810N
fbeae9d891 iptables: make kmod-ipt-debug part of default ALL build
6ea9a702c5 iptables: Fix target TRACE issue
00fa1e4108 curl: fix libcurl/mbedtls async interface
d5278cc48b kernel: bump 4.4 to 4.4.112 for 17.01
2ae0741f3b dnsmasq: backport validation fix in dnssec security fix
58d60bd283 dnsmasq: backport dnssec security fix for 17.01
d626aa005b mountd: bump to git HEAD version
f0336975be kernel: bump 4.4 to 4.4.111 for 17.01
fb6f21c657 kmod-sched-cake: bump to latest cake bake for 17.01
2e8a3bb35f ar71xx: Netgear WNR2000v4: do not include USB packages [17.01]
3fa86282fa build: fix restoring /etc/opkg with PER_DEVICE_ROOTFS
987a7e3175 ramips: fix lenovo newifi-y1 switch and LED config
dbb5ffaed5 ramips: firewrt: indicate boot status via LED
2018-02-03 14:17:29 +01:00
Matthias Schiffer c479d9160d
gluon-core: don't request a prefix via DHCPv6 on WAN
The prefix is not used, and requesting it leads to odhcp6c log spam with
certain DHCPv6 servers.
2018-02-03 03:02:56 +01:00
Matthias Schiffer 09c2e60cd4
gluon-core: upgrade/110-network: fix formatting 2018-02-03 03:02:20 +01:00
Matthias Schiffer 6137169104
docs, README: Gluon v2017.1.5 2018-01-31 21:56:01 +01:00
Matthias Schiffer 40efe80c2f
docs, README: Gluon v2017.1.4 2018-01-31 21:54:59 +01:00
Matthias Schiffer ec532b95cf
gluon-web: extend ListValue with optional and unset values
If a value is unset or optional, an empty choice is added to the selection.
This empty choice will be marked as invalid if the value is not optional.

This is properly supported for the 'select' widget only for now, and not
for 'radio'.
2018-01-31 17:08:21 +01:00
Matthias Schiffer cfe1bba8ae
gluon-web: fix radio button view of ListValues
Pretty much everything about this was broken:
* Fix dependency tracking
* Fix vertical orientation
* Fix paddings
* Add theming
2018-01-31 15:47:45 +01:00
Matthias Schiffer dbfd22d651
gluon-web: simplify DynamicList data attributes, respect size option 2018-01-30 23:55:08 +01:00
Matthias Schiffer bc75ce5c86
gluon-site: remove dependency of GLUON_MULTIDOMAIN on gluon-site
Solves a recursive dependency problem.

While we're at it, also fix the description string.
2018-01-28 11:24:42 +01:00
Matthias Schiffer ff073f55d8
Merge pull request #1318 from rotanid/target-cleanup
target files cleanup: variable checks and comments
2018-01-27 13:04:15 +01:00
Andreas Ziegler e9362cb724 targets: update & cleanup reasons for BROKEN flags 2018-01-26 14:17:44 +01:00
Andreas Ziegler e92140c593 targets: remove check if ATH10K_PACKAGES is set
as GLUON_WLAN_MESH now is set by default, ATH10K_PACKAGES is set by default, too
2018-01-26 14:17:35 +01:00
Matthias Schiffer 6ae067cb37
gluon-core: add domain aliases and pretty name
Based-on-patch-by: lemoer <git@irrelefant.net>
2018-01-26 12:32:47 +01:00
lemoer 2ef0af5fe8
gluon-respondd: add system.domain_code to respondd provider "nodeinfo"
[Matthias Schiffer: rebase]
2018-01-26 12:32:47 +01:00
Matthias Schiffer 8cb0388416
scripts/check_site.lua: enable in_site()/in_domain() checks 2018-01-26 12:32:47 +01:00
lemoer 146787fa5c
libgluonutil: merge domain and site configs
[Matthias Schiffer: rebase and simplify]
2018-01-26 12:32:47 +01:00
Matthias Schiffer a2f45d0d32
gluon-core: store default domain in UCI 2018-01-26 12:32:46 +01:00
Matthias Schiffer 51c0ceeb55
scripts/check_site.lua: merge site and domains for validation
Each domain is validated separately, preferring domain values to site
values.

Based-on-patch-by: lemoer <git@irrelefant.net>
2018-01-26 12:32:46 +01:00
Matthias Schiffer 24a085a542
gluon-site: add default domain and check for it
This does not do anything yet, as this_domain() is not implemented yet.

Based-on-patch-by: lemoer <git@irrelefant.net>
2018-01-26 12:32:46 +01:00
Matthias Schiffer 07dbfea617
gluon-site: disable multidomain support by default 2018-01-26 12:32:46 +01:00
Matthias Schiffer faceb3932c
config: check if GLUON_DEBUG is 1 rather than nonempty 2018-01-26 12:32:46 +01:00
Andreas Ziegler a99fdf7919 ramips-mt7621: Netgear WNDR3700v5 has no factory image
fixes build after 3ec63b8c
2018-01-26 01:45:49 +01:00
Jan-Philipp Litza cf329daaf0
Add package gluon-radv-filterd
This package drops all incoming router advertisements except for the
default router with the best metric according to B.A.T.M.A.N. advanced.

Note that advertisements originating from the node itself (for example
via gluon-radvd) are not affected.
2018-01-25 23:02:49 +01:00
Matthias Schiffer 7ae8a51126
gluon-core: allow zero VXLAN UDP checksum on RX
Also disabling TX checksums and not only allowing incoming packets without
checksum will provide another small speedup. As doing so would break wired
meshing with VXLAN-enabled nodes that require non-zero checksums, we will
wait a few days before this step.
2018-01-24 22:41:29 +01:00
Matthias Schiffer e54b37d835
gluon-core: firewall: move VXLAN rules to the top
Evaluating these rules before all the ICMPv6 rules improves wired mesh
throughput measurably.
2018-01-24 22:41:29 +01:00
Matthias Schiffer a9edd43693
Avoid unaligned memory accesses in VXLAN and batman-adv
Improves performance slightly.
2018-01-24 22:41:23 +01:00
Matthias Schiffer 2950cc3f59
gluon-core: only use a bridge for wired meshing when necessary
On most devices, there is only a single LAN interface connected to all LAN
ports, so no bridge is necessary.
2018-01-24 22:16:09 +01:00
Matthias Schiffer 8b44d09963
scripts/generate_manifest.sh: fix filesize for symlinks
scripts/filesize.sh doesn't follow symlinks.

Fixes #1316
2018-01-24 09:49:21 +01:00
Matthias Schiffer 4d4626f1c5
batman-adv: add fixes for packet checksum handling
Fixes "hw csum failure" log spam in batman-adv.
2018-01-23 12:14:29 +01:00
Matthias Schiffer c89d4f5bfa
modules: update routing packages
86375f5 alfred: adjust intervals
c5f18d5 bird: fix build dependencies
013b91d nat46: harden 464xlat teardown logic
d464bf1 bmx6: fix gcc6&7 warnings, avoid json-c patch
f48f332 nodogsplash2: update to version 2.0.1 (#344)
c3487c6 nodogsplash2: Fix Startup Failure (#343)
9abfeba mcproxy: update to latest version (#339)
d3b2d83 bmx7_json: Fix broken include of json.h
5e96695 nodogsplash2: change configuration defaults (#341)
679f780 bmx: Use repos from https://github.com/bmx-routing and remove bmx7 json-c patch
69ef0bb nodogsplash2: set the default webroot explicitly
467f0b6 batman-adv: Fix missing function name for timer_setup
dabd584 cjdns: update to version 0.20
7cb7b83 bird-openwrt: update to version 0.3
3eb8bf4 alfred: upgrade package to latest release 2017.4
e211376 batctl: upgrade package to latest release 2017.4
d046353 batman-adv: upgrade package to latest release 2017.4
b47bae1 smcroute: make build id optional
73601c9 mrd6: remove build timestamp
1c6ef01 mrd6: refresh patches
78049b4 [olsr] Bump olsr version to 0.9.6.2
8d12cf5 alfred: upgrade package to latest release 2017.3
34db538 batctl: upgrade package to latest release 2017.3
14daec6 batman-adv: upgrade package to latest release 2017.3
7d56487 batman-adv: Fix conflicts with compat-wireless backports-4.14-rc1
187937b batman-adv: Prevent FTBFS when redefining ether_setup
bb8271c Update OONF to 0.14.1-1
4c76240 Update 0.14.1 release
565cd8d v0.14.1
560504b Control build type by CONFIG_DEBUG option
5a9cd90 Fix http plugin option for olsrd2
cfb3e95 Allow HTTP Plugin
15e5046 olsrd: pud: does not depend on ncurses
71d0a0b Add v0.14.0 OONF
91e76a2 mcproxy: remove pedantic flag to allow compilation with musl
2018-01-23 12:14:29 +01:00
Matthias Schiffer 0d4bb8ff60
modules: update Gluon packages
9a6ad5c batman-adv-legacy: update to 2018-01-23 git version
ea9c5dc batman-adv-legacy: update to 2018-01-22 git version

Fixes "hw csum failure" log spam in batman-adv-legacy.
2018-01-23 12:14:28 +01:00
Matthias Schiffer 962ab3f92b
modules: update Gluon packages
fc194bc autoupdater: uclient: add error handling in connection setup
2018-01-22 11:00:07 +01:00
Andreas Ziegler d586720c5c ar71xx-generic: add support for Ubiquiti NanoBeam M5
marked as BROKEN for now as it is untested

related issue: #1099
2018-01-20 15:38:49 +01:00
Andreas Ziegler c4e3cca1d3 ar71xx-tiny: add support for TP-Link TL-WR802N v1
marked as BROKEN for now as it is untested
2018-01-19 23:47:36 +01:00
Andreas Ziegler 708aae5015 ar71xx-generic: add support for TP-Link TL-WR810N
marked as BROKEN for now as it is untested
2018-01-19 23:47:31 +01:00
Andreas Ziegler 3ec63b8c70 ar71xx-generic: add support for Netgear WNDR3700v5
fixes #442
2018-01-19 20:45:29 +01:00
Matthias Schiffer 0cb4cfdadf
docs: dev/hardware: remove some outdated info, reword a bit 2018-01-19 14:17:33 +01:00
Matthias Schiffer c84820cb08
package/gluon.mk: add to PKG_FILE_DEPENDS
Ensure packages get rebuilt when gluon.mk changes.
2018-01-19 13:22:26 +01:00
Matthias Schiffer 775028475b
check_site: move site loading logic to check_site_lib (which is renamed to check_site.lua) 2018-01-19 12:33:52 +01:00
Matthias Schiffer 43628c1679
scripts/check_site_lib.lua: improve display of invalid values 2018-01-19 11:02:33 +01:00
Matthias Schiffer 7ccdacd294
treewide: rework check_site_lib.lua
In addition to significant internal differences in check_site_lib.lua (in
particular unifying error handling to a single place for the upcoming
multi-domain support), this changes the way fields are addressed in site
check scripts: rather than providing a string like 'next_node.ip6', the
path is passed as an array {'next_node', 'ip6'}.

Other changes in site check scripts:
* need_array and need_table now pass the full path to the sub fields to the
subcheck instead of the key and value
* Any check referring to a field inside a table implies that all higher
levels must be tables if they exist: a check for {'next_node', 'ip6'} adds
an implicit (optional) check for {'next_node'}, which allows to remove many
explicit checks for such tables
2018-01-19 10:12:43 +01:00
Matthias Schiffer 414dfa8155
libgluonutil: simplify CMakeLists.txt
libgluonutil is not usable outside the OpenWrt/LEDE environment anyways, so
it doesn't make much sense to make the CMakeLists.txt overly generic.
2018-01-19 06:23:29 +01:00
Matthias Schiffer 020afc856f
gluon-site: install domain configs
The domain configs are not checked yet, and not used for anything.

Based-on-patch-by: lemoer <git@irrelefant.net>
2018-01-19 05:44:25 +01:00
lemoer 50812b162c
treewide: forbid use of selected site variables in domain specific or site configs
[Matthias schiffer: rebase, add a few more restrictions]
2018-01-19 04:05:27 +01:00
Matthias Schiffer 8d8d4fa0c3
scripts/check_site_lib.lua: introduce in_site() and in_domain() helpers
These helpers are no-ops for now, until the actual multi-domain support is
added.
2018-01-19 03:30:50 +01:00
lemoer b520bf5c50
gluon-core: rename site_seed to domain_seed
[Matthias Schiffer: rebase]
2018-01-19 03:30:06 +01:00
Matthias Schiffer 1dd9845db1
package/gluon.mk: use nicer escaping in GluonCheckSite 2018-01-19 01:38:56 +01:00
lemoer adcd5b7311
gluon-core: add gluon-reconfigure script
Not useful by itself except for testing; will be used for multi-domain
support.

[Matthias Schiffer: rename script, use for initial configuration]
2018-01-19 01:10:39 +01:00
lemoer 0f5d932c4f
gluon-core: add util gluon-show-site to print merged site config
This should not convert JSON to a Lua table and back, as this loses the
distinction between arrays and objects, but as our site.conf is defined in
Lua anyways (for now), this can be fixed in a later revision.

[Matthias Schiffer: rename to gluon-show-site, rebase]
2018-01-19 01:07:44 +01:00
lemoer 5817170821
gluon-core: introduce "gluon" uci package
[Matthias Schiffer: change section name and commit message]
2018-01-19 00:41:25 +01:00
Matthias Schiffer 0b80f1b5ce
gluon-core: reimplement gluon.site module in C
By basing the Lua gluon.site module on gluonutil_load_site_config(), the
config load implementation needs to changed only in a single place for
multi-domain support.
2018-01-18 16:29:00 +01:00
Matthias Schiffer 6cf88c3b03
Replace luci-lib-jsonc with our own lua-jsonc 2018-01-18 16:28:59 +01:00
Matthias Schiffer 4d7740ae97
modules: update Gluon packages
d14cede lua-jsonc: new package
309dacf batman-adv-legacy: batctl: backport TL header lines fix (#181)
2018-01-18 16:28:56 +01:00
Matthias Schiffer 12103d9638
gluon-web: remove useless serialize_json alias 2018-01-18 07:49:00 +01:00
Matthias Schiffer 01336f70ec
gluon-core: firewall: make the default input policy REJECT
Fixes #1311
2018-01-17 09:51:10 +01:00
Matthias Schiffer a32fddf38c
gluon-core: firewall: accept inbound VXLAN traffic on wired mesh interfaces
Fixes #1308
2018-01-17 09:51:10 +01:00
Matthias Schiffer 454555a030
gluon-alfred: firewall: allow alfred server announces from mesh 2018-01-17 08:06:42 +01:00
Matthias Schiffer 18feb29b29
gluon-autoupdater: don't reference old autoupdater util library
Fixes #1310
2018-01-17 01:06:15 +01:00
David Bauer 99b02701cc ar71xx: add support for TP-Link Archer C58/C59/C60 (#1281) 2018-01-16 18:51:12 +01:00
Andreas Ziegler fb93c3b259 ar71xx: correct model name for TL-WR1043N v5, fixes #1307 2018-01-16 18:30:37 +01:00
Matthias Schiffer c72adcacae
modules: update Gluon packages
49cb4b3 autoupdater: new implementation
2018-01-13 00:25:08 +01:00
Matthias Schiffer 18b9174d03
Use 'disabled' attribute instead of 'auto' to disable wired mesh interfaces
The 'auto' attribute still allows enabling the interface using ifup, which
is not intended when wired mesh is disabled.
2018-01-11 23:06:36 +01:00
Matthias Schiffer 0b6f433478
Merge pull request #1303 from rotanid/mesh-doc-pr
docs: move GLUON_WLAN_MESH to site.rst & improve text
2018-01-11 22:03:52 +01:00
Andreas Ziegler 979c69ffc3 docs: move GLUON_WLAN_MESH to site.rst & improve text
fixes an error and removes the focus on ath10k
2018-01-11 03:59:47 +01:00
Tata 919dda90b3 build: introduce GLUON_WLAN_MESH build variable (#1298)
defaults to 11s, allowing to build devices without IBSS-support

obsoletes GLUON_ATH10K_MESH
2018-01-10 15:49:33 +01:00
Matthias Schiffer e65dc0e7dd
docs: add package/gluon-web-logging to index 2018-01-09 23:12:28 +01:00
Matthias Schiffer dce388fdc7
modules: update LEDE
c3cdc53164 ag71xx: Fix rx ring buffer stall on small packets flood on qca956x and qca953x.
e07ee06aad ar71xx: QCA956X: add missing register
7bc25dfa63 mvebu: fix mvneta build with Linux 4.4.110
541a1a7ff5 lantiq: activate noise margin delta for VDSL too
dea8979a81 Lantiq: make possible to tweak DSL SRN from UCI
9934231670 libubox: update to latest lede-17.01 git HEAD
7f5a040359 kernel: update kernel 4.4 to version 4.4.110
ddedcb19e5 brcm47xx: relocate the stack in loader
da43069f5b brcm47xx: relocate loader to higher address
f19416ae9d fstools: backport fix from master branch
55c23e44f4 procd: update to latest git HEAD
ffbbcc9b34 brcm47xx: image: build firmware for Asus WL-500g Deluxe
0426596453 Revert "iptables: fix nftables compile issue (FS#711)"
da126d557c iptables: fix nftables compile issue (FS#711)
473e994571 rpcd: backport version 2017-12-07 from master
b833944eb2 uci: update to HEAD of lede-17.01 branch
dca4dfacf2 iproute2: cake: fix patch format error
ee55629a30 kernel: bump 4.4 to 4.4.108 for 17.01
c4e9487cf5 iproute2: cake: support new operating modes for 17.01
4f1dca9eca kmod-sched-cake: bump to latest bake of cake for 17.01
959a49dc15 ramips: fix widora neo diag led
a1908023cc base-files: fix logic when to show failsafe banner
1c9299877b base-files: set FAILSAFE in /etc/profile when /tmp/.failsafe exists
2603c85060 wireguard: bump to 20171221
f8a441e020 kernel: bump 4.4 to 4.4.107
ceea0ac25d wireguard: bump to 20171211
ebb54740c7 brcm47xx: remove target specific network preinit config
b41d154f50 rules.mk: export TMPDIR
e719a08cc1 usbutils: Update usb.ids file to latest
4cfcfecf76 hostapd: remove unused local var declaration
796bc21023 hostapd: don't set htmode for wpa_supplicant
50147d41b9 libnl-tiny: use fixed message size instead of using the page size
0625814426 packages: nvram: fix memory leak in _nvram_free
0f175041ad mac80211: don't pass the hostapd ctrl iface in adhoc
05f0fac189 hostapd: explicitly set beacon interval for wpa_supplicant
7f78a86254 hostapd: set mcast_rate in mesh mode
c315843f88 igmpproxy: remove firewall rules when service is stopped
91e48304a9 openvpn: add support to start/stop single instances
e5c284bb81 package/elfutils: add CFLAG -Wno-format-nonliteral
dde29b2b01 tools/coreutils: install readlink
2f75641b1f uhttpd: fix query string handling
79024cd3be openssl: fix cryptodev config dependency
bead60c2d3 uqmi: replace legacy command invoke with newer type
5872c19c63 procd: Always tell cmake whether to include seccomp support or not
cd901ef1a6 libunwind: disable building with ssp
1aedf2f149 tools/squashfs: use host cflags
7fa70027d4 ppp: make the patches apply correctly again
d63eb474b3 ppp: fix compile warning
9bd667fc24 dropbear: fix PKG_CONFIG_DEPENDS
9d1bfb8f4d dropbear: make ssh compression support configurable
ed4f4f1a8e procd: Install seccomp-trace symlink
77e79b2dd0 openvpn: update to 2.4.4
5beb0abc83 build: remove @ as it's causing an error
eff1f7e7ef usbutils: avoid duplicating the git revision
9cf371c1f4 dnsmasq: Pass TARGET_CPPFLAGS to Makefile
2f80d84638 wwan: json format in some modem definitions
c61cf4a447 base-files: add /etc/profile.d to conffiles
bdc998c696 base-files: order conffiles alphabetically
c58e824acc procd: mdns: Support txt values with spaces
aaa73fea36 ar71xx: fix switch port numbering on RB750r2 and RB750UPr2
b69ea02a00 scripts/dowload.pl: use glob to expand target dir
80a22eee4b samba36: Remove syslog and load printers lines.
71797b6eca samba36: Don't resolve interfaces.
1458bc2d9c samba36: Remove guest ok since LuCI configures it.
f0065554b2 config: make CONFIG_ALL_* select other CONIFG_ALL_* options
2b88309335 nvram: add help message for nvram magic not found
118a2ea0bc nvram: improve argument check when program start
c446ee4ad4 nvram: add usage() function
9e84d333b1 nvram: fix memory leak
3b6b892d67 ca-certificates: Update to 20170717
23b9dc2eca base-files: drop unused preinit_echo function
ca7c9db47f tools/pkg-config: Update to 0.29.2
75d8127338 base-files: suppress uci not found output in login.sh
b616aa6db7 scripts/package-metadata.pl: inhibit compile deps on missing build types
2e1a87a3e1 build: bundle-libraries.sh: do not override argv[0] in inner exec calls
a37f8b0c6e samba36: Remove legacy options
89c4f47caa scripts/download.pl: Adjust URLs
338968a170 build: fix invocation of bundled ld.so in SDK and Imagebuilder
0a976262a5 kmod-sched-cake: drop maintainer
610e2afdcc zlib: use default Build/Configure rule
cf11a41af6 lzo: use default Build/Configure rule
c86490605c netfilter: add iptables-mod-rpfilter package
ea23ba9a25 bzip2: add symlink to binary
d413c75d24 dropbear: add option to set max auth tries
8693ab5152 dropbear: server support option '-T' max auth tries
0e6a6c8487 hostapd: configure NAS ID regardless of encryption
ef3649d90e hostapd: add acct_interval option
3027a68093 valgrind: bump to 3.13.0
3129db331c busybox: backport 'ip rule suppress_{prefixlength, ifgroup}'
86158ad37d libunwind: update to version 1.2.1
59004433e9 imagebuilder: don't rewrite package list output
74eeb07817 imagebuilder: clean package_list
7f3f2bc03b build: remove old kernel-headers build directories
c7234e3036 imagebuilder: add package_list function
9c3e4b5434 base-files: board.json's switch reset means existence, not argument
7d1f4073ce gdb: remove Build/Compile rule ; default one works
9a99039989 rb532: enable high-res timers, refresh kernel config
e802cbfc25 xburst: enable high-res timers, refresh kernel config
e01367e3af kernel: add CONFIG_SCHED_HRTICK=y to the generic config
6e1e2e7b96 package/grub2: update to 2.02
13a5568d6e ip17xx: correct aneg_done return value
816fb3433b mvswitch: fix autonegotiation issue
41ee45428b ppp: propagate master firewall zone to dynamic slave interface
a44c44077e usbmode: remove devices with unsupported modes
e8bd0a606a tar: override symlink permissions
59a1c1675d tools/sparse: Update to snapshot 2017-03-31
a6e5943a2a elfutils: Pass -Wno-unused-result to silence warnings as errors
08070221ed gcc: fix documentation entries added by 910-mbsd_multi.patch
ef43c04c34 scripts/download.pl: print the command used to download files
6e09b20563 tools/libressl: update to 2.5.4
08be74f699 tools/isl: update to 0.18
26ea59cd01 lldpd: bump to 0.9.7
444b64f533 libunwind: update to 1.2
e5612d6640 lantiq: spi: double time out tolerance
28c350f2f0 base-files: fix default procd reload
108a42bcba ramips: support jumbo frame on mt7621 up to 2k
8d4c047dd1 lldpd: drop specific respawn params [use system-wide]
8ee15ed61a elfutils: bump to 0.169
9754a9c606 devel/trace-cmd: Update to 2.6.1
79def69047 comgt-3g: enable modem before to setpin
070463fb61 devel/strace: Update to 4.16
67caf6bbce network/utils/ipset: Update to 6.32
f0a493160c mac80211: gracefully handle preexisting VIF
827f108b42 scripts: Probe external toolchains for libthread-db
bb9eb2c96e build: new fixes for symlinked .config handling
4607007a86 build: allow val.% targets to bypass the prepare steps
90575776b7 x86: keep /boot mounted for kexec
6b9eb0c73a hostapd: fix reload frequency change patch
040ff6fdbd build: remove absolute path to perl and replace with /usr/bin/env perl
98588273b1 kernel: allow selecting RTC drivers on targets without explicit RTC support
f30114c7c4 dropbear: fix procd interface trigger install
3e7f191008 include/packages-defaults.mk: Remove LARGEFILE option
a1392e08c5 netifd: return error status in reload_service
10182cb2c6 grub2: update to 2.02~rc2
38ea91ea9a base-files: use restart if no reload hook for service
9b24d99b91 iproute2: add libgenl.h and ll_map.h to InstallDev section
94597229c3 busybox: fix installation of cron and ntpd scripts in the default config
9ce30f7175 kernel: move initramfs's init script out of base-files
c8a0f3aa29 target.mk: check that CPU_TYPE has known CPU_CFLAGS mapping
977db9f08a scripts/download.pl: fix error message on hash mismatch
7fb03d9610 netifd: fix fw3 warnings in dhcp script
f69d73f1b2 build: allow specifying flow-control to grub on serial console
91821c8c0b kexec-tools: get kexec running on MUSL and x86 hardware
affff02798 busybox: don't install NTP scripts if NTP isn't configured
7ccfa826ee ar8327: Add workarounds for AR8337 switch.
0aafbf6c00 build: fix STAMP_PREPARED with quilt
80304ace58 lantiq: remove lantiq_board_model, it is unused
8be5b12ea1 lantiq: remove lantiq_board_name, use the generic function instead
0f0d742ae3 lantiq: move lantiq_board_detect() to 03_preinit_board.sh
f173464f13 base-files: add generic board_name function to functions.sh
62a8252a0f mac80211: Fix race condition leading to wifi interfaces not coming up at boot sometimes.
5f03ce1213 scripts: only generate config from feature flag if fully match
f7f69130e5 lzo: Update to 2.10
6ba0cc14e9 tools/coreutils: Update to 8.27
100553d605 tools/libressl: Update to 2.5.1
25fe034861 tools/dosfstools: Update to 4.1
ed4976d884 tools/sed: Update to 4.4
7263e3cdca lldpd: bump to 0.9.6
3225fbfcbf x86: image: drop duplicated copy of bzImage into vmlinuz
37aae44a47 libnl: Fix building with uClibc
950439234e toolchain: add musl libc.so to external toolchain
cfb5a550e4 iwcap: fix handling kill signal during dump
1411493569 x86: image: drop unneeded grub call
58e0c0feec x86: image: drop unused ROOTDELAY variable
05f0b8d18b ccache: update to 3.3.4
15efa09507 base-files: add submission service port
56b9f0ffc0 procd.sh: use parameterized respawn values
28c9731984 toolchain: Allow external toolchains to specify libthread-db
2dd9b62f82 rssileds: Fix build with external toolchains
2d31ec4c1b adb: Also pass TARGET_CPPFLAGS
ec395eeb17 swconfig: Link with libubox
c6dd059a9a px5g: Fix TARGET_LDFLAGS and add TARGET_CPPFLAGS
12b811a609 omcproxy: Update to latest HEAD
1e3ff02ea5 bsdiff: Also pass down TARGET_CPPFLAGS
051a33e7c9 thc-ipv6: Allow overriding CFLAGS
a91d8dd162 tools/m4: update 1.4.18
acd481470c build: get rid of FIND_L from host.mk
11cd6077ba build: unsilence move command
903a404663 build: skip headers install and config on make target/linux/prepare
a7fc27edce build: make Host/Install/Default use Host/Compile/Default with an extra argument
94f079e338 build: Pass -iremap gcc option as a single argument
3056122bf7 toolchain/gcc: parallelize make install
a33b0ced78 toolchain/musl: parallelize make install
1d0f7e3136 imagebuilder: make submake invocations less verbose
bdb05f5ef5 gcc: remove obsolete uclibc patch
90a43e508e toolchain/gcc: reduce source directory size by about 420 MB
82615922b0 bcm53xx: suppress osafeloader info error messages during flashing
c566a9e563 toolchain: Broaden the executable loader pattern
3387158e45 build: Suffix build directory with _$(LIBC) for external toolchains
2428b6d6b6 tools/sstrip: Fix compile under standard linux.
50b478956a openssl: update to 1.0.2n
135aa3ba7e base-files: upgrade: make get_partitions() endian agnostic
207bcea1de cyassl: update to wolfssl 3.12.2 (1 CVE)
3bb881862b mdadm: fix parameter quoting
6c1b6e8221 mdadm: Fix config generation
4fc0fb3ca3 mdadm: Do not check RUN_DIR
157b892994 kernel: remove out of tree direct-io disable hack
adc9f935c3 utils/mdadm: Update to 4.0
8bf67f63b9 mdadm: extend uci config support
4af145ea67 rules.mk: make PKG_CONFIG_DEPENDS properly track string values
2b664499cd kernel: bump 4.4 to 4.4.103 for 17.01
ed82c52a4a uqmi: also try newer pin verification
b41a2e646e opkg: bump to version 2017-12-08
f5f5f583f9 hostapd: backport fix for wnm_sleep_mode=0
19ebc19f54 hostapd: Expose the tdls_prohibit option to UCI
3590316121 dnsmasq: backport infinite dns retries fix
060b7f1fbb curl: apply CVE 2017-8816 and 2017-8817 security patches
4b5861c47d mt76: update to the latest version
f19d47f848 tools: patch various gnu tools for macOS 10.13
e5a10bc0fc samba36: backport an upstream fix for an information leak (CVE-2017-15275)
d77fe9219a ramips: backport MT7628 pinmux fixes
9601e6a0e2 ramips: add missing reset button for Nexx WT1520
0946ec0f46 wireguard: bump to snapshot 20171127
2018-01-09 19:03:34 +01:00
Linus Lüssing 4911da56e1
gluon-ebtables: Enable concurrent ebtables updates
This enables the ebtables internal locking mechanism which
will avoid race conditions between multiple, concurrent
ebtables calls.

This is a preparation for the upcoming gluon-arp-limiter
daemon, to avoid issues if upon restarting gluon-ebtables
the gluon-arp-limiter daemon tries to modify the tables.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2018-01-03 19:58:53 +01:00
Sven Eckelmann cb03183284
ebtables: Use flock() for --concurrent option
The previous locking mechanism was not atomic, hence it was possible
that a killed ebtables process would leave the lock file in place which
in turn made future ebtables processes wait indefinitely for the lock to
become free.

Fix this by using flock(). This also simplifies code quite a bit because
there is no need for a custom signal handler or an __exit routine
anymore.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2018-01-03 19:58:53 +01:00
Matthias Schiffer 9e3ea83093
Refresh patches and fix numbering 2018-01-03 19:54:13 +01:00
David Bauer 9273e56c63 ar71xx: add support for TP-Link Archer C7 v4 (#1289) 2018-01-03 16:50:23 +01:00
Christof Schulze 621eaf3c91 modules: update url to lede-project git repository after upstream move (#1292) 2018-01-03 12:42:18 +01:00
Christof Schulze bc2fb8cc69 gluon-respondd: firewall should allow access for devices in zone local_client (#1291) 2017-12-31 19:57:57 +01:00
Christof Schulze 910a6c8bb3 gluon-respondd: add current unix time to statistics (#1287) 2017-12-29 23:49:28 +01:00
Matthias Schiffer d531289dee
Backport patches for rx buffer stalls on QCA953x and QCA956x
Fixes #1101
2017-12-29 16:12:52 +01:00
Matthias Schiffer 21b3dd3259
build: add file size field to manifest lines
We would like to check the file size instead of downloading indefinitely.
The file size is added in another copy of the manifest lines, which is
ignored by older autoupdater implementations.
2017-12-28 22:57:37 +01:00
Matthias Schiffer 245e0f9ecc
Merge pull request #1280 from FreifunkVogtland/libbatadv
libbatadv: Add common batman-adv helper functions library
2017-12-28 14:50:13 +01:00
Christof Schulze 41ab551518
libgluonutil: add function that retrieves the node prefix from site.conf 2017-12-27 23:50:31 +01:00
Ruben Barkow a92cfa3194 docs: standardize package descriptions and add missing example in site-example (#1179) 2017-12-27 21:48:21 +01:00
Matthias Schiffer 8e6e06c4b8
modules: update Gluon packages
57c6796 tunneldigger: clean up version variables in Makefile
90ecf80 tunneldigger: Update to newest upstream commit: (#178)
8769d07 L3roamd bump (#180) -- use all-nodes mac
79583b3 l3roamd: bump version, fix memleaks, adjust output (#177)
030be55 l3roamd: bump version to 2017-12-11
ffd793a libbabelhelper: update version
e0e4fa2 mmfd: bump version (compile fix) (#176)
25123fe bumping versions of l3roamd, mmfd, libbabelhelper
2017-12-27 17:53:18 +01:00
Sven Eckelmann 6701aa81a5 gluon-status-page-api: Use genl helpers from libbatadv
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-27 17:40:41 +01:00
Sven Eckelmann a267cc7ee7 gluon-mesh-batman-adv: Use genl helpers from libbatadv
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-27 17:40:35 +01:00
Sven Eckelmann 624cffc744 libbatadv: Add library for common batman-adv helpers
Interacting with batman-adv's genl interface requires some code and
definitions which could be shared between different packages. libbatadv is
trying to do this without providing any guarantee for ABI or API stability.
It is only useful in very controlled environments like gluon.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2017-12-27 17:40:30 +01:00
Matthias Schiffer f799518194
gluon-ebtables-filter-multicast: do not filter out Bridge Loop Avoidance
batman-adv uses gratuitous ARP packets with certain target addresses for
BLA.

Fixes #1198
2017-12-27 17:22:37 +01:00
Karsten 35237c2ca1 gluon-web-network: make 'PoE Power Port[0-9]' translatable (#1173) 2017-12-27 03:11:49 +01:00
Jan-Tarek Butt f514ec13b5
brcm2708-bcm2709: add manifest_alias for raspberry-pi-2-model-b-rev-1.1 2017-12-27 03:06:19 +01:00
Jan-Tarek Butt 7b61cb16f8
brcm2708-bcm2708: add manifest_alias for raspberry-pi-model-b-rev-2
Signed-off-by: Jan-Tarek Butt <tarek@ring0.de>
2017-12-27 03:05:53 +01:00
Matthias Schiffer 2b1ffb3034
gluon-core, gluon-client-bridge: create local_client zone in core
As core defines basic rules for this zone, it makes sense to create it
there.
2017-12-27 02:43:34 +01:00
Matthias Schiffer 8ea5810bda
gluon-core: firewall: allow inbound ICMPv4 ping on local_node 2017-12-27 02:43:34 +01:00
Matthias Schiffer 39284f00d0
gluon-core: firewall: allow Multicast Listener Discovery on mesh/local_client
Based-on-patch-by: Christof Schulze <christof.schulze@gmx.net>
2017-12-27 02:43:33 +01:00
Matthias Schiffer a252383918
gluon-core: firewall: remove redundant ICMPv6 output rules
OUTPUT is always accepted, no need to allow ICMPv6 explicitly.
2017-12-27 02:43:33 +01:00
Matthias Schiffer fe2048e4df
gluon-core: firewall: coding style
Wrap long lines.
2017-12-27 02:43:33 +01:00
Ralf Jung 4bae0a429f docs: dns-cache: explain setting dns.servers a bit more (#1268) 2017-12-27 00:21:08 +01:00
edeso ab16cea161
build: allow passing relative paths
Allow using relative paths for GLUON_SITEDIR, GLUON_OUTPUTDIR, ...

We also check for whitespace in paths now, as build will not work properly
with whitespace anyways, and Make's abspath would require escaping
otherwise.

[Matthias Schiffer: minor changes, rewrite commit message]
2017-12-25 17:54:42 +01:00
David Bauer 70784cb3b2 ar71xx: add support for TP-Link TL-WR1043N v5 (#1279) 2017-12-19 04:22:44 +01:00
Rotzbua 3e25039012 docs: README.md: switch to https URLs (#1278) 2017-12-14 16:12:10 +01:00
Steffen Förster 9136562517 ramips-rt305x: add D-Link DIR-615 rev D1-D4 2017-12-08 00:00:35 +01:00
Matthias Schiffer d21c3e4964
modules: update LEDE
7f3dab2fc3 kernel: bump 4.4 to 4.4.102
d3f40aabba wireguard: bump to 20171122
7ec639451d ramips: fix Planex CS-QR10 device packages
6cfa7e5788 ramips: fix DCH-M225 support
e626942c33 dnsmasq: load instance-specific conf-file if exists
d64c0e54a5 rpcd: update to version 2017-11-12
ecaad8b2cb brcm47xx: fix switch port mapping on D-Link DIR-330
d851d7fa56 wireguard: fix portability issue
8751bd771d wireguard: move to kernel build directory
ed571c14e0 wireguard: bump to 0.0.20171111
c9fb48a432 procd: update to latest git HEAD (fixes and improvements)
cda8ec7dd8 openssl: update to 1.0.2m
421754191d brcm47xx: fix switch port mapping on Asus RT-N12 and RT-N16 models
95824b9bf6 rpcd: update to the latest version from 2017-11-09
792559f25b mountd: bump to git HEAD version (optimization fixes)
a0ef1c478a functions.sh: fix default_postinst function
2017-11-26 15:44:41 +01:00
kb-light 17d1c65610
ramips-mt7621: do not tag ubnt-erx(-sfp) as broken
There is no wifi, so there is no bad wifi.

[Matthias Schiffer: rebase onto master]
2017-11-26 12:46:20 +01:00
Karsten Böddeker 64cfd648cb
ramips-mt7621: add support for UBNT EdgeRouter X-SFP
[Matthias Schiffer: remove patch "ramips: simplify ubnt-erx-sfp device
definition", as it depends on other patches that have not been backported]
2017-11-26 12:44:52 +01:00
Christof Schulze c544846bc5
gluon-neighbour-info: allow respondd replies on mesh and wan interface 2017-11-25 23:31:23 +01:00
Christof Schulze e5b4d25451
gluon-respondd: allow access to respondd from mesh-internal addresses 2017-11-25 23:31:08 +01:00
Christof Schulze 1c1c9f8fc7
gluon-core: firewall rework, make base policy more restrictive
* gluon-core, gluon-client-bridge: introduce new firewall zone: local_client
 * gluon-core: put clients in local_client zone, introduce drop-zone,
   set dns-rules and zones
 * gluon-respondd: allow respondd on mesh
 * gluon-status-page-api: allow http input on mesh and client
2017-11-25 23:19:08 +01:00
Matthias Schiffer 7351fb5d4a
gluon-web-network: fix reading "legacy" mode settings from UCI
Fixes #1269
2017-11-25 22:08:58 +01:00
Matthias Schiffer 87c741b45e
scripts: run feeds.sh with bash like the other scripts handling modules
Fixes #1262
2017-11-23 17:44:46 +01:00
Andreas Ziegler 1ca402ee46 ramips-mt7621: ZBT-WG3526 has no factory image 2017-11-23 03:09:03 +01:00
Andreas Ziegler 14ef0387ea ramips-mt7621: add ZBT-WG3526 2017-11-23 03:05:58 +01:00
kb-light f7f659c254
gluon-web-network: make poe_passthrough more generic 2017-11-15 22:45:22 +01:00
Andreas Ziegler 6f7504b48a docs: site-example: site.conf: fix typo 2017-11-15 03:44:53 +01:00
Matthias Schiffer d147c987c6
modules: update LEDE
6b6578feec wireguard: version bump to 0.0.20171101
9740523763 ar71xx: fix LED config for DIR-869 A1
bdf19eec35 ipq806x: nbg6817: sync MAC addresses to the upstream values
2aff2add31 ipq806x: nbg6817: add kmod-fs-ext4 to device packages
63f6408ccc uclient: update to the latest version, fixes fetch of multiple files
2017-11-05 20:40:20 +01:00
Matthias Schiffer 460830bea1
modules: update Gluon packages
16bf1f9 libpacketmark: fix call of initialization function (again)

Fixes #1245
2017-11-04 20:56:54 +01:00
Matthias Schiffer 3fce6a6836
docs: fix recommended command line to generate site seed
Without -v, hexdump would sometimes replace duplicate bytes with "*" and
a newline.
2017-10-31 22:41:33 +01:00
Christof Schulze 94e7827ac8
gluon-status-page: improve localization (#1241) 2017-10-31 19:25:27 +01:00
Matthias Schiffer 7a53482f86
modules: update LEDE
3eae19acee ramips: fix Youku-YK1 support
8a48a53dcb tools/squashfs4: include sysmacros.h explicitly
8406e50df5 tools/squashfs: include sysmacros.h explicitly
96dbf59e5a tools/mtd-utils: include sysmacros.h explicitly
d2fd6412a6 tools/findutils: include sysmacros.h explicitly
367b4563b4 dnsmasq: restore ability to include/exclude raw device names
ee6fa8d839 lantiq: add missing default lan interface
2bee675d33 ipq806x: fix Zyxel NBG6817 WiFi button
f5935f78a1 ramips: fix default usb support for nexx wt3020-8M
2017-10-29 20:48:31 +01:00
Matthias Schiffer f7baa2c4df
modules: update OpenWrt packages
Fixes a build issue in kmod-jool.

82ef2fd7 jool: fix PKG_BUILD_DIR to avoid kernel ABI mismatch
fee9a0aa monit: update to 5.24, use https download url
5a6fcfbc monit: update to 5.23
4479fada monit: update to 5.20, use PKG_HASH
9ce3deb8 sqlite3: update to 3.19.3
6bca8579 libs/sqlite3: Update to 3190200
0a279576 sqlite: update to 3.17.0
58a1a733 libwebsockets: add PROVIDES to both variants
e967fd8c icu: fix CVE-2017-14952 Double-Free Vulnerability [lede-17.01]
3c29b149 Revert "Provides a way to acquire the list of installed packages without the"
27bdc743 Revert "add ubus call to perform a sysupgrade and acl file for the attended"
cdcf6ad2 Revert "due to renaming .rpcd was forgotten in the Makefile"
04cbc70c due to renaming .rpcd was forgotten in the Makefile
f6c287f1 add ubus call to perform a sysupgrade and acl file for the attended sysupgrade use case as well uci defaults. Package is a part of the GSoC 17 project implementing easy sysupgrade functionality.
983819f3 Provides a way to acquire the list of installed packages without the need to have opkg available. It is being used for the GSoC 17 project implementing easy sysupgrade functionality.
cd5c4487 wireguard: drop package
9040b270 noddos: new backport of noddos from master branch
72e88678 wireguard: bump to release 0.0.20171005 for 17.01
de79f4c7 bluez: fix CVE-2017-1000250
b56e6504 tor: update to version 0.2.9.12
c69b0774 tor: update to version 0.2.9.11
ea9ca5ed ruby: bump to 2.4.2
fa3a118d collectd: uptime plugin: apply fix from upstream
4739584c mwan3: fix interface-bound traffic when interface is offline
d61bf45c haproxy: update to 1.7.8 and pending patches  - fixes reload issue with hanging process
a6a44f91 pcre: Added fix for CVE-2017-11164 by adding stack recursion limit
1434dbdf pcre: upgrade to version 8.41  - fixes security issues
ad256bbf strongswan: fix typo
a7007291 strongswan: add curve25519 plugin
1143cb9b strongswan: bump to 5.5.3
384e89b3 strongswan: bump to 5.5.2
fe233e35 net/mwan3: update Makefile
42f46570 unbound: update to 1.6.5
a3c78648 net/mwan3: remove lock file on mwan3 stop
282e9001 net/mwan3: fix ping issue if last interface recovers from failure
94a52336 net/mwan3: fix ipset generation in hotplug script with an lock
822bc96b net/mwan3: add lock for mwan3 hotplug script
70d96f5d net/mwan3: add connected network regardless of mwan3 interface enable state
8a111b5b net/mwan3: mwan3track interrupt sleep on signal (trap) event
eefc65b0 net/mwan3: fix hotplug on ACTION ifdown
7fb33ad6 mosquitto: properly use localhost instead of ipv4
75f50611 mosquitto: support more config options in UCI
956ef7a8 acme: Make sure postrm script doesn't fail
788f17e9 acme: Fix for curl linked against mbed TLS. (#4254)
5383fd42 nlbwmon: update to latest version
29fb31fe nlbwmon: add package
ce5ff274 mosquitto: update to 1.4.14
bdac4914 mosquitto: update to 1.4.13
e4e22eb9 zabbix: update to 3.2.6
4ea3c274 zabbix: partially fix zabbix-extra-mac80211
26897f09 zabbix: update to 3.2.4, use PKG_HASH
f2539c58 lighttpd: backport more mod_cgi fixes queued for 1.4.46
46014e36 coreutils: stdbuf: fix missing libstdbuf.so
e8af9ce4 gnutls: updated to 3.5.13
4c26df19 libtasn1: updated to 4.12
b91c48ba openconnect: new option mtu
7af43217 openconnect: drop stale config: interface
9c9571fd openconnect: Bump openconnect to 7.08
72928442 minidlna: backport fixes from 1.1.6 and 1.2.0 releases
ca5d4b08 openldap: update to 2.4.45
dc558eaa mosquitto: fix empty client-nossl package
33d8f9e5 libdmapsharing: update to 2.9.38
53d18a45 tor: update to version 0.2.9.10
2017-10-29 18:47:17 +01:00
Matthias Schiffer becc90d818
build: delete lede/tmp on module updates
LEDE doesn't always notice that the metadata needs to be refreshed.
2017-10-29 18:44:30 +01:00
Matthias Schiffer 207337b5de
modules: update Gluon packages
5249974 libpacketmark: fix call of initialization function

Fixes #1245
2017-10-25 14:57:05 +02:00
Matthias Schiffer 3a8ea42595
modules: update LEDE (2017-10-23)
0780e12483 opkg: bump to 2017-10-23 (lede-17.01)
98c003e3da lantiq: ARV752DPW22: fix wireless mac address
50db9a4004 lantiq: ARV752DPW22: set correct wireless led trigger

Fixes #1246
2017-10-23 23:57:44 +02:00
lrnzo 0b4cbec0e9
docs: change group name gluon-fastd to gluon-mesh-vpn
The group was renamed during the development of Gluon v2017.1, adjust the
documentation accordingly.
2017-10-22 20:34:05 +02:00
Andreas Ziegler a040ec0083
ar71xx: add TP-Link Archer C25 (#1238)
BROKEN because of stability issues with 5GHz enabled.
2017-10-22 01:43:20 +02:00
Matthias Schiffer 53de2e65c5
modules: update Gluon packages
6d2b807 lua-simple-uci: fix set()/tset()/section() with empty lists
5733253 libbabelhelper: adapt to new install paths due to package version change
ce7f69a use latest libbabelhelper
f76cfa8 mmfd: bump version to pull in latest adaptions to libbabelhelper
b4f97fb mmfd: bump version to pull in latest adaptions to libbabelhelper
706bef6 respondd: add diagnostics about failed module load (#171)
4f1a0c0 mmfd: bump version
f5cc0fb libbabelhelper: add initial version
2017-10-19 02:13:44 +02:00
Matthias Schiffer 184e2283ce
modules: update LEDE base
373fa54d35 kernel: bump 4.4 to 4.4.93 for 17.01
586a721d3f mountd: bump to git HEAD version (fixes SIGSEV crashes)
cdb2684dce LEDE v17.01.4: revert to branch defaults
444add156f LEDE v17.01.4: adjust config defaults
79f57e422d wireguard: version bump to 0.0.20171017
d501786ff2 hostapd: add wpa_disable_eapol_key_retries option
b6c3931ad6 hostapd: backport extra changes related to KRACK
a5e1f7f5ef mac80211: backport kernel fix for CVE-2017-13080
46e29bd078 x86: partly revert cabf775
707305a19d mac80211: Update wireless-regdb to master-2017-03-07
907d8703f4 wireguard: add wireguard to base packages
bff16304b0 brcmfmac: backport length check in brcmf_cfg80211_escan_handler()
fa0b5fce1f kernel: bump 4.4 to 4.4.92
e6fd17d04c ramips: fix compile warning in MT7621 NAND driver
2e9f3c6225 ramips: fix typo in MT7621 NAND driver
63c17142c8 hostapd: merge fixes for WPA packet number reuse with replayed messages and key reinstallation
cdd093b539 x86/64: add xen DomU support
cabf775e64 x86: Refresh subtargets kernel config
da0219ed9f x86: Fix xen serial console by removing conflicting PATA driver
f52b404aee x86/generic: use HIGHMEM64G instead of HIGHMEM4G to fix PAE and Xen
8ad1b09c6d kernel: add fix for bgmac with B50212E B1 PHY
c1023c8075 mt76: sync with version 878456caf60d from master
baa8eaaba6 bcm53xx: backport DTS changes up to the first 4.15 queued commits
94aa2b8af0 ar71xx: add rssileds to WA850RE v1 image
f67c22e0c2 toolchain/gdb: update to version 8.0.1
067221360e cmake: fix build error with Xcode 9 on macOS 12
a999f91ca3 gcc: fix build error with macOS + Xcode 9
2ce9c84a92 build: add a darwin sitefile to deal with macOS 10.12 + Xcode 9 build errors
f9a849ca84 ramips: mt7620: do not pad sysupgrade Archer images
2017-10-18 21:15:38 +02:00
Martin Weinelt 1992d4fd29 docs: mtu: fix reference to faq entry, add mtu diagram locally 2017-10-17 01:16:26 +02:00
Martin Weinelt e4ef421711 docs: faq: clarify how to calculate proper mesh-vpn mtu value 2017-10-14 13:59:46 +02:00
Martin Weinelt 0d1d579196 docs: mesh-vpn: recommend better default mtu 2017-10-14 13:59:46 +02:00
Ruben Barkow 99c405756f gluon-web-theme: allow more width in style for input fields and selectboxes (#1229) 2017-10-14 13:42:24 +02:00
David Lutz ced1b7ab98 contrib/sign.sh: fix typo (#1237) 2017-10-13 02:18:47 +02:00
Tarnatos 230897be86 docs: autoupdater.rst: add GLUON_RELEASE to make manifest (#1235) 2017-10-12 09:50:17 +02:00
hexa- ea01c467f2
docs: fix typo in v2017.1.3 release notes (#1234) 2017-10-11 02:01:50 +02:00
Matthias Schiffer 36c940c11d
docs, README: import v2017.1.3 release notes 2017-10-04 22:53:30 +02:00
Matthias Schiffer cc1f6555c8
modules: update LEDE (2017-10-03)
Update to LEDE v17.01.3.

ee32de4426 LEDE v17.01.3: revert to branch defaults
df54a8f583 LEDE v17.01.3: adjust config defaults
d0bf257c46 uhttp: update to latest version
2017-10-04 00:49:57 +02:00
Matthias Schiffer 9324d18fee
gluon-mesh-batman-adv: filter out all packages between bat0 and local-port
Filtering by MAC address won't filter out multicast packages like router
solicitations, causing uradvd to send out router advertisements with
maximum frequency (every 3 seconds) in active meshes, even when no local
client is actually interested in the advertisements.

Fixes #1230
2017-10-03 17:07:42 +02:00
Matthias Schiffer a8f5051104
modules: update LEDE (2017-10-02)
783465d783 odhcpd: don't enable server mode on non-static lan port
c92c1894a5 odhcpd: backport fixes from master branch (FS#402, FS#524)
4b4a4af814 dnsmasq: bump to v2.78
b8357e87d7 base-files: create /etc/config/ directory
3350137bd3 sunxi: clean up modules definitions
a881323cb2 ltq-vdsl-mei: revert disable optimized firmware download
f483a35f08 curl: fix security problems
e232c6754d mbedtls: update to 2.6.0 CVE-2017-14032
37e1bd27d0 generic: drop 704-phy-no-genphy-soft-reset.patch
720b0e2e2d kernel: update 4.4 to 4.4.89
b428f45c06 ltq-vdsl-mei: disable optimized firmware download
39e5cd9556 ltq-vdsl: fix PM thread suspend and resume handling
86f0e8b091 openvpn: add "extra-certs" option
af802bc687 lantiq: fix missing otg_cap on danube platform
12a0da6315 tcpdump: noop commit to refer CVEs fixed in 4.9.2
f66c6e1d8a tcpdump: bump to 4.9.2
a131f7cb69 utils/tcpdump: Rework URLs
7f1359c14e base-files: fix wan6 interface config generation for pppoe
97ebdf93a3 ipq806x: Archer C2600: fix switch ports numbering
d33f7905df treewide: fix shellscript syntax errors/typos
4f162ac3ce ramips: fix hg255d LED status support
2017-10-02 21:08:11 +02:00
Christof Schulze 86e89a86d1 gluon-mesh-vpn-fastd: make respondd module compile again (#1228)
by moving the declaration of ret to the top of get_fastd()
2017-09-24 23:49:00 +02:00
lemoer 4899dda4af treewide: check for NULL after uci_alloc_context() (#1224) 2017-09-21 20:56:40 +02:00
Matthias Schiffer c0b4fb54a4
modules: update LEDE
Fixes #1223
2017-09-11 19:50:45 +02:00
Matthias Schiffer 32c010ce3b
modules: update LEDE 2017-09-07 15:39:12 +02:00
Matthias Schiffer 08cbbf9925
build: move all generic config generation to targets/generic
As the default package list is now handled using the 'packages' directive,
explicit wpad-mini removals in target definitions can be dropped.
2017-09-07 03:21:42 +02:00
Matthias Schiffer 587c5016cb
build: handle generic and target-specific config in the same run of target_config{,_check}.sh
This, together with a new try_config directive, will allow checking the
generic config and make it more flexible.
2017-09-07 00:17:57 +02:00
Steffen Förster b325f00599
ramips-mt7620: add new subtarget with some Gl.Inet devices 2017-09-06 20:58:51 +02:00
Chrissi^ ab296fcd13
docs: mention GLUON_RELEASE in make manifest instructions
Adding the fact that GLUON_RELEASE is needed with 'make manifest'
if it is used with 'make'.

This fact was mentioned in the v2017.1 release notes but is not (clearly)
mentioned inside other parts of the documentation.

Signed-off-by: Chrissi^ <chris@tinyhost.de>

[Matthias Schiffer: minor rewording]
2017-09-06 18:26:29 +02:00
Matthias Schiffer 2c7f4487fd
docs: features/autoupdater: whitespace cleanup 2017-09-06 18:24:03 +02:00
Matthias Schiffer a8067e0a2f
modules: update LEDE 2017-09-06 16:03:09 +02:00
Matthias Schiffer 9ab93992d1
gluon-autoupdater: mirror URLs must start with http://
The older busybox-based wget erroneously accepted URLs without protocol.
Add validator to avoid building firmwares with broken autoupdates.
2017-09-05 19:04:27 +02:00
A.Kasper 5de9f0469e Update dns-cache.rst: adding a best practices for setting the name
Adding hints that the next_node name should contain a dot to avoid (mobile) browsers interpreting "nextnode" as searchphrase. Also setting it to an fqdn helps when clients use static dns servers.
2017-08-25 23:04:32 +02:00
Matthias Schiffer 9168107f13
docs: import v2017.1.2 release notes 2017-08-14 02:06:31 +02:00
Matthias Schiffer 24cfdc384a
docs: import v2016.2.7 release notes 2017-08-14 02:04:16 +02:00
hexa- c3c6ea0cd7 brcm2708: drop wpad-mini as it clashes with hostapd-mini (#1205) 2017-08-13 21:43:57 +02:00
Steffen Förster e395284156 brcm2708: add target and platform for raspi3 (#1204)
This device has built in wifi we should include it at least for experiments.
2017-08-13 15:53:11 +02:00
Matthias Schiffer fda2d10b6f
gluon-web-admin: simplify info.html template 2017-08-11 22:09:08 +02:00
Matthias Schiffer 13b325355d
gluon-core: make old site_config library reference new one, not the other way around 2017-08-11 22:07:35 +02:00
Matthias Schiffer ee6afaced9
treewide: use new gluon.site Lua library
Some files have received some additional refactoring.
2017-08-11 22:07:34 +02:00
Matthias Schiffer fd36bcce07
gluon-web-admin: fix info.html template indentation 2017-08-11 21:25:46 +02:00
Matthias Schiffer 8dbf3ea568
gluon-mesh-batman-adv: fix radvd start with dns.servers, but without next_node.ip config 2017-08-11 20:56:06 +02:00
Matthias Schiffer 8a41ed05f1
gluon-core: more coding style fixes 2017-08-11 20:28:59 +02:00
kb-light 90305761ce
gluon-core: update lib/gluon/upgrade/150-poe-passthrough for naming within lede 2017-08-11 20:27:51 +02:00
kb-light 949f4b7dd5
gluon-core: lib/gluon/upgrade/150-poe-passthrough: fix indentation 2017-08-11 20:26:08 +02:00
Matthias Schiffer 3df9fcecb0
gluon-core: explicitly disable radios without configuration in site.conf 2017-08-08 14:08:35 +02:00
Matthias Schiffer 293a45456b
gluon-core, gluon-client-bridge: use new gluon.site library in gluon.util
In particular, this affects users of gluon.util.iterate_radios.
2017-08-08 14:07:09 +02:00
Matthias Schiffer 53b6065500
gluon-ebtables-source-filter: use new gluon.site library to avoid 'or {}' syntax 2017-08-08 13:53:20 +02:00
Matthias Schiffer 12ec6ab2bc
gluon-mesh-batman-adv: use new gluon.site library to avoid 'or {}' syntax 2017-08-08 13:53:20 +02:00
Matthias Schiffer 951f62ac85
gluon-config-mode-*, gluon-web-admin: use new gluon.site library to avoid 'or {}' syntax 2017-08-08 13:53:16 +02:00
Matthias Schiffer eef3bba123
gluon-client-bridge: use new gluon.site library to avoid 'or {}' syntax 2017-08-08 13:53:09 +02:00
Matthias Schiffer 1d6e6726d7
gluon-core: use new gluon.site library to avoid 'or {}' syntax 2017-08-08 13:53:02 +02:00
Matthias Schiffer 57adb49de2
gluon-core: add new gluon.site library for convenient access to optional values
The new gluon.site lua library will eventually replace gluon.site_config
(which is hereby deprecated, but will continue to be supported for a
while).

The new gluon.site library will wrap all values to allow traversing
non-existing tables without errors.

    site = require 'gluon.site'
    c = site.a.b.c -- doesn't fail even if a or a.b don't exist

The wrapped values must be unwrapped using call syntax:

    site_name = site.site_name()

Using the call syntax on a non-existing value will return nil. An
alternative default value may be passed instead:

    mac = site.next_node.mac('16:41:95:40:f7:dc')
2017-08-08 13:20:38 +02:00
Matthias Schiffer 085cf0debf
ar71xx-generic: add alias for Ubiquiti UniFi Mesh
Fixes #1021
2017-08-08 12:08:09 +02:00
Matthias Schiffer 73ad23936e
gluon-web-wifi-config: make the code a bit nicer
simple-uci will now delete an option when nil is passed.
2017-08-08 04:31:53 +02:00
Matthias Schiffer 0fee6cc707
gluon-web-logging: remove uci:set() nil check
simple-uci will now delete an option when nil is passed.
2017-08-08 04:31:53 +02:00
Matthias Schiffer 6884aad788
gluon-core: simplify 820-dns-config code 2017-08-08 04:31:53 +02:00
Matthias Schiffer cd9ee858b8
gluon-config-mode-geo-location: remove uci:set() nil check
simple-uci will now delete an option when nil is passed.
2017-08-08 04:31:53 +02:00
Matthias Schiffer 4f51439167
gluon-config-mode-contact-info: remove uci:set() nil check
simple-uci will now delete an option when nil is passed.
2017-08-08 04:31:52 +02:00
Matthias Schiffer 31721a61f5
gluonc-core: 200-wireless: remove unneeded nil checks for uci:set_list()
uci:set_list() will delete the list when nil is passed, so there is no need
to differentiate between the cases.
2017-08-08 04:31:52 +02:00
Matthias Schiffer 06d0c0f211
gluon-core: fix 200-wireless coding style 2017-08-08 04:31:52 +02:00
Matthias Schiffer 2b9dd54f00
gluon-client-bridge: fix 320-gluon-client-bridge-wireless coding style 2017-08-08 04:31:52 +02:00
Matthias Schiffer 51a3e8e072
modules: update Gluon packages 2017-08-08 04:31:52 +02:00
Matthias Schiffer 952439885e
gluon-mesh-vpn: fix fastd <-> tunneldigger migration
The generic upgrade script is moved to run after the more specific scripts.
In addition, the script will now remove the configuration sections of
uninstalled VPN packages, so both positive and negative changes of the
default enable state can be migrated correctly.

Based-on-patch-by: Cyrus Fox <cyrus@lambdacore.de>
Fixes: #1187
2017-08-08 01:39:29 +02:00
Linus Lüssing 23a8947628
Revert "generic: batman-adv: disable multicast optimizations for now"
This reverts commit 819758f425.

A proper fix is now available, therefore reverting this workaround.
2017-08-07 22:07:14 +02:00
Matthias Schiffer c66b18ca9e
modules: update openwrt-routing packages
Updates batman-adv and alfred to 2017.2 and adds the batman-adv TT-sync
fix.

Fixes #1183
2017-08-07 22:01:34 +02:00
Matthias Schiffer 1cffbb3935
modules: update LEDE 2017-08-07 14:00:33 +02:00
Christof Schulze c93bd3de07 modules: upgrade PACKAGES_GLUON (#1202) 2017-08-07 00:53:29 +02:00
Matthias Schiffer 6e8a7675ba
modules: update LEDE 2017-07-30 20:17:54 +02:00
Matthias Schiffer a76eaa5c45
gluon-mesh-batman-adv: preserve gw_mode on upgrades
When a Gluon node is used to connect to an uplink router/DHCP server (for
example in deployments without VPN tunnels), the gw_mode must be set to
server; this should be preserved on upgrades.

Fixes #1196
2017-07-25 23:49:11 +02:00
Steffen Förster 582d09615b
gluon-mesh-batman-adv: enable routing algorithm configuration through site.conf
[Matthias Schiffer: move to proto_gluon_bat0_setup() and default to BATMAN_IV]
2017-07-19 17:58:07 +02:00
Matthias Schiffer e8a73324ab
modules: update LEDE 2017-07-19 17:02:09 +02:00
Matthias Schiffer 4d1cda71ff
Backport a few more sysupgrade packages
Improve error handling a bit, and fix upgrade for some (unsupported or
broken) targets.
2017-07-13 17:28:49 +02:00
Matthias Schiffer 6d9d755bb3
modules: update LEDE 2017-07-13 10:57:37 +02:00
Matthias Schiffer 74f43ab80f
Backport sysupgrade patches preventing hangs on certain sysupgrade failures 2017-07-13 00:37:56 +02:00
Matthias Schiffer 0c9df0eb30
modules: update LEDE 2017-07-13 00:31:10 +02:00
Matthias Schiffer b4caa7f766
build: make GLUON_FEATURES error handling compatible with older Make versions
.SHELLSTATUS was not available before Make 4.2.
2017-07-11 04:44:56 +02:00
hexa- 5617eec665 docs/site-example: fix comment and syntax error (#1186) 2017-07-11 04:14:24 +02:00
kb-light 46126de792 Add new package gluon-web-logging (#1153) 2017-07-11 02:58:45 +02:00
Matthias Schiffer 98b48f75d6
README: fix typo 2017-07-10 22:58:15 +02:00
Matthias Schiffer 3fd4ee99c3
gluon-l3roamd: fix incorrect dependency
gluon-mesh-babel is not merged yet, and once it is, this would lead to a
circular dependency.
2017-07-09 13:12:58 +02:00
Matthias Schiffer 9ae2be7b55
docs: dev/feature-flags: fix a few typos 2017-07-09 02:35:06 +02:00
Matthias Schiffer 6ca841bad5
build: introduce GLUON_FEATURES
To reduce the number of packages that need to be listed in
GLUON_SITE_PACKAGES, this adds a new variable GLUON_FEATURES. Sets of
packages are enabled automatically based on the combination of listed
feature flags.

Site-specified package feeds can provide their own feature flag
definitions.
2017-07-09 02:31:38 +02:00
Matthias Schiffer e2b508ee2a
modules: update LEDE 2017-07-08 22:57:27 +02:00
Matthias Schiffer 818705280e
gluon-ebtables-*: add dependency on gluon-mesh-batman-adv
These packages don't work or don't make sense without batman-adv.
2017-07-08 21:23:00 +02:00
Matthias Schiffer e52c575b57
scripts: metadata: fix issue generating syntax errors in Kconfig files
Update "scripts: metadata: always resolve dependencies through provides
list" to new version.
2017-07-08 21:19:14 +02:00
Matthias Schiffer 2cd30d644b
Remove redundant virtual packages
As PROVIDES can be used to replace real packages now, we don't need the
virtual packages as workaround anymore. This also means that the providing
packages don't need to be added to site.mk explicitly anymore when the
default provider is used.
2017-07-08 16:34:40 +02:00
Matthias Schiffer 9b7ef2c65e
scripts: metadata: always resolve dependencies through provides list
Allow to use PROVIDES to replace existing packages.
2017-07-08 16:26:56 +02:00
Matthias Schiffer 90c5bd3796
modules: update LEDE 2017-07-08 14:49:19 +02:00
Ruben Barkow 84d117ff73
gluon-web-admin: add option to show/hide password-login and add minimum password length 2017-07-07 02:15:52 +02:00
Sunz3r b5a8959f59 gluon-config-mode-mesh-vpn: add tunneldigger to reboot page (#1172) 2017-07-06 13:24:15 +02:00
Matthias Schiffer d72a1ea9c6
docs, README: import Gluon v2017.1.1 release notes 2017-07-03 17:17:02 +02:00
Matthias Schiffer 6e039911ab
generic: don't explicitly enable busybox sha256sum applet
LEDE has sha256sum enabled by default.
2017-07-03 03:49:03 +02:00
Matthias Schiffer 102f6a7244
Revert "generic: busybox: enable sha512sum to workaround segfault issue"
This reverts commit dcff68029e.
2017-07-03 01:45:21 +02:00
Matthias Schiffer 582635b031
busybox: compile with debug information
The added debug information is stripped of during packaging, so it does not
increase the package size. It does however slightly change offsets in the
code, preventing the weird ash segfaults we've been seeing. Also, if the
issue returns, we'll have debug information matching the coredumps.
2017-07-03 01:45:21 +02:00
Ruben Barkow 0441c7d91f gluon-web-admin: typo "your node" (#1169) 2017-06-29 22:15:18 +02:00
Matthias Schiffer 86636c3ae6
ramips-rt305x: add D-Link DIR-615 H1
Fixes #1164
2017-06-29 18:28:16 +02:00
Tata 5dcbbe93dc gluon-node-info: use GluonSrcDiet (#1168) 2017-06-29 11:59:22 +02:00
Matthias Schiffer 27f35e56b4
gluon-core: add interfaces having proto = gluon_mesh to mesh firewall zone
Based-on-patch-by: Christof Schulze <christof.schulze@gmx.net>
2017-06-27 23:49:56 +02:00
Christof Schulze e432dd4d9f
gluon-core: gluon_mesh.sh: whitespace cleanup 2017-06-27 23:45:58 +02:00
Matthias Schiffer ae593d8439
gluon-core: convert site seed to lowercase
While we use the hexadecimal representation as a hash input for simplicity,
it should not be interpreted as case-sensitive.
2017-06-27 23:28:23 +02:00
Matthias Schiffer 0ceb25e3e7
gluon-web-network: allow switching wired mesh legacy mode on and off 2017-06-27 23:04:50 +02:00
Matthias Schiffer a2711065c8
gluon-core: add VXLAN support for gluon_wired protocol 2017-06-27 23:04:50 +02:00
Matthias Schiffer 0d6f957196
gluon-core: introduce new gluon_wired netifd proto for wired meshing
The new proto will simplify the switch to VXLAN encapsulation.
2017-06-27 23:00:17 +02:00
Matthias Schiffer 8bcd0975af
gluon-core: add a "site seed" to site.conf to seed site-specific random values 2017-06-27 23:00:17 +02:00
Matthias Schiffer f42afcebf2
modules: update LEDE 2017-06-27 18:16:36 +02:00
Florian Beier 1690b51d21 ar71xx-generic: add support for GL.INet GL-AR300M (#1163) 2017-06-27 02:31:39 +02:00
Matthias Schiffer 08e667ba2e
gluon-client-bridge: add default next-node MAC address
The next-node MAC address doesn't need to be unique in different
communities, so we can as well add a default value.
2017-06-26 22:48:45 +02:00
kb-light f9f68535aa build: add show-release make target (#1159)
`make show-release` can be used to discover the current release in scripts.
2017-06-26 20:52:22 +02:00
Matthias Schiffer 819758f425
generic: batman-adv: disable multicast optimizations for now
A bug in batman-adv can lead to a large amount of management traffic being
exchanged between nodes when the multicast optimizations are enabled,
effectively making the mesh unusable. It's safer to disable the feature
for now, until we have a real fix.
2017-06-26 14:37:13 +02:00
kb-light c90e13594a docs: dev/web/model: fix typo (#1152) 2017-06-24 19:25:12 +02:00
Ruben Barkow 822cfecbf5 gluon-config-mode-autoupdater: autoupdater disabled message (#1137) 2017-06-23 14:55:38 +02:00
David Lutz 93c6cf1506 ramips-rt305x: Add support for A5-V11 (#1151) 2017-06-23 13:23:31 +02:00
Matthias Schiffer dcff68029e
generic: busybox: enable sha512sum to workaround segfault issue
sha512sum doesn't add much code that is not also used by sha256sum, but the
change of the configuration hides the segfault issue described in:

  https://bugs.lede-project.org/index.php?do=details&task_id=822

While the issue only seemed to affect dhcpv6.script, it would clutter /tmp
with coredumps, eventually leading to OOM.
2017-06-23 13:12:46 +02:00
Ruben Barkow b44373efaf gluon-web-*: remove unused Section variables (#1150) 2017-06-23 13:00:52 +02:00
Matthias Schiffer acfc3cc1a2
gluon-core: upgrade/210-interface-wan: whitespace cleanup 2017-06-21 17:16:41 +02:00
Matthias Schiffer 0db63008cd
gluon-core: upgrade/220-interface-lan: whitespace cleanup 2017-06-21 02:56:23 +02:00
Matthias Schiffer 5b09c64186
vxlan: add new package for netifd VXLAN proto 2017-06-21 02:34:24 +02:00
Matthias Schiffer 3030fabebd
generic: vxlan: backport support for VXLAN over link-local IPv6 2017-06-21 02:34:24 +02:00
Matthias Schiffer 9a787c9878
generic: mtd: backport unlock support and asserted fixes for certain Winbond/Spansion flash chips
This patch got lost in the OpenWrt -> LEDE transition and fixes flash
writes on new UBNT PicoStations.
2017-06-20 11:04:01 +02:00
Ruben Barkow f3d763f509 gluon-web: improve menu order in Advanced Settings (#1146) 2017-06-19 20:16:18 +02:00
Ruben Barkow 1d2f3be71d docs: site-example with cryptic SSID for mesh (#1125)
The SSID for the mesh network should be cryptic, otherwise some users will try to connect to that network and have a bad user experience.
2017-06-19 10:51:19 +02:00
kb-light 56d74e41c1 docs: update ffho site repo (#1145) 2017-06-19 00:40:54 +02:00
Matthias Fritzsche 201fa576b8
docs: add note that GCC 4.8 is needed to build gluon
The used nodejs 4.4.5 needs at least GCC 4.8 to be build
https://github.com/nodejs/node/blob/v4.x/BUILDING.md

Signed-off-by: Matthias Fritzsche <matthias@chemnitz.freifunk.net>
[Matthias Schiffer: moved information to the first section]
2017-06-14 10:12:35 +02:00
Matthias Schiffer 869ceb425c
x86-generic: add manifest aliases for x86-kvm and x86-xen_domu
Allow the autoupdater to work when updating from the removed targets.
2017-06-13 12:21:03 +02:00
Matthias Schiffer 62132a590f
scripts: add support for manifest-only model aliases 2017-06-13 12:21:03 +02:00
Matthias Schiffer e40e05ad5f
docs: releases/v2017.1: add some more information on updating v2016.2.x build setups 2017-06-13 11:06:19 +02:00
Matthias Schiffer 4827f2df1b
docs: site-example: remove redundant "iptables" package
iptables will be pulled in anyways.
2017-06-10 22:00:47 +02:00
Matthias Schiffer 49354994ef
docs: Gluon v2017.1+ 2017-06-10 14:06:00 +02:00
Matthias Schiffer 31893cb912
docs, README: Gluon v2017.1 2017-06-10 14:04:23 +02:00
Matthias Schiffer 5da8a15382
docs, README: import Gluon v2016.2.6 release notes 2017-06-10 13:54:13 +02:00
Matthias Schiffer 0cfbc60b05
docs: releases/v2017.1: add note about x86 image sizes 2017-06-10 12:05:25 +02:00
Matthias Schiffer 1ef215161f
modules: update LEDE 2017-06-09 13:31:47 +02:00
Matthias Schiffer 606e8490d3
docs: dev/upgrade: some minor text improvements 2017-06-08 20:59:57 +02:00
Matthias Schiffer fab7ae3d7f
docs: releases/v2017.1: add another note about migration of packages 2017-06-08 20:56:36 +02:00
Matthias Schiffer a8e6fb8aa0
docs: releases/v2017.1: mention missing tunneldigger IPv6 support 2017-06-08 16:25:09 +02:00
Matthias Schiffer c0d261beb7
docs: add preliminary v2017.1 release notes 2017-06-08 16:07:14 +02:00
Matthias Schiffer b2d0d9bdce
Update LEDE 2017-06-08 12:21:30 +02:00
Matthias Schiffer 71bfa305fd
docs: features/dns-cache: clean up 2017-06-07 17:07:52 +02:00
Matthias Schiffer 8bfa3f96c9
docs: update hardware support list 2017-06-07 15:42:21 +02:00
Matthias Schiffer 9b687332d3
ar71xx-generic: remove CPE220/CPE520 1.0 devices
These devices have never actually existed; the corresponding support
strings have been removed from the stock firmwares as well.
2017-06-07 15:22:18 +02:00
Matthias Schiffer aabe0dd41d
ar71xx-tiny: add TP-Link TL-WA701N/ND v2 again
It seems the device was lost during the OpenWrt -> LEDE migration.
2017-06-07 15:20:12 +02:00
Matthias Schiffer 009162134a
ramips-mt7621: add support for UBNT EdgeRouter X 2017-06-06 16:34:04 +02:00
Matthias Schiffer 88f2e3e4e2
Revert "generic: revert to OpenWrt CC partition sizes on x86 and similar images for now"
This reverts commit fcce9e5295.

The x86-generic kernel does not fit into 4MB.
2017-06-01 21:10:01 +02:00
Matthias Schiffer 44995887ec
mvebu: fix sysupgrade
Backport another sysupgrade patch.
2017-06-01 20:43:52 +02:00
Matthias Schiffer 9dae2ebbfd
gluon-mesh-vpn-fastd: respondd: adjust for new site.conf mesh VPN structure
Fixes #1130
2017-06-01 16:23:51 +02:00
Matthias Schiffer fbc11086c0
modules: update routing packages
Updates batman-adv and alfred to 2017.1. This also allows us to drop our
last batman-adv patch.
2017-05-30 11:54:42 +02:00
Matthias Schiffer 6f834923f6
modules: update OpenWrt packages 2017-05-30 11:54:37 +02:00
Matthias Schiffer 52d28c1140
Backport staged sysupgrade patches
The staged sysupgrade allows to properly unmount the rootfs before writing
the new partitions. This will fix upgrades losing configuration when
parition sizes change on x86 and similar image types.
2017-05-30 07:31:37 +02:00
Matthias Schiffer fcce9e5295
generic: revert to OpenWrt CC partition sizes on x86 and similar images for now
This will allow upgrading using the broken sysupgrade scripts in OpenWrt
CC without losing the configuration.

Fixes #1010
2017-05-30 03:28:31 +02:00
Matthias Schiffer 6e05ade58f
Update LEDE 2017-05-30 02:49:01 +02:00
Matthias Schiffer ad91ab1be7
build: don't copy packages to output directory for targets without opkg
Fixes #1126
2017-05-15 23:23:02 +02:00
Matthias Schiffer a7ea424214
mac80211, hostapd: use upstream fix for AP+11s VIF combinations 2017-05-13 18:15:20 +02:00
Matthias Schiffer 1ed87c6df4
gluon-mesh-batman-adv: enable bridge learning on bat0 again
Reverts d5829d87be ("gluon-mesh-batman-adv-core: disable bridge port
learning on bat0").

Fixes #1121
2017-05-12 15:43:31 +02:00
mokkin 774d733dee docs: user/site: clarify syntax of mesh_on_lan/mesh_on_wan options (#1119) 2017-05-04 06:03:26 +02:00
Matthias Schiffer afc2e0c03d
build: scripts/target_config_check.sh: output all relevant errors
Don't stop after the first error, as later error messages may make the
cause of the error much clearer in some cases.
2017-05-02 17:05:55 +02:00
Matthias Schiffer 8180a9868a
modules: update LEDE 2017-05-02 11:44:12 +02:00
Matthias Schiffer e0da968d71
modules: prefer https URLs 2017-05-02 11:40:53 +02:00
Christof Schulze 5bf3c895d0 gluon-mesh-batman-adv: announce dns server if dns cache was configured (#1105) 2017-04-27 21:11:23 +02:00
Steffen Förster 373613bb54 ar71xx-generic: add profile for UBNT Airgateway Pro and alias for UBNT Airgateway LR (#1107)
The Airgateway LR is the same device as the normal Airgateway but with an detachable antenna. The Pro version is a cheap dual band device.
2017-04-27 04:15:13 +02:00
Tarnatos 22042a3bf2 better upstream server description (#1106)
gluon-core: dns-cache documentation polish
Now its clear that upstreams severs normally means "community gateways".
* added cacheentries to description
* made upstream server description more general
* description of the A and AAAA-records for next_node added
* mention of Cache not being allocated when not set in site.conf 
* dns-cache doku polish
2017-04-26 19:02:22 +02:00
Matthias Schiffer 6c053d92b8
ar71xx-tiny: add support for TP-Link TL-WR841N/ND v12 2017-04-20 16:59:55 +02:00
Matthias Schiffer ec89335d0f
modules: update OpenWrt packages 2017-04-20 16:57:35 +02:00
Matthias Schiffer cf877e9683
modules: update LEDE 2017-04-20 16:56:57 +02:00
Matthias Schiffer 4a0ba9e45b Merge pull request #1096 from T-X/lede-enable-multicast-snooping 2017-04-18 15:11:36 +02:00
bobcanthelpyou 82f5afd09d
ar71xx-tiny: add TP LINK TL-WA730RE v1 2017-04-16 16:26:24 +02:00
Linus Lüssing c519ec4596 gluon-core: reenable multicast snooping for wan zone
LEDE recently disabled multicast snooping by default:

https://git.lede-project.org/?p=project/netifd.git;a=commitdiff;h=52541140f8138e31958cdc3d7e42a4029fa6bbc9

Reenable it for Gluon as there have been no confirmed issues for
LEDE and no negative reports concerning Gluon v2016.2.x so far.

Closes #1025.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2017-04-13 22:31:47 +02:00
Linus Lüssing 66ead88dcb gluon-client-bridge: reenable multicast snooping for client zone
LEDE recently disabled multicast snooping by default:

https://git.lede-project.org/?p=project/netifd.git;a=commitdiff;h=52541140f8138e31958cdc3d7e42a4029fa6bbc9

Reenable it for Gluon as there have been no confirmed issues for
LEDE and no negative reports concerning Gluon v2016.2.x so far.

Closes #1025.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2017-04-13 22:31:31 +02:00
Simon Joda Stößer 2789710104 docs: site-example/site.mk: improve comment about variables (#1095) 2017-04-13 21:59:17 +02:00
Malte Möller ad9878be9d ar71xx-generic: add Support for TP Link RE450 (#1092)
Fixes #1084

Hardware is very similar to Archer C5v1 and C7v2.

Tested factory install and autoupdater.

IBSS Mesh on 2.4 and 5 GHz is working fine.

The only Ethernet Port is used for config mode and afterwards handled
as WAN Port.
2017-04-13 02:01:19 +02:00
Matthias Schiffer e45c30330d
gluon-mesh-batman-adv: refactor interface management
We now create bat0 and primary0 independently of the lower mesh interfaces,
making the whole setup a lot more robust. In particular:

- we can't accidentially destroy primary0 because of concurrent setup and
  teardown runs of different interfaces
- bat0 will always exist, even when no mesh interfaces are up (e.g. no link
  on wired mesh)
- interfaces going down and up again will never tear down the whole of
  batman-adv
- we can enable and disable bat0 independently of the lower interface
  states
2017-04-12 19:23:08 +02:00
Matthias Schiffer 4ca67dcca5
gluon-mesh-batman-adv-*: unify into a single source package
For simplicity, we don't use different MTUs for compat 14 and 15 anymore,
there's no harm in using 1532 for batman-adv-legacy as well.
2017-04-12 04:22:45 +02:00
Matthias Schiffer a502295eaf
gluon-core: gluon_mesh: make transitive and fixed_mtu available as interface data, add post-setup.d
In addition, transitive and fixed_mtu now default to 0 instead of an empty string.
2017-04-12 03:44:45 +02:00
Matthias Schiffer d967d58abc
netifd: ubus: add interface method to trigger renew event 2017-04-12 03:43:31 +02:00
Matthias Schiffer 872784cf15
modules: update LEDE 2017-04-11 02:08:42 +02:00
Matthias Schiffer c4641d47fd
gluon-mesh-batman-adv-core: dont' call 'ip' to check if primary0 exists 2017-04-11 02:01:38 +02:00
Matthias Schiffer 02f2d8796c
gluon-core: don't call 'ip' to check if an interface exists 2017-04-11 02:01:21 +02:00
Matthias Schiffer c4613c4e8d
gluon-core: gluon.util: pass UCI cursor to get_wlan_mac(), get rid of local UCI context 2017-04-11 01:48:11 +02:00
Matthias Schiffer f48d10bdde
gluon-core: gluon.util: pass UCI cursor as argument to iterate_radios() instead of using local context 2017-04-11 01:48:11 +02:00
Julian Labus 901b122d83
gluon-web-wifi-config: use find_phy from gluon.util 2017-04-11 01:48:11 +02:00
Julian Labus 734d1925de
gluon-core: gluon.util: fix PHY detection for radios addressed by PCIe address 2017-04-11 01:48:10 +02:00
Matthias Schiffer da22c5cf8e
gluon-core: gluon.util: change find_phy argument to config table and make public 2017-04-11 01:48:10 +02:00
Julian Labus 9d5c551166 docs: restructure index for better readability in readthedocs theme 2017-04-10 16:32:37 +02:00
Julian Labus 4cf977485a docs: add missing link to gluon-ebtables-source-filter 2017-04-10 16:32:37 +02:00
Matthias Schiffer 6499658b52
gluon-mesh-batman-adv-core: don't print error message when no_rebroadcast is not supported
batman-adv 2017.0 doesn't need (or support) no_rebroadcast anymore. Don't
fail when the file doesn't exist.
2017-04-10 01:32:30 +02:00
Matthias Schiffer 9e487f3104
docs, README: Gluon v2016.2.5 2017-04-09 21:44:07 +02:00
Matthias Schiffer 9ae5fd3723
docs: add Gluon v2016.2.5 release notes 2017-04-09 21:43:02 +02:00
kb-light eefd2ef8db Add package gluon-ebtables-source-filter (#1015) 2017-04-09 18:18:51 +02:00
Julian 13c61d9394 gluon-core: fix pattern %v in opkg URLs (#1087) 2017-04-07 14:24:13 +02:00
Cyrus 6a0ca58fc3 gluon-core: Fixed bug which kept legacy VLAN interface definitions (#1085) 2017-04-03 20:48:42 +02:00
Christof Schulze 2e1f1211d4 modules: update Gluon packages (#1082) 2017-03-27 23:03:41 +02:00
Matthias Schiffer 57070a56be
ipq806x: add new target and support for TP-Link Archer C2600
Completely untested for now.

Closes #835
2017-03-27 11:44:07 +02:00
bobcanthelpyou eae359c961 docs: features/monitoring: update alfred README and alfred-json links (#1081) 2017-03-26 23:54:43 +02:00
Cyrus 540d0ff0a3 gluon-mesh-vpn-core: Fixed conditions for migration code (#1080)
VPN daemons were always disabled
2017-03-26 10:26:33 +02:00
Matthias Schiffer efec1fc319
modules: update LEDE 2017-03-25 14:57:45 +01:00
hexa- adf3b91557 docs: user/site.rst: add peer with ip addresses and mention resilience benefit (#1073) 2017-03-23 17:35:50 +01:00
Cyrus Fox aa17e3e86e
gluon-mesh-vpn-tunneldigger: ignore default config when checking for legacy configs 2017-03-23 12:51:41 +01:00
Tarnatos d3d1059149 ar71xx: more consistent image file names for TP-Link TL-WR940N (#1071)
The TL-WR940N doesn't have detachable antennas. Make v1-v3 match v4.
2017-03-23 12:40:46 +01:00
Matthias Schiffer e13f1b2c5b
docs, README: Gluon v2016.2.4 2017-03-13 15:25:30 +01:00
lrnzo 54e271ad99 docs: dev/web/i18n: fix typo (#1068) 2017-03-12 00:49:56 +01:00
lrnzo e01f4f14aa docs: features/wired-mesh.rst: fix typo (#1067) 2017-03-11 14:20:41 +01:00
Matthias Schiffer 5e369fb352
mac80211: revert upstream change breaking AP+11s VIF combinations
Fixes meshing over 802.11s.
2017-03-11 06:37:41 +01:00
Matthias Schiffer da19961188
gluon-web: javascript: don't use global RegExp.$x matches, fix "this" for parameterized validators
Doing so caused broken validations, as different validators were affecting
each other.
2017-03-10 22:25:00 +01:00
Matthias Schiffer ca5e1f8b75
docs: site-example: update mesh VPN configuration 2017-03-10 20:17:41 +01:00
Matthias Schiffer e6d0b58d91
docs: user/site: add information on gluon-mesh-vpn-tunneldigger configuration 2017-03-10 19:49:11 +01:00
Matthias Schiffer b016cf18b4
gluon-mesh-vpn-core: add code for migration of enabled state between fastd and tunneldigger
Based-on-patch-by: Cyrus Fox <cyrus@lambdacore.de>
2017-03-10 19:45:35 +01:00
Matthias Schiffer a49ef70c53
gluon-config-mode-mesh-vpn: add tunneldigger support
Based-on-patch-by: Cyrus Fox <cyrus@lambdacore.de>
2017-03-10 19:45:34 +01:00
Cyrus Fox ad7a36fdce
gluon-mesh-vpn-tunneldigger: add package for tunneldigger L2TP support 2017-03-10 19:45:34 +01:00
Matthias Schiffer be88eba07f
Refactor common parts of gluon-mesh-vpn-fastd into a gluon-mesh-vpn-core package
The fastd_mesh_vpn site.conf section is renamed to mesh_vpn.fastd.
2017-03-10 19:45:34 +01:00
hexa- 1c9b0ced00 bcm2708: prevent wpad-mini from conflicting with hostapd-mini (#1065) 2017-03-10 15:31:20 +01:00
Matthias Schiffer f2dabed13d
modules: update routing packages
Updates batman-adv to 2017.0.1.
2017-03-10 02:57:09 +01:00
Matthias Schiffer b6b76b0596
netifd: update to git HEAD version 2017-03-10 02:00:57 +01:00
Matthias Schiffer c54ac85c29
modules: update OpenWrt packages 2017-03-10 01:53:57 +01:00
Matthias Schiffer 4a81373989
modules: update LEDE 2017-03-10 01:53:42 +01:00
Matthias Schiffer 41a9f9b06c
gluon-mesh-batman-adv-core: fix ARP resolution of next-node IPv4 address
The ebtables rules were not adjusted when switching from macvlan to veth.
2017-03-08 22:52:25 +01:00
Matthias Schiffer 9a33b4ce79
overlay/opkg.mk: add explanatory comment 2017-03-02 22:53:40 +01:00
Matthias Schiffer 3115aa5640
Update Gluon packages 2017-03-02 16:32:27 +01:00
Matthias Schiffer 7222fc07d1
gluon-web-private-wifi: fix default value of "enabled" setting 2017-03-02 15:09:49 +01:00
0x4A6F ebeefa1747 ar71xx-generic: add support for Ubiquiti Rocket M Titanium (#968) 2017-03-01 13:21:28 +01:00
Matthias Schiffer 8245e77218
gluon-status-page: fix browser compatiblity of language selection 2017-02-26 20:55:31 +01:00
Matthias Schiffer 959c8ae7f8
gluon-status-page: use unique filenames for dependencies, switch to SHA256 checksums 2017-02-26 19:46:33 +01:00
Matthias Schiffer a70462ff18
Update Gluon packages
Switch sha512sum to sha256sum to match updated autoupdater.
2017-02-25 01:28:07 +01:00
Matthias Schiffer 9e6cfaee0d
scripts: generate SHA256 manifest lines in addition to SHA512
The current autoupdater will only respect the last line for a given model
name, so we can add SHA256 checksums as long as they occur before the
corresponding SHA512 line.
2017-02-25 00:38:50 +01:00
Christof Schulze b7651ee96f gluon-core: limit fq_codel memory to 1MB per AP with less than 48MB RAM (#1046) 2017-02-24 19:43:32 +01:00
Christof Schulze 946d873c14 gluon-status-page-api: limit uhttp max_requests to 16 on devices with <48MB RAM (#1045) 2017-02-24 19:38:40 +01:00
Matthias Schiffer 568ba483bb
docs: dev/web/view: fix a typo 2017-02-24 15:22:27 +01:00
Julian 6d77065263 mvebu: remove wpad-mini (#1056) 2017-02-24 15:19:16 +01:00
Matthias Schiffer 465cefb69f
rules.mk: make PKG_CONFIG_DEPENDS properly track string values
This will ensure that gluon-site and gluon-autoupdater are rebuilt
correctly when GLUON_RELEASE or GLUON_BRANCH change.
2017-02-24 13:34:27 +01:00
Matthias Schiffer 0af0be0673
ar71xx-generic: don't try to build a factory image for D-Link DIR-825 B1
The size of the factory images is limited to 4MB, which caused build
failures when many additional packages were included.

Rather than moving the device to ar71xx-tiny, we ignore the factory images
and just build the sysupgrade. This way, the whole flash is usable for
Gluon.

This means that installing Gluon on these devices will now require to flash
a plain LEDE image first, and then upgrading using the Gluon sysupgrade
image.

Fixes #1020
2017-02-24 01:50:17 +01:00
Matthias Schiffer 28f42b24a8
gluon-setup-mode, gluon-status-page-api: remove references to rpcd
rpcd is not included in our images anymore since switching to gluon-web, so
we don't need to disable it anymore.
2017-02-24 00:44:03 +01:00
Matthias Schiffer 2b9aaa81a1
Update Gluon packages 2017-02-24 00:15:35 +01:00
Jan-Tarek Butt c9f62fc278
gluon-mesh-batman-adv-core: Move lua file into luasrc dir 2017-02-23 20:27:23 +01:00
Matthias Schiffer b45585a109
Switch LAN and WAN port of Ubiquiti AirGateway
This makes the LAN port the PoE master, so the AirGateway can be used to
supply power to another node connected via mesh-on-LAN.

Fixes #608
2017-02-23 19:49:39 +01:00
Matthias Schiffer f0b919e89c
gluon-client-bridge: add next-node IPv6 address as deprecated
We always want to prefer the unique node address for outgoing traffic. Note
that this doesn't have an effect with batman-adv, as usually br-client will
be the outgoing interface, so the unique address would be chosen anyways.
2017-02-23 17:58:44 +01:00
Ruben Barkow 4f87327bfa
docs: add email subject and body to site-example 2017-02-23 16:40:36 +01:00
Matthias Schiffer 60633f0e6a
Update Gluon packages 2017-02-23 16:22:34 +01:00
Christof Schulze b994ad4fdc gluon-l3roamd: add package containing basic l3roamd configuration (#1042) 2017-02-23 15:49:32 +01:00
Matthias Schiffer 12780715e9
Update OpenWrt packages 2017-02-23 13:32:05 +01:00
Matthias Schiffer 471a54245a
Update LEDE 2017-02-23 13:32:00 +01:00
Matthias Schiffer c9a77c6108
Update Gluon packages 2017-02-23 13:27:27 +01:00
Matthias Schiffer 071c5c18f8
docs: some site-example i18n HTML fixes 2017-02-23 10:21:31 +01:00
Matthias Schiffer f9aa784600
build: fix error message in case of missing site repository 2017-02-22 22:40:36 +01:00
rubo77 da7f69142f
gluon-config-mode-mesh-vpn: add extra message if mesh-VPN was not selected
This was introduced in ffhh-packages at https://github.com/freifunkhamburg/ffhh-packages/tree/master/gluon-config-mode-reboot-ffhh
2017-02-22 19:28:25 +01:00
Matthias Schiffer f458d788c8
gluon-config-mode-core: make welcome and reboot message optional
Make use of our new _translate() function.
2017-02-22 19:28:25 +01:00
Matthias Schiffer 1d7b4482b7
gluon-web: add renderer._translate()
_translate() will return nil when no match is found.
2017-02-22 19:28:22 +01:00
Matthias Schiffer e70ced9caa
docs: fix uses of obsolete "escape" function in site examples 2017-02-22 18:14:15 +01:00
Matthias Schiffer 22746a2a0d
docs: add documentation for gluon-web 2017-02-22 01:32:19 +01:00
Matthias Schiffer 31d3f08f25
treewide: convert all LuCI-based packages to gluon-web 2017-02-22 01:31:25 +01:00
Matthias Schiffer e4b74be506
gluon-web: add package
The gluon-web package is basically a stripped-down and refactored version
of the LuCI base.
2017-02-22 01:30:58 +01:00
Matthias Schiffer a06541623e
gluon-luci-admin: remove redundant Compound 2017-02-21 20:55:08 +01:00
Matthias Schiffer 78d8645e19
gluon-luci-autoupdater: avoid use of CBI Maps
As convenient as the Map is, the underlying code is very complex and will
be removed.
2017-02-21 20:55:08 +01:00
Matthias Schiffer b5a3b9115b
gluon-luci-admin: get rid of an unneeded model 2017-02-21 20:55:08 +01:00
Matthias Schiffer 90fa69d7dd
gluon-config-mode-core: remove bogus comments from pofiles 2017-02-21 20:55:08 +01:00
Matthias Schiffer 08994ae8c0
ar71xx-tiny: fix image name for TL-WR940N v4
To fix the autoupdater.
2017-02-21 20:54:36 +01:00
kb-light 558e98ae42 gluon-mesh-vpn-fastd: improve check_site 2017-02-21 11:19:44 +01:00
Ruben Barkow 95c04cd862
docs: improve autoupdater explanation 2017-02-21 10:14:28 +01:00
kb-light c9563cdebd scripts: check_site_lib: introduce need_string_array_match() (#1016) 2017-02-21 09:45:33 +01:00
txt.file 1fdaee080a ar71xx-generic: add support for TP-Link TL-WA7210N (#1029) 2017-02-21 09:42:30 +01:00
Andrey Perliev 26a0cbd1cc gluon-status-page: JS translations (#1044)
Add translation support to gluon-status-page, including English, German and Russian translations.
2017-02-21 09:40:09 +01:00
Matthias Schiffer 134ddd411c
build: add list-targets make target
`make list-targets` can be used to discover the available targets in
scripts.
2017-02-16 18:36:20 +01:00
Matthias Schiffer 43f32e3c3b
gluon-autoupdater: fix incomplete comment in upgrade script
Fixes #1043
2017-02-16 08:46:41 +01:00
Christof Schulze 6a5a7a7131 gluon-mesh-vpn-fastd: do not depend on gluon-mesh-batman-adv (#1041)
In preparation for Babel support.
2017-02-13 21:00:54 +01:00
Matthias Schiffer 266b02dba6
docs, README: Gluon v2016.2.3 2017-02-13 02:20:07 +01:00
Matthias Schiffer 5fd1a91816
docs: add release notes for Gluon v2016.2.3 2017-02-13 02:19:06 +01:00
Matthias Schiffer dc2cc47594
Update LEDE 2017-02-12 15:26:31 +01:00
Matthias Schiffer e5a9e3f6e3
README: fix command to get release list 2017-02-12 08:33:59 +01:00
Matthias Schiffer 2e6d457ec1
scripts/update.sh: don't hide errors because of invalid commit IDs 2017-02-12 08:03:46 +01:00
Matthias Schiffer b4ccb1fa95
ar71xx-mikrotik: update device definitions 2017-02-12 07:15:16 +01:00
Matthias Schiffer 0775bf76aa
docs: dev/hardware: update libplatforminfo instructions 2017-02-12 06:11:43 +01:00
Matthias Schiffer 08386a778a
Update Gluon packages 2017-02-12 06:11:38 +01:00
Matthias Schiffer afdae86a5e
gluon-respondd: allow platforminfo_get_model() to return NULL 2017-02-12 06:04:22 +01:00
Matthias Schiffer 31ee7be16d
x86-xen_domu: remove
Remove obsolete x86-xen_domu definition, it has been merged into
x86-generic.
2017-02-12 05:11:10 +01:00
Christof Schulze b40d94111e build: add GLUON_DEBUG flag, if enabled set CONFIG_DEBUG and do not strip binaries (#1028) 2017-02-11 23:33:07 +01:00
Christof Schulze b38bd942b9 gluon-status-page-api: fix indentation of luasrc/lib/gluon/status-page/www/cgi-bin/interfaces 2017-02-11 23:31:28 +01:00
Christof Schulze 8b63ac792a gluon-statuspage-api: make lib/gluon/status-page/www/cgi-bin/interfaces mesh-protocol agnostic 2017-02-11 23:31:28 +01:00
Christof Schulze b3e609dca9
gluon-radvd: improve coding style in initscript 2017-02-11 22:40:51 +01:00
Christof Schulze 25f1b64934
gluon-radvd: remove netdev from initscript
uradvd will tolerate devices appearing and disappearing during runtime.
2017-02-11 22:40:41 +01:00
Matthias Schiffer 2adf67edad
Update routing packages (batman-adv v2016.5)
Also remove our own no_rebroadcast patch, as batman-adv v2016.5 now has a
more sophisticated rebroadcast suppression that should work automatically
in the most relevant cases.
2017-02-11 20:12:27 +01:00
Matthias Schiffer 61ecdbec8c
Update LuCI packages 2017-02-11 19:35:55 +01:00
Matthias Schiffer 1ed014f899
Update OpenWrt packages 2017-02-11 18:00:51 +01:00
Matthias Schiffer e6ec14a5cb
Update LEDE 2017-02-11 18:00:42 +01:00
Matthias Schiffer 184cb1010d
gluon-core: add single_as_lan option to configure a single ethernet port as LAN instead of WAN 2017-02-10 22:48:23 +01:00
Matthias Schiffer e39cbcbda1
gluon-core: gluon.util: make exec() replace all stdio files with /dev/null 2017-02-10 22:09:59 +01:00
Matthias Schiffer ea12cb770d
gluon-core: nicer indentation of /lib/gluon/upgrade/020-interfaces 2017-02-10 22:08:51 +01:00
Matthias Schiffer e5cb125737
Move wifi24/5 and mesh_on_wan/lan site validators from gluon-mesh-batman-adv-core to gluon-core
These values have been in use in gluon-core for some time, the validators
need to be moved as well.
2017-02-10 21:19:34 +01:00
Matthias Schiffer f238b01173
gluon-client-bridge: use a veth pair instead of macvlan to connect local-node to br-client
macvlan interfaces never directly exchange traffic with the underlying
interface, but only with other hosts behind the interface. In consequence,
router advertisements from the uradvd running on br-client could never
reach local-node, preventing it from getting an IPv6 address without RAs
from an external radvd. Fix this be replacing the macvlan interface with
a veth pair (with the peer interface in br-client).

As a side effect, this saves about 5KB of flash, as the veth module is
simpler than macvlan.
2017-02-10 10:21:38 +01:00
Matthias Schiffer 249ff34079
netifd: device: add veth support 2017-02-10 09:58:23 +01:00
Matthias Schiffer 57f8b9bc6a
Switch back roles of br-client and local-node interfaces
When preparing the migration from macvlan to veth for local-node, MAC
address conflicts occurred as some ports of br-client had the same address
as local-node. Reverting the roles of both interfaces fixes this.

By default, br-client is left as an interface without addresses and
firewall rules that drop everything, so the bridge is used to connect its
ports only. gluon-mesh-batman-adv-core changes this to the usual set
of addresses and firewall rules.
2017-02-10 09:58:23 +01:00
Matthias Schiffer b92dfcb966
Move creation of local-node device from gluon-mesh-batman-adv-core to gluon-client-bridge
Prepare reverting the roles of br-client and local-node to their state
before 8c4403ba11.
2017-02-10 09:42:16 +01:00
Matthias Schiffer eb350aba34
gluon-client-bridge, gluon-mesh-batman-adv-core: nicer indentation of uci:section calls
Also simplify the local_node.peerdns setting.
2017-02-10 08:16:27 +01:00
Matthias Schiffer f9a52fd54f
Move luci-base dependency from gluon-core to gluon-setup-mode
Nothing outside the config mode depends on luci-base anymore.
2017-02-10 02:10:02 +01:00
Matthias Schiffer 5f922cf3ef
gluon-status-page-api: upgrade: don't throw error messages without rpcd 2017-02-10 02:10:02 +01:00
Matthias Schiffer efb8475f45
build: get rid of some redundant build dependencies 2017-02-10 02:10:01 +01:00
Matthias Schiffer 80de4a69e3
gluon-client-bridge: don't depend on luci.ip 2017-02-10 02:10:01 +01:00
Matthias Schiffer e665bfe64a
gluon-core: don't depend on luci.ltn12 2017-02-10 02:10:01 +01:00
Matthias Schiffer c83b5b3cab
treewide: get rid of luci.util outside of config mode/advanced settings 2017-02-10 02:10:01 +01:00
Matthias Schiffer 6cf03bab37
treewide: replace normal uses of luci.model.uci with simple-uci to reduce LuCI dependencies
We also make use of the boolean support of simple-uci to make scripts
clearer.
2017-02-10 02:10:01 +01:00
Matthias Schiffer 6f48fc428f
gluon-legacy: remove package
The maintenance overhead doesn't justify keeping this old stuff anymore.
2017-02-10 02:10:01 +01:00
Christof Schulze 718758f0e5 gluon-respondd: have respondd join ff05::... in addition to ff02::... (#1030)
Rework init script to additionally join a ff05::... multicast group on the mesh-wide interface.
2017-02-10 02:03:04 +01:00
Simon Joda Stößer f3ba4d0d0c docs: fix typos in 2016.1 release notes (#1031)
Add missing trailing `,` in simple_tc section and change the order of ingress and egress to default format used by Gluon.
2017-02-09 17:31:17 +01:00
Matthias Schiffer 3300c5a9bf
docs: add features/dns-cache to TOC 2017-02-09 03:06:07 +01:00
Steffen Förster b8dc1a784a ramips-mt7628: add new platform and vocore2 (#1027) 2017-02-09 02:07:00 +01:00
Matthias Schiffer 69fca890b2
Update Gluon packages 2017-02-09 02:04:44 +01:00
Matthias Schiffer a33f852c64
Update Gluon packages 2017-02-08 22:34:52 +01:00
Steffen Förster fb05aef96b
x86-geode: add target for Geode CPUs 2017-02-03 22:47:14 +01:00
Matthias Schiffer 8ea481edea
x86: add kmod-8139cp by default
Fixes #1022
2017-02-03 22:35:56 +01:00
Andreas Ziegler 1222c386a7 gluon-dns-config: update documentation (#1013) 2017-01-29 00:15:00 +01:00
kb-light f606e0ee8a scripts: fix manifest generation 2017-01-28 10:48:42 +01:00
Matthias Schiffer 9c93baf740
batman-adv: use kernel-specific PKG_BUILD_DIR
Fixes a build issue when switching targets.
2017-01-27 13:47:56 +01:00
Matthias Schiffer 3d1860e092
build: allow using DEVICES variable for sysupgrade_image/factory_image images
Setting DEVICES will also suppress cleaning the package directory,
improving incremental build speed.
2017-01-27 01:30:47 +01:00
Matthias Schiffer 6b62e2fc78
gluon-core: check_site.lua: only accept /64 as prefix6
A lot of our code does not actually work with other prefix lengths.

Fixes #1014
2017-01-26 18:59:38 +01:00
Matthias Schiffer 3e7434bca1 Merge pull request #1000 from freifunk-ffm/christf_dns-config
Add gluon-dns-config: a package that enables the node to be used as DNS cache
2017-01-25 00:00:29 +01:00
Christof Schulze 8b083d4986 gluon-core: check_site.lua: fix indentation 2017-01-24 23:21:10 +01:00
Christof Schulze e2e910fb41 gluon-core: add configuration that enables the next_node to be used as dns cache 2017-01-24 23:20:40 +01:00
Matthias Schiffer 1069f03028
Update Gluon packages 2017-01-24 21:28:03 +01:00
Matthias Schiffer 0be280cde5
Fix creation of system users after sysupgrades
The ar71xx-tiny target sets CONFIG_CLEAN_IPKG, which would delete opkg
control files required for user creation. Fix image generation and the user
creation script.

Fixes #1012
2017-01-24 19:10:13 +01:00
Matthias Schiffer 01512419f4
gluon-luci-admin: fix firmware upgrade confirmation code
Fix an exception breaking the page.
2017-01-21 18:08:53 +01:00
Matthias Schiffer e7b434ef34
gluon-luci-admin: fix password setting 2017-01-20 17:00:36 +01:00
Matthias Schiffer 70b116fd61
build: apply model-specific site packages at the end of the package list 2017-01-19 18:00:46 +01:00
Matthias Schiffer aaa4150613
build: fix inclusion of site/modules 2017-01-19 17:27:14 +01:00
Matthias Schiffer 054b1094ff
Update Gluon packages 2017-01-19 17:00:16 +01:00
Matthias Schiffer d72d3bcd9d
Update Gluon packages 2017-01-19 14:27:20 +01:00
Matthias Schiffer 0a8e028e8f
gluon-core: upgrade: don't print an error message on systems without opkg 2017-01-19 13:10:57 +01:00
Matthias Schiffer cb33d518c6
build: backport a few STAGING_DIR_HOSTPKG bugfixes 2017-01-19 00:09:16 +01:00
Matthias Schiffer 78b2775eec
Use LEDE as base for Gluon 2017-01-18 17:21:43 +01:00
Matthias Schiffer 04818c170b
package: refactor add_to_set/remove_to_set to get rid of last LuCI patch 2017-01-18 16:28:54 +01:00
Matthias Schiffer a0efa9f3fd
odhcp6c: update to use upstreamed solution to ignore default lifetime for RDNSS 2017-01-18 16:28:54 +01:00
Matthias Schiffer 7736f53dc4
Update LuCI to master branch 2017-01-18 16:28:48 +01:00
Matthias Schiffer 2dd8a700ca
package: avoid use of GLUONDIR variable 2017-01-17 21:22:58 +01:00
Matthias Schiffer 850499fdb3
ar71xx-generic: mark Meraki devices as BROKEN again
These devices don't have unique MAC addresses with OpenWrt/LEDE at the moment
(see #993).
2017-01-09 23:06:09 +01:00
Sven Eckelmann 471852814d mac80211: Allow switching of the ath10k regulatory domain (#1001)
ath10k has to switch the regulatory domain when switching the default
country when ATH_USER_REGD is enabled. This is for example important when
switching from country US (FCC) to DE (ETSI). The ath implementation will
use ath_reg_dyn_country_user_allow to check if this is allowed.

Unfortunately, this function always seems to return false to
ath_reg_notifier_apply even when ATH_USER_REGD is enabled. But it must
actually always accept the requests from the user (when ATH_USER_REGD is
enabled) to correctly set the conformance test limits in the ath10k binary
blob.

Not doing it will sometimes allow too high transmit powers on edge channels
for correctly calibrated devices outside their default regulatory domain.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2017-01-09 22:28:21 +01:00
kb-light d3bc378536 ar71xx-generic: TP-Link WBS210/510: remove BROKEN (#1002) 2017-01-09 22:25:16 +01:00
Matthias Schiffer 99471f8d5d
ar71xx-generic: add support for TP-Link WBS210/510 (untested)
Closes #844
2017-01-06 12:02:32 +01:00
Christof Schulze d09351c97c gluon-luci-portconfig: portconfig.lua: change spaces to tabs (#998) 2017-01-02 19:22:05 +01:00
Matthias Schiffer 2ddf77fc81 Merge pull request #990 from freifunk-ffm/christf_get_mesh_interfaces
gluon-core: add function to gluon.util that returns all active mesh-devices
2016-12-23 00:56:42 +01:00
Matthias Schiffer cd4753aaa5
gluon-respondd: add /usr/lib/respondd to provider directories 2016-12-23 00:44:20 +01:00
Matthias Schiffer aac86d48df
modules: update Gluon packages 2016-12-23 00:42:41 +01:00
Christof Schulze 33817311ed modules: upgrade routing-feed to include babel 1.8 2016-12-23 00:36:44 +01:00
Matthias Schiffer bee999dd90
ar71xx-generic: backport support for TP-LINK TL-WR1043ND v4
Fixes #961
2016-12-22 00:01:55 +01:00
Christof Schulze e41e5cb8d9 gluon-core: add get_mesh_devices(uconn) to gluon.util which will return all devices being up and having proto = gluon_mesh 2016-12-21 23:51:48 +01:00
Christof Schulze 0abe350782 gluon-core: replace blanks by tabs in gluon.util 2016-12-21 23:47:03 +01:00
Matthias Schiffer 1f08074438
x86: generalize partition discovery for sysupgrade
Backport a few patches to allow sysupgrades on mmcblk and similar block
devices.
2016-12-20 13:36:19 +01:00
Matthias Schiffer 689de50c27
build: ensure that target-specific default packages are built 2016-12-20 13:36:19 +01:00
Matthias Schiffer 7dce74c0f9
Refresh patches 2016-12-20 01:09:53 +01:00
Matthias Schiffer 62ac802d4a
scripts/update-patches: include unabbreviated object IDs in patch files
The default abbreviation length depends on factors like user configuration,
git version and number of repository objects. Use unabbreviates IDs to make
patch generation more reproducible.
2016-12-20 01:08:11 +01:00
Matthias Schiffer 74ac0c6c78
docs: add TP-Link TL-WR940N v4 to hardware list 2016-12-19 15:09:24 +01:00
Matthias Schiffer c25a87b1fc
docs, README: Gluon v2016.2.2 2016-12-19 00:26:42 +01:00
Matthias Schiffer e6c3ee64d6
docs: add release notes for Gluon v2016.2.2 2016-12-19 00:26:03 +01:00
Matthias Schiffer 5058d0c2f1
docs: index: add TP-Link TL-WA801N/ND v3 to hardware list 2016-12-17 03:11:41 +01:00
David Lutz ef39158ed1
ar71xx-generic: add Support for TP-LINK TL-WR940N v4 2016-12-13 01:31:43 +01:00
Matthias Schiffer 2796f66fcb Merge pull request #976 from FreifunkVogtland/batadv-netlink
Switch from batman-adv v14/v15 debugfs to netlink
2016-12-13 01:20:27 +01:00
Matthias Schiffer 61de5b8841
mvebu: fix comment about BROKEN status 2016-12-12 15:02:45 +01:00
Julian Labus 5b10928ce0
mvebu: add missing package uboot-envtools which is needed for sysupgrade 2016-12-12 15:02:11 +01:00
Matthias Schiffer 77c649e296
ar71xx-generic: update support list for CPE210/510/...
Fixes #975
2016-12-11 18:03:04 +01:00
Matthias Schiffer 182c21eddc
gluon-site: convert site.conf to JSON in compile instead of install step 2016-12-11 15:19:09 +01:00
Sven Eckelmann 22946b14b6 gluon-mesh-batman-adv-core: Switch from debugfs to batadv netlink
The batadv debugfs requires large memory blocks to write the text debug
tables. This is inefficient for large tables like the global translation
table or the originators table.

The memory requirement can be reduced by using netlink. It copies smaller
packets in a binary format to the userspace program. The respondd module of
gluon-mesh-batman-adv-core can therefore parse larger originator tables
without causing an OOM on systems which are tight on memory.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-12-11 12:03:12 +01:00
Sven Eckelmann 6ac5b9cbc8 gluon-status-page-api: Switch from debugfs to batadv netlink
The batadv debugfs requires large memory blocks to write the text debug
tables. This is inefficient for large tables like the global translation
table or the originators table.

The memory requirement can be reduced by using netlink. It copies smaller
packets in a binary format to the userspace program. gluon-status-page-api
can therefore parse larger originator tables without causing an OOM on
systems which are tight on memory.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-12-11 12:03:12 +01:00
Ruben Barkow ff0ad20752 gluon-config-mode-core: hand over more info to the reboot screen (#930) 2016-12-11 03:13:28 +01:00
Matthias Schiffer dc090d3587
Update Gluon packages 2016-12-11 01:31:40 +01:00
Matthias Schiffer a7d8409466
Update routing packages
This lifts batman-adv and alfred to version 2016.4.
2016-12-11 01:16:27 +01:00
Matthias Schiffer bab42a3a4c
Update Gluon packages 2016-12-11 00:54:06 +01:00
Matthias Schiffer 9a06a98651
gluon-respondd: add delay to mesh-wide multicast requests
Mesh-wide multicast requests are answered with a random delay of up to 10s.
2016-12-11 00:42:41 +01:00
Matthias Schiffer f2524ee179
Update Gluon packages 2016-12-11 00:22:18 +01:00
Matthias Schiffer 8c4403ba11
gluon-client-bridge, gluon-mesh-batman-adv-core: switch roles of br-client and local-node interfaces
MAC and IP addresses are switched. This makes the gluon-client-bridge
package more useful for different routing protocols that don't need a
unique address on the client bridge.

As a side effect, gluon-radvd is now using the next-node address, which had
been considered before, but was dismissed to avoid having gluon-radvd
depend on gluon-next-node and gluon-mesh-batman-adv. This will be useful
for announcing default routes via gluon-radvd.

One downside is that this introduces a minor dependency on batman-adv in
gluon-respondd: the hotplug script that checked for the client interface
before will now check for local-node. This doesn't really matter: for mesh
protocols without a local-node interface, the check will do nothing (which
makes sense, as there is no interface to bind to for mesh-wide respondd).
2016-12-10 23:43:44 +01:00
Matthias Schiffer d2373590e0
gluon-core: add support for removing sysctl settings 2016-12-10 23:43:44 +01:00
Matthias Schiffer 3fc9154d1d
gluon-batman-adv-core: merge gluon-next-node into gluon-batman-adv-core 2016-12-10 23:43:44 +01:00
Matthias Schiffer fb85d96d5e
gluon-next-node: don't require next_node.ip6
The next-node interface may be useful with IPv4 only or even just a MAC
address. This prepares merging gluon-next-node into gluon-batman-adv-core.
2016-12-10 23:43:23 +01:00
Jan-Philipp Litza fcf3abd9c4 gluon-respondd: restart on state change of client iface
Because we unconditionally appended `-i br-client` to the command line of
respondd, it wasn't restarted when br-client changed state. Now, we use a
jsonfilter expression on the network.interface dump data, similar to how the
other interface names are generated, and only add the interface to the argument
list if it is up.
2016-12-09 10:43:24 +01:00
Christof Schulze 4a1b47de45 docs: dev/basics: add rules for coding guide (#970)
* use tabs instead of spaces
* use jsonfilter for speed
2016-12-08 23:56:43 +01:00
Jan-Philipp Litza d8bb97831b gluon-respondd: Use procd in initscript and to restart on network changes 2016-12-08 23:30:57 +01:00
Matthias Schiffer cb86fce29f
gluon-respondd: make setup.d script executable 2016-12-08 23:02:23 +01:00
txt.file 1f927af82e docs: fix typo in docs/user/site.rst 2016-12-08 18:24:17 +01:00
Christof Schulze ca57cdfe77 gluon-respondd: make initialisation mesh protocol agnostic (#946) 2016-12-08 17:44:29 +01:00
Matthias Schiffer ddf0217395
docs: feature/roles: remove another outdates sentence 2016-12-07 11:46:18 +01:00
Matthias Schiffer 3fd0ca77c7
docs: feature/roles: update outdates site config docs 2016-12-07 11:43:50 +01:00
rubo77 2a101ddd56
gluon-core: add dirty flag to gluon-version, add site-version 2016-12-06 20:05:34 +01:00
Ruben Barkow cb9b2335af docs: rename Freifunk Entenhausen to Alpha Centauri (#955) 2016-12-06 20:02:51 +01:00
Matthias Schiffer 1677b62e4b
ar71xx: fix LEDs for TL-WA801ND v3, remove BROKEN 2016-12-06 19:01:46 +01:00
Matthias Schiffer 28e697c448
ar71xx: fix sysupgrade on TL-WR801ND v3 2016-12-06 16:20:09 +01:00
Matthias Schiffer e9835e3c98
Update Gluon packages 2016-12-05 11:01:05 +01:00
Julian a9e29725c0 Add support for mvebu target (#964) 2016-12-05 10:45:05 +01:00
Sven Eckelmann eed79bc37c openwrt: Remove extra soc check in ath79_gpio_output_select (#965)
The  assignment of the gpio_count and reg_base in ath79_gpio_output_select
takes care that only supported platforms can use ath79_gpio_output_select.
But the rebase of the patches after the last OpenWrt base update
accidentally added an extra check for the SoC which was missing support
soc_is_qca955x().

Boots on QCA955X devices which were using ath79_gpio_output_select stopped
with

    Kernel bug detected[#1]:
    [...]
    Call Trace:
    [<803e6174>] ath79_gpio_output_select+0x30/0xe8
    [<803ed590>] om5p_acv2_setup+0x24/0x200
    [<803e4dc0>] ath79_setup+0x28/0x38
    [<80069ac8>] do_one_initcall+0x148/0x1ec
    [<803e2cc4>] kernel_init_freeable+0x150/0x208
    [<80065218>] kernel_init+0x10/0x114
    [<80060878>] ret_from_kernel_thread+0x14/0x1c

Fixes: a22c1d5670c1 ("Update OpenWrt base")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-12-05 10:42:40 +01:00
Matthias Schiffer b32ed384c7 gluon-mesh-batman-adv-core: respondd: correctly detect lower interface types (#954)
Fixes #941
2016-12-03 13:22:22 +01:00
Matthias Schiffer 1f3e789463
gluon-next-node: fix ebtables rules without next_node.ip4 2016-11-30 15:27:06 +01:00
Ruben Barkow 34deeac380 gluon-config-mode-geo-location: make the label for altitude definable in the site folder (#883) 2016-11-30 13:13:59 +01:00
Neal Oakey 9223639ffe ar71xx-generic: make UBNT image names consistent (#809) 2016-11-29 23:11:50 +01:00
Christof Schulze 54109702bd docs: add development guide including one first guideline wrt lua vs. sh usage (#951) 2016-11-29 20:45:25 +01:00
Matthias Schiffer 6ebf7120df
ar71xx: fix syntax error in /lib/ar71xx.sh
Fixes: 212c38f0 "ar71xx: add model detection for UBNT Rocket Ti"
2016-11-29 20:01:54 +01:00
Matthias Schiffer 78ccfaa58d
Update OpenWrt patches 2016-11-29 19:15:28 +01:00
Matthias Schiffer 32400db282
Update Gluon packages 2016-11-29 18:49:35 +01:00
Neal Oakey 212c38f074 ar71xx: add model detection for UBNT Rocket Ti (#943) 2016-11-29 15:33:19 +01:00
Sven Eckelmann 3d9a3f35be kernel: add at803x workaround for sgmii mode (#949)
Some (possibly broken) bootloaders incorrectly initialize the at8033 phy.
This breaks auto-negotation on these SGMII devices. The mode has therefore
to be set back in to a valid configuration by Linux.

Fixes #911
2016-11-29 15:29:19 +01:00
Matthias Schiffer 20fc162b38
gluon-core, gluon-setup-mode: fix WAN/LAN assignment on CPE210
The interfaces were accidentially switched when the CPE210 was separated
from the CPE510 code.
2016-11-22 20:01:13 +01:00
Matthias Schiffer b6285800d1
build: clean up postinst scripts after build
OpenWrt does this by default to save some space.
2016-11-22 18:32:07 +01:00
Matthias Schiffer f98b175da1
build: fix setting of opkg tmpdir
Don't use system /tmp for build.
2016-11-22 18:32:07 +01:00
viisauksena 7e1dd5730c docs/wired make uci commit more specific (#942)
propose to make uci commit more specific to minimize unwanted changes in other temporary written config files like wireless ssid (in some offline changers)
2016-11-21 10:25:45 +01:00
Matthias Schiffer 3ac9d34c49
docs: dev/basics: remove outdated docs about patch and unpatch commands 2016-11-19 17:34:19 +01:00
Matthias Schiffer ce53ed209b
docs: user/site: improve mcast_rate description 2016-11-16 18:24:15 +01:00
Matthias Schiffer 9279fe4b3b
ar71xx, ramips: reduce CPU load and flickering on devices using rsslieds
Fixes #897
2016-11-16 01:55:04 +01:00
Vieno Foo 849f8f66bf
docs: fix typo in features/wlan-configuration 2016-11-15 22:45:26 +01:00
Matthias Schiffer 0e85726a0a
ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success
Fixes the Ubiquiti UAP Outdoor+ HSR.
2016-11-15 19:29:29 +01:00
Matthias Schiffer de2551d435
Fix OpenWrt patch numbering 2016-11-14 22:38:58 +01:00
Andreas Ziegler 6107f215d2 x86: add mmc drivers to generic and 64 subtargets 2016-11-14 22:38:17 +01:00
Andreas Ziegler aa61a5d489 x86-64: add pata drivers 2016-11-14 22:38:17 +01:00
Matthias Schiffer 5ef3d883a5
ar71xx-generic: backport region code support for TP-Link TL-WR841ND v11 2016-11-11 03:45:49 +01:00
Matthias Schiffer 60b4830c51
linux-firmware: switch back to git protocol from https for download
Using HTTPS breaks the download on Debian Wheezy. The switch was an
unintended side effect of the backport from LEDE.

Also, fix the commit message of the backport patch (mwlwifi is not updated
anymore since the last OpenWrt base upgrade).

Fixes #919
2016-11-10 03:30:16 +01:00
Kevin Olbrich 3fd43d7bdb
docs: user/site: fix typo (#924) 2016-11-09 02:30:36 +01:00
Matthias Schiffer 138a3a008e
docs, README: import release notes from Gluon v2016.2.1 2016-11-08 17:28:12 +01:00
Andreas Ziegler 9fba8d7a64 x86: include kmod-igb, kmod-sky2 and kmod-tulip into generic and 64 subtargets 2016-11-06 15:07:06 +01:00
Andreas Ziegler dbc6fe70d7 x86: sort network packages alphabetically 2016-11-06 15:06:24 +01:00
viisauksena 539081d315 gluon-mesh-vpn-fastd: make fastd syslog level configurable (#915) 2016-11-06 00:01:49 +01:00
Matthias Schiffer b707840949
README: update mailing list subscribe/unsubscribe addresses 2016-11-05 12:29:09 +01:00
Matthias Schiffer 233a7a3c5e
ar71xx: fix syntax error in /etc/uci-defaults/01_leds 2016-11-05 04:36:08 +01:00
Matthias Schiffer 095583ba92
Update OpenWrt base 2016-11-02 17:33:54 +01:00
Brother-Lal 740c60c7e4 gluon-status-page: add hint to enable JavaScript if it is disabled (#913) 2016-10-24 14:43:12 +02:00
Brother-Lal e80f751a85 fix error in statuspage if cookies are disabled (#912)
If cookies are disabled, the Statuspage only displays an empty ("Not connected")
This checks if the localStorage API is available and working and only uses it in this case
Also allows better backwards compatibility.
2016-10-24 14:18:01 +02:00
Ruben Barkow 30811f7f1b Docs: autoupdater->build instructions num cores +1 (#908) 2016-10-20 16:44:04 +02:00
Franz Pletz 9aa31f18e3 docs: mention dependency on wget (#906)
Tested build on a minimal Ubuntu 16.04 container image without wget.
2016-10-19 19:06:02 +02:00
Matthias Schiffer a606b32b17
ar71xx-generic: set region code for TL-WA901ND v4 and remove BROKEN
Tested-by: Jannis Pinter <jannis@pinterjann.is>
2016-10-15 19:11:35 +02:00
Matthias Schiffer df5f4ad243
ath9k: remove intermediate queueing patch
The downgraded version of ath9k was reported to cause issues with Windows
clients before. Remove the problematic patch.
2016-10-13 10:02:11 +02:00
Matthias Schiffer 487922a8d9
Downgrade mac80211 to LEDE 6c2651566cce8f5b3a3d3b976439dee2bac5e07e
In addition, the temperature compensation support patch is reverted.

It seems that newer mac80211 version are less stable, so we downgrade it
for now.
2016-10-11 03:38:53 +02:00
Matthias Schiffer 9934d254da
kernel: add fix for CVE-2016-7117
This probably doesn't affect Gluon as nothing is using recvmmsg, but it's
still a good idea to get this fixed ASAP.
2016-10-11 02:15:42 +02:00
Matthias Schiffer e1808451aa
Update OpenWrt base 2016-10-11 02:15:42 +02:00
Matthias Schiffer f1c23b3b3c
scripts/sha512sum.sh: output error message to stderr 2016-10-10 06:18:18 +02:00
Jan-Tarek Butt 0f3e660842
scripts: improve variable escaping 2016-10-10 05:57:35 +02:00
Jan-Tarek Butt 85c66b3bf8
gluon-autoupdater: double quote $1 to prevent globbing and word splitting 2016-10-10 05:44:27 +02:00
Matthias Schiffer 82ef6599f8
mac80211: backport ath9k stability fix 2016-09-30 17:23:20 +02:00
Simon Joda Stößer e98da9b766 docs: fixed link to issue #414 in v2016.2 release notes (#895) 2016-09-29 18:26:33 +02:00
Ben Oswald 5c7be1e01a add link to Freifunk Rhein-Neckar site repository (#890) 2016-09-27 09:40:45 +02:00
Jan-Philipp Litza e54bde54d6 Merge pull request #888 from kokel/site-ffmwu
docs: update link to site repository of Freifunk MWU
2016-09-22 21:52:38 +02:00
Tobias Hachmer be4df11f57 docs: update link to site repository of Freifunk MWU 2016-09-22 21:46:19 +02:00
Matthias Schiffer d017739ac0
docs: change version to v2016.2+ 2016-09-21 20:19:10 +02:00
Matthias Schiffer 6964d30ff2
docs, README: change current release to v2016.2 2016-09-21 20:04:57 +02:00
Matthias Schiffer 77101fc703
docs: update v2016.2 release notes 2016-09-18 22:58:12 +02:00
Matthias Schiffer 4e2888f7a2
gluon-wan-dnsmasq: fix handling of static DNS servers
Fixes #886
2016-09-18 22:39:22 +02:00
Matthias Schiffer cb6d31123f
docs: various fixes to v2016.2 release notes 2016-09-17 05:14:50 +02:00
Matthias Schiffer d953304585
docs: add preliminary release notes for Gluon v2016.2 2016-09-11 19:42:41 +02:00
Matthias Schiffer 8644358c2b
docs: add missing newlines in index 2016-09-11 18:15:48 +02:00
Matthias Schiffer c3997455e8
docs: fix and update make variable section 2016-09-11 18:05:28 +02:00
Matthias Schiffer 25907645b7
docs: update hardware support list 2016-09-11 17:26:30 +02:00
Matthias Schiffer bfbfe508cf
docs, README: Gluon v2016.1.6 2016-09-11 16:58:13 +02:00
Matthias Schiffer 96917d644d
docs: update comment about prefix4 in site.conf example 2016-09-10 17:20:54 +02:00
Matthias Schiffer e56e3c25db
docs: update docs for prefix4/next_node.ip4 2016-09-10 17:19:13 +02:00
Matthias Schiffer b902ddd8df
gluon-next-node: make IPv4 next-node address optional
If next_node.ip4 is not set or gluon-next-node is not used, prefix4 will
now be optional as well.
2016-09-10 17:15:16 +02:00
Matthias Schiffer ea95dceb10
Update Gluon packages 2016-09-10 01:30:11 +02:00
Matthias Schiffer 2432373f5f
ar71xx-generic: allow choosing the ath10k firmware branch in site.mk
The GLUON_ATH10K_MESH must be set to 11s or ibss; when it is not set,
ath10k device images won't be built at all. This also allows us to remove
the BROKEN flag for ath10k devices, as the GLUON_ATH10K_MESH variable is
sufficient to avoid ath10k devices if desired.

Fixes #864
2016-09-09 03:02:40 +02:00
Matthias Schiffer 7153fa3615
ath10k-firmware: add ath10k-firmware-qca988x-11s 2016-09-09 03:01:17 +02:00
Matthias Schiffer b08ac98f1c
docs: fix gluon-config-mode-contact-info syntax errors and formatting 2016-09-09 03:00:54 +02:00
Sven Eckelmann d3811bb2bf ar71xx-generic: Mark MR1750 and OM5P-AC devices as BROKEN (#878)
The MR1750 and OM5P-AC devices are based on ath9k SoCs and an external
ath10k chip. All devices which are using ath10k should be marked as broken
due to deficits in their IBSS support.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-09-07 17:56:04 +02:00
Ruben Barkow d03c88afb4 gluon-config-mode-contact-info: define an "obligatory" option in site.conf (#843) 2016-09-07 06:44:57 +02:00
J0WI d2fb547a3f gluon-status-page: removed obsolete css prefixes (#877)
None of them are used by modern browsers anymore, so it's safe to remove them.
2016-09-07 06:03:57 +02:00
Matthias Schiffer 183c35401a
mac80211, hostapd, ...: update to LEDE 42f559ed70897a7b74dd3e6293b42e6d2e511eaa 2016-09-07 05:49:54 +02:00
Matthias Schiffer 8343278bbf
Merge branch 'mesh-proto' 2016-09-07 02:15:18 +02:00
Matthias Schiffer d05cee5b55
gluon-mesh-batman-adv-core: explicitly set primary MAC address using a dummy interface
Fixes #834
2016-09-07 02:14:43 +02:00
Matthias Schiffer 6cddaedfc7
Reorganize MAC addresses, always explicitly set address for private WLAN
Fixes #842
2016-09-07 02:14:42 +02:00
Matthias Schiffer 4f39be09c9
gluon-core: migrate custom batadv interfaces to gluon_mesh proto
Users may have defined additional mesh interfaces. Properly migrate these
to avoid subtly breaking the network config (and make them ready for new
mesh protocols).
2016-09-07 02:14:42 +02:00
Matthias Schiffer 9a5a8e0ab0
gluon-client-bridge: add LAN interfaces to client bridge by default (instead of doing this in the batman-adv-specific scripts)
This allows to weaken the gluon-mesh-batman-adv-core dependency of
gluon-luci-portconfig to gluon-client-bridge.
2016-09-07 02:14:42 +02:00
Matthias Schiffer 8434896014
gluon-mesh-batman-adv-core: move config not specific to batman-adv to gluon-core 2016-09-07 02:14:42 +02:00
Matthias Schiffer d1e6dfb7e3
gluon-mesh-batman-adv-*, gluon-mesh-vpn-fastd: configure batman-adv through gluon_mesh proto 2016-09-07 02:14:42 +02:00
Matthias Schiffer b7380decc2
gluon-mesh-batman-adv-*: add gluon_mesh protocol handlers 2016-09-07 02:14:42 +02:00
Matthias Schiffer 5cd6295265
gluon-core: add gluon_mesh netifd proto
This new protocol will allow configuring mesh interfaces independently of
the used mesh protocol.
2016-09-07 02:14:42 +02:00
Lustikus fb587e9b55
Update hardware.rst
[Matthias Schiffer: changed the text a bit]
2016-09-05 16:11:21 +02:00
Jan-Philipp Litza 92118cf1d0 Remove squashing from contribution guidelines (#865) 2016-09-02 19:16:28 +02:00
Matthias Schiffer a3dcece329
docs: add package/gluon-ebtables-segment-mld to index 2016-08-30 23:55:46 +02:00
Matthias Schiffer d70788adbc
gluon-status-page-api: hide warning in upgrade script 2016-08-30 22:09:40 +02:00
Matthias Schiffer 2331cb194e
gluon-mesh-batman-adv-core, gluon-mesh-vpn-fastd: switch MAC address assignment
Switch to:

1. WAN
2. LAN
3. Mesh VPN

As WAN and LAN are setup in gluon-mesh-batman-adv-core (and will be moved
to gluon-core), while the mesh VPN has its own package, giving WAN and LAN
the first indices is preferable.
2016-08-30 21:25:40 +02:00
Ruben Barkow 8557ffb2b9 docs: minor improvements to i18n docs, mention French (#866) 2016-08-30 18:32:41 +02:00
Steffen Förster 7fd1d0d62e ar71xx-generic: add support for ALFA N2 and N5 (#871)
+ added profile for these devices
+ added entry in the docs for these devices plus the missing alfa tube
2016-08-30 12:18:35 +02:00
Matthias Schiffer 051fd926ef
gluon-wan-dnsmasq: add interface name to link-local addresses
Fixes #854
2016-08-28 22:04:47 +02:00
Matthias Schiffer 639c12b8e2
ar71xx-generic: add support for new TP-Link region codes
Generate flashable images for the Archer C7 v2 with current stock firmware
again.

To set the region code, the GLUON_REGION variable must be set to "us" or
"eu" in site.mk or as a make argument.

Fixes #860
2016-08-28 21:03:56 +02:00
Matthias Schiffer b2473f05cb
scripts/update.sh: don't disable commit signing for modules 2016-08-27 21:31:54 +02:00
Matthias Schiffer 94c993cfe2
Update Gluon packages 2016-08-27 21:24:57 +02:00
Matthias Schiffer 514390d3a2
Update Gluon packages 2016-08-27 17:29:07 +02:00
Matthias Schiffer e0ed7dde85
gluon-config-mode-mesh-vpn: fix indentation 2016-08-27 16:39:30 +02:00
Matthias Schiffer 7e0075584d
Use a "pretty" hostname where possible
Fixes #414
2016-08-27 16:33:37 +02:00
Matthias Schiffer 6df141e7a6
Update Gluon packages 2016-08-27 16:33:36 +02:00
Matthias Schiffer 819c7d59f1
gluon-config-mode-*, gluon-luci-*: add escaping for many user- or site-defined strings
Allows weird release numbers, models and site names, and prepares support
for pretty hostnames.
2016-08-27 15:18:13 +02:00
Matthias Schiffer 79a49a1515
gluon-luci-theme: add HTML and URL escaping utility functions 2016-08-27 13:19:42 +02:00
kb-light 81280d8e18 gluon-mesh-batman-adv-core: use need_one_of() to check for valid mcast_rate 2016-08-27 07:12:07 +02:00
kb-light 6ff94aca35 gluon-core: make wifi rates configurable by site.conf
and add documentation
2016-08-27 07:11:58 +02:00
kb-light 4d98fbb1bb scripts: update need_string_array() to work as expected 2016-08-26 23:28:26 +02:00
kb-light 21e033213c scripts: add functions need_one_of and need_array_of to check_site_lib.lua
need_one_of(varname, array, required) checks weather the value of the specified variable is part of given array.
need_array_of(varname, array, required) is similar to need_one_of() but assume that varname points to an array.
2016-08-26 23:28:26 +02:00
Matthias Schiffer c84bb17915
Merge branch 'enable-multicast-snooping' of https://github.com/T-X/gluon 2016-08-26 21:05:30 +02:00
Matthias Schiffer e5acba5fbc
gluon-radvd: fix init script
Fixes #862
2016-08-24 13:07:29 +02:00
Matthias Schiffer 1c6256907b
ar71xx-generic: add support for TL-WA801ND v3 (untested)
Fixes #800
2016-08-23 00:26:51 +02:00
Linus Lüssing 6594ba314c gluon-core: reenable multicast snooping on WAN side
Just like we enabled multicast snooping on the batman-adv client bridge
again, let's do the same for the WAN side.

With one exception: The IGMP/MLD querier is kept disabled to avoid
becoming too "bossy"/"noisy" on a foreign network. The main router on
the WAN side should perform querying and by that enable
IGMP/MLD/snooping if it considers this appropriate there.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-08-23 00:21:26 +02:00
Linus Lüssing 2a51d94fbb gluon-mesh-batman-adv-core: reenable multicast snooping
A few issues with the bridge snooping were identified and fixed
upstream in OpenWRT:

* "firewall: Allow IGMP and MLD input on WAN" (r45613)
* "kernel: bridge: backport two snooping related patches" (r45783)
* netifd: "bridge: Fix multicast_to_unicast feature by hairpin+isolate"
  (OW: "netifd: update to the latest version, adds multicast-to-unicast fixes" (r46719))
* "kernel: bridge, multicast-to-unicast: assign src after pskb_may_pull()" (r46721)
* "kernel: bridge, multicast-to-unicast: fix echoes on STA" (46765)

These have very likely caused issues with the bridge snooping before,
which led to disabling it in the past. Let's reenable the multicast
snooping now that they were fixed for reduced multicast overhead on the
wifi.

Advantages are the following:

This mildly reduces overhead on the mesh layer. And significantly reduces
overhead on the AP interface and therefore significantly increases
available airtime (the currently most significant scalability bottleneck).

Secondly removes an easy, often accidental node-local Denial-of-Service
vector based on multicast flooding / streaming.

Thirdly, makes node-local multicast streaming feasible.

Finally should noticably increase battery life of mobile devices.

Note: bridge querier is disabled for br-wan. We want to avoid becoming
too "bossy"/"noisy" on a foreign network.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-08-23 00:15:27 +02:00
T-X d5829d87be gluon-mesh-batman-adv-core: disable bridge port learning on bat0 (#780)
The mesh side has become fairly huge in many communities. Up to
a few thousand entries can currently be found in the forwarding
database (fdb) of a bridge for its bridge port bat0.

The bridge fdb is kind of redundant to the batman-adv global translation
table here. Therefore this patch tries to reduce memory footprint by
following an approach similar to the IGMP/MLD split patchset approach:

Make the bridge oblivious not only regarding multicast listeners towards
the mesh but with this patch unicast hosts on the mesh, too.

If the destination of an ethernet frame is known by the bridge to be a
local one, then the frame is forwarded to the according port. If it is
unknown, then the frame is forwarded to the wifi AP interface and bat0.

mac80211 and batman-adv then know whether to drop or forward a frame
further through their own book-keeping.

Note that unicast-flood is not disabled for the wifi AP bridge port, nor
is learning disabled on the wifi AP. This is mainly to keep the
configuration in UCI and according setup scripts simple ;). However, not
disalbling unicast-flood on the wifi AP interface might also give a
minor latency improvement for newly joining wifi clients.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-08-22 23:26:07 +02:00
Matthias Schiffer b00c1a30c3
dropbear: update to LEDE 277f85c21ae0ede4e15e66cbd801b9fb502531df
Includes a few security updates and enables Curve25519 support.

Fixes #223
2016-08-22 19:23:15 +02:00
Matthias Schiffer 61cde569ad
ar71xx: backport fixes for better CPE210/510 support (again)
This patchset enables the RX LNA for the CPE210/510, improving RX by about
20dB. The profiles for CPE210 and CPE510 is split into two images.

The problematic patch switching the CPE510 to the secondary ART is left
out.
2016-08-22 18:42:33 +02:00
Ruben Barkow 934f640b9b Docs: more example site configs in the wild (#837) 2016-08-22 17:32:53 +02:00
Simon Wunderlich 655498889b ar71xx-generic: remove broken mark for wr842n-v3 (#859)
I've bought a couple of those devices from Senetic GmbH.

https://www.senetic.de/product/TL-WR842N

They have 16 MB of Flash and 64 MB of RAM. Platform support works fine,
I've also tested a little with Ethernet (since I saw some regressions on
OpenWRT/LEDE with 841v11), no problems.

Therefore, lets remove the broken mark.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2016-08-22 16:15:08 +02:00
Matthias Schiffer 0eac102971
scripts/update.sh: fix checkout of correct base commit after fetching 2016-08-12 09:23:07 +02:00
Matthias Schiffer 98557891da
mac80211, hostapd, iw, ...: update to LEDE 27dffa0b0c53a1a817a9a37d1647c7e70672273f 2016-08-09 04:12:28 +02:00
Matthias Schiffer bb3db1795b
update/patch: avoid applying patches directly in build repos
Switching branches and applying patches in the build repos will
unnecessarily touch many files, causing rebuilds of packages that didn't
really change; furthermore, it is filling the reflog with many entries.

Don't ever switch to base branch in the build repos and apply patches in
a temporary clone to avoid these issues.

In addition, GPG signing is generally disabled in the build repos to
override potential global configuration (as signing doesn't make sense and
will slow down rebases).
2016-08-09 03:41:52 +02:00
@RubenKelevra 93deaad8a8 modules: change url from openwrt.org to github one (#850) 2016-08-08 21:22:00 +02:00
Sprinterfreak 74f4a9380a ar71xx-generic: verified Tube2h, remove BROKEN (#847) 2016-08-08 11:55:37 +02:00
kb-light 2789aebcb2 gluon-luci-private-wifi: limit ssid to 32 characters (#848)
Fixes #845
2016-08-08 11:38:57 +02:00
Jan-Philipp Litza d445cb772d gluon-radvd: Use procd in init script
The main advantage is that procd is capable of logging stderr to logd,
making errors easier to debug.
2016-07-30 20:27:20 +02:00
Matthias Schiffer f3cb6d7b36
gluon-luci-portconfig: add setting for PoE passthrough
Fixes #328
2016-07-30 00:04:17 +02:00
Matthias Schiffer b1a753e1c5
gluon-core: allow setting PoE passthrough default setting from site.conf 2016-07-30 00:00:39 +02:00
Matthias Schiffer f2feea2d3a
contrib/lsupgrade.sh: show upgrade scripts in luasrc directories 2016-07-29 22:30:11 +02:00
Matthias Schiffer 284c61d98e
mac80211, hostapd, iw, ...: update to LEDE b2ddfbc1c7b935cf931b4c336969b65947270ce9 2016-07-29 21:43:45 +02:00
Matthias Schiffer 66a7542a01
netifd: update to latest version 2016-07-29 21:30:26 +02:00
Jannis Pinter f103ee244f Add support for Buffalo WZR-HP-G300NH2 (#836)
Add Buffalo WZR-HP-G300NH2 to Makefile, device is already supported in OpenWrt and LEDE.
Verified functionality with actual device.
2016-07-29 15:28:28 +02:00
Matthias Schiffer 3d3eb24a97
ar71xx-generic: backport a few D-Link DIR-505 A1/A2 patches
Fixes #658
2016-07-28 16:33:49 +02:00
Matthias Schiffer cb2ecbfdf0
Make libuecc a shared library, update Gluon packages 2016-07-28 01:06:56 +02:00
Matthias Schiffer b241373640
gluon-luci-private-wifi: set MAC address if the driver provides one 2016-07-28 00:27:47 +02:00
Matthias Schiffer 279a409198
gluon-core: split get_wlan_mac_from_driver() out of get_wlan_mac() 2016-07-27 17:25:05 +02:00
Matthias Schiffer 806af27083
gluon-client-bridge, gluon-mesh-batman-adv-core: make macaddr variable local in upgrade script 2016-07-27 17:25:05 +02:00
Matthias Schiffer 7565839fc4 Merge pull request #674 from T-X/filter-igmp-mld
Filter IGMP+MLD
2016-07-27 17:24:43 +02:00
Matthias Schiffer 0c63fc466e
ar71xx-generic: fix Tube2H profile 2016-07-27 13:19:01 +02:00
Matthias Schiffer e773f686c9
ar71xx-generic: fix BOARDNAME for UAP AC Lite
Caused by a broken backport.

Fixes #689
2016-07-27 05:37:23 +02:00
Matthias Schiffer fd80c4ea4b
netifd: fix broken download URL 2016-07-27 05:36:21 +02:00
Matthias Schiffer 85674a5557
gluon-luci-admin: rename "Expert Mode" to "Advanced settings"
Use the common term; the "Expert Mode" never was a distinct mode of
operation anyways.
2016-07-27 02:38:39 +02:00
Matthias Schiffer 5e3b1f80b0
gluon-luci-admin: regenerate fr.po 2016-07-27 02:35:06 +02:00
Matthias Schiffer 0b0550c30f
ar71xx-generic: fix names of ALFA products
Fixes autoupdater for Hotnet-UB and AP121. Also add note about broken
autoupdates on Tube2H.
2016-07-27 01:42:59 +02:00
Christof Schulze 65ee128c37
gluon-radvd: externalize arguments
The arguments are now provided by gluon-mesh-batman-adv-core, so
gluon-radvd can be used with other mesh protocols.

[Matthias Schiffer: removed PROVIDES dependency]
2016-07-27 01:24:33 +02:00
Matthias Schiffer aae05fe368
netifd: update to latest version from LEDE 2016-07-27 00:54:48 +02:00
Matthias Schiffer 7974284ed6
mac80211: update to LEDE b47f438d98cd4b731d7f4431448dde973eae4739 2016-07-26 01:12:16 +02:00
Matthias Schiffer 55d6f71cff
gluon-setup-mode: remove unneeded require 2016-07-26 01:11:03 +02:00
Sprinterfreak 7a03c09e55 ar71xx-generic: add support for ALFA Networks Tube2H (#828) 2016-07-25 15:53:03 +02:00
lemoer 8e8f794c24 gluon-neighbour-info: improve verbosity on wrong cli parameters (#829)
gluon-neighbour-info: improve verbosity on wrong cli parameters
2016-07-25 15:52:27 +02:00
Matthias Schiffer 1c42aa0e42
libpcap: fix dependency of install-shared-so make target 2016-07-21 18:03:05 +02:00
Matthias Schiffer 2afe34efec
Use MAC addresses provided by WLAN drivers by default
Some drivers (mt76) don't support arbitrary MAC addresses. Use the
addresses provided by the driver (avoiding the primary address) by default,
but fall back to our has-based scheme when the driver doesn't provide
(enough) addresses.
2016-07-20 18:42:56 +02:00
Matthias Schiffer c8bc4620d1
gluon-core: unify indentation in gluon/util.lua 2016-07-20 17:51:09 +02:00
Matthias Schiffer 849af9ade0
gluon-client-bridge, gluon-mesh-batman-adv-core: simplify VIF config functions 2016-07-20 15:44:36 +02:00
Florian Klink b2117fd31b
x86-generic: enable CONFIG_SATA_VIA 2016-07-20 14:44:23 +02:00
Matthias Schiffer 91881f45dc
mac80211: update to LEDE 6c2651566cce8f5b3a3d3b976439dee2bac5e07e
Also switch to kmod-ath10k-ct, so we can drop our AP+IBSS patch.
2016-07-19 22:39:24 +02:00
Matthias Schiffer 64fdc0d7ba
gluon-mesh-batman-adv-core: add sleep to autoupdater network stop script
Accidentially forgot to commit this. The sleep is necessary so netifd can
actually stop the WLAN interfaces after `wifi down`.
2016-07-19 15:49:07 +02:00
Jan-Tarek Butt 8f5a7c9001
gluon-mesh-batman-adv-core: stop WLAN and batman-adv before autoupdater upgrades
[Matthias Schiffer:
  - improve commit message
  - add pidof check
  - also call `wifi down`
]
2016-07-19 03:41:21 +02:00
Matthias Schiffer 0c7457f122
Update Gluon packages 2016-07-19 02:46:24 +02:00
Matthias Schiffer 9ffdb0cd15
docs: user/site: clarify mirror ordering
Fixes #823
2016-07-10 22:42:42 +02:00
Jan-Tarek Butt 1c1f490527
Minify all Lua code 2016-07-10 20:14:25 +02:00
Matthias Schiffer 42910c0606
ramips-mt7621: use phy1 MAC address as primary on DIR-860L B1 2016-07-10 15:51:07 +02:00
Matthias Schiffer c913957e01
gluon-luci-wifi-config: fix to work with legacy configs using macaddr instead of path to identify radios 2016-07-09 23:32:46 +02:00
Jan-Tarek Butt 1a289341a4
build: add GluonSrcDiet define to package.mk
This call takes an input and an output argument and will copy all files
from the input to the output, while minifying the Lua files.

[Matthias Schiffer: simplified definition, added commit message.]
2016-07-09 15:46:39 +02:00
Matthias Schiffer d0831aa83a
Update routing packages 2016-07-06 16:17:37 +02:00
Sven Eckelmann 4af46bdb9c batman-adv: import Linux 4.7 fixes
Introduce new fixes:

 * Avoid nullptr dereference in bla after vlan_insert_tag
 * Avoid nullptr dereference in dat after vlan_insert_tag
 * Avoid tt_req_node list put for unhashed entry
 * Fix orig_node_vlan leak on orig_node_release
 * Fix non-atomic bla_claim::backbone_gw access
 * Fix reference leak in batadv_find_router
 * Free last_bonding_candidate on release of orig_node

Also replace the gluon version of the speedyjoin patch with the one already
included in openwrt-routing.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-07-06 15:56:16 +02:00
Matthias Schiffer a4b60a372b
ar71xx-generic: fix TL-WR841N/ND v11 LEDs
Fixes #812
2016-07-03 22:28:11 +02:00
Matthias Schiffer 267b9bd018
ar71xx-generic: add support for TP-Link TL-WR842N/ND v3 (untested) 2016-07-03 22:27:38 +02:00
Matthias Schiffer 634997ec87
Add target ramips-mt7621 with model D-Link DIR-860L B1
Needs more testing, high packet loss at the moment.
2016-07-03 21:56:32 +02:00
Matthias Schiffer fd237f6f43
mac80211: update to LEDE 0a0caa2656c8db73518a1783743ede772e3ac40f 2016-07-03 19:22:09 +02:00
Matthias Schiffer 0676f5f394
x86: stop relying on hexdump for image build signature
Fixes #811
2016-07-03 19:16:30 +02:00
Matthias Schiffer b4829fad6b
Update gluon packages 2016-07-01 14:28:52 +02:00
Matthias Schiffer f1570cacb0
ramips: add missing patch to spi-nor backport to fix mt7621 support 2016-07-01 13:23:31 +02:00
Matthias Schiffer e678ab140e
scripts/update-patches: disable rename detection
git 2.9 enables rename detection by default, changing the content of some
of our patch files. Explicitly disable it.
2016-07-01 13:22:09 +02:00
Matthias Schiffer 6b644df4ae
brcm2708-*: remove BROKEN 2016-06-29 16:50:54 +02:00
Christian Tramnitz fb8c7a8baf sunxi: add Banana Pro (#802)
build-tested with 2016.1.4, boots but packet loss on eth0
omitted ata due to build errors
2016-06-23 01:05:54 +02:00
Matthias Schiffer bae721a9bb
Add target ar71xx-mikrotik
Fixes #121

Based-on-patch-by: Tobias Hachmer <tobias@hachmer.de>
2016-06-23 00:29:28 +02:00
Matthias Schiffer acd5cc903e
build: allow profiles to supply an additional file to be copied to the image directory 2016-06-23 00:24:54 +02:00
Matthias Schiffer dc485f7356
gluon-core: make gluon.platform.match() match all boards when no boards are given 2016-06-23 00:07:25 +02:00
Matthias Schiffer 4251b4d4f5
Update Gluon packages 2016-06-22 23:11:20 +02:00
Sven Eckelmann 93fe275000 batman-adv: Fix speedy join in gateway client mode
Speedy join only works when the received packet is either broadcast or an
4addr unicast packet. Thus packets converted from broadcast to unicast via
the gateway handling code have to be converted to 4addr packets to allow
the receiving gateway server to add the sender address as temporary entry
to the translation table.

Not doing it will make the batman-adv gateway server drop the DHCP response
in many situations because it doesn't yet have the TT entry for the
destination of the DHCP response.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
2016-06-21 12:26:46 +02:00
Sven Eckelmann fa04fff88d ar71xx-generic: Add support for OpenMesh MR1750v2
The new MR1750v2 device support is only available in LEDE master. The
relevant patches have to backported to add support for them in Gluon

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-06-17 20:04:00 +02:00
Sven Eckelmann 3ccd516971 ar71xx-generic: Add support for OpenMesh OM2P-HSv3
The new OM2P-HSv3 device support is only available in LEDE master. The
relevant patches have to backported to add support for them in Gluon

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-06-17 20:04:00 +02:00
Sven Eckelmann f640573b5d docs: Fix list alignment of OpenMesh devices
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-06-17 13:15:25 +02:00
Matthias Schiffer 7a2dd8b3e4
Revert "ar71xx: backport fixes for better CPE210/510 support"
This reverts commit ffd1f0b3a5.
2016-06-17 11:21:39 +02:00
Matthias Schiffer 04106989bb
Update routing packages
batman-adv & alfred 2016.2.
2016-06-16 06:03:09 +02:00
Matthias Schiffer 2b5bf4c2a2
Update OpenWrt and LuCI packages 2016-06-16 04:40:45 +02:00
Matthias Schiffer 80751d9b6d
kernel: change kmod-crypto-{core,arc4} to builtin
Another backported upstream change.
2016-06-16 04:29:22 +02:00
Matthias Schiffer d7c1c7fffe
kernel: make IPv6 builtin
Packages in the openwrt-routing master have adjusted to this upstream
change, so we follow. Also saves a bit of space.
2016-06-16 01:24:43 +02:00
Matthias Schiffer 20e57a1c71
build: backport a few patches for better Make 4.2+ support 2016-06-15 19:32:15 +02:00
Jan Niehusmann 1059a798ef ar71xx: add GL-AR150 support
Mainly applying a vendor patch from https://github.com/domino-team/OpenWrt-patches

(https://raw.githubusercontent.com/domino-team/OpenWrt-patches/master/AR150%2C%20AR300%2C%20Domino%20-%20CC1505/000-gl-ar150-cc.patch)
2016-06-15 15:04:04 +02:00
Matthias Schiffer ffd1f0b3a5
ar71xx: backport fixes for better CPE210/510 support
This patchset enables the RX LNA for the CPE210/510, improving RX by about
20dB. The profiles for CPE210 and CPE510 is split into two images, so the
CPE510 can use the correct ART offset, improving the TX power by 10dB.

Fixes #796
2016-06-09 05:53:57 +02:00
Thomas Weißschuh 0a936e4de5 gluon-batman-adv-core: respondd: add gateway_nexthop field 2016-06-02 16:14:13 +02:00
Matthias Schiffer a852056c37
Update Gluon packages 2016-05-31 17:33:51 +02:00
Matthias Schiffer 5ea9c0833a
node: fix CXXFLAGS on host install
Now really fixes the build on Debian Jessie...
2016-05-30 01:00:00 +02:00
Matthias Schiffer ca7c71a52b
node: fix build on Debian Jessie 2016-05-29 20:19:21 +02:00
copyrights 0c8f637daa
ar71xx-generic: add D-Link DIR-505 rev. A2 as alias of D-Link DIR-505 rev. A1 2016-05-29 16:49:49 +02:00
Matthias Schiffer 3f24aa248a
docs: add documentation about site modules 2016-05-29 16:40:33 +02:00
Stefan Tabbert 8342294b47
sunxi: add Lamobo-R1
No sysupgrade support yet.
2016-05-29 15:09:50 +02:00
Matthias Schiffer 60aaa426e6
ar71xx-generic: add support for NETGEAR WNR2200 2016-05-29 15:06:10 +02:00
Matthias Schiffer 4becc7dbbd
Backport fixes for the WNR2200 2016-05-29 14:28:16 +02:00
Matthias Schiffer b56b6640e6
mac80211: backport ath9k GPIO support 2016-05-29 13:47:29 +02:00
Matthias Schiffer 59d4b3056f
Update patches
For some reason, the filenames of the OpenMesh support patches were
truncated.
2016-05-29 12:00:17 +02:00
Metatron321 5c67b4909d docs: added site for Regio Aachen 2016-05-29 10:28:24 +02:00
Matthias Schiffer 9fc0dcdd7a
Merge remote-tracking branch 'origin/doubles-fmt' 2016-05-28 16:17:04 +02:00
Matthias Schiffer 13465e9365
node: downgrade to v0.12.14
Allow to build Gluon with GCC 4.7 (e.g. on Debian Wheezy) as host compiler
again.
2016-05-28 16:06:43 +02:00
Matthias Schiffer efc004abf2
scripts/patch: never GPG-sign automated commits, regardless of the default configuration 2016-05-28 16:04:40 +02:00
Jan-Philipp Litza 76c3456787 gluon-node-info: simplify respondd module code a bit 2016-05-27 22:40:17 +02:00
Jan-Tarek Butt 22ec5f1c83
docs: fix 404 error for nordwest site repo url 2016-05-27 00:14:27 +02:00
Jan-Philipp Litza f7eda9381f respondd modules: Use proper formatting of doubles
Most doubles that are delivered via respondd have limited input
precision, but are converted with up to 17 digits of precision. That can
cause ugly blowups like 0.2800000000000001 in the output, which is
avoided by specifying better format strings (like "%.2f" in most cases).
2016-05-26 17:38:36 +02:00
Johannes Rudolph 4c09783723 docs: autoupdater's fallback option (#786) 2016-05-26 16:46:32 +02:00
Matthias Schiffer cbb1f804f0
docs, README: Gluon v2016.1.5 2016-05-26 02:17:58 +02:00
Matthias Schiffer 35690aeb58
Merge branch 'openmesh-primary_mac' of https://github.com/ecsv/gluon 2016-05-24 00:34:05 +02:00
Matthias Schiffer a054e4783d
Merge branch 'openmesh' of https://github.com/ecsv/gluon 2016-05-24 00:33:36 +02:00
Sven Eckelmann 780f7cad2a ar71xx-generic: Use eth0 as OpenMesh primary mac address
The OpenMesh devices have a sticker with the eth0 mac address on the
bottom. Also all other mac addresses are calculated based on this address.
Therefore, it is better to use this as primary mac address instead of the
WiFi mac address.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-23 21:39:27 +02:00
Sven Eckelmann 3039ba15a0 docs: Fix path to script detecting the primary mac address (#782)
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-23 21:02:05 +02:00
Sven Eckelmann 101595ead8 ar71xx-generic: Remove extra dash between v2 and OpenMesh device name (#781)
The returned name for OpenMesh devices with a an extra vX when calling

    lua -e 'print(require("platform_info").get_image_name())'

doesn't contain a dash between the vX and the device name. Thus the image
should also not contain a dash.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-23 17:13:51 +02:00
Sven Eckelmann 69ce123457 ar71xx-generic: Add support for OpenMesh MR1750/OM5P-AC
The new ath9k/ath10k based devices are only available in OpenWrt trunk. The
relevant patches have to backported to add support for them in Gluon

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-23 11:15:30 +02:00
Andreas Fischer 38f70cfd81 docs: typo repositoy -> repository (#779) 2016-05-22 19:06:01 +02:00
Linus Lüssing 4199b216c6 ebtables-segment-mld: Segment IGMP/MLD domain
This patch adds a new gluon-ebtables package to filter IGMP/MLD messages
via ebtables.

For one thing this reduces multicast overhead: About one third of all
ICMPv6 multicast traffic in Lübeck or Hamburg is MLD.

Furthermore it removes a potential Distributed Denial-of-Service vector
(see Gluon ticket #553).

Finally, it is a prerequisite for enabling bridge multicast snooping in
a decentral and robust fashion.

Note that IGMP/MLD are filtered for multicast traffic coming from
the mesh, too (new MULTICAST_IN), as unfortunately there seem to
be other queriers somewhere in the mesh at least for Freifunk
Lübeck. Also adding these rules to be prepared to anyone intentionally
or unintentionally disabling these filters on his/her node.

Node operators not running Gluon (for instance gateway nodes) should
make sure to either enable multicast_router towards bat0 or disable
multicast snooping entirely if they have a bridge on top of bat0.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-05-20 22:59:31 +02:00
Linus Lüssing 8e891b2cc4 ebtables-filter-mcast: Remove redundant allow-filter for hop-by-hop
ebtables actually skips any IPv6 extension headers like the hop-by-hop
one. So this rule is actually void.

The intend back then was to allow passing MLD messages into the mesh.
Since extension headers are skipped, the general icmpv6 rule will
actually match MLD messages. So the hop-by-hop rule is unnecessary,
too.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-05-20 02:04:25 +02:00
Sven Eckelmann 62feb04fe1 ar71xx-generic: Generate OpenMesh sysupgrades in OpenWrt
The workaround to generate sysupgrade images for OpenMesh devices in gluon
is replaced in LEDE/OpenWrt by a special patch. It is therefore better to
drop the workaround and use the upstream version.

Reported-by: Matthias Schiffer <mschiffer@universe-factory.net>
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-19 20:59:34 +02:00
Matthias Schiffer 97879e80ad
gluon-config-mode-core: clean up reboot handling
Don't fork reboot process before all package hooks have been handled and
rendering is complete.

Replace debug.setfenv hack to close stdout with nixio.dup.

Fixes #772
2016-05-19 15:31:47 +02:00
Matthias Schiffer 4a60e5a02a
gluon-mesh-vpn-fastd: add missing iptables dependency confusing Kconfig
This was causing "recursive dependency" errors and potentially broken
configurations.
2016-05-18 01:24:11 +02:00
Sven Eckelmann a5c8e60172 ar71xx-generic: Add support for OpenMesh devices
Integrate OpenMesh devices available in OpenWrt Chaos Calmer:

 - MR600
 - MR600v2
 - MR900
 - MR900v2
 - OM2P
 - OM2P-HS
 - OM2P-HSv2
 - OM2P-LC
 - OM2Pv2
 - OM5P
 - OM5P-AN

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-16 13:31:25 +02:00
Sven Eckelmann d30a6ff1db gluon-luci-admin: Fix uploaded image validation
The image validation currently fails on some devices (tested OpenMesh)
because it isn't done via sysupgrade. But the checks depend partially on
the integration in sysupgrade (e.g. via loops that can be stopped via
"break statements").

Instead of hacking its own version check, it is easier and better tested to
just use 'sysupgrade -T' like it is already done by LuCI.

Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
2016-05-16 13:31:25 +02:00
Matthias Schiffer 54bc175cc1
Update Gluon packages 2016-05-16 02:17:39 +02:00
Matthias Schiffer cab23b1838
ar71xx-generic: switch default WAN/LAN assignment on Ubiquiti UAP Pro
Fixes #764
2016-05-14 01:02:25 +02:00
Matthias Schiffer 087112a09b
ar71xx-generic: add support for UniFi AC PRO/LITE (LITE untested)
Also backport some patches improving QCA956x support.
2016-05-14 00:48:10 +02:00
Matthias Schiffer 86ef9b0e97
Fix creation of IBSS interfaces on devices with two radios
Lua's tables are 1-based, so we must decrement the index by 1 to get the
desired MAC addresses. By not doing this, the second IBSS interface would
get the address with index 8, but only indices 0..7 are available.

Fixes: c73a12e0ea
2016-05-14 00:34:04 +02:00
Matthias Schiffer c05f28d1a3
mpc85xx-generic: fix flash detection after spi-nor backport 2016-05-11 12:01:57 +02:00
Matthias Schiffer 340df0dbee
Fix build with GCC 6
Make pkg-config, mkimage and gcc build with GCC 6 as host compiler. Fix
miscompilation of node.

Fixes #755
2016-05-09 17:09:00 +02:00
Matthias Schiffer 40d087de84
kernel: backport spi-nor driver from 4.4.9
Fixes #687
2016-05-07 00:48:34 +02:00
Matthias Schiffer 8bd0ecd9b3
docs: clean up and update Ubiquiti hardware support list 2016-05-06 20:16:44 +02:00
Matthias Schiffer fdc43ff721
ar71xx-generic: remove BROKEN for Ubiquiti Rocket M XW 2016-05-06 20:10:25 +02:00
Matthias Schiffer 80d5f5f995
netifd: update and revert problematic patch
Fixes VLANs with shell protos on top of WLAN devices.

Fixes #754
2016-05-05 22:23:24 +02:00
Matthias Schiffer d79bc0b398 README: add Roadmap link 2016-05-03 19:30:43 +02:00
Nils Schneider 46991e927f Update Gluon packages 2016-05-02 11:27:05 +02:00
Matthias Schiffer 794738b268 ar71xx-generic: add support for TP-LINK TL-WA901ND v4
Fixes #731
2016-04-29 18:33:52 +02:00
Matthias Schiffer 7fd60ac48a Update OpenWrt base
This also reverts commit 24d8695d8ceeb09d6c84bcd6ee4ffe087c9b386b...
2016-04-29 17:55:51 +02:00
Matthias Schiffer ce563f25ad ar71xx-generic: remove BROKEN for TL-WR841N/ND v11 2016-04-29 17:44:04 +02:00
Matthias Schiffer 086a10676d docs, README: Gluon v2016.1.4 2016-04-29 17:43:32 +02:00
kb-light f68a5662b6 gluon-node-info: add a script to fix whitespaces within the coordinates
Signed-off-by: kb-light <freifunk@kb-light.de>
2016-04-28 09:34:33 +02:00
Matthias Schiffer 10638960c9 Merge pull request #739 from lemoer/dev-fix-broken
build: fix inconsistent handling of BROKEN variable.
2016-04-27 23:19:28 +02:00
lemoer 32f40303f0 build: fix inconsistent handling of BROKEN variable. 2016-04-27 22:48:18 +02:00
Matthias Schiffer d77bfe9da9 gluon-mesh-batman-adv-core: fix rssid for setups without 11s 2016-04-27 21:07:46 +02:00
Matthias Schiffer 9b63127aa5 build: fix race condition on `make clean` without preceeding normal make 2016-04-27 20:27:26 +02:00
kb-light d8092bce62 gluon-config-mode-mesh-vpn: provide contact-information for reboot-message (#671) 2016-04-27 17:08:42 +02:00
kb-light 269a8fbdd4 gluon-config-mode-geo-location: add ability to hide the altitude field (#693) 2016-04-27 12:37:30 +02:00
Matthias Schiffer 937fe715c7 gluon-mesh-batman-adv-core: make mesh_lan config a bridge
There are a few devices which have more than one LAN interface (for example
some revision of the TL-WR941ND, which uses a DSA-based switch, so each
switch port has its own netdev.) On these devices we need a bridge for
mesh-on-lan (as the alternative of adding them to batman-adv individually
would need too many MAC addresses.)
2016-04-27 12:20:27 +02:00
lemoer c73a12e0ea Change MAC schema generation (#715)
While ath9k/ath10k devices can supprt VIFs with any combination of MAC addresses, there are also adapters which have a hardware MAC filter which only allows a few bits to differ. This commit changes the addresses of all VIFs to ony differ in the last 3 bits, which is required to support many Ralink/Mediatek based WLAN adapters.

Technically, the new addresses are generated by calculating an MD5 hash of the primary MAC address and using a part of this hash as a prefix for the MAC addresses.

The addresses (BSSIDs) of the AP VIFs are also reused for the LAN and WAN interfaces in mesh-on-LAN/WAN mode to reduce the number of needed addresses, and thus reduce the chance of collisions. This is not a problem as the MAC addresses of the AP VIFs are never used except as BSSID, and thus not seen by routing protocols like batman-adv.

Fixes #648

[Matthias Schiffer: rewrote commit message]
2016-04-27 12:16:39 +02:00
corvusmo 82b5b5a8d2 gluon-status-page: refactor creation of table rows and cells (#738) 2016-04-27 08:40:13 +02:00
Matthias Schiffer 7f2b93e7f0 gluon-status-page: remove old status page
We have Git for history, there's no reason to keep old files that aren't
used anymore.
2016-04-26 21:29:48 +02:00
Matthias Schiffer c936fd8054 Merge branch 'master' of https://github.com/corvusmo/gluon 2016-04-25 18:33:10 +02:00
Matthias Schiffer 8f6cc2dadd ar71xx-generic: add TP-LINK TL-WR841ND v11 support
Fixes #721
2016-04-25 18:18:56 +02:00
Matthias Schiffer c18d43d2cb gluon-core: use correct file variable in get_site_config() 2016-04-24 15:55:37 +02:00
Matthias Schiffer 069bcb3327 Update Gluon packages 2016-04-24 13:22:43 +02:00
Matthias Schiffer 10a469bcfc Update OpenWrt base 2016-04-24 11:54:32 +02:00
Matthias Schiffer f38bbf0d2c gluon-mesh-batman-adv-core: remove 'gluon.batman_adv' Lua module
It is not used anymore.
2016-04-24 09:47:06 +02:00
Matthias Schiffer 7f1c11cf7e Backport parallel download locking support
Fixes #733
2016-04-24 09:11:20 +02:00
Matthias Schiffer db32736d3b Merge pull request #730 from jannic/master
Add support for carambola 2 board
2016-04-22 18:13:10 +02:00
Jan Niehusmann bdcd166c7c ar71xx-generic: add support for Carambola 2
Device information can be found at:
http://www.8devices.com/products/carambola-2
https://wiki.openwrt.org/toh/8devices/carambola2

I only did some minimal testing of gluon on the carambola 2 development
board:

 - Config mode works
 - Connects to Wifi Mesh
 - Allows clients to connect

Notably, autoupgrade has not yet been tested.

Change to 010-primary-mac is necessary as the mac address printed
on the sticker is the one of eth0, not the wifi mac.
2016-04-22 08:32:19 +02:00
Matthias Schiffer ff95dd9650 docs: user/faq: fix typo 2016-04-22 07:30:11 +02:00
Matthias Schiffer ddb9e6b2e5 Merge pull request #679 from T-X/preparations-for-mcast-snooping-final
Preparations for Multicast Snooping Final
2016-04-20 19:44:53 +02:00
Matthias Schiffer fe1b887f49 docs: user/site: fix formatting of definition list
Newer versions of Sphinx would break lines at the colons.
2016-04-19 05:56:18 +02:00
Matthias Schiffer 9260a8fa15 docs: add info about IPv6 and DNS requirements for NTP/autoupdater 2016-04-19 05:55:11 +02:00
corvusmo 80515c087d gluon-status-page: sort gateways alphabetically
Fixes #698
2016-04-08 21:23:56 +02:00
Nils Schneider 271e864005 docs/user/site.rst: typo 2016-04-08 14:17:45 +02:00
Matthias Schiffer 5bfb06fe36 ar71xx-generic: add support for UBNT Rocket M XW (untested) 2016-04-07 18:08:43 +02:00
Matthias Schiffer b46589a637 xtables-addons: build: fix configure compatiblity with POSIX shells
Fixes #710.
2016-04-05 20:59:25 +02:00
kb-light 8fec2e9286 CONTRIBUTING.md: update links
link "packages" instead of "community repositories"

add link for rejected features to bottom link list

link "#gluon" to webirc

link the mentioned commit 2a93c58
2016-04-04 00:13:42 +02:00
Matthias Schiffer 317657c63e Merge branch 'TmcatsMerakiBranchMerged' of https://github.com/smoe/gluon 2016-04-03 23:02:40 +02:00
Nils Schneider 1e1363f17e ar71xx: Meraki MR12/MR62/MR16/MR66 support
OpenWRT now supports the CISCO Meraki enterprise class routers
MR12, MR16, MR62 and MR66. The fabric firmware demands the yearly
renewal of a support license.

This firmware was successfully tested by @Garunda for the MR62 (and
the MR12 with it for which this is an alias). The initial firmware
pre OpenWRT adoption was prepared and adapted for Gluon by @tcatm.
The confirmation of the functionality of the image for the MR66
(and the aliased MR16 with it) is still pending.

The devices are of strategic interest to the Freifunk community as
they are making a rock-solid impression. However, these come with
fairly hefty annual license. The Freifunk may offer an escape route
for those who had signed up and want to keep their investment into the
similarly expensive hardware. Used evices sell for $60 on eBay/Amazon
in the US. Here in the old world it is all >300 €, still.

Credits go to @Garunda for testing, to @tcatm for finding the
OpenWRT patch prior to its adoption and preparing the initial Gluon
adaptation, to @smoe for the update once that patch had arrived in
OpenWRT, and to @NeoRaider for his review and advice to use
GluonModelAlias for MR62 and MR66 to point to MR12 and MR16,
respectively.
2016-04-03 22:56:17 +02:00
Jan-Philipp Litza 3a3c922a4d gluon-core: use exec on uci commit 2016-04-03 16:14:48 +02:00
Matthias Schiffer 4658afb2c6 gluon-core: commit all UCI configs at the end
Avoid commiting configs inbetween to decrease number of flash writes.

Fixes #714.
2016-04-02 18:56:45 +02:00
Matthias Schiffer 827d81aab3 gluon-config-mode-mesh-vpn: fix save() call for traffic limits
It doesn't seem like this mistake had any effect.
2016-04-02 18:53:56 +02:00
Matthias Schiffer 19f248c755 build: ensure the early path doesn't leak into later build steps
Leads to broken symlink setup by OpenWrt, usually breaking the build with
a "Too many levels of symbolic links" message.

Fixes #716.
2016-04-02 04:31:50 +02:00
Matthias Schiffer 4511ef15d6 Merge pull request #717 from kb-light/ar71xx-generic-image-renaming
ar71xx-generic: update profiles.mk to match new naming
2016-04-02 03:59:55 +02:00
kb-light 24d8695d8c ar71xx-generic: update profiles.mk to match new naming
Update the naming of some TP-Link devices corresponding to commit 0fd48fd7dab066db8a46e51775579c9ef507ca25 within git.openwrt.org/15.05/openwrt.git
2016-04-02 03:35:29 +02:00
Matthias Schiffer 3732c26e95 ar71xx-generic: add support for TP-Link TL-WR710N v2.1 2016-04-02 00:59:19 +02:00
Matthias Schiffer 196722663a ar71xx-generic: backport a few TP-Link model detection and upgrade check patches 2016-04-02 00:54:07 +02:00
Matthias Schiffer 4f051061de Update OpenWrt base 2016-04-01 21:09:29 +02:00
Matthias Schiffer b78a53c5af docs, README: Gluon v2016.1.3 2016-03-31 21:19:47 +02:00
Matthias Schiffer 657f6812c4 Merge pull request #712 from mokkin/patch-1
added site for Leipzig
2016-03-31 21:00:32 +02:00
mokkin d7eb477ef5 added site for Leipzig 2016-03-31 20:54:08 +02:00
Matthias Schiffer f4208f2a2b build: support LibreSSL as provider of openssl
Fixes #709
2016-03-30 03:01:26 +02:00
Matthias Schiffer fddf2073f8 Merge pull request #708 from kb-light/rename
docs: Freifunk Paderborn is now called Freifunk Hochstift
2016-03-29 22:30:52 +02:00
Matthias Schiffer d9ca449ed0 generic: mtd: spi-nor: disable protection for Winbond flash at startup 2016-03-29 22:00:58 +02:00
kb-light 954e378a5f docs: Freifunk Paderborn is now called Freifunk Hochstift
link to site-repo updated
2016-03-29 12:41:26 +02:00
Matthias Schiffer 0b25275976 Update to libuecc v7 and fastd v18 2016-03-29 00:35:02 +02:00
Matthias Schiffer d4d9c349a2 Revert "generic: mtd: spi-nor: always disable software protection"
This reverts commit 1ccd24df77.

This commit probably causes problems with some flash chips:

http://patchwork.ozlabs.org/patch/549173/
http://patchwork.ozlabs.org/patch/553683/
2016-03-26 14:28:26 +01:00
Matthias Schiffer 1ccd24df77 generic: mtd: spi-nor: always disable software protection
Fixes unwriteable flash when the bootloader leaves it protected.
2016-03-26 13:23:13 +01:00
Matthias Schiffer d5f5ce74e8 build: add module separators/headings to patch/update/update-patches scripts
Suggested-by: Steffen Möller <steffen_moeller@gmx.de>
2016-03-26 00:03:04 +01:00
Matthias Schiffer 33d028783f build: remove rather useless "patch" and "unpatch" make targets 2016-03-25 23:57:15 +01:00
Matthias Schiffer a26f781404 ar71xx: make bootconsole wait for both THRE and TEMT
Original commit message:

    MIPS: ath79: make bootconsole wait for both THRE and TEMT

    This makes the ath79 bootconsole behave the same way as the generic 8250
    bootconsole.

    Also waiting for TEMT (transmit buffer is empty) instead of just THRE
    (transmit buffer is not full) ensures that all characters have been
    transmitted before the real serial driver starts reconfiguring the serial
    controller (which would sometimes result in garbage being transmitted.)
    This change does not cause a visible performance loss.

    In addition, this seems to fix a hang observed in certain configurations on
    many AR7xxx/AR9xxx SoCs during autoconfig of the real serial driver.

    A more complete follow-up patch will disable 8250 autoconfig for ath79
    altogether (the serial controller is detected as a 16550A, which is not
    fully compatible with the ath79 serial, and the autoconfig may lead to
    undefined behavior on ath79.)
2016-03-24 18:34:34 +01:00
Matthias Schiffer 86894548c5 Explicitly set SHELL to bash
Fixes some messages if /bin/sh doesn't support 'echo -e'.

Suggested-by: Steffen Möller <steffen_moeller@gmx.de>
2016-03-22 13:01:18 +01:00
Matthias Schiffer 7327ad2ff1 Merge pull request #697 from berendt/docs_copyright_year
docs: add 2016 copyright year to sphinx conf file
2016-03-21 23:05:16 +01:00
Christian Berendt 67fe231805 docs: add 2016 copyright year to sphinx conf file 2016-03-21 22:31:46 +01:00
Alexander Dahl d2b74b4cf0 openwrt: add patch fixing sysupgrade on Xen DomU
Patch tested on v2016.1.x branch with Freifunk Magdeburg firmware on
Debian Jessie amd64 Xen host. See the same patch in our gluon fork here:
https://github.com/FreifunkMD/gluon/blob/fix-sysupgrade-xen/patches/openwrt/0058-x86-fix-platform_export_bootpart-for-Xen-virtual-disks.patch

Sysupgrade was tested successfully by manually making the change before
upgrading in the filesystem of the running node and upgrading to the
fixed FFMD experimental build in config mode via expert settings in
webgui.

Patch also submitted to OpenWRT trunk already.

Signed-off-by: Alexander Dahl <alex@netz39.de>
2016-03-17 22:12:44 +01:00
Matthias Schiffer d7e6bd2046 Merge pull request #685 from FreifunkChemnitz/master
Add Support for the ALFA Hornet UB and similar devices
2016-03-14 10:53:45 +01:00
Steffen Förster 4e2423c081 Add Support for the ALFA Hornet UB and similar devices
The Hornet UB is sold at least in the varieties. Without case it is a Hornet UB, with case and without connected USB port it is called AP121. If the USB port is present this device is called AP121U.
We have a AP121U in our mesh http://meshviewer.chemnitz.freifunk.net/#!v:m;n:00c0ca6efffa
2016-03-13 15:59:47 +01:00
Matthias Schiffer b8cb60a8d6 Merge pull request #675 from T-X/preparations-for-mcast-snooping
Preparations for Multicast Snooping
2016-03-11 13:27:33 +01:00
Linus Lüssing c9aa2672bd bridge: Increase IGMP/MLD robustness parameter to three for br-client
We are mostly dealing with the 2.4GHz crap-band here, so increasing the
IGMP/MLD robustness parameter to three to be able to compensate for up
to two consecutive instead of just one lost packet.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-10 16:44:34 +01:00
Linus Lüssing 4d00c804c0 bridge: Lower IGMP/MLD query intervals for br-client
There are some devices not acting properly to roaming events, in that
they do not timely reissue IGMP/MLD reports after reconnecting.

To compensate for that this commit reduces the query interval from 125
seconds to 20 and the query response interval from 20 seconds to 5.
This reduces a timeout to 20+5 seconds in the worst-case (12.5s average)
after a roaming event for such broken devices. This should be below the
30s "impatient user threshold" and below any connection timeout.

Until the bridge multicast snooping + querier gets re-enabled this is a
no-op.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-10 16:44:05 +01:00
Matthias Schiffer 06685ef0ec Merge pull request #682 from kb-light/docs
docs: fix typo in upgrade.rst
2016-03-10 08:41:26 +01:00
Matthias Schiffer 4c9a0a143e Merge pull request #681 from FreifunkChemnitz/master
Add support for TP-Link TL-WA7510N
2016-03-10 08:41:03 +01:00
kb-light 4511da0aee docs: fix typo in upgrade.rst 2016-03-10 00:38:19 +01:00
Steffen Förster ea90788315 Add support for TP-Link TL-WA7510N
This CPE is supported by OpenWRT and already running in Chemnitz
2016-03-09 22:17:06 +01:00
Matthias Schiffer 2ee35f3102 docs, README: add release notes for v2016.1.2, update version numbers 2016-03-09 19:21:40 +01:00
Matthias Schiffer e729d33bab netifd: update to latest git master 2016-03-09 06:47:53 +01:00
Matthias Schiffer fc6d4d6c97 gluon-mesh-batman-adv-core: respondd: add uci.h include
This include wasn't actually missing, but well hidden behind the iwinfo.h
include. Make this more obvious.
2016-03-08 07:57:06 +01:00
Linus Lüssing 0fc9e1d966 update config: "firewall: Allow IGMP and MLD input on WAN" (r45613)
Adopt the according modifications to the default firewall settings of
the WAN interface from OpenWRT, revision 45613.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-08 07:55:55 +01:00
Linus Lüssing ca9a6f34f3 gluon-mesh-batman-adv-core: Always forward towards mesh/batman-adv
An IGMP/MLD domain split will prevent us from being able to track
multicast listeners on other nodes.

Therefore we need to always hand any multicast packets we received from
local clients to batman-adv. With bridge multicast snooping disabled,
the current setting in Gluon, this is already the case.

However, in preparation to enabling multicast snooping, we need to
enforce forwarding towards batman-adv by setting the bridge port
option "multicast_router" to 2.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
2016-03-08 07:55:55 +01:00
Matthias Schiffer 01878f4bbc Backport GPIO control support
Backport of rr46271 and r46922.

Based-on-patch-by: Julian Kornberger <jk+github@digineo.de>
2016-03-07 06:08:32 +01:00
Matthias Schiffer 85b857d98a Merge pull request #676 from PowerPan/PowerPan-gitsubmodules-1
git submodules
2016-03-06 20:56:23 +01:00
Johannes Rudolph 13658879e5 git submodules
Possibility to work with git submodules
2016-03-06 03:09:09 +01:00
Matthias Schiffer 1f06d20705 ath10k: remove hard dependency on ath10k-firmware-qca988x
We use our own firmware package.
2016-03-04 17:40:56 +01:00
Matthias Schiffer 3b61a768b9 Update Gluon packages 2016-03-04 00:51:28 +01:00
Matthias Schiffer 8272a8f807 Update OpenWrt base 2016-03-03 23:49:58 +01:00
Matthias Schiffer 0320b4da03 docs, README: add release notes for v2016.1.1, update version numbers 2016-03-02 16:23:10 +01:00
Matthias Schiffer 6f4ca79d01 docs: update list of supported hardware 2016-03-02 01:03:33 +01:00
Matthias Schiffer 595cba1bfa Update OpenWrt base 2016-03-01 23:33:00 +01:00
Matthias Schiffer 45e238aa05 Update OpenWrt base 2016-03-01 17:07:18 +01:00
Matthias Schiffer 6f23ef9eb7 Update OpenWrt base
We got most of our patches backported by upstream :)
2016-03-01 12:52:12 +01:00
Matthias Schiffer 289b599233 gluon-status-page: unify prefix list of prettyBytes and prettyBits 2016-03-01 00:06:20 +01:00
Matthias Schiffer 6e452f207a gluon-status-page: don't use internationalization API
It is not supported by all browsers yet.

Also change load display always to display 2 decimal digits (as it is read
from the kernel with 2 decimal digits).

Fixes #606
2016-03-01 00:06:20 +01:00
Matthias Schiffer 5a2f130323 Merge pull request #668 from 0xDEAD/mr13u
ar71xx-generic: add support for TP-Link MR13U
2016-02-29 18:59:26 +01:00
Matthias Ludwig 19a7380e74 ar71xx-generic: add support for TP-Link MR13U 2016-02-29 15:54:41 +01:00
Matthias Schiffer 79bc3a8d4b gluon-status-page: fix neighbour purging
notUpdated is a Set, to a for-in loop doesn't work.

Fixes #657
2016-02-29 01:12:20 +01:00
Matthias Schiffer bb8d1783b3 gluon-config-mode-*, gluon-luci-portconfig: improve validation
Make bandwidth limits unsigned; trim numbers, the validator accepts
trailing whitespace.
2016-02-28 22:38:19 +01:00
Matthias Schiffer 1e78665b12 Add contrib/depdot.sh
This script will analyze the dependencies of Gluon's packages and output
them as a dot graph.
2016-02-28 20:01:19 +01:00
Matthias Schiffer c7a957ca9f ar71xx-generic: add support for Onion Omega 2016-02-28 05:29:15 +01:00
Matthias Schiffer ff574cfe65 ar71xx/lzma-loader: fix O32 ABI conformance
Backport of r48279
2016-02-28 05:00:50 +01:00
Matthias Schiffer b6c576645f kernel/gpio_keys: load module on pre-init
fix rescue mode on wdr4900

Backport of r48793
2016-02-28 04:41:39 +01:00
Matthias Schiffer ec1c82566a scripts/patch.sh: add --committer-date-is-author-date to `git am`
This option will make the generated commit IDs deterministic, greatly
reducing the number of repository objects created when calling `make
update` repeatedly.
2016-02-28 03:30:14 +01:00
Matthias Schiffer 00b620ae51 Update mac80211 backport to r48810 2016-02-28 03:27:49 +01:00
Matthias Schiffer c9f7a17d3a brcm2708-gpu-fw: move pkg build dir to kernel build dir to fix rebuild bugs after cleaning the kernel tree
Backport of r48732
2016-02-28 02:30:34 +01:00
Matthias Schiffer d2ab156605 Update OpenWrt base 2016-02-28 02:02:56 +01:00
Matthias Schiffer 88bdc98108 gluon-status-page: don't reset signal graphs on resize events if width hasn't changed
Mobile browsers will often show or hide the address bar while scrolling.
This causes resize events which would often reset the signal graphs.

Fixes #662
2016-02-26 05:35:47 +01:00
Matthias Schiffer 89b3dca8b5 kernel: disable software protection bits for macronix flash chips at init
The bootloader of AirOS 5.6.x doesn't remove the flash protection for us,
so we have to do this ourselves.
2016-02-26 04:39:50 +01:00
Matthias Schiffer 56f1cd5383 firmware-utils: mkfwimage: fix firmware_max_length for XM layout
This should fix problems with flashing from AirOS 5.6.x.
2016-02-25 22:50:58 +01:00
Matthias Schiffer b9161061fa Merge branch 'ubnt-detection' of https://github.com/oakey-dev/gluon 2016-02-25 17:40:36 +01:00
Matthias Schiffer 6961406523 Merge pull request #640 from kokel/preserve-wifi-channel
gluon-core: add preserve wifi channel feature
2016-02-24 17:25:02 +01:00
Jan-Philipp Litza f2fc359e65 Merge pull-request #661 from viisauksena/patch-1
docs: fix typo in authorized keys config example
2016-02-24 11:20:35 +01:00
viisauksena e4439a3fe4 docs: fix typo in authorized keys config example 2016-02-24 11:17:42 +01:00
Matthias Schiffer f97269158a Update Gluon packages 2016-02-19 17:57:50 +01:00
Matthias Schiffer f0ad8ed5cb gluon-mesh-batman-adv-core: enable mesh_no_rebroadcast for Mesh-on-WAN/LAN
Ethernet links provide transitive connectivity in all but very unusual
setup, enable mesh_no_rebroadcast to reduce load for devices on links with
many nodes.

Fixes #652
2016-02-16 23:26:42 +01:00
Neal Oakey a7c2f7ab59 add new UBNT images, as the detection now works 2016-02-14 23:11:03 +01:00
Neal Oakey a07419bbfe fix UBNT XM model detection 2016-02-14 20:59:49 +01:00
Matthias Schiffer 0fd4ff0a68 build: don't overwrite opkg key when it already exists 2016-02-13 17:02:11 +01:00
Kokel 388d264ff0 gluon-core: add preserve wifi channels feature
This new feature introduces the new uci section 'gluon-core.wireless' with a preserve_channels option:
 * preserve_channels (boolean)

By setting this option to 1 (true) wifi channels will be preserved during upgrades.
2016-02-10 07:06:36 +01:00
Matthias Schiffer a40d3cddba mac80211: update backport to r48681 2016-02-09 18:44:22 +01:00
Matthias Schiffer 9a10ad688d build: add support for choosing a different url filename part than the output file
Backport of r47591 and r48427
2016-02-09 13:50:22 +01:00
Matthias Schiffer 19242f4deb Remove all uses of batman-adv-visdata
Should be redundant after 0bd0df6f93
2016-02-08 20:58:28 +01:00
Matthias Schiffer c523238f82 Update routing packages 2016-02-08 20:13:15 +01:00
Matthias Schiffer d84028301e Update LuCI packages 2016-02-08 19:49:20 +01:00
Matthias Schiffer 4ebbf01a51 Update OpenWrt packages 2016-02-08 19:42:55 +01:00
Matthias Schiffer 43ceba8cb9 Update OpenWrt base 2016-02-08 18:41:58 +01:00
Felix Kaechele d45b2def40 backport: Futro support in x86-generic
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2016-02-08 14:16:11 +01:00
Matthias Schiffer e021af7cb5 docs: change version to v2016.1+ 2016-02-08 10:49:06 +01:00
Matthias Schiffer 55dc9c369d docs, README: change current release to v2016.1 2016-02-08 10:46:28 +01:00
Matthias Schiffer b8791e0829 docs: releases/v2016.1: fix a formatting issue 2016-02-08 10:22:46 +01:00
Matthias Schiffer f8b328835b docs: features/monitoring: replace one last mention of gluon-announced 2016-02-07 21:42:04 +01:00
Matthias Schiffer 627e6b7b81 docs: user/site: change peer limit in example fastd config to 1
Change the limit to match our recommendation in the site-example.
2016-02-07 11:23:41 +01:00
Matthias Schiffer 10f7a88ba9 Backport fix for CVE-2016-0728 (local root exploit)
We're too close to the release of Gluon 2016.1 to do a full update of our
OpenWrt tree, therefore just make a backport of this.
2016-02-06 07:39:51 +01:00
Matthias Schiffer e0e96b7b28 Merge branch 'restrict-respondd' 2016-02-05 19:18:40 +01:00
Matthias Schiffer 8bfb5fe102 docs: add information about image symlinks to the Getting Started page 2016-02-05 19:02:49 +01:00
Matthias Schiffer 495e154a6a docs, LICENSE: fix upper and lower case of "OpenWrt" 2016-02-05 18:48:48 +01:00
Matthias Schiffer 145cb4ded2 gluon-luci-admin: ensure that the authorized_keys file always ends with a newline
Fixes #558
2016-02-05 18:31:25 +01:00
Matthias Schiffer 2f499dbfc1 gluon-respondd: restrict queries from the mesh to link-local addresses
Restrict to link-local addresses to prevent amplification attacks from
outside the mesh, or such attacks affecting the outside world.

Fixes #637
2016-02-05 17:06:07 +01:00
Matthias Schiffer 4d6956fa25 docs: update outdated monitoring documentation 2016-02-05 11:00:38 +01:00
Matthias Schiffer 10d7ad2107 docs: add more documentation of WLAN configuration
Fixes #574
2016-02-05 10:40:26 +01:00
Matthias Schiffer 19d4ca1b3e Merge pull request #638 from kpanic23/patch-1
docs: Corrected some typos and strange grammar
2016-02-05 10:31:14 +01:00
Matthias Schiffer 54bb143128 docs: releases/v2016.1: grammar fixes, some minor improvements 2016-02-05 06:54:45 +01:00
kpanic23 e8d0fc6a81 Corrected some typos and strange grammar 2016-02-04 14:29:01 +01:00
Matthias Schiffer 6554cc21ab Merge remote-tracking branch 'origin/firewall-multicast' 2016-02-03 08:40:20 +01:00
Matthias Schiffer d58484c84e gluon-mesh-batman-adv-core: respondd: fix pattern to count clients to work with compat 15 2016-02-02 17:18:52 +01:00
Jan-Philipp Litza 4ab184cd61 docs: Update regarding respondd refactoring 2016-02-02 15:13:17 +01:00
Jan-Philipp Litza 5bb4316f71 gluon-neighbour-info: Open firewall on WAN for respondd replies
If the query was via multicast, the response isn't matched by
--state ESTABLISHED,RELATED

This fixes #619
2016-02-02 13:06:54 +01:00
Matthias Schiffer 0005b3b5a2 autoupdater: stop non-essential services before downloading the image 2016-02-02 09:22:50 +01:00
Matthias Schiffer b4aaf8a1f8 gluon-respondd: add init script
Instead of starting gluon-respondd from a hotplug handler, add a proper
init script. The new init script has a restart_if_running argument which
is now used by the hotplug handler.
2016-02-02 09:18:13 +01:00
Matthias Schiffer 9004028cb4 Convert gluon-announce Lua code to C modules, rename to gluon-respondd
gluon-announced and gluon-announce are merged to gluon-respondd.
2016-02-02 09:18:12 +01:00
Matthias Schiffer 840d07dd48 Add utility library libgluonutil 2016-02-02 06:39:22 +01:00
Matthias Schiffer 54ed2a8d14 docs: add TP-Link TL-WR843N/ND 2016-01-30 02:01:21 +01:00
Matthias Schiffer 4bfdd504cb Merge pull request #634 from Ranlvor/patch-wr843n
Added Support for TP-Link WR843ND
2016-01-30 01:59:43 +01:00
Ranlvor 35ed4d2b76
Added Support for TP-Link WR843ND
Tests done to verify that this worked as intended:
 * checked plattform_info image_name
 * checked primary_mac
 * does appear in ffmap-d3
 * does mesh
 * does fastd-VPN
2016-01-29 00:08:01 +01:00
Matthias Schiffer 2223ccd94c Update gluon packages 2016-01-24 19:35:09 +01:00
Matthias Schiffer 4ed5b85668 docs: add UniFi AP Outdoor+ to list of supported devices 2016-01-17 23:23:42 +01:00
Matthias Schiffer 7c67ff0cf1 ath9k: fix HSR tuner support for UniFi Outdoor Plus
Also remove the BROKEN check as the UniFi Outdoor Plus support seems to
work fine now.

Fixes #272
2016-01-17 23:17:34 +01:00
Matthias Schiffer 49fcfb8da7 Merge pull request #623 from oakey-dev/master
add support for ubiquiti airRouter
2016-01-17 16:35:25 +01:00
Neal Oakey 472a1ff3eb add support for ubiquiti airRouter 2016-01-17 16:33:49 +01:00
Matthias Schiffer b1e1b47a70 Merge pull request #622 from rotanid/patch-1
docs: Update autoupdater.rst
2016-01-15 19:40:45 +01:00
Andreas Ziegler d10a7b9c72 docs: Update autoupdater.rst
fix typo and express sentence regarding update priority clearer
2016-01-15 00:47:02 +01:00
Daniel Golle 4ce85afc22 gluon-status-page-api: support batadv-in-VLAN on ibss interface
introduce function to recurse down to the lowest layer-2 interface
corresponding to a given interface.
also re-introduce some of the previously removed input validation plus
some more to protect against glob and path based exploits.
2016-01-13 12:59:16 +01:00
Matthias Schiffer e012e67bf1 Update Gluon packages 2016-01-12 16:02:13 +01:00
Matthias Schiffer d295d6ef39 Merge pull request #617 from makomi/master
readme: fix typo, improve formatting
2016-01-10 17:25:28 +01:00
Matthias Kolja Miehl 65c0e256ab readme: fix typo, improve formatting 2016-01-10 16:09:03 +00:00
Matthias Schiffer 0880159eb5 gluon-status-page: fix handling of interface names containing dots 2016-01-08 14:54:30 +01:00
Matthias Schiffer c69587fba4 build: disable generation of ramdisk images
Our build process works similarly to the image builder and doesn't support
the generation of initramfs-based images.

Fixes #616
2016-01-08 11:23:44 +01:00
Delta / Stefan bbdc334b43 gluon-status-page: add TB to list of units for transfer volumes
Fixes #614
2016-01-07 18:09:30 +01:00
Matthias Schiffer 0bd0df6f93 kernel: fs, seq_file: fallback to vmalloc instead of oom kill processes
Fixes #177
2016-01-04 10:26:40 +01:00
Matthias Schiffer 7b6f3fed70 Merge pull request #607 from freifunk-gluon/site.json
Convert site.conf to JSON during build
2016-01-04 10:25:13 +01:00
Matthias Schiffer 4456480a52 docs: add D-Link DIR-505 (A1) and Buffalo WZR-HP-G300NH (and remove WZR-HP-G300N, it is not actually supported) 2016-01-04 05:32:14 +01:00
Matthias Schiffer f396ba43d9 Merge branch 'master' of https://github.com/coacx/gluon 2016-01-04 05:28:54 +01:00
Matthias Schiffer 7cd00aec52 Merge branch 'dir-505' of https://github.com/bdobe/gluon 2016-01-04 05:28:44 +01:00
Matthias Schiffer f23e024787 Convert site.conf to JSON during build
This will allow us to use its content from other languages than Lua as
well.
2016-01-02 23:49:25 +01:00
Matthias Schiffer 97471a1bb7 lua-cjson: add host build support 2016-01-02 23:49:25 +01:00
Matthias Schiffer 289f58d5b9 ar71xx: another fix to wndr3700_board_detect 2016-01-02 23:46:48 +01:00
bdobe ddc2a51764 ar71xx-generic: add support for D-Link DIR-505 2016-01-01 23:17:25 +01:00
Matthias Schiffer e14b907e44 Merge pull request #610 from plumpudding/master
docs: fix typo
2016-01-01 21:49:53 +01:00
PetaByteBoy // Milan Pässler 02d3ed2fa9 docs: features/wired-mesh: fix typo 2016-01-01 20:35:43 +01:00
Matthias Schiffer 65ce99449e docs: rename development version to v2016.1 2016-01-01 16:29:15 +01:00
Matthias Schiffer df018ed7c7 docs: releases/v2015.2: fix typo 2015-12-20 20:13:09 +01:00
Matthias Schiffer 73a818b896 alfred: use batman-adv-visdata 2015-12-18 17:46:24 +01:00
Matthias Schiffer 8ffdcaaa1b gluon-mesh-batman-adv-core: announce/neighbours.d: use batman-adv-visdata 2015-12-18 17:46:24 +01:00
Matthias Schiffer 939087cec9 gluon-status-page-api: neighbours-batadv: use batman-adv-visdata, increase interval 2015-12-18 17:46:24 +01:00
Matthias Schiffer 90a64ca87f gluon-status-page-api: use sse-multiplex 2015-12-18 17:46:24 +01:00
Matthias Schiffer fa504dae8d gluon-neighbour-info: simplify and fix timeout calculation
The timeout was calculated incorrectly (in each iteration the span between
the start time and the current time was substracted from the timeout
again), and would often become negative, causing warnings in the kernel
log.
2015-12-18 17:46:24 +01:00
Matthias Schiffer a3155c427a gluon-neighbour-info: fix a few compiler warnings 2015-12-18 17:46:24 +01:00
Matthias Schiffer d3bc707caa gluon-neighbour-info: flush after writing the HTTP header
sse-multiplex likes to get the header as fast as possible.
2015-12-18 17:46:24 +01:00
Matthias Schiffer c3150d821f gluon-announce{,d}: create a new UCI cursor for each run 2015-12-18 17:46:24 +01:00
Matthias Schiffer 077dbe3c08 gluon-status-page-api: decrease dyn/statistics event frequency
The statistics data is now cached for 5s, no need to send an event every
second. The new interval is 3s, which is coprime with the cache timeout.
2015-12-18 17:45:45 +01:00
Matthias Schiffer 48d24c2674 gluon-announce: enable caching 2015-12-18 17:43:16 +01:00
Matthias Schiffer eba7ecbbc0 gluon-announced: add support for caching announced data 2015-12-18 17:43:12 +01:00
Matthias Schiffer 5927fd66db gluon-status-page: filter out duplicate events in statistics event stream
Allows simple handling of cached events.
2015-12-18 17:37:48 +01:00
Matthias Schiffer 38477d5c0c Update gluon packages 2015-12-18 17:37:33 +01:00
Matthias Schiffer 6b8888fe5a Update Gluon packages 2015-12-12 20:51:47 +01:00
Matthias Schiffer 837c457f42 Merge pull request #593 from freifunk-gluon/pr-fastd-docs
docs: Improve documentation of fastd and autoupdater config in site.conf
2015-12-09 23:11:14 +01:00
Jan-Philipp Litza 46aa2e7c6a docs: Improve documentation of fastd and autoupdater config in site.conf 2015-12-09 21:00:19 +01:00
ruben de8c908dc3 docs: grammar and formatting enhanced in site.conf 2015-12-08 22:58:40 +01:00
Matthias Schiffer 5ecb8a7366 gluon-mesh-vpn-fastd: gluon-annouced: fix fastd status always being reported as enabled 2015-12-08 22:47:32 +01:00
Matthias Schiffer 3655a5b228 Revert "bzip2: extend/fix the Host/Install rule to install libbz2.so files"
Fixes #589
2015-12-08 19:53:21 +01:00
Matthias Schiffer 6aa7a783cc Merge pull request #590 from kokel/release-v2015.2
docs: releases/v2015.2: add ubiquiti airgateway
2015-12-08 19:45:00 +01:00
Tobias Hachmer 4c78da2978 docs: releases/v2015.2: add ubiquiti airgateway 2015-12-08 19:32:08 +01:00
Nils Schneider 0bb530d1c6 gluon-status-page: fix display of rx and tx traffic
On the status page statistics section counters for transmitted and received traffic were mixed up. Transmitted traffic was shown as received while received traffic was shown as being transmitted.

Fixes #586
2015-12-07 13:44:17 +01:00
Matthias Schiffer 108a1116d1 Merge pull request #584 from Ranlvor/master
OpenSSL: Added source/old to PKG_SOURCE_URL
2015-12-07 11:14:49 +01:00
Philzen 444105d22e docs: releases/v2015.2: fix small typo 2015-12-07 09:15:09 +01:00
Ranlvor e73d3c5c52
OpenSSL: Added source/old to PKG_SOURCE_URL
OpenSSL moves old versions of the library from http://www.openssl.org/source/
to http://www.openssl.org/source/old/1.0.2/ breaking the old links. That
behavior breaks the OpenWRT-build every time OpenSSL releases a new version.

This patch adds http://www.openssl.org/source/old/1.0.2/ to the PKG_SOURCE_URL
of OpenSSL to avoid breaking the build whenever OpenSSL releases a new
version.
2015-12-06 16:14:51 +01:00
Matthias Schiffer 87dd5bb3bb build: copy opkg keypair to target openwrt tree instead of linking it
Fixes #579
2015-12-02 15:11:38 +01:00
Matthias Schiffer 3643d818db Merge pull request #565 from freifunk-gluon/rn-v2015.2
docs: add v2015.2 release notes
2015-11-30 22:27:58 +01:00
Matthias Schiffer 6110d3d444 acx-mac80211: mark as BROKEN to avoid compile failure on mipsel targets 2015-11-28 22:41:42 +01:00
Martin Gebhardt b16ce6637b Add WZR-HP-G300NH to ar71xx-generic target 2015-11-28 01:13:50 +01:00
Matthias Schiffer 9c7582afe0 gluon-luci-private-wifi: fix typo in code file and regenerate translation files (correctly this time) 2015-11-27 14:33:56 +01:00
Matthias Schiffer 7f0fe061dc gluon-luci-private-wifi: fix translation files 2015-11-27 09:49:12 +01:00
Matthias Schiffer c456fb231f build: improve feed update fix (and remove accidentially committed part) 2015-11-25 11:35:34 +01:00
Matthias Schiffer 2ffd05357c build: ensure the feeds are updated when modules or site modules change 2015-11-25 02:28:37 +01:00
Matthias Schiffer df9df3d1b4 docs: add v2015.2 release notes 2015-11-24 04:10:53 +01:00
Matthias Schiffer 7c12de7250 docs: add WD My Net N600/N750 to list of supported devices 2015-11-24 04:10:07 +01:00
Matthias Schiffer caa5bbdafe Merge pull request #568 from kaechele/mynet
targets/ar71xx-generic: add WD MyNet N600/N750
2015-11-24 04:06:53 +01:00
Matthias Schiffer d16a9a25ca Merge pull request #570 from rotanid/master
docs: add link to tecff/site-ffa (Altdorf, Landshut & Umgebung)
2015-11-24 04:05:19 +01:00
Andreas Ziegler 26b4d5691f docs: add link to tecff/site-ffa (Altdorf, Landshut & Umgebung) 2015-11-24 03:55:52 +01:00
Felix Kaechele 00022fc07f targets/ar71xx-generic: add WD MyNet N600/N750
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
2015-11-23 23:13:51 +01:00
Matthias Schiffer e5d6ec73f5 contrib/sign.sh: remove debug echo command 2015-11-23 21:09:43 +01:00
Matthias Schiffer d2779c7711 Merge pull request #566 from Adorfer/master
-spelling
2015-11-23 14:20:33 +01:00
Adorfer 8f31ce81b3 -spelling 2015-11-23 13:11:26 +01:00
Matthias Schiffer ce44045a8b docs: releases/v2015.2: remove accidentially pasted line in the "Added hardware support" section 2015-11-23 01:51:57 +01:00
Matthias Schiffer f79d837e87 docs: update list of supported hardware
Also
* create list of newly supported devices since v2015.1.2 in the v2015.2 release notes
* update information on docs/user/x86
* fix a comment in targets/ar71xx-generic/profiles.mk
2015-11-23 01:43:35 +01:00
Matthias Schiffer f01121f7db contrib/sign.sh: various cleanups, exit with 1 on error 2015-11-23 01:14:54 +01:00
picard 40a9bdd7b1 docs: update ffnw site URL 2015-11-23 01:00:42 +01:00
Matthias Schiffer d428576ec5 Merge pull request #552 from freifunk-gluon/disable-mesh
gluon-mesh-batman-adv-core: keep disabled state even when the mesh interface section name is changed
2015-11-23 00:42:39 +01:00
Matthias Schiffer f0308ed93c docs: add documentation for gluon-ebtables-filter-{multicast,ra-dhcp} 2015-11-23 00:39:32 +01:00
Matthias Schiffer 81b2142e65 Merge branch 'patch-1' of https://github.com/ohrensessel/gluon 2015-11-22 23:28:39 +01:00
Matthias Schiffer 1ec09d7596 Merge pull request #564 from brokenbike/patch-1
Fix typo in LICENSE
2015-11-22 05:14:19 +01:00
Matthias Schiffer fabb0143c4 base-files: add missing public key
This patch is already included in the current OpenWrt CC branch.
Cherry-pick for now as we're very close to the Gluon 2015.2 release.
2015-11-21 18:36:45 +01:00
brokenbike 186fb0f33a Fix typo in LICENSE
In line 2: indiviual -> individual
2015-11-21 13:29:31 +01:00
Matthias Schiffer 77829cda98 ar71xx: fix wndr3700_board_detect for some NETGEAR WNDR3700v2 (again) 2015-11-20 15:23:02 +01:00
Matthias Schiffer 3f70440527 ar71xx: fix AR71XX_MODEL on TP-Link TL-WR703N 2015-11-20 00:04:59 +01:00
Matthias Schiffer ef38d386cb Fix the mac80211 backport not to remove the dependencies on kmod-crypto-arc4 and kmod-crypto-aes
The trunk version of mac80211 doesn't need these dependencies anymore as
they are compiled into the kernel.

While this didn't cause any issues for Gluon as we always build the kernel
with all modules, this fix makes the patch work on a plain OpenWrt CC as
well.
2015-11-18 23:07:46 +01:00
Matthias Schiffer 0335ce10e2 gluon-mesh-batman-adv-core: keep disabled state even when the mesh interface section name is changed
Is makes sense to always look for both ibss_radio* and mesh_radio* sections
to determine if the meshing should be enabled when regenerating these
sections. Doing this, the disabled state will survive updates changing the
section name (either updating from pre-2015.2 while keeping IBSS, or
changing from IBSS to 11s or vice-versa).

If both ibss_radio* and mesh_radio* sections exist, the disabled state will
be kept correctly for each section, the behaviour is changed only when
creating a section that didn't exist before.

Fixes #549
2015-11-18 03:01:18 +01:00
Matthias Schiffer e528977100 gluon-site: set PKG_FILE_DEPENDS to site.conf and i18n/ only
PKG_FILE_DEPENDS caused the whole site repo to be hashed to determine if
gluon-site needed rebuilding. While this is normally no problem,
alternative build setups sometimes put the Gluon repo inside the site repo,
causing long build times and parallel build failures.
2015-11-18 02:39:05 +01:00
Matthias Schiffer 8ef02f33e9 ar71xx: backport ath10k calibration data load changes 2015-11-18 02:03:35 +01:00
Nils Schneider 7031468da3 Merge pull request #548 from freifunk-gluon/getting_started
docs: improve user/getting_started, some minor fixes in user/site
2015-11-18 00:45:54 +01:00
Leo Krueger bc15b6c810 gluon-ebtables-filter-multicast: drop icmpv6 type 128 & 139, drop icmp
in a layer 2 mesh network, multicast pings cause a lot of traffic in the
network, significantly increasing the 'backgroudn noise' (= Grundrauschen)
and stressing nodes in the network.

this commit blacklists all icmpv4 multicast traffic as well as multicast
icmpv6 echo-requests and node iformation queries. as no application
depending on these types of multicast traffic is known, blacklisting is safe.
2015-11-12 21:16:37 +01:00
Matthias Schiffer 0b77bee3d7 ar71xx: fix TL-WR941ND v6 switch PHY mask
Fixes #550
2015-11-08 20:48:17 +01:00
Matthias Schiffer 7028c0e113 ar71xx-generic: add profile for TL-WR1043ND v3 2015-11-06 13:17:45 +01:00
Matthias Schiffer 171b484735 docs: improve user/getting_started, some minor fixes in user/site
This commit basically does two things: it urges users always to use an own
git repository to manage the site configuration, and it removed all
mentions of "communities" from the "Getting started" page, as it was too
Freifunk-specific.

Other documentation pages (especially the site configuration docs) should
probably be adjusted as well.
2015-11-06 00:17:09 +01:00
Matthias Schiffer abd43c163c ar71xx: add support for TP-LINK TL-WR1043ND v3 2015-11-05 18:17:28 +01:00
Matthias Schiffer b6b5aad79c Merge pull request #546 from MPW1412/patch-1
Confusion of WAN an LAN, this line is for mesh-on-lan
2015-11-05 17:01:48 +01:00
Matthias Walther b33635c47c Update wired-mesh.rst 2015-11-05 16:19:55 +01:00
Matthias Schiffer 72e554fcff Remove BROKEN for TL-LINK TL-WR940 v1 & v2
These devices are identical to the TL-WR941 v4 & v5, so we don't need to
test them explicitly.
2015-11-04 14:53:37 +01:00
Matthias Schiffer a3feff21cf ar71xx: add TP-LINK TL-WR941ND v6 support (again) 2015-11-02 19:26:15 +01:00
Matthias Schiffer 1cbe532751 Merge branch 'mac80211' 2015-11-02 18:10:00 +01:00
Matthias Schiffer 6e79982442 build: improve logging of tool build 2015-11-02 17:40:29 +01:00
Matthias Schiffer 34183c1cb2 build: further fixes for clean builds
usign has pulled in new dependencies, and OpenWrt doesn't like the command
`make tools/prepare` in a clean build.
2015-11-02 15:09:01 +01:00
Matthias Schiffer 2c6484ca15 mac80211: backport from trunk r47249 + additional patches 2015-11-02 02:58:55 +01:00
Matthias Schiffer 6be3893a7b ipv6: fix crash on ICMPv6 redirects with prohibited/blackholed source
Fixes #540
2015-11-02 02:02:37 +01:00
Matthias Schiffer 31d65173f2 build: clean up key generation and early preparation
This will fix the early preparation happening much too often and also fixes
early preparation after `make clean`.
2015-11-02 01:58:30 +01:00
Matthias Schiffer db6c50011d build: make `make dirclean` remove the whole GLUON_OUTPUTDIR 2015-11-02 01:35:53 +01:00
Matthias Schiffer 7475ef8f14 Update OpenWrt base
Update kernel to 3.18.23
2015-11-02 00:16:09 +01:00
Matthias Schiffer 82a9d7904a build: fix QUILT=1 option
This broke due to the Makefile changes for building the module repo.
2015-10-31 22:53:20 +01:00
Jan-Philipp Litza cf509cf4d9 Merge pull request #539 from brokenbike/patch-1
Update site.rst
2015-10-31 10:54:56 +01:00
brokenbike 2df84fc474 Update site.rst
The Freifunk Münsterland firmware was formerly known as Freifunk Münster firmware - while the URL hasn't changed. In future, there will probably be subdomains with their own files, but for now this is state of the project.
2015-10-30 21:16:27 +01:00
Matthias Schiffer 4c4ca21545 build: fix creation of opkg key when BUILDDIR hasn't been created yet 2015-10-30 20:07:19 +01:00
Matthias Schiffer f6f83508d0 Merge pull request #538 from srauscher/doc
doc: remove duplicate article in getting_started.rst
2015-10-30 17:26:13 +01:00
Stefan Rauscher a56d252cba doc: remove duplicate article in getting_started.rst 2015-10-30 16:55:57 +01:00
Matthias Schiffer 99b7ed0080 Merge pull request #527 from freifunk-gluon/modules
Generate opkg repo for kernel modules
2015-10-30 14:15:04 +01:00
Matthias Schiffer 4b120deaee build: improve handling of repository signing keys 2015-10-30 14:08:29 +01:00
Matthias Schiffer cbe66e9388 build: add `make modules` make target
`make modules` will generate a opkg repository containing kernel modules
matching the kernel of the Gluon images.
2015-10-29 18:44:00 +01:00
Matthias Schiffer 53a7cf31f9 build: add GLUON_OUTPUTDIR, move GLUON_IMAGEDIR default below it
We'll soon have other output besides the images, having a single directory
for all output makes sense.
2015-10-29 18:44:00 +01:00
Matthias Schiffer 515dfa2b50 Increment LINUX_RELEASE
The upstream builds always use LINUX_RELEASE=1. By setting it to 2 we
ensure that our modules are always preferred as long as our kernel version
is at least as high as the upstream one.
2015-10-29 18:44:00 +01:00
Matthias Schiffer cb404a944b build: remove vermagic hack
As the Gluon kernel won't be compatible with the OpenWrt upstream anymore,
we don't need the vermagic hack anymore.
2015-10-29 18:44:00 +01:00
Matthias Schiffer e730b60c93 Merge pull request #536 from FreifunkMD/doc
doc: remove double opening next_node line in site.conf example
2015-10-29 14:50:27 +01:00
Alexander Dahl 47dee86d8f doc: remove double opening next_node line in site.conf example
I guess this is some copy and paste mistake which makes the example an
invalid site.conf. In my case merging the changes of the example into
our actual site.conf lead to an error because this line was merged to.
2015-10-29 14:33:24 +01:00
Matthias Schiffer 86bd5a1da5 docs: improve wired mesh documentation
Fixes #376
2015-10-28 19:59:51 +01:00
Matthias Schiffer 412e1ef147 gluon-core: fix removal of "OpenWrt" default WLAN interface
Fixes #534
2015-10-28 17:06:29 +01:00
Matthias Schiffer 172ad68134 node: add python/host to HOST_BUILD_DEPENDS as well 2015-10-28 01:15:03 +01:00
Matthias Schiffer 0717ce007d Update OpenWrt and Gluon packages 2015-10-28 00:50:53 +01:00
Matthias Schiffer 74a6556f9c docs: releases/v2015.2: update site migration guide 2015-10-28 00:03:07 +01:00
Matthias Schiffer 6061b0874a build: fix manifest generation for model aliases 2015-10-27 22:44:03 +01:00
Matthias Schiffer 3ddcf50b80 Drop htmode field from config, always use HT20
Fixes #487
2015-10-27 01:57:10 +01:00
Matthias Schiffer 3647cf1d18 Remove leftover file from gluon-radio-config 2015-10-27 01:57:10 +01:00
Matthias Schiffer 9b46a05de7 Merge pull request #450 from freifunk-gluon/status-page
gluon-status-page: new status page
2015-10-26 22:55:00 +01:00
Matthias Schiffer 557a073dc7 gluon-mesh-batman-adv-core/gluon-luci-portconfig: fix configuration of br-client ifname with multiple interfaces in lan_ifname
There are a few devices on which lan_ifname contains multiple interface
names separated by spaces.
2015-10-26 22:29:44 +01:00
Nils Schneider 84b6374970 gluon-client-bridge: basic br-client config and wireless AP
This package provides br-client and sets up a wireless AP interface for
clients.
2015-10-26 21:14:32 +01:00
Matthias Schiffer 22130e84e8 Merge gluon-radio-config into gluon-core
gluon-radio-config contained only a single file. The code has been adjusted
to allow creating a Gluon configuration without WLAN support by removing
the wifi24 and wifi5 sections from site.conf.
2015-10-26 20:59:56 +01:00
Matthias Schiffer 3d862afb17 Update OpenWrt base 2015-10-26 19:02:12 +01:00
Matthias Schiffer 400613cb8b libuecc: update to v6 2015-10-25 17:32:30 +01:00
Matthias Schiffer fa9496f2f7 Update OpenWrt packages 2015-10-25 17:21:13 +01:00
Tarnatos 320967477e docs: add TL-WR841 v10 to device list 2015-10-23 11:00:23 +02:00
Matthias Schiffer fe0fbcf2d5 ar71xx: fix ath79_soc_rev value for QCA9531 ver. 2
ath9k expects to get revision id 2 for the QCA9531 ver. 2 rev. 0. This
fixes the very low TX power on some devices like the TP-LINK
TL-WR841ND v10.

As ath79_soc_rev is only used to get the revision number to ath9k on the
QCA9533, just set it to the expected value on the ver. 2.
2015-10-22 13:58:08 +02:00
Matthias Schiffer 563f9afcc0 ar71xx-generic: remove BROKEN check for TP-LINK CPE210/510 v1.1 2015-10-17 15:14:27 +02:00
Matthias Schiffer 3b4f154445 build: use symlinks instead of copies when multiple devices use identical images 2015-10-16 19:11:36 +02:00
Matthias Schiffer 162c4b0cdd Update CPE210/510 v1.1 support patches
Some more cleanup.
2015-10-16 01:20:16 +02:00
Matthias Schiffer 53211b5b46 Replace gluon-cron by micrond 2015-10-15 23:52:30 +02:00
Matthias Schiffer f2dd9ff6ac Update Gluon packages 2015-10-15 23:52:22 +02:00
Matthias Schiffer d0a78ea8ba Merge branch 'opkg' 2015-10-15 22:28:41 +02:00
Matthias Schiffer 45d1d04ae3 Merge branch 'simple-tc' 2015-10-15 22:28:32 +02:00
Matthias Schiffer cad2e8e4b7 ar71xx-generic: add support for CPE210/220/510/520 v1.1 (untested) 2015-10-15 22:03:20 +02:00
Matthias Schiffer f292ba1d7a ar71xx-generic: TL-WR841N/ND v10: remove BROKEN check 2015-10-15 12:17:24 +02:00
Matthias Schiffer 2fefdeee63 gluon-mesh-batman-adv-core: neighbours.d/wifi: output empty object instead of empty list when there are no neighbours on an interface 2015-10-15 02:42:28 +02:00
Matthias Schiffer 26682b24b3 Replace gluon-simple-tc by non-Gluon-specific simple-tc
The Gluon-specific functions of the gluon-simple-tc package are moved to
gluon-mesh-vpn-fastd.
2015-10-15 02:38:47 +02:00
Matthias Schiffer 9f6009469b Update Gluon modules 2015-10-15 02:38:37 +02:00
Jan-Philipp Litza daa15290ab gluon-announce: Remove now unused collect.lua
The file promotes the probably unnecessary re-execution of the announce
scripts. Instead, gluon-announced should be queried using

    gluon-neighbour-info -d ::1 -p 1001 -t0 -r nodeinfo

if both gluon-announced and gluon-neighbour-info are present. But to not
depend on any of those, no script for this one-liner is provided.
2015-10-15 01:49:20 +02:00
Jan-Philipp Litza bae6519279 gluon-alfred/gluon-status-page: Query gluon-announced
By not executing all scripts from gluon.announce themselves, both should
be considerably faster and lighter on RAM usage.
2015-10-15 01:49:20 +02:00
Jan-Philipp Litza d2ff7d5c22 gluon-neighbour-info: Add -l and -c parameter, make event type for -s configurable 2015-10-15 01:49:20 +02:00
Matthias Schiffer 3725f7bca3 Merge remote-tracking branch 'origin/announce.d' 2015-10-15 01:31:05 +02:00
Matthias Schiffer d5c334af6d gluon-core: replace opkg site configuration to make it more flexible
The new options allow specifying custom repositories and are evaluated
in an upgrade script, not during build.
2015-10-14 02:57:29 +02:00
Matthias Schiffer 69d18cc9e9 build: update opkg config generation to match upstream 2015-10-13 22:00:47 +02:00
Matthias Schiffer 0abe7fe4e5 Merge pull request #517 from freifunkMUC/feature/ubiquiti-air-gateway
Add support for Ubiquity Air Gateway
2015-10-13 19:17:28 +02:00
Matthias Schiffer 55b7b05db3 ar71xx-generic: disable WHR-HP-G300N profile because of image size issues 2015-10-13 01:34:40 +02:00
Nils Schneider e01e99c5f4 Merge pull request #519 from freifunk-gluon/gw_sel_class
gluon-mesh-batman-adv-core: make gateway selection class configurable
2015-10-12 21:50:23 +02:00
Matthias Schiffer b46d4fd537 gluon-mesh-batman-adv-core: make gateway selection class configurable
Fixes #401
2015-10-12 21:49:02 +02:00
Nils Schneider 9dffb1284f gluon-announce(d): preload functions, collectgarbage
By calling collectgarbage() at various places I was able to reduce heap
usage by ~270kb.
2015-10-12 20:54:03 +02:00
Nils Schneider 435ded0c60 gluon-announce: build a tree of functions first
collect_dir() will now pre-load all files and return a function that will
collect all information.
2015-10-12 20:54:03 +02:00
Franz Pletz 23933b6842 Add support for Ubiquity Air Gateway 2015-10-12 15:27:43 +02:00
A.Kasper b88c9f7877 kernel: add kernel modules for rtl8150 and rtl8152 based usb-to-ethernet converters
This patch adds the kernel modules to for the very common Realtek RTL8150 and Realtek 8152 based USB-to-Ethernet converters.
After this patch the following packages can be added to targets (or site.mk):
kmod-usb-net-rtl8150
kmod-usb-net-rtl8152

The modules are already available in openwrt trunk, but not in Chaos Calmer. This patch is just a temporary backport.
The modules are needed for Futros with additional USB-Ethernet-Interface and VMs with dedicated USB-NIC
2015-10-12 11:56:35 +02:00
Matthias Schiffer a22c808634 Merge pull request #466 from kb-light/11s-mesh-dev
gluon-mesh-batman-adv-core: prepare for 802.11s mesh
2015-10-11 23:01:08 +02:00
Matthias Schiffer 12f9df7e86 gluon-config-mode-core: don't throw error when no config mode modules are installed
The expert mode can still be useful without any cohfig mode modules.
2015-10-11 21:19:28 +02:00
Matthias Schiffer fca6cb817f Fix Buffalo WZR-600DHP support.
Use the same image for sysupgrade on WZR-HP-AG300H and WZR-600DHP, but use
different factory images.
2015-10-11 21:08:57 +02:00
Matthias Schiffer 6d92fcb50e Make Gluon/OpenWrt profile mapping more flexible
Add an optional third argument to the GluonProfile macro while contains the
OpenWrt profile name. This allows creating different Gluon profiles (with
different image names etc.) from the same OpenWrt profile.
2015-10-11 21:07:33 +02:00
Matthias Schiffer cd751b8b9e Revert "ar71xx: remove WZR-600DHP from Buffalo WZR-HP-AG300H/WZR-600DHP model name string for now"
This reverts commit 8ad3c88179.
2015-10-11 20:56:53 +02:00
Matthias Schiffer 8ad3c88179 ar71xx: remove WZR-600DHP from Buffalo WZR-HP-AG300H/WZR-600DHP model name string for now
We can't use the same image for these two devices, so as a workaround,
remove ZR-600DHP from the name for now, so the autoupdater can work and
users aren't confused.
2015-10-11 20:30:15 +02:00
Matthias Schiffer 05f146f817 Validate section names from site.conf in various packages 2015-10-11 19:34:14 +02:00
Matthias Schiffer fddbc1df2e base-files: add /etc/profile.d support 2015-10-11 18:14:08 +02:00
Matthias Schiffer ffc7baf9fb ar71xx: add support for TP-LINK TL-WR841N/ND v10 (untested) 2015-10-11 18:07:05 +02:00
Matthias Schiffer ed3d1294ca Merge pull request #481 from freifunk-gluon/rej-features
contributing: mention "rejected features" wiki page
2015-10-11 17:55:08 +02:00
Matthias Schiffer f71a72c440 Merge pull request #513 from brueggemann/master
Add support for WHR-HP-G300N
2015-10-11 17:29:14 +02:00
Matthias Schiffer 3e884a9df7 Merge pull request #516 from freifunkMUC/feature/tp-link-wa901nd-v1
Add support for TP-Link TL-WA901ND v1
2015-10-11 17:27:04 +02:00
Franz Pletz 61cb226523 Add support for TP-Link TL-WA901ND v1 2015-10-11 10:59:04 +02:00
brueggemann fda7995827 Add support for WHR-HP-G300N 2015-10-09 14:06:06 +02:00
Matthias Schiffer 1270b75be9 Merge pull request #512 from rubo77/patch-5
gluon-luci-private-wifi: typo seperaten
2015-10-09 12:22:43 +02:00
Ruben Barkow 06a2b2b1d1 gluon-luci-private-wifi: typo seperaten 2015-10-09 11:59:12 +02:00
Matthias Schiffer 0c7d0cdb91 Update modules 2015-10-08 23:13:28 +02:00
Matthias Schiffer 0f91fa6fa8 scripts/patch.sh: apply patches in a loop instead of a single `git am` command
Using a loop makes the script a bit nicer, and it works around a git bug
corrupting patch dates when multiple patches are applied at once.
2015-10-08 23:11:44 +02:00
Matthias Schiffer 4b3090f809 Merge branch 'master' of github.com:freifunk-gluon/gluon 2015-10-08 22:32:38 +02:00
Matthias Schiffer 74059c8940 Merge pull request #491 from ffac/target-xen_domu
Add support for x86-xen_domu target
2015-10-08 22:32:25 +02:00
Matthias Schiffer 3ced929698 Update Gluon packages 2015-10-08 22:30:16 +02:00
Matthias Schiffer 98542b015d i18n: s/noeud/nœud/ 2015-10-08 22:16:25 +02:00
Matthias Schiffer 8d71044aaf docs: site-example/i18n: fix encoding of french translation 2015-10-08 22:16:25 +02:00
Nils Schneider a48495a7c7 Merge pull request #500 from freifunk-gluon/sigtest
contrib/sigtest.sh - testing signature
2015-10-08 22:11:47 +02:00
Matthias Schiffer 595e337d9a x86: include kmod-forcedeth into generic and 64 subtargets 2015-10-08 13:21:50 +02:00
Matthias Schiffer 9640e66005 Merge pull request #448 from ff3l/french
Französische Übersetzung
2015-09-23 09:45:15 +09:00
Matthias Schiffer 57a3016148 Update OpenWrt base 2015-09-22 20:53:49 +09:00
kb-light 955dc886a8 gluon-mesh-batman-adv-core: prepare for 802.11s mesh
keep macfilter and maclist config after fw-update
2015-09-22 10:48:09 +02:00
Matthias Schiffer 46f996b4f0 Update modules
This also takes us past the OpenWrt 15.05 final release.
2015-09-21 21:02:31 +09:00
Steffen Möller 68459dab00 contrib/sigtest.sh - testing signature 2015-09-19 15:31:07 +02:00
Ronny Trommer 3f72e682c5 Update build dependency documentation
Build requires Python 2 and libssl-dev
2015-09-19 15:15:00 +02:00
Jan-Philipp Litza d3063ed2e1 Merge pull request #493 from rubo77/patch-4
docs: Suggest MTU 1280 to circumvent Kabel Deutschland problems
2015-09-19 15:05:59 +02:00
Jan-Philipp Litza 2a0ca129d2 Merge pull request #494 from rubo77/patch-5
docs: Suggest peer limit 1 instead of 2
2015-09-19 15:05:55 +02:00
srauscher 16888d214d Add french translation 2015-09-17 07:28:09 +02:00
Ruben Barkow 0035aa2989 docs: Suggest MTU 1280 to circumvent Kabel Deutschland problems 2015-09-14 11:47:51 +02:00
Ruben Barkow be49f755c7 docs: Suggest peer limit 1 instead of 2 2015-09-14 11:46:46 +02:00
Nils Schneider a6a281f545 Merge pull request #497 from rubo77/patch-6
CONTRIBUTING.md: Typo "everybode"
2015-09-14 11:42:58 +02:00
Ruben Barkow 439f00d576 Typo "everybode" 2015-09-14 11:40:10 +02:00
Michael Rüttgers f03ccf86d6 Add support for x86-xen_domu target
Config for rootfs and grub is not needed anymore (https://dev.openwrt.org/ticket/18074)

Config file not needed anymore (set implicitly by gluon now)

Avoid empty vars
2015-09-14 09:10:50 +02:00
Nils Schneider 71cdd65f30 Merge pull request #495 from aeickho/patch-4
add: info for 802.11s interface (mac)
2015-09-13 14:37:41 +02:00
Alex b465504ae8 add: info for 802.11s interface
additional information for commit 2a93c58042
2015-09-13 14:32:53 +02:00
Nils Schneider 2a9d7d82cb contributing: mention "rejected features" wiki page 2015-09-12 18:52:04 +02:00
Matthias Schiffer a71ab2fb72 Get rid of rpcd
LuCI's authentication won't work without rpcd, but we aren't using the
authentication anyways. Users who need it can just install rpcd explicitly.

Fixes #452
2015-09-06 01:37:42 +02:00
Matthias Schiffer 2ca4010714 Merge remote-tracking branch 'origin/status-page-api' 2015-09-05 18:56:58 +02:00
Nils Schneider 014f5751c8 gluon-status-page-api: increase uhttp.max_requests to 32
Now that the status page api has been rewritten in C CPU load and memory
usage is much lower. Also, nodes with both ibss and 11s mesh and dual
band wifi may require up to 9 connections for a single client, thus the
previous limit of 12 seemed a little low.
2015-09-05 12:11:35 +02:00
Nils Schneider 8be372a590 gluon-status-page-api: rewrite stations in C 2015-09-05 12:11:33 +02:00
Nils Schneider 4b8f6c9835 gluon-status-page-api: rewrite neighbours-batadv in C 2015-09-05 11:47:44 +02:00
Nils Schneider 431ac81407 gluon-status-page-api: split API from gluon-status-page
This will make it easier to replace the API with C programs.
2015-09-05 11:47:44 +02:00
Matthias Schiffer d19b05e7b7 Merge remote-tracking branch 'origin/br-client-ifname-list' 2015-09-04 21:13:08 +02:00
Nils Schneider 5e5dc5ab18 gluon-status-page: new status page 2015-09-04 20:50:18 +02:00
Nils Schneider 34752c7e0b br-client: convert option ifname to list ifname
Convert option ifname in br-client to use a list instead. This
simplifies adding and remove interfaces:

uci:add_to_set("network", "client", "ifname", "eth0")
uci:remove_from_set("network", "client", "ifname", "eth0")

An option ifname will be automatically converted to a list when
performing an upgrade.

Packages affected: gluon-mesh-batman-adv-core, gluon-luci-portconfig
2015-09-04 20:31:53 +02:00
Nils Schneider 7c6703d84b luci.model.uci: add add_to_set / remove_from_set 2015-09-04 20:31:53 +02:00
Matthias Schiffer faba9efb88 Merge branch 'jsonc-sink' of https://github.com/FreifunkBremen/gluon 2015-09-04 17:15:58 +02:00
Jan-Philipp Litza 961e6cc1c0 Add sink support to luci-lib-jsonc and use it where needed 2015-09-04 12:27:45 +02:00
Nils Schneider 96033758ab Merge pull request #473 from FreifunkBremen/batctl-if-lua
Don't fork batctl from announce scripts
2015-09-04 11:40:00 +02:00
Matthias Schiffer e3d89ee8c4 ath9k: add HSR tuner support for UniFi Outdoor Plus 2015-09-03 23:51:19 +02:00
Matthias Schiffer f0a6400d5d Refresh OpenWrt patches 2015-09-03 22:03:46 +02:00
Matthias Schiffer d2909270a7 Merge remote-tracking branch 'origin/odhpc6c-minor-fixes' 2015-09-03 20:59:31 +02:00
Nils Schneider 40a1a3c16c odhcp6c: minor fixes 2015-09-03 18:07:48 +02:00
Jan-Philipp Litza bccf4f7b21 gluon-mesh-batman-adv-core: Add lua code for iface listing, don't fork 2015-09-03 16:33:13 +02:00
Matthias Schiffer 3599d8912b Merge branch 'slim-down-lua-scripts' of https://github.com/FreifunkBremen/gluon 2015-09-03 15:29:27 +02:00
Matthias Schiffer 501affad08 Revert "mac80211: backport from trunk r46760"
This reverts commit 91b3c1d371.
2015-09-03 15:24:51 +02:00
Matthias Schiffer 740e8b67c5 Revert "ar71xx: fix TP-LINK TL-WR941ND v6 support"
This reverts commit 6da1677d92.
2015-09-03 15:24:42 +02:00
Nils Schneider 21935ffc81 gluon-status-page: set html encoding to utf-8 2015-09-02 21:19:41 +02:00
Jan-Philipp Litza 339a6c9959 Remove dependencies on luci.util (and partly nixio.fs) from announce scripts 2015-09-02 13:17:59 +02:00
Matthias Schiffer 6da1677d92 ar71xx: fix TP-LINK TL-WR941ND v6 support 2015-09-01 22:14:57 +02:00
Matthias Schiffer 91b3c1d371 mac80211: backport from trunk r46760 2015-09-01 22:14:57 +02:00
Matthias Schiffer 280ea8d9ba Update OpenWrt base 2015-09-01 22:14:57 +02:00
Nils Schneider 7f5c3e433b Merge pull request #462 from FreifunkBremen/contribution-guidelines
RFC: Add contribution guidelines
2015-08-31 21:15:26 +02:00
Nils Schneider cf13db52b6 Merge pull request #463 from FreifunkBremen/jsonc-fix-memleak
Add patch "luci-lib-jsonc: Fix memory leak in stringify"
2015-08-31 20:01:41 +02:00
Jan-Philipp Litza 8e670bd3fd Add patch "luci-lib-jsonc: Fix memory leak in stringify" 2015-08-31 19:56:00 +02:00
Jan-Philipp Litza c6b551aeeb Add contribution guidelines 2015-08-31 19:34:43 +02:00
Matthias Schiffer f5bef2ab01 docs: site-example/i18n/de.po: fix typo 2015-08-31 00:45:52 +02:00
Matthias Schiffer a25d00ddce Merge branch 'feature-optional-thekey' of https://github.com/FreifunkBremen/gluon 2015-08-31 00:42:54 +02:00
Matthias Schiffer d97586dd89 Merge branch 'announce-separate-frequencies' of https://github.com/FreifunkBremen/gluon 2015-08-30 23:53:36 +02:00
Matthias Schiffer 58306fd1c9 Merge pull request #459 from FreifunkBremen/docs-empty-msgstr
Warn of empty msgstr in translations, hint at using comments
2015-08-30 23:53:08 +02:00
Jan-Philipp Litza 89a9d8138c gluon-mesh-batman-adv-core: Announce client count by frequency 2015-08-30 23:39:45 +02:00
Jan-Philipp Litza 222fd94ca7 docs: Warn of empty msgstr in translations, hint at using comments 2015-08-30 23:03:48 +02:00
Jan-Philipp Litza eb590bdc12 gluon-config-mode-mesh-vpn: Move display of key to translations
When rebooting the node in config mode, currently the fastd key is
forcefully displayed in a fixed format. This is confusing in communities
where fastd accepts all keys and no key submission is needed.
Furthermore, some communities might want to personalize the display of
the key (see #387).

This patch moves the displaying <div> from the package's lua file to the
translation files of the sample site configuration and mentiones the
change in the release notes.
2015-08-30 21:55:29 +02:00
Jan-Philipp Litza 15a80aaffd Switch from luci-lib-json to luci-lib-jsonc
Apart from replacing a patch for the former by two patches for latter,
this involved minimal adaptations of the lua scripts in the following
packages:

* gluon-announce
* gluon-announced
* gluon-mesh-batman-adv-core
* gluon-status-page
2015-08-30 21:05:13 +02:00
Matthias Schiffer 4405f39869 Merge remote-tracking branch 'origin/radio-config' 2015-08-29 02:36:38 +02:00
Nils Schneider ac439b8b64 Update modules 2015-08-29 02:10:32 +02:00
Matthias Schiffer 3dbe4bc80f Update modules 2015-08-28 19:31:41 +02:00
Matthias Schiffer 0f427af474 Avoid build dependency on libopenssl 2015-08-28 10:48:41 +02:00
kb-light 753c1f9e2a gluon-status-page: handle 11s interfaces 2015-08-23 23:19:28 +02:00
Nils Schneider 5cd17b9b9b Update modules 2015-08-19 21:36:00 +02:00
Nils Schneider 6906ef9de6 gluon-radvd: use uradvd 2015-08-19 21:20:50 +02:00
Nils Schneider 177086b881 gluon-radio-config: basic wireless configuration
Split basic radio configuration from gluon-mesh-batman-adv as this will
be required for virtually any wireless mesh protocol.

This package takes care of setting:

  - wireless channel,
  - htmode and
  - regulatory domain

gluon-mesh-batman-adv-core depends on this package.
2015-08-18 11:41:14 +02:00
Nils Schneider bd56af3bab docs: introduce per-package documentation
Documentation for packages should be placed in docs/packages/
and be added to docs/index.rst.
2015-08-16 14:57:48 +02:00
Matthias Schiffer a1071bc5d4 Update modules 2015-08-13 20:27:07 +02:00
Matthias Schiffer d432a0a214 alfred: not only wait for the interface, but also a link-local address 2015-08-09 18:13:45 +02:00
Matthias Schiffer 0f928b08d5 docs: import v2015.1.2 release notes and list of supported devices 2015-08-09 14:56:03 +02:00
Matthias Schiffer 5cc6e820ea Fix TL-MR3220 v2 image generation
This broke due to a recent OpenWrt update.
2015-08-07 20:56:43 +02:00
Matthias Schiffer 4b23674393 base-files: default_postinst: propagate the real postinst return code
Fixes site.conf checks.
2015-08-07 18:50:03 +02:00
Matthias Schiffer 86773d7628 gluon-luci-wifi-config: add support for new WLAN configuration 2015-08-07 18:36:13 +02:00
Matthias Schiffer 26c6a787f6 Merge remote-tracking branch 'origin/flexible-wifi' 2015-08-07 17:45:23 +02:00
Matthias Schiffer 11bffa59db Update routing packages
This also updates batman-adv & alfred to 2015.1
2015-08-06 22:31:28 +02:00
Matthias Schiffer aaac89c762 Update OpenWrt & LuCI packages 2015-08-06 22:01:10 +02:00
Matthias Schiffer 397d56e317 batman-adv: fix patch ordering 2015-08-06 21:42:48 +02:00
Matthias Schiffer b408e1c99e batman-adv: decrease maximum fragment size
This should workaround batman-adv's inability to deal with different MTUs
which need fragmentation.

Fixes #435
2015-08-06 21:31:46 +02:00
Matthias Schiffer be9182d377 Backport some QCA953x fixes
This might improve stability on the TL-WR841 v9.
2015-08-06 19:24:37 +02:00
Matthias Schiffer 5f55e4c084 Merge remote-tracking branch 'origin/fix-wan-dnsmasq' 2015-08-06 16:43:35 +02:00
Matthias Schiffer 912ab30d3a Update OpenWrt base 2015-08-06 16:37:23 +02:00
Matthias Schiffer b4b16c31bf Merge pull request #434 from kokel/wr710n-v2
Add support for TP-Link TL-WR710N v2
2015-08-06 16:36:46 +02:00
Kokel 8ccb173992 Add support for TP-Link TL-WR710N v2
Tested-by: @kokel
2015-08-06 16:21:40 +02:00
Nils Schneider 2a93c58042 mesh-batadv-core: introduce 11s mesh, refactor wireless config
This is a site.conf-breaking change in regard to the wireless config.
Make sure to read http://gluon.readthedocs.org/en/latest/user/site.html
and update your site.conf accordingly!

Support for 802.11s mesh interfaces has been added. Gluon now supports
three interface types: ap, ibss and mesh. All of them are now optional
and may be configured independently in site.conf.

A sample site.conf may look like this:

    wifi24 = {
            channel = 1,
            htmode = 'HT40+',
            ap = {
                    ssid = 'luebeck.freifunk.net',
            },
            ibss = {
                    ssid = '02:d1:11:37:fc:38',
                    bssid = '02:d1:11:37:fc:38',
                    mcast_rate = 12000,
            },
            mesh = {
                    id = 'ffhl-mesh',
                    mcast_rate = 12000,
            },
    },
2015-08-04 23:05:29 +02:00
Nils Schneider d9df118686 gluon-wan-dnsmasq: fix usage of libpacketmark
Using service_start requires exporting of environment variables.

Fixes #397
2015-08-04 22:51:40 +02:00
Jan-Philipp Litza 4e5b3354d2 gluon-mesh-batman-adv-core: Only announce valid IPv6 addresses
The nodeinfo/network/addresses announcement included deprecated and
tentative addresses, which it clearly shouldn't as the host doesn't want
to be contacted on those addresses. They are now filtered out.
2015-08-04 00:11:45 +02:00
Matthias Schiffer bf2f4880fa Merge pull request #428 from oakey-dev/patch-2
TP-Link TL-WA701ND v2: remove BROKEN
2015-08-03 18:25:29 +02:00
Neal Oakey 3f2f37f098 TP-Link TL-WA701ND v2: remove BROKEN 2015-07-30 15:11:39 +02:00
Matthias Schiffer 75cebd236d hostapd: prevent channel switch for 5GHz
hostapd would switch the primary and secondary channel on 5GHz networks in
certain circumstances, completely breaking the adhoc interfaces of the WLAN
adapter (they would lose their configuration).

As a temporary fix, disable this channel switch function.
2015-07-27 20:45:33 +02:00
Nils Schneider 56e7753035 check_site: allow subcheck to be nil in need_table() 2015-07-25 21:02:24 +02:00
Nils Schneider 03ed475a42 openwrt/mac80211: set mcast-rate for mesh point interfaces 2015-07-24 21:54:41 +02:00
Matthias Schiffer 1195760cb6 ath10k: update Candelatech firmware to v14 2015-07-23 02:27:04 +02:00
Matthias Schiffer dfcac0aaa5 ar71xx: fix wndr3700_board_detect for some NETGEAR WNDR3700v2 2015-07-23 01:41:25 +02:00
Matthias Schiffer 6f1989d43a ar71xx-generic: also provide images for the Ubiquiti Loco, Picostation and Rocket M
While the images are the same that are used for the Bullet M, adding these
copies will help users choose the correct image for their device.
2015-07-21 15:43:56 +02:00
Matthias Schiffer bb869b800e ar71xx-generic: add images for TL-WR940N
These are identical to the TL-WR941ND (and identify as TL-WR941ND
internally).
2015-07-21 15:42:13 +02:00
Matthias Schiffer 508dca41eb Update DEFAULT_OPKG_REPO to 15.05-rc3 2015-07-18 21:22:21 +02:00
Matthias Schiffer 48054fc943 Add update-vermagic make target 2015-07-18 21:21:06 +02:00
Matthias Schiffer f6498e8773 Update modules 2015-07-18 18:02:13 +02:00
Matthias Schiffer 303712d4b4 brcm2708: don't use gzip -k 2015-07-17 20:53:19 +02:00
Matthias Schiffer 2eb59ddec0 Add support for sunxi target and BananaPi profile (untested) 2015-07-16 23:07:10 +02:00
Matthias Schiffer cee83c60c0 brcm2708: add sysupgrade support 2015-07-15 22:06:01 +02:00
Matthias Schiffer 3335fc6c53 Merge pull request #417 from FreifunkMD/doc
doc: remove "probability" from site doc (was removed in v2014.3)
2015-07-14 11:20:46 +02:00
Alexander Dahl 7be180d419 doc: remove "probability" from site doc (was removed in v2014.3)
see: http://gluon.readthedocs.org/en/latest/releases/v2014.3.html

Signed-off-by: Alexander Dahl <alex@netz39.de>
2015-07-14 11:07:52 +02:00
Matthias Schiffer 9b2d4a3535 Update OpenWrt base 2015-07-13 16:11:35 +02:00
Matthias Schiffer 8434686085 build: implicitly configure board and subtarget options
The file targets/$GLUON_TARGET/config becomes optional, as many targets
only used it to set the board and subtarget.

Also fix targets without subtarget.
2015-07-12 22:38:41 +02:00
Matthias Schiffer d4c6b31454 ar71xx-generic: remove unneeded CONFIG_TARGET_ROOTFS_JFFS2 option
This default to n now by default
2015-07-12 22:09:15 +02:00
Matthias Schiffer 7d7c093007 brcm2708-bcm2708/-bcm2709: remove unnecessary package list
These packages are included by OpenWrt by default on this target and don't
need to be specified manually.
2015-07-12 18:46:30 +02:00
Matthias Schiffer 88ed124d5e Merge remote-tracking branch 'origin/on-link' 2015-07-12 18:23:08 +02:00
Matthias Schiffer 71be522c02 Update gluon packages 2015-07-12 18:21:13 +02:00
Matthias Schiffer aa33a94ea7 Merge pull request #411 from FreifunkBremen/feature-neighbour-info-timeout
gluon-neighbour-info: Support sub-second timeout
2015-07-12 16:42:28 +02:00
Matthias Schiffer e878155601 gluon-luci-admin: fix setting the password
This was broken due to the switch to Chaos Calmer.
2015-07-12 16:31:00 +02:00
Matthias Schiffer 34e0451e45 gluon-mesh-batman-adv-core: unconditionally set the WAN MAC address
This fixes MAC address conflicts on devices which use the eth0 as primary
address.
2015-07-11 18:27:35 +02:00
Matthias Schiffer f5764a4a7b gluon-mesh-batman-adv-core: adjust rssid config to renamed WLAN interfaces
This should fix the signal strength indicators on the TP-Link CPE210/510.
2015-07-10 20:58:46 +02:00
Matthias Schiffer efbc88ddba Update modules 2015-07-10 20:34:11 +02:00
Matthias Schiffer d386ccdcf8 Always use eth0 address as primary address on x86 and brcm2708
These targets don't have a WLAN adapter by default, so it doesn't make
sense to default to the phy0 address.
2015-07-10 20:22:53 +02:00
Matthias Schiffer cb40f149f3 Add support for brcm2708-bcm2708 and -bcm2709 targets
Original patch by @MPW1412
2015-07-10 19:38:41 +02:00
Matthias Schiffer 07d338919c build: copy all regular files from KERNEL_BUILD_DIR to BOARD_KDIR
Fixes build for brcm2708 targets
2015-07-10 18:16:39 +02:00
Matthias Schiffer 170741bf1c Restore README.md
It seems to have been deleted accidentially.
2015-07-10 18:16:39 +02:00
Jan-Philipp Litza 9f91a5f841 gluon-neighbour-info: Support sub-second timeout 2015-07-09 20:18:11 +02:00
Matthias Schiffer 961d82e37f Add x86-64 target 2015-07-09 01:20:21 +02:00
Matthias Schiffer d8a6c16da2 x86-generic: add kmod-e1000e network driver 2015-07-09 01:20:21 +02:00
Nils Schneider 1c4b179dd2 gluon-config-mode-geo-location: translate "altitude" to "Höhe" 2015-07-08 23:18:42 +02:00
Nils Schneider b91115e8f1 Merge pull request #409 from hwhw/master
Do not use error() in gluon-neighbour-info
2015-07-06 09:41:03 +02:00
Hans-Werner Hilse 66060cf08a gluon-neighbour-info: Do not use error()
error() is a glibc specific function and should not be used in
code meant to be portable.
2015-07-06 09:37:22 +02:00
Matthias Schiffer 1f3e66cf14 Update OpenWrt base 2015-07-04 17:22:40 +02:00
Neal Oakey 99fbafdf0c TP-Link TL-WA830RE v2: remove BROKEN 2015-07-04 17:03:21 +02:00
Matthias Schiffer 0c6101a7ac Update modules 2015-07-02 00:20:12 +02:00
Matthias Schiffer 9cff74b5a4 Update gluon packages 2015-07-01 23:17:49 +02:00
Matthias Schiffer 514f14863b Add support for TP-Link TL-WA801N/ND v1
Tested-by: @RubenKelevra
2015-07-01 17:17:38 +02:00
Nils Schneider 6ced715e13 Merge pull request #371 from freifunk-gluon/status-page-api
gluon-status-page: API
2015-06-29 17:33:04 +02:00
Nils Schneider 4f8ce12325 uhttpd: set max_requests to 12
This limits the number of concurrent users to 2 or 3 (approx. 4 connections per
user), greatly reducing DoS potential.
2015-06-29 12:03:01 +02:00
Nils Schneider 28668c8c52 gluon-status-page: API 2015-06-29 12:03:01 +02:00
Matthias Schiffer 372335e742 Update modules 2015-06-26 00:59:23 +02:00
Matthias Schiffer bccfc0419e Add support for TP-LINK TL-WR740N/TL-WR741ND
The TL-WR741ND will identify itself as a TL-WR740N/ND as well. This is fine as
the images are identical anyways.
2015-06-21 23:01:58 +02:00
Matthias Schiffer 370544f3b4 Update OpenWrt base and packages 2015-06-21 21:10:45 +02:00
Matthias Schiffer 0df337fbe4 Fix routing from node to mesh
Recent changes in the routing configuration of OpenWrt broke source address
selection, sometimes leading to the node trying to contact other addresses in
the mesh network from the next-node address.

Revert the problematic commits until this has been solved upstream.
2015-06-21 05:57:23 +02:00
Matthias Schiffer b5d01f81df Remove oldpackages opkg.conf entry
The oldpackages repo has been dropped for Chaos Calmer.
2015-06-20 22:20:53 +02:00
Matthias Schiffer c2d4c49020 Update modules 2015-06-19 14:32:38 +02:00
Matthias Schiffer 094721f862 Update OpenWrt base 2015-06-18 20:10:55 +02:00
Matthias Schiffer 449a18f834 docs: releases/v2015.1.1 2015-06-18 02:47:49 +02:00
Matthias Schiffer 86ba583f46 Update modules 2015-06-18 02:40:18 +02:00
Matthias Schiffer d42a7b9184 Merge pull request #396 from freifunk-gluon/empty-json-objects
gluon-announce, ...: don't output empty lists where not appropriate
2015-06-16 22:25:12 +02:00
Matthias Schiffer d15e7118ea Update modules 2015-06-16 17:04:58 +02:00
Matthias Schiffer 8e87d84120 Update default opkg repo to 15.05-rc2 2015-06-16 00:58:18 +02:00
Matthias Schiffer 68a3b5f394 gluon-announce, ...: don't output empty lists where not appropriate
Always output empty objects or nothing at all where objects are expected, but
no elements exist.

Also remove a few unneeded "requires", a few basic modules are provided by
announce.lua by default.
2015-06-15 21:17:00 +02:00
Matthias Schiffer d37f3619ce Switch to OpenWrt 15.05 release branch 2015-06-15 19:34:26 +02:00
Matthias Schiffer 6c378d1726 batman-adv: refresh no_rebroadcast patch to apply to 2015.0 cleanly 2015-06-15 12:37:38 +02:00
Matthias Schiffer 3422f6f72b Switch openwrt-routing module to master branch
This updates batman-adv to 2015.0.
2015-06-10 19:40:06 +02:00
Matthias Schiffer de0b59754d luci-lib-json: ignore null keys to allow encoding empty objects 2015-06-10 11:10:38 +02:00
Matthias Schiffer 4b01ecce7c Update modules 2015-06-10 11:01:25 +02:00
Matthias Schiffer bf0f1cd53f Update OpenWrt base and packages
This also fixes the TL-WA830RE v1 model name.
2015-06-05 17:38:26 +02:00
Matthias Schiffer 06cffbdde8 Update modules 2015-06-04 20:12:45 +02:00
Matthias Schiffer e6c00c1ad7 build: ensure prereq has been run at the beginning of prepare-tmpinfo 2015-05-28 02:45:19 +02:00
Matthias Schiffer 317478e2b7 gluon-mesh-batman-adv-core: don't break network configuration on upgrades with mesh_on_lan=true 2015-05-28 01:44:25 +02:00
Nils Schneider a42db7a71f gluon-luci-admin: fix translation of "Export Mode"
Export Mode -> Expert Mode
2015-05-22 11:51:32 +02:00
Matthias Schiffer b21109f551 Update gluon packages 2015-05-22 02:05:47 +02:00
Matthias Schiffer ab10be9f50 We're on Chaos Calmer now 2015-05-22 01:09:19 +02:00
Matthias Schiffer 63165e80a7 Merge branch 'wa830re-v10' of https://github.com/freifunk-darmstadt/gluon 2015-05-21 01:28:45 +02:00
Matthias Schiffer 8332a49b78 docs: change version to 2015.1+ 2015-05-21 01:06:25 +02:00
Florian Klink b3f44325c4 add support for TP-LINK TL-WA830RE v1.0
final image name is shown as tp-link-tl-wa830re-v10

primary mac is the one printed on the case
2015-05-21 00:49:14 +02:00
Nils Schneider 2164893616 gluon-radvd: on-link flag
By introducing a new option -a in addition to -p this patch allows
controlling the on-link flag of announcements.

A prefix specified using -a will have the on-link flag set to zero
while a prefix specified using -p will retain its behaviour (i.e.
on-link flag set).

Example:

    gluon-radvd -i local-node -p 2001:db8:aaaa:/64 -a 2001:db8:bbbb::/64

This will announce 2001:db8:aaaa::/64 with the on-link flag set and
2001:db8:bbbb::/64 with the flag unset.
2015-05-08 21:46:12 +02:00
960 changed files with 38904 additions and 50470 deletions

36
.editorconfig Normal file
View File

@ -0,0 +1,36 @@
# Top-most EditorConfig file
root = true
[*]
end_of_line = lf
insert_final_newline = true
indent_style = tab
charset = utf-8
[/patches/**]
indent_style = unset
indent_size = unset
[*{.json,.ecrc}]
indent_style = space
indent_size = 2
[*.md]
indent_style = space
indent_size = 4
[*.py]
indent_style = space
indent_size = 4
[*.rst]
indent_style = space
indent_size = 3
[*.yml]
indent_style = space
indent_size = 2
[CMakeLists.txt]
indent_style = space
indent_size = 2

71
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,71 @@
---
name: Bug report
about: Report a bug in a recent version of Gluon
label: bug
---
<!--
Please carefully fill out the questionaire below to help improve the
timely triaging of issues. Walk through the questions below and use
them as an inspiration for what information you can provide.
Make use of codeblocks (three backticks before and after) where
appropriate (configuration excerpts, log output, etc.). Example:
```
your code goes here
```
You can use the "Preview" tab to check how your issue is going to look
before you actually send it in.
Thank you for taking the time to report a bug with the Gluon project.
-->
### Bug report
**What is the problem?**
<!--
- What is not working as expected?
- How is it misbehaving?
- When did the problem first start showing up?
- What were you doing when you first noticed the problem?
- On which devices (vendor, model and revision) is it misbehaving?
- Does the issue appear on multiple devices or targets?
-->
**What is the expected behaviour?**
<!--
- How do you think it should work instead?
- Did it work like that before?
-->
**Gluon Version:**
<!--
Please provide a usable Git reference before applying custom patches:
By using a Git reference:
$ git describe --always
v2018.2-17-g3abadc28
Or the URL to the relevant Gluon commit
https://github.com/freifunk-gluon/gluon/commit/<commit hash here>
-->
**Site Configuration:**
<!--
Please provide the URL to your site configuration repository and the
explicit commit used to build the firmware experiencing the problem.
Additionally excerpts of problem-related configuration parts are
often helpful.
-->
**Custom patches:**
<!--
Be upfront about any custom patches you have applied to your Gluon build, as they might
be part of your problem.
-->

59
.github/labeler.yml vendored Normal file
View File

@ -0,0 +1,59 @@
---
"3. topic: babel":
- package/gluon-l3roamd/**
- package/gluon-mesh-babel/**
- package/gluon-mmfd/**
"3. topic: batman-adv":
- docs/package/gluon-mesh-batman-adv*
- package/gluon-alfred/**
- package/gluon-cient-bridge/**
- package/gluon-mesh-batman-adv/**
- package/libbatadv/**
"3. topic: build":
- Makefile
- scripts/**
"3. topic: config-mode":
- docs/dev/web/config-mode.rst
- docs/package/gluon-config-mode-*
- packge/gluon-config-mode-*/**
- package/gluon-web*/**
"3. topic: continous integration":
- .github/workflows/*
- contrib/actions/**
- contrib/ci/**
"3. topic: docs":
- docs/**
"3. topic: fastd":
- docs/features/fastd*
- package/gluon-mesh-vpn-fastd/**
"3. topic: firewall":
- package/**/*-firewall
- package/gluon-ebtables-*/**
"3. topic: hardware":
- package/gluon-core/luasrc/lib/gluon/upgrade/010-primary-mac
- package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua
- targets/*
"3. topic: multidomain":
- docs/features/multidomain*
- docs/multidomain-site-example/**
- package/gluon-config-mode-domain-select/**
- package/gluon-scheduled-domain-switch/**
"3. topic: package":
- package/**
"3. topic: respondd":
- package/**/*respondd*
- package/gluon-respondd/**
"3. topic: status-page":
- package/gluon-status-page/**
"3. topic: tests":
- tests/**
"3. topic: tunneldigger":
- package/gluon-mesh-vpn-tunneldigger/**
"3. topic: wireguard":
- package/gluon-mesh-vpn-wireguard/**
"3. topic: wireless":
- package/gluon-mesh-wireless-sae/**
- package/gluon-private-wifi/**
- package/gluon-web-private-wifi/**
- package/gluon-web-wifi-config/**
- package/gluon-wireless-encryption/**

26
.github/workflows/build-docs.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Build Documentation
on:
push:
paths:
- 'docs/**'
- '.github/workflows/build-docs.yml'
pull_request:
types: [opened, synchronize, reopened]
paths:
- 'docs**/'
- '.github/workflows/build-docs.yml'
jobs:
build-documentation:
name: docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
run: sudo pip3 install sphinx-rtd-theme
- name: Build documentation
run: make -C docs html
- name: Archive build output
uses: actions/upload-artifact@v1
with:
name: docs_output
path: docs/_build/html

54
.github/workflows/build-gluon.yml vendored Normal file
View File

@ -0,0 +1,54 @@
# Update this file after adding/removing/renaming a target by running
# `make list-targets BROKEN=1 | ./contrib/actions/generate-actions.py > ./.github/workflows/build-gluon.yml`
name: Build Gluon
on:
push:
branches:
- master
- next*
- v20*
paths:
- "modules"
- "Makefile"
- "scripts/**"
- "package/**"
- "patches/**"
- "targets/**"
- ".github/workflows/build-gluon.yml"
pull_request:
types: [opened, synchronize, reopened]
paths:
- "modules"
- "Makefile"
- "scripts/**"
- "package/**"
- "patches/**"
- "targets/**"
- ".github/workflows/build-gluon.yml"
jobs:
build_firmware:
strategy:
fail-fast: false
matrix:
target: [ath79-generic, ath79-nand, bcm27xx-bcm2708, bcm27xx-bcm2709, ipq40xx-generic, ipq806x-generic, lantiq-xrx200, lantiq-xway, mediatek-mt7622, mpc85xx-p1010, mpc85xx-p1020, ramips-mt7620, ramips-mt7621, ramips-mt76x8, rockchip-armv8, sunxi-cortexa7, x86-generic, x86-geode, x86-legacy, x86-64, bcm27xx-bcm2710, mvebu-cortexa9]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
run: sudo contrib/actions/install-dependencies.sh
- name: Build
run: contrib/actions/run-build.sh ${{ matrix.target }}
- name: Archive build logs
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.target }}_logs
path: openwrt/logs
- name: Archive build output
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.target }}_output
path: output

27
.github/workflows/check-patches.yml vendored Normal file
View File

@ -0,0 +1,27 @@
---
name: Check patches
on:
push:
paths:
- 'modules'
- 'patches/**'
- '.github/workflows/check-patches.yml'
pull_request:
types: [opened, synchronize, reopened]
paths:
- 'modules'
- 'patches/**'
- '.github/workflows/check-patches.yml'
jobs:
check-patches:
name: Check patches
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Refresh patches
run: make refresh-patches GLUON_SITEDIR="contrib/ci/minimal-site"
- name: Show diff
run: git status; git diff
- name: Patch status
run: git diff-files --quiet

15
.github/workflows/labels.yml vendored Normal file
View File

@ -0,0 +1,15 @@
name: "Label PRs"
on:
# only execute base branch actions
pull_request_target:
jobs:
labels:
runs-on: ubuntu-latest
if: github.repository_owner == 'freifunk-gluon'
steps:
- uses: actions/labeler@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true

29
.github/workflows/lint.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: Lint
on:
push:
pull_request:
types: [opened, synchronize, reopened]
jobs:
lua:
name: Lua
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
run: sudo apt install lua-check
- name: Install example site
run: ln -s ./docs/site-example ./site
- name: Lint Lua code
run: make lint-lua
sh:
name: Shell
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
run: sudo apt install shellcheck
- name: Install example site
run: ln -s ./docs/site-example ./site
- name: Lint shell code
run: make lint-sh

10
.gitignore vendored
View File

@ -1,7 +1,9 @@
*~
/build
/images
/site
/openwrt
/output
/site
/tmp
/packages
/modules.local
.bash_history
.subversion
.wget-hsts

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "site"]
path = site
url = https://git.dezentrale.cloud/Freifunk-Leipzig/gluon-site.git

115
.luacheckrc Normal file
View File

@ -0,0 +1,115 @@
codes = true
std = "min"
self = false
read_globals = {
"getfenv",
"setfenv",
"unpack",
}
include_files = {
"**/*.lua",
"package/**/luasrc/**/*",
"targets/*",
"package/features",
}
exclude_files = {
"**/*.mk",
}
files["package/**/check_site.lua"] = {
read_globals = {
"alternatives",
"extend",
"in_domain",
"in_site",
"need",
"need_alphanumeric_key",
"need_array",
"need_array_of",
"need_boolean",
"need_chanlist",
"need_domain_name",
"need_number",
"need_number_range",
"need_one_of",
"need_string",
"need_string_array",
"need_string_array_match",
"need_string_match",
"need_table",
"need_value",
"obsolete",
"table_keys",
"this_domain",
},
}
files["package/**/luasrc/lib/gluon/config-mode/*"] = {
globals = {
"DynamicList",
"Flag",
"Form",
"i18n",
"ListValue",
"renderer.render",
"renderer.render_string",
"Section",
"TextValue",
"_translate",
"translate",
"translatef",
"Value",
},
}
files["package/**/luasrc/lib/gluon/**/controller/*"] = {
read_globals = {
"_",
"alias",
"call",
"entry",
"model",
"node",
"template",
},
}
files["package/**/luasrc/lib/gluon/ebtables/*"] = {
read_globals = {
"chain",
"rule",
},
max_line_length = false,
}
files["targets/*"] = {
read_globals = {
"class",
"config",
"defaults",
"device",
"env",
"exec",
"exec_capture",
"exec_capture_raw",
"exec_raw",
"factory_image",
"include",
"istrue",
"no_opkg",
"packages",
"sysupgrade_image",
"try_config",
},
}
files["package/features"] = {
read_globals = {
"_",
"feature",
"when",
},
}

16
.readthedocs.yml Normal file
View File

@ -0,0 +1,16 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.8
install:
- requirements: docs/requirements.txt

53
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,53 @@
Contribution Guidelines
=======================
Because Gluon is such a universal software package that is used by several
different communities with different expectations and requirements, it is both
essential and difficult to have contributions from the communities. While they
are sometimes necessary to adapt Gluon to the needs of the communities, they
also have to be adaptable enough to fit as many needs as possible. On the other
hands, very special needs are better addressed in [packages] in community
repositories, because the Gluon maintainers would not use or test them and
thus couldn't do their "job" of maintaining them.
To ease the work for the maintainers and to reduce the frustration of
contributors, please adhere to the following guidelines:
Discuss first, build later
--------------------------
If you have some non-trivial enhancement like a new package, some modification
of what is announced by a node, it is often best to first discuss the precise
solution first. The maintainers might have hints as to how a solution could be
implemented easiest, point out solutions how the same thing can already be done
using other parts or why the proposed change breaks other parts of the system.
They might even refuse the idea altogether - after all, they have to sleep well
after merging the changes, too.
The preferred way to discuss in the IRC channel ([#gluon] on irc.hackint.org)
or on the [mailing list], however, you can also open a new issue on Github to
discuss there. We maintain a [list of rejected features] and we'd like to
kindly ask you to review it first. In general, looking for duplicates may save
you some time.
Develop on top of master
------------------------
If you are not developing something specific to a release (like for example a
security fix to a feature that got completely rewritten since the release),
develop it on top of the master branch. New features and even feature changes
aren't usually backported to old releases, but will be included in the upcoming
release, which will be built from master.
Use descriptive commit messages
-------------------------------
If you modify a single package, start the first line of your commit message
with the package name followed by a colon. The first line should be enough to
identify the commit a week later and still know roughly what it did. If you
fix some bug, detail in the remaining commit message exactly how it could be
triggered and what you did to fix it. If in question, have a glance at the
existing commit messages to get the idea.
[packages]: https://gluon.readthedocs.io/en/latest/user/site.html#packages
[#gluon]: https://webirc.hackint.org/#gluon
[mailing list]: mailto:gluon@luebeck.freifunk.net
[list of rejected features]: https://github.com/freifunk-gluon/gluon/issues?q=label%3A%222.+status%3A+rejected%22

105
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,105 @@
script {
NOW=java.time.LocalDateTime.now()
BRANCH="experimental"
RELEASE="${BRANCH}-${NOW}"
echo "Build release ${RELEASE}"
MAKE_OPTS="GLUON_RELEASE=${RELEASE} GLUON_AUTOUPDATER_BRANCH=${BRANCH} GLUON_AUTOUPDATER_ENABLED=1"
}
int NUM_JOBS = 8
List TARGETS = ['x86-64', 'ath79-generic']
/*[
'ath79-generic',
'ath79-nand',
'bcm27xx-bcm2708',
'bcm27xx-bcm2709',
'ipq40xx-generic',
'ipq806x-generic',
'lantiq-xrx200',
'lantiq-xway',
'mediatek-mt7622',
'mpc85xx-p1020',
'ramips-mt7620',
'ramips-mt7621',
'ramips-mt76x8',
'rockchip-armv8',
'sunxi-cortexa7',
'x86-64',
'x86-geode',
'x86-generic',
]*/
node {
stage ('Build') {
for (arch in TARGETS) {
node {
stage("Build ${arch}") {
git branch: BRANCH, url: 'https://git.dezentrale.cloud/alex/gluon-firmware.git'
sh 'git submodule update --init --recursive'
sh "make update"
sh "make -j${NUM_JOBS} GLUON_TARGET=${arch} ${MAKE_OPTS} || make -j1 V=s GLUON_TARGET=${arch} ${MAKE_OPTS}"
archiveArtifacts artifacts: 'output/**', followSymlinks: false
}
}
}
}
}
/*pipeline {
agent none
stages {
stage('Build') {
matrix {
agent any
axes {
axis {
name 'GLUON_TARGET'
values 'x86-64'
'ath79-generic',
'ath79-nand',
'bcm27xx-bcm2708',
'bcm27xx-bcm2709',
'ipq40xx-generic',
'ipq806x-generic',
'lantiq-xrx200',
'lantiq-xway',
'mediatek-mt7622',
'mpc85xx-p1020',
'ramips-mt7620',
'ramips-mt7621',
'ramips-mt76x8',
'rockchip-armv8',
'sunxi-cortexa7',
'x86-64',
'x86-geode',
'x86-generic'
}
}
stages {
stage("Build") {
steps {
// git(branch: "${env.BRANCH_NAME}", url: "https://git.dezentrale.cloud/Freifunk-Leipzig/gluon-firmware.git")
sh "make update"
sh "make -j${NUM_JOBS} GLUON_TARGET=${GLUON_TARGET} ${MAKE_OPTS} || make -j1 V=s GLUON_TARGET=${GLUON_TARGET} ${MAKE_OPTS}"
}
}
}
post {
always { archiveArtifacts artifacts: 'output/**', fingerprint: true }
}
}
}
stage("Sign") {
steps {
echo "Sign"
}
}
}
}*/

11
LICENSE
View File

@ -1,7 +1,7 @@
The code of Project Gluon may be distributed under the following terms, unless
noted otherwise in indiviual files or subtrees.
noted otherwise in individual files or subtrees.
Copyright (c) 2013, Project Gluon
Copyright (c) 2013-2021, Project Gluon
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -25,9 +25,10 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
OpenWRT is licensed under the terms of the GNU General Public License Version 2,
which can be found under openwrt/LICENSE after the openwrt submodule has been
obtained. This applies to the following submodules:
OpenWrt is licensed under the terms of the GNU General Public License Version 2,
which can be found at openwrt/LICENSE after the OpenWrt repository has been
obtained. This applies to the following repositories:
* openwrt
* packages/openwrt
* packages/routing

526
Makefile
View File

@ -4,411 +4,215 @@ LC_ALL:=C
LANG:=C
export LC_ALL LANG
empty:=
space:= $(empty) $(empty)
.SHELLFLAGS = -ec
GLUONMAKE_EARLY = $(SUBMAKE) -C $(GLUON_ORIGOPENWRTDIR) -f $(GLUONDIR)/Makefile GLUON_TOOLS=0
GLUONMAKE = $(SUBMAKE) -C $(GLUON_OPENWRTDIR) -f $(GLUONDIR)/Makefile
# check for spaces & resolve possibly relative paths
define mkabspath
ifneq (1,$(words [$($(1))]))
$$(error $(1) must not contain spaces)
endif
override $(1) := $(abspath $($(1)))
endef
ifneq ($(OPENWRT_BUILD),1)
escape = '$(subst ','\'',$(1))'
GLUONDIR:=${CURDIR}
GLUON_SITEDIR ?= site
$(eval $(call mkabspath,GLUON_SITEDIR))
include $(GLUONDIR)/include/gluon.mk
$(GLUON_SITEDIR)/site.mk:
$(error No site configuration was found. Please check out a site configuration to $(GLUON_SITEDIR))
TOPDIR:=$(GLUON_ORIGOPENWRTDIR)
export TOPDIR
include $(GLUON_SITEDIR)/site.mk
GLUON_RELEASE ?= $(error GLUON_RELEASE not set. GLUON_RELEASE can be set in site.mk or on the command line)
GLUON_DEPRECATED ?= $(error GLUON_DEPRECATED not set. Please consult the documentation)
ifneq ($(GLUON_BRANCH),)
$(warning *** Warning: GLUON_BRANCH has been deprecated, please set GLUON_AUTOUPDATER_BRANCH and GLUON_AUTOUPDATER_ENABLED instead.)
GLUON_AUTOUPDATER_BRANCH ?= $(GLUON_BRANCH)
GLUON_AUTOUPDATER_ENABLED ?= 1
endif
GLUON_AUTOUPDATER_ENABLED ?= 0
# initialize (possibly already user set) directory variables
GLUON_TMPDIR ?= tmp
GLUON_OUTPUTDIR ?= output
GLUON_IMAGEDIR ?= $(GLUON_OUTPUTDIR)/images
GLUON_PACKAGEDIR ?= $(GLUON_OUTPUTDIR)/packages
GLUON_DEBUGDIR ?= $(GLUON_OUTPUTDIR)/debug
GLUON_TARGETSDIR ?= targets
GLUON_PATCHESDIR ?= patches
$(eval $(call mkabspath,GLUON_TMPDIR))
$(eval $(call mkabspath,GLUON_OUTPUTDIR))
$(eval $(call mkabspath,GLUON_IMAGEDIR))
$(eval $(call mkabspath,GLUON_PACKAGEDIR))
$(eval $(call mkabspath,GLUON_TARGETSDIR))
$(eval $(call mkabspath,GLUON_PATCHESDIR))
GLUON_MULTIDOMAIN ?= 0
GLUON_AUTOREMOVE ?= 0
GLUON_DEBUG ?= 0
GLUON_MINIFY ?= 1
# Can be overridden via environment/command line/... to use the Gluon
# build system for non-Gluon builds
define GLUON_BASE_FEEDS ?=
src-link gluon_base ../../package
endef
GLUON_VARS = \
GLUON_RELEASE GLUON_REGION GLUON_MULTIDOMAIN GLUON_AUTOREMOVE GLUON_DEBUG GLUON_MINIFY GLUON_DEPRECATED \
GLUON_DEVICES GLUON_TARGETSDIR GLUON_PATCHESDIR GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR GLUON_DEBUGDIR \
GLUON_SITEDIR GLUON_RELEASE GLUON_AUTOUPDATER_BRANCH GLUON_AUTOUPDATER_ENABLED GLUON_LANGS GLUON_BASE_FEEDS \
GLUON_TARGET BOARD SUBTARGET
unexport $(GLUON_VARS)
GLUON_ENV = $(foreach var,$(GLUON_VARS),$(var)=$(call escape,$($(var))))
show-release:
@echo '$(GLUON_RELEASE)'
update: FORCE
$(GLUONDIR)/scripts/update.sh
$(GLUONDIR)/scripts/patch.sh
patch: FORCE
$(GLUONDIR)/scripts/patch.sh
unpatch: FORCE
$(GLUONDIR)/scripts/unpatch.sh
@
export $(GLUON_ENV)
scripts/update.sh
scripts/patch.sh
scripts/feeds.sh
update-patches: FORCE
$(GLUONDIR)/scripts/update.sh
$(GLUONDIR)/scripts/update-patches.sh
$(GLUONDIR)/scripts/patch.sh
@
export $(GLUON_ENV)
scripts/update.sh
scripts/update-patches.sh
scripts/patch.sh
-include $(TOPDIR)/include/host.mk
refresh-patches: FORCE
@
export $(GLUON_ENV)
scripts/update.sh
scripts/patch.sh
scripts/update-patches.sh
_SINGLE=export MAKEFLAGS=$(space);
override OPENWRT_BUILD=1
override GLUON_TOOLS=1
GREP_OPTIONS=
export OPENWRT_BUILD GLUON_TOOLS GREP_OPTIONS
-include $(TOPDIR)/include/debug.mk
-include $(TOPDIR)/include/depends.mk
include $(GLUONDIR)/include/toplevel.mk
update-feeds: FORCE
@$(GLUON_ENV) scripts/feeds.sh
include $(GLUONDIR)/targets/targets.mk
GLUON_TARGETS :=
CheckTarget := [ -n '$(GLUON_TARGET)' -a -n '$(GLUON_TARGET_$(GLUON_TARGET)_BOARD)' -a -n '$(GLUON_TARGET_$(GLUON_TARGET)_SUBTARGET)' ] \
|| (echo -e 'Please set GLUON_TARGET to a valid target. Gluon supports the following targets:$(subst $(space),\n * ,$(GLUON_TARGETS))'; false)
CheckExternal := test -d $(GLUON_ORIGOPENWRTDIR) || (echo 'You don'"'"'t seem to have obtained the external repositories needed by Gluon; please call `make update` first!'; false)
prepare-target: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) prepare-target
all: prepare-target
+@$(GLUONMAKE) prepare
+@$(GLUONMAKE) images
prepare: prepare-target
+@$(GLUONMAKE) $@
clean download images: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
toolchain/% package/% target/% image/%: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
manifest: FORCE
@[ -n '$(GLUON_BRANCH)' ] || (echo 'Please set GLUON_BRANCH to create a manifest.'; false)
@echo '$(GLUON_PRIORITY)' | grep -qE '^([0-9]*\.)?[0-9]+$$' || (echo 'Please specify a numeric value for GLUON_PRIORITY to create a manifest.'; false)
@$(CheckExternal)
( \
echo 'BRANCH=$(GLUON_BRANCH)' && \
echo 'DATE=$(shell $(GLUON_ORIGOPENWRTDIR)/staging_dir/host/bin/lua $(GLUONDIR)/scripts/rfc3339date.lua)' && \
echo 'PRIORITY=$(GLUON_PRIORITY)' && \
echo \
) > $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp
+($(foreach GLUON_TARGET,$(GLUON_TARGETS), \
( [ ! -e $(BOARD_BUILDDIR)/prepared ] || ( $(GLUONMAKE) manifest GLUON_TARGET='$(GLUON_TARGET)' V=s$(OPENWRT_VERBOSE) ) ) && \
) :)
mkdir -p $(GLUON_IMAGEDIR)/sysupgrade
mv $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp $(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest
dirclean : FORCE
for dir in build_dir dl staging_dir tmp; do \
rm -rf $(GLUON_ORIGOPENWRTDIR)/$$dir; \
done
rm -rf $(GLUON_BUILDDIR) $(GLUON_IMAGEDIR)
else
TOPDIR=${CURDIR}
export TOPDIR
include rules.mk
include $(GLUONDIR)/include/gluon.mk
include $(INCLUDE_DIR)/host.mk
include $(INCLUDE_DIR)/depends.mk
include $(INCLUDE_DIR)/subdir.mk
include package/Makefile
include tools/Makefile
include toolchain/Makefile
include target/Makefile
PROFILES :=
PROFILE_PACKAGES :=
define Profile
$(eval $(call Profile/Default))
$(eval $(call Profile/$(1)))
define GluonTarget
gluon_target := $(1)$$(if $(2),-$(2))
GLUON_TARGETS += $$(gluon_target)
GLUON_TARGET_$$(gluon_target)_BOARD := $(1)
GLUON_TARGET_$$(gluon_target)_SUBTARGET := $(2)
endef
define GluonProfile
PROFILES += $(1)
PROFILE_PACKAGES += $(filter-out -%,$(2) $(GLUON_$(1)_SITE_PACKAGES))
GLUON_$(1)_DEFAULT_PACKAGES := $(2)
GLUON_$(1)_FACTORY_SUFFIX := -squashfs-factory
GLUON_$(1)_SYSUPGRADE_SUFFIX := -squashfs-sysupgrade
GLUON_$(1)_FACTORY_EXT := .bin
GLUON_$(1)_SYSUPGRADE_EXT := .bin
GLUON_$(1)_MODELS :=
endef
define GluonProfileFactorySuffix
GLUON_$(1)_FACTORY_SUFFIX := $(2)
GLUON_$(1)_FACTORY_EXT := $(3)
endef
define GluonProfileSysupgradeSuffix
GLUON_$(1)_SYSUPGRADE_SUFFIX := $(2)
GLUON_$(1)_SYSUPGRADE_EXT := $(3)
endef
define GluonModel
GLUON_$(1)_MODELS += $(3)
GLUON_$(1)_MODEL_$(3) := $(2)
endef
include $(GLUON_TARGETSDIR)/targets.mk
include $(GLUONDIR)/targets/targets.mk
include $(GLUONDIR)/targets/$(GLUON_TARGET)/profiles.mk
OPENWRTMAKE = $(MAKE) -C openwrt
BOARD := $(GLUON_TARGET_$(GLUON_TARGET)_BOARD)
override SUBTARGET := $(GLUON_TARGET_$(GLUON_TARGET)_SUBTARGET)
target_prepared_stamp := $(BOARD_BUILDDIR)/target-prepared
gluon_prepared_stamp := $(BOARD_BUILDDIR)/prepared
SUBTARGET := $(GLUON_TARGET_$(GLUON_TARGET)_SUBTARGET)
include $(INCLUDE_DIR)/target.mk
prereq: FORCE
+$(NO_TRACE_MAKE) prereq
gluon-tools: FORCE
+$(GLUONMAKE_EARLY) tools/sed/install
+$(GLUONMAKE_EARLY) package/lua/host/install
prepare-tmpinfo: FORCE
mkdir -p tmp/info
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk $(TOPDIR)/overlay/*/*.mk" SCAN_EXTRA=""
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1"
for type in package target; do \
f=tmp/.$${type}info; t=tmp/.config-$${type}.in; \
[ "$$t" -nt "$$f" ] || ./scripts/metadata.pl $${type}_config "$$f" > "$$t" || { rm -f "$$t"; echo "Failed to build $$t"; false; break; }; \
define CheckTarget
if [ -z '$(BOARD)' ]; then
echo 'Please set GLUON_TARGET to a valid target. Gluon supports the following targets:'
for target in $(GLUON_TARGETS); do
echo " * $$target"
done
[ tmp/.config-feeds.in -nt tmp/.packagefeeds ] || ./scripts/feeds feed_config > tmp/.config-feeds.in
./scripts/metadata.pl package_mk tmp/.packageinfo > tmp/.packagedeps || { rm -f tmp/.packagedeps; false; }
./scripts/metadata.pl package_feeds tmp/.packageinfo > tmp/.packagefeeds || { rm -f tmp/.packagefeeds; false; }
touch $(TOPDIR)/tmp/.build
exit 1
fi
endef
feeds: FORCE
rm -rf $(TOPDIR)/package/feeds
mkdir $(TOPDIR)/package/feeds
[ ! -f $(GLUON_SITEDIR)/modules ] || . $(GLUON_SITEDIR)/modules && for feed in $$GLUON_SITE_FEEDS; do ln -s ../../../packages/$$feed $(TOPDIR)/package/feeds/$$feed; done
ln -s ../../../package $(TOPDIR)/package/feeds/gluon
. $(GLUONDIR)/modules && for feed in $$GLUON_FEEDS; do ln -s ../../../packages/$$feed $(TOPDIR)/package/feeds/module_$$feed; done
+$(GLUONMAKE_EARLY) prepare-tmpinfo
define CheckSite
if ! GLUON_SITEDIR='$(GLUON_SITEDIR)' GLUON_SITE_CONFIG='$(1).conf' $(LUA) -e 'assert(dofile("scripts/site_config.lua")(os.getenv("GLUON_SITE_CONFIG")))'; then
echo 'Your site configuration ($(1).conf) did not pass validation'
exit 1
fi
endef
config: FORCE
+$(NO_TRACE_MAKE) scripts/config/conf OPENWRT_BUILD=0
+$(GLUONMAKE) prepare-tmpinfo
( \
cat $(GLUONDIR)/include/config $(GLUONDIR)/targets/$(GLUON_TARGET)/config; \
echo 'CONFIG_BUILD_SUFFIX="gluon-$(GLUON_TARGET)"'; \
echo '$(patsubst %,CONFIG_PACKAGE_%=m,$(sort $(filter-out -%,$(GLUON_DEFAULT_PACKAGES) $(GLUON_SITE_PACKAGES) $(PROFILE_PACKAGES))))' \
| sed -e 's/ /\n/g'; \
echo '$(patsubst %,CONFIG_GLUON_LANG_%=y,$(GLUON_LANGS))' \
| sed -e 's/ /\n/g'; \
) > $(BOARD_BUILDDIR)/config.tmp
scripts/config/conf --defconfig=$(BOARD_BUILDDIR)/config.tmp Config.in
mv .config $(BOARD_BUILDDIR)/config
echo 'CONFIG_ALL_KMODS=y' >> $(BOARD_BUILDDIR)/config.tmp
scripts/config/conf --defconfig=$(BOARD_BUILDDIR)/config.tmp Config.in
mv .config $(BOARD_BUILDDIR)/config-allmods
cp $(BOARD_BUILDDIR)/config .config
prepare-target: FORCE
rm $(GLUON_OPENWRTDIR)/tmp || true
mkdir -p $(GLUON_OPENWRTDIR)/tmp
for dir in build_dir dl staging_dir; do \
mkdir -p $(GLUON_ORIGOPENWRTDIR)/$$dir; \
done
for link in build_dir config Config.in dl include Makefile package rules.mk scripts staging_dir target toolchain tools; do \
ln -sf $(GLUON_ORIGOPENWRTDIR)/$$link $(GLUON_OPENWRTDIR); \
list-targets: FORCE
@for target in $(GLUON_TARGETS); do
echo "$$target"
done
+$(GLUONMAKE_EARLY) feeds
+$(GLUONMAKE_EARLY) gluon-tools
+$(GLUONMAKE) config
touch $(target_prepared_stamp)
lint: lint-lua lint-sh
$(target_prepared_stamp):
+$(GLUONMAKE_EARLY) prepare-target
lint-lua: FORCE
@scripts/lint-lua.sh
maybe-prepare-target: $(target_prepared_stamp)
$(BUILD_DIR)/.prepared: Makefile
@mkdir -p $$(dirname $@)
@touch $@
$(toolchain/stamp-install): $(tools/stamp-install)
$(package/stamp-compile): $(package/stamp-cleanup)
lint-sh: FORCE
@scripts/lint-sh.sh
clean: FORCE
+$(SUBMAKE) clean
rm -f $(gluon_prepared_stamp)
LUA := openwrt/staging_dir/hostpkg/bin/lua
$(LUA):
+@
scripts/module_check.sh
[ -e openwrt/.config ] || $(OPENWRTMAKE) defconfig
$(OPENWRTMAKE) tools/install
$(OPENWRTMAKE) package/lua/host/compile
export SHA512SUM := $(GLUONDIR)/scripts/sha512sum.sh
config: $(LUA) FORCE
+@
download: FORCE
+$(SUBMAKE) tools/download
+$(SUBMAKE) toolchain/download
+$(SUBMAKE) package/download
+$(SUBMAKE) target/download
toolchain: $(toolchain/stamp-install) $(tools/stamp-install)
include $(INCLUDE_DIR)/kernel.mk
kernel: FORCE
+$(NO_TRACE_MAKE) -C $(TOPDIR)/target/linux/$(BOARD) -f $(GLUONDIR)/include/Makefile.target $(LINUX_DIR)/.image TARGET_BUILD=1
+$(NO_TRACE_MAKE) -C $(TOPDIR)/target/linux/$(BOARD) -f $(GLUONDIR)/include/Makefile.target $(LINUX_DIR)/.modules TARGET_BUILD=1
packages: $(package/stamp-compile)
$(_SINGLE)$(SUBMAKE) -r package/index
prepare-image: FORCE
rm -rf $(BOARD_KDIR)
mkdir -p $(BOARD_KDIR)
cp $(KERNEL_BUILD_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf $(BOARD_KDIR)/
+$(SUBMAKE) -C $(TOPDIR)/target/linux/$(BOARD)/image -f $(GLUONDIR)/include/Makefile.image prepare KDIR="$(BOARD_KDIR)"
prepare: FORCE
@$(STAGING_DIR_HOST)/bin/lua $(GLUONDIR)/package/gluon-core/files/usr/lib/lua/gluon/site_config.lua \
|| (echo 'Your site configuration did not pass validation.'; false)
mkdir -p $(GLUON_IMAGEDIR) $(BOARD_BUILDDIR)
echo 'src packages file:../openwrt/bin/$(BOARD)/packages' > $(BOARD_BUILDDIR)/opkg.conf
+$(GLUONMAKE) toolchain
+$(GLUONMAKE) kernel
+$(GLUONMAKE) packages
+$(GLUONMAKE) prepare-image
echo "$(GLUON_RELEASE)" > $(gluon_prepared_stamp)
$(gluon_prepared_stamp):
+$(GLUONMAKE) prepare
include $(INCLUDE_DIR)/package-ipkg.mk
# override variables from rules.mk
PACKAGE_DIR = $(GLUON_OPENWRTDIR)/bin/$(BOARD)/packages
PROFILE_BUILDDIR = $(BOARD_BUILDDIR)/profiles/$(PROFILE)
PROFILE_KDIR = $(PROFILE_BUILDDIR)/kernel
BIN_DIR = $(PROFILE_BUILDDIR)/images
TARGET_DIR = $(PROFILE_BUILDDIR)/root
PREPARED_RELEASE = $$(cat $(gluon_prepared_stamp))
IMAGE_PREFIX = gluon-$(GLUON_SITE_CODE)-$(PREPARED_RELEASE)
OPKG:= \
IPKG_TMP="$(TMP_DIR)/ipkgtmp" \
IPKG_INSTROOT="$(TARGET_DIR)" \
IPKG_CONF_DIR="$(TMP_DIR)" \
IPKG_OFFLINE_ROOT="$(TARGET_DIR)" \
$(STAGING_DIR_HOST)/bin/opkg \
-f $(BOARD_BUILDDIR)/opkg.conf \
--cache $(TMP_DIR)/dl \
--offline-root $(TARGET_DIR) \
--force-postinstall \
--add-dest root:/ \
--add-arch all:100 \
--add-arch $(ARCH_PACKAGES):200
EnableInitscript = ! grep -q '\#!/bin/sh /etc/rc.common' $(1) || bash ./etc/rc.common $(1) enable
enable_initscripts: FORCE
cd $(TARGET_DIR) && ( export IPKG_INSTROOT=$(TARGET_DIR); \
$(foreach script,$(wildcard $(TARGET_DIR)/etc/init.d/*), \
$(call EnableInitscript,$(script)); \
) : \
scripts/module_check.sh
$(CheckTarget)
$(foreach conf,site $(patsubst $(GLUON_SITEDIR)/%.conf,%,$(wildcard $(GLUON_SITEDIR)/domains/*.conf)),\
$(call CheckSite,$(conf)); \
)
$(GLUON_ENV) $(LUA) scripts/target_config.lua > openwrt/.config
$(OPENWRTMAKE) defconfig
$(GLUON_ENV) $(LUA) scripts/target_config_check.lua
# Generate package list
$(eval $(call merge-lists,INSTALL_PACKAGES,DEFAULT_PACKAGES GLUON_DEFAULT_PACKAGES GLUON_SITE_PACKAGES GLUON_$(PROFILE)_DEFAULT_PACKAGES GLUON_$(PROFILE)_SITE_PACKAGES))
package_install: FORCE
$(OPKG) update
$(OPKG) install $(PACKAGE_DIR)/libc_*.ipk
$(OPKG) install $(PACKAGE_DIR)/kernel_*.ipk
all: config
+@
$(GLUON_ENV) $(LUA) scripts/clean_output.lua
$(OPENWRTMAKE)
$(GLUON_ENV) $(LUA) scripts/copy_output.lua
$(OPKG) install $(INSTALL_PACKAGES)
+$(GLUONMAKE) enable_initscripts
clean download: config
+@$(OPENWRTMAKE) $@
rm -f $(TARGET_DIR)/usr/lib/opkg/lists/* $(TARGET_DIR)/tmp/opkg.lock
dirclean: FORCE
+@
[ -e openwrt/.config ] || $(OPENWRTMAKE) defconfig
$(OPENWRTMAKE) dirclean
rm -rf $(GLUON_TMPDIR) $(GLUON_OUTPUTDIR)
ifeq ($(GLUON_OPKG_CONFIG),1)
include $(INCLUDE_DIR)/version.mk
endif
manifest: $(LUA) FORCE
@
[ '$(GLUON_AUTOUPDATER_BRANCH)' ] || (echo 'Please set GLUON_AUTOUPDATER_BRANCH to create a manifest.'; false)
echo '$(GLUON_PRIORITY)' | grep -qE '^([0-9]*\.)?[0-9]+$$' || (echo 'Please specify a numeric value for GLUON_PRIORITY to create a manifest.'; false)
scripts/module_check.sh
opkg_config: FORCE
cp $(GLUON_OPENWRTDIR)/package/system/opkg/files/opkg.conf $(TARGET_DIR)/etc/opkg.conf
for d in base luci packages routing telephony management oldpackages; do \
echo "src/gz %n_$$d %U/$$d" >> $(TARGET_DIR)/etc/opkg.conf; \
(
export $(GLUON_ENV)
echo 'BRANCH=$(GLUON_AUTOUPDATER_BRANCH)'
echo "DATE=$$($(LUA) scripts/rfc3339date.lua)"
echo 'PRIORITY=$(GLUON_PRIORITY)'
echo
for target in $(GLUON_TARGETS); do
$(LUA) scripts/generate_manifest.lua "$$target"
done
$(VERSION_SED) $(TARGET_DIR)/etc/opkg.conf
) > 'tmp/$(GLUON_AUTOUPDATER_BRANCH).manifest.tmp'
mkdir -p '$(GLUON_IMAGEDIR)/sysupgrade'
mv 'tmp/$(GLUON_AUTOUPDATER_BRANCH).manifest.tmp' '$(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_AUTOUPDATER_BRANCH).manifest'
image: FORCE
rm -rf $(TARGET_DIR) $(BIN_DIR) $(PROFILE_KDIR)
mkdir -p $(TARGET_DIR) $(BIN_DIR) $(TARGET_DIR)/tmp $(GLUON_IMAGEDIR)/factory $(GLUON_IMAGEDIR)/sysupgrade
cp -r $(BOARD_KDIR) $(PROFILE_KDIR)
FORCE: ;
+$(GLUONMAKE) package_install
+$(GLUONMAKE) opkg_config GLUON_OPKG_CONFIG=1
$(call Image/mkfs/prepare)
$(_SINGLE)$(NO_TRACE_MAKE) -C $(TOPDIR)/target/linux/$(BOARD)/image install TARGET_BUILD=1 IB=1 IMG_PREFIX=gluon \
PROFILE="$(PROFILE)" KDIR="$(PROFILE_KDIR)" TARGET_DIR="$(TARGET_DIR)" BIN_DIR="$(BIN_DIR)" TMP_DIR="$(TMP_DIR)"
$(foreach model,$(GLUON_$(PROFILE)_MODELS), \
$(if $(GLUON_$(PROFILE)_SYSUPGRADE_EXT), \
rm -f $(GLUON_IMAGEDIR)/sysupgrade/gluon-*-$(model)-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_EXT) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))$(GLUON_$(PROFILE)_SYSUPGRADE_SUFFIX)$(GLUON_$(PROFILE)_SYSUPGRADE_EXT) $(GLUON_IMAGEDIR)/sysupgrade/$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(PROFILE)_SYSUPGRADE_EXT) && \
) \
$(if $(GLUON_$(PROFILE)_FACTORY_EXT), \
rm -f $(GLUON_IMAGEDIR)/factory/gluon-*-$(model)$(GLUON_$(PROFILE)_FACTORY_EXT) && \
cp $(BIN_DIR)/gluon-$(GLUON_$(PROFILE)_MODEL_$(model))$(GLUON_$(PROFILE)_FACTORY_SUFFIX)$(GLUON_$(PROFILE)_FACTORY_EXT) $(GLUON_IMAGEDIR)/factory/$(IMAGE_PREFIX)-$(model)$(GLUON_$(PROFILE)_FACTORY_EXT) && \
) \
) :
image/%: $(gluon_prepared_stamp)
+$(GLUONMAKE) image PROFILE="$(patsubst image/%,%,$@)" V=s$(OPENWRT_VERBOSE)
call_image/%: FORCE
+$(GLUONMAKE) $(patsubst call_image/%,image/%,$@)
images: $(patsubst %,call_image/%,$(PROFILES)) ;
manifest: FORCE
( \
cd $(GLUON_IMAGEDIR)/sysupgrade; \
$(foreach profile,$(PROFILES), \
$(foreach model,$(GLUON_$(profile)_MODELS), \
file="$(IMAGE_PREFIX)-$(model)-sysupgrade$(GLUON_$(profile)_SYSUPGRADE_EXT)"; \
[ -e "$$file" ] && echo '$(model)' "$(PREPARED_RELEASE)" "$$($(SHA512SUM) "$$file")" "$$file"; \
) \
) : \
) >> $(GLUON_BUILDDIR)/$(GLUON_BRANCH).manifest.tmp
.PHONY: all images prepare clean gluon-tools manifest
endif
.PHONY: FORCE
.NOTPARALLEL:
.ONESHELL:

View File

@ -1,35 +1,49 @@
Documentation (incomplete at this time, contribute if you can!) may be found at
http://gluon.readthedocs.org/
[![Build Gluon](https://github.com/freifunk-gluon/gluon/actions/workflows/build-gluon.yml/badge.svg?branch=master)](https://github.com/freifunk-gluon/gluon/actions/workflows/build-gluon.yml)
[![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://opensource.org/licenses/BSD-2-Clause)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/freifunk-gluon/gluon?sort=semver)](https://github.com/freifunk-gluon/gluon/releases/latest)
# Gluon
Gluon is a firmware framework to build preconfigured OpenWrt images for public mesh networks.
## Getting started
We have a huge amount of documentation over at https://gluon.readthedocs.io/.
If you're new to Gluon and ready to get your feet wet, have a look at the
[Getting Started Guide](http://gluon.readthedocs.org/en/latest/user/getting_started.html).
[Getting Started Guide](https://gluon.readthedocs.io/en/latest/user/getting_started.html).
**Gluon IRC channel: `#gluon` in [hackint](http://hackint.org/)**
Gluon's developers frequent an IRC chatroom at [#gluon](ircs://irc.hackint.org/#gluon)
on [hackint](https://hackint.org/). There is also a [webchat](https://webirc.hackint.org/#irc://irc.hackint.org/#gluon)
that allows for uncomplicated access from within your browser.
## Issues & Feature requests
Before opening an issue make sure to read check whether any existing issues
Before opening an issue, make sure to check whether any existing issues
(open or closed) match. If you're suggesting a new feature, drop by on IRC or
our mailinglist to discuss it first.
We maintain a [Roadmap](https://github.com/freifunk-gluon/gluon/wiki/Roadmap) for
the future development of Gluon.
## Use a release!
Please refrain from using the master branch for anything else but development purposes!
Use the most recent release instead. You can list all relaseses by running `git branch -a`
and switch to one by running `git checkout v2015.1 && make update`.
Please refrain from using the `master` branch for anything else but development purposes!
Use the most recent release instead. You can list all releases by running `git tag`
and switch to one by running `git checkout v2021.1 && make update`.
If you're using the autoupdater, do not autoupdate nodes with anything but releases.
If you upgrade using random master commits the nodes *will break* eventually.
If you upgrade using random master commits the nodes *might break* eventually.
## Mailinglist
To subscribe to the list, send a message to:
gluon-subscribe@luebeck.freifunk.net
gluon+subscribe@luebeck.freifunk.net
To remove your address from the list, just send a message to
the address in the `List-Unsubscribe` header of any list
message. If you haven't changed addresses since subscribing,
you can also send a message to:
gluon-unsubscribe@luebeck.freifunk.net
gluon+unsubscribe@luebeck.freifunk.net

30
contrib/Dockerfile Normal file
View File

@ -0,0 +1,30 @@
FROM debian:buster-slim
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
file \
git \
subversion \
python3 \
build-essential \
gawk \
unzip \
libncurses5-dev \
zlib1g-dev \
libssl-dev \
libelf-dev \
wget \
rsync \
time \
qemu-utils \
ecdsautils \
lua-check \
shellcheck \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -d /gluon gluon
USER gluon
VOLUME /gluon
WORKDIR /gluon

View File

@ -0,0 +1,67 @@
#!/usr/bin/env python3
import sys
ACTIONS_HEAD = """
# Update this file after adding/removing/renaming a target by running
# `make list-targets BROKEN=1 | ./contrib/actions/generate-actions.py > ./.github/workflows/build-gluon.yml`
name: Build Gluon
on:
push:
branches:
- master
- next*
- v20*
paths:
- "modules"
- "Makefile"
- "scripts/**"
- "package/**"
- "patches/**"
- "targets/**"
- ".github/workflows/build-gluon.yml"
pull_request:
types: [opened, synchronize, reopened]
paths:
- "modules"
- "Makefile"
- "scripts/**"
- "package/**"
- "patches/**"
- "targets/**"
- ".github/workflows/build-gluon.yml"
jobs:
build_firmware:
strategy:
fail-fast: false
matrix:
target: [{matrix}]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
run: sudo contrib/actions/install-dependencies.sh
- name: Build
run: contrib/actions/run-build.sh ${{{{ matrix.target }}}}
- name: Archive build logs
if: ${{{{ !cancelled() }}}}
uses: actions/upload-artifact@v1
with:
name: ${{{{ matrix.target }}}}_logs
path: openwrt/logs
- name: Archive build output
uses: actions/upload-artifact@v1
with:
name: ${{{{ matrix.target }}}}_output
path: output
"""
targets = []
for target in sys.stdin:
targets.append(target.strip())
output = ACTIONS_HEAD.format(matrix=", ".join(targets))
print(output)

View File

@ -0,0 +1,8 @@
#!/bin/sh
set -e
apt-get -y update
apt-get -y install git subversion build-essential python gawk unzip libncurses5-dev zlib1g-dev libssl-dev wget time qemu-utils
apt-get -y clean
rm -rf /var/lib/apt/lists/*

13
contrib/actions/run-build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
set -e
export BROKEN=1
export GLUON_AUTOREMOVE=1
export GLUON_DEPRECATED=1
export GLUON_SITEDIR="contrib/ci/minimal-site"
export GLUON_TARGET=$1
export BUILD_LOG=1
make update
make -j2 V=s

82
contrib/ci/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,82 @@
pipeline {
agent none
environment {
GLUON_SITEDIR = "contrib/ci/minimal-site"
GLUON_TARGET = "x86-64"
BUILD_LOG = "1"
}
stages {
stage('lint') {
parallel {
stage('lint-lua') {
agent { label 'gluon-docker' }
steps {
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
sh 'make lint-lua'
}
}
stage('lint-sh') {
agent { label 'gluon-docker-v1' }
steps {
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
sh 'make lint-sh'
}
}
}
}
stage('docs') {
agent { label 'gluon-docker' }
steps {
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
sh 'make -C docs html'
}
}
stage('build') {
agent { label 'gluon-docker-v2' }
steps {
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
sh 'make update'
sh 'test -d /dl_cache && ln -s /dl_cache openwrt/dl || true'
timeout(time: 2, unit: "HOURS") {
sh 'make -j$(nproc) V=s'
}
stash includes: '**/output/images/factory/*-x86-64.img.gz', name: 'gluon-x86-64-factory'
}
}
stage('test') {
agent { label 'gluon-vmx' }
steps {
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
unstash 'gluon-x86-64-factory'
sh label: 'Unpack image', script: 'gunzip -cd ./output/images/factory/*x86-64*.img.gz > ./image.img'
sh label: 'Print python environment', script: 'python3 -m pip freeze'
script {
for (f in findFiles(glob: 'tests/*.py')) {
timeout(time: 10, unit: "MINUTES") {
sh label: "Test ${f.name}", script: "python3 tests/${f.name} --use-tmp-workdir"
}
}
}
}
}
}
}
/*
api-history:
Every time the build dependencies of gluon change, the version
every container has to be rebuilt. Therefore, we use Jenkins
labels which intoduce a version number which is documented here.
As soon, as you properly rebuilt your docker container, you
can notify lemoer, that you have updated your node.
- gluon-docker-v1:
- add shellcheck binary to the build environment
- gluon-docker-v2:
- add qemu-testlab testing, requires KVM virtualization support
- require rsync dependency to be able to build the next branch
- gluon-vmx
- splits the qemu testing from the gluon-docker-v2 label to accomodate
nodes without the vmx cpu flag
*/

View File

@ -0,0 +1,33 @@
FROM gluonmesh/build:latest
USER root
# this is needed to install default-jre-headless in debian slim images
RUN mkdir -p /usr/share/man/man1
RUN apt-get update && apt-get install -y default-jre-headless curl git netcat-openbsd python3 python3-pip qemu-system-x86 iproute2 openssh-client rsync
RUN python3 -m pip install jenkins-webapi sphinx sphinx_rtd_theme gluon-qemu-testlab==0.0.5
# Get docker-compose in the agent container
RUN mkdir -p /home/jenkins
RUN mkdir -p /var/lib/jenkins
RUN mkdir -p /remoting
RUN chown gluon /home/jenkins
RUN chown gluon /var/lib/jenkins
RUN chown gluon /remoting
# Start-up script to attach the slave to the master
ADD slave.py /var/lib/jenkins/slave.py
USER gluon
WORKDIR /home/jenkins
ENV JENKINS_URL "https://build.ffh.zone/"
ENV JENKINS_SLAVE_ADDRESS ""
ENV SLAVE_EXECUTORS "1"
ENV SLAVE_LABELS "docker"
ENV SLAVE_WORING_DIR ""
ENV CLEAN_WORKING_DIR "true"
CMD [ "python3", "-u", "/var/lib/jenkins/slave.py" ]

View File

@ -0,0 +1,41 @@
# Gluon CI using Jenkins
## Requirements
- Linux system
- with docker installed
- with Hardware Virtualisation (KVM Support)
- Verify using: `lscpu | grep vmx`
- If machine is virtualized host needs to load `kvm_intel` with `nested=1` option and cpuflags need to include `vmx`
## Architecture
![Screenshot from 2019-09-24 00-20-32](https://user-images.githubusercontent.com/601153/65468827-9edf2c80-de65-11e9-9fe0-56c3487719c3.png)
## Installation
You can support the gluon CI with your infrastructure:
1. You need to query @lemoer (freifunk@irrelefant.net) for credentials.
2. He will give you a `SLAVE_NAME` and a `SLAVE_SECRET` for your host.
3. Then go to your docker host and substitute the values for `SLAVE_NAME` and a `SLAVE_SECRET` in the following statements:
``` shell
git clone https://github.com/freifunk-gluon/gluon/
cd gluon/contrib/ci/jenkins-community-slave/
docker build -t gluon-jenkins .
mkdir /var/cache/openwrt_dl_cache/
chown 1000:1000 /var/cache/openwrt_dl_cache
echo "z /dev/kvm 0666 - kvm -" > /etc/tmpfiles.d/kvm.conf
systemd-tmpfiles --create
docker run --detach --restart always \
--env "SLAVE_NAME=whoareyou" \
--env "SLAVE_SECRET=changeme" \
--device /dev/kvm:/dev/kvm \
--volume /var/cache/openwrt_dl_cache/:/dl_cache \
gluon-jenkins
```
4. Check whether the instance is running correctly:
- Your node should appear [here](https://build.ffh.zone/label/gluon-docker/).
- When clicking on it, Jenkins should state "Agent is connected." like here:
![Screenshot from 2019-09-24 01-00-52](https://user-images.githubusercontent.com/601153/65469209-dac6c180-de66-11e9-9d62-0d1c3b6b940b.png)
5. **Your docker container needs to be rebuilt, when the build dependencies of gluon change. As soon as build dependencies have changed, the build dependency api level has to be raised.** After you rebuilt your docker container, notify @lemoer, so he can bump the versioning number.
## Backoff
- If @lemoer is not reachable, please be patient at first if possible. Otherwise contact info@hannover.freifunk.net or join the channel `#freifunkh` on hackint.

View File

@ -0,0 +1,103 @@
from jenkins import Jenkins, JenkinsError, NodeLaunchMethod
import os
import signal
import sys
import subprocess
import shutil
import requests
import time
slave_jar = '/var/lib/jenkins/slave.jar'
slave_name = os.environ['SLAVE_NAME'] if os.environ['SLAVE_NAME'] != '' else 'docker-slave-' + os.environ['HOSTNAME']
jnlp_url = os.environ['JENKINS_URL'] + '/computer/' + slave_name + '/slave-agent.jnlp'
slave_jar_url = os.environ['JENKINS_URL'] + '/jnlpJars/slave.jar'
print(slave_jar_url)
process = None
def clean_dir(dir):
for root, dirs, files in os.walk(dir):
for f in files:
os.unlink(os.path.join(root, f))
for d in dirs:
shutil.rmtree(os.path.join(root, d))
def slave_create(node_name, working_dir, executors, labels):
j = Jenkins(os.environ['JENKINS_URL'], os.environ['JENKINS_USER'], os.environ['JENKINS_PASS'])
j.node_create(node_name, working_dir, num_executors = int(executors), labels = labels, launcher = NodeLaunchMethod.JNLP)
def slave_delete(node_name):
j = Jenkins(os.environ['JENKINS_URL'], os.environ['JENKINS_USER'], os.environ['JENKINS_PASS'])
j.node_delete(node_name)
def slave_download(target):
if os.path.isfile(slave_jar):
os.remove(slave_jar)
r = requests.get(os.environ['JENKINS_URL'] + '/jnlpJars/slave.jar')
with open('/var/lib/jenkins/slave.jar', 'wb') as f:
f.write(r.content)
def slave_run(slave_jar, jnlp_url):
params = [ 'java', '-jar', slave_jar, '-jnlpUrl', jnlp_url ]
if os.environ['JENKINS_SLAVE_ADDRESS'] != '':
params.extend([ '-connectTo', os.environ['JENKINS_SLAVE_ADDRESS' ] ])
if os.environ['SLAVE_SECRET'] == '':
params.extend([ '-jnlpCredentials', os.environ['JENKINS_USER'] + ':' + os.environ['JENKINS_PASS'] ])
else:
params.extend([ '-secret', os.environ['SLAVE_SECRET'] ])
return subprocess.Popen(params, stdout=subprocess.PIPE)
def signal_handler(sig, frame):
if process != None:
process.send_signal(signal.SIGINT)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
def h():
print("ERROR!: please specify environment variables")
print("")
print('docker run -e "SLAVE_NAME=test" -e "SLAVE_SECRET=..." jenkins')
if os.environ.get('SLAVE_NAME') is None:
h()
sys.exit(1)
if os.environ.get('SLAVE_SECRET') is None:
h()
sys.exit(1)
def master_ready(url):
try:
r = requests.head(url, timeout=None)
return r.status_code == requests.codes.ok
except:
return False
while not master_ready(slave_jar_url):
print("Master not ready yet, sleeping for 10sec!")
time.sleep(10)
slave_download(slave_jar)
print('Downloaded Jenkins slave jar.')
if os.environ['SLAVE_WORING_DIR']:
os.setcwd(os.environ['SLAVE_WORING_DIR'])
if os.environ['CLEAN_WORKING_DIR'] == 'true':
clean_dir(os.getcwd())
print("Cleaned up working directory.")
if os.environ['SLAVE_NAME'] == '':
slave_create(slave_name, os.getcwd(), os.environ['SLAVE_EXECUTORS'], os.environ['SLAVE_LABELS'])
print('Created temporary Jenkins slave.')
process = slave_run(slave_jar, jnlp_url)
print('Started Jenkins slave with name "' + slave_name + '" and labels [' + os.environ['SLAVE_LABELS'] + '].')
process.wait()
print('Jenkins slave stopped.')
if os.environ['SLAVE_NAME'] == '':
slave_delete(slave_name)
print('Removed temporary Jenkins slave.')

View File

@ -0,0 +1 @@
../../../docs/site-example/i18n/

View File

@ -0,0 +1 @@
../../../docs/site-example/modules

View File

@ -0,0 +1,154 @@
-- This is an example site configuration for Gluon v2018.2+
--
-- Take a look at the documentation located at
-- https://gluon.readthedocs.io/ for details.
--
-- This configuration will not work as is. You're required to make
-- community specific changes to it!
{
-- Used for generated hostnames, e.g. freifunk-abcdef123456. (optional)
-- hostname_prefix = 'freifunk-',
-- Name of the community.
site_name = 'Continious Integration',
-- Shorthand of the community.
site_code = 'ci',
-- 32 bytes of random data, encoded in hexadecimal
-- This data must be unique among all sites and domains!
-- Can be generated using: echo $(hexdump -v -n 32 -e '1/1 "%02x"' </dev/urandom)
domain_seed = 'e9608c4ff338b920992d629190e9ff11049de1dfc3f299eac07792dfbcda341c',
-- Prefixes used within the mesh.
-- prefix6 is required, prefix4 can be omitted if next_node.ip4
-- is not set.
prefix4 = '10.0.0.0/20',
prefix6 = 'fd::/64',
-- Timezone of your community.
-- See https://openwrt.org/docs/guide-user/base-system/system_configuration#time_zones
timezone = 'CET-1CEST,M3.5.0,M10.5.0/3',
-- List of NTP servers in your community.
-- Must be reachable using IPv6!
-- ntp_servers = {'1.ntp.services.ffxx'},
-- Wireless regulatory domain of your community.
regdom = 'DE',
-- Wireless configuration for 2.4 GHz interfaces.
wifi24 = {
-- Wireless channel.
channel = 1,
-- ESSID used for client network.
ap = {
ssid = 'gluon-ci-ssid',
-- disabled = true, -- (optional)
},
mesh = {
-- Adjust these values!
id = 'ueH3uXjdp', -- usually you don't want users to connect to this mesh-SSID, so use a cryptic id that no one will accidentally mistake for the client WiFi
mcast_rate = 12000,
-- disabled = true, -- (optional)
},
},
-- Wireless configuration for 5 GHz interfaces.
-- This should be equal to the 2.4 GHz variant, except
-- for channel.
wifi5 = {
channel = 44,
outdoor_chanlist = '100-140',
ap = {
ssid = 'gluon-ci-ssid',
},
mesh = {
-- Adjust these values!
id = 'ueH3uXjdp',
mcast_rate = 12000,
},
},
-- The next node feature allows clients to always reach the node it is
-- connected to using a known IP address.
next_node = {
-- anycast IPs of all nodes
-- name = { 'nextnode.location.community.example.org', 'nextnode', 'nn' },
ip4 = '10.0.0.1',
ip6 = 'fd::1',
},
mesh = {
vxlan = true,
batman_adv = {
routing_algo = 'BATMAN_IV'
}
},
mesh_vpn = {
-- enabled = true,
mtu = 1312,
fastd = {
-- Refer to https://fastd.readthedocs.io/en/latest/ to better understand
-- what these options do.
-- List of crypto-methods to use.
methods = {'salsa2012+umac'},
-- configurable = true,
-- syslog_level = 'warn',
groups = {
backbone = {
-- Limit number of connected peers to reduce bandwidth.
limit = 1,
-- List of peers.
peers = {
},
},
},
},
bandwidth_limit = {
-- The bandwidth limit can be enabled by default here.
enabled = false,
-- Default upload limit (kbit/s).
egress = 200,
-- Default download limit (kbit/s).
ingress = 3000,
},
},
autoupdater = {
-- Default branch. Don't forget to set GLUON_BRANCH when building!
branch = 'stable',
-- List of branches. You may define multiple branches.
branches = {
stable = {
name = 'stable',
-- List of mirrors to fetch images from. IPv6 required!
mirrors = {'http://1.updates.services.ffhl/stable/sysupgrade'},
-- Number of good signatures required.
-- Have multiple maintainers sign your build and only
-- accept it when a sufficient number of them have
-- signed it.
good_signatures = 2,
-- List of public keys of maintainers.
pubkeys = {
},
},
},
},
}

View File

@ -0,0 +1 @@
../../../docs/site-example/site.mk

44
contrib/depdot.sh Executable file
View File

@ -0,0 +1,44 @@
#!/bin/bash
# Script to output the dependency graph of Gluon's packages
# Limitations:
# * Works only if directory names and package names are the same (true for all Gluon packages)
# * Doesn't show dependencies through virtual packages correctly
set -e
shopt -s nullglob
pushd "$(dirname "$0")/.." >/dev/null
escape_name() {
echo -n "_$1" | tr -c '[:alnum:]' _
}
print_node () {
echo "$(escape_name "$1") [label=\"$1\", shape=box];"
}
print_dep() {
echo "$(escape_name "$1") -> $(escape_name "$2");"
}
echo 'digraph G {'
for makefile in ./package/*/Makefile; do
dir="$(dirname "$makefile")"
package="$(basename "$dir")"
deps=$(grep -w DEPENDS "$makefile" | cut -d= -f2 | tr -d +)
print_node "$package"
for dep in $deps; do
print_node "$dep"
print_dep "$package" "$dep"
done
done | sort -u
popd >/dev/null
echo '}'

128
contrib/i18n-scan.pl Executable file
View File

@ -0,0 +1,128 @@
#!/usr/bin/perl
use strict;
use warnings;
use Text::Balanced qw(extract_bracketed extract_delimited extract_tagged);
@ARGV >= 1 || die "Usage: $0 <source direcory>\n";
my %stringtable;
sub dec_lua_str
{
my $s = shift;
$s =~ s/[\s\n]+/ /g;
$s =~ s/\\n/\n/g;
$s =~ s/\\t/\t/g;
$s =~ s/\\(.)/$1/g;
$s =~ s/^ //;
$s =~ s/ $//;
return $s;
}
sub dec_tpl_str
{
my $s = shift;
$s =~ s/-$//;
$s =~ s/[\s\n]+/ /g;
$s =~ s/^ //;
$s =~ s/ $//;
$s =~ s/\\/\\\\/g;
return $s;
}
if( open F, "find @ARGV -type f '(' -name '*.html' -o -name '*.lua' ')' |" )
{
while( defined( my $file = readline F ) )
{
chomp $file;
if( open S, "< $file" )
{
local $/ = undef;
my $raw = <S>;
close S;
my $text = $raw;
while( $text =~ s/ ^ .*? (?:translate|translatef|_) [\n\s]* \( /(/sgx )
{
( my $code, $text ) = extract_bracketed($text, q{('")});
$code =~ s/\\\n/ /g;
$code =~ s/^\([\n\s]*//;
$code =~ s/[\n\s]*\)$//;
my $res = "";
my $sub = "";
if( $code =~ /^['"]/ )
{
while( defined $sub )
{
( $sub, $code ) = extract_delimited($code, q{'"}, q{\s*(?:\.\.\s*)?});
if( defined $sub && length($sub) > 2 )
{
$res .= substr $sub, 1, length($sub) - 2;
}
else
{
undef $sub;
}
}
}
elsif( $code =~ /^(\[=*\[)/ )
{
my $stag = quotemeta $1;
my $etag = $stag;
$etag =~ s/\[/]/g;
( $res ) = extract_tagged($code, $stag, $etag);
$res =~ s/^$stag//;
$res =~ s/$etag$//;
}
$res = dec_lua_str($res);
$stringtable{$res}++ if $res;
}
$text = $raw;
while( $text =~ s/ ^ .*? <% -? [:_] /<%/sgx )
{
( my $code, $text ) = extract_tagged($text, '<%', '%>');
if( defined $code )
{
$code = dec_tpl_str(substr $code, 2, length($code) - 4);
$stringtable{$code}++;
}
}
}
}
close F;
}
if( open C, "| msgcat -" )
{
printf C "msgid \"\"\nmsgstr \"Content-Type: text/plain; charset=UTF-8\"\n\n";
foreach my $key ( sort keys %stringtable )
{
if( length $key )
{
$key =~ s/"/\\"/g;
printf C "msgid \"%s\"\nmsgstr \"\"\n\n", $key;
}
}
close C;
}

View File

@ -1,11 +1,13 @@
#!/bin/bash
set -e
# Script to list all upgrade scripts in a clear manner
# Limitations:
# * Does only show scripts of packages whose `files' directory represent the whole image filesystem (which are all Gluon packages)
# * Does only show scripts of packages whose `files'/`luasrc' directories represent the whole image filesystem (which are all Gluon packages)
SUFFIX=files/lib/gluon/upgrade
SUFFIX1=files/lib/gluon/upgrade
SUFFIX2=luasrc/lib/gluon/upgrade
shopt -s nullglob
@ -26,7 +28,7 @@ fi
pushd "$(dirname "$0")/.." >/dev/null
find ./package packages -name Makefile | while read makefile; do
find ./package packages -name Makefile | while read -r makefile; do
dir="$(dirname "$makefile")"
pushd "$dir" >/dev/null
@ -35,8 +37,11 @@ find ./package packages -name Makefile | while read makefile; do
dirname="$(dirname "$dir" | cut -d/ -f 3-)"
package="$(basename "$dir")"
for file in "${SUFFIX}"/*; do
echo "${GREEN}$(basename "${file}")${RESET}" "(${BLUE}${repo}${RESET}/${dirname}${dirname:+/}${RED}${package}${RESET}/${SUFFIX})"
for file in "${SUFFIX1}"/*; do
echo "${GREEN}$(basename "${file}")${RESET}" "(${BLUE}${repo}${RESET}/${dirname}${dirname:+/}${RED}${package}${RESET}/${SUFFIX1})"
done
for file in "${SUFFIX2}"/*; do
echo "${GREEN}$(basename "${file}")${RESET}" "(${BLUE}${repo}${RESET}/${dirname}${dirname:+/}${RED}${package}${RESET}/${SUFFIX2})"
done
popd >/dev/null
done | sort

149
contrib/push_pkg.sh Executable file
View File

@ -0,0 +1,149 @@
#!/bin/sh
set -e
topdir="$(realpath "$(dirname "${0}")/../openwrt")"
# defaults to qemu run script
ssh_host=localhost
build_only=0
preserve_config=1
print_help() {
echo "$0 [OPTIONS] PACAKGE_DIR [PACKAGE_DIR] ..."
echo ""
echo " -h print this help"
echo " -r HOST use a remote machine as target machine. By default if this"
echo " option is not given, push_pkg.sh will use a locally"
echo " running qemu instance started by run_qemu.sh."
echo " -p PORT use PORT as ssh port (default is 22)"
echo " -b build only, do not push"
echo " -P do not preserve /etc/config. By default, if a package"
echo " defines a config file in /etc/config, this config file"
echo " will be preserved. If you specify this flag, the package"
echo " default will be installed instead."
echo ""
echo ' To change gluon variables, run e.g. "make config GLUON_MINIFY=0"'
echo ' because then the gluon logic will be triggered, and openwrt/.config'
echo ' will be regenerated. The variables from openwrt/.config are already'
echo ' automatically used for this script.'
echo
}
while getopts "p:r:hbP" opt
do
case $opt in
P) preserve_config=0;;
p) ssh_port="${OPTARG}";;
r) ssh_host="${OPTARG}"; [ -z "$ssh_port" ] && ssh_port=22;;
b) build_only=1;;
h) print_help; exit 0;;
*) ;;
esac
done
shift $(( OPTIND - 1 ))
[ -z "$ssh_port" ] && ssh_port=2223
if [ "$build_only" -eq 0 ]; then
remote_info=$(ssh -p "${ssh_port}" "root@${ssh_host}" '
source /etc/os-release
printf "%s\t%s\n" "$OPENWRT_BOARD" "$OPENWRT_ARCH"
')
REMOTE_OPENWRT_BOARD="$(echo "$remote_info" | cut -f 1)"
REMOTE_OPENWRT_ARCH="$(echo "$remote_info" | cut -f 2)"
# check target
if ! grep -q "CONFIG_TARGET_ARCH_PACKAGES=\"${REMOTE_OPENWRT_ARCH}\"" "${topdir}/.config"; then
echo "Configured OpenWrt Target is not matching with the target machine!" 1>&2
echo
printf "%s" " Configured architecture: " 1>&2
grep "CONFIG_TARGET_ARCH_PACKAGES" "${topdir}/.config" 1>&2
echo "Target machine architecture: ${REMOTE_OPENWRT_ARCH}" 1>&2
echo 1>&2
echo "To switch the local with the run with the corresponding GLUON_TARGET:" 1>&2
echo " make GLUON_TARGET=... config" 1>&2
exit 1
fi
fi
if [ $# -lt 1 ]; then
echo ERROR: Please specify a PACKAGE_DIR. For example:
echo
echo " \$ $0 package/gluon-core"
exit 1
fi
while [ $# -gt 0 ]; do
pkgdir="$1"; shift
echo "Package: ${pkgdir}"
if ! [ -f "${pkgdir}/Makefile" ]; then
echo "ERROR: ${pkgdir} does not contain a Makefile"
exit 1
fi
if ! grep -q BuildPackage "${pkgdir}/Makefile"; then
echo "ERROR: ${pkgdir}/Makefile does not contain a BuildPackage command"
exit 1
fi
opkg_packages="$(make TOPDIR="${topdir}" -C "${pkgdir}" DUMP=1 | awk '/^Package: / { print $2 }')"
search_package() {
find "$2" -name "$1_*.ipk" -printf "%f\n"
}
make TOPDIR="${topdir}" -C "${pkgdir}" clean
make TOPDIR="${topdir}" -C "${pkgdir}" compile
if [ "$build_only" -eq 1 ]; then
continue
fi
# IPv6 addresses need brackets around the ${ssh_host} for scp!
if echo "${ssh_host}" | grep -q :; then
BL=[
BR=]
fi
for pkg in ${opkg_packages}; do
for feed in "${topdir}/bin/packages/${REMOTE_OPENWRT_ARCH}/"*/ "${topdir}/bin/targets/${REMOTE_OPENWRT_BOARD}/packages/"; do
printf "%s" "searching ${pkg} in ${feed}: "
filename=$(search_package "${pkg}" "${feed}")
if [ -n "${filename}" ]; then
echo found!
break
else
echo not found
fi
done
if [ "$preserve_config" -eq 0 ]; then
opkg_flags=" --force-maintainer"
fi
# shellcheck disable=SC2029
if [ -n "$filename" ]; then
scp -P "${ssh_port}" "$feed/$filename" "root@${BL}${ssh_host}${BR}:/tmp/${filename}"
ssh -p "${ssh_port}" "root@${ssh_host}" "
set -e
echo Running opkg:
opkg install --force-reinstall ${opkg_flags} '/tmp/${filename}'
rm '/tmp/${filename}'
gluon-reconfigure
"
else
# Some packages (e.g. procd-seccomp) seem to contain BuildPackage commands
# which do not generate *.ipk files. Till this point, I am not aware why
# this is happening. However, dropping a warning if the corresponding
# *.ipk is not found (maybe due to other reasons as well), seems to
# be more reasonable than aborting. Before this commit, the command
# has failed.
echo "Warning: ${pkg}*.ipk not found! Ignoring." 1>&2
fi
done
done

15
contrib/run_qemu.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
# Note: You can exit the qemu instance by first pressing "CTRL + a" then "c".
# Then you enter the command mode of qemu and can exit by typing "quit".
qemu-system-x86_64 \
-d 'cpu_reset' \
-enable-kvm \
-gdb tcp::1234 \
-nographic \
-netdev user,id=wan,hostfwd=tcp::2223-10.0.2.15:22 \
-device virtio-net-pci,netdev=wan,addr=0x06,id=nic1 \
-netdev user,id=lan,hostfwd=tcp::6080-192.168.1.1:80,hostfwd=tcp::2222-192.168.1.1:22,net=192.168.1.100/24 \
-device virtio-net-pci,netdev=lan,addr=0x05,id=nic2 \
"$@"

View File

@ -1,6 +1,8 @@
#!/bin/sh
if [ $# -eq 0 -o "-h" = "$1" -o "-help" = "$1" -o "--help" = "$1" ]; then
set -e
if [ $# -ne 2 ] || [ "-h" = "$1" ] || [ "--help" = "$1" ] || [ ! -r "$1" ] || [ ! -r "$2" ]; then
cat <<EOHELP
Usage: $0 <secret> <manifest>
@ -13,7 +15,7 @@ The script may be performed multiple times to the same document
to indicate an approval by multiple developers.
See also
* edcsautils on https://github.com/tcatm/ecdsautils
* ecdsautils on https://github.com/freifunk-gluon/ecdsautils
EOHELP
exit 1
@ -25,16 +27,18 @@ manifest="$2"
upper="$(mktemp)"
lower="$(mktemp)"
awk "BEGIN { sep=0 }
/^---\$/ { sep=1; next }
{ if(sep==0) print > \"$upper\";
else print > \"$lower\"}" \
trap 'rm -f "$upper" "$lower"' EXIT
awk 'BEGIN { sep=0 }
/^---$/ { sep=1; next }
{ if(sep==0) print > "'"$upper"'";
else print > "'"$lower"'"}' \
"$manifest"
ecdsasign "$upper" < "$SECRET" >> "$lower"
cat "$upper" > "$manifest"
echo --- >> "$manifest"
cat "$lower" >> "$manifest"
rm -f "$upper" "$lower"
(
cat "$upper"
echo ---
cat "$lower"
) > "$manifest"

39
contrib/sigtest.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/sh
if [ $# -eq 0 ] || [ "-h" = "$1" ] || [ "-help" = "$1" ] || [ "--help" = "$1" ]; then
cat <<EOHELP
Usage: $0 <public> <signed manifest>
sigtest.sh checks if a manifest is signed by the public key <public>. There is
no output, success or failure is indicated via the return code.
See also:
* ecdsautils in https://github.com/freifunk-gluon/ecdsautils
* https://gluon.readthedocs.io/en/latest/features/autoupdater.html
EOHELP
exit 1
fi
public="$1"
manifest="$2"
upper="$(mktemp)"
lower="$(mktemp)"
ret=1
awk "BEGIN { sep=0 }
/^---\$/ { sep=1; next }
{ if(sep==0) print > \"$upper\";
else print > \"$lower\"}" \
"$manifest"
while read -r line
do
if ecdsaverify -s "$line" -p "$public" "$upper"; then
ret=0
break
fi
done < "$lower"
rm -f "$upper" "$lower"
exit $ret

View File

@ -1,177 +1,19 @@
# Makefile for Sphinx documentation
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXOPTS = -W --keep-going
SPHINXBUILD = sphinx-build
PAPER =
SOURCEDIR = .
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
# Put it first so that "make" without argument is like "make help".
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
clean:
rm -rf $(BUILDDIR)/*
.PHONY: help Makefile
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Gluon.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Gluon.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/Gluon"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Gluon"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

10
docs/_static/css/custom.css vendored Normal file
View File

@ -0,0 +1,10 @@
/*
This fixes the vertical position of list markers when the first
element in the <li> is a <pre> block
Scrolling inside the <pre> block is still working as expected
*/
.rst-content pre.literal-block,
.rst-content div[class^='highlight'] pre {
overflow: visible;
}

View File

@ -1,261 +1,181 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Gluon documentation build configuration file, created by
# sphinx-quickstart on Wed Jan 29 00:45:53 2014.
# Configuration file for the Sphinx documentation builder.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
import sys
import os
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- General configuration ------------------------------------------------
# -- Project information -----------------------------------------------------
project = 'Gluon'
copyright = '2015-2021, Project Gluon'
author = 'Project Gluon'
# The short X.Y version
version = '2021.1'
# The full version, including alpha/beta/rc tags
release = version
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.mathjax',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = 'Gluon'
copyright = '2015, Project Gluon'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '2015.1'
# The full version, including alpha/beta/rc tags.
release = '2015.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
pygments_style = None
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# Don't highlight code blocks unless requested explicitly
highlight_language = 'none'
# -- Options for HTML output ----------------------------------------------
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#html_theme = 'default'
#
html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#html_favicon = None
#
# html_theme_options = {}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['_static']
#
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# These paths are either relative to html_static_path
# or fully qualified paths (eg. https://...)
html_css_files = ['css/custom.css']
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
#html_domain_indices = True
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'Gluondoc'
# -- Options for LaTeX output ---------------------------------------------
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#'pointsize': '10pt',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'Gluon.tex', 'Gluon Documentation',
(master_doc, 'Gluon.tex', 'Gluon Documentation',
'Project Gluon', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# If true, show page references after internal links.
#latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'gluon', 'Gluon Documentation',
['Project Gluon'], 1)
(master_doc, 'gluon', 'Gluon Documentation',
[author], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'Gluon', 'Gluon Documentation',
'Project Gluon', 'Gluon', 'One line description of project.',
(master_doc, 'Gluon', 'Gluon Documentation',
author, 'Gluon', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# -- Options for Epub output -------------------------------------------------
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# Bibliographic Dublin Core info.
epub_title = project
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']

View File

@ -15,9 +15,13 @@ The `main repo`_ does have issues enabled.
IRC
---
Gluon's developers frequent `#gluon on hackint`_. You're welcome to join us!
Gluon's developers frequent the IRC chatroom `#gluon`_ on `hackint`_.
There is a `webchat`_ that allows for easy access from within your
webbrowser. You're welcome to join us!
.. _#gluon on hackint: irc://irc.hackint.org/#gluon
.. _#gluon: ircs://irc.hackint.org/#gluon
.. _hackint: https://hackint.org/
.. _webchat: https://webirc.hackint.org/#irc://irc.hackint.org/#gluon
Working with repositories
@ -32,23 +36,9 @@ rerun
`make update` also applies the patches that can be found in the directories found in
`patches`; the resulting branch will be called `patched`, while the commit specified in `modules`
can be refered to by the branch `base`.
can be referred to by the branch `base`.
::
make unpatch
sets the repositories to the `base` branch,
::
make patch
re-applies the patches by resetting the `patched` branch to `base` and calling `git am`
for the patch files. Calling `make` or a similar command after calling `make unpatch`
is generally not a good idea.
After new patches have been commited on top of the patched branch (or existing commits
After new patches have been committed on top of the `patched` branch (or existing commits
since the base commit have been edited or removed), the patch directories can be regenerated
using
@ -61,3 +51,34 @@ and you can try rebasing it onto the new `base` branch yourself and after that c
Always call `make update-patches` after making changes to a module repository as `make update` will overwrite your
commits, making `git reflog` the only way to recover them!
::
make refresh-patches
In order to refresh patches when updating feeds or the OpenWrt base, `make refresh-patches` applies and updates all of their patches without installing feed packages to the OpenWrt buildsystem.
This command speeds up the maintenance of updating OpenWrt and feeds.
Development Guidelines
----------------------
Lua should be used instead of sh whenever sensible. The following criteria
should be considered:
- Is the script doing more than just executing external commands? if so, use Lua
- Is the script parsing/editing json-data? If so, use Lua for speed
- When using sh, use jsonfilter instead of json_* functions for speed
Code formatting may sound like a topic for the pedantic, however it helps if
the code in the project is formatted in the same way. The following basic rules
apply:
- use tabs instead of spaces
- trailing whitespaces must be eliminated
- files need to end with a final newline
- newlines need to have unix line endings (lf)
To that end we provide a ``.editorconfig`` configuration, which is supported by most
of the editors out there.
If you add Lua scripts to gluon, check formatting with ``luacheck``.

90
docs/dev/build.rst Normal file
View File

@ -0,0 +1,90 @@
Build system
============
This page explains internals of the Gluon build system. It is currently very
incomplete; please contribute if you can!
Feed management
---------------
Rather that relying on the *feed.conf* mechanism of OpenWrt directly, Gluon
manages its feeds (*"modules"*) using a collection of scripts. This solution was
selected for multiple reasons:
- Feeds lists from Gluon base and the site repository are combined
- Patchsets are applied to downloaded feed repositories automatically
The following variables specifically affect the feed management:
GLUON_FEEDS
List of base feeds; defined in file *modules* in Gluon base
GLUON_SITE_FEED
List of site feeds; defined in file *modules* in site config
\*_REPO, \*_BRANCH, \*_COMMIT
Git repository URL, branch and
commit ID of the feeds to use. The branch name may be omitted; the default
branch will be used in this case.
GLUON_BASE_FEEDS
Additional feed definitions to be added to *feeds.conf*
verbatim. By default, this contains a reference to the Gluon base packages;
when using the Gluon build system to build a non-Gluon system, the variable
can be set to the empty string.
Helper scripts
--------------
Several tasks of the build process have been separated from the Makefile into
external scripts, which are stored in the *scripts* directory. This was done to
ease maintenance of these scripts and the Makefile, by avoiding a lot of escaping.
These scripts are either bash or Lua scripts that run on the build system.
default_feeds.sh
Defines the constant ``DEFAULT_FEEDS`` with the names of all feeds listed in
*openwrt/feeds.conf.default*. This script is only used as an include by other
scripts.
feeds.sh
Creates the *openwrt/feeds.conf* file from ``FEEDS`` and ``DEFAULT_FEEDS``. The
feeds from ``FEEDS`` are linked to the matching subfolder of *packages/* and not
explicitly defined feeds of ``DEFAULT_FEEDS`` are setup as dummy (src-dummy).
This *openwrt/feeds.conf* is used to reinstall all packages of all feeds with
the *openwrt/scripts/feeds* tool.
modules.sh
Defines the constants ``GLUON_MODULES`` and ``FEEDS`` by reading the *modules*
files of the Gluon repository root and the site configuration. The returned
variables look like:
- ``FEEDS``: "*feedA feedB ...*"
- ``GLUON_MODULES``: "*openwrt packages/feedA packages/feedB ...*"
This script is only used as an include by other scripts.
patch.sh
(Re-)applies the patches from the *patches* directory to all ``GLUON_MODULES``
and checks out the files to the filesystem.
This is done for each repo by:
- creating a temporary clone of the repo to patch
- only branch *base* is used
- applying all patches via *git am* on top of this temporary *base* branch
- this branch is named *patched*
- copying the temporary clone to the *openwrt* (for OpenWrt Base) or
*packages* (for feeds) folder
- *git fetch* is used with the temporary clone as source
- *git checkout* is called to update the filesystem
- updating all git submodules
This solution with a temporary clone ensures that the timestamps of checked
out files are not changed by any intermediate patch steps, but only when
updating the checkout with the final result. This avoids triggering unnecessary
rebuilds.
update.sh
Sets up a working clone of the ``GLUON_MODULES`` (external repos) from the external
source and installs it into *packages/* directory. It simply tries to set the *base*
branch of the cloned repo to the correct commit. If this fails it fetches the
upstream branch and tries again to set the local *base* branch.

View File

@ -1,92 +0,0 @@
Config Mode
===========
As of 2014.4 `gluon-config-mode` consists of several modules.
gluon-config-mode-core
This modules provides the core functionality for the config mode.
All modules must depend on it.
gluon-config-mode-hostname
Provides a hostname field.
gluon-config-mode-autoupdater
Informs whether the autoupdater is enabled.
gluon-config-mode-mesh-vpn
Allows toggling of mesh-vpn-fastd and setting a bandwidth limit.
gluon-config-mode-geo-location
Enables the user to set the geographical location of the node.
gluon-config-mode-contact-info
Adds a field where the user can provide contact information.
In order to get a config mode close to the one found in 2014.3.x you may add
these modules to your `site.mk`:
gluon-config-mode-hostname,
gluon-config-mode-autoupdater,
gluon-config-mode-mesh-vpn,
gluon-config-mode-geo-location,
gluon-config-mode-contact-info
Writing Config Mode Modules
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config mode modules are located at `/lib/gluon/config-mode/wizard` and
`/lib/gluon/config-mode/reboot`. Modules are named like `0000-name.lua` and
are executed in lexical order. If you take the standard set of modules, the
order is, for wizard modules:
- 0050-autoupdater-info
- 0100-hostname
- 0300-mesh-vpn
- 0400-geo-location
- 0500-contact-info
While for reboot modules it is:
- 0100-mesh-vpn
- 0900-msg-reboot
Wizards
-------
Wizard modules return a UCI section. A simple module capable of changing the
hostname might look like this::
local cbi = require "luci.cbi"
local uci = luci.model.uci.cursor()
local M = {}
function M.section(form)
local s = form:section(cbi.SimpleSection, nil, nil)
local o = s:option(cbi.Value, "_hostname", "Hostname")
o.value = uci:get_first("system", "system", "hostname")
o.rmempty = false
o.datatype = "hostname"
end
function M.handle(data)
uci:set("system", uci:get_first("system", "system"), "hostname", data._hostname)
uci:save("system")
uci:commit("system")
end
return M
Reboot page
-----------
Reboot modules return a function that will be called when the page is to be
rendered or nil (i.e. the module is skipped)::
if no_hello_world_today then
return nil
else
return function ()
luci.template.render_string("Hello World!")
end
end

51
docs/dev/debugging.rst Normal file
View File

@ -0,0 +1,51 @@
Debugging
=========
.. _dev-debugging-kernel-oops:
Kernel Oops
-----------
Sometimes a running Linux kernel detects an error during runtime that can't
be corrected.
This usually generates a stack trace that points to the location in the code
that caused the oops.
Linux kernels in Gluon (and OpenWrt) are stripped.
That means they do not contain any debug symbols.
On one hand this leads to a smaller binary and faster loading times on the
target.
On the other hand this means that in a case of a stack trace the unwinder
can only print memory locations and no further debugging information.
Gluon stores a compressed kernel with debug symbols for every target
in the directory `output/debug/`.
These kernels should be kept along with the images as long as the images
are in use.
This allows the developer to analyse a stack trace later.
Decoding Stacktraces
....................
The tooling is contained in the kernel source tree in the file
`decode_stacktrace.sh <https://github.com/torvalds/linux/blob/master/scripts/decode_stacktrace.sh>`__.
This file and the needed source tree are available in the directory: ::
openwrt/build_dir/target-<architecture>/linux-<architecture>/linux-<version>/
.. note::
Make sure to use a kernel tree that matches the version and patches
that was used to build the kernel.
If in doubt just re-build the images for the target.
Some more information on how to use this tool can be found at
`LWN <https://lwn.net/Articles/592724/>`__.
Obtaining Stacktraces
.....................
On many targets stacktraces can be read from the following
location after reboot: ::
/sys/kernel/debug/crashlog

View File

@ -5,91 +5,157 @@ for new hardware to Gluon.
Hardware requirements
---------------------
Having an ath9k (or ath10k) based WLAN adapter is highly recommended,
Having an ath9k, ath10k or mt76 based WLAN adapter is highly recommended,
although other chipsets may also work. VAP (multiple SSID) support
is a requirement. At the moment, Gluon's scripts can't handle devices
without WLAN adapters (although such environments may also be interesting,
e.g. for automated testing in virtual machines).
is a requirement.
.. _device-class-definition:
Device checklist
----------------
Pull requests adding device support must have the device checklist
included in their description. The checklist assures core functionality
of Gluon is well supported on the device.
The checklist can be found in the `wiki <https://github.com/freifunk-gluon/gluon/wiki/Device-Integration-checklist>`_.
Device classes
--------------
Gluon currently is aware of two device classes. Depending on the device class, different
features can be installed onto the device.
The ``tiny`` device-class contains devices with the following limitations:
* All devices with less than 64 MB of system memory
* All devices with less than 7 MB of usable firmware space
* Devices using a single ath10k radio and less than 128MB of system memory
.. _hardware-adding-profiles:
Adding profiles
---------------
The vast majority of devices with ath9k WLAN uses the ar71xx target of OpenWrt.
If the hardware you want to add support for is also ar71xx, adding a new profile
is enough.
The vast majority of devices with ath9k WLAN are based on the ath79 target of OpenWrt.
If the hardware you want to add support for is ath79, adding a new profile
is sufficient.
Profiles are defined in ``targets/<target>-<subtarget>/profiles.mk``. There are two macros
used to define which images are generated: ``GluonProfile`` and ``GluonModel``. The following examples
are taken from ``profiles.mk`` of the ``ar71xx-generic`` target::
Profiles are defined in ``targets/*`` in a shell-based DSL (so common shell
command syntax like ``if`` can be used).
$(eval $(call GluonProfile,TLWR1043))
$(eval $(call GluonModel,TLWR1043,tl-wr1043nd-v1-squashfs,tp-link-tl-wr1043n-nd-v1))
$(eval $(call GluonModel,TLWR1043,tl-wr1043nd-v2-squashfs,tp-link-tl-wr1043n-nd-v2))
The ``device`` command is used to define an image build for a device. It takes
two or three parameters.
The ``GluonProfile`` macro takes at least one parameter, the profile name as it is
defined in the Makefiles of OpenWrt (``openwrt/target/linux/<target>/<subtarget>/profiles/*``
and ``openwrt/target/linux/<target>/image/Makefile``). If the target you are on doesn't define
profiles (e.g. on x86), just add a single profile called ``Generic`` or similar.
It may optionally take a second parameter which defines additional packages to include for the profile
(e.g. ath10k). The additional packages defined in ``openwrt/target/linux/<target>/<subtarget>/profiles/*``
aren't used.
The ``GluonModel`` macro takes three parameters: The profile name, the suffix of the image file
generated by OpenWrt (without the file extension), and the final image name of the Gluon image.
The final image name must be the same that is returned by the following command.
::
The first parameter defines the Gluon profile name, which is used to refer to the
device and is part of the generated image name. The profile name must be same as
the output of the following command (on the target device), so the autoupdater
can work::
lua -e 'print(require("platform_info").get_image_name())'
While porting Gluon to a new device, it might happen that the profile name is
unknown. Best practise is to generate an image first by using an arbitrary value
and then executing the lua command on the device and use its output from then on.
This is just so the autoupdater can work. The command has to be executed _on_ the target (eg. the hardware router with a flashed image). So you'll first have to build an image with a guessed name, and afterwards build a new, correctly named image. On targets which aren't supported by the autoupdater,
``require("platform_info").get_image_name()`` will just return ``nil`` and the final image name
may be defined arbitrarily.
The second parameter defines the name of the image files generated by OpenWrt. Usually,
it is also the OpenWrt profile name; for devices that still use the old image build
code, a third parameter with the OpenWrt profile name can be passed. The profile names
can be found in the image Makefiles in ``openwrt/target/linux/<target>/image/Makefile``.
Examples::
device tp-link-tl-wr1043n-nd-v1 tl-wr1043nd-v1
device alfa-network-hornet-ub hornet-ub HORNETUB
Suffixes and extensions
'''''''''''''''''''''''
By default, image files are expected to have the extension ``.bin``. In addition,
the images generated by OpenWrt have a suffix before the extension that defaults to
``-squashfs-factory`` and ``-squashfs-sysupgrade``.
This can be changed using the ``factory`` and ``sysupgrade`` commands, either at
the top of the file to set the defaults for all images, or for a single image. There
are three forms with 0 to 2 arguments (all work with ``sysupgrade`` as well)::
factory SUFFIX .EXT
factory .EXT
factory
When only an extension is given, the default suffix is retained. When no arguments
are given, this signals that no factory (or sysupgrade) image exists.
Aliases
'''''''
Sometimes multiple models use the same OpenWrt images. In this case, the ``alias``
command can be used to create symlinks and additional entries in the autoupdater
manifest for the alternative models.
Standalone images
'''''''''''''''''
On targets without *per-device rootfs* support in OpenWrt, the commands described above
can't be used. Instead, ``factory_image`` and ``sysupgrade_image`` are used::
factory_image PROFILE IMAGE .EXT
sysupgrade_image PROFILE IMAGE .EXT
Again, the profile name must match the value printed by the aforementioned Lua
command. The image name must match the part between the target name and the extension
as generated by OpenWrt and is to be omitted when no such part exists.
Packages
''''''''
The ``packages`` command takes an arbitrary number of arguments. Each argument
defines an additional package to include in the images in addition to the default
package sets defined by OpenWrt. When a package name is prefixed by a minus sign, the
packages are excluded instead.
The ``packages`` command may be used at the top of a target definition to modify
the default package list for all images, or just for a single device (when the
target supports *per-default rootfs*).
Configuration
'''''''''''''
The ``config`` command allows to add arbitrary target-specific OpenWrt configuration
to be emitted to ``.config``.
Notes
'''''
On devices with multiple WLAN adapters, care must also be taken that the primary MAC address is
configured correctly. ``/lib/gluon/core/sysconfig/primary_mac`` should contain the MAC address which
can be found on a label on most hardware; if it does not, ``/lib/gluon/upgrade/core/initial/001-sysconfig``
can be found on a label on most hardware; if it does not, ``/lib/gluon/upgrade/010-primary-mac``
in ``gluon-core`` might need a fix. (There have also been cases in which the address was incorrect
even on devices with only one WLAN adapter, in these cases an OpenWrt bug was the cause).
even on devices with only one WLAN adapter, in these cases a OpenWrt bug was the cause).
Adding support for new hardware targets
---------------------------------------
Adding a new target is much more complex than adding a new profile. There are two basic steps
required for adding a new target:
Adjust packages
'''''''''''''''
One package that definitely needs adjustments for every new target added is ``lua-platform-info``. Just
start with a copy of an existing platform info script, adjust it for the new target, and add the new target
to the list of supported targets in the package Makefile.
Package adjustments
'''''''''''''''''''
On many targets, Gluon's network setup scripts (mainly in the packages ``gluon-core`` and ``gluon-mesh-batman-adv-core``)
One package that may need adjustments for new targets is ``libplatforminfo`` (to be found in
`packages/gluon/libs/libplatforminfo <https://github.com/freifunk-gluon/packages/tree/master/libs/libplatforminfo>`_).
If the new platform works fine with the definitions found in ``default.c``, nothing needs to be done. Otherwise,
create a definition for the added target or subtarget, either by symlinking one of the files in the ``templates``
directory, or adding a new source file.
On many targets, Gluon's network setup scripts (mainly in the package ``gluon-core``)
won't run correctly without some adjustments, so better double check that everything is fine there (and the files
``primary_mac``, ``lan_ifname`` and ``wan_ifname`` in ``/lib/gluon/core/sysconfig/`` contain sensible values).
Add support to the build system
'''''''''''''''''''''''''''''''
A directory for the new target must be created under ``targets``, and it must be added
to ``targets/targets.mk``. In the new target directory, three files must be created:
Build system support
''''''''''''''''''''
* config
* profiles.mk
* vermagic
A definition for the new target must be created under ``targets``, and it must be added
to ``targets/targets.mk``. The ``GluonTarget`` macro takes one to two arguments:
the target name and the OpenWrt subtarget name.
The file ``config`` can be used to add additional, target-specific options to the OpenWrt config. It
must at least select the correct target and subtarget. For ``profiles.mk``, see :ref:`hardware-adding-profiles`.
The files ``vermagic`` must have the correct content so kernel modules from the upstream repositories
can be installed without dependency issues. The OpenWrt version a Gluon release is based on is defined by the upstream package repo URL in ``include/gluon.mk``
(in the variable ``CONFIG_VERSION_REPO``); at the time this documentation was written, this was ``barrier_breaker/14.07``; whenever
the package repo is updated, all ``vermagic`` files must be updated as well.
The content is a hash which is part of the version number of the kernel package. So in the case of ``ar71xx-generic`` on
``barrier_breaker``, we look for the kernel package in the directory ``https://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/``.
As the kernel package is called ``kernel_3.10.49-1-0114c71ed85677c9c1e4911437af4743_ar71xx.ipk``, the correct ``vermagic`` string
is ``0114c71ed85677c9c1e4911437af4743``.
After this, is should be sufficient to call ``make GLUON_TARGET=<target>-<subtarget>`` to build the images for the new target.
After this, is should be sufficient to call ``make GLUON_TARGET=<target>`` to build the images for the new target.

View File

@ -1,88 +0,0 @@
Internationalization support
============================
General guidelines
------------------
* All config mode packages must be fully translatable, with complete English and German texts.
* All new expert mode packages be fully translatable. English texts are required, German texts recommended.
* Existing expert mode packages should be made translatable as soon as possible.
* The "message IDs" (which are the arguments to the ``translate`` function) should be the
English texts.
i18n support in LuCI
--------------------
Internationalization support can be found in the ``luci.i18n`` package.
Strings are translated using the ``i18n.translate`` and ``i18n.translatef`` functions
(``translate`` for static strings, ``translatef`` for printf-like formatted string).
Example from the ``gluon-config-mode-geo-location`` package::
local i18n = require "luci.i18n"
o = s:option(cbi.Flag, "_location", i18n.translate("Show node on the map"))
Adding translation templates to Gluon packages
----------------------------------------------
The i18n support is based on the standard gettext system. For each translatable package,
a translation template with extension ``.pot`` can be created using the ``i18n-scan.pl``
script from the LuCI repository::
cd package/gluon-config-mode-geo-location
mkdir i18n
cd i18n
../../../packages/luci/build/i18n-scan.pl ../files > gluon-config-mode-geo-location.pot
The entries in the template can be reordered after the generation if desirable. Lots of standard
translations like "Cancel" are already available in the LuCI base translation file (see
``packages/luci/po/templates/base.pot``) and can be removed from the template.
In addition, some additions to the Makefile must be made. Instead of OpenWrt's default package.mk,
the Gluon version ``$(GLUONDIR)/include/package.mk`` must be used. The i18n files must be installed
and PKG_CONFIG_DEPENDS must be added::
...
include $(GLUONDIR)/include/package.mk
PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
...
define Build/Compile
$(call GluonBuildI18N,gluon-config-mode-geo-location,i18n)
endef
define Package/gluon-config-mode-geo-location/install
...
$(call GluonInstallI18N,gluon-config-mode-geo-location,$(1))
endef
...
Adding translations
-------------------
A new translation file for a template can be added using the ``msginit`` command::
cd package/gluon-config-mode-geo-location/i18n
msginit -l de
This will create the file ``de.po`` in which the translations can be added.
The translation file can be updated to a new template version using the ``msgmerge`` command::
msgmerge -U de.po gluon-config-mode-geo-location.pot
After the merge, the translation file should be checked for "fuzzy matched" entries where
the original English texts have changed. All entries from the the translation file should be
translated in the ``.po`` file (or removed from it, so the original English texts are displayed
instead).
Adding support for new languages
--------------------------------
A list of all languages supported by LuCI can be found in the ``include/package.mk`` file of
the Gluon repository. Adding translations for these languages is straightforward using the ``msginit``
command.
For other languages, support must be added tu LuCI first, which constitutes completely translating
the ``base.pot``. Please contact the upstream LuCI maintainers if you'd like to do this.

View File

@ -0,0 +1,18 @@
MAC addresses
=============
Many devices don't have enough unique MAC addresses assigned by the vendor
(in batman-adv, each mesh interface needs an own MAC address that must be unique
mesh-wide).
Gluon tries to solve this issue by using a hash of the primary MAC address as a
45 bit MAC address prefix. The resulting 8 addresses are used as follows:
* 0: client0; WAN
* 1: mesh0
* 2: owe0
* 3: wan_radio0 (private WLAN); batman-adv primary address
* 4: client1; LAN
* 5: mesh1
* 6: owe1
* 7: wan_radio1 (private WLAN); mesh VPN

211
docs/dev/packages.rst Normal file
View File

@ -0,0 +1,211 @@
Package development
###################
Gluon packages are OpenWrt packages and follow the same rules described at https://openwrt.org/docs/guide-developer/packages.
Development workflow
====================
When you are developing packages, it often happens that you iteratively want to deploy
and verify the state your development. There are two ways to verify your changes:
1) One way is to rebuild the complete firmware, flash it, configure it and verify your
development then. This usually takes at least a few minutes to get your changes
working so you can test them. Especially if you iterate a lot, this becomes tedious.
2) Another way is to rebuild only the package you are currently working on and
to deploy this package to your test system. Here not even a reboot is required.
This makes iterating relatively fast. Your test system could be real hardware or
even a qemu in most cases.
Gluon provides scripts to enhance workflow 2). Here is an example illustrating
the workflow using these scripts:
.. code-block:: shell
# start a local qemu instance
contrib/run_qemu.sh output/images/factory/[...]-x86-64.img
# apply changes to the desired package
vi package/gluon-ebtables/files/etc/init.d/gluon-ebtables
# rebuild and push the package to the qemu instance
contrib/push_pkg.sh package/gluon-ebtables/
# test your changes
...
# do more changes
...
# rebuild and push the package to the qemu instance
contrib/push_pkg.sh package/gluon-ebtables/
# test your changes
...
(and so on...)
# see help of the script for more information
contrib/push_pkg.sh -h
...
Features of ``push_pkg.sh``:
* Works with compiled and non-compiled packages.
* This means it can be used in the development of C-code, Lua-Code and mostly any other code.
* Works with native OpenWrt and Gluon packages.
* Pushes to remote machines or local qemu instances.
* Pushes multiple packages in in one call if desired.
* Performs site.conf checks.
Implementation details of ``push_pkg.sh``:
* First, the script builds an opkg package using the OpenWrt build system.
* This package is pushed to a *target machine* using scp:
* By default the *target machine* is a locally running x86 qemu started using ``run_qemu.sh``.
* The *target machine* can also be remote machine. (See the cli switch ``-r``)
* Remote machines are not limited to a specific architecture. All architectures supported by gluon can be used as remote machines.
* Finally opkg is used to install/update the packages in the target machine.
* While doing this, it will not override ``/etc/config`` with package defaults by default. (See the cli switch ``-P``).
* While doing this, opkg calls the ``check_site.lua`` from the package as post_install script to validate the ``site.conf``. This means that the ``site.conf`` of the target machine is used for this validation.
Note that:
* ``push_pkg.sh`` does neither build nor push dependencies of the packages automatically. If you want to update dependencies, you must explicitly specify them to be pushed.
* If you add new packages, you must run ``make update config GLUON_TARGET=...``.
* You can change the gluon target of the target machine via ``make config GLUON_TARGET=...``.
* If you want to update the ``site.conf`` of the target machine, use ``push_pkg.sh package/gluon-site/``.
* Sometimes when things break, you can heal them by compiling a package with its dependencies: ``cd openwrt; make package/gluon-ebtables/clean; make package/gluon-ebtables/compile; cd ..``.
* You can exit qemu by pressing ``CTRL + a`` and ``c`` afterwards.
Gluon package makefiles
=======================
As many packages share the same or a similar structure, Gluon provides a ``package/gluon.mk`` that
can be included for common definitions. This file replaces OpenWrt's ``$(INCLUDE_DIR)/package.mk``;
it is usually included as ``include ../gluon.mk`` from Gluon core packages, or as
``include $(TOPDIR)/../package/gluon.mk`` from feeds.
Provided macros
***************
* *GluonBuildI18N* (arguments: *<source directory>*)
Converts the *.po* files for all enabled languages from the given source directory to
the binary *.lmo* format and stores them in ``$(PKG_BUILD_DIR)/i18n``.
* *GluonInstallI18N*
Install *.lmo* files from ``$(PKG_BUILD_DIR)/i18n`` to ``/lib/gluon/web/i18n`` in the
package install directory.
* *GluonSrcDiet* (arguments: *<source directory>*, *<destination directory>*)
Copies a directory tree, processing all files in it using *LuaSrcDiet*. The directory
tree should only contain Lua files.
* *GluonCheckSite* (arguments: *<source file>*)
Intended to be used in a package postinst script. It will use the passed Lua
snippet to verify package-specific site configuration.
* *BuildPackageGluon* (replaces *BuildPackage*)
Extends the *Package/<name>* definition with common defaults, sets the package
install script to the common *Gluon/Build/Install*, and automatically creates
a postinst script using *GluonCheckSite* if a ``check_site.lua`` is found in the
package directory.
Default build steps
*******************
These defaults greatly reduce the boilerplate in each package, but they can also
be confusing because of the many implicit behaviors depending on files in the
package directory. If any part of *Gluon/Build/Compile* or *Gluon/Build/Install*
does not work as intended for a package, the compile and install steps can
always be replaced or extended.
*Build/Compile* is set to *Gluon/Build/Compile* by default, which will
* run OpenWrt standard default commands (*Build/Compile/Default*) if a ``src/Makefile``
or ``src/CMakeLists.txt`` is found
* run *GluonSrcDiet* on all files in the ``luasrc`` directory
* run *GluonBuildI18N* if a ``i18n`` directory is found
*Package/<name>* defaults to *Gluon/Build/Install* for packages defined using
*BuildPackageGluon*, which will
* copy all files from ``$(PKG_INSTALL_DIR)`` into the package if ``$(PKG_INSTALL)`` is 1
* copy all files from ``files`` into the package
* copy all Lua files built from ``luasrc`` into the package
* installs ``$(PKG_BUILD_DIR)/respondd.so`` to ``/usr/lib/respondd/$(PKG_NAME).so`` if ``src/respondd.c`` exists
* installs compiled i18n *.lmo* files
Feature flags
=============
Feature flags provide a convenient way to define package selections without
making it necessary to list each package explicitly. The list of features to
enable for a Gluon build is set by the *GLUON_FEATURES* variable in *site.mk*.
The main feature flag definition file is ``package/features``, but each package
feed can provide additional definitions in a file called ``features`` at the root
of the feed repository.
Each flag *$flag* will include the package the name *gluon-$flag* by default.
The feature definition file can modify the package selection by adding or removing
packages when certain combinations of flags are set.
Feature definitions use Lua syntax. Two basic functions are defined:
* *feature(name, pkgs)*: Defines a new feature. *feature()* expects a feature
(flag) name and a list of packages to add or remove when the feature is
enabled.
* Defining a feature using *feature* replaces the default definition of
just including *gluon-$flag*.
* A package is removed when the package name is prefixed with a ``-`` (after
the opening quotation mark).
* *when(expr, pkgs)*: Adds or removes packages when a given logical expression
of feature flags is satisfied.
* *expr* is a logical expression composed of feature flag names (each prefixed
with an underscore before the opening quotation mark), logical operators
(*and*, *or*, *not*) and parentheses.
* Referencing a feature flag in *expr* has no effect on the default handling
of the flag. When no *feature()* entry for a flag exists, it will still
add *gluon-$flag* by default.
* *pkgs* is handled as for *feature()*.
Example::
feature('web-wizard', {
'gluon-config-mode-hostname',
'gluon-config-mode-geo-location',
'gluon-config-mode-contact-info',
'gluon-config-mode-outdoor',
})
when(_'web-wizard' and (_'mesh-vpn-fastd' or _'mesh-vpn-tunneldigger'), {
'gluon-config-mode-mesh-vpn',
})
feature('no-radvd', {
'-gluon-radvd',
})
This will
* disable the inclusion of the (non-existent) packages *gluon-web-wizard* and *gluon-no-radvd* when their
corresponding feature flags appear in *GLUON_FEATURES*
* enable four additional config mode packages when the *web-wizard* feature is enabled
* enable *gluon-config-mode-mesh-vpn* when both *web-wizard* and one
of *mesh-vpn-fastd* and *mesh-vpn-tunneldigger* are enabled
* disable the *gluon-radvd* package when *gluon-no-radvd* is enabled

36
docs/dev/site_library.rst Normal file
View File

@ -0,0 +1,36 @@
gluon.site library
==================
The *gluon.site* library allows convenient access to the site configuration
from Lua scripts. Example:
.. code-block:: lua
local site = require 'gluon.site'
print(site.wifi24.ap.ssid())
The *site* object in this example does not directly represent the *site.conf* data structure;
instead, it is wrapped in a way that makes it more convenient to access deeply nested elements.
To access the underlying values, they must be unwrapped using the function call notation
(the ``()`` after ``site.wifi24.ap.ssid`` in the example).
The wrapper objects have two advantages over simple Lua tables:
* Accessing non-existing values is never an error: ``site.wifi24.ap.ssid()`` will simply
return *nil* if ``site.wifi24`` or ``site.wifi24.ap`` do not exist
* Default values: A default value can be passed to the unwrapping function call:
.. code-block:: lua
print(site.wifi24.ap.ssid('Default'))
will return *'Default'* instead of *nil* when the value is unset.
Note that *nil* values and unset values are equivalent in Lua.
A simple way to access the whole site configuration as a simple table
is to unwrap the top-level site object:
.. code-block:: lua
local site_table = site()

View File

@ -6,7 +6,7 @@ Basics
After each sysupgrade (including the initial installation), Gluon will execute all scripts
under ``/lib/gluon/upgrade``. These scripts' filenames usually begin with a 3-digit number
specifying the order of execution.
specifying the order of execution. Note that the script files need to be executable.
To get an overview of the ordering of all scripts of all packages, the helper script ``contrib/lsupgrade.sh``
in the Gluon repository can be used, which will print all upgrade scripts' filenames and directories. If executed
@ -16,17 +16,15 @@ Best practices
--------------
* Most upgrade scripts are written in Lua. This allows using lots of helper functions provided
by LuCi and Gluon, e.g. to access the site configuration or edit UCI configuration files.
by Gluon, e.g. to access the site configuration or edit UCI configuration files.
* Whenever possible, scripts shouldn't check if they are running for the first time, but just edit configuration
files to achive a valid configuration (without overwriting configuration changes made by the user where desirable).
files to achieve a valid configuration (without overwriting configuration changes made by the user where desirable).
This allows using the same code to create the initial configuration and upgrade configurations on upgrades.
* If it is unavoidable to run different code during the initial installation, the ``sysconfig.gluon_version`` variable
can be checked. This variable in ``nil`` during the initial installation and contains the previously install Gluon
version otherwise. The package ``gluon-legacy`` (which is responsible for upgrades from the old firmwares of
Hamburg/Kiel/Lübeck) uses the special value ``legacy``; other packages should handle this value just as any other
string.
can be checked. This variable is ``nil`` during the initial installation and contains the previously installed Gluon
version otherwise.
Script ordering
---------------

View File

@ -5,12 +5,17 @@ As the WAN port of a node will be connected to a user's private network, it
is essential that the node only uses the WAN when it is absolutely necessary.
There are two cases in which the WAN port is used:
* Mesh VPN (package ``gluon-mesh-vpn-fastd``
* Mesh VPN (package ``gluon-mesh-vpn-fastd``)
* DNS to resolve the VPN servers' addresses (package ``gluon-wan-dnsmasq``)
After the VPN connection has been established, the node should be able to reach
the mesh's DNS servers and use these for all other name resolution.
If the device does not feature a WAN port, the LAN port is configured as WAN port.
In case such a device has multiple LAN ports, all these can be used as WAN.
Devices, which feature a "hybrid" port (labelled as WAN/LAN), this port is used as WAN.
This behavior can be reversed using the ``single_as_lan`` site.conf option.
Routing tables
~~~~~~~~~~~~~~
@ -46,4 +51,4 @@ so the WAN DNS servers aren't leaked to the primary DNS daemon.
*libpacketmark* is used to make the secondary DNS daemon send its requests over the WAN interface.
The package ``gluon-mesh-vpn-fastd`` provides an iptables rule which will redirect all DNS requests from processes running
with the primary group ``gluon-fastd`` to ``127.0.0.1:54``, thus making fastd use the secondary DNS daemon.
with the primary group ``gluon-mesh-vpn`` to ``127.0.0.1:54``, thus making fastd use the secondary DNS daemon.

View File

@ -0,0 +1,82 @@
Config Mode
===========
The `Config Mode` consists of several modules that provide a range of different
configuration options:
gluon-config-mode-core
This modules provides the core functionality for the config mode.
All modules must depend on it.
gluon-config-mode-hostname
Provides a hostname field.
gluon-config-mode-autoupdater
Informs whether the autoupdater is enabled.
gluon-config-mode-mesh-vpn
Allows toggling of mesh-vpn-fastd and setting a bandwidth limit.
gluon-config-mode-geo-location
Enables the user to set the geographical location of the node.
gluon-config-mode-contact-info
Adds a field where the user can provide contact information.
Writing Config Mode modules
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config mode modules are located at ``/lib/gluon/config-mode/wizard`` and
``/lib/gluon/config-mode/reboot``. Modules are named like ``0000-name.lua`` and
are executed in lexical order. In the standard package set, the
order is, for wizard modules:
- 0050-autoupdater-info
- 0100-hostname
- 0300-mesh-vpn
- 0400-geo-location
- 0500-contact-info
The reboot module order is:
- 0100-mesh-vpn
- 0900-msg-reboot
All modules are run in the gluon-web model context and have access to the same
variables as "full" gluon-web modules.
Wizards
-------
Wizard modules must return a function that is provided with the wizard form and an
UCI cursor. The function can create configuration sections in the form:
.. code-block:: lua
return function(form, uci)
local s = form:section(Section)
local o = s:option(Value, "hostname", "Hostname")
o.default = uci:get_first("system", "system", "hostname")
o.datatype = "hostname"
function o:write(data)
uci:set("system", uci:get_first("system", "system"), "hostname", data)
end
return {'system'}
end
The function may return a table of UCI packages to commit after the individual
fields' `write` methods have been executed. This is done to avoid committing the
packages repeatedly when multiple wizard modules modify the same package.
Reboot page
-----------
Reboot modules are simply executed when the reboot page is
rendered:
.. code-block:: lua
renderer.render_string("Hello World!")

125
docs/dev/web/controller.rst Normal file
View File

@ -0,0 +1,125 @@
Controllers
===========
Controllers live in the ``controller`` subdirectory of a gluon-web application
(``/lib/gluon/config-mode/controller`` for the config mode,
``/lib/gluon/status-page/controller`` for the status page). They define which pages ("routes")
exist under the application base URL, and what code is run when these pages are requested.
Controller scripts usually start with a *package* declaration, followed by calls
to the *entry* function, which each define one route:
.. code-block:: lua
package 'gluon-web-admin'
entry({"admin"}, alias("admin", "info"), _("Advanced settings"), 10)
entry({"admin", "info"}, template("admin/info"), _("Information"), 1)
*package* defines the translation namespace for the titles of the defined
pages as well as the referenced views and models. The entry function expects 4
arguments:
- `path`: Components of the path to define a route for.
The above example defines routes for the paths ``admin`` and ``admin/info``.
- `target`: Dispatcher for the route. See the following section for details.
- `title`: Page title (also used in navigation). The underscore function is used
to mark the strings as translatable for ``i18n-scan.pl``.
- `order`: Sort index in navigation (defaults to 100)
Navigation indexes are automatically generated for each path level. Pages can be
hidden from the navigation by setting the `hidden` property of the node object
returned by `entry`:
.. code-block:: lua
entry({"hidden"}, alias("foo"), _("I'm hidden!")).hidden = true
Dispatchers
-----------
- *alias* (*path*, ...): Redirects to a different page. The path components are
passed as individual arguments.
- *call* (*func*, ...): Runs a Lua function for custom request handling. The given
function is called with the HTTP object and the template renderer as first
two arguments, followed by all additional arguments passed to `call`.
- *template* (*view*): Renders the given view. See :doc:`view`.
- *model* (*name*): Displays and evaluates a form as defined by the given model. See the
:doc:`model` page for an explanation of gluon-web models.
.. _web-controller-http:
The HTTP object
---------------
The HTTP object provides information about the HTTP requests and allows to add
data to the reply. Using it directly is rarely necessary when gluon-web
models and views are used.
Useful functions:
- *getenv* (*key*): Returns a value from the CGI environment passed by the webserver.
- *formvalue* (*key*): Returns a value passed in a query string or in the content
of a POST request. If multiple values with the same name have been passed, only
the first is returned.
- *formvaluetable* (*key*): Similar to *formvalue*, but returns a table of all
values for the given key.
- *status* (*code*, *message*): Writes the HTTP status to the reply. Has no effect
if a status has already been sent or non-header data has been written.
- *header* (*key*, *value*): Adds an HTTP header to the reply to be sent to
the client. Has no effect when non-header data has already been written.
- *prepare_content* (*mime*): Sets the *Content-Type* header to the given MIME
type, potentially setting additional headers or modifying the MIME type to
accommodate browser quirks
- *write* (*data*, ...): Sends the given data to the client. If headers have not
been sent, it will be done before the data is written.
HTTP functions are called in method syntax, for example:
.. code-block:: lua
http:write('Output!')
.. _web-controller-template-renderer:
The template renderer
---------------------
The template renderer allows to render templates (views). The most useful functions
are:
- *render* (*view*, *scope*, *pkg*): Renders the given view, optionally passing a table
with additional variables to make available in the template. The passed package
defines the translation namespace.
- *render_string* (*str*, *scope*, *pkg*): Same as *render*, but the template is passed
directly instead of being loaded from the view directory.
The renderer functions are called in property syntax, for example:
.. code-block:: lua
renderer.render('layout')
Differences from LuCI
---------------------
- Controllers must not use the *module* function to define a Lua module (*gluon-web*
will set up a proper environment for each controller itself)
- Entries are defined at top level, not inside an *index* function
- The *alias* dispatcher triggers an HTTP redirect instead of directly running
the dispatcher of the aliased route.
- The *call* dispatcher is passed a function instead of a string with a function
name.
- The *cbi* dispatcher of LuCI has been renamed to *model*.
- The HTTP POST handler support the multipart/form-data encoding only, so
``enctype="multipart/form-data"`` must be included in all *<form>* HTML
elements.
- Other dispatchers like *form* are not provided.

109
docs/dev/web/i18n.rst Normal file
View File

@ -0,0 +1,109 @@
Internationalization support
============================
General guidelines
------------------
* All config mode packages must be fully translatable, with complete English and German texts.
* All new expert mode packages must be fully translatable. English texts are required.
* German translations are recommended. Other supported languages, especially French, are
nice-to-have, but not required. If you don't know a language well, rather leave the translation
blank, so it is obvious that there is no proper translation yet.
* Existing expert mode packages should be made translatable as soon as possible.
* The "message IDs" (which are the arguments to the *translate* function) should be the
English texts.
i18n support in Gluon
---------------------
Internationalization support is available in all components (models, view and
controllers) of *gluon-web*-based packages. Strings are translated using the *translate*,
*_translate* and *translatef* functions (*translate* for static strings, *translatef*
for printf-like formatted string; *_translate* works the same as *translate*, but
will return *nil* instead of the original string when no translation is available).
In views, the special tags ``<%:...%>`` can be used to translate the contained string.
Example from the *gluon-config-mode-geo-location* package:
.. code-block:: lua
local share_location = s:option(Flag, "location", translate("Show node on the map"))
Note that translations are *namespaced*: each package will only use its own
translation strings by default. For this purpose, the package name must by
specified in a package's controller. It is possible to access a different
translation package using the *i18n* function from models and view, which is
necessary when strings from the site configuration are used, or packages do not
have their own controller (which is the case for config mode wizard components).
.. code-block:: lua
local site_i18n = i18n 'gluon-site'
local msg = site_i18n._translate('gluon-config-mode:welcome')
Adding translation templates to Gluon packages
----------------------------------------------
The i18n support is based on the standard gettext system. For each translatable package,
a translation template with extension ``.pot`` can be created using the *i18n-scan.pl*
script in the ``contrib`` directory:
.. code-block:: sh
cd package/gluon-web-mesh-vpn-fastd
mkdir i18n
cd i18n
../../../contrib/i18n-scan.pl ../files ../luasrc > gluon-web-mesh-vpn-fastd.pot
The same command can be run again to update the template.
In addition, the Makefile must be adjusted. Instead of OpenWrt's default *package.mk*,
the Gluon version (``../gluon.mk`` for core packages) must be used. The i18n files must be installed
and PKG_CONFIG_DEPENDS must be added::
...
include ../gluon.mk
PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG)
...
define Build/Compile
$(call GluonBuildI18N,gluon-web-mesh-vpn-fastd,i18n)
endef
define Package/gluon-web-mesh-vpn-fastd/install
...
$(call GluonInstallI18N,gluon-web-mesh-vpn-fastd,$(1))
endef
...
Adding translations
-------------------
A new translation file for a template can be added using the *msginit* command:
.. code-block:: sh
cd package/gluon-web-mesh-vpn-fastd/i18n
msginit -l de
This will create the file *de.po* in which the translations can be added.
The translation file can be updated to a new template version using the *msgmerge* command:
.. code-block:: sh
msgmerge -U de.po gluon-web-mesh-vpn-fastd.pot
After the merge, the translation file should be checked for "fuzzy matched" entries where
the original English texts have changed. All entries from the translation file should be
translated in the *.po* file (or removed from it, so the original English texts are displayed
instead).
Adding support for new languages
--------------------------------
A list of all languages supported by *gluon-web* can be found in ``package/gluon.mk``.
New languages just need to be added to *GLUON_SUPPORTED_LANGS*, and a human-readable
language name must be defined.

153
docs/dev/web/model.rst Normal file
View File

@ -0,0 +1,153 @@
Models
======
Models are defined in the ``model`` subdirectory of a gluon-web application
(``/lib/gluon/config-mode/model`` for the config mode; the status
page does not use any models). Model support is not part of the gluon-web core
anymore, but is provided by the *gluon-web-model* package.
Each model defines one or more forms to display on a page, and how the submitted
form data is handled.
Let's start with an example:
.. code-block:: lua
local f = Form(translate('Hostname'))
local s = f:section(Section)
local o = s:option(Value, 'hostname', translate('Hostname'))
o.default = uci:get_first('system', 'system', 'hostname')
function o:write(data)
uci:set('system', uci:get_first('system', 'system'), 'hostname', data)
uci:commit('system')
end
return f
The toplevel element of a model is always a *Form*, but it is also possible for
a model to return multiple forms, which are displayed one below the other.
A *Form* has one or more *Sections*, and each *Section* has different types
of options.
All of these elements have an *id*, which is used to identify them in the HTML
form and handlers. If no ID is given, numerical IDs will be assigned automatically,
but using explicitly named elements is often advisable (and it is required if a
form does not always include the same elements, i.e., some forms, sections or
options are added conditionally). IDs are hierarchical, so in the above example,
the *Value* would get the ID ``1.1.hostname`` (value *hostname* in first section
of first form).
Classes and methods
-------------------
- *Form* (*title*, *description*, *id*)
- *Form:section* (*type*, *title*, *description*, *id*)
Creates a new section of the given type (usually *Section*).
- *Form:write* ()
Is called after the form has been submitted (but only if the data is valid). It
is called last (after all options' *write* methods) and is usually used
to commit changed UCI packages.
The default implementation of *write* doesn't do anything, but it can be
overridden.
- *Section* (usually instantiated through *Form:section*)
- *Section:option* (*type*, *id*, *title*, *description*)
Creates a new option of the given type. Option types:
- *Value*: simple text entry
- *TextValue*: multiline text field
- *ListValue*: radio buttons or dropdown selection
- *DynamicList*: variable number of text entry fields
- *Flag*: checkbox
Most option types share the same properties and methods:
- *default*: default value
- *optional*: value may be empty
- *datatype*: one of the types described in :ref:`web-model-datatypes`
By default (when *datatype* is *nil*), all values are accepted.
- *state*: has one of the values *FORM_NODATA*, *FORM_VALID* and *FORM_INVALID*
when read in a form handler
An option that has not been submitted because of its dependencies will have
the state *FORM_NODATA*, *FORM_INVALID* if the submitted value is not valid
according to the set *datatype*, and *FORM_VALID* otherwise.
- *data*: can be read in form handlers to get the submitted value
- *depends* (*self*, *option*, *value*): adds a dependency on another option
The option will only be shown when the passed option has the given value. This
is mainly useful when the other value is a *Flag* or *ListValue*.
- *depends* (*self*, *deps*): adds a dependency on multiple other options
*deps* must be a table with options as keys and values as values. The option
will only be shown when all passed options have the corresponding values.
Multiple alternative dependencies can be added by calling *depends* repeatedly.
- *value* (*self*, *value*, *text*): adds a choice to a *ListValue*
- *write* (*self*, *data*): is called with the submitted value when all form data is valid.
Does not do anything by default, but can be overridden.
The *default* value, the *value* argument to *depends* and the output *data* always have
the same type, which is usually a string (or *nil* for optional values). Exceptions
are:
- *Flag* uses boolean values
- *DynamicList* uses a table of strings
Despite its name, the *datatype* setting does not affect the returned value type,
but only defines a validator the check the submitted value with.
For a more complete example that actually makes use of most of these features,
have a look at the model of the *gluon-web-network* package.
.. _web-model-datatypes:
Data types
----------
- *integer*: an integral number
- *uinteger*: an integral number greater than or equal to zero
- *float*: a number
- *ufloat*: a number greater than or equal to zero
- *ipaddr*: an IPv4 or IPv6 address
- *ip4addr*: an IPv4 address
- *ip6addr*: an IPv6 address
- *wpakey*: a string usable as a WPA key (either between 8 and 63 characters, or 64 hex digits)
- *range* (*min*, *max*): a number in the given range (inclusive)
- *min* (*min*): a number greater than or equal to the given minimum
- *max* (*max*): a number less than or equal to the given maximum
- *irange* (*min*, *max*): an integral number in the given range (inclusive)
- *imin* (*min*): an integral number greater than or equal to the given minimum
- *imax* (*max*): an integral number less than or equal to the given maximum
- *minlength* (*min*): a string with the given minimum length
- *maxlength* (*max*): a string with the given maximum length
Differences from LuCI
---------------------
- LuCI's *SimpleForm* and *SimpleSection* are called *Form* and *Section*, respectively
- Is it not possible to add options to a *Form* directly, a *Section* must always
be created explicitly
- Many of LuCI's CBI classes have been removed, most importantly the *Map*
- The *rmempty* option attribute does not exist, use *optional* instead
- Only the described data types are supported
- Form handlers work completely differently (in particular, a *Form*'s *handle*
method should usually not be overridden in *gluon-web*)

60
docs/dev/web/view.rst Normal file
View File

@ -0,0 +1,60 @@
Views
=====
The template parser reads views from the ``view`` subdirectory of a
gluon-web application (``/lib/gluon/config-mode/view`` for the config mode,
``lib/gluon/status-page/view`` for the status page).
Writing own views should usually be avoided in favour of using :doc:`model`
with their predefined views.
Views are partial HTML pages, with additional template tags that allow
to embed Lua code and translation strings. The following tags are defined:
- ``<%`` ... ``%>`` evaluates the enclosed Lua expression.
- ``<%|`` ... ``%>`` evaluates the enclosed Lua expression and prints its value.
- ``<%=`` ... ``%>`` evaluates the enclosed Lua expression and prints its value
*without escaping HTML entities*. This is useful when the value contains HTML code.
- ``<%+`` ... ``%>`` includes another template.
- ``<%:`` ... ``%>`` translates the enclosed string using the loaded i18n catalog.
- ``<%_`` ... ``%>`` translates the enclosed string *without escaping HTML entities*
in the translation. This only makes sense when the i18n catalog contains HTML code.
- ``<%#`` ... ``%>`` is a comment.
All of these also come in the whitespace-stripping variants ``<%-`` and ``-%>`` that
remove all whitespace before or after the tag.
Complex combinations of HTML and Lua code are possible, for example:
.. code-block:: text
<div>
<% if foo then %>
Content
<% end %>
</div>
Variables and functions
-----------------------
Many call sites define additional variables (for example, model templates can
access the model as *self* and a unique element ID as *id*), but the following
variables and functions should always be available for the embedded Lua code:
- *renderer*: :ref:`web-controller-template-renderer`
- *http*: :ref:`web-controller-http`
- *request*: Table containing the path components of the current page
- *url* (*path*): returns the URL for the given path, which is passed as a table of path components.
- *attr* (*key*, *value*): Returns a string of the form ``key="value"``
(with a leading space character before the key).
*value* is converted to a string (tables are serialized as JSON) and HTML entities
are escaped. Returns an empty string when *value* is *nil* or *false*.
- *include* (*template*): Includes another template.
- *node* (*path*, ...): Returns the controller node for the given page (passed as
one argument per path component).
Use ``node(unpack(request))`` to get the node for the current page.
- *pcdata* (*str*): Escapes HTML entities in the passed string.
- *urlencode* (*str*): Escapes the passed string for use in an URL.
- *translate*, *_translate*, *translatef* and *i18n*: see :doc:`i18n`

View File

@ -1,163 +0,0 @@
Announcing Node Information
===========================
Gluon is capable of announcing information about each node to the mesh
and to neighbouring nodes. This allows nodes to learn each others hostname,
IP addresses, location, software versions and various other information.
Format of collected data
------------------------
Information to be announced is currently split into two categories:
nodeinfo
In this category (mostly) static information is collected. If
something is unlikely to change without human intervention it should be
put here.
statistics
This category holds fast changing data, like traffic counters, uptime,
system load or the selected gateway.
Both categories will have a ``node_id`` key by default. It should be used to
match data from *statistics* to *nodeinfo*.
Accessing Node Information
--------------------------
There are two packages responsible for distribution of the information. For
one, information is distributed across the mesh using alfred_. Information
between neighbouring nodes is exchanged using `gluon-announced`.
.. _alfred: http://www.open-mesh.org/projects/alfred
alfred (mesh bound)
~~~~~~~~~~~~~~~~~~~
The package ``gluon-alfred`` is required for this to work.
Using alfred both categories are distributed within the mesh. In order to
retrieve the data you'll need both a local alfred daemon and alfred-json_
installed. Please note that at least one alfred daemon is required to run as
`master`.
.. _alfred-json: https://github.com/tcatm/alfred-json
`nodeinfo` is distributed as alfred datatype `158`, while `statistics` uses
`159`. Both are compressed using GZip (alfred-json can handle the decompression).
In order to retrieve statistics data you could run:
::
# alfred-json -z -r 159
{
"f8:d1:11:7e:97:dc": {
"processes": {
"total": 55,
"running": 2
},
"idletime": 30632.290000000001,
"uptime": 33200.07,
"memory": {
"free": 1660,
"cached": 8268,
"total": 29212,
"buffers": 2236
},
"node_id": "f8d1117e97dc",
"loadavg": 0.01
},
"90:f6:52:3e:b9:50": {
"processes": {
"total": 58,
"running": 2
},
"idletime": 28047.470000000001,
"uptime": 33307.849999999999,
"memory": {
"free": 2364,
"cached": 7168,
"total": 29212,
"buffers": 1952
},
"node_id": "90f6523eb950",
"loadavg": 0.34000000000000002
}
}
You can find more information about alfred in its README_.
.. _README: http://www.open-mesh.org/projects/alfred/repository/revisions/master/entry/README
gluon-announced
~~~~~~~~~~~~~~~
`gluon-announced` allows querying neighbouring nodes for their `nodeinfo`.
It is a daemon listening on the multicast address ``ff02::2:1001`` on
UDP port 1001 on the bare mesh interfaces.
gluon-neighbour-info
~~~~~~~~~~~~~~~~~~~~
A programm called `gluon-neighbour-info` has been developed to retrieve
information from neighbours.
::
gluon-neighbour-info -i wlan0 \
-p 1001 -d ff02:0:0:0:0:0:2:1001 \
-r nodeinfo
On optional timeout may be specified, e.g. `-t 5` (default: 3 seconds).
Adding a fact
-------------
To add a fact just add a file to either ``/lib/gluon/announce/nodeinfo.d/`` or
``/lib/gluon/announce/statistics.d/``.
The file must contain a lua script and its name will become the key for the
resulting JSON object. A simple script adding a ``hostname`` field might look
like this:
::
return uci:get_first('system', 'system', 'hostname')
The directory structure will be converted to a JSON object, i.e. you may
create subdirectories. So, if the directories look like this
::
.
├── hardware
│   └── model
├── hostname
├── network
│   └── mac
├── node_id
└── software
└── firmware
the resulting JSON would become:
::
# /lib/gluon/announce/announce.lua nodeinfo
{
"hardware" : {
"model" : "TP-Link TL-MR3420 v1"
},
"hostname" : "mr3420-test",
"network" : {
"mac" : "90:f6:52:82:06:02"
},
"node_id" : "90f652820602",
"software" : {
"firmware" : {
"base" : "gluon-v2014.2-32-ge831099",
"release" : "0.4.1+0-exp20140720"
}
}
}

View File

@ -8,7 +8,7 @@ If you select this package, add a list of authorized keys to ``site.conf`` like
{
authorized_keys = { 'ssh-rsa AAA.... user1@host',
'ssh-rsa AAA.... user2@host },
'ssh-rsa AAA.... user2@host' },
hostname_prefix = ...
...

View File

@ -7,33 +7,69 @@ Building Images
---------------
By default, the autoupdater is disabled (as it is usually not helpful to have unexpected updates
during development), but it can be enabled by setting the variable GLUON_BRANCH when building
to override the default branch set in the set in the site configuration.
during development), but it can be enabled by setting the variable ``GLUON_AUTOUPDATER_ENABLED`` to ``1`` when building.
It is also possible to override the default branch during build using the variable ``GLUON_AUTOUPDATER_BRANCH``.
If a default branch is set neither in *site.conf* nor via ``GLUON_AUTOUPDATER_BRANCH``, the default branch is
implementation-defined. Currently, the branch with the first name in alphabetical order is chosen.
A manifest file for the updater can be generated with `make manifest`. A signing script (using
ecdsautils) can by found in the `contrib` directory. When creating the manifest, ``GLUON_PRIORITY`` can
be set on the command line, or it can be taken from the ``site.mk``.
``ecdsautils``) can be found in the `contrib` directory. When creating the manifest, the
``PRIORITY`` value may be defined by setting ``GLUON_PRIORITY`` on the command line or in ``site.mk``.
The priority defines the maximum number of days that may pass between releasing an update and installation
of the images. The update probability with start at 0 after the release time mentioned in the manifest
and then slowly rise to 1 after the number of days given by the priority has passed.
``GLUON_PRIORITY`` defines the maximum number of days that may pass between releasing an update and installation
of the images. The update probability will start at 0 after the release time declared in the manifest file
by the variable DATE and then slowly rise up to 1 when ``GLUON_PRIORITY`` days have passed. The autoupdater checks
for updates hourly (at a random minute of the hour), but usually only updates during its run between
4am and 5am, except when the whole ``GLUON_PRIORITY`` days and another 24 hours have passed.
The priority may be an integer or a decimal fraction.
``GLUON_PRIORITY`` may be an integer or a decimal fraction.
If ``GLUON_RELEASE`` is passed to ``make`` explicitly or it is generated dynamically
in ``site.mk``, care must be taken to pass the same ``GLUON_RELEASE`` to ``make manifest``,
as otherwise the generated manifest will be incomplete.
Manifest format
------------------------
The manifest starts with a short header, followed by the list of firmwares and signatures.
The header contains the following information:
.. code-block:: sh
BRANCH=stable
DATE=2020-10-07 00:00:00+02:00
PRIORITY=7
- ``BRANCH`` is the autoupdater branch name that needs to match the nodes configuration.
- ``DATE`` specifies when the time period for the update begins. Nodes will do their regular update during a random minute
between 4:00 and 4:59 am. Nodes might not always have a reliable NTP synchronization, which is why a fallback mechanism
exists, that checks for an update, and will execute if ``DATE`` is at least 24h in the past.
- ``PRIORITY`` can be configured as ``GLUON_PRIORITY`` when generating the manifest or in ``site.mk``, and defines
the number of days over which the update should be stretched out after ``DATE``. Nodes will calculate a probability
based on the time left to determine when to update.
Automated nightly builds
------------------------
A fully automated nightly build could use the following commands:
::
.. code-block:: sh
git pull
(cd site && git pull)
# git -C site pull
make update
make clean
make -j5 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental
make manifest GLUON_BRANCH=experimental
contrib/sign.sh $SECRETKEY images/sysupgrade/experimental.manifest
make clean GLUON_TARGET=ath79-generic
NUM_CORES_PLUS_ONE=$(expr $(nproc) + 1)
make -j$NUM_CORES_PLUS_ONE GLUON_TARGET=ath79-generic GLUON_RELEASE=$GLUON_RELEASE \
GLUON_AUTOUPDATER_BRANCH=experimental GLUON_AUTOUPDATER_ENABLED=1
make manifest GLUON_RELEASE=$GLUON_RELEASE GLUON_AUTOUPDATER_BRANCH=experimental
contrib/sign.sh $SECRETKEY output/images/sysupgrade/experimental.manifest
rm -rf /where/to/put/this/experimental
cp -r images /where/to/put/this/experimental
cp -r output/images /where/to/put/this/experimental
Infrastructure
@ -59,7 +95,7 @@ The server must be available via IPv6.
Command Line
------------
These commands can be used on a node.
These commands can be used on a node:
::
@ -71,4 +107,8 @@ These commands can be used on a node.
# Force update check, even when the updater is disabled
autoupdater -f
::
# If fallback is true the updater will perform an update only if the timespan
# PRIORITY days (as defined in the manifest) and another 24h have passed
autoupdater --fallback

View File

@ -14,8 +14,8 @@ Activating Config Mode
----------------------
Config Mode is automatically entered at the first boot. You can re-enter
Config Mode by pressing and holding the RESET/WPS button for about three
seconds. The device should reboot (all LEDs will turn of briefly) and
Config Mode by pressing and holding the RESET/WPS/DECT button for about three
seconds. The device should reboot (all LEDs will turn off briefly) and
Config Mode will be available.

View File

@ -0,0 +1,26 @@
DNS forwarder
=============
A Gluon node can be configured to act as a DNS forwarder. Requests for the
next-node hostname(s) can be answered locally, without querying the upstream
resolver.
**Note:** While this reduces answer time and allows to use the next-node
hostname without upstream connectivity, this feature should not be used for
next-node hostnames that are FQDN when the zone uses DNSSEC.
One or more upstream resolvers can be configured in the *dns.servers* setting.
When *next_node.name* is set, A and/or AAAA records for the next-node IP
addresses are placed in the dnsmasq configuration.
::
dns = {
servers = { '2001:db8::1', },
},
next_node = {
name = { 'nextnode.location.community.example.org', 'nextnode', 'nn' },
ip6 = '2001:db8:8::1',
ip4 = '198.51.100.1',
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,18 +0,0 @@
Mesh on WAN
===========
It's possible to enable the mesh on the WAN port like this::
uci set network.mesh_wan.auto=1
uci commit
It may also be disabled again by running::
uci set network.mesh_wan.auto=0
uci commit
site.conf
---------
The optional option ``mesh_on_wan`` may be set to ``true`` (``false`` is the
default) to enable meshing on the WAN port without further configuration.

View File

@ -0,0 +1,139 @@
Node monitoring
===============
Gluon is capable of announcing information about each node to the mesh
and to neighbouring nodes. This allows nodes to learn each others hostname,
IP addresses, location, software versions and various other information.
Format of collected data
------------------------
Information to be announced is currently split into three categories:
nodeinfo
In this category (mostly) static information is collected. If
something is unlikely to change without human intervention it should be
put here.
statistics
This category holds fast changing data, like traffic counters, uptime,
system load or the selected gateway.
neighbours
`neighbours` contains information about all neighbouring nodes of all
interfaces. This data can be used to determine the network topology.
All categories will have a ``node_id`` key. It should be used to
relate data of different categories.
Accessing Node Information
--------------------------
There are two packages responsible for distribution of the information. For
one, information is distributed across the mesh using alfred_. Information
between neighbouring nodes is exchanged using `gluon-respondd`.
.. _alfred: https://www.open-mesh.org/projects/alfred
alfred (mesh bound)
~~~~~~~~~~~~~~~~~~~
The package ``gluon-alfred`` is required for this to work.
Using alfred both categories are distributed within the mesh. In order to
retrieve the data you'll need both a local alfred daemon and alfred-json_
installed. Please note that at least one alfred daemon is required to run as
`master`.
.. _alfred-json: https://github.com/ffnord/alfred-json
The following datatypes are used:
* `nodeinfo`: 158
* `statistics`: 159
* `neighbours`: 160
All data is compressed using GZip (alfred-json can handle the decompression).
In order to retrieve statistics data you could run:
::
# alfred-json -z -r 159
{
"f8:d1:11:7e:97:dc": {
"processes": {
"total": 55,
"running": 2
},
"idletime": 30632.290000000001,
"uptime": 33200.07,
"memory": {
"free": 1660,
"cached": 8268,
"total": 29212,
"buffers": 2236
},
"node_id": "f8d1117e97dc",
"loadavg": 0.01
},
"90:f6:52:3e:b9:50": {
"processes": {
"total": 58,
"running": 2
},
"idletime": 28047.470000000001,
"uptime": 33307.849999999999,
"memory": {
"free": 2364,
"cached": 7168,
"total": 29212,
"buffers": 1952
},
"node_id": "90f6523eb950",
"loadavg": 0.34000000000000002
}
}
You can find more information about alfred in its README_.
.. _README: https://git.open-mesh.org/alfred.git/blob_plain/refs/heads/master:/README.rst
gluon-respondd
~~~~~~~~~~~~~~
`gluon-respondd` allows querying neighbouring nodes for their information.
It is a daemon listening on the multicast address ``ff02::2:1001`` on
UDP port 1001 on the mesh interface and on the multicast address
``ff05::2:1001`` on the `br-client` interface. Unicast
requests are supported as well.
The supported requests are:
* ``nodeinfo``, ``statistics``, ``neighbours``: Returns the data of single category uncompressed.
* ``GET nodeinfo``, ...: Returns the data of one or multiple categories (separated by spaces)
compressed using the `deflate` algorithm (without a gzip header). The data may
be decompressed using zlib and many zlib bindings using -15 as the window size parameter.
gluon-neighbour-info
~~~~~~~~~~~~~~~~~~~~
The program `gluon-neighbour-info` can be used to retrieve
information from other nodes.
::
gluon-neighbour-info -i bat0 \
-p 1001 -d ff05:0:0:0:0:0:2:1001 \
-r nodeinfo
An optional timeout may be specified, e.g. `-t 5` (default: 3 seconds). See
the usage information printed by ``gluon-neighbour-info -h`` for more information
about the supported arguments.
Adding a data provider
----------------------
To add a provider, you need to install a shared object into ``/lib/gluon/respondd``.
For more information, refer to the `respondd README <https://github.com/freifunk-gluon/packages/blob/master/net/respondd/README.md>`_
and have a look the existing providers.

View File

@ -0,0 +1,276 @@
Multidomain Support
===================
Preamble
--------
There comes a time when a mesh network grows past sensible boundaries.
As broadcast traffic grows, mesh networks experience scaling issues and
using them becomes very unpleasant. An approach to solve this follows
the well-known “divide and conquer” paradigm and splits a large network
into multiple smaller networks. These smaller networks start with a
dedicated layer 2 network each, which are interconnected via their
gateways by layer 3 routing. Gluon is already field-tested handling a
single domain and the multidomain feature allows for the reconfiguration
of key parameters that decide which domain a node participates in,
without the need of a distinct set of firmware images for each mesh domain.
Overview
--------
Multidomain support allows to build a single firmware with multiple,
switchable domain configurations. The nomenclature is as follows:
- ``site``: an aggregate over multiple domains
- ``domain``: mesh network with connectivity parameters that prevent
accidental bridging with other domains
- ``domain code``: unique domain identifier
- ``domain name``: pretty name for a domain code
By default Gluon builds firmware with a single domain embedded into
``site.conf``. To use multiple domains, enable it in ``site.mk``:
::
GLUON_MULTIDOMAIN=1
In the site repository, create the ``domains/`` directory, which will
hold your domain configurations. Each domain configuration file is named
after its primary ``domain_code``, additional domain codes and names are
supported.
::
site/
|-- site.conf
|-- site.mk
|-- i18n/
|-- domains/
|-- alpha_centauri.conf
|-- beta_centauri.conf
|-- gamma_centauri.conf
The domain configuration ``alpha_centauri.conf`` could look like this.
::
{
domain_names = {
alpha_centauri = 'Alpha Centauri'
},
-- more domain specific config follows below
}
In this example “Alpha Centauri” is the user-visible ``domain_name`` for the
domain_code ``alpha_centauri``. Also note that the domain code
``alpha_centauri`` matches the filename ``alpha_centauri.conf``.
Additional domain codes/names can be added to ``domain_names``, which
are treated as aliases for the their domain configuration. Aliases can
be used to offer more fine-grained and well-recognizable domain choices
to users. Having multiple aliases on a single domain is a helpful
precursor to splitting the domain into even smaller blocks.
Furthermore you have to specify the ``default_domain`` in the ``site.conf``.
This domain is applied in following cases:
- When the config mode is skipped.
- When a domain is removed in a new firmware release, the default_domain
will be chosen then.
- When a user selects a wrong domain code via uci.
Please note, that this value is saved to uci, so changing the `default_domain`
value in the `site.conf` in a new firmware release only affects the actual
domain of a router, if and only if one of the above conditions matches.
Switching the domain
--------------------
Via commandline
^^^^^^^^^^^^^^^
::
gluon-switch-domain 'newdomaincode'
When the node is not in config mode, ``gluon-switch-domain`` will automatically
reboot the node by default. This can be suppressed by passing ``--no-reboot``::
gluon-switch-domain --no-reboot 'newdomaincode'
Switching the domain without reboot is currently **experimental**.
Via config mode
^^^^^^^^^^^^^^^
To allow switching the domain via config mode, add ``config-mode-domain-select``
to GLUON_FEATURES in site.mk.
|image0|
Allowed site variables
----------------------
Internally the site variables are merged from the ``site.conf`` and the
selected ``domain.conf``, so the most variables are also allowed in
``site.conf`` and in ``domain.conf``. But there are some exceptions,
which do not make sense in a domain or site specific way. The following
sections give an overview over variables that are only usable in either
site or domain context.
site.conf only variables
^^^^^^^^^^^^^^^^^^^^^^^^
- Used in as initial default values, when the firmware was just flashed
and/or the config mode is skipped, so they do not make sense in a
domain specific way:
- authorized_keys
- default_domain
- poe_passthrough
- mesh_on_wan
- mesh_on_lan
- single_as_lan
- setup_mode.skip
- autoupdater.branch
- mesh_vpn.enabled
- mesh_vpn.pubkey_privacy
- mesh_vpn.bandwidth_limit
- mesh_vpn.bandwidth_limit.enabled
- mesh_vpn.bandwidth_limit.ingress
- mesh_vpn.bandwidth_limit.egress
- Variables that influence the appearance of the config mode,
domain-independent because they are relevant before a domain was selected.
- config_mode.geo_location.show_altitude
- config_mode.hostname.optional
- config_mode.remote_login
- config_mode.remote_login.show_password_form
- config_mode.remote_login.min_password_length
- hostname_prefix
- mesh_vpn.fastd.configurable
- roles.default
- roles.list
- Specific to a firmware build itself:
- site_code
- site_name
- autoupdater.branches.*.name
- autoupdater.branches.*.good_signatures
- autoupdater.branches.*.pubkeys
- We simply do not see any reason, why these variables could be helpful
in a domain specific way:
- mesh_vpn.fastd.syslog_level
- timezone
- regdom
domain.conf only variables
^^^^^^^^^^^^^^^^^^^^^^^^^^
- Obviously:
- domain_names
- a table of domain codes to domain names
``domain_names = { foo = 'Foo Domain', bar = 'Bar Domain', baz = 'Baz Domain' }``
- hide_domain
- prevents a domain name(s) from appearing in config mode, either
boolean or array of domain codes
- ``true``, ``false``
- ``{ 'foo', 'bar' }``
- Because each domain is considered as an own layer 2 network, these
values should be different in each domain:
- next_node.ip4
- next_node.ip6
- next_node.name
- prefix6
- prefix4
- extra_prefixes6
- To prevent accidental bridging of different domains, all meshing
technologies should be separated:
- domain_seed (wired mesh)
- must be a random value used to derive the vxlan id for wired meshing
- wifi*.mesh.id
- mesh_vpn.fastd.groups.*.peers.remotes
- mesh_vpn.fastd.groups.*.peers.key
- mesh_vpn.tunneldigger.brokers
- Clients consider WiFi networks sharing the same ESSID as if they were
the same L2 network and try to reconfirm and reuse previous
addressing. If multiple neighbouring domains shared the same ESSID,
the roaming experience of clients would degrade.
- wifi*.ap.ssid
- Some values should be only set in legacy domains and not in new domains.
- mesh.vxlan
- By default, this value is `true`. It should be only set to `false`
for one legacy domain, since vxlan prevents accidental wired
merges of domains. For old domains this value is still available
to keep compatibility between all nodes in one domain.
- next_node.mac
- For new domains, the default value should be used, since there is
no need for a special mac (or domain specific mac). For old domains
this value is still available to keep compatibility between all
nodes in one domain.
Example config
--------------
site.mk
^^^^^^^
.. literalinclude:: ../multidomain-site-example/site.mk
:language: makefile
site.conf
^^^^^^^^^
.. literalinclude:: ../multidomain-site-example/site.conf
:language: lua
domains/alpha_centauri.conf
^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. literalinclude:: ../multidomain-site-example/domains/alpha_centauri.conf
:language: lua
i18n/en.po
^^^^^^^^^^
.. literalinclude:: ../multidomain-site-example/i18n/en.po
:language: po
i18n/de.po
^^^^^^^^^^
.. literalinclude:: ../multidomain-site-example/i18n/de.po
:language: po
modules
^^^^^^^
.. literalinclude:: ../multidomain-site-example/modules
:language: makefile
.. |image0| image:: multidomain_configmode.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1,20 +1,33 @@
Private WLAN
============
It is possible to set up a private WLAN that bridges the WAN port and is seperated from the mesh network.
It is possible to set up a private WLAN that bridges the WAN port and is separated from the mesh network.
Please note that you should not enable ``mesh_on_wan`` simultaneously.
The private WLAN can be enabled through the config mode if the package ``gluon-luci-private-wifi`` is installed.
The private WLAN is encrypted using WPA2 by default. On devices with enough flash and a supported radio,
WPA3 or WPA2/WPA3 mixed-mode can be used instead of WPA2. For this to work, the ``wireless-encryption-wpa3``
feature has to be added to ``GLUON_FEATURES``.
It is recommended to enable IEEE 802.11w management frame protection for WPA2/WPA3 networks, however this
can lead to connectivity problems for older clients. In this case, management frame protection can be
made optional or completely disabled in the advanced settings tab.
The private WLAN can be enabled through the config mode if the package ``gluon-web-private-wifi`` is installed.
You may also enable a private WLAN using the command line::
uci set wireless.wan_radio0=wifi-iface
uci set wireless.wan_radio0.device=radio0
uci set wireless.wan_radio0.network=wan
uci set wireless.wan_radio0.mode=ap
uci set wireless.wan_radio0.encryption=psk2
uci set wireless.wan_radio0.ssid="$SSID"
uci set wireless.wan_radio0.key="$KEY"
uci set wireless.wan_radio0.disabled=0
RID=0
SSID="privateWLANname"
KEY="yoursecret1337password"
uci set wireless.wan_radio$RID=wifi-iface
uci set wireless.wan_radio$RID.device=radio$RID
uci set wireless.wan_radio$RID.network=wan
uci set wireless.wan_radio$RID.mode=ap
uci set wireless.wan_radio$RID.encryption=psk2
uci set wireless.wan_radio$RID.ssid="$SSID"
uci set wireless.wan_radio$RID.key="$KEY"
uci set wireless.wan_radio$RID.disabled=0
uci set wireless.wan_radio$RID.macaddr=$(lua -e "print(require('gluon.util').generate_mac(3+4*$RID))")
uci commit
wifi

View File

@ -2,8 +2,8 @@ Roles
=====
It is possible to define a set of roles you want to distinguish at backend side. One node can own one
role which it will announce via alfred inside the mesh. This will make it easier to differentiate
nodes when parsing alfred data. E.g to count only **normal** nodes and not the gateways
role which it will announce via respondd/announced inside the mesh. This will make it easier to differentiate
nodes when parsing respondd data. E.g to count only **normal** nodes and not the gateways
or servers (nodemap). A lot of things are possible.
For this the section ``roles`` in ``site.conf`` is needed::
@ -11,22 +11,24 @@ For this the section ``roles`` in ``site.conf`` is needed::
roles = {
default = 'node',
list = {
node = 'Normal Node',
test = 'Test Node',
backbone = 'Backbone Node',
service = 'Service Node',
'node',
'test',
'backbone',
'service',
},
},
The strings to display in the web interface are configured per language in the
``i18n/en.po``, ``i18n/de.po``, etc. files of the site repository using message IDs like
``gluon-web-node-role:role:node`` and ``gluon-web-node-role:role:backbone``.
The value of ``default`` is the role every node will initially own. This value should be part of ``list`` as well.
If you want node owners to change the defined roles via config-mode you can add the package
``gluon-luci-node-role`` to your ``site.mk``. Then, you can select one of the defined roles from a dropdown list
where the right-handed value is the one which is displayed and the left-handed key the one which is configured into
the system.
``gluon-web-node-role`` to your ``site.mk``.
The role is saved in ``gluon-node-info.system.role``. To change the role using command line do::
uci set gluon-node-info.system.role="$ROLE"
uci set gluon-node-info.@system[0].role="$ROLE"
uci commit
Please replace ``$ROLE`` by the role you want the node to own.

57
docs/features/vpn.rst Normal file
View File

@ -0,0 +1,57 @@
Mesh-VPN
========
Gluon integrates several OSI-Layer 2 tunneling protocols to
enable interconnects between local meshes and provide
internetwork access. Available protocols currently are:
- fastd
- L2TPv3 (via tunneldigger)
fastd is a lightweight userspace tunneling daemon, that
implements cipher suites that are specifically designed
to work well on embedded devices. It offers encryption
and authentication. Its primary drawback are the necessary
context-switches when forwarding packets.
L2TPv3 is an in-kernel tunneling protocol that performs well,
but offers no security properties by itself.
The brokering of the tunnel happens through tunneldigger,
its primary drawback being the lack of IPv6 support.
fastd
-----
Configurable Cipher
^^^^^^^^^^^^^^^^^^^
From the site configuration fastd can be allowed to offer
toggleable encryption in the config mode with the intent to
increase throughput, although in practice the gain is minimal.
**Site configuration:**
1) Add the feature ``web-mesh-vpn-fastd`` in ``site.mk``
2) Set ``mesh_vpn.fastd.configurable = true`` in ``site.conf``
3) Optionally add ``null`` to the ``mesh_vpn.fastd.methods`` table if you want "Performance mode" as default (not recommended)
**Gateway configuration:**
1) Prepend the ``null`` cipher in fastd's method list
**Config Mode:**
The resulting firmware will allow users to choose between secure (encrypted) and fast (unencrypted) transport.
.. image:: fastd_mode.gif
**Unix socket:**
To confirm whether the correct cipher is being used, fastd's unix
socket can be interrogated, after installing for example `socat`.
::
opkg update
opkg install socat
socat - UNIX-CONNECT:/var/run/fastd.mesh_vpn.socket

View File

@ -0,0 +1,87 @@
Wired mesh (Mesh-on-WAN/LAN)
############################
In addition to meshing over WLAN and VPN, it is also possible to
configure wired meshing over the LAN or WAN ports. This allows
nodes to be connected directly or over wireless bridges.
Mesh-on-WAN can be enabled in addition to the mesh VPN, so multiple nodes
in the same local network that is used as VPN uplink can also mesh directly.
Enabling Mesh-on-WAN should be avoided if the local network is also bridged with
a WLAN access point, as meshing over batman-adv causes large amounts of
multicast traffic, which will take up a lot of airtime.
Enabling Mesh-on-LAN replaces the normal "client network" function
of the LAN ports, as client network ports may never be connected (so care must be taken to always
enable Mesh-on-LAN before connecting two nodes' LAN ports).
Wired mesh encapsulation
************************
Since version 2018.1, Gluon supports encapsulating wired mesh traffic in
`VXLAN <https://en.wikipedia.org/wiki/Virtual_Extensible_LAN>`_, a new standard with
use cases similar to VLANs, but a much greater ID space of 24bit; in addition, VXLAN
packets pass through VLAN-aware switches without any special configuration.
Encapsulating mesh traffic has two advantages:
* By using a different VXLAN ID for each site and mesh domain, accidental
wired mesh connections between nodes of different domains will be prevented.
This has special importance when nodes migrate between domains automatically,
as currently possible through different site-specific packages.
* While batman-adv traffic does not interact with non-mesh traffic in the same wired
network in any way (so Gluon nodes can mesh over existing wired networks), this is
not the case for layer 3 mesh protocols like Babel. Encapsulating the traffic allows
to distinguish mesh traffic from unrelated packets.
As enabling VXLAN encapsulation will prevent wired mesh communication with old nodes
that do not support VXLAN yet, VXLANs can be enabled per-domain using the site configuration
setting *mesh.vxlan*. VXLAN is enabled by default in multidomain setups; in single-domain
site configurations, the *mesh.vxlan* setting is mandatory. We recommend to enable
VXLAN encapsulation in all new sites and domains.
Non-encapsulated ("legacy") wired meshing will be removed in a future Gluon release.
We cannot give a concrete timeframe for the removal yet; a missing prerequisite is the
implementation of a robust migration path for existing deployments.
Configuration
*************
Both Mesh-on-WAN and Mesh-on-LAN can be configured on the "Network" page
of the *Advanced settings* (if the package ``gluon-web-network`` is installed).
It is also possible to enable Mesh-on-WAN and Mesh-on-LAN by default by
adding ``mesh_on_wan = true`` and ``mesh_on_lan = true`` to ``site.conf``.
Commandline
===========
Enable Mesh-on-WAN::
uci set network.mesh_wan.disabled=0
uci commit network
Disable Mesh-on-WAN::
uci set network.mesh_wan.disabled=1
uci commit network
Enable Mesh-on-LAN::
uci set network.mesh_lan.disabled=0
for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do
uci del_list network.client.ifname=$ifname
done
uci commit network
Disable Mesh-on-LAN::
uci set network.mesh_lan.disabled=1
for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do
uci add_list network.client.ifname=$ifname
done
uci commit network
Please note that this configuration has changed in Gluon 2016.1. Using
the old commands on 2016.1 and later will break the corresponding options
in the *Advanced settings*.

View File

@ -0,0 +1,26 @@
WLAN configuration
==================
Gluon allows to configure 2.4GHz and 5GHz radios independently. The configuration
may include one or both of the two networks "client" (AP mode) and "mesh" (802.11s
mode), which can be used simultaneously. See :doc:`../user/site` for details on the
configuration.
Upgrade behaviour
-----------------
For each of these networks, the site configuration may define a `disabled` flag (by
default, all configured networks are enabled). This flag is merely a default setting,
on upgrades the existing setting is always retained (as this setting may have been changed
by the user). This means that it is not possible to enable or disable an existing network
configurations during upgrades.
During upgrades the wifi channel of the 2.4GHz and 5GHz radio will be restored to the channel
configured in the site.conf. If you need to preserve a user defined wifi channel during upgrades
you can configure this via the uci section ``gluon-core.wireless``::
uci set gluon-core.@wireless[0].preserve_channels='1'
When channels should be preserved, toggling the outdoor mode will have no effect on the channel settings.
Therefore, the Outdoor mode settings won't be displayed in config mode.
Keep in mind that nodes running wifi interfaces on custom channels can't mesh with default nodes anymore!

View File

@ -1,166 +1,138 @@
Welcome to Gluon
================
Gluon is a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes.
Several Freifunk communities in Germany use Gluon as the foundation of their Freifunk firmwares.
Gluon is a modular framework for creating OpenWrt-based firmware images for wireless mesh nodes.
Several Freifunk communities in Germany use Gluon as the foundation of their Freifunk firmware.
User Documentation
------------------
.. toctree::
:caption: User Documentation
:maxdepth: 2
user/getting_started
user/site
user/supported_devices
user/x86
user/faq
Features
--------
.. toctree::
:caption: Features
:maxdepth: 2
features/configmode
features/autoupdater
features/wlan-configuration
features/private-wlan
features/mesh-on-wan
features/announce
features/wired-mesh
features/dns-forwarder
features/monitoring
features/multidomain
features/authorized-keys
features/roles
Developer Documentation
-----------------------
features/vpn
.. toctree::
:caption: Developer Documentation
:maxdepth: 2
dev/basics
dev/hardware
dev/packages
dev/upgrade
dev/configmode
dev/wan
dev/i18n
Releases
--------
dev/mac_addresses
dev/site_library
dev/build
dev/debugging
.. toctree::
:caption: gluon-web Reference
:maxdepth: 1
dev/web/controller
dev/web/model
dev/web/view
dev/web/i18n
dev/web/config-mode
.. toctree::
:caption: Packages
:maxdepth: 1
package/gluon-client-bridge
package/gluon-config-mode-domain-select
package/gluon-ebtables-filter-multicast
package/gluon-ebtables-filter-ra-dhcp
package/gluon-ebtables-limit-arp
package/gluon-ebtables-source-filter
package/gluon-hoodselector
package/gluon-logging
package/gluon-mesh-batman-adv
package/gluon-mesh-wireless-sae
package/gluon-radv-filterd
package/gluon-scheduled-domain-switch
package/gluon-web-admin
package/gluon-web-logging
.. toctree::
:caption: Releases
:maxdepth: 1
releases/v2021.1
releases/v2020.2.3
releases/v2020.2.2
releases/v2020.2.1
releases/v2020.2
releases/v2020.1.4
releases/v2020.1.3
releases/v2020.1.2
releases/v2020.1.1
releases/v2020.1
releases/v2019.1.3
releases/v2019.1.2
releases/v2019.1.1
releases/v2019.1
releases/v2018.2.4
releases/v2018.2.3
releases/v2018.2.2
releases/v2018.2.1
releases/v2018.2
releases/v2018.1.4
releases/v2018.1.3
releases/v2018.1.2
releases/v2018.1.1
releases/v2018.1
releases/v2017.1.8
releases/v2017.1.7
releases/v2017.1.6
releases/v2017.1.5
releases/v2017.1.4
releases/v2017.1.3
releases/v2017.1.2
releases/v2017.1.1
releases/v2017.1
releases/v2016.2.7
releases/v2016.2.6
releases/v2016.2.5
releases/v2016.2.4
releases/v2016.2.3
releases/v2016.2.2
releases/v2016.2.1
releases/v2016.2
releases/v2016.1.6
releases/v2016.1.5
releases/v2016.1.4
releases/v2016.1.3
releases/v2016.1.2
releases/v2016.1.1
releases/v2016.1
releases/v2015.1.2
releases/v2015.1.1
releases/v2015.1
releases/v2014.4
releases/v2014.3.1
releases/v2014.3
Supported Devices & Architectures
---------------------------------
ar71xx-generic
^^^^^^^^^^^^^^
* Allnet
- ALL0315N
* Buffalo
- WZR-HP-AG300H / WZR-600DHP
- WZR-HP-G450H
* D-Link
- DIR-825 (B1)
- DIR-615 (C1)
* GL-Inet
- 6408A (v1)
- 6416A (v1)
* Linksys
- WRT160NL
* Netgear
- WNDR3700 (v1, v2)
- WNDR3800
- WNDRMAC (v2)
* TP-Link
- CPE210 (v1)
- CPE220 (v1)
- CPE510 (v1)
- CPE520 (v1)
- TL-MR3020 (v1)
- TL-MR3040 (v1, v2)
- TL-MR3220 (v1, v2)
- TL-MR3420 (v1, v2)
- TL-WA701N/ND (v1)
- TL-WA750RE (v1)
- TL-WA801N/ND (v2)
- TL-WA850RE (v1)
- TL-WA860RE (v1)
- TL-WA901N/ND (v2, v3)
- TL-WDR3500 (v1)
- TL-WDR3600 (v1)
- TL-WDR4300 (v1)
- TL-WR1043N/ND (v1, v2)
- TL-WR703N (v1)
- TL-WR710N (v1)
- TL-WR740N (v1, v3, v4)
- TL-WR741N/ND (v1, v2, v4)
- TL-WR743N/ND (v1, v2)
- TL-WR841N/ND (v3, v5, v7, v8, v9)
- TL-WR842N/ND (v1, v2)
- TL-WR941N/ND (v2, v3, v4, v5)
- TL-WR2543N/ND (v1)
* Ubiquiti
- Bullet M2
- Nanostation M2
- Nanostation M XW
- Loco M XW
- Picostation M2
- Rocket M2
- UniFi AP
- UniFi AP Pro
- UniFi AP Outdoor
ar71xx-nand
^^^^^^^^^^^
* Netgear
- WNDR3700 (v4)
- WNDR4300 (v1)
mpc85xx-generic
^^^^^^^^^^^^^^^
* TP-Link
- TL-WDR4900 (v1)
x86-generic
^^^^^^^^^^^
* x86-generic
* x86-virtualbox
* x86-vmware
See also: :doc:`user/x86`
x86-kvm_guest
^^^^^^^^^^^^^
* x86-kvm
See also: :doc:`user/x86`
License
-------
@ -171,5 +143,4 @@ See LICENCE_
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`

View File

@ -0,0 +1,68 @@
{
-- multiple codes/names can be defined, the first one is the primary name
-- additional aliases can be defined
domain_names = {
alpha_centauri = 'Alpha Centauri',
rigil_kentaurus = 'Rigil Kentaurus',
proxima_centauri = 'Proxima Centauri',
},
-- 32 byte random data in hexadecimal encoding
-- This data must be unique among all sites and domains!
-- Can be generated using: echo $(hexdump -v -n 32 -e '1/1 "%02x"' </dev/urandom)
domain_seed = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
-- unique network prefixes per domain
prefix4 = '10.xxx.0.0/20',
prefix6 = 'fdxx:xxxx:xxxx:xxxx::/64',
next_node = {
ip4 = '10.xxx.yyy.zzz',
ip6 = 'fdxx:xxxx:xxxx:xxxx::xxxx',
},
wifi24 = {
ap = {
ssid = "alpha-centauri.example.org",
channel = 1,
},
mesh = {
id = 'ueH3uXjdp', -- usually you don't want users to connect to this mesh-SSID, so use a cryptic id that no one will accidentally mistake for the client WiFi
},
},
wifi5 = {
ap = {
ssid = "alpha-centauri.example.org",
channel = 44,
},
mesh = {
id = 'ueH3uXjdp',
},
},
mesh = {
batman_adv = {
routing_algo = 'BATMAN_IV',
},
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
peer1 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
remotes = {'"peer1.example.org" port xxxxx'},
},
peer2 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
remotes = {'"peer2.example.org" port xxxxx'},
},
},
},
},
},
},
}

View File

@ -0,0 +1 @@
../site-example/i18n/

View File

@ -0,0 +1 @@
../site-example/modules

View File

@ -0,0 +1,52 @@
{
site_name = 'Centauri Mesh',
site_code = 'centauri',
default_domain = 'alpha_centauri',
timezone = 'CET-1CEST,M3.5.0,M10.5.0/3',
ntp_server = {'ntp1.example.org', 'ntp2.example.org'},
regdom = 'DE',
wifi24 = {
mesh = {
mcast_rate = 12000,
},
},
wifi5 = {
mesh = {
mcast_rate = 12000,
},
},
mesh_vpn = {
mtu = 1312,
fastd = {
methods = {'salsa2012+umac'},
},
bandwidth_limit = {
enabled = false,
egress = 200, -- kbit/s
ingress = 3000, -- kbit/s
},
},
autoupdater = {
branch = 'stable',
branches = {
stable = {
name = 'stable',
mirrors = {'http://update.example.org/stable/sysupgrade'},
good_signatures = 2,
pubkeys = {
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Alice
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Bob
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Mary
},
},
},
},
}

View File

@ -0,0 +1,63 @@
## gluon site.mk makefile example
## GLUON_FEATURES
# Specify Gluon features/packages to enable;
# Gluon will automatically enable a set of packages
# depending on the combination of features listed
GLUON_FEATURES := \
autoupdater \
ebtables-filter-multicast \
ebtables-filter-ra-dhcp \
ebtables-limit-arp \
mesh-batman-adv-15 \
mesh-vpn-fastd \
respondd \
status-page \
web-advanced \
web-wizard
## GLUON_MULTIDOMAIN
# Build gluon with multidomain support.
GLUON_MULTIDOMAIN=1
## GLUON_SITE_PACKAGES
# Specify additional Gluon/LEDE packages to include here;
# A minus sign may be prepended to remove a packages from the
# selection that would be enabled by default or due to the
# chosen feature flags
GLUON_SITE_PACKAGES := iwinfo
## DEFAULT_GLUON_RELEASE
# version string to use for images
# gluon relies on
# opkg compare-versions "$1" '>>' "$2"
# to decide if a version is newer or not.
DEFAULT_GLUON_RELEASE := 0.6+exp$(shell date '+%Y%m%d')
# Variables set with ?= can be overwritten from the command line
## GLUON_RELEASE
# call make with custom GLUON_RELEASE flag, to use your own release version scheme.
# e.g.:
# $ make images GLUON_RELEASE=23.42+5
# would generate images named like this:
# gluon-ff%site_code%-23.42+5-%router_model%.bin
GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE)
# Default priority for updates.
GLUON_PRIORITY ?= 0
# Region code required for some images; supported values: us eu
GLUON_REGION ?= eu
# Languages to include
GLUON_LANGS ?= en de
# Do not build images for deprecated devices
GLUON_DEPRECATED ?= 0

View File

@ -0,0 +1,11 @@
gluon-client-bridge
===================
This package provides a bridge (*br-client*) for connecting clients. It will
also setup a wireless interface, provided it is configured in *site.conf*.
site.conf
---------
wifi24.ap.ssid / wifi5.ap.ssid
SSID for the client network

View File

@ -0,0 +1,19 @@
gluon-config-mode-domain-select
===============================
This package provides a drop-down list for the config mode to select the domain
the node will be placed in. If the selection has changed the upgrade scripts in
``/lib/gluon/upgrade/`` are triggered to update the nodes configuration.
Hiding domains could be useful for default or testing domains, which should not
be accidentally selected by a node operator.
domains/\*.conf
---------------
hide_domain \: optional (defaults to false)
- ``false`` shows this domain in drop-down list
- ``true`` hides this domain
Example::
hide_domain = true

View File

@ -0,0 +1,30 @@
gluon-ebtables-filter-multicast
===============================
The *gluon-ebtables-filter-multicast* package filters out various kinds of
non-essential multicast traffic, as this traffic often constitutes a
disproportionate burden on the mesh network. Unfortunately, this breaks many useful services
(Avahi, Bonjour chat, ...), but this seems unavoidable, as the current Avahi implementation is
optimized for small local networks and causes too much traffic in large mesh networks.
The multicast packets are filtered between the nodes' client bridge (*br-client*) and mesh
interface (*bat0*) on output.
The following packet types are considered essential and aren't filtered:
* ARP (except requests for/replies from 0.0.0.0)
* DHCP, DHCPv6
* ICMPv6 (except Echo Requests (ping) and Node Information Queries (RFC4620)
* IGMP
In addition, the following packet types are allowed to allow experimentation with
layer 3 routing protocols.
* Babel
* OSPF
* RIPng
The following packet types are also allowed:
* BitTorrent Local Peer Discovery (it seems better to have local peers for BitTorrent than sending everything through the internet)

View File

@ -0,0 +1,13 @@
gluon-ebtables-filter-ra-dhcp
=============================
The *gluon-ebtables-filter-ra-dhcp* package tries to prevent common
misconfigurations (i.e. connecting the client interface of a Gluon
node to a private network) from causing issues for either of the
networks.
The rules are the following:
* DHCP requests, DHCPv6 requests and Router Solicitations may only be sent from clients to the mesh, but aren't forwarded
from the mesh to clients
* DHCP replies, DHCPv6 replies and Router Advertisements from clients aren't forwarded to the mesh

View File

@ -0,0 +1,29 @@
gluon-ebtables-limit-arp
========================
The *gluon-ebtables-limit-arp* package adds filters to limit the
amount of ARP requests client devices are allowed to send into the
mesh.
The limits per client device, identified by its MAC address, are
6 packets per minute and 1 per second per node in total.
A burst of up to 50 ARP requests is allowed until the rate-limiting
takes effect (see ``--limit-burst`` in ``ebtables(8)``).
Furthermore, ARP requests for a target IP already present in the
batman-adv DAT cache are excluded from rate-limiting, in regard
to both counting and filtering, as batman-adv will be able
to respond locally without a burden for the mesh. Therefore, this
limiter should not affect popular target IP addresses, like those
of gateways or nameservers.
However it mitigates the impact on the mesh when a larger range of
its IPv4 subnet is being scanned, which would otherwise result in
a significant amount of ARP chatter, even for unused IP addresses.
This package is installed by default if the selected routing
feature is *mesh-batman-adv-15*.
It can be unselected via::
GLUON_SITE_PACKAGES := \
-gluon-ebtables-limit-arp

View File

@ -0,0 +1,33 @@
gluon-ebtables-source-filter
============================
The *gluon-ebtables-source-filter* package adds an additional layer-2 filter
ruleset to prevent unreasonable traffic entering the network via the nodes.
Unreasonable means traffic entering the mesh via a node which source IP does
not belong to the configured IP space.
You may first check if there is a certain proportion of unreasonable traffic,
before adding this package to the firmware image. Furthermore, you should not
use this package if some kind of gateway or upstream network is provided by
a device connected to the client port.
site.conf
---------
prefix4 : optional
- IPv4 subnet
prefix6 :
- IPv6 subnet
extra_prefixes6 : optional
- list of additional IPv6 subnets
Example::
prefix4 = '198.51.100.0/21',
prefix6 = '2001:db8:8::/64',
extra_prefixes6 = {
'2001:db8:9::/64',
'2001:db8:100::/60',
},

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 KiB

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
<svg width="13cm" height="9cm" viewBox="348 138 253 169" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g>
<rect style="fill: #ffffff" x="389" y="164" width="158" height="115"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x="389" y="164" width="158" height="115"/>
</g>
<text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="348" y="150">
<tspan x="348" y="150">53.22,</tspan>
<tspan x="348" y="166">8.09 #</tspan>
</text>
<text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="545" y="288">
<tspan x="545" y="288"># 53.36,</tspan>
<tspan x="545" y="304"> 8.32</tspan>
</text>
</svg>

After

Width:  |  Height:  |  Size: 996 B

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,133 @@
gluon-hoodselector
==================
This package provides an automated way to continuously select the correct
domain based on the geolocation of a node. The purpose of Hoodselector is to
automatically detect in which domain the node is located based on its
geolocation settings. Therefore domains are required to have bounding boxes,
defined as polygons or rectangles. Based on this information Hoodselector will
select a domain from the list of known domains and migrate towards it without
requiring a reboot. This package therefore provides a scalable and
decentralized approach to automatic domain selection.
Background information
----------------------
The main problem of the Nordwest Freifunk community was the quickly rising
number of nodes in the network. This indirectly affected the stability of the
network, because the noise inside the network, e.g. management traffic from
the batman-adv protocol, was rising, too. Inside the community there were some
ideas like building separate firmwares for each region. This solution would
cause issues with splitting regions again and nodes scattered among regions
which belong to a different region. Therefore we decided to develop a
dynamic and decentralized management of regions called domains.
The Hoodselector's task is to choose the "right" domains in an intelligent way
and to hold the network together and accessible.
A domain is defined by geostationary fixed shapes by using longitude & latitude
in combination with the domain configuration system. Below you can see a visual
example of a regional domain:
.. figure:: ./gluon-hoodselector-domainmap.jpeg
:alt: Regional domains visualized as shapes defined by latitude & longitude
© OpenStreetMap contributors
Behaviour
------------------
The following is an abstract state diagram which gives an overview
of the process:
.. image:: ./gluon-hoodselector.svg
The sequence of this diagram reflects the priority of its running modes.
Each mode will be explained separately below.
geolocation mode
^^^^^^^^^^^^^^^^
This mode will only be entered when a node has location coordinates set.
Nodes with a position will set their domain based on it.
The node will skip to the next mode when the node (a) has no position or
(b) its position is not within any of the defined bounding boxes.
default domain mode
^^^^^^^^^^^^^^^^^^^
This mode will be entered if no other mode before fits.
It provides a fallback to the default domain.
Domain shapes
-------------
There are two types of domains: the unique default one without a defined shape
and others which contain shapes.
* **default domain**
The default domain doesn't hold any shapes and represents the inverted area of
all other shapes held by other domains with geo coordinates. It will only be
entered if a node could not be matched to a geo domain. A suggested approach is
to define the "old" network as default domain and gradually migrate nodes from
there to geo domains.
* **geo domains**
A geo domain contains shapes, which are described by three dimensional arrays
and represents the geographical size of the domain. There are two possible
definitions of these shapes. The first one is using rectangles so that only
two coordinates per box are needed to define it (see below for an
example). The second one uses polygons which can have multiple edges.
Each domain can hold multiple shapes.
.. image:: ./gluon-hoodselector-rectangle-example.svg
site.conf
---------
The designer of the shapes must always ensure that no overlapping polygons
between domains will be created or else the order in the domain list will
become relevant. If for example domain A and B overlap, Hoodselector
would, for that overlapping area, only ever reach domain A, but never domain B.
Here is an example of a rectangular definition of a shape:
Example::
hoodselector = {
shapes = {
{
{
lat = 53.128,
lon = 8.187
},
{
lat = 53.163,
lon = 8.216
},
},
},
},
Here is an example of a shape defined by a triangle:
Example::
hoodselector = {
shapes = {
{
{
lat = 53.128,
lon = 8.187
},
{
lat = 53.163,
lon = 8.216
},
{
lat = 53.196,
lon = 8.194
},
},
},
},
This package is incompatible with :doc:`gluon-config-mode-domain-select`.

View File

@ -0,0 +1,291 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="863pt" height="411pt" viewBox="0 0 863 411" version="1.1">
<defs>
<g>
<symbol overflow="visible" id="glyph0-0">
<path style="stroke:none;" d="M 0.640625 2.265625 L 0.640625 -9.015625 L 7.03125 -9.015625 L 7.03125 2.265625 Z M 1.359375 1.546875 L 6.328125 1.546875 L 6.328125 -8.296875 L 1.359375 -8.296875 Z M 1.359375 1.546875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-1">
<path style="stroke:none;" d="M 1.25 -9.328125 L 2.515625 -9.328125 L 2.515625 -1.0625 L 7.0625 -1.0625 L 7.0625 0 L 1.25 0 Z M 1.25 -9.328125 "/>
</symbol>
<symbol overflow="visible" id="glyph0-2">
<path style="stroke:none;" d="M 3.921875 -6.1875 C 3.304688 -6.1875 2.816406 -5.945312 2.453125 -5.46875 C 2.097656 -4.988281 1.921875 -4.332031 1.921875 -3.5 C 1.921875 -2.65625 2.097656 -1.992188 2.453125 -1.515625 C 2.804688 -1.035156 3.296875 -0.796875 3.921875 -0.796875 C 4.535156 -0.796875 5.019531 -1.035156 5.375 -1.515625 C 5.726562 -2.003906 5.90625 -2.664062 5.90625 -3.5 C 5.90625 -4.320312 5.726562 -4.972656 5.375 -5.453125 C 5.019531 -5.941406 4.535156 -6.1875 3.921875 -6.1875 Z M 3.921875 -7.171875 C 4.921875 -7.171875 5.703125 -6.84375 6.265625 -6.1875 C 6.835938 -5.539062 7.125 -4.644531 7.125 -3.5 C 7.125 -2.351562 6.835938 -1.453125 6.265625 -0.796875 C 5.703125 -0.140625 4.921875 0.1875 3.921875 0.1875 C 2.910156 0.1875 2.117188 -0.140625 1.546875 -0.796875 C 0.984375 -1.453125 0.703125 -2.351562 0.703125 -3.5 C 0.703125 -4.644531 0.984375 -5.539062 1.546875 -6.1875 C 2.117188 -6.84375 2.910156 -7.171875 3.921875 -7.171875 Z M 3.921875 -7.171875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-3">
<path style="stroke:none;" d="M 4.390625 -3.515625 C 3.460938 -3.515625 2.816406 -3.40625 2.453125 -3.1875 C 2.097656 -2.976562 1.921875 -2.617188 1.921875 -2.109375 C 1.921875 -1.703125 2.050781 -1.378906 2.3125 -1.140625 C 2.582031 -0.898438 2.953125 -0.78125 3.421875 -0.78125 C 4.054688 -0.78125 4.566406 -1.003906 4.953125 -1.453125 C 5.335938 -1.910156 5.53125 -2.515625 5.53125 -3.265625 L 5.53125 -3.515625 Z M 6.671875 -4 L 6.671875 0 L 5.53125 0 L 5.53125 -1.0625 C 5.269531 -0.632812 4.941406 -0.316406 4.546875 -0.109375 C 4.160156 0.0859375 3.679688 0.1875 3.109375 0.1875 C 2.390625 0.1875 1.816406 -0.015625 1.390625 -0.421875 C 0.972656 -0.828125 0.765625 -1.363281 0.765625 -2.03125 C 0.765625 -2.820312 1.023438 -3.414062 1.546875 -3.8125 C 2.078125 -4.21875 2.867188 -4.421875 3.921875 -4.421875 L 5.53125 -4.421875 L 5.53125 -4.53125 C 5.53125 -5.0625 5.351562 -5.46875 5 -5.75 C 4.65625 -6.039062 4.171875 -6.1875 3.546875 -6.1875 C 3.140625 -6.1875 2.75 -6.140625 2.375 -6.046875 C 2 -5.953125 1.632812 -5.8125 1.28125 -5.625 L 1.28125 -6.671875 C 1.695312 -6.835938 2.101562 -6.960938 2.5 -7.046875 C 2.894531 -7.128906 3.28125 -7.171875 3.65625 -7.171875 C 4.675781 -7.171875 5.429688 -6.90625 5.921875 -6.375 C 6.421875 -5.851562 6.671875 -5.0625 6.671875 -4 Z M 6.671875 -4 "/>
</symbol>
<symbol overflow="visible" id="glyph0-4">
<path style="stroke:none;" d="M 5.8125 -5.9375 L 5.8125 -9.71875 L 6.953125 -9.71875 L 6.953125 0 L 5.8125 0 L 5.8125 -1.046875 C 5.570312 -0.628906 5.265625 -0.316406 4.890625 -0.109375 C 4.523438 0.0859375 4.082031 0.1875 3.5625 0.1875 C 2.71875 0.1875 2.03125 -0.148438 1.5 -0.828125 C 0.96875 -1.503906 0.703125 -2.394531 0.703125 -3.5 C 0.703125 -4.59375 0.96875 -5.476562 1.5 -6.15625 C 2.03125 -6.832031 2.71875 -7.171875 3.5625 -7.171875 C 4.082031 -7.171875 4.523438 -7.066406 4.890625 -6.859375 C 5.265625 -6.660156 5.570312 -6.351562 5.8125 -5.9375 Z M 1.890625 -3.5 C 1.890625 -2.644531 2.0625 -1.976562 2.40625 -1.5 C 2.757812 -1.019531 3.238281 -0.78125 3.84375 -0.78125 C 4.457031 -0.78125 4.9375 -1.019531 5.28125 -1.5 C 5.632812 -1.976562 5.8125 -2.644531 5.8125 -3.5 C 5.8125 -4.34375 5.632812 -5.003906 5.28125 -5.484375 C 4.9375 -5.960938 4.457031 -6.203125 3.84375 -6.203125 C 3.238281 -6.203125 2.757812 -5.960938 2.40625 -5.484375 C 2.0625 -5.003906 1.890625 -4.34375 1.890625 -3.5 Z M 1.890625 -3.5 "/>
</symbol>
<symbol overflow="visible" id="glyph0-5">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph0-6">
<path style="stroke:none;" d="M 6.65625 -5.65625 C 6.9375 -6.164062 7.273438 -6.546875 7.671875 -6.796875 C 8.078125 -7.046875 8.550781 -7.171875 9.09375 -7.171875 C 9.820312 -7.171875 10.382812 -6.914062 10.78125 -6.40625 C 11.175781 -5.894531 11.375 -5.164062 11.375 -4.21875 L 11.375 0 L 10.21875 0 L 10.21875 -4.1875 C 10.21875 -4.851562 10.097656 -5.347656 9.859375 -5.671875 C 9.628906 -6.003906 9.269531 -6.171875 8.78125 -6.171875 C 8.1875 -6.171875 7.710938 -5.972656 7.359375 -5.578125 C 7.015625 -5.179688 6.84375 -4.640625 6.84375 -3.953125 L 6.84375 0 L 5.6875 0 L 5.6875 -4.1875 C 5.6875 -4.863281 5.566406 -5.363281 5.328125 -5.6875 C 5.097656 -6.007812 4.734375 -6.171875 4.234375 -6.171875 C 3.648438 -6.171875 3.179688 -5.96875 2.828125 -5.5625 C 2.484375 -5.164062 2.3125 -4.628906 2.3125 -3.953125 L 2.3125 0 L 1.15625 0 L 1.15625 -7 L 2.3125 -7 L 2.3125 -5.90625 C 2.582031 -6.332031 2.898438 -6.648438 3.265625 -6.859375 C 3.628906 -7.066406 4.0625 -7.171875 4.5625 -7.171875 C 5.070312 -7.171875 5.503906 -7.039062 5.859375 -6.78125 C 6.222656 -6.519531 6.488281 -6.144531 6.65625 -5.65625 Z M 6.65625 -5.65625 "/>
</symbol>
<symbol overflow="visible" id="glyph0-7">
<path style="stroke:none;" d="M 1.203125 -7 L 2.359375 -7 L 2.359375 0 L 1.203125 0 Z M 1.203125 -9.71875 L 2.359375 -9.71875 L 2.359375 -8.265625 L 1.203125 -8.265625 Z M 1.203125 -9.71875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-8">
<path style="stroke:none;" d="M 7.015625 -4.21875 L 7.015625 0 L 5.875 0 L 5.875 -4.1875 C 5.875 -4.851562 5.742188 -5.347656 5.484375 -5.671875 C 5.222656 -6.003906 4.835938 -6.171875 4.328125 -6.171875 C 3.703125 -6.171875 3.207031 -5.972656 2.84375 -5.578125 C 2.488281 -5.179688 2.3125 -4.640625 2.3125 -3.953125 L 2.3125 0 L 1.15625 0 L 1.15625 -7 L 2.3125 -7 L 2.3125 -5.90625 C 2.59375 -6.332031 2.914062 -6.648438 3.28125 -6.859375 C 3.65625 -7.066406 4.085938 -7.171875 4.578125 -7.171875 C 5.378906 -7.171875 5.984375 -6.921875 6.390625 -6.421875 C 6.804688 -5.921875 7.015625 -5.1875 7.015625 -4.21875 Z M 7.015625 -4.21875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-9">
<path style="stroke:none;" d="M 5.671875 -6.796875 L 5.671875 -5.703125 C 5.347656 -5.867188 5.007812 -5.992188 4.65625 -6.078125 C 4.300781 -6.160156 3.9375 -6.203125 3.5625 -6.203125 C 3 -6.203125 2.570312 -6.113281 2.28125 -5.9375 C 2 -5.769531 1.859375 -5.507812 1.859375 -5.15625 C 1.859375 -4.882812 1.957031 -4.671875 2.15625 -4.515625 C 2.363281 -4.367188 2.773438 -4.226562 3.390625 -4.09375 L 3.78125 -4 C 4.601562 -3.832031 5.1875 -3.585938 5.53125 -3.265625 C 5.875 -2.941406 6.046875 -2.5 6.046875 -1.9375 C 6.046875 -1.28125 5.785156 -0.757812 5.265625 -0.375 C 4.753906 0 4.050781 0.1875 3.15625 0.1875 C 2.78125 0.1875 2.390625 0.148438 1.984375 0.078125 C 1.578125 0.00390625 1.144531 -0.101562 0.6875 -0.25 L 0.6875 -1.4375 C 1.113281 -1.21875 1.53125 -1.050781 1.9375 -0.9375 C 2.351562 -0.832031 2.765625 -0.78125 3.171875 -0.78125 C 3.710938 -0.78125 4.128906 -0.875 4.421875 -1.0625 C 4.710938 -1.25 4.859375 -1.507812 4.859375 -1.84375 C 4.859375 -2.15625 4.753906 -2.394531 4.546875 -2.5625 C 4.335938 -2.726562 3.875 -2.890625 3.15625 -3.046875 L 2.765625 -3.140625 C 2.046875 -3.285156 1.53125 -3.515625 1.21875 -3.828125 C 0.90625 -4.140625 0.75 -4.566406 0.75 -5.109375 C 0.75 -5.765625 0.976562 -6.269531 1.4375 -6.625 C 1.90625 -6.988281 2.570312 -7.171875 3.4375 -7.171875 C 3.851562 -7.171875 4.25 -7.140625 4.625 -7.078125 C 5 -7.015625 5.347656 -6.921875 5.671875 -6.796875 Z M 5.671875 -6.796875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-10">
<path style="stroke:none;" d="M 2.34375 -8.984375 L 2.34375 -7 L 4.71875 -7 L 4.71875 -6.109375 L 2.34375 -6.109375 L 2.34375 -2.3125 C 2.34375 -1.738281 2.421875 -1.367188 2.578125 -1.203125 C 2.734375 -1.046875 3.050781 -0.96875 3.53125 -0.96875 L 4.71875 -0.96875 L 4.71875 0 L 3.53125 0 C 2.644531 0 2.03125 -0.164062 1.6875 -0.5 C 1.351562 -0.832031 1.1875 -1.4375 1.1875 -2.3125 L 1.1875 -6.109375 L 0.34375 -6.109375 L 0.34375 -7 L 1.1875 -7 L 1.1875 -8.984375 Z M 2.34375 -8.984375 "/>
</symbol>
<symbol overflow="visible" id="glyph0-11">
<path style="stroke:none;" d="M 1.203125 -9.71875 L 2.359375 -9.71875 L 2.359375 0 L 1.203125 0 Z M 1.203125 -9.71875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-12">
<path style="stroke:none;" d="M 0.703125 -7 L 6.171875 -7 L 6.171875 -5.953125 L 1.84375 -0.921875 L 6.171875 -0.921875 L 6.171875 0 L 0.546875 0 L 0.546875 -1.046875 L 4.875 -6.078125 L 0.703125 -6.078125 Z M 0.703125 -7 "/>
</symbol>
<symbol overflow="visible" id="glyph0-13">
<path style="stroke:none;" d="M 5.8125 -3.578125 C 5.8125 -4.410156 5.640625 -5.054688 5.296875 -5.515625 C 4.953125 -5.972656 4.46875 -6.203125 3.84375 -6.203125 C 3.226562 -6.203125 2.75 -5.972656 2.40625 -5.515625 C 2.0625 -5.054688 1.890625 -4.410156 1.890625 -3.578125 C 1.890625 -2.753906 2.0625 -2.113281 2.40625 -1.65625 C 2.75 -1.195312 3.226562 -0.96875 3.84375 -0.96875 C 4.46875 -0.96875 4.953125 -1.195312 5.296875 -1.65625 C 5.640625 -2.113281 5.8125 -2.753906 5.8125 -3.578125 Z M 6.953125 -0.875 C 6.953125 0.320312 6.6875 1.207031 6.15625 1.78125 C 5.632812 2.363281 4.828125 2.65625 3.734375 2.65625 C 3.328125 2.65625 2.945312 2.625 2.59375 2.5625 C 2.238281 2.507812 1.890625 2.421875 1.546875 2.296875 L 1.546875 1.171875 C 1.890625 1.359375 2.222656 1.492188 2.546875 1.578125 C 2.878906 1.671875 3.21875 1.71875 3.5625 1.71875 C 4.3125 1.71875 4.875 1.519531 5.25 1.125 C 5.625 0.726562 5.8125 0.132812 5.8125 -0.65625 L 5.8125 -1.234375 C 5.570312 -0.816406 5.265625 -0.503906 4.890625 -0.296875 C 4.523438 -0.0976562 4.082031 0 3.5625 0 C 2.707031 0 2.015625 -0.328125 1.484375 -0.984375 C 0.960938 -1.640625 0.703125 -2.503906 0.703125 -3.578125 C 0.703125 -4.660156 0.960938 -5.53125 1.484375 -6.1875 C 2.015625 -6.84375 2.707031 -7.171875 3.5625 -7.171875 C 4.082031 -7.171875 4.523438 -7.066406 4.890625 -6.859375 C 5.265625 -6.648438 5.570312 -6.34375 5.8125 -5.9375 L 5.8125 -7 L 6.953125 -7 Z M 6.953125 -0.875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-14">
<path style="stroke:none;" d="M 7.1875 -3.78125 L 7.1875 -3.21875 L 1.90625 -3.21875 C 1.957031 -2.425781 2.195312 -1.820312 2.625 -1.40625 C 3.050781 -1 3.644531 -0.796875 4.40625 -0.796875 C 4.84375 -0.796875 5.269531 -0.847656 5.6875 -0.953125 C 6.101562 -1.066406 6.515625 -1.226562 6.921875 -1.4375 L 6.921875 -0.359375 C 6.515625 -0.179688 6.09375 -0.046875 5.65625 0.046875 C 5.21875 0.140625 4.78125 0.1875 4.34375 0.1875 C 3.21875 0.1875 2.328125 -0.132812 1.671875 -0.78125 C 1.023438 -1.4375 0.703125 -2.320312 0.703125 -3.4375 C 0.703125 -4.582031 1.007812 -5.488281 1.625 -6.15625 C 2.25 -6.832031 3.085938 -7.171875 4.140625 -7.171875 C 5.078125 -7.171875 5.816406 -6.863281 6.359375 -6.25 C 6.910156 -5.644531 7.1875 -4.820312 7.1875 -3.78125 Z M 6.046875 -4.125 C 6.035156 -4.75 5.859375 -5.25 5.515625 -5.625 C 5.171875 -6 4.71875 -6.1875 4.15625 -6.1875 C 3.507812 -6.1875 2.992188 -6.003906 2.609375 -5.640625 C 2.222656 -5.285156 2 -4.78125 1.9375 -4.125 Z M 6.046875 -4.125 "/>
</symbol>
<symbol overflow="visible" id="glyph0-15">
<path style="stroke:none;" d="M 6.25 -6.734375 L 6.25 -5.65625 C 5.914062 -5.832031 5.585938 -5.960938 5.265625 -6.046875 C 4.941406 -6.140625 4.613281 -6.1875 4.28125 -6.1875 C 3.53125 -6.1875 2.945312 -5.953125 2.53125 -5.484375 C 2.125 -5.015625 1.921875 -4.351562 1.921875 -3.5 C 1.921875 -2.644531 2.125 -1.976562 2.53125 -1.5 C 2.945312 -1.03125 3.53125 -0.796875 4.28125 -0.796875 C 4.613281 -0.796875 4.941406 -0.835938 5.265625 -0.921875 C 5.585938 -1.015625 5.914062 -1.148438 6.25 -1.328125 L 6.25 -0.265625 C 5.925781 -0.117188 5.59375 -0.0078125 5.25 0.0625 C 4.90625 0.144531 4.539062 0.1875 4.15625 0.1875 C 3.09375 0.1875 2.25 -0.144531 1.625 -0.8125 C 1.007812 -1.476562 0.703125 -2.375 0.703125 -3.5 C 0.703125 -4.632812 1.015625 -5.53125 1.640625 -6.1875 C 2.273438 -6.84375 3.132812 -7.171875 4.21875 -7.171875 C 4.570312 -7.171875 4.914062 -7.132812 5.25 -7.0625 C 5.59375 -6.988281 5.925781 -6.878906 6.25 -6.734375 Z M 6.25 -6.734375 "/>
</symbol>
<symbol overflow="visible" id="glyph0-16">
<path style="stroke:none;" d="M 2.3125 -1.046875 L 2.3125 2.65625 L 1.15625 2.65625 L 1.15625 -7 L 2.3125 -7 L 2.3125 -5.9375 C 2.5625 -6.351562 2.867188 -6.660156 3.234375 -6.859375 C 3.597656 -7.066406 4.039062 -7.171875 4.5625 -7.171875 C 5.40625 -7.171875 6.09375 -6.832031 6.625 -6.15625 C 7.15625 -5.476562 7.421875 -4.59375 7.421875 -3.5 C 7.421875 -2.394531 7.15625 -1.503906 6.625 -0.828125 C 6.09375 -0.148438 5.40625 0.1875 4.5625 0.1875 C 4.039062 0.1875 3.597656 0.0859375 3.234375 -0.109375 C 2.867188 -0.316406 2.5625 -0.628906 2.3125 -1.046875 Z M 6.234375 -3.5 C 6.234375 -4.34375 6.054688 -5.003906 5.703125 -5.484375 C 5.359375 -5.960938 4.882812 -6.203125 4.28125 -6.203125 C 3.664062 -6.203125 3.179688 -5.960938 2.828125 -5.484375 C 2.484375 -5.003906 2.3125 -4.34375 2.3125 -3.5 C 2.3125 -2.644531 2.484375 -1.976562 2.828125 -1.5 C 3.179688 -1.019531 3.664062 -0.78125 4.28125 -0.78125 C 4.882812 -0.78125 5.359375 -1.019531 5.703125 -1.5 C 6.054688 -1.976562 6.234375 -2.644531 6.234375 -3.5 Z M 6.234375 -3.5 "/>
</symbol>
<symbol overflow="visible" id="glyph0-17">
<path style="stroke:none;" d="M 1.375 -1.59375 L 2.6875 -1.59375 L 2.6875 0 L 1.375 0 Z M 1.375 -1.59375 "/>
</symbol>
<symbol overflow="visible" id="glyph0-18">
<path style="stroke:none;" d="M 7.015625 -7 L 4.5 -3.59375 L 7.15625 0 L 5.796875 0 L 3.765625 -2.75 L 1.71875 0 L 0.375 0 L 3.09375 -3.65625 L 0.59375 -7 L 1.953125 -7 L 3.8125 -4.5 L 5.671875 -7 Z M 7.015625 -7 "/>
</symbol>
<symbol overflow="visible" id="glyph0-19">
<path style="stroke:none;" d="M 4.75 -9.71875 L 4.75 -8.765625 L 3.65625 -8.765625 C 3.238281 -8.765625 2.945312 -8.679688 2.78125 -8.515625 C 2.625 -8.347656 2.546875 -8.046875 2.546875 -7.609375 L 2.546875 -7 L 4.4375 -7 L 4.4375 -6.109375 L 2.546875 -6.109375 L 2.546875 0 L 1.390625 0 L 1.390625 -6.109375 L 0.296875 -6.109375 L 0.296875 -7 L 1.390625 -7 L 1.390625 -7.484375 C 1.390625 -8.265625 1.570312 -8.832031 1.9375 -9.1875 C 2.300781 -9.539062 2.875 -9.71875 3.65625 -9.71875 Z M 4.75 -9.71875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-20">
<path style="stroke:none;" d="M 2.515625 -8.296875 L 2.515625 -1.03125 L 4.046875 -1.03125 C 5.328125 -1.03125 6.265625 -1.320312 6.859375 -1.90625 C 7.460938 -2.488281 7.765625 -3.410156 7.765625 -4.671875 C 7.765625 -5.921875 7.460938 -6.835938 6.859375 -7.421875 C 6.265625 -8.003906 5.328125 -8.296875 4.046875 -8.296875 Z M 1.25 -9.328125 L 3.84375 -9.328125 C 5.65625 -9.328125 6.984375 -8.953125 7.828125 -8.203125 C 8.671875 -7.453125 9.09375 -6.273438 9.09375 -4.671875 C 9.09375 -3.066406 8.664062 -1.882812 7.8125 -1.125 C 6.96875 -0.375 5.644531 0 3.84375 0 L 1.25 0 Z M 1.25 -9.328125 "/>
</symbol>
<symbol overflow="visible" id="glyph0-21">
<path style="stroke:none;" d="M 5.265625 -5.921875 C 5.128906 -5.992188 4.984375 -6.046875 4.828125 -6.078125 C 4.679688 -6.117188 4.519531 -6.140625 4.34375 -6.140625 C 3.6875 -6.140625 3.179688 -5.925781 2.828125 -5.5 C 2.484375 -5.082031 2.3125 -4.476562 2.3125 -3.6875 L 2.3125 0 L 1.15625 0 L 1.15625 -7 L 2.3125 -7 L 2.3125 -5.90625 C 2.5625 -6.332031 2.878906 -6.648438 3.265625 -6.859375 C 3.648438 -7.066406 4.117188 -7.171875 4.671875 -7.171875 C 4.753906 -7.171875 4.84375 -7.164062 4.9375 -7.15625 C 5.03125 -7.144531 5.132812 -7.128906 5.25 -7.109375 Z M 5.265625 -5.921875 "/>
</symbol>
<symbol overflow="visible" id="glyph0-22">
<path style="stroke:none;" d="M 1.09375 -2.765625 L 1.09375 -7 L 2.234375 -7 L 2.234375 -2.8125 C 2.234375 -2.144531 2.363281 -1.644531 2.625 -1.3125 C 2.882812 -0.976562 3.269531 -0.8125 3.78125 -0.8125 C 4.40625 -0.8125 4.894531 -1.007812 5.25 -1.40625 C 5.613281 -1.800781 5.796875 -2.34375 5.796875 -3.03125 L 5.796875 -7 L 6.953125 -7 L 6.953125 0 L 5.796875 0 L 5.796875 -1.078125 C 5.515625 -0.648438 5.191406 -0.332031 4.828125 -0.125 C 4.460938 0.0820312 4.035156 0.1875 3.546875 0.1875 C 2.742188 0.1875 2.132812 -0.0625 1.71875 -0.5625 C 1.300781 -1.0625 1.09375 -1.796875 1.09375 -2.765625 Z M 1.09375 -2.765625 "/>
</symbol>
<symbol overflow="visible" id="glyph0-23">
<path style="stroke:none;" d="M 1.25 -9.328125 L 7.15625 -9.328125 L 7.15625 -8.265625 L 2.515625 -8.265625 L 2.515625 -5.5 L 6.953125 -5.5 L 6.953125 -4.4375 L 2.515625 -4.4375 L 2.515625 -1.0625 L 7.265625 -1.0625 L 7.265625 0 L 1.25 0 Z M 1.25 -9.328125 "/>
</symbol>
<symbol overflow="visible" id="glyph0-24">
<path style="stroke:none;" d="M 6.84375 -9.015625 L 6.84375 -7.796875 C 6.363281 -8.023438 5.910156 -8.191406 5.484375 -8.296875 C 5.066406 -8.410156 4.660156 -8.46875 4.265625 -8.46875 C 3.578125 -8.46875 3.046875 -8.332031 2.671875 -8.0625 C 2.296875 -7.800781 2.109375 -7.425781 2.109375 -6.9375 C 2.109375 -6.519531 2.234375 -6.207031 2.484375 -6 C 2.734375 -5.789062 3.203125 -5.625 3.890625 -5.5 L 4.65625 -5.34375 C 5.59375 -5.15625 6.285156 -4.835938 6.734375 -4.390625 C 7.179688 -3.941406 7.40625 -3.335938 7.40625 -2.578125 C 7.40625 -1.671875 7.101562 -0.984375 6.5 -0.515625 C 5.894531 -0.046875 5.007812 0.1875 3.84375 0.1875 C 3.394531 0.1875 2.921875 0.132812 2.421875 0.03125 C 1.929688 -0.0703125 1.414062 -0.21875 0.875 -0.40625 L 0.875 -1.71875 C 1.394531 -1.425781 1.898438 -1.207031 2.390625 -1.0625 C 2.878906 -0.914062 3.363281 -0.84375 3.84375 -0.84375 C 4.5625 -0.84375 5.113281 -0.984375 5.5 -1.265625 C 5.894531 -1.546875 6.09375 -1.953125 6.09375 -2.484375 C 6.09375 -2.941406 5.953125 -3.296875 5.671875 -3.546875 C 5.390625 -3.804688 4.925781 -4.003906 4.28125 -4.140625 L 3.515625 -4.28125 C 2.578125 -4.46875 1.894531 -4.757812 1.46875 -5.15625 C 1.050781 -5.5625 0.84375 -6.117188 0.84375 -6.828125 C 0.84375 -7.660156 1.132812 -8.3125 1.71875 -8.78125 C 2.300781 -9.257812 3.101562 -9.5 4.125 -9.5 C 4.5625 -9.5 5.003906 -9.457031 5.453125 -9.375 C 5.910156 -9.300781 6.375 -9.179688 6.84375 -9.015625 Z M 6.84375 -9.015625 "/>
</symbol>
</g>
</defs>
<g id="surface2229">
<rect x="0" y="0" width="863" height="411" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 5.118086 6.441094 L 9.277656 6.466289 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.276094 6.716289 L 9.777656 6.469219 L 9.279023 6.216289 Z M 9.276094 6.716289 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 15.924336 6.487969 C 15.924336 7.765703 14.559492 8.801445 12.876094 8.801445 C 11.1925 8.801445 9.827656 7.765703 9.827656 6.487969 C 9.827656 5.210234 11.1925 4.174492 12.876094 4.174492 C 14.559492 4.174492 15.924336 5.210234 15.924336 6.487969 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="176.851562" y="68.529405"/>
<use xlink:href="#glyph0-2" x="183.796007" y="68.529405"/>
<use xlink:href="#glyph0-3" x="191.573785" y="68.529405"/>
<use xlink:href="#glyph0-4" x="199.351562" y="68.529405"/>
<use xlink:href="#glyph0-5" x="207.407118" y="68.529405"/>
<use xlink:href="#glyph0-4" x="211.573785" y="68.529405"/>
<use xlink:href="#glyph0-2" x="219.62934" y="68.529405"/>
<use xlink:href="#glyph0-6" x="227.407118" y="68.529405"/>
<use xlink:href="#glyph0-3" x="239.907118" y="68.529405"/>
<use xlink:href="#glyph0-7" x="247.684896" y="68.529405"/>
<use xlink:href="#glyph0-8" x="251.296007" y="68.529405"/>
<use xlink:href="#glyph0-9" x="259.351562" y="68.529405"/>
</g>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 15.949141 6.487969 L 17.296992 6.487969 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 17.296992 6.737969 L 17.796992 6.487969 L 17.296992 6.237969 Z M 17.296992 6.737969 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,100%,0%);fill-opacity:1;" d="M 69.898438 0 L 147.648438 0 L 147.648438 14.898438 L 69.898438 14.898438 Z M 69.898438 0 "/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-7" x="69.898438" y="11.88878"/>
<use xlink:href="#glyph0-8" x="73.509549" y="11.88878"/>
<use xlink:href="#glyph0-7" x="81.565104" y="11.88878"/>
<use xlink:href="#glyph0-10" x="85.176215" y="11.88878"/>
<use xlink:href="#glyph0-7" x="90.176215" y="11.88878"/>
<use xlink:href="#glyph0-3" x="93.787326" y="11.88878"/>
<use xlink:href="#glyph0-11" x="101.565104" y="11.88878"/>
<use xlink:href="#glyph0-7" x="105.176215" y="11.88878"/>
<use xlink:href="#glyph0-12" x="108.787326" y="11.88878"/>
<use xlink:href="#glyph0-3" x="115.453993" y="11.88878"/>
<use xlink:href="#glyph0-10" x="123.231771" y="11.88878"/>
<use xlink:href="#glyph0-7" x="128.231771" y="11.88878"/>
<use xlink:href="#glyph0-2" x="131.842882" y="11.88878"/>
<use xlink:href="#glyph0-8" x="139.62066" y="11.88878"/>
</g>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,100%,0%);fill-opacity:1;" d="M 324.351562 0 L 439.453125 0 L 439.453125 14.898438 L 324.351562 14.898438 Z M 324.351562 0 "/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-13" x="324.691406" y="11.88878"/>
<use xlink:href="#glyph0-14" x="332.746962" y="11.88878"/>
<use xlink:href="#glyph0-2" x="340.52474" y="11.88878"/>
<use xlink:href="#glyph0-11" x="348.302517" y="11.88878"/>
<use xlink:href="#glyph0-2" x="351.913628" y="11.88878"/>
<use xlink:href="#glyph0-15" x="359.691406" y="11.88878"/>
<use xlink:href="#glyph0-3" x="366.635851" y="11.88878"/>
<use xlink:href="#glyph0-10" x="374.413628" y="11.88878"/>
<use xlink:href="#glyph0-7" x="379.413628" y="11.88878"/>
<use xlink:href="#glyph0-2" x="383.02474" y="11.88878"/>
<use xlink:href="#glyph0-8" x="390.802517" y="11.88878"/>
<use xlink:href="#glyph0-5" x="398.858073" y="11.88878"/>
<use xlink:href="#glyph0-6" x="403.02474" y="11.88878"/>
<use xlink:href="#glyph0-2" x="415.52474" y="11.88878"/>
<use xlink:href="#glyph0-4" x="423.302517" y="11.88878"/>
<use xlink:href="#glyph0-14" x="431.358073" y="11.88878"/>
</g>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 24.205195 6.487969 C 24.205195 7.495391 22.781758 8.311992 21.026094 8.311992 C 19.270234 8.311992 17.846992 7.495391 17.846992 6.487969 C 17.846992 5.480742 19.270234 4.664141 21.026094 4.664141 C 22.781758 4.664141 24.205195 5.480742 24.205195 6.487969 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-13" x="339.851562" y="68.529405"/>
<use xlink:href="#glyph0-14" x="347.907118" y="68.529405"/>
<use xlink:href="#glyph0-2" x="355.684896" y="68.529405"/>
<use xlink:href="#glyph0-5" x="363.462674" y="68.529405"/>
<use xlink:href="#glyph0-16" x="367.62934" y="68.529405"/>
<use xlink:href="#glyph0-2" x="375.684896" y="68.529405"/>
<use xlink:href="#glyph0-9" x="383.462674" y="68.529405"/>
<use xlink:href="#glyph0-17" x="390.12934" y="68.529405"/>
<use xlink:href="#glyph0-5" x="394.296007" y="68.529405"/>
<use xlink:href="#glyph0-14" x="398.462674" y="68.529405"/>
<use xlink:href="#glyph0-18" x="406.240451" y="68.529405"/>
<use xlink:href="#glyph0-7" x="413.740451" y="68.529405"/>
<use xlink:href="#glyph0-9" x="417.351562" y="68.529405"/>
<use xlink:href="#glyph0-10" x="424.018229" y="68.529405"/>
</g>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 24.204609 6.467266 L 29.831758 6.430352 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 29.83332 6.680352 L 30.331758 6.427031 L 29.830195 6.180352 Z M 29.83332 6.680352 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-19" x="484.898438" y="56.88878"/>
<use xlink:href="#glyph0-3" x="489.342882" y="56.88878"/>
<use xlink:href="#glyph0-11" x="497.12066" y="56.88878"/>
<use xlink:href="#glyph0-9" x="500.731771" y="56.88878"/>
<use xlink:href="#glyph0-14" x="507.398438" y="56.88878"/>
</g>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 24.225312 13.150078 C 24.225312 14.040703 22.781172 14.762773 20.999922 14.762773 C 19.218672 14.762773 17.774531 14.040703 17.774531 13.150078 C 17.774531 12.259453 19.218672 11.537383 20.999922 11.537383 C 22.781172 11.537383 24.225312 12.259453 24.225312 13.150078 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-13" x="334.875" y="201.771593"/>
<use xlink:href="#glyph0-14" x="342.930556" y="201.771593"/>
<use xlink:href="#glyph0-10" x="350.708333" y="201.771593"/>
<use xlink:href="#glyph0-5" x="355.708333" y="201.771593"/>
<use xlink:href="#glyph0-13" x="359.875" y="201.771593"/>
<use xlink:href="#glyph0-14" x="367.930556" y="201.771593"/>
<use xlink:href="#glyph0-2" x="375.708333" y="201.771593"/>
<use xlink:href="#glyph0-20" x="383.486111" y="201.771593"/>
<use xlink:href="#glyph0-2" x="393.208333" y="201.771593"/>
<use xlink:href="#glyph0-6" x="400.986111" y="201.771593"/>
<use xlink:href="#glyph0-3" x="413.486111" y="201.771593"/>
<use xlink:href="#glyph0-7" x="421.263889" y="201.771593"/>
<use xlink:href="#glyph0-8" x="424.875" y="201.771593"/>
</g>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.018867 8.336602 L 21.00832 10.987969 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 20.75832 10.986992 L 21.006367 11.487969 L 21.25832 10.988945 Z M 20.75832 10.986992 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-10" x="391.898438" y="129.88878"/>
<use xlink:href="#glyph0-21" x="396.898438" y="129.88878"/>
<use xlink:href="#glyph0-22" x="402.176215" y="129.88878"/>
<use xlink:href="#glyph0-14" x="410.231771" y="129.88878"/>
</g>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 20.999922 14.786797 L 20.999922 16.078789 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 20.749922 16.078789 L 20.999922 16.578789 L 21.249922 16.078789 Z M 20.749922 16.078789 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 23.262812 11.97957 L 31.010469 7.972539 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 31.125312 8.194609 L 31.454609 7.742852 L 30.895625 7.750469 Z M 31.125312 8.194609 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 24.1925 18.224883 C 24.1925 19.106523 22.763203 19.821172 21.000117 19.821172 C 19.237031 19.821172 17.807734 19.106523 17.807734 18.224883 C 17.807734 17.343438 19.237031 16.628789 21.000117 16.628789 C 22.763203 16.628789 24.1925 17.343438 24.1925 18.224883 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-9" x="335.582031" y="303.267687"/>
<use xlink:href="#glyph0-14" x="342.248698" y="303.267687"/>
<use xlink:href="#glyph0-10" x="350.026476" y="303.267687"/>
<use xlink:href="#glyph0-5" x="355.026476" y="303.267687"/>
<use xlink:href="#glyph0-13" x="359.193142" y="303.267687"/>
<use xlink:href="#glyph0-14" x="367.248698" y="303.267687"/>
<use xlink:href="#glyph0-2" x="375.026476" y="303.267687"/>
<use xlink:href="#glyph0-20" x="382.804253" y="303.267687"/>
<use xlink:href="#glyph0-2" x="392.526476" y="303.267687"/>
<use xlink:href="#glyph0-6" x="400.304253" y="303.267687"/>
<use xlink:href="#glyph0-3" x="412.804253" y="303.267687"/>
<use xlink:href="#glyph0-7" x="420.582031" y="303.267687"/>
<use xlink:href="#glyph0-8" x="424.193142" y="303.267687"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-19" x="479.898438" y="130.13878"/>
<use xlink:href="#glyph0-3" x="484.342882" y="130.13878"/>
<use xlink:href="#glyph0-11" x="492.12066" y="130.13878"/>
<use xlink:href="#glyph0-9" x="495.731771" y="130.13878"/>
<use xlink:href="#glyph0-14" x="502.398438" y="130.13878"/>
</g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-10" x="393.898438" y="248.13878"/>
<use xlink:href="#glyph0-21" x="398.898438" y="248.13878"/>
<use xlink:href="#glyph0-22" x="404.176215" y="248.13878"/>
<use xlink:href="#glyph0-14" x="412.231771" y="248.13878"/>
</g>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 23.212227 22.674883 C 23.212227 23.28582 22.221797 23.780938 21.000117 23.780938 C 19.778242 23.780938 18.787812 23.28582 18.787812 22.674883 C 18.787812 22.064141 19.778242 21.568828 21.000117 21.568828 C 22.221797 21.568828 23.212227 22.064141 23.212227 22.674883 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-23" x="371.832031" y="392.267687"/>
<use xlink:href="#glyph0-18" x="379.887587" y="392.267687"/>
<use xlink:href="#glyph0-7" x="387.387587" y="392.267687"/>
<use xlink:href="#glyph0-10" x="390.998698" y="392.267687"/>
</g>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 21.000117 19.846367 L 21.000117 21.019023 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 20.750117 21.019023 L 21.000117 21.519023 L 21.250117 21.019023 Z M 20.750117 21.019023 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 5.094062 6.431133 C 5.094062 7.086211 4.363398 7.617266 3.462031 7.617266 C 2.560664 7.617266 1.83 7.086211 1.83 6.431133 C 1.83 5.776055 2.560664 5.245 3.462031 5.245 C 4.363398 5.245 5.094062 5.776055 5.094062 6.431133 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-24" x="17.59375" y="67.392687"/>
<use xlink:href="#glyph0-10" x="25.649306" y="67.392687"/>
<use xlink:href="#glyph0-3" x="30.649306" y="67.392687"/>
<use xlink:href="#glyph0-21" x="38.427083" y="67.392687"/>
<use xlink:href="#glyph0-10" x="43.704861" y="67.392687"/>
</g>
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,100%,0%);fill-opacity:1;" d="M 574.574219 0.300781 L 712.023438 0.300781 L 712.023438 15.199219 L 574.574219 15.199219 Z M 574.574219 0.300781 "/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-4" x="574.84375" y="12.185655"/>
<use xlink:href="#glyph0-14" x="582.899306" y="12.185655"/>
<use xlink:href="#glyph0-19" x="590.677083" y="12.185655"/>
<use xlink:href="#glyph0-3" x="595.121528" y="12.185655"/>
<use xlink:href="#glyph0-22" x="602.899306" y="12.185655"/>
<use xlink:href="#glyph0-11" x="610.954861" y="12.185655"/>
<use xlink:href="#glyph0-10" x="614.565972" y="12.185655"/>
<use xlink:href="#glyph0-5" x="619.565972" y="12.185655"/>
<use xlink:href="#glyph0-4" x="623.732639" y="12.185655"/>
<use xlink:href="#glyph0-2" x="631.788194" y="12.185655"/>
<use xlink:href="#glyph0-6" x="639.565972" y="12.185655"/>
<use xlink:href="#glyph0-3" x="652.065972" y="12.185655"/>
<use xlink:href="#glyph0-7" x="659.84375" y="12.185655"/>
<use xlink:href="#glyph0-8" x="663.454861" y="12.185655"/>
<use xlink:href="#glyph0-5" x="671.510417" y="12.185655"/>
<use xlink:href="#glyph0-6" x="675.677083" y="12.185655"/>
<use xlink:href="#glyph0-2" x="688.177083" y="12.185655"/>
<use xlink:href="#glyph0-4" x="695.954861" y="12.185655"/>
<use xlink:href="#glyph0-14" x="704.010417" y="12.185655"/>
</g>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 37.710859 6.402812 C 37.710859 7.414922 36.069844 8.23543 34.04543 8.23543 C 32.021016 8.23543 30.38 7.414922 30.38 6.402812 C 30.38 5.390508 32.021016 4.57 34.04543 4.57 C 36.069844 4.57 37.710859 5.390508 37.710859 6.402812 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-9" x="585.921875" y="66.822374"/>
<use xlink:href="#glyph0-14" x="592.588542" y="66.822374"/>
<use xlink:href="#glyph0-10" x="600.366319" y="66.822374"/>
<use xlink:href="#glyph0-5" x="605.366319" y="66.822374"/>
<use xlink:href="#glyph0-4" x="609.532986" y="66.822374"/>
<use xlink:href="#glyph0-14" x="617.588542" y="66.822374"/>
<use xlink:href="#glyph0-19" x="625.366319" y="66.822374"/>
<use xlink:href="#glyph0-3" x="629.810764" y="66.822374"/>
<use xlink:href="#glyph0-22" x="637.588542" y="66.822374"/>
<use xlink:href="#glyph0-11" x="645.644097" y="66.822374"/>
<use xlink:href="#glyph0-10" x="649.255208" y="66.822374"/>
<use xlink:href="#glyph0-20" x="654.255208" y="66.822374"/>
<use xlink:href="#glyph0-2" x="663.977431" y="66.822374"/>
<use xlink:href="#glyph0-6" x="671.755208" y="66.822374"/>
<use xlink:href="#glyph0-3" x="684.255208" y="66.822374"/>
<use xlink:href="#glyph0-7" x="692.032986" y="66.822374"/>
<use xlink:href="#glyph0-8" x="695.644097" y="66.822374"/>
</g>
<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 44.962227 6.300078 C 44.962227 6.91082 43.971797 7.406133 42.750117 7.406133 C 41.528242 7.406133 40.537812 6.91082 40.537812 6.300078 C 40.537812 5.689141 41.528242 5.194023 42.750117 5.194023 C 43.971797 5.194023 44.962227 5.689141 44.962227 6.300078 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-23" x="806.832031" y="64.767687"/>
<use xlink:href="#glyph0-18" x="814.887587" y="64.767687"/>
<use xlink:href="#glyph0-7" x="822.387587" y="64.767687"/>
<use xlink:href="#glyph0-10" x="825.998698" y="64.767687"/>
</g>
<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 37.735273 6.359258 L 39.988984 6.3325 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 39.991914 6.5825 L 40.488789 6.326641 L 39.985859 6.082695 Z M 39.991914 6.5825 " transform="matrix(20,0,0,20,-36.1,-65.11875)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -0,0 +1,37 @@
gluon-logging
=============
The *gluon-logging* package allows to configure a remote syslog server that
will receive the systems log output that is also visible when calling ``logread``
from a terminal.
It supports both IPv4 and IPv6 endpoints over UDP and TCP.
Note: The syslog mechanism is incapable of providing a complete log as network
access is required to send out log messages and ``logd`` does not buffer and resend
older log messages even though they might be available in ``logread``.
This package conflicts with ``gluon-web-logging`` as it will overwrite the
user-given syslog server on every upgrade.
site.conf
---------
syslog.ip : required
- Destination address of the remote syslog server
syslog.port : optional
- Destination port of the remote syslog server
- Defaults to 514
syslog.proto : optional
- Protocol to transport syslog frames in, can be either ``tcp`` or ``udp``
- Defaults to UDP
Example::
syslog = {
ip = "2001:db8::1",
port = 514,
proto = "udp",
},

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="931.48547" height="370.93994" id="svg4059" inkscape:version="0.48.1 r9760" sodipodi:docname="bat_v2_black.svg" inkscape:export-filename="/mnt/pandem0nium/pub/incoming/bat_logo_v2/bat_v2_black.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" style="display:inline">
<sodipodi:namedview pagecolor="#000000" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="956" inkscape:window-height="1173" id="namedview9" showgrid="false" inkscape:zoom="0.88204281" inkscape:cx="466.24453" inkscape:cy="37.028713" inkscape:window-x="1920" inkscape:window-y="0" inkscape:window-maximized="0" inkscape:current-layer="layer2" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:snap-nodes="true"/>
<defs id="defs4061"/>
<metadata id="metadata4064">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:groupmode="layer" id="layer3" inkscape:label="outline" style="display:none" transform="translate(6.26672, 5.9375)">
<path style="color:#000000;fill:#ffffff;stroke:none;stroke-width:4.27199984;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" d="m 483.25,-3.21875 c -6.08901,48.631979 -35.33662,91.011416 -69.21578,124.91707 -21.83485,21.38244 -47.03966,39.44335 -75.34672,51.17668 5.57969,-19.28428 1.04687,-40.97874 -11.5,-56.59375 2.45626,-29.914047 0.68927,-59.992978 -2.5,-89.78125 -15.98198,19.265018 -27.7684,41.544355 -37.5,64.5 -12.24825,-3.17862 -25.72651,-2.402049 -37.71875,0.46875 C 239.88593,74.102096 226.47693,59.077996 210.625,47.0625 c -3.34092,23.469062 -2.56561,47.559048 0.25,70.875 -6.69043,8.82966 -11.26059,19.42531 -12.0625,30.53125 -1.92921,1.3424 -3.05608,3.45019 -4.6875,0.40625 -20.84238,-21.1131 -32.59851,-48.84198 -44.9375,-75.34375 -14.85679,72.96988 -54.000466,137.54014 -93.508574,199.57505 -20.539303,31.20908 -42.388201,61.40672 -64.085176,91.86245 8.08014534,2.26279 14.376322,-5.17296 21.382238,-7.84546 48.067949,-26.0431 95.020242,-57.97999 149.805262,-67.65454 7.73822,-1.18656 15.65228,-1.74501 23.53125,-1.625 -0.16141,-13.91977 12.35539,-25.87856 26.40625,-24.625 13.02151,-0.10475 25.24921,5.06339 36.71875,10.84375 3.0761,-8.90096 9.56834,-15.98034 17.8125,-20.25 15.98458,27.53202 46.28592,42.98776 75.65932,52.75163 10.28498,3.53684 21.92146,5.33208 32.02818,7.49837 -0.72852,8.29742 2.55832,18.64745 11.71875,20.5625 7.84288,-6.18411 13.7902,-15.27395 22.59202,-19.68372 10.89918,-0.79379 21.80373,-2.64611 32.18923,-5.97253 8.1863,6.12253 18.23881,13.28825 29.03125,9.78125 0.2397,-7.80979 -2.17974,-15.60208 -1.25,-23.34375 14.60652,-14.33722 28.49903,-29.6116 39.75,-46.65625 -31.89112,0.19103 -65.39001,-1.50716 -93.6875,-17.375 12.63668,-0.24322 25.04624,3.36048 36.09375,9.40625 26.41279,-12.24594 57.54458,-3.79641 80.97725,11.3725 5.86994,3.60205 11.37305,7.64719 16.46025,12.19 36.58823,-16.89113 78.56629,-15.82385 118.11934,-12.20623 88.66214,9.36494 173.26796,44.12384 247.50566,92.70623 3.41963,1.85442 7.16209,2.95892 10.78125,4.40625 -11.75164,-20.6658 -29.05422,-37.32743 -43.5,-56.125 C 818.67884,217.58496 746.42668,149.41496 664.49937,94.602513 607.29452,55.830775 546.38636,22.78003 483.5625,-5.9375 c -0.10417,0.90625 -0.20833,1.8125 -0.3125,2.71875 z" id="path3993-5" inkscape:connector-curvature="0"/>
</g>
<g inkscape:groupmode="layer" id="layer2" inkscape:label="batman-adv" style="display:inline" transform="translate(6.26672, 5.9375)">
<g style="display:inline" transform="translate(-51.5312, -495.768)" id="layer1">
<path d="m 538.40625,495.76769 c -8.05674,66.9338 -77.31603,151.94452 -154.9375,179.84375 3.27747,-7.40037 5.09375,-15.49392 5.09375,-24 0,-14.42887 -5.21809,-27.70021 -13.96875,-38.3125 1.97025,-21.96404 1.77421,-48.67721 -1.375,-80.59375 -13.0022,16.9579 -23.30307,37.7663 -32.15625,58.78125 -6.27289,-1.8029 -12.93745,-2.78125 -19.84375,-2.78125 -7.73405,0 -15.17627,1.22854 -22.09375,3.46875 -7.42014,-13.90647 -17.47037,-28.11748 -33.78125,-41.59375 -2.4998,23.48832 -1.59267,44.90394 1.6875,63.65625 -8.2866,10.45096 -13.63544,23.35979 -12.0986,32.68414 -4.42484,0.36051 -5.23536,4.01016 -5.31948,6.88419 -19.28312,-16.49687 -32.60091,-39.15698 -47.58192,-72.16208 -13.26705,58.98947 -53.37139,142.16702 -150.5,273.75 61.55905,-33.2251 123.79671,-75.61843 182.8125,-75.78125 4.05468,-25.33145 30.1327,-32.48291 64.65625,-15.15625 4.05331,-9.20658 11.84907,-15.85762 21.59375,-20.21875 12.89223,29.16757 60.06405,56.23506 110.53125,61.78125 -2.71475,10.31567 2.48339,19.28096 6.03125,19.90625 L 457.25,806.89269 c 12.40469,-0.59384 24.70147,-2.7024 36.40625,-6.5625 8.39362,6.41285 17.71829,12.37841 24.1875,10.96875 l -1.71875,-21.125 c 13.74684,-14.03964 23.51218,-23.14064 36.6879,-41.69749 -37.60849,-0.0334 -70.29254,-4.68998 -97.84415,-24.05251 14.31376,-2.87534 30.90137,-1.2243 48.09375,7.71875 48.64496,-20.64584 97.96875,23.25 97.96875,23.25 59.36547,-28.55091 217.47867,-17.57755 366.6875,81.8125 -81.50891,-100.35408 -186.3503,-229.51108 -429.3125,-341.4375 z" id="path3993" style="color:#000000;fill:#000000;stroke:none;stroke-width:4.27199984;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" inkscape:export-filename="/home/sven/dokumente/bat_logo_v2.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90" inkscape:connector-curvature="0" sodipodi:nodetypes="ccscccscccccccccccccccccccccc"/>
<path d="m 287.37698,691.21665 6.32487,6.0769 42.42641,-3.28299 4.04061,-10.85914 -6.08375,5.31015 -38.85662,6.0495 z" id="path4001" style="color:#000000;fill:#ffffff;stroke:none;stroke-width:1.77165353;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccc"/>
<path d="m 304.03798,658.90775 c 3.73562,-7.35256 3.37257,-7.75354 27.47128,-14.84657 15.15993,-4.46206 30.11288,-9.25782 32.38025,-2.07348 l 18.53034,-4.86774 0.54842,3.1737 -18.32114,6.49226 c -3.7905,21.99567 -3.66551,19.92566 -20.7106,21.97074 -27.63928,3.31618 -30.32837,6.17704 -39.39348,-6.06083 l -7.32361,1.01015 c -3.77481,8.34177 -0.87651,8.42602 -25.47706,7.6321 -16.18663,-0.52238 -14.20261,-0.23719 -17.22819,-15.14996 -1.35304,-6.66902 -0.33802,-7.91117 21.30347,-5.15085 17.50983,2.23334 17.19396,1.76122 21.20894,8.92319 z" id="path4003" style="color:#000000;fill:#ffffff;stroke:none;stroke-width:1.77165353;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" inkscape:connector-curvature="0" sodipodi:nodetypes="csccccsccssscc"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1,246 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
<svg width="28cm" height="12cm" viewBox="239 289 551 223" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Background">
<g>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 713.614 347.58 L 713.54,345.719 L 713.283,343.858 L 712.804,342.03 L 712.142,340.201 L 711.258,338.34 L 710.264,336.545 L 709.013,334.781 L 707.614,333.051 L 706.104,331.321 L 704.337,329.688 L 702.46,328.056 L 700.398,326.521 L 698.153,324.986 L 695.797,323.55 L 693.294,322.146 L 690.606,320.84 L 687.845,319.566 L 684.974,318.391 L 681.955,317.281 L 678.826,316.269 L 675.587,315.289 L 672.237,314.473 L 668.887,313.657 L 665.39,312.971 L 661.819,312.351 L 658.248,311.828 L 654.604,311.404 L 650.922,311.11 L 647.204,310.849 L 643.45,310.718 L 639.695,310.653 L 639.695,310.653 L 635.977,310.718 L 632.185,310.849 L 628.504,311.11 L 624.822,311.404 L 621.141,311.828 L 617.57,312.351 L 614,312.971 L 610.539,313.657 L 607.116,314.473 L 603.839,315.289 L 600.6,316.269 L 597.508,317.281 L 594.452,318.391 L 591.581,319.566 L 588.783,320.84 L 586.096,322.146 L 583.592,323.55 L 581.236,324.986 L 578.991,326.521 L 576.929,328.056 L 575.052,329.688 L 573.322,331.321 L 571.739,333.051 L 570.414,334.781 L 569.162,336.545 L 568.131,338.34 L 567.248,340.201 L 566.659,342.03 L 566.18,343.858 L 565.849,345.719 L 565.812,347.58 L 565.812,347.58 L 565.849,349.474 L 566.18,351.335 L 566.659,353.196 L 567.248,355.024 L 568.131,356.853 L 569.162,358.649 L 570.414,360.412 L 571.739,362.175 L 573.322,363.873 L 575.052,365.505 L 576.929,367.138 L 578.991,368.705 L 581.236,370.207 L 583.592,371.643 L 586.096,373.047 L 588.783,374.386 L 591.581,375.594 L 594.452,376.835 L 597.508,377.945 L 600.6,378.957 L 603.839,379.871 L 607.116,380.753 L 610.539,381.536 L 614,382.222 L 617.57,382.842 L 621.141,383.365 L 624.822,383.757 L 628.504,384.083 L 632.185,384.377 L 635.977,384.475 L 639.695,384.508 L 639.695,384.508 L 643.45,384.475 L 647.204,384.377 L 650.922,384.083 L 654.604,383.757 L 658.248,383.365 L 661.819,382.842 L 665.39,382.222 L 668.887,381.536 L 672.237,380.753 L 675.587,379.871 L 678.826,378.957 L 681.955,377.945 L 684.974,376.835 L 687.845,375.594 L 690.606,374.386 L 693.294,373.047 L 695.797,371.643 L 698.153,370.207 L 700.398,368.705 L 702.46,367.138 L 704.337,365.505 L 706.104,363.873 L 707.614,362.175 L 709.013,360.412 L 710.264,358.649 L 711.258,356.853 L 712.142,355.024 L 712.804,353.196 L 713.283,351.335 L 713.54,349.474 L 713.614,347.58z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 597.765 366.974 L 597.692,365.113 L 597.434,363.252 L 597.139,361.424 L 596.624,359.563 L 595.961,357.734 L 595.152,355.939 L 594.194,354.176 L 593.164,352.445 L 591.986,350.715 L 590.66,349.082 L 589.225,347.45 L 587.642,345.915 L 585.875,344.381 L 584.071,342.944 L 582.157,341.54 L 580.095,340.234 L 578.034,338.961 L 575.751,337.785 L 573.469,336.675 L 571.039,335.696 L 568.61,334.683 L 566.07,333.802 L 563.419,333.051 L 560.769,332.365 L 558.045,331.745 L 555.284,331.223 L 552.486,330.798 L 549.651,330.504 L 546.854,330.243 L 543.982,330.08 L 541.111,330.047 L 541.111,330.047 L 538.239,330.08 L 535.368,330.243 L 532.497,330.504 L 529.699,330.798 L 526.864,331.223 L 524.104,331.745 L 521.416,332.365 L 518.766,333.051 L 516.152,333.802 L 513.612,334.683 L 511.109,335.696 L 508.753,336.675 L 506.397,337.785 L 504.188,338.961 L 502.09,340.234 L 500.028,341.54 L 498.114,342.944 L 496.273,344.381 L 494.543,345.915 L 492.997,347.45 L 491.524,349.082 L 490.236,350.715 L 489.021,352.445 L 487.954,354.176 L 487.033,355.939 L 486.223,357.734 L 485.561,359.563 L 485.082,361.424 L 484.714,363.252 L 484.493,365.113 L 484.42,366.974 L 484.42,366.974 L 484.493,368.868 L 484.714,370.729 L 485.082,372.59 L 485.561,374.419 L 486.223,376.247 L 487.033,378.043 L 487.954,379.806 L 489.021,381.536 L 490.236,383.267 L 491.524,384.899 L 492.997,386.532 L 494.543,388.066 L 496.273,389.601 L 498.114,391.038 L 500.028,392.442 L 502.09,393.748 L 504.188,394.988 L 506.397,396.164 L 508.753,397.339 L 511.109,398.351 L 513.612,399.265 L 516.152,400.18 L 518.766,400.931 L 521.416,401.616 L 524.104,402.237 L 526.864,402.726 L 529.699,403.151 L 532.497,403.477 L 535.368,403.771 L 538.239,403.869 L 541.111,403.902 L 541.111,403.902 L 543.982,403.869 L 546.854,403.771 L 549.651,403.477 L 552.486,403.151 L 555.284,402.726 L 558.045,402.237 L 560.769,401.616 L 563.419,400.931 L 566.07,400.18 L 568.61,399.265 L 571.039,398.351 L 573.469,397.339 L 575.751,396.164 L 578.034,394.988 L 580.095,393.748 L 582.157,392.442 L 584.071,391.038 L 585.875,389.601 L 587.642,388.066 L 589.225,386.532 L 590.66,384.899 L 591.986,383.267 L 593.164,381.536 L 594.194,379.806 L 595.152,378.043 L 595.961,376.247 L 596.624,374.419 L 597.139,372.59 L 597.434,370.729 L 597.692,368.868 L 597.765,366.974z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 526.312 404.685 L 526.275,403.151 L 526.165,401.616 L 525.907,400.082 L 525.576,398.58 L 525.097,397.143 L 524.545,395.641 L 523.956,394.172 L 523.257,392.768 L 522.447,391.364 L 521.527,390.025 L 520.533,388.752 L 519.465,387.446 L 518.324,386.205 L 517.109,384.997 L 515.784,383.887 L 514.422,382.842 L 513.023,381.765 L 511.55,380.818 L 509.968,379.904 L 508.348,379.055 L 506.691,378.304 L 504.961,377.586 L 503.231,376.965 L 501.427,376.41 L 499.586,375.888 L 497.746,375.496 L 495.868,375.104 L 493.917,374.876 L 492.003,374.68 L 490.126,374.582 L 488.175,374.517 L 488.175,374.517 L 486.223,374.582 L 484.272,374.68 L 482.358,374.876 L 480.481,375.104 L 478.566,375.496 L 476.689,375.888 L 474.885,376.41 L 473.118,376.965 L 471.314,377.586 L 469.584,378.304 L 467.928,379.055 L 466.308,379.904 L 464.762,380.818 L 463.252,381.765 L 461.854,382.842 L 460.492,383.887 L 459.203,384.997 L 457.951,386.205 L 456.81,387.446 L 455.743,388.752 L 454.749,390.025 L 453.902,391.364 L 453.092,392.768 L 452.393,394.172 L 451.73,395.641 L 451.178,397.143 L 450.773,398.58 L 450.442,400.082 L 450.147,401.616 L 450,403.151 L 450,404.685 L 450,404.685 L 450,406.155 L 450.147,407.689 L 450.442,409.191 L 450.773,410.693 L 451.178,412.227 L 451.73,413.664 L 452.393,415.101 L 453.092,416.537 L 453.902,417.941 L 454.749,419.28 L 455.743,420.586 L 456.81,421.859 L 457.951,423.1 L 459.203,424.275 L 460.492,425.385 L 461.854,426.463 L 463.252,427.54 L 464.762,428.455 L 466.308,429.369 L 467.928,430.218 L 469.584,431.001 L 471.314,431.72 L 473.118,432.34 L 474.885,432.895 L 476.689,433.385 L 478.566,433.809 L 480.481,434.168 L 482.358,434.462 L 484.272,434.625 L 486.223,434.723 L 488.175,434.789 L 488.175,434.789 L 490.126,434.723 L 492.003,434.625 L 493.917,434.462 L 495.868,434.168 L 497.746,433.809 L 499.586,433.385 L 501.427,432.895 L 503.231,432.34 L 504.961,431.72 L 506.691,431.001 L 508.348,430.218 L 509.968,429.369 L 511.55,428.455 L 513.023,427.54 L 514.422,426.463 L 515.784,425.385 L 517.109,424.275 L 518.324,423.1 L 519.465,421.859 L 520.533,420.586 L 521.527,419.28 L 522.447,417.941 L 523.257,416.537 L 523.956,415.101 L 524.545,413.664 L 525.097,412.227 L 525.576,410.693 L 525.907,409.191 L 526.165,407.689 L 526.275,406.155 L 526.312,404.685z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 587.936 433.711 L 587.9,432.046 L 587.642,430.414 L 587.237,428.748 L 586.758,427.116 L 586.096,425.516 L 585.323,423.916 L 584.329,422.349 L 583.298,420.814 L 582.046,419.378 L 580.721,417.876 L 579.212,416.439 L 577.629,415.101 L 575.935,413.762 L 574.095,412.423 L 572.144,411.215 L 570.082,410.04 L 567.91,408.962 L 565.628,407.885 L 563.309,406.938 L 560.879,405.991 L 558.339,405.175 L 555.762,404.391 L 553.112,403.706 L 550.424,403.085 L 547.663,402.563 L 544.829,402.139 L 542.031,401.747 L 539.16,401.42 L 536.288,401.224 L 533.38,401.094 L 530.435,401.061 L 530.435,401.061 L 527.527,401.094 L 524.656,401.224 L 521.711,401.42 L 518.876,401.747 L 516.005,402.139 L 513.244,402.563 L 510.483,403.085 L 507.759,403.706 L 505.108,404.391 L 502.568,405.175 L 500.028,405.991 L 497.599,406.938 L 495.243,407.885 L 492.997,408.962 L 490.825,410.04 L 488.764,411.215 L 486.812,412.423 L 484.972,413.762 L 483.242,415.101 L 481.659,416.439 L 480.149,417.876 L 478.787,419.378 L 477.609,420.814 L 476.542,422.349 L 475.548,423.916 L 474.738,425.516 L 474.149,427.116 L 473.597,428.748 L 473.229,430.414 L 473.008,432.046 L 472.934,433.711 L 472.934,433.711 L 473.008,435.344 L 473.229,437.009 L 473.597,438.641 L 474.149,440.274 L 474.738,441.874 L 475.548,443.474 L 476.542,445.073 L 477.609,446.608 L 478.787,448.077 L 480.149,449.514 L 481.659,450.95 L 483.242,452.322 L 484.972,453.693 L 486.812,454.999 L 488.764,456.207 L 490.825,457.35 L 492.997,458.46 L 495.243,459.505 L 497.599,460.484 L 500.028,461.431 L 502.568,462.247 L 505.108,463.031 L 507.759,463.684 L 510.483,464.304 L 513.244,464.827 L 516.005,465.284 L 518.876,465.708 L 521.711,466.002 L 524.656,466.198 L 527.527,466.329 L 530.435,466.329 L 530.435,466.329 L 533.38,466.329 L 536.288,466.198 L 539.16,466.002 L 542.031,465.708 L 544.829,465.284 L 547.663,464.827 L 550.424,464.304 L 553.112,463.684 L 555.762,463.031 L 558.339,462.247 L 560.879,461.431 L 563.309,460.484 L 565.628,459.505 L 567.91,458.46 L 570.082,457.35 L 572.144,456.207 L 574.095,454.999 L 575.935,453.693 L 577.629,452.322 L 579.212,450.95 L 580.721,449.514 L 582.046,448.077 L 583.298,446.608 L 584.329,445.073 L 585.323,443.474 L 586.096,441.874 L 586.758,440.274 L 587.237,438.641 L 587.642,437.009 L 587.9,435.344 L 587.936,433.711z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 725.946 450.591 L 725.799,448.6 L 725.505,446.608 L 724.916,444.682 L 724.142,442.755 L 723.185,440.829 L 722.007,438.968 L 720.608,437.139 L 718.989,435.278 L 717.148,433.483 L 715.16,431.752 L 712.915,430.087 L 710.559,428.455 L 707.982,426.855 L 705.258,425.32 L 702.276,423.851 L 699.257,422.48 L 696.018,421.141 L 692.631,419.9 L 689.171,418.757 L 685.489,417.68 L 681.771,416.668 L 677.906,415.786 L 673.967,414.937 L 669.881,414.219 L 665.795,413.566 L 661.598,413.044 L 657.401,412.587 L 653.058,412.26 L 648.824,412.032 L 644.443,411.836 L 640.1,411.836 L 640.1,411.836 L 635.756,411.836 L 631.412,412.032 L 627.105,412.26 L 622.835,412.587 L 618.564,413.044 L 614.405,413.566 L 610.282,414.219 L 606.269,414.937 L 602.256,415.786 L 598.465,416.668 L 594.673,417.68 L 591.065,418.757 L 587.568,419.9 L 584.218,421.141 L 580.979,422.48 L 577.887,423.851 L 574.978,425.32 L 572.254,426.855 L 569.641,428.455 L 567.248,430.087 L 565.039,431.752 L 563.088,433.483 L 561.247,435.278 L 559.628,437.139 L 558.229,438.968 L 557.014,440.829 L 556.057,442.755 L 555.247,444.682 L 554.695,446.608 L 554.363,448.6 L 554.253,450.591 L 554.253,450.591 L 554.363,452.485 L 554.695,454.477 L 555.247,456.403 L 556.057,458.362 L 557.014,460.288 L 558.229,462.149 L 559.628,463.978 L 561.247,465.839 L 563.088,467.635 L 565.039,469.365 L 567.248,471.03 L 569.641,472.728 L 572.254,474.263 L 574.978,475.797 L 577.887,477.234 L 580.979,478.67 L 584.218,479.976 L 587.568,481.217 L 591.065,482.36 L 594.673,483.47 L 598.465,484.417 L 602.256,485.331 L 606.269,486.147 L 610.282,486.866 L 614.405,487.551 L 618.564,488.041 L 622.835,488.498 L 627.105,488.857 L 631.412,489.086 L 635.756,489.282 L 640.1,489.282 L 640.1,489.282 L 644.443,489.282 L 648.824,489.086 L 653.058,488.857 L 657.401,488.498 L 661.598,488.041 L 665.795,487.551 L 669.881,486.866 L 673.967,486.147 L 677.906,485.331 L 681.771,484.417 L 685.489,483.47 L 689.171,482.36 L 692.631,481.217 L 696.018,479.976 L 699.257,478.67 L 702.276,477.234 L 705.258,475.797 L 707.982,474.263 L 710.559,472.728 L 712.915,471.03 L 715.16,469.365 L 717.148,467.635 L 718.989,465.839 L 720.608,463.978 L 722.007,462.149 L 723.185,460.288 L 724.142,458.362 L 724.916,456.403 L 725.505,454.477 L 725.799,452.485 L 725.946,450.591z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 773.582 361.228 L 773.545,359.791 L 773.324,358.289 L 772.919,356.82 L 772.477,355.384 L 771.815,353.98 L 771.078,352.543 L 770.158,351.139 L 769.091,349.768 L 767.949,348.462 L 766.698,347.123 L 765.262,345.85 L 763.716,344.609 L 762.096,343.466 L 760.292,342.291 L 758.452,341.213 L 756.427,340.201 L 754.366,339.157 L 752.23,338.242 L 749.948,337.393 L 747.629,336.577 L 745.273,335.826 L 742.77,335.141 L 740.23,334.52 L 737.653,333.965 L 735.002,333.475 L 732.352,333.149 L 729.628,332.757 L 726.903,332.496 L 724.106,332.333 L 721.345,332.235 L 718.547,332.169 L 718.547,332.169 L 715.712,332.235 L 712.951,332.333 L 710.154,332.496 L 707.43,332.757 L 704.742,333.149 L 702.055,333.475 L 699.441,333.965 L 696.828,334.52 L 694.288,335.141 L 691.784,335.826 L 689.392,336.577 L 687.109,337.393 L 684.827,338.242 L 682.692,339.157 L 680.63,340.201 L 678.642,341.213 L 676.765,342.291 L 674.961,343.466 L 673.341,344.609 L 671.832,345.85 L 670.359,347.123 L 669.108,348.462 L 667.967,349.768 L 666.899,351.139 L 665.979,352.543 L 665.243,353.98 L 664.617,355.384 L 664.101,356.82 L 663.77,358.289 L 663.586,359.791 L 663.476,361.228 L 663.476,361.228 L 663.586,362.697 L 663.77,364.167 L 664.101,365.603 L 664.617,367.072 L 665.243,368.509 L 665.979,369.913 L 666.899,371.317 L 667.967,372.688 L 669.108,374.059 L 670.359,375.333 L 671.832,376.574 L 673.341,377.847 L 674.961,379.022 L 676.765,380.132 L 678.642,381.243 L 680.63,382.287 L 682.692,383.267 L 684.827,384.181 L 687.109,385.095 L 689.392,385.911 L 691.784,386.63 L 694.288,387.348 L 696.828,387.936 L 699.441,388.458 L 702.055,388.981 L 704.742,389.372 L 707.43,389.699 L 710.154,389.993 L 712.951,390.123 L 715.712,390.287 L 718.547,390.287 L 718.547,390.287 L 721.345,390.287 L 724.106,390.123 L 726.903,389.993 L 729.628,389.699 L 732.352,389.372 L 735.002,388.981 L 737.653,388.458 L 740.23,387.936 L 742.77,387.348 L 745.273,386.63 L 747.629,385.911 L 749.948,385.095 L 752.23,384.181 L 754.366,383.267 L 756.427,382.287 L 758.452,381.243 L 760.292,380.132 L 762.096,379.022 L 763.716,377.847 L 765.262,376.574 L 766.698,375.333 L 767.949,374.059 L 769.091,372.688 L 770.158,371.317 L 771.078,369.913 L 771.815,368.509 L 772.477,367.072 L 772.919,365.603 L 773.324,364.167 L 773.545,362.697 L 773.582,361.228z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 789.19 398.547 L 789.08,397.078 L 788.932,395.609 L 788.564,394.172 L 788.086,392.735 L 787.423,391.266 L 786.687,389.895 L 785.803,388.458 L 784.736,387.12 L 783.595,385.748 L 782.343,384.475 L 780.907,383.169 L 779.361,381.961 L 777.778,380.818 L 775.974,379.61 L 774.134,378.565 L 772.22,377.488 L 770.158,376.508 L 767.949,375.594 L 765.777,374.712 L 763.458,373.896 L 761.102,373.145 L 758.636,372.46 L 756.133,371.872 L 753.556,371.317 L 750.905,370.827 L 748.255,370.435 L 745.567,370.109 L 742.806,369.815 L 740.082,369.684 L 737.321,369.586 L 734.56,369.521 L 734.56,369.521 L 731.763,369.586 L 729.039,369.684 L 726.278,369.815 L 723.59,370.109 L 720.903,370.435 L 718.216,370.827 L 715.602,371.317 L 713.062,371.872 L 710.522,372.46 L 708.055,373.145 L 705.699,373.896 L 703.38,374.712 L 701.135,375.594 L 699.036,376.508 L 696.975,377.488 L 694.95,378.565 L 693.11,379.61 L 691.379,380.818 L 689.796,381.961 L 688.25,383.169 L 686.851,384.475 L 685.526,385.748 L 684.385,387.12 L 683.391,388.458 L 682.471,389.895 L 681.661,391.266 L 681.072,392.735 L 680.593,394.172 L 680.225,395.609 L 680.004,397.078 L 679.968,398.547 L 679.968,398.547 L 680.004,400.016 L 680.225,401.518 L 680.593,402.955 L 681.072,404.391 L 681.661,405.828 L 682.471,407.232 L 683.391,408.669 L 684.385,410.007 L 685.526,411.313 L 686.851,412.652 L 688.25,413.893 L 689.796,415.133 L 691.379,416.309 L 693.11,417.451 L 694.95,418.562 L 696.975,419.574 L 699.036,420.586 L 701.135,421.5 L 703.38,422.349 L 705.699,423.165 L 708.055,423.916 L 710.522,424.602 L 713.062,425.222 L 715.602,425.81 L 718.216,426.3 L 720.903,426.626 L 723.59,427.018 L 726.278,427.247 L 729.039,427.442 L 731.763,427.54 L 734.56,427.573 L 734.56,427.573 L 737.321,427.54 L 740.082,427.442 L 742.806,427.247 L 745.567,427.018 L 748.255,426.626 L 750.905,426.3 L 753.556,425.81 L 756.133,425.222 L 758.636,424.602 L 761.102,423.916 L 763.458,423.165 L 765.777,422.349 L 767.949,421.5 L 770.158,420.586 L 772.22,419.574 L 774.134,418.562 L 775.974,417.451 L 777.778,416.309 L 779.361,415.133 L 780.907,413.893 L 782.343,412.652 L 783.595,411.313 L 784.736,410.007 L 785.803,408.669 L 786.687,407.232 L 787.423,405.828 L 788.086,404.391 L 788.564,402.955 L 788.932,401.518 L 789.08,400.016 L 789.19,398.547z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 778.515 429.401 L 778.441,427.018 L 778.22,424.569 L 777.926,422.218 L 777.447,419.802 L 776.821,417.451 L 776.048,415.133 L 775.165,412.848 L 774.097,410.595 L 772.956,408.407 L 771.741,406.252 L 770.342,404.163 L 768.796,402.171 L 767.176,400.212 L 765.409,398.351 L 763.569,396.555 L 761.654,394.825 L 759.593,393.192 L 757.495,391.723 L 755.249,390.287 L 752.967,388.981 L 750.611,387.74 L 748.218,386.63 L 745.715,385.585 L 743.175,384.671 L 740.524,383.887 L 737.91,383.267 L 735.186,382.679 L 732.499,382.255 L 729.812,381.961 L 727.087,381.765 L 724.327,381.732 L 724.327,381.732 L 721.566,381.765 L 718.841,381.961 L 716.081,382.255 L 713.393,382.679 L 710.743,383.267 L 708.055,383.887 L 705.479,384.671 L 702.939,385.585 L 700.435,386.63 L 697.969,387.74 L 695.613,388.981 L 693.33,390.287 L 691.159,391.723 L 688.987,393.192 L 686.962,394.825 L 685.011,396.555 L 683.17,398.351 L 681.44,400.212 L 679.783,402.171 L 678.311,404.163 L 676.912,406.252 L 675.624,408.407 L 674.482,410.595 L 673.489,412.848 L 672.605,415.133 L 671.832,417.451 L 671.206,419.802 L 670.728,422.218 L 670.359,424.569 L 670.139,427.018 L 670.065,429.401 L 670.065,429.401 L 670.139,431.818 L 670.359,434.266 L 670.728,436.617 L 671.206,439.001 L 671.832,441.417 L 672.605,443.702 L 673.489,445.955 L 674.482,448.241 L 675.624,450.395 L 676.912,452.55 L 678.311,454.673 L 679.783,456.664 L 681.44,458.591 L 683.17,460.484 L 685.011,462.28 L 686.962,463.978 L 688.987,465.61 L 691.159,467.145 L 693.33,468.549 L 695.613,469.888 L 697.969,471.096 L 700.435,472.238 L 702.939,473.25 L 705.479,474.165 L 708.055,474.916 L 710.743,475.601 L 713.393,476.124 L 716.081,476.548 L 718.841,476.842 L 721.566,477.038 L 724.327,477.136 L 724.327,477.136 L 727.087,477.038 L 729.812,476.842 L 732.499,476.548 L 735.186,476.124 L 737.91,475.601 L 740.524,474.916 L 743.175,474.165 L 745.715,473.25 L 748.218,472.238 L 750.611,471.096 L 752.967,469.888 L 755.249,468.549 L 757.495,467.145 L 759.593,465.61 L 761.654,463.978 L 763.569,462.28 L 765.409,460.484 L 767.176,458.591 L 768.796,456.664 L 770.342,454.673 L 771.741,452.55 L 772.956,450.395 L 774.097,448.241 L 775.165,445.955 L 776.048,443.702 L 776.821,441.417 L 777.447,439.001 L 777.926,436.617 L 778.22,434.266 L 778.441,431.818 L 778.515,429.401z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 731.689 400.702 L 731.542,398.253 L 731.1,395.902 L 730.401,393.454 L 729.443,391.103 L 728.192,388.752 L 726.646,386.401 L 724.842,384.116 L 722.744,381.863 L 720.461,379.675 L 717.884,377.553 L 715.013,375.431 L 711.958,373.406 L 708.644,371.513 L 705.11,369.619 L 701.356,367.791 L 697.453,366.093 L 693.294,364.493 L 688.95,362.958 L 684.495,361.522 L 679.82,360.183 L 674.998,358.975 L 670.065,357.832 L 665.022,356.82 L 659.868,355.939 L 654.567,355.188 L 649.192,354.502 L 643.781,353.98 L 638.296,353.555 L 632.774,353.196 L 627.215,353.033 L 621.583,352.968 L 621.583,352.968 L 616.024,353.033 L 610.466,353.196 L 604.944,353.555 L 599.422,353.98 L 594.01,354.502 L 588.636,355.188 L 583.372,355.939 L 578.218,356.82 L 573.101,357.832 L 568.242,358.975 L 563.419,360.183 L 558.707,361.522 L 554.216,362.958 L 549.946,364.493 L 545.749,366.093 L 541.81,367.791 L 538.129,369.619 L 534.558,371.513 L 531.245,373.406 L 528.227,375.431 L 525.355,377.553 L 522.815,379.675 L 520.496,381.863 L 518.361,384.116 L 516.594,386.401 L 515.084,388.752 L 513.759,391.103 L 512.802,393.454 L 512.103,395.902 L 511.661,398.253 L 511.55,400.702 L 511.55,400.702 L 511.661,403.085 L 512.103,405.502 L 512.802,407.885 L 513.759,410.301 L 515.084,412.652 L 516.594,414.97 L 518.361,417.223 L 520.496,419.508 L 522.815,421.729 L 525.355,423.851 L 528.227,425.908 L 531.245,427.932 L 534.558,429.891 L 538.129,431.752 L 541.81,433.548 L 545.749,435.278 L 549.946,436.911 L 554.216,438.445 L 558.707,439.882 L 563.419,441.155 L 568.242,442.429 L 573.101,443.506 L 578.218,444.518 L 583.372,445.433 L 588.636,446.216 L 594.01,446.869 L 599.422,447.424 L 604.944,447.849 L 610.466,448.143 L 616.024,448.371 L 621.583,448.404 L 621.583,448.404 L 627.215,448.371 L 632.774,448.143 L 638.296,447.849 L 643.781,447.424 L 649.192,446.869 L 654.567,446.216 L 659.868,445.433 L 665.022,444.518 L 670.065,443.506 L 674.998,442.429 L 679.82,441.155 L 684.495,439.882 L 688.95,438.445 L 693.294,436.911 L 697.453,435.278 L 701.356,433.548 L 705.11,431.752 L 708.644,429.891 L 711.958,427.932 L 715.013,425.908 L 717.884,423.851 L 720.461,421.729 L 722.744,419.508 L 724.842,417.223 L 726.646,414.97 L 728.192,412.652 L 729.443,410.301 L 730.401,407.885 L 731.1,405.502 L 731.542,403.085 L 731.689,400.702z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 640.541 347.254 L 713.393,339.026 L 712.473,337.23 L 711.332,335.402 L 710.08,333.606 L 708.571,331.876 L 706.951,330.21 L 705.11,328.513 L 703.196,326.913 L 700.987,325.378 L 698.742,323.876 L 696.312,322.44 L 693.699,321.068 L 690.974,319.795 L 688.103,318.554 L 685.121,317.346 L 682.029,316.269 L 678.826,315.289 L 675.587,314.31 L 672.163,313.494 L 668.703,312.743 L 665.206,312.057 L 661.561,311.469 L 657.917,311.012 L 654.236,310.588 L 650.518,310.294 L 646.763,310.098 L 642.971,310 L 639.216,310 L 635.424,310.098 L 631.633,310.229 L 627.951,310.49 L 624.233,310.914 L 620.552,311.339 L 616.908,311.926 L 613.337,312.547 L 609.877,313.265 L 606.49,314.081 L 603.14,314.995 L 599.9,315.942 L 596.845,317.02 L 593.826,318.163 L 590.918,319.371 L 588.157,320.644 L 585.544,322.015 L 583.077,323.452 L 580.721,324.921 L 578.512,326.456 L 576.451,328.056 L 574.573,329.688 L 572.954,331.418 L 571.371,333.084 L 570.009,334.879 L 568.867,336.642 L 567.91,338.471 L 567.1,340.299 L 640.541,347.254z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 713.393 338.961 L 712.436,337.132 L 711.332,335.336 L 710.043,333.541 L 708.571,331.843 L 706.877,330.145 L 705.074,328.48 L 703.123,326.88 L 700.914,325.346 L 698.631,323.876 L 696.275,322.44 L 693.625,321.003 L 690.974,319.73 L 688.066,318.489 L 685.084,317.346 L 682.029,316.204 L 678.826,315.224 L 675.55,314.31 L 672.126,313.461 L 668.666,312.743 L 665.206,312.057 L 661.561,311.469 L 657.88,311.012 L 654.199,310.588 L 650.481,310.294 L 646.763,310.098 L 642.934,310 L 639.179,310 L 635.424,310.098 L 631.67,310.229 L 627.915,310.49 L 624.233,310.914 L 620.552,311.306 L 616.945,311.861 L 613.411,312.547 L 609.877,313.265 L 606.527,314.081 L 603.177,314.995 L 599.974,315.942 L 596.845,316.987 L 593.863,318.163 L 590.955,319.371 L 588.194,320.611 L 585.58,321.983 L 583.077,323.387 L 580.721,324.888 L 578.512,326.423 L 576.524,327.99 L 574.61,329.688 L 572.954,331.321 L 571.408,333.051 L 570.082,334.781 L 568.867,336.577 L 567.91,338.406 L 567.137,340.234"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 541.479 366.615 L 578.218,338.046 L 575.935,336.871 L 573.543,335.761 L 571.113,334.781 L 568.61,333.802 L 566.07,332.953 L 563.419,332.169 L 560.695,331.516 L 558.008,330.896 L 555.173,330.406 L 552.375,329.982 L 549.504,329.688 L 546.633,329.459 L 543.761,329.329 L 540.89,329.329 L 537.982,329.394 L 535.11,329.59 L 532.239,329.819 L 529.405,330.178 L 526.607,330.635 L 523.846,331.157 L 521.085,331.778 L 518.434,332.496 L 515.784,333.312 L 513.244,334.194 L 510.777,335.173 L 508.421,336.251 L 506.065,337.393 L 503.857,338.569 L 501.758,339.875 L 499.697,341.213 L 497.783,342.65 L 496.016,344.087 L 494.322,345.654 L 492.776,347.221 L 491.304,348.854 L 490.015,350.551 L 488.8,352.282 L 487.77,354.012 L 486.849,355.808 L 486.113,357.636 L 485.524,359.465 L 485.009,361.359 L 484.641,363.252 L 484.493,365.113 L 484.42,366.974 L 484.53,368.868 L 484.751,370.794 L 485.193,372.623 L 541.479,366.615z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 578.034 337.948 L 575.751,336.773 L 573.432,335.696 L 571.003,334.683 L 568.463,333.769 L 565.849,332.888 L 563.235,332.137 L 560.548,331.451 L 557.787,330.863 L 555.026,330.406 L 552.155,329.982 L 549.32,329.688 L 546.485,329.459 L 543.614,329.329 L 540.669,329.329 L 537.871,329.394 L 535,329.59 L 532.055,329.819 L 529.257,330.21 L 526.496,330.635 L 523.662,331.223 L 520.974,331.81 L 518.324,332.561 L 515.71,333.377 L 513.133,334.259 L 510.667,335.239 L 508.311,336.316 L 506.029,337.426 L 503.82,338.667 L 501.648,339.907 L 499.697,341.311 L 497.746,342.683 L 495.942,344.185 L 494.285,345.687 L 492.702,347.254 L 491.304,348.919 L 490.015,350.617 L 488.8,352.347 L 487.733,354.078 L 486.849,355.906 L 486.113,357.669 L 485.45,359.53 L 485.009,361.424 L 484.641,363.285 L 484.493,365.146 L 484.42,367.04 L 484.604,368.901 L 484.825,370.794 L 485.193,372.688"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 531.245 433.352 L 472.124,432.34 L 472.124,434.07 L 472.235,435.703 L 472.529,437.433 L 473.008,439.066 L 473.56,440.731 L 474.259,442.429 L 475.18,443.996 L 476.137,445.596 L 477.352,447.163 L 478.64,448.665 L 480.002,450.2 L 481.622,451.636 L 483.242,453.04 L 485.082,454.379 L 486.96,455.685 L 488.984,456.925 L 491.156,458.068 L 493.365,459.178 L 495.684,460.288 L 498.114,461.235 L 500.617,462.149 L 503.231,463.031 L 505.881,463.749 L 508.532,464.468 L 511.33,465.088 L 514.164,465.61 L 517.036,466.035 L 519.944,466.427 L 522.852,466.72 L 525.797,466.916 L 528.779,467.014 L 531.797,467.014 L 534.706,466.949 L 537.687,466.818 L 540.632,466.623 L 543.54,466.329 L 546.485,465.904 L 549.283,465.414 L 552.155,464.892 L 554.842,464.206 L 557.566,463.553 L 560.217,462.737 L 562.72,461.856 L 565.26,460.909 L 567.579,459.897 L 569.898,458.852 L 531.245,433.352z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 472.198 432.34 L 472.087,434.005 L 472.308,435.703 L 472.529,437.368 L 473.008,439.066 L 473.56,440.698 L 474.296,442.364 L 475.18,443.996 L 476.21,445.596 L 477.352,447.13 L 478.566,448.665 L 480.002,450.134 L 481.511,451.603 L 483.242,452.975 L 485.009,454.379 L 486.923,455.619 L 488.911,456.86 L 491.046,458.068 L 493.255,459.178 L 495.574,460.223 L 498.003,461.203 L 500.507,462.117 L 503.047,462.966 L 505.697,463.749 L 508.458,464.468 L 511.182,465.023 L 513.98,465.545 L 516.851,466.035 L 519.796,466.361 L 522.705,466.72 L 525.613,466.851 L 528.595,467.014 L 531.576,467.014 L 534.521,467.014 L 537.466,466.851 L 540.411,466.623 L 543.32,466.329 L 546.265,465.937 L 549.062,465.48 L 551.934,464.925 L 554.658,464.272 L 557.308,463.553 L 559.959,462.77 L 562.499,461.921 L 565.039,461.007 L 567.432,459.995 L 569.677,458.95"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 719.357 360.542 L 771.373,369.978 L 772.256,368.574 L 772.919,367.17 L 773.545,365.734 L 773.913,364.264 L 774.281,362.795 L 774.355,361.326 L 774.355,359.824 L 774.281,358.387 L 773.987,356.918 L 773.582,355.449 L 772.993,354.012 L 772.293,352.576 L 771.483,351.204 L 770.526,349.8 L 769.422,348.462 L 768.17,347.123 L 766.771,345.817 L 765.336,344.576 L 763.753,343.368 L 762.059,342.226 L 760.256,341.05 L 758.268,340.005 L 756.28,338.993 L 754.108,338.046 L 751.936,337.132 L 749.654,336.316 L 747.298,335.5 L 744.831,334.781 L 742.328,334.128 L 739.751,333.541 L 737.1,333.051 L 734.487,332.627 L 731.726,332.235 L 729.002,331.941 L 726.241,331.712 L 723.443,331.614 L 720.682,331.516 L 717.921,331.516 L 715.123,331.614 L 712.326,331.745 L 709.602,331.974 L 706.841,332.267 L 704.117,332.627 L 701.429,333.084 L 719.357,360.542z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 766.587 375.3 L 771.336,370.044 L 772.22,368.672 L 772.919,367.236 L 773.471,365.799 L 773.913,364.33 L 774.207,362.861 L 774.318,361.424 L 774.355,359.889 L 774.244,358.453 L 773.987,356.983 L 773.582,355.514 L 772.993,354.078 L 772.293,352.641 L 771.52,351.237 L 770.563,349.898 L 769.422,348.494 L 768.17,347.156 L 766.882,345.85 L 765.372,344.609 L 763.79,343.401 L 762.096,342.226 L 760.292,341.116 L 758.378,340.071 L 756.353,339.026 L 754.255,338.046 L 752.01,337.165 L 749.727,336.316 L 747.371,335.532 L 744.905,334.879 L 742.401,334.194 L 739.861,333.573 L 737.248,333.051 L 734.56,332.627 L 731.91,332.235 L 729.186,331.941 L 726.425,331.745 L 723.627,331.614 L 720.829,331.516 L 717.995,331.516 L 715.234,331.614 L 712.436,331.745 L 709.675,331.941 L 706.951,332.235 L 704.264,332.594 L 701.576,333.051"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 726.756 398.906 L 785.325,410.856 L 786.503,409.289 L 787.46,407.754 L 788.343,406.122 L 789.043,404.489 L 789.521,402.857 L 789.853,401.224 L 789.963,399.527 L 789.963,397.861 L 789.742,396.196 L 789.411,394.564 L 788.822,392.899 L 788.123,391.299 L 787.202,389.699 L 786.208,388.099 L 784.957,386.564 L 783.558,385.095 L 782.049,383.593 L 780.318,382.124 L 778.478,380.753 L 726.756,398.906z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 777.889 416.276 L 785.251,410.921 L 786.356,409.387 L 787.46,407.754 L 788.307,406.155 L 789.006,404.489 L 789.485,402.857 L 789.853,401.224 L 790,399.527 L 789.963,397.861 L 789.742,396.164 L 789.337,394.531 L 788.822,392.899 L 788.123,391.266 L 787.202,389.634 L 786.172,388.034 L 784.883,386.467 L 783.521,384.997 L 781.901,383.495 L 780.245,382.059 L 778.367,380.687 L 766.587,375.3"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 724.29 430.446 L 705.81,475.797 L 708.534,476.516 L 711.295,477.169 L 714.056,477.658 L 716.927,478.05 L 719.725,478.344 L 722.523,478.475 L 725.431,478.475 L 728.265,478.344 L 731.063,478.148 L 733.898,477.756 L 736.659,477.266 L 739.42,476.711 L 742.144,475.993 L 744.831,475.112 L 747.408,474.165 L 749.985,473.087 L 752.488,471.912 L 754.918,470.606 L 757.274,469.267 L 759.519,467.733 L 761.654,466.133 L 763.716,464.468 L 765.704,462.672 L 767.581,460.811 L 769.275,458.884 L 770.894,456.86 L 772.44,454.803 L 773.803,452.648 L 775.017,450.493 L 776.159,448.241 L 777.116,445.922 L 777.999,443.572 L 778.699,441.221 L 779.288,438.805 L 779.656,436.421 L 779.987,433.972 L 780.061,431.524 L 780.061,429.075 L 779.913,426.626 L 779.619,424.177 L 779.177,421.761 L 778.625,419.378 L 777.889,417.027 L 724.29,430.446z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 705.957 475.83 L 708.718,476.613 L 711.442,477.234 L 714.24,477.756 L 717.038,478.083 L 719.909,478.344 L 722.707,478.475 L 725.541,478.54 L 728.376,478.344 L 731.247,478.148 L 734.045,477.756 L 736.806,477.266 L 739.567,476.646 L 742.291,475.928 L 744.942,475.079 L 747.592,474.099 L 750.132,473.055 L 752.599,471.912 L 754.991,470.606 L 757.347,469.169 L 759.593,467.667 L 761.728,466.035 L 763.79,464.37 L 765.777,462.639 L 767.618,460.746 L 769.385,458.787 L 770.931,456.827 L 772.477,454.705 L 773.839,452.55 L 775.054,450.395 L 776.159,448.143 L 777.152,445.792 L 778.036,443.474 L 778.699,441.09 L 779.288,438.707 L 779.729,436.323 L 779.987,433.874 L 780.061,431.426 L 780.061,428.977 L 779.877,426.528 L 779.619,424.079 L 779.14,421.663 L 778.515,419.28 L 777.889,416.929"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 490.162 404.685 L 487.365,373.896 L 485.303,374.059 L 483.352,374.255 L 481.291,374.582 L 479.303,374.974 L 477.352,375.431 L 475.437,376.019 L 473.56,376.574 L 471.719,377.325 L 469.879,378.043 L 468.149,378.859 L 466.455,379.773 L 464.835,380.72 L 463.252,381.732 L 461.817,382.842 L 460.381,383.952 L 459.056,385.128 L 457.804,386.369 L 456.663,387.675 L 455.522,388.981 L 454.528,390.385 L 453.681,391.821 L 452.871,393.258 L 452.098,394.694 L 451.509,396.196 L 451.031,397.731 L 450.589,399.265 L 450.258,400.833 L 450.11,402.432 L 450,403.967 L 450,405.534 L 450.11,407.069 L 450.331,408.669 L 450.663,410.203 L 451.031,411.738 L 451.583,413.272 L 452.172,414.774 L 452.908,416.243 L 453.718,417.68 L 454.638,419.084 L 455.632,420.488 L 456.773,421.761 L 457.915,423.067 L 459.203,424.308 L 460.565,425.483 L 461.964,426.626 L 463.473,427.671 L 465.056,428.683 L 466.676,429.663 L 468.406,430.544 L 470.1,431.36 L 471.94,432.111 L 490.162,404.685z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 487.365 373.896 L 485.414,374.059 L 483.389,374.255 L 481.401,374.582 L 479.487,374.941 L 477.536,375.398 L 475.621,375.888 L 473.781,376.508 L 471.977,377.161 L 470.173,377.88 L 468.517,378.696 L 466.786,379.577 L 465.204,380.492 L 463.657,381.471 L 462.185,382.549 L 460.712,383.659 L 459.424,384.769 L 458.136,386.009 L 456.994,387.25 L 455.89,388.556 L 454.933,389.895 L 454.013,391.266 L 453.129,392.637 L 452.393,394.074 L 451.73,395.543 L 451.178,397.045 L 450.773,398.547 L 450.368,400.082 L 450.147,401.616 L 450,403.151 L 450,404.685 L 450,406.22 L 450.221,407.754 L 450.442,409.289 L 450.773,410.824 L 451.252,412.325 L 451.73,413.795 L 452.393,415.231 L 453.203,416.733 L 454.013,418.137 L 454.933,419.476 L 455.964,420.814 L 457.031,422.12 L 458.172,423.361 L 459.424,424.569 L 460.786,425.712 L 462.222,426.822 L 463.694,427.867 L 465.277,428.846 L 466.823,429.793 L 468.517,430.642 L 470.247,431.426 L 472.014,432.177"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 639.29 454.118 L 555.505,457.676 L 556.057,459.472 L 556.756,461.301 L 557.713,463.064 L 558.928,464.794 L 560.217,466.459 L 561.799,468.157 L 563.53,469.79 L 565.481,471.422 L 567.653,472.957 L 569.972,474.491 L 572.401,475.928 L 575.089,477.332 L 577.887,478.67 L 580.868,479.976 L 583.997,481.152 L 587.237,482.327 L 590.697,483.372 L 594.158,484.417 L 597.802,485.331 L 601.52,486.213 L 605.422,486.931 L 609.324,487.649 L 613.263,488.237 L 617.386,488.759 L 621.509,489.184 L 625.669,489.51 L 629.792,489.771 L 634.026,489.902 L 638.296,490 L 642.492,490 L 646.763,489.869 L 650.959,489.673 L 655.119,489.38 L 659.242,488.955 L 663.365,488.498 L 667.341,487.943 L 671.317,487.257 L 675.182,486.604 L 679.01,485.788 L 682.692,484.874 L 686.226,483.894 L 689.686,482.85 L 693.036,481.707 L 696.239,480.531 L 699.294,479.291 L 702.129,477.985 L 704.89,476.613 L 707.43,475.177 L 709.859,473.675 L 712.105,472.14 L 714.093,470.606 L 715.933,468.973 L 717.627,467.276 L 719.062,465.61 L 639.29,454.118z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 555.578 457.742 L 556.057,459.505 L 556.793,461.301 L 557.713,463.064 L 558.928,464.794 L 560.29,466.525 L 561.799,468.157 L 563.566,469.79 L 565.481,471.422 L 567.653,472.957 L 569.972,474.491 L 572.401,475.928 L 575.089,477.332 L 577.96,478.67 L 580.868,479.976 L 583.997,481.152 L 587.237,482.327 L 590.697,483.372 L 594.158,484.384 L 597.802,485.331 L 601.52,486.213 L 605.349,486.931 L 609.251,487.649 L 613.227,488.237 L 617.35,488.759 L 621.436,489.184 L 625.595,489.478 L 629.755,489.771 L 633.952,489.902 L 638.185,490 L 642.419,489.967 L 646.615,489.869 L 650.812,489.608 L 655.045,489.38 L 659.168,488.955 L 663.218,488.465 L 667.267,487.943 L 671.206,487.323 L 675.071,486.604 L 678.863,485.788 L 682.508,484.874 L 686.115,483.894 L 689.576,482.882 L 692.889,481.805 L 696.091,480.597 L 699.11,479.356 L 702.055,478.05 L 704.779,476.613 L 707.356,475.21 L 709.786,473.708 L 711.958,472.238 L 714.019,470.606 L 715.86,469.006 L 717.479,467.341 L 718.989,465.643"/>
</g>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 472.883 378.401 L 472.883,360.469"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 472.883 378.111 L 472.883,365.811"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 473.404 362.192 L 472.308,362.192 L 472.308,360 L 473.404,360 L 473.404,362.192z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 473.404 362.192 L 472.308,362.192 L 472.308,360 L 473.404,360 L 473.404,362.192"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 446.304 378.401 L 446.304,360.469"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 446.304 378.111 L 446.304,365.811"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 446.824 362.192 L 445.728,362.192 L 445.728,360 L 446.824,360 L 446.824,362.192z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 446.824 362.192 L 445.728,362.192 L 445.728,360 L 446.824,360 L 446.824,362.192"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 480.318 380.677 C 480.318,385.007 471.293,388.516 460.159,388.516 C 449.025,388.516 440,385.007 440,380.677 L 440,392.16 C 440,396.49 449.025,400 460.159,400 C 471.293,400 480.318,396.49 480.318,392.16 L 480.318,380.677z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 480.318 380.677 C 480.318,385.007 471.293,388.516 460.159,388.516 C 449.025,388.516 440,385.007 440,380.677 L 440,392.16 C 440,396.49 449.025,400 460.159,400 C 471.293,400 480.318,396.49 480.318,392.16 L 480.318,380.677"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 460.159 388.516 C 471.293,388.516 480.318,385.007 480.318,380.677 C 480.318,376.347 471.293,372.837 460.159,372.837 C 449.025,372.837 440,376.347 440,380.677 C 440,385.007 449.025,388.516 460.159,388.516z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 460.159 388.516 C 471.293,388.516 480.318,385.007 480.318,380.677 C 480.318,376.347 471.293,372.837 460.159,372.837 C 449.025,372.837 440,376.347 440,380.677 C 440,385.007 449.025,388.516 460.159,388.516"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 455.555 377.612 L 457.22,380.109 L 450.927,381.563 L 452.301,380.419 L 442.574,378.756 L 445.015,376.927 L 454.4,378.516 L 455.555,377.612z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 464.413 383.666 L 463.276,381.093 L 468.953,379.958 L 467.968,380.84 L 477.431,382.456 L 475.162,384.272 L 465.754,382.507 L 464.413,383.666z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 461.308 376.248 L 467.667,374.508 L 467.742,377.234 L 466.153,376.93 L 463.048,379.503 L 460.088,379.072 L 463.29,376.554 L 461.308,376.248z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 458.583 386.014 L 452.528,387.149 L 452.301,384.349 L 454.041,384.726 L 457.374,381.88 L 460.324,382.38 L 456.767,385.484 L 458.583,386.014z"/>
</g>
<text font-size="21.4489" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="620" y="390">
<tspan x="620" y="390">Mesh</tspan>
</text>
<g>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 294.294 324.172 L 328.289,324.172 L 313.995,338.514 L 280,338.514 L 294.294,324.172z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 294.294 324.172 L 328.289,324.172 L 313.995,338.514 L 280,338.514 L 294.294,324.172"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 295.599 336.092 L 295.599,336.168 L 295.613,336.23 L 295.633,336.314 L 295.661,336.397 L 295.703,336.46 L 295.751,336.536 L 295.814,336.605 L 295.876,336.668 L 295.939,336.744 L 296.022,336.821 L 296.106,336.883 L 296.196,336.939 L 296.3,336.994 L 296.397,337.057 L 296.522,337.105 L 296.633,337.168 L 296.758,337.216 L 296.897,337.265 L 297.036,337.306 L 297.168,337.348 L 297.313,337.39 L 297.459,337.431 L 297.612,337.452 L 297.779,337.48 L 297.938,337.494 L 298.105,337.522 L 298.258,337.543 L 298.431,337.563 L 298.605,337.57 L 298.771,337.577 L 298.938,337.577"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 298.57 337.577 L 298.737,337.577 L 298.896,337.57 L 299.056,337.556 L 299.222,337.536 L 299.389,337.522 L 299.542,337.494 L 299.695,337.48 L 299.854,337.445 L 300,337.411 L 300.153,337.369 L 300.285,337.327 L 300.423,337.286 L 300.555,337.237 L 300.68,337.188 L 300.791,337.14 L 300.909,337.084 L 301.02,337.022 L 301.118,336.966 L 301.215,336.897 L 301.298,336.827 L 301.375,336.758 L 301.437,336.696 L 301.506,336.619 L 301.562,336.543 L 301.604,336.48 L 301.652,336.404 L 301.673,336.314 L 301.694,336.237 L 301.715,336.168 L 301.722,336.092"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 299.306 333.308 L 299.132,333.308 L 298.966,333.315 L 298.792,333.315 L 298.639,333.329 L 298.473,333.35 L 298.306,333.363 L 298.146,333.377 L 297.98,333.412 L 297.834,333.44 L 297.688,333.461 L 297.543,333.495 L 297.397,333.537 L 297.265,333.572 L 297.14,333.613 L 297.015,333.669 L 296.876,333.711 L 296.779,333.759 L 296.668,333.801 L 296.564,333.856 L 296.48,333.919 L 296.39,333.974 L 296.314,334.023 L 296.237,334.085 L 296.182,334.148 L 296.126,334.217 L 296.071,334.28 L 296.043,334.335 L 296.008,334.405 L 295.988,334.46 L 295.981,334.537 L 295.974,334.592"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 302.083 334.592 L 302.083,334.53 L 302.076,334.46 L 302.048,334.398 L 302.02,334.321 L 301.985,334.266 L 301.93,334.19 L 301.874,334.134 L 301.819,334.065 L 301.736,334.016 L 301.673,333.947 L 301.59,333.891 L 301.479,333.842 L 301.388,333.773 L 301.284,333.738 L 301.173,333.683 L 301.048,333.627 L 300.916,333.586 L 300.784,333.544 L 300.653,333.509 L 300.514,333.481 L 300.368,333.447 L 300.215,333.412 L 300.069,333.391 L 299.917,333.363 L 299.764,333.35 L 299.604,333.329 L 299.438,333.315 L 299.264,333.315 L 299.098,333.308 L 298.938,333.308"/>
<path style="fill: #a5a585; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 280 340 L 313.995,340 L 313.995,338.514 L 280,338.514 L 280,340z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 280 340 L 313.995,340 L 313.995,338.514 L 280,338.514 L 280,340"/>
<path style="fill: #a5a585; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 294.294 324.172 L 328.289,324.172 L 328.289,300.916 L 294.294,300.916 L 294.294,324.172z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 294.294 324.172 L 328.289,324.172 L 328.289,300.916 L 294.294,300.916 L 294.294,324.172"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 329.219 323.256 L 329.219,300 L 328.289,300.916 L 328.289,324.172 L 329.219,323.256z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 329.219 323.256 L 329.219,300 L 328.289,300.916 L 328.289,324.172 L 329.219,323.256"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.974 322.694 L 326.623,322.694 L 326.623,302.784 L 295.974,302.784 L 295.974,322.694z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.974 322.694 L 326.623,322.694 L 326.623,302.784 L 295.974,302.784 L 295.974,322.694"/>
<path style="fill: #93936c; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.974 325.297 L 324.568,325.297 L 317.14,332.746 L 288.546,332.746 L 295.974,325.297z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.974 325.297 L 324.568,325.297 L 317.14,332.746 L 288.546,332.746 L 295.974,325.297"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 300.423 335.62 L 300.423,335.578 L 300.417,335.536 L 300.41,335.495 L 300.389,335.446 L 300.382,335.404 L 300.354,335.37 L 300.34,335.328 L 300.305,335.3 L 300.271,335.259 L 300.25,335.217 L 300.215,335.182 L 300.174,335.148 L 300.132,335.106 L 300.083,335.071 L 300.042,335.05 L 299.993,335.016 L 299.938,334.988 L 299.875,334.967 L 299.826,334.932 L 299.764,334.918 L 299.701,334.891 L 299.646,334.877 L 299.577,334.856 L 299.514,334.842 L 299.438,334.828 L 299.375,334.807 L 299.306,334.8 L 299.243,334.8 L 299.174,334.793 L 299.091,334.793 L 299.035,334.793 L 299.035,334.793 L 298.959,334.793 L 298.882,334.793 L 298.82,334.8 L 298.75,334.8 L 298.688,334.807 L 298.612,334.828 L 298.549,334.842 L 298.48,334.856 L 298.417,334.877 L 298.355,334.891 L 298.299,334.918 L 298.23,334.932 L 298.181,334.967 L 298.126,334.988 L 298.07,335.016 L 298.022,335.05 L 297.98,335.071 L 297.931,335.106 L 297.89,335.148 L 297.855,335.182 L 297.806,335.217 L 297.785,335.259 L 297.744,335.3 L 297.723,335.328 L 297.702,335.37 L 297.681,335.404 L 297.667,335.446 L 297.661,335.495 L 297.647,335.536 L 297.633,335.578 L 297.633,335.62 L 297.633,335.62 L 297.633,335.668 L 297.647,335.71 L 297.661,335.751 L 297.667,335.793 L 297.681,335.835 L 297.702,335.869 L 297.723,335.918 L 297.744,335.953 L 297.785,335.994 L 297.806,336.022 L 297.855,336.064 L 297.89,336.099 L 297.931,336.14 L 297.98,336.168 L 298.022,336.196 L 298.07,336.23 L 298.126,336.258 L 298.181,336.279 L 298.23,336.314 L 298.299,336.328 L 298.355,336.355 L 298.417,336.369 L 298.48,336.39 L 298.549,336.404 L 298.612,336.418 L 298.688,336.432 L 298.75,336.446 L 298.82,336.446 L 298.882,336.446 L 298.959,336.453 L 299.035,336.453 L 299.035,336.453 L 299.091,336.453 L 299.174,336.446 L 299.243,336.446 L 299.306,336.446 L 299.375,336.432 L 299.438,336.418 L 299.514,336.404 L 299.577,336.39 L 299.646,336.369 L 299.701,336.355 L 299.764,336.328 L 299.826,336.314 L 299.875,336.279 L 299.938,336.258 L 299.993,336.23 L 300.042,336.196 L 300.083,336.168 L 300.132,336.14 L 300.174,336.099 L 300.215,336.064 L 300.25,336.022 L 300.271,335.994 L 300.305,335.953 L 300.34,335.918 L 300.354,335.869 L 300.382,335.835 L 300.389,335.793 L 300.41,335.751 L 300.417,335.71 L 300.423,335.668 L 300.423,335.62z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 300.243 335.536 L 300.243,335.495 L 300.236,335.453 L 300.236,335.418 L 300.215,335.39 L 300.201,335.335 L 300.194,335.314 L 300.16,335.272 L 300.132,335.231 L 300.111,335.203 L 300.083,335.175 L 300.042,335.148 L 300.007,335.099 L 299.965,335.071 L 299.924,335.05 L 299.889,335.016 L 299.833,334.988 L 299.792,334.974 L 299.743,334.939 L 299.695,334.925 L 299.632,334.898 L 299.577,334.884 L 299.514,334.87 L 299.459,334.849 L 299.396,334.835 L 299.334,334.828 L 299.264,334.807 L 299.209,334.8 L 299.132,334.793 L 299.077,334.793 L 299.007,334.793 L 298.945,334.793 L 298.945,334.793 L 298.875,334.793 L 298.813,334.793 L 298.743,334.793 L 298.688,334.8 L 298.619,334.807 L 298.563,334.828 L 298.487,334.835 L 298.431,334.849 L 298.383,334.87 L 298.313,334.884 L 298.258,334.898 L 298.188,334.925 L 298.153,334.939 L 298.091,334.974 L 298.049,334.988 L 298.001,335.016 L 297.959,335.05 L 297.917,335.071 L 297.876,335.099 L 297.841,335.148 L 297.806,335.175 L 297.779,335.203 L 297.744,335.231 L 297.73,335.272 L 297.702,335.314 L 297.688,335.335 L 297.674,335.39 L 297.661,335.418 L 297.654,335.453 L 297.647,335.495 L 297.647,335.536 L 297.647,335.536 L 297.647,335.571 L 297.654,335.613 L 297.661,335.654 L 297.674,335.675 L 297.688,335.717 L 297.702,335.758 L 297.73,335.793 L 297.744,335.828 L 297.779,335.869 L 297.806,335.89 L 297.841,335.925 L 297.876,335.96 L 297.917,335.994 L 297.959,336.015 L 298.001,336.05 L 298.049,336.071 L 298.091,336.099 L 298.153,336.126 L 298.188,336.14 L 298.258,336.168 L 298.313,336.189 L 298.383,336.196 L 298.431,336.217 L 298.487,336.23 L 298.563,336.237 L 298.619,336.258 L 298.688,336.272 L 298.743,336.272 L 298.813,336.272 L 298.875,336.272 L 298.945,336.272 L 298.945,336.272 L 299.007,336.272 L 299.077,336.272 L 299.132,336.272 L 299.209,336.272 L 299.264,336.258 L 299.334,336.237 L 299.396,336.23 L 299.459,336.217 L 299.514,336.196 L 299.577,336.189 L 299.632,336.168 L 299.695,336.14 L 299.743,336.126 L 299.792,336.099 L 299.833,336.071 L 299.889,336.05 L 299.924,336.015 L 299.965,335.994 L 300.007,335.96 L 300.042,335.925 L 300.083,335.89 L 300.111,335.869 L 300.132,335.828 L 300.16,335.793 L 300.194,335.758 L 300.201,335.717 L 300.215,335.675 L 300.236,335.654 L 300.236,335.613 L 300.243,335.571 L 300.243,335.536"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 295.793 336.272 L 295.793,336.355 L 295.807,336.418 L 295.835,336.494 L 295.856,336.578 L 295.897,336.647 L 295.939,336.709 L 296.001,336.786 L 296.064,336.862 L 296.133,336.925 L 296.203,336.994 L 296.293,337.057 L 296.376,337.126 L 296.487,337.182 L 296.591,337.237 L 296.703,337.286 L 296.821,337.348 L 296.952,337.397 L 297.07,337.445 L 297.223,337.487 L 297.362,337.529 L 297.508,337.577 L 297.654,337.612 L 297.806,337.633 L 297.959,337.661 L 298.126,337.688 L 298.285,337.702 L 298.445,337.73 L 298.612,337.744 L 298.785,337.751 L 298.952,337.751 L 299.118,337.751"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 298.743 337.751 L 298.917,337.751 L 299.077,337.751 L 299.25,337.737 L 299.403,337.716 L 299.563,337.702 L 299.729,337.688 L 299.875,337.661 L 300.035,337.626 L 300.174,337.591 L 300.326,337.563 L 300.472,337.522 L 300.604,337.48 L 300.736,337.431 L 300.861,337.369 L 300.986,337.32 L 301.09,337.265 L 301.201,337.209 L 301.298,337.14 L 301.388,337.084 L 301.479,337.008 L 301.555,336.952 L 301.631,336.883 L 301.694,336.8 L 301.736,336.723 L 301.798,336.661 L 301.826,336.578 L 301.86,336.501 L 301.888,336.418 L 301.888,336.355 L 301.902,336.272"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 299.486 333.488 L 299.327,333.488 L 299.16,333.495 L 298.993,333.495 L 298.827,333.509 L 298.653,333.53 L 298.487,333.537 L 298.341,333.565 L 298.174,333.586 L 298.022,333.627 L 297.876,333.641 L 297.73,333.683 L 297.591,333.711 L 297.452,333.759 L 297.327,333.801 L 297.202,333.842 L 297.07,333.884 L 296.966,333.933 L 296.855,333.981 L 296.758,334.044 L 296.668,334.099 L 296.585,334.148 L 296.501,334.217 L 296.418,334.266 L 296.369,334.321 L 296.314,334.398 L 296.265,334.453 L 296.224,334.523 L 296.196,334.578 L 296.175,334.641 L 296.168,334.717 L 296.161,334.787"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 302.277 334.787 L 302.263,334.71 L 302.256,334.641 L 302.242,334.578 L 302.208,334.509 L 302.166,334.446 L 302.117,334.377 L 302.062,334.321 L 301.999,334.259 L 301.93,334.19 L 301.847,334.134 L 301.763,334.072 L 301.673,334.016 L 301.562,333.967 L 301.465,333.919 L 301.347,333.87 L 301.236,333.815 L 301.111,333.773 L 300.979,333.738 L 300.833,333.697 L 300.694,333.669 L 300.555,333.627 L 300.41,333.599 L 300.257,333.572 L 300.09,333.544 L 299.944,333.53 L 299.785,333.509 L 299.618,333.495 L 299.445,333.495 L 299.292,333.488 L 299.118,333.488"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 328.289 325.477 L 313.995,339.82 L 313.995,338.514 L 328.289,324.172 L 328.289,325.477z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 328.289 325.477 L 313.995,339.82 L 313.995,338.514 L 328.289,324.172 L 328.289,325.477"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 323.464 323.075 L 323.464,323.429 L 326.248,323.429 L 326.248,323.075 L 323.464,323.075z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 323.464 323.075 L 323.464,323.429 L 326.248,323.429 L 326.248,323.075 L 323.464,323.075"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 322.7 327.157 L 294.294,327.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 320.854 329.025 L 292.447,329.025"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 319 330.885 L 290.587,330.885"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.224 300 L 329.219,300 L 328.289,300.916 L 294.294,300.916 L 295.224,300z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.224 300 L 329.219,300 L 328.289,300.916 L 294.294,300.916 L 295.224,300"/>
</g>
<g>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 260.594 397.19 C 260.943,395.941 262.38,389.684 262.447,388.811 C 262.514,387.938 262.192,386.851 261.722,386.623 C 261.749,386.314 261.749,386.139 261.749,386.139 C 261.641,386.099 261.521,386.059 261.413,386.005 L 261.453,386.018 C 261.453,386.018 261.776,384.622 261.977,383.655 C 262.34,381.802 262.38,380.862 262.38,380.862 C 262.367,380.607 262.299,380.379 262.071,380.312 L 260.984,380.016 C 260.755,379.949 260.594,380.097 260.446,380.325 C 260.446,380.325 260.017,381.184 259.426,382.957 C 259.104,383.883 258.808,385.065 258.808,385.065 L 258.822,385.065 C 258.177,384.85 257.519,384.662 256.861,384.474 C 255.169,384.004 253.491,383.655 251.799,383.4 C 251.799,383.4 251.719,383.548 251.571,383.83 C 251.061,383.776 250.228,384.555 249.839,385.334 C 249.449,386.112 247.476,392.222 247.126,393.471 C 246.777,394.719 246.119,397.915 245.824,399.499 C 245.529,401.084 245.26,403.85 244.24,407.529 C 243.635,409.704 242.669,412.954 242.158,414.296 C 242.024,414.659 240.963,416.445 242.507,417.062 C 244.025,417.667 246.294,418.311 247.435,418.633 C 248.577,418.942 250.846,419.546 252.457,419.815 C 254.095,420.084 254.109,417.989 254.176,417.613 C 254.431,416.203 255.263,412.913 255.854,410.738 C 256.875,407.046 258.07,404.548 258.634,403.031 C 259.184,401.514 260.245,398.439 260.594,397.19z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 260.594 397.19 C 260.943,395.941 262.38,389.684 262.447,388.811 C 262.514,387.938 262.192,386.851 261.722,386.623 C 261.749,386.314 261.749,386.139 261.749,386.139 C 261.641,386.099 261.521,386.059 261.413,386.005 L 261.453,386.018 C 261.453,386.018 261.776,384.622 261.977,383.655 C 262.34,381.802 262.38,380.862 262.38,380.862 C 262.367,380.607 262.299,380.379 262.071,380.312 L 260.984,380.016 C 260.755,379.949 260.594,380.097 260.446,380.325 C 260.446,380.325 260.017,381.184 259.426,382.957 C 259.104,383.883 258.808,385.065 258.808,385.065 L 258.822,385.065 C 258.177,384.85 257.519,384.662 256.861,384.474 C 255.169,384.004 253.491,383.655 251.799,383.4 C 251.799,383.4 251.719,383.548 251.571,383.83 L 251.571,383.83 C 251.061,383.776 250.228,384.555 249.839,385.334 C 249.449,386.112 247.476,392.222 247.126,393.471 C 246.777,394.719 246.119,397.915 245.824,399.499 C 245.529,401.084 245.26,403.85 244.24,407.529 C 243.635,409.704 242.669,412.954 242.158,414.296 C 242.024,414.659 240.963,416.445 242.507,417.062 C 244.025,417.667 246.294,418.311 247.435,418.633 C 248.577,418.942 250.846,419.546 252.457,419.815 C 254.095,420.084 254.109,417.989 254.176,417.613 C 254.431,416.203 255.263,412.913 255.854,410.738 C 256.875,407.046 258.07,404.548 258.634,403.031 C 259.184,401.514 260.245,398.439 260.594,397.19"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 L 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ecece7" fill-rule="evenodd" d="M 250.336 383.601 C 250.336,383.601 248.12,388.126 246.845,392.719 C 245.341,398.184 245.126,399.996 245.354,402.534 C 245.394,403.058 245.918,403.702 246.495,403.863 C 246.724,403.917 246.992,403.998 247.1,404.024 C 247.22,404.065 247.65,404.159 247.999,404.441 C 248.362,404.723 248.442,404.79 248.657,404.897 C 248.859,405.018 248.899,405.099 249.49,405.26 C 250.08,405.421 250.148,405.381 250.389,405.381 C 250.631,405.394 250.738,405.381 251.195,405.327 C 251.638,405.26 252.054,405.394 252.175,405.421 C 252.283,405.461 252.551,405.528 252.779,405.595 C 253.357,405.757 254.136,405.475 254.444,405.045 C 255.935,402.991 256.687,401.312 258.191,395.847 C 259.453,391.255 259.869,386.233 259.869,386.233 L 250.336,383.601z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 253.021 402.561 C 252.632,403.998 251.141,404.83 249.718,404.441 C 248.281,404.051 247.449,402.561 247.838,401.138 C 248.241,399.701 249.718,398.868 251.141,399.258 C 252.578,399.661 253.41,401.138 253.021,402.561z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 248.066 398.157 C 248.429,398.264 248.711,398.412 248.845,398.492 C 248.979,398.586 249.02,398.707 248.899,398.788 C 248.778,398.868 248.563,399.029 248.442,399.137 C 248.295,399.258 248.201,399.285 247.999,399.164 C 247.637,398.962 246.871,398.412 246.683,398.157 C 246.576,398.022 246.67,397.969 246.871,397.955 C 247.14,397.942 247.677,398.049 248.066,398.157z"/>
<path style="fill: #ff0000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 246.16 400.99 C 246.361,401.057 246.845,401.299 246.979,401.406 C 247.126,401.5 247.341,401.728 247.328,401.997 C 247.301,402.306 247.328,402.964 247.462,403.179 C 247.637,403.46 247.61,403.581 247.355,403.541 C 247.153,403.501 246.63,403.313 246.482,403.232 C 246.334,403.165 246.119,403.031 246.052,402.829 C 245.918,402.413 245.878,401.554 245.958,401.124 C 245.985,400.95 246.066,400.95 246.16,400.99z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 253.021 402.561 C 252.632,403.998 251.141,404.83 249.718,404.441 C 248.281,404.051 247.449,402.561 247.838,401.138 C 248.241,399.701 249.718,398.868 251.141,399.258 C 252.578,399.661 253.41,401.138 253.021,402.561"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.066 398.157 C 248.429,398.264 248.711,398.412 248.845,398.492 C 248.979,398.586 249.02,398.707 248.899,398.788 C 248.778,398.868 248.563,399.029 248.442,399.137 C 248.295,399.258 248.201,399.285 247.999,399.164 C 247.637,398.962 246.871,398.412 246.683,398.157 C 246.576,398.022 246.67,397.969 246.871,397.955 C 247.14,397.942 247.677,398.049 248.066,398.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.16 400.99 C 246.361,401.057 246.845,401.299 246.979,401.406 C 247.126,401.5 247.341,401.728 247.328,401.997 C 247.301,402.306 247.328,402.964 247.462,403.179 C 247.637,403.46 247.61,403.581 247.355,403.541 C 247.153,403.501 246.63,403.313 246.482,403.232 C 246.334,403.165 246.119,403.031 246.052,402.829 C 245.918,402.413 245.878,401.554 245.958,401.124 C 245.985,400.95 246.066,400.95 246.16,400.99"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 254.35 399.889 C 253.988,399.795 253.679,399.781 253.518,399.781 C 253.357,399.795 253.263,399.875 253.316,399.996 C 253.384,400.13 253.491,400.386 253.531,400.533 C 253.598,400.708 253.666,400.788 253.894,400.802 C 254.31,400.802 255.25,400.721 255.545,400.6 C 255.693,400.533 255.639,400.439 255.478,400.332 C 255.25,400.184 254.74,399.996 254.35,399.889z"/>
<path style="fill: #00ff00; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 254.538 403.299 C 254.337,403.246 253.786,403.219 253.612,403.232 C 253.451,403.246 253.142,403.326 253.021,403.568 C 252.887,403.85 252.524,404.4 252.296,404.521 C 252.001,404.669 251.96,404.79 252.202,404.87 C 252.39,404.951 252.941,405.058 253.102,405.072 C 253.276,405.085 253.518,405.085 253.679,404.938 C 254.028,404.656 254.485,403.93 254.646,403.528 C 254.713,403.366 254.646,403.326 254.538,403.299z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.35 399.889 C 253.988,399.795 253.679,399.781 253.518,399.781 C 253.357,399.795 253.263,399.875 253.316,399.996 C 253.384,400.13 253.491,400.386 253.531,400.533 C 253.598,400.708 253.666,400.788 253.894,400.802 C 254.31,400.802 255.25,400.721 255.545,400.6 C 255.693,400.533 255.639,400.439 255.478,400.332 C 255.25,400.184 254.74,399.996 254.35,399.889"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.538 403.299 C 254.337,403.246 253.786,403.219 253.612,403.232 C 253.451,403.246 253.142,403.326 253.021,403.568 C 252.887,403.85 252.524,404.4 252.296,404.521 C 252.001,404.669 251.96,404.79 252.202,404.87 C 252.39,404.951 252.941,405.058 253.102,405.072 C 253.276,405.085 253.518,405.085 253.679,404.938 C 254.028,404.656 254.485,403.93 254.646,403.528 C 254.713,403.366 254.646,403.326 254.538,403.299"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.095 387.791 L 254.981,384.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.391 387.871 L 255.277,384.662"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 260.688 380.889 C 260.688,380.889 260.178,380.741 259.748,380.634 C 259.372,380.527 258.835,380.379 258.835,380.379"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 L 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 247.1 406.133 C 246.925,406.764 246.267,407.14 245.623,406.965 C 244.978,406.79 244.602,406.133 244.777,405.488 C 244.965,404.844 245.623,404.468 246.267,404.642 C 246.912,404.817 247.288,405.488 247.1,406.133z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 250.148 407.408 C 249.973,408.053 249.302,408.429 248.657,408.254 C 248.026,408.08 247.65,407.408 247.825,406.777 C 247.999,406.133 248.657,405.757 249.302,405.931 C 249.946,406.106 250.322,406.777 250.148,407.408z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 253.424 407.878 C 253.249,408.509 252.578,408.885 251.933,408.711 C 251.302,408.536 250.926,407.878 251.101,407.234 C 251.276,406.589 251.933,406.213 252.578,406.388 C 253.223,406.562 253.598,407.234 253.424,407.878z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 246.375 408.778 C 246.2,409.422 245.529,409.798 244.898,409.61 C 244.253,409.436 243.877,408.778 244.052,408.133 C 244.226,407.489 244.898,407.113 245.529,407.287 C 246.173,407.475 246.549,408.133 246.375,408.778z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 249.409 410.067 C 249.235,410.711 248.577,411.087 247.932,410.899 C 247.288,410.725 246.912,410.067 247.086,409.422 C 247.274,408.778 247.932,408.402 248.577,408.576 C 249.208,408.764 249.597,409.422 249.409,410.067z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 252.699 410.523 C 252.511,411.154 251.853,411.544 251.208,411.356 C 250.564,411.181 250.188,410.523 250.362,409.879 C 250.55,409.234 251.208,408.858 251.853,409.033 C 252.497,409.221 252.873,409.879 252.699,410.523z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 245.649 411.423 C 245.475,412.067 244.804,412.443 244.159,412.269 C 243.528,412.094 243.139,411.423 243.327,410.778 C 243.501,410.147 244.159,409.758 244.804,409.946 C 245.448,410.12 245.824,410.778 245.649,411.423z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 248.684 412.712 C 248.509,413.356 247.838,413.732 247.207,413.558 C 246.563,413.383 246.187,412.712 246.361,412.067 C 246.536,411.423 247.207,411.06 247.838,411.235 C 248.483,411.409 248.859,412.067 248.684,412.712z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 251.96 413.168 C 251.786,413.813 251.114,414.189 250.483,414.001 C 249.839,413.826 249.463,413.168 249.637,412.524 C 249.812,411.879 250.483,411.503 251.114,411.691 C 251.759,411.866 252.135,412.524 251.96,413.168z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 244.911 414.068 C 244.736,414.713 244.065,415.089 243.434,414.914 C 242.789,414.739 242.413,414.082 242.588,413.437 C 242.763,412.793 243.434,412.417 244.065,412.591 C 244.71,412.766 245.086,413.437 244.911,414.082 L 244.911,414.068z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 247.959 415.357 C 247.771,416.002 247.113,416.378 246.469,416.203 C 245.824,416.029 245.448,415.357 245.636,414.726 C 245.811,414.082 246.469,413.706 247.113,413.88 C 247.758,414.055 248.134,414.726 247.959,415.357z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 251.235 415.814 C 251.047,416.458 250.389,416.834 249.745,416.66 C 249.1,416.485 248.724,415.814 248.912,415.169 C 249.087,414.538 249.745,414.162 250.389,414.337 C 251.034,414.511 251.41,415.169 251.235,415.814z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.428 417.156 C 246.415,417.21 246.307,417.237 246.187,417.21 C 246.079,417.17 245.999,417.103 246.025,417.036 C 246.039,416.982 246.146,416.955 246.254,416.982 C 246.361,417.009 246.442,417.089 246.428,417.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.025 417.036 L 245.636,418.419"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.079 417.156 L 245.73,418.445"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.428 417.156 L 246.039,418.526"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.307 417.21 L 245.958,418.499"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.751 397.19 L 248.483,398.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.859 397.217 L 248.59,398.184"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.27 398.707 L 254.001,399.674"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.162 398.68 L 253.894,399.647"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 259.762 386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 259.896 385.683 C 259.023,385.347 258.15,385.038 257.251,384.756"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 249.033 385.871 C 250.819,386.126 252.739,386.529 254.525,387.025 C 256.311,387.522 258.164,388.153 259.829,388.852"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" fill-rule="evenodd" d="M 256.7 398.922 C 256.633,399.164 256.391,399.298 256.15,399.231 L 246.858,396.666 C 246.616,396.599 246.482,396.357 246.549,396.129 L 248.174,390.248 C 248.241,390.006 248.483,389.872 248.711,389.939 L 258.016,392.504 C 258.258,392.571 258.392,392.813 258.325,393.054 L 256.7,398.935 L 256.7,398.922z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.095 387.791 L 254.981,384.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.391 387.871 L 255.277,384.662"/>
</g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="327.424" y1="326.359" x2="444.266" y2="375.437"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="259.522" y1="401.737" x2="439.089" y2="384.112"/>
<g>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 290.594 477.19 C 290.943,475.941 292.38,469.684 292.447,468.811 C 292.514,467.938 292.192,466.851 291.722,466.623 C 291.749,466.314 291.749,466.139 291.749,466.139 C 291.641,466.099 291.521,466.059 291.413,466.005 L 291.453,466.018 C 291.453,466.018 291.776,464.622 291.977,463.655 C 292.34,461.802 292.38,460.862 292.38,460.862 C 292.367,460.607 292.299,460.379 292.071,460.312 L 290.984,460.016 C 290.755,459.949 290.594,460.097 290.446,460.325 C 290.446,460.325 290.017,461.184 289.426,462.957 C 289.104,463.883 288.808,465.065 288.808,465.065 L 288.822,465.065 C 288.177,464.85 287.519,464.662 286.861,464.474 C 285.169,464.004 283.491,463.655 281.799,463.4 C 281.799,463.4 281.719,463.548 281.571,463.83 C 281.061,463.776 280.228,464.555 279.839,465.334 C 279.449,466.112 277.476,472.222 277.126,473.471 C 276.777,474.719 276.119,477.915 275.824,479.499 C 275.529,481.084 275.26,483.85 274.24,487.529 C 273.635,489.704 272.669,492.954 272.158,494.296 C 272.024,494.659 270.963,496.445 272.507,497.062 C 274.025,497.667 276.294,498.311 277.435,498.633 C 278.577,498.942 280.846,499.546 282.457,499.815 C 284.095,500.084 284.109,497.989 284.176,497.613 C 284.431,496.203 285.263,492.913 285.854,490.738 C 286.875,487.046 288.07,484.548 288.634,483.031 C 289.184,481.514 290.245,478.439 290.594,477.19z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 290.594 477.19 C 290.943,475.941 292.38,469.684 292.447,468.811 C 292.514,467.938 292.192,466.851 291.722,466.623 C 291.749,466.314 291.749,466.139 291.749,466.139 C 291.641,466.099 291.521,466.059 291.413,466.005 L 291.453,466.018 C 291.453,466.018 291.776,464.622 291.977,463.655 C 292.34,461.802 292.38,460.862 292.38,460.862 C 292.367,460.607 292.299,460.379 292.071,460.312 L 290.984,460.016 C 290.755,459.949 290.594,460.097 290.446,460.325 C 290.446,460.325 290.017,461.184 289.426,462.957 C 289.104,463.883 288.808,465.065 288.808,465.065 L 288.822,465.065 C 288.177,464.85 287.519,464.662 286.861,464.474 C 285.169,464.004 283.491,463.655 281.799,463.4 C 281.799,463.4 281.719,463.548 281.571,463.83 L 281.571,463.83 C 281.061,463.776 280.228,464.555 279.839,465.334 C 279.449,466.112 277.476,472.222 277.126,473.471 C 276.777,474.719 276.119,477.915 275.824,479.499 C 275.529,481.084 275.26,483.85 274.24,487.529 C 273.635,489.704 272.669,492.954 272.158,494.296 C 272.024,494.659 270.963,496.445 272.507,497.062 C 274.025,497.667 276.294,498.311 277.435,498.633 C 278.577,498.942 280.846,499.546 282.457,499.815 C 284.095,500.084 284.109,497.989 284.176,497.613 C 284.431,496.203 285.263,492.913 285.854,490.738 C 286.875,487.046 288.07,484.548 288.634,483.031 C 289.184,481.514 290.245,478.439 290.594,477.19"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 L 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ecece7" fill-rule="evenodd" d="M 280.336 463.601 C 280.336,463.601 278.12,468.126 276.845,472.719 C 275.341,478.184 275.126,479.996 275.354,482.534 C 275.394,483.058 275.918,483.702 276.495,483.863 C 276.724,483.917 276.992,483.998 277.1,484.024 C 277.22,484.065 277.65,484.159 277.999,484.441 C 278.362,484.723 278.442,484.79 278.657,484.897 C 278.859,485.018 278.899,485.099 279.49,485.26 C 280.08,485.421 280.148,485.381 280.389,485.381 C 280.631,485.394 280.738,485.381 281.195,485.327 C 281.638,485.26 282.054,485.394 282.175,485.421 C 282.283,485.461 282.551,485.528 282.779,485.595 C 283.357,485.757 284.136,485.475 284.444,485.045 C 285.935,482.991 286.687,481.312 288.191,475.847 C 289.453,471.255 289.869,466.233 289.869,466.233 L 280.336,463.601z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 283.021 482.561 C 282.632,483.998 281.141,484.83 279.718,484.441 C 278.281,484.051 277.449,482.561 277.838,481.138 C 278.241,479.701 279.718,478.868 281.141,479.258 C 282.578,479.661 283.41,481.138 283.021,482.561z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 278.066 478.157 C 278.429,478.264 278.711,478.412 278.845,478.492 C 278.979,478.586 279.02,478.707 278.899,478.788 C 278.778,478.868 278.563,479.029 278.442,479.137 C 278.295,479.258 278.201,479.285 277.999,479.164 C 277.637,478.962 276.871,478.412 276.683,478.157 C 276.576,478.022 276.67,477.969 276.871,477.955 C 277.14,477.942 277.677,478.049 278.066,478.157z"/>
<path style="fill: #ff0000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 276.16 480.99 C 276.361,481.057 276.845,481.299 276.979,481.406 C 277.126,481.5 277.341,481.728 277.328,481.997 C 277.301,482.306 277.328,482.964 277.462,483.179 C 277.637,483.46 277.61,483.581 277.355,483.541 C 277.153,483.501 276.63,483.313 276.482,483.232 C 276.334,483.165 276.119,483.031 276.052,482.829 C 275.918,482.413 275.878,481.554 275.958,481.124 C 275.985,480.95 276.066,480.95 276.16,480.99z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 283.021 482.561 C 282.632,483.998 281.141,484.83 279.718,484.441 C 278.281,484.051 277.449,482.561 277.838,481.138 C 278.241,479.701 279.718,478.868 281.141,479.258 C 282.578,479.661 283.41,481.138 283.021,482.561"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.066 478.157 C 278.429,478.264 278.711,478.412 278.845,478.492 C 278.979,478.586 279.02,478.707 278.899,478.788 C 278.778,478.868 278.563,479.029 278.442,479.137 C 278.295,479.258 278.201,479.285 277.999,479.164 C 277.637,478.962 276.871,478.412 276.683,478.157 C 276.576,478.022 276.67,477.969 276.871,477.955 C 277.14,477.942 277.677,478.049 278.066,478.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.16 480.99 C 276.361,481.057 276.845,481.299 276.979,481.406 C 277.126,481.5 277.341,481.728 277.328,481.997 C 277.301,482.306 277.328,482.964 277.462,483.179 C 277.637,483.46 277.61,483.581 277.355,483.541 C 277.153,483.501 276.63,483.313 276.482,483.232 C 276.334,483.165 276.119,483.031 276.052,482.829 C 275.918,482.413 275.878,481.554 275.958,481.124 C 275.985,480.95 276.066,480.95 276.16,480.99"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 284.35 479.889 C 283.988,479.795 283.679,479.781 283.518,479.781 C 283.357,479.795 283.263,479.875 283.316,479.996 C 283.384,480.13 283.491,480.386 283.531,480.533 C 283.598,480.708 283.666,480.788 283.894,480.802 C 284.31,480.802 285.25,480.721 285.545,480.6 C 285.693,480.533 285.639,480.439 285.478,480.332 C 285.25,480.184 284.74,479.996 284.35,479.889z"/>
<path style="fill: #00ff00; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 284.538 483.299 C 284.337,483.246 283.786,483.219 283.612,483.232 C 283.451,483.246 283.142,483.326 283.021,483.568 C 282.887,483.85 282.524,484.4 282.296,484.521 C 282.001,484.669 281.96,484.79 282.202,484.87 C 282.39,484.951 282.941,485.058 283.102,485.072 C 283.276,485.085 283.518,485.085 283.679,484.938 C 284.028,484.656 284.485,483.93 284.646,483.528 C 284.713,483.366 284.646,483.326 284.538,483.299z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.35 479.889 C 283.988,479.795 283.679,479.781 283.518,479.781 C 283.357,479.795 283.263,479.875 283.316,479.996 C 283.384,480.13 283.491,480.386 283.531,480.533 C 283.598,480.708 283.666,480.788 283.894,480.802 C 284.31,480.802 285.25,480.721 285.545,480.6 C 285.693,480.533 285.639,480.439 285.478,480.332 C 285.25,480.184 284.74,479.996 284.35,479.889"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.538 483.299 C 284.337,483.246 283.786,483.219 283.612,483.232 C 283.451,483.246 283.142,483.326 283.021,483.568 C 282.887,483.85 282.524,484.4 282.296,484.521 C 282.001,484.669 281.96,484.79 282.202,484.87 C 282.39,484.951 282.941,485.058 283.102,485.072 C 283.276,485.085 283.518,485.085 283.679,484.938 C 284.028,484.656 284.485,483.93 284.646,483.528 C 284.713,483.366 284.646,483.326 284.538,483.299"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.095 467.791 L 284.981,464.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.391 467.871 L 285.277,464.662"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 290.688 460.889 C 290.688,460.889 290.178,460.741 289.748,460.634 C 289.372,460.527 288.835,460.379 288.835,460.379"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 L 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 277.1 486.133 C 276.925,486.764 276.267,487.14 275.623,486.965 C 274.978,486.79 274.602,486.133 274.777,485.488 C 274.965,484.844 275.623,484.468 276.267,484.642 C 276.912,484.817 277.288,485.488 277.1,486.133z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 280.148 487.408 C 279.973,488.053 279.302,488.429 278.657,488.254 C 278.026,488.08 277.65,487.408 277.825,486.777 C 277.999,486.133 278.657,485.757 279.302,485.931 C 279.946,486.106 280.322,486.777 280.148,487.408z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 283.424 487.878 C 283.249,488.509 282.578,488.885 281.933,488.711 C 281.302,488.536 280.926,487.878 281.101,487.234 C 281.276,486.589 281.933,486.213 282.578,486.388 C 283.223,486.562 283.598,487.234 283.424,487.878z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 276.375 488.778 C 276.2,489.422 275.529,489.798 274.898,489.61 C 274.253,489.436 273.877,488.778 274.052,488.133 C 274.226,487.489 274.898,487.113 275.529,487.287 C 276.173,487.475 276.549,488.133 276.375,488.778z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 279.409 490.067 C 279.235,490.711 278.577,491.087 277.932,490.899 C 277.288,490.725 276.912,490.067 277.086,489.422 C 277.274,488.778 277.932,488.402 278.577,488.576 C 279.208,488.764 279.597,489.422 279.409,490.067z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 282.699 490.523 C 282.511,491.154 281.853,491.544 281.208,491.356 C 280.564,491.181 280.188,490.523 280.362,489.879 C 280.55,489.234 281.208,488.858 281.853,489.033 C 282.497,489.221 282.873,489.879 282.699,490.523z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 275.649 491.423 C 275.475,492.067 274.804,492.443 274.159,492.269 C 273.528,492.094 273.139,491.423 273.327,490.778 C 273.501,490.147 274.159,489.758 274.804,489.946 C 275.448,490.12 275.824,490.778 275.649,491.423z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 278.684 492.712 C 278.509,493.356 277.838,493.732 277.207,493.558 C 276.563,493.383 276.187,492.712 276.361,492.067 C 276.536,491.423 277.207,491.06 277.838,491.235 C 278.483,491.409 278.859,492.067 278.684,492.712z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 281.96 493.168 C 281.786,493.813 281.114,494.189 280.483,494.001 C 279.839,493.826 279.463,493.168 279.637,492.524 C 279.812,491.879 280.483,491.503 281.114,491.691 C 281.759,491.866 282.135,492.524 281.96,493.168z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 274.911 494.068 C 274.736,494.713 274.065,495.089 273.434,494.914 C 272.789,494.739 272.413,494.082 272.588,493.437 C 272.763,492.793 273.434,492.417 274.065,492.591 C 274.71,492.766 275.086,493.437 274.911,494.082 L 274.911,494.068z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 277.959 495.357 C 277.771,496.002 277.113,496.378 276.469,496.203 C 275.824,496.029 275.448,495.357 275.636,494.726 C 275.811,494.082 276.469,493.706 277.113,493.88 C 277.758,494.055 278.134,494.726 277.959,495.357z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 281.235 495.814 C 281.047,496.458 280.389,496.834 279.745,496.66 C 279.1,496.485 278.724,495.814 278.912,495.169 C 279.087,494.538 279.745,494.162 280.389,494.337 C 281.034,494.511 281.41,495.169 281.235,495.814z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.428 497.156 C 276.415,497.21 276.307,497.237 276.187,497.21 C 276.079,497.17 275.999,497.103 276.025,497.036 C 276.039,496.982 276.146,496.955 276.254,496.982 C 276.361,497.009 276.442,497.089 276.428,497.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.025 497.036 L 275.636,498.419"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.079 497.156 L 275.73,498.445"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.428 497.156 L 276.039,498.526"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.307 497.21 L 275.958,498.499"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.751 477.19 L 278.483,478.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.859 477.217 L 278.59,478.184"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.27 478.707 L 284.001,479.674"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.162 478.68 L 283.894,479.647"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 289.762 466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 289.896 465.683 C 289.023,465.347 288.15,465.038 287.251,464.756"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 279.033 465.871 C 280.819,466.126 282.739,466.529 284.525,467.025 C 286.311,467.522 288.164,468.153 289.829,468.852"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" fill-rule="evenodd" d="M 286.7 478.922 C 286.633,479.164 286.391,479.298 286.15,479.231 L 276.858,476.666 C 276.616,476.599 276.482,476.357 276.549,476.129 L 278.174,470.248 C 278.241,470.006 278.483,469.872 278.711,469.939 L 288.016,472.504 C 288.258,472.571 288.392,472.813 288.325,473.054 L 286.7,478.935 L 286.7,478.922z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.095 467.791 L 284.981,464.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.391 467.871 L 285.277,464.662"/>
</g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="290.438" y1="479.005" x2="440.053" y2="393.475"/>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 714.565 323.746 L 714.565,310.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 714.565 323.53 L 714.565,314.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 714.954 311.638 L 714.135,311.638 L 714.135,310 L 714.954,310 L 714.954,311.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 714.954 311.638 L 714.135,311.638 L 714.135,310 L 714.954,310 L 714.954,311.638"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 694.709 323.746 L 694.709,310.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 694.709 323.53 L 694.709,314.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 695.098 311.638 L 694.279,311.638 L 694.279,310 L 695.098,310 L 695.098,311.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 695.098 311.638 L 694.279,311.638 L 694.279,310 L 695.098,310 L 695.098,311.638"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 720.119 325.447 C 720.119,328.681 713.377,331.303 705.06,331.303 C 696.742,331.303 690,328.681 690,325.447 L 690,334.025 C 690,337.26 696.742,339.882 705.06,339.882 C 713.377,339.882 720.119,337.26 720.119,334.025 L 720.119,325.447z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 720.119 325.447 C 720.119,328.681 713.377,331.303 705.06,331.303 C 696.742,331.303 690,328.681 690,325.447 L 690,334.025 C 690,337.26 696.742,339.882 705.06,339.882 C 713.377,339.882 720.119,337.26 720.119,334.025 L 720.119,325.447"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 705.06 331.303 C 713.377,331.303 720.119,328.681 720.119,325.447 C 720.119,322.212 713.377,319.59 705.06,319.59 C 696.742,319.59 690,322.212 690,325.447 C 690,328.681 696.742,331.303 705.06,331.303z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 705.06 331.303 C 713.377,331.303 720.119,328.681 720.119,325.447 C 720.119,322.212 713.377,319.59 705.06,319.59 C 696.742,319.59 690,322.212 690,325.447 C 690,328.681 696.742,331.303 705.06,331.303"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 701.621 323.157 L 702.864,325.022 L 698.163,326.108 L 699.19,325.254 L 691.923,324.012 L 693.746,322.645 L 700.758,323.832 L 701.621,323.157z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 708.237 327.68 L 707.388,325.757 L 711.629,324.91 L 710.894,325.568 L 717.962,326.776 L 716.268,328.133 L 709.24,326.813 L 708.237,327.68z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 705.918 322.138 L 710.668,320.838 L 710.724,322.874 L 709.538,322.647 L 707.218,324.57 L 705.006,324.247 L 707.399,322.367 L 705.918,322.138z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 703.882 329.434 L 699.359,330.281 L 699.19,328.19 L 700.489,328.472 L 702.979,326.345 L 705.183,326.719 L 702.525,329.037 L 703.882,329.434z"/>
</g>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 774.565 453.746 L 774.565,440.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 774.565 453.53 L 774.565,444.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 774.954 441.638 L 774.135,441.638 L 774.135,440 L 774.954,440 L 774.954,441.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 774.954 441.638 L 774.135,441.638 L 774.135,440 L 774.954,440 L 774.954,441.638"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 754.709 453.746 L 754.709,440.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 754.709 453.53 L 754.709,444.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 755.098 441.638 L 754.279,441.638 L 754.279,440 L 755.098,440 L 755.098,441.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 755.098 441.638 L 754.279,441.638 L 754.279,440 L 755.098,440 L 755.098,441.638"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 780.119 455.447 C 780.119,458.681 773.377,461.303 765.06,461.303 C 756.742,461.303 750,458.681 750,455.447 L 750,464.025 C 750,467.26 756.742,469.882 765.06,469.882 C 773.377,469.882 780.119,467.26 780.119,464.025 L 780.119,455.447z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 780.119 455.447 C 780.119,458.681 773.377,461.303 765.06,461.303 C 756.742,461.303 750,458.681 750,455.447 L 750,464.025 C 750,467.26 756.742,469.882 765.06,469.882 C 773.377,469.882 780.119,467.26 780.119,464.025 L 780.119,455.447"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 765.06 461.303 C 773.377,461.303 780.119,458.681 780.119,455.447 C 780.119,452.212 773.377,449.59 765.06,449.59 C 756.742,449.59 750,452.212 750,455.447 C 750,458.681 756.742,461.303 765.06,461.303z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 765.06 461.303 C 773.377,461.303 780.119,458.681 780.119,455.447 C 780.119,452.212 773.377,449.59 765.06,449.59 C 756.742,449.59 750,452.212 750,455.447 C 750,458.681 756.742,461.303 765.06,461.303"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 761.621 453.157 L 762.864,455.022 L 758.163,456.108 L 759.19,455.254 L 751.923,454.012 L 753.746,452.645 L 760.758,453.832 L 761.621,453.157z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 768.237 457.68 L 767.388,455.757 L 771.629,454.91 L 770.894,455.568 L 777.962,456.776 L 776.268,458.133 L 769.24,456.813 L 768.237,457.68z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 765.918 452.138 L 770.668,450.838 L 770.724,452.874 L 769.538,452.647 L 767.218,454.57 L 765.006,454.247 L 767.399,452.367 L 765.918,452.138z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 763.882 459.434 L 759.359,460.281 L 759.19,458.19 L 760.489,458.472 L 762.979,456.345 L 765.183,456.719 L 762.525,459.037 L 763.882,459.434z"/>
</g>
<text font-size="21.4489" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="270" y="430">
<tspan x="270" y="430">Clients</tspan>
</text>
</g>
<g id="IGMP/MLD segmentation">
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #ff0000" x1="490" y1="290" x2="490" y2="510"/>
<text font-size="18.0622" style="fill: #ff0000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="500" y="420">
<tspan x="500" y="420">IGMP + MLD</tspan>
<tspan x="500" y="442.578">Firewall</tspan>
</text>
<text font-size="12.7998" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="440" y="420">
<tspan x="440" y="420">Query</tspan>
</text>
<text font-size="12.7998" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="310" y="490">
<tspan x="310" y="490">Report</tspan>
</text>
<g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 3; stroke: #800080" x1="435" y1="415" x2="386.5" y2="415"/>
<polygon style="fill: #800080; fill-opacity: 1; stroke-opacity: 1; stroke-width: 3; stroke: #800080" fill-rule="evenodd" points="386.5,410 376.5,415 386.5,420 "/>
</g>
<g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 3; stroke: #800080" x1="357" y1="485.5" x2="405.5" y2="485.5"/>
<polygon style="fill: #800080; fill-opacity: 1; stroke-opacity: 1; stroke-width: 3; stroke: #800080" fill-rule="evenodd" points="405.5,490.5 415.5,485.5 405.5,480.5 "/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 100 KiB

View File

@ -0,0 +1,232 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
<svg width="29cm" height="12cm" viewBox="219 289 572 223" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Background">
<g>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 713.614 347.58 L 713.54,345.719 L 713.283,343.858 L 712.804,342.03 L 712.142,340.201 L 711.258,338.34 L 710.264,336.545 L 709.013,334.781 L 707.614,333.051 L 706.104,331.321 L 704.337,329.688 L 702.46,328.056 L 700.398,326.521 L 698.153,324.986 L 695.797,323.55 L 693.294,322.146 L 690.606,320.84 L 687.845,319.566 L 684.974,318.391 L 681.955,317.281 L 678.826,316.269 L 675.587,315.289 L 672.237,314.473 L 668.887,313.657 L 665.39,312.971 L 661.819,312.351 L 658.248,311.828 L 654.604,311.404 L 650.922,311.11 L 647.204,310.849 L 643.45,310.718 L 639.695,310.653 L 639.695,310.653 L 635.977,310.718 L 632.185,310.849 L 628.504,311.11 L 624.822,311.404 L 621.141,311.828 L 617.57,312.351 L 614,312.971 L 610.539,313.657 L 607.116,314.473 L 603.839,315.289 L 600.6,316.269 L 597.508,317.281 L 594.452,318.391 L 591.581,319.566 L 588.783,320.84 L 586.096,322.146 L 583.592,323.55 L 581.236,324.986 L 578.991,326.521 L 576.929,328.056 L 575.052,329.688 L 573.322,331.321 L 571.739,333.051 L 570.414,334.781 L 569.162,336.545 L 568.131,338.34 L 567.248,340.201 L 566.659,342.03 L 566.18,343.858 L 565.849,345.719 L 565.812,347.58 L 565.812,347.58 L 565.849,349.474 L 566.18,351.335 L 566.659,353.196 L 567.248,355.024 L 568.131,356.853 L 569.162,358.649 L 570.414,360.412 L 571.739,362.175 L 573.322,363.873 L 575.052,365.505 L 576.929,367.138 L 578.991,368.705 L 581.236,370.207 L 583.592,371.643 L 586.096,373.047 L 588.783,374.386 L 591.581,375.594 L 594.452,376.835 L 597.508,377.945 L 600.6,378.957 L 603.839,379.871 L 607.116,380.753 L 610.539,381.536 L 614,382.222 L 617.57,382.842 L 621.141,383.365 L 624.822,383.757 L 628.504,384.083 L 632.185,384.377 L 635.977,384.475 L 639.695,384.508 L 639.695,384.508 L 643.45,384.475 L 647.204,384.377 L 650.922,384.083 L 654.604,383.757 L 658.248,383.365 L 661.819,382.842 L 665.39,382.222 L 668.887,381.536 L 672.237,380.753 L 675.587,379.871 L 678.826,378.957 L 681.955,377.945 L 684.974,376.835 L 687.845,375.594 L 690.606,374.386 L 693.294,373.047 L 695.797,371.643 L 698.153,370.207 L 700.398,368.705 L 702.46,367.138 L 704.337,365.505 L 706.104,363.873 L 707.614,362.175 L 709.013,360.412 L 710.264,358.649 L 711.258,356.853 L 712.142,355.024 L 712.804,353.196 L 713.283,351.335 L 713.54,349.474 L 713.614,347.58z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 597.765 366.974 L 597.692,365.113 L 597.434,363.252 L 597.139,361.424 L 596.624,359.563 L 595.961,357.734 L 595.152,355.939 L 594.194,354.176 L 593.164,352.445 L 591.986,350.715 L 590.66,349.082 L 589.225,347.45 L 587.642,345.915 L 585.875,344.381 L 584.071,342.944 L 582.157,341.54 L 580.095,340.234 L 578.034,338.961 L 575.751,337.785 L 573.469,336.675 L 571.039,335.696 L 568.61,334.683 L 566.07,333.802 L 563.419,333.051 L 560.769,332.365 L 558.045,331.745 L 555.284,331.223 L 552.486,330.798 L 549.651,330.504 L 546.854,330.243 L 543.982,330.08 L 541.111,330.047 L 541.111,330.047 L 538.239,330.08 L 535.368,330.243 L 532.497,330.504 L 529.699,330.798 L 526.864,331.223 L 524.104,331.745 L 521.416,332.365 L 518.766,333.051 L 516.152,333.802 L 513.612,334.683 L 511.109,335.696 L 508.753,336.675 L 506.397,337.785 L 504.188,338.961 L 502.09,340.234 L 500.028,341.54 L 498.114,342.944 L 496.273,344.381 L 494.543,345.915 L 492.997,347.45 L 491.524,349.082 L 490.236,350.715 L 489.021,352.445 L 487.954,354.176 L 487.033,355.939 L 486.223,357.734 L 485.561,359.563 L 485.082,361.424 L 484.714,363.252 L 484.493,365.113 L 484.42,366.974 L 484.42,366.974 L 484.493,368.868 L 484.714,370.729 L 485.082,372.59 L 485.561,374.419 L 486.223,376.247 L 487.033,378.043 L 487.954,379.806 L 489.021,381.536 L 490.236,383.267 L 491.524,384.899 L 492.997,386.532 L 494.543,388.066 L 496.273,389.601 L 498.114,391.038 L 500.028,392.442 L 502.09,393.748 L 504.188,394.988 L 506.397,396.164 L 508.753,397.339 L 511.109,398.351 L 513.612,399.265 L 516.152,400.18 L 518.766,400.931 L 521.416,401.616 L 524.104,402.237 L 526.864,402.726 L 529.699,403.151 L 532.497,403.477 L 535.368,403.771 L 538.239,403.869 L 541.111,403.902 L 541.111,403.902 L 543.982,403.869 L 546.854,403.771 L 549.651,403.477 L 552.486,403.151 L 555.284,402.726 L 558.045,402.237 L 560.769,401.616 L 563.419,400.931 L 566.07,400.18 L 568.61,399.265 L 571.039,398.351 L 573.469,397.339 L 575.751,396.164 L 578.034,394.988 L 580.095,393.748 L 582.157,392.442 L 584.071,391.038 L 585.875,389.601 L 587.642,388.066 L 589.225,386.532 L 590.66,384.899 L 591.986,383.267 L 593.164,381.536 L 594.194,379.806 L 595.152,378.043 L 595.961,376.247 L 596.624,374.419 L 597.139,372.59 L 597.434,370.729 L 597.692,368.868 L 597.765,366.974z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 526.312 404.685 L 526.275,403.151 L 526.165,401.616 L 525.907,400.082 L 525.576,398.58 L 525.097,397.143 L 524.545,395.641 L 523.956,394.172 L 523.257,392.768 L 522.447,391.364 L 521.527,390.025 L 520.533,388.752 L 519.465,387.446 L 518.324,386.205 L 517.109,384.997 L 515.784,383.887 L 514.422,382.842 L 513.023,381.765 L 511.55,380.818 L 509.968,379.904 L 508.348,379.055 L 506.691,378.304 L 504.961,377.586 L 503.231,376.965 L 501.427,376.41 L 499.586,375.888 L 497.746,375.496 L 495.868,375.104 L 493.917,374.876 L 492.003,374.68 L 490.126,374.582 L 488.175,374.517 L 488.175,374.517 L 486.223,374.582 L 484.272,374.68 L 482.358,374.876 L 480.481,375.104 L 478.566,375.496 L 476.689,375.888 L 474.885,376.41 L 473.118,376.965 L 471.314,377.586 L 469.584,378.304 L 467.928,379.055 L 466.308,379.904 L 464.762,380.818 L 463.252,381.765 L 461.854,382.842 L 460.492,383.887 L 459.203,384.997 L 457.951,386.205 L 456.81,387.446 L 455.743,388.752 L 454.749,390.025 L 453.902,391.364 L 453.092,392.768 L 452.393,394.172 L 451.73,395.641 L 451.178,397.143 L 450.773,398.58 L 450.442,400.082 L 450.147,401.616 L 450,403.151 L 450,404.685 L 450,404.685 L 450,406.155 L 450.147,407.689 L 450.442,409.191 L 450.773,410.693 L 451.178,412.227 L 451.73,413.664 L 452.393,415.101 L 453.092,416.537 L 453.902,417.941 L 454.749,419.28 L 455.743,420.586 L 456.81,421.859 L 457.951,423.1 L 459.203,424.275 L 460.492,425.385 L 461.854,426.463 L 463.252,427.54 L 464.762,428.455 L 466.308,429.369 L 467.928,430.218 L 469.584,431.001 L 471.314,431.72 L 473.118,432.34 L 474.885,432.895 L 476.689,433.385 L 478.566,433.809 L 480.481,434.168 L 482.358,434.462 L 484.272,434.625 L 486.223,434.723 L 488.175,434.789 L 488.175,434.789 L 490.126,434.723 L 492.003,434.625 L 493.917,434.462 L 495.868,434.168 L 497.746,433.809 L 499.586,433.385 L 501.427,432.895 L 503.231,432.34 L 504.961,431.72 L 506.691,431.001 L 508.348,430.218 L 509.968,429.369 L 511.55,428.455 L 513.023,427.54 L 514.422,426.463 L 515.784,425.385 L 517.109,424.275 L 518.324,423.1 L 519.465,421.859 L 520.533,420.586 L 521.527,419.28 L 522.447,417.941 L 523.257,416.537 L 523.956,415.101 L 524.545,413.664 L 525.097,412.227 L 525.576,410.693 L 525.907,409.191 L 526.165,407.689 L 526.275,406.155 L 526.312,404.685z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 587.936 433.711 L 587.9,432.046 L 587.642,430.414 L 587.237,428.748 L 586.758,427.116 L 586.096,425.516 L 585.323,423.916 L 584.329,422.349 L 583.298,420.814 L 582.046,419.378 L 580.721,417.876 L 579.212,416.439 L 577.629,415.101 L 575.935,413.762 L 574.095,412.423 L 572.144,411.215 L 570.082,410.04 L 567.91,408.962 L 565.628,407.885 L 563.309,406.938 L 560.879,405.991 L 558.339,405.175 L 555.762,404.391 L 553.112,403.706 L 550.424,403.085 L 547.663,402.563 L 544.829,402.139 L 542.031,401.747 L 539.16,401.42 L 536.288,401.224 L 533.38,401.094 L 530.435,401.061 L 530.435,401.061 L 527.527,401.094 L 524.656,401.224 L 521.711,401.42 L 518.876,401.747 L 516.005,402.139 L 513.244,402.563 L 510.483,403.085 L 507.759,403.706 L 505.108,404.391 L 502.568,405.175 L 500.028,405.991 L 497.599,406.938 L 495.243,407.885 L 492.997,408.962 L 490.825,410.04 L 488.764,411.215 L 486.812,412.423 L 484.972,413.762 L 483.242,415.101 L 481.659,416.439 L 480.149,417.876 L 478.787,419.378 L 477.609,420.814 L 476.542,422.349 L 475.548,423.916 L 474.738,425.516 L 474.149,427.116 L 473.597,428.748 L 473.229,430.414 L 473.008,432.046 L 472.934,433.711 L 472.934,433.711 L 473.008,435.344 L 473.229,437.009 L 473.597,438.641 L 474.149,440.274 L 474.738,441.874 L 475.548,443.474 L 476.542,445.073 L 477.609,446.608 L 478.787,448.077 L 480.149,449.514 L 481.659,450.95 L 483.242,452.322 L 484.972,453.693 L 486.812,454.999 L 488.764,456.207 L 490.825,457.35 L 492.997,458.46 L 495.243,459.505 L 497.599,460.484 L 500.028,461.431 L 502.568,462.247 L 505.108,463.031 L 507.759,463.684 L 510.483,464.304 L 513.244,464.827 L 516.005,465.284 L 518.876,465.708 L 521.711,466.002 L 524.656,466.198 L 527.527,466.329 L 530.435,466.329 L 530.435,466.329 L 533.38,466.329 L 536.288,466.198 L 539.16,466.002 L 542.031,465.708 L 544.829,465.284 L 547.663,464.827 L 550.424,464.304 L 553.112,463.684 L 555.762,463.031 L 558.339,462.247 L 560.879,461.431 L 563.309,460.484 L 565.628,459.505 L 567.91,458.46 L 570.082,457.35 L 572.144,456.207 L 574.095,454.999 L 575.935,453.693 L 577.629,452.322 L 579.212,450.95 L 580.721,449.514 L 582.046,448.077 L 583.298,446.608 L 584.329,445.073 L 585.323,443.474 L 586.096,441.874 L 586.758,440.274 L 587.237,438.641 L 587.642,437.009 L 587.9,435.344 L 587.936,433.711z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 725.946 450.591 L 725.799,448.6 L 725.505,446.608 L 724.916,444.682 L 724.142,442.755 L 723.185,440.829 L 722.007,438.968 L 720.608,437.139 L 718.989,435.278 L 717.148,433.483 L 715.16,431.752 L 712.915,430.087 L 710.559,428.455 L 707.982,426.855 L 705.258,425.32 L 702.276,423.851 L 699.257,422.48 L 696.018,421.141 L 692.631,419.9 L 689.171,418.757 L 685.489,417.68 L 681.771,416.668 L 677.906,415.786 L 673.967,414.937 L 669.881,414.219 L 665.795,413.566 L 661.598,413.044 L 657.401,412.587 L 653.058,412.26 L 648.824,412.032 L 644.443,411.836 L 640.1,411.836 L 640.1,411.836 L 635.756,411.836 L 631.412,412.032 L 627.105,412.26 L 622.835,412.587 L 618.564,413.044 L 614.405,413.566 L 610.282,414.219 L 606.269,414.937 L 602.256,415.786 L 598.465,416.668 L 594.673,417.68 L 591.065,418.757 L 587.568,419.9 L 584.218,421.141 L 580.979,422.48 L 577.887,423.851 L 574.978,425.32 L 572.254,426.855 L 569.641,428.455 L 567.248,430.087 L 565.039,431.752 L 563.088,433.483 L 561.247,435.278 L 559.628,437.139 L 558.229,438.968 L 557.014,440.829 L 556.057,442.755 L 555.247,444.682 L 554.695,446.608 L 554.363,448.6 L 554.253,450.591 L 554.253,450.591 L 554.363,452.485 L 554.695,454.477 L 555.247,456.403 L 556.057,458.362 L 557.014,460.288 L 558.229,462.149 L 559.628,463.978 L 561.247,465.839 L 563.088,467.635 L 565.039,469.365 L 567.248,471.03 L 569.641,472.728 L 572.254,474.263 L 574.978,475.797 L 577.887,477.234 L 580.979,478.67 L 584.218,479.976 L 587.568,481.217 L 591.065,482.36 L 594.673,483.47 L 598.465,484.417 L 602.256,485.331 L 606.269,486.147 L 610.282,486.866 L 614.405,487.551 L 618.564,488.041 L 622.835,488.498 L 627.105,488.857 L 631.412,489.086 L 635.756,489.282 L 640.1,489.282 L 640.1,489.282 L 644.443,489.282 L 648.824,489.086 L 653.058,488.857 L 657.401,488.498 L 661.598,488.041 L 665.795,487.551 L 669.881,486.866 L 673.967,486.147 L 677.906,485.331 L 681.771,484.417 L 685.489,483.47 L 689.171,482.36 L 692.631,481.217 L 696.018,479.976 L 699.257,478.67 L 702.276,477.234 L 705.258,475.797 L 707.982,474.263 L 710.559,472.728 L 712.915,471.03 L 715.16,469.365 L 717.148,467.635 L 718.989,465.839 L 720.608,463.978 L 722.007,462.149 L 723.185,460.288 L 724.142,458.362 L 724.916,456.403 L 725.505,454.477 L 725.799,452.485 L 725.946,450.591z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 773.582 361.228 L 773.545,359.791 L 773.324,358.289 L 772.919,356.82 L 772.477,355.384 L 771.815,353.98 L 771.078,352.543 L 770.158,351.139 L 769.091,349.768 L 767.949,348.462 L 766.698,347.123 L 765.262,345.85 L 763.716,344.609 L 762.096,343.466 L 760.292,342.291 L 758.452,341.213 L 756.427,340.201 L 754.366,339.157 L 752.23,338.242 L 749.948,337.393 L 747.629,336.577 L 745.273,335.826 L 742.77,335.141 L 740.23,334.52 L 737.653,333.965 L 735.002,333.475 L 732.352,333.149 L 729.628,332.757 L 726.903,332.496 L 724.106,332.333 L 721.345,332.235 L 718.547,332.169 L 718.547,332.169 L 715.712,332.235 L 712.951,332.333 L 710.154,332.496 L 707.43,332.757 L 704.742,333.149 L 702.055,333.475 L 699.441,333.965 L 696.828,334.52 L 694.288,335.141 L 691.784,335.826 L 689.392,336.577 L 687.109,337.393 L 684.827,338.242 L 682.692,339.157 L 680.63,340.201 L 678.642,341.213 L 676.765,342.291 L 674.961,343.466 L 673.341,344.609 L 671.832,345.85 L 670.359,347.123 L 669.108,348.462 L 667.967,349.768 L 666.899,351.139 L 665.979,352.543 L 665.243,353.98 L 664.617,355.384 L 664.101,356.82 L 663.77,358.289 L 663.586,359.791 L 663.476,361.228 L 663.476,361.228 L 663.586,362.697 L 663.77,364.167 L 664.101,365.603 L 664.617,367.072 L 665.243,368.509 L 665.979,369.913 L 666.899,371.317 L 667.967,372.688 L 669.108,374.059 L 670.359,375.333 L 671.832,376.574 L 673.341,377.847 L 674.961,379.022 L 676.765,380.132 L 678.642,381.243 L 680.63,382.287 L 682.692,383.267 L 684.827,384.181 L 687.109,385.095 L 689.392,385.911 L 691.784,386.63 L 694.288,387.348 L 696.828,387.936 L 699.441,388.458 L 702.055,388.981 L 704.742,389.372 L 707.43,389.699 L 710.154,389.993 L 712.951,390.123 L 715.712,390.287 L 718.547,390.287 L 718.547,390.287 L 721.345,390.287 L 724.106,390.123 L 726.903,389.993 L 729.628,389.699 L 732.352,389.372 L 735.002,388.981 L 737.653,388.458 L 740.23,387.936 L 742.77,387.348 L 745.273,386.63 L 747.629,385.911 L 749.948,385.095 L 752.23,384.181 L 754.366,383.267 L 756.427,382.287 L 758.452,381.243 L 760.292,380.132 L 762.096,379.022 L 763.716,377.847 L 765.262,376.574 L 766.698,375.333 L 767.949,374.059 L 769.091,372.688 L 770.158,371.317 L 771.078,369.913 L 771.815,368.509 L 772.477,367.072 L 772.919,365.603 L 773.324,364.167 L 773.545,362.697 L 773.582,361.228z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 789.19 398.547 L 789.08,397.078 L 788.932,395.609 L 788.564,394.172 L 788.086,392.735 L 787.423,391.266 L 786.687,389.895 L 785.803,388.458 L 784.736,387.12 L 783.595,385.748 L 782.343,384.475 L 780.907,383.169 L 779.361,381.961 L 777.778,380.818 L 775.974,379.61 L 774.134,378.565 L 772.22,377.488 L 770.158,376.508 L 767.949,375.594 L 765.777,374.712 L 763.458,373.896 L 761.102,373.145 L 758.636,372.46 L 756.133,371.872 L 753.556,371.317 L 750.905,370.827 L 748.255,370.435 L 745.567,370.109 L 742.806,369.815 L 740.082,369.684 L 737.321,369.586 L 734.56,369.521 L 734.56,369.521 L 731.763,369.586 L 729.039,369.684 L 726.278,369.815 L 723.59,370.109 L 720.903,370.435 L 718.216,370.827 L 715.602,371.317 L 713.062,371.872 L 710.522,372.46 L 708.055,373.145 L 705.699,373.896 L 703.38,374.712 L 701.135,375.594 L 699.036,376.508 L 696.975,377.488 L 694.95,378.565 L 693.11,379.61 L 691.379,380.818 L 689.796,381.961 L 688.25,383.169 L 686.851,384.475 L 685.526,385.748 L 684.385,387.12 L 683.391,388.458 L 682.471,389.895 L 681.661,391.266 L 681.072,392.735 L 680.593,394.172 L 680.225,395.609 L 680.004,397.078 L 679.968,398.547 L 679.968,398.547 L 680.004,400.016 L 680.225,401.518 L 680.593,402.955 L 681.072,404.391 L 681.661,405.828 L 682.471,407.232 L 683.391,408.669 L 684.385,410.007 L 685.526,411.313 L 686.851,412.652 L 688.25,413.893 L 689.796,415.133 L 691.379,416.309 L 693.11,417.451 L 694.95,418.562 L 696.975,419.574 L 699.036,420.586 L 701.135,421.5 L 703.38,422.349 L 705.699,423.165 L 708.055,423.916 L 710.522,424.602 L 713.062,425.222 L 715.602,425.81 L 718.216,426.3 L 720.903,426.626 L 723.59,427.018 L 726.278,427.247 L 729.039,427.442 L 731.763,427.54 L 734.56,427.573 L 734.56,427.573 L 737.321,427.54 L 740.082,427.442 L 742.806,427.247 L 745.567,427.018 L 748.255,426.626 L 750.905,426.3 L 753.556,425.81 L 756.133,425.222 L 758.636,424.602 L 761.102,423.916 L 763.458,423.165 L 765.777,422.349 L 767.949,421.5 L 770.158,420.586 L 772.22,419.574 L 774.134,418.562 L 775.974,417.451 L 777.778,416.309 L 779.361,415.133 L 780.907,413.893 L 782.343,412.652 L 783.595,411.313 L 784.736,410.007 L 785.803,408.669 L 786.687,407.232 L 787.423,405.828 L 788.086,404.391 L 788.564,402.955 L 788.932,401.518 L 789.08,400.016 L 789.19,398.547z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 778.515 429.401 L 778.441,427.018 L 778.22,424.569 L 777.926,422.218 L 777.447,419.802 L 776.821,417.451 L 776.048,415.133 L 775.165,412.848 L 774.097,410.595 L 772.956,408.407 L 771.741,406.252 L 770.342,404.163 L 768.796,402.171 L 767.176,400.212 L 765.409,398.351 L 763.569,396.555 L 761.654,394.825 L 759.593,393.192 L 757.495,391.723 L 755.249,390.287 L 752.967,388.981 L 750.611,387.74 L 748.218,386.63 L 745.715,385.585 L 743.175,384.671 L 740.524,383.887 L 737.91,383.267 L 735.186,382.679 L 732.499,382.255 L 729.812,381.961 L 727.087,381.765 L 724.327,381.732 L 724.327,381.732 L 721.566,381.765 L 718.841,381.961 L 716.081,382.255 L 713.393,382.679 L 710.743,383.267 L 708.055,383.887 L 705.479,384.671 L 702.939,385.585 L 700.435,386.63 L 697.969,387.74 L 695.613,388.981 L 693.33,390.287 L 691.159,391.723 L 688.987,393.192 L 686.962,394.825 L 685.011,396.555 L 683.17,398.351 L 681.44,400.212 L 679.783,402.171 L 678.311,404.163 L 676.912,406.252 L 675.624,408.407 L 674.482,410.595 L 673.489,412.848 L 672.605,415.133 L 671.832,417.451 L 671.206,419.802 L 670.728,422.218 L 670.359,424.569 L 670.139,427.018 L 670.065,429.401 L 670.065,429.401 L 670.139,431.818 L 670.359,434.266 L 670.728,436.617 L 671.206,439.001 L 671.832,441.417 L 672.605,443.702 L 673.489,445.955 L 674.482,448.241 L 675.624,450.395 L 676.912,452.55 L 678.311,454.673 L 679.783,456.664 L 681.44,458.591 L 683.17,460.484 L 685.011,462.28 L 686.962,463.978 L 688.987,465.61 L 691.159,467.145 L 693.33,468.549 L 695.613,469.888 L 697.969,471.096 L 700.435,472.238 L 702.939,473.25 L 705.479,474.165 L 708.055,474.916 L 710.743,475.601 L 713.393,476.124 L 716.081,476.548 L 718.841,476.842 L 721.566,477.038 L 724.327,477.136 L 724.327,477.136 L 727.087,477.038 L 729.812,476.842 L 732.499,476.548 L 735.186,476.124 L 737.91,475.601 L 740.524,474.916 L 743.175,474.165 L 745.715,473.25 L 748.218,472.238 L 750.611,471.096 L 752.967,469.888 L 755.249,468.549 L 757.495,467.145 L 759.593,465.61 L 761.654,463.978 L 763.569,462.28 L 765.409,460.484 L 767.176,458.591 L 768.796,456.664 L 770.342,454.673 L 771.741,452.55 L 772.956,450.395 L 774.097,448.241 L 775.165,445.955 L 776.048,443.702 L 776.821,441.417 L 777.447,439.001 L 777.926,436.617 L 778.22,434.266 L 778.441,431.818 L 778.515,429.401z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 731.689 400.702 L 731.542,398.253 L 731.1,395.902 L 730.401,393.454 L 729.443,391.103 L 728.192,388.752 L 726.646,386.401 L 724.842,384.116 L 722.744,381.863 L 720.461,379.675 L 717.884,377.553 L 715.013,375.431 L 711.958,373.406 L 708.644,371.513 L 705.11,369.619 L 701.356,367.791 L 697.453,366.093 L 693.294,364.493 L 688.95,362.958 L 684.495,361.522 L 679.82,360.183 L 674.998,358.975 L 670.065,357.832 L 665.022,356.82 L 659.868,355.939 L 654.567,355.188 L 649.192,354.502 L 643.781,353.98 L 638.296,353.555 L 632.774,353.196 L 627.215,353.033 L 621.583,352.968 L 621.583,352.968 L 616.024,353.033 L 610.466,353.196 L 604.944,353.555 L 599.422,353.98 L 594.01,354.502 L 588.636,355.188 L 583.372,355.939 L 578.218,356.82 L 573.101,357.832 L 568.242,358.975 L 563.419,360.183 L 558.707,361.522 L 554.216,362.958 L 549.946,364.493 L 545.749,366.093 L 541.81,367.791 L 538.129,369.619 L 534.558,371.513 L 531.245,373.406 L 528.227,375.431 L 525.355,377.553 L 522.815,379.675 L 520.496,381.863 L 518.361,384.116 L 516.594,386.401 L 515.084,388.752 L 513.759,391.103 L 512.802,393.454 L 512.103,395.902 L 511.661,398.253 L 511.55,400.702 L 511.55,400.702 L 511.661,403.085 L 512.103,405.502 L 512.802,407.885 L 513.759,410.301 L 515.084,412.652 L 516.594,414.97 L 518.361,417.223 L 520.496,419.508 L 522.815,421.729 L 525.355,423.851 L 528.227,425.908 L 531.245,427.932 L 534.558,429.891 L 538.129,431.752 L 541.81,433.548 L 545.749,435.278 L 549.946,436.911 L 554.216,438.445 L 558.707,439.882 L 563.419,441.155 L 568.242,442.429 L 573.101,443.506 L 578.218,444.518 L 583.372,445.433 L 588.636,446.216 L 594.01,446.869 L 599.422,447.424 L 604.944,447.849 L 610.466,448.143 L 616.024,448.371 L 621.583,448.404 L 621.583,448.404 L 627.215,448.371 L 632.774,448.143 L 638.296,447.849 L 643.781,447.424 L 649.192,446.869 L 654.567,446.216 L 659.868,445.433 L 665.022,444.518 L 670.065,443.506 L 674.998,442.429 L 679.82,441.155 L 684.495,439.882 L 688.95,438.445 L 693.294,436.911 L 697.453,435.278 L 701.356,433.548 L 705.11,431.752 L 708.644,429.891 L 711.958,427.932 L 715.013,425.908 L 717.884,423.851 L 720.461,421.729 L 722.744,419.508 L 724.842,417.223 L 726.646,414.97 L 728.192,412.652 L 729.443,410.301 L 730.401,407.885 L 731.1,405.502 L 731.542,403.085 L 731.689,400.702z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 640.541 347.254 L 713.393,339.026 L 712.473,337.23 L 711.332,335.402 L 710.08,333.606 L 708.571,331.876 L 706.951,330.21 L 705.11,328.513 L 703.196,326.913 L 700.987,325.378 L 698.742,323.876 L 696.312,322.44 L 693.699,321.068 L 690.974,319.795 L 688.103,318.554 L 685.121,317.346 L 682.029,316.269 L 678.826,315.289 L 675.587,314.31 L 672.163,313.494 L 668.703,312.743 L 665.206,312.057 L 661.561,311.469 L 657.917,311.012 L 654.236,310.588 L 650.518,310.294 L 646.763,310.098 L 642.971,310 L 639.216,310 L 635.424,310.098 L 631.633,310.229 L 627.951,310.49 L 624.233,310.914 L 620.552,311.339 L 616.908,311.926 L 613.337,312.547 L 609.877,313.265 L 606.49,314.081 L 603.14,314.995 L 599.9,315.942 L 596.845,317.02 L 593.826,318.163 L 590.918,319.371 L 588.157,320.644 L 585.544,322.015 L 583.077,323.452 L 580.721,324.921 L 578.512,326.456 L 576.451,328.056 L 574.573,329.688 L 572.954,331.418 L 571.371,333.084 L 570.009,334.879 L 568.867,336.642 L 567.91,338.471 L 567.1,340.299 L 640.541,347.254z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 713.393 338.961 L 712.436,337.132 L 711.332,335.336 L 710.043,333.541 L 708.571,331.843 L 706.877,330.145 L 705.074,328.48 L 703.123,326.88 L 700.914,325.346 L 698.631,323.876 L 696.275,322.44 L 693.625,321.003 L 690.974,319.73 L 688.066,318.489 L 685.084,317.346 L 682.029,316.204 L 678.826,315.224 L 675.55,314.31 L 672.126,313.461 L 668.666,312.743 L 665.206,312.057 L 661.561,311.469 L 657.88,311.012 L 654.199,310.588 L 650.481,310.294 L 646.763,310.098 L 642.934,310 L 639.179,310 L 635.424,310.098 L 631.67,310.229 L 627.915,310.49 L 624.233,310.914 L 620.552,311.306 L 616.945,311.861 L 613.411,312.547 L 609.877,313.265 L 606.527,314.081 L 603.177,314.995 L 599.974,315.942 L 596.845,316.987 L 593.863,318.163 L 590.955,319.371 L 588.194,320.611 L 585.58,321.983 L 583.077,323.387 L 580.721,324.888 L 578.512,326.423 L 576.524,327.99 L 574.61,329.688 L 572.954,331.321 L 571.408,333.051 L 570.082,334.781 L 568.867,336.577 L 567.91,338.406 L 567.137,340.234"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 541.479 366.615 L 578.218,338.046 L 575.935,336.871 L 573.543,335.761 L 571.113,334.781 L 568.61,333.802 L 566.07,332.953 L 563.419,332.169 L 560.695,331.516 L 558.008,330.896 L 555.173,330.406 L 552.375,329.982 L 549.504,329.688 L 546.633,329.459 L 543.761,329.329 L 540.89,329.329 L 537.982,329.394 L 535.11,329.59 L 532.239,329.819 L 529.405,330.178 L 526.607,330.635 L 523.846,331.157 L 521.085,331.778 L 518.434,332.496 L 515.784,333.312 L 513.244,334.194 L 510.777,335.173 L 508.421,336.251 L 506.065,337.393 L 503.857,338.569 L 501.758,339.875 L 499.697,341.213 L 497.783,342.65 L 496.016,344.087 L 494.322,345.654 L 492.776,347.221 L 491.304,348.854 L 490.015,350.551 L 488.8,352.282 L 487.77,354.012 L 486.849,355.808 L 486.113,357.636 L 485.524,359.465 L 485.009,361.359 L 484.641,363.252 L 484.493,365.113 L 484.42,366.974 L 484.53,368.868 L 484.751,370.794 L 485.193,372.623 L 541.479,366.615z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 578.034 337.948 L 575.751,336.773 L 573.432,335.696 L 571.003,334.683 L 568.463,333.769 L 565.849,332.888 L 563.235,332.137 L 560.548,331.451 L 557.787,330.863 L 555.026,330.406 L 552.155,329.982 L 549.32,329.688 L 546.485,329.459 L 543.614,329.329 L 540.669,329.329 L 537.871,329.394 L 535,329.59 L 532.055,329.819 L 529.257,330.21 L 526.496,330.635 L 523.662,331.223 L 520.974,331.81 L 518.324,332.561 L 515.71,333.377 L 513.133,334.259 L 510.667,335.239 L 508.311,336.316 L 506.029,337.426 L 503.82,338.667 L 501.648,339.907 L 499.697,341.311 L 497.746,342.683 L 495.942,344.185 L 494.285,345.687 L 492.702,347.254 L 491.304,348.919 L 490.015,350.617 L 488.8,352.347 L 487.733,354.078 L 486.849,355.906 L 486.113,357.669 L 485.45,359.53 L 485.009,361.424 L 484.641,363.285 L 484.493,365.146 L 484.42,367.04 L 484.604,368.901 L 484.825,370.794 L 485.193,372.688"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 531.245 433.352 L 472.124,432.34 L 472.124,434.07 L 472.235,435.703 L 472.529,437.433 L 473.008,439.066 L 473.56,440.731 L 474.259,442.429 L 475.18,443.996 L 476.137,445.596 L 477.352,447.163 L 478.64,448.665 L 480.002,450.2 L 481.622,451.636 L 483.242,453.04 L 485.082,454.379 L 486.96,455.685 L 488.984,456.925 L 491.156,458.068 L 493.365,459.178 L 495.684,460.288 L 498.114,461.235 L 500.617,462.149 L 503.231,463.031 L 505.881,463.749 L 508.532,464.468 L 511.33,465.088 L 514.164,465.61 L 517.036,466.035 L 519.944,466.427 L 522.852,466.72 L 525.797,466.916 L 528.779,467.014 L 531.797,467.014 L 534.706,466.949 L 537.687,466.818 L 540.632,466.623 L 543.54,466.329 L 546.485,465.904 L 549.283,465.414 L 552.155,464.892 L 554.842,464.206 L 557.566,463.553 L 560.217,462.737 L 562.72,461.856 L 565.26,460.909 L 567.579,459.897 L 569.898,458.852 L 531.245,433.352z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 472.198 432.34 L 472.087,434.005 L 472.308,435.703 L 472.529,437.368 L 473.008,439.066 L 473.56,440.698 L 474.296,442.364 L 475.18,443.996 L 476.21,445.596 L 477.352,447.13 L 478.566,448.665 L 480.002,450.134 L 481.511,451.603 L 483.242,452.975 L 485.009,454.379 L 486.923,455.619 L 488.911,456.86 L 491.046,458.068 L 493.255,459.178 L 495.574,460.223 L 498.003,461.203 L 500.507,462.117 L 503.047,462.966 L 505.697,463.749 L 508.458,464.468 L 511.182,465.023 L 513.98,465.545 L 516.851,466.035 L 519.796,466.361 L 522.705,466.72 L 525.613,466.851 L 528.595,467.014 L 531.576,467.014 L 534.521,467.014 L 537.466,466.851 L 540.411,466.623 L 543.32,466.329 L 546.265,465.937 L 549.062,465.48 L 551.934,464.925 L 554.658,464.272 L 557.308,463.553 L 559.959,462.77 L 562.499,461.921 L 565.039,461.007 L 567.432,459.995 L 569.677,458.95"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 719.357 360.542 L 771.373,369.978 L 772.256,368.574 L 772.919,367.17 L 773.545,365.734 L 773.913,364.264 L 774.281,362.795 L 774.355,361.326 L 774.355,359.824 L 774.281,358.387 L 773.987,356.918 L 773.582,355.449 L 772.993,354.012 L 772.293,352.576 L 771.483,351.204 L 770.526,349.8 L 769.422,348.462 L 768.17,347.123 L 766.771,345.817 L 765.336,344.576 L 763.753,343.368 L 762.059,342.226 L 760.256,341.05 L 758.268,340.005 L 756.28,338.993 L 754.108,338.046 L 751.936,337.132 L 749.654,336.316 L 747.298,335.5 L 744.831,334.781 L 742.328,334.128 L 739.751,333.541 L 737.1,333.051 L 734.487,332.627 L 731.726,332.235 L 729.002,331.941 L 726.241,331.712 L 723.443,331.614 L 720.682,331.516 L 717.921,331.516 L 715.123,331.614 L 712.326,331.745 L 709.602,331.974 L 706.841,332.267 L 704.117,332.627 L 701.429,333.084 L 719.357,360.542z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 766.587 375.3 L 771.336,370.044 L 772.22,368.672 L 772.919,367.236 L 773.471,365.799 L 773.913,364.33 L 774.207,362.861 L 774.318,361.424 L 774.355,359.889 L 774.244,358.453 L 773.987,356.983 L 773.582,355.514 L 772.993,354.078 L 772.293,352.641 L 771.52,351.237 L 770.563,349.898 L 769.422,348.494 L 768.17,347.156 L 766.882,345.85 L 765.372,344.609 L 763.79,343.401 L 762.096,342.226 L 760.292,341.116 L 758.378,340.071 L 756.353,339.026 L 754.255,338.046 L 752.01,337.165 L 749.727,336.316 L 747.371,335.532 L 744.905,334.879 L 742.401,334.194 L 739.861,333.573 L 737.248,333.051 L 734.56,332.627 L 731.91,332.235 L 729.186,331.941 L 726.425,331.745 L 723.627,331.614 L 720.829,331.516 L 717.995,331.516 L 715.234,331.614 L 712.436,331.745 L 709.675,331.941 L 706.951,332.235 L 704.264,332.594 L 701.576,333.051"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 726.756 398.906 L 785.325,410.856 L 786.503,409.289 L 787.46,407.754 L 788.343,406.122 L 789.043,404.489 L 789.521,402.857 L 789.853,401.224 L 789.963,399.527 L 789.963,397.861 L 789.742,396.196 L 789.411,394.564 L 788.822,392.899 L 788.123,391.299 L 787.202,389.699 L 786.208,388.099 L 784.957,386.564 L 783.558,385.095 L 782.049,383.593 L 780.318,382.124 L 778.478,380.753 L 726.756,398.906z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 777.889 416.276 L 785.251,410.921 L 786.356,409.387 L 787.46,407.754 L 788.307,406.155 L 789.006,404.489 L 789.485,402.857 L 789.853,401.224 L 790,399.527 L 789.963,397.861 L 789.742,396.164 L 789.337,394.531 L 788.822,392.899 L 788.123,391.266 L 787.202,389.634 L 786.172,388.034 L 784.883,386.467 L 783.521,384.997 L 781.901,383.495 L 780.245,382.059 L 778.367,380.687 L 766.587,375.3"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 724.29 430.446 L 705.81,475.797 L 708.534,476.516 L 711.295,477.169 L 714.056,477.658 L 716.927,478.05 L 719.725,478.344 L 722.523,478.475 L 725.431,478.475 L 728.265,478.344 L 731.063,478.148 L 733.898,477.756 L 736.659,477.266 L 739.42,476.711 L 742.144,475.993 L 744.831,475.112 L 747.408,474.165 L 749.985,473.087 L 752.488,471.912 L 754.918,470.606 L 757.274,469.267 L 759.519,467.733 L 761.654,466.133 L 763.716,464.468 L 765.704,462.672 L 767.581,460.811 L 769.275,458.884 L 770.894,456.86 L 772.44,454.803 L 773.803,452.648 L 775.017,450.493 L 776.159,448.241 L 777.116,445.922 L 777.999,443.572 L 778.699,441.221 L 779.288,438.805 L 779.656,436.421 L 779.987,433.972 L 780.061,431.524 L 780.061,429.075 L 779.913,426.626 L 779.619,424.177 L 779.177,421.761 L 778.625,419.378 L 777.889,417.027 L 724.29,430.446z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 705.957 475.83 L 708.718,476.613 L 711.442,477.234 L 714.24,477.756 L 717.038,478.083 L 719.909,478.344 L 722.707,478.475 L 725.541,478.54 L 728.376,478.344 L 731.247,478.148 L 734.045,477.756 L 736.806,477.266 L 739.567,476.646 L 742.291,475.928 L 744.942,475.079 L 747.592,474.099 L 750.132,473.055 L 752.599,471.912 L 754.991,470.606 L 757.347,469.169 L 759.593,467.667 L 761.728,466.035 L 763.79,464.37 L 765.777,462.639 L 767.618,460.746 L 769.385,458.787 L 770.931,456.827 L 772.477,454.705 L 773.839,452.55 L 775.054,450.395 L 776.159,448.143 L 777.152,445.792 L 778.036,443.474 L 778.699,441.09 L 779.288,438.707 L 779.729,436.323 L 779.987,433.874 L 780.061,431.426 L 780.061,428.977 L 779.877,426.528 L 779.619,424.079 L 779.14,421.663 L 778.515,419.28 L 777.889,416.929"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 490.162 404.685 L 487.365,373.896 L 485.303,374.059 L 483.352,374.255 L 481.291,374.582 L 479.303,374.974 L 477.352,375.431 L 475.437,376.019 L 473.56,376.574 L 471.719,377.325 L 469.879,378.043 L 468.149,378.859 L 466.455,379.773 L 464.835,380.72 L 463.252,381.732 L 461.817,382.842 L 460.381,383.952 L 459.056,385.128 L 457.804,386.369 L 456.663,387.675 L 455.522,388.981 L 454.528,390.385 L 453.681,391.821 L 452.871,393.258 L 452.098,394.694 L 451.509,396.196 L 451.031,397.731 L 450.589,399.265 L 450.258,400.833 L 450.11,402.432 L 450,403.967 L 450,405.534 L 450.11,407.069 L 450.331,408.669 L 450.663,410.203 L 451.031,411.738 L 451.583,413.272 L 452.172,414.774 L 452.908,416.243 L 453.718,417.68 L 454.638,419.084 L 455.632,420.488 L 456.773,421.761 L 457.915,423.067 L 459.203,424.308 L 460.565,425.483 L 461.964,426.626 L 463.473,427.671 L 465.056,428.683 L 466.676,429.663 L 468.406,430.544 L 470.1,431.36 L 471.94,432.111 L 490.162,404.685z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 487.365 373.896 L 485.414,374.059 L 483.389,374.255 L 481.401,374.582 L 479.487,374.941 L 477.536,375.398 L 475.621,375.888 L 473.781,376.508 L 471.977,377.161 L 470.173,377.88 L 468.517,378.696 L 466.786,379.577 L 465.204,380.492 L 463.657,381.471 L 462.185,382.549 L 460.712,383.659 L 459.424,384.769 L 458.136,386.009 L 456.994,387.25 L 455.89,388.556 L 454.933,389.895 L 454.013,391.266 L 453.129,392.637 L 452.393,394.074 L 451.73,395.543 L 451.178,397.045 L 450.773,398.547 L 450.368,400.082 L 450.147,401.616 L 450,403.151 L 450,404.685 L 450,406.22 L 450.221,407.754 L 450.442,409.289 L 450.773,410.824 L 451.252,412.325 L 451.73,413.795 L 452.393,415.231 L 453.203,416.733 L 454.013,418.137 L 454.933,419.476 L 455.964,420.814 L 457.031,422.12 L 458.172,423.361 L 459.424,424.569 L 460.786,425.712 L 462.222,426.822 L 463.694,427.867 L 465.277,428.846 L 466.823,429.793 L 468.517,430.642 L 470.247,431.426 L 472.014,432.177"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 639.29 454.118 L 555.505,457.676 L 556.057,459.472 L 556.756,461.301 L 557.713,463.064 L 558.928,464.794 L 560.217,466.459 L 561.799,468.157 L 563.53,469.79 L 565.481,471.422 L 567.653,472.957 L 569.972,474.491 L 572.401,475.928 L 575.089,477.332 L 577.887,478.67 L 580.868,479.976 L 583.997,481.152 L 587.237,482.327 L 590.697,483.372 L 594.158,484.417 L 597.802,485.331 L 601.52,486.213 L 605.422,486.931 L 609.324,487.649 L 613.263,488.237 L 617.386,488.759 L 621.509,489.184 L 625.669,489.51 L 629.792,489.771 L 634.026,489.902 L 638.296,490 L 642.492,490 L 646.763,489.869 L 650.959,489.673 L 655.119,489.38 L 659.242,488.955 L 663.365,488.498 L 667.341,487.943 L 671.317,487.257 L 675.182,486.604 L 679.01,485.788 L 682.692,484.874 L 686.226,483.894 L 689.686,482.85 L 693.036,481.707 L 696.239,480.531 L 699.294,479.291 L 702.129,477.985 L 704.89,476.613 L 707.43,475.177 L 709.859,473.675 L 712.105,472.14 L 714.093,470.606 L 715.933,468.973 L 717.627,467.276 L 719.062,465.61 L 639.29,454.118z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 555.578 457.742 L 556.057,459.505 L 556.793,461.301 L 557.713,463.064 L 558.928,464.794 L 560.29,466.525 L 561.799,468.157 L 563.566,469.79 L 565.481,471.422 L 567.653,472.957 L 569.972,474.491 L 572.401,475.928 L 575.089,477.332 L 577.96,478.67 L 580.868,479.976 L 583.997,481.152 L 587.237,482.327 L 590.697,483.372 L 594.158,484.384 L 597.802,485.331 L 601.52,486.213 L 605.349,486.931 L 609.251,487.649 L 613.227,488.237 L 617.35,488.759 L 621.436,489.184 L 625.595,489.478 L 629.755,489.771 L 633.952,489.902 L 638.185,490 L 642.419,489.967 L 646.615,489.869 L 650.812,489.608 L 655.045,489.38 L 659.168,488.955 L 663.218,488.465 L 667.267,487.943 L 671.206,487.323 L 675.071,486.604 L 678.863,485.788 L 682.508,484.874 L 686.115,483.894 L 689.576,482.882 L 692.889,481.805 L 696.091,480.597 L 699.11,479.356 L 702.055,478.05 L 704.779,476.613 L 707.356,475.21 L 709.786,473.708 L 711.958,472.238 L 714.019,470.606 L 715.86,469.006 L 717.479,467.341 L 718.989,465.643"/>
</g>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 472.883 378.401 L 472.883,360.469"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 472.883 378.111 L 472.883,365.811"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 473.404 362.192 L 472.308,362.192 L 472.308,360 L 473.404,360 L 473.404,362.192z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 473.404 362.192 L 472.308,362.192 L 472.308,360 L 473.404,360 L 473.404,362.192"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 446.304 378.401 L 446.304,360.469"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 446.304 378.111 L 446.304,365.811"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 446.824 362.192 L 445.728,362.192 L 445.728,360 L 446.824,360 L 446.824,362.192z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 446.824 362.192 L 445.728,362.192 L 445.728,360 L 446.824,360 L 446.824,362.192"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 480.318 380.677 C 480.318,385.007 471.293,388.516 460.159,388.516 C 449.025,388.516 440,385.007 440,380.677 L 440,392.16 C 440,396.49 449.025,400 460.159,400 C 471.293,400 480.318,396.49 480.318,392.16 L 480.318,380.677z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 480.318 380.677 C 480.318,385.007 471.293,388.516 460.159,388.516 C 449.025,388.516 440,385.007 440,380.677 L 440,392.16 C 440,396.49 449.025,400 460.159,400 C 471.293,400 480.318,396.49 480.318,392.16 L 480.318,380.677"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 460.159 388.516 C 471.293,388.516 480.318,385.007 480.318,380.677 C 480.318,376.347 471.293,372.837 460.159,372.837 C 449.025,372.837 440,376.347 440,380.677 C 440,385.007 449.025,388.516 460.159,388.516z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 460.159 388.516 C 471.293,388.516 480.318,385.007 480.318,380.677 C 480.318,376.347 471.293,372.837 460.159,372.837 C 449.025,372.837 440,376.347 440,380.677 C 440,385.007 449.025,388.516 460.159,388.516"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 455.555 377.612 L 457.22,380.109 L 450.927,381.563 L 452.301,380.419 L 442.574,378.756 L 445.015,376.927 L 454.4,378.516 L 455.555,377.612z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 464.413 383.666 L 463.276,381.093 L 468.953,379.958 L 467.968,380.84 L 477.431,382.456 L 475.162,384.272 L 465.754,382.507 L 464.413,383.666z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 461.308 376.248 L 467.667,374.508 L 467.742,377.234 L 466.153,376.93 L 463.048,379.503 L 460.088,379.072 L 463.29,376.554 L 461.308,376.248z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 458.583 386.014 L 452.528,387.149 L 452.301,384.349 L 454.041,384.726 L 457.374,381.88 L 460.324,382.38 L 456.767,385.484 L 458.583,386.014z"/>
</g>
<text font-size="21.4489" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="620" y="390">
<tspan x="620" y="390">Mesh</tspan>
</text>
<g>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 294.294 324.172 L 328.289,324.172 L 313.995,338.514 L 280,338.514 L 294.294,324.172z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 294.294 324.172 L 328.289,324.172 L 313.995,338.514 L 280,338.514 L 294.294,324.172"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 295.599 336.092 L 295.599,336.168 L 295.613,336.23 L 295.633,336.314 L 295.661,336.397 L 295.703,336.46 L 295.751,336.536 L 295.814,336.605 L 295.876,336.668 L 295.939,336.744 L 296.022,336.821 L 296.106,336.883 L 296.196,336.939 L 296.3,336.994 L 296.397,337.057 L 296.522,337.105 L 296.633,337.168 L 296.758,337.216 L 296.897,337.265 L 297.036,337.306 L 297.168,337.348 L 297.313,337.39 L 297.459,337.431 L 297.612,337.452 L 297.779,337.48 L 297.938,337.494 L 298.105,337.522 L 298.258,337.543 L 298.431,337.563 L 298.605,337.57 L 298.771,337.577 L 298.938,337.577"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 298.57 337.577 L 298.737,337.577 L 298.896,337.57 L 299.056,337.556 L 299.222,337.536 L 299.389,337.522 L 299.542,337.494 L 299.695,337.48 L 299.854,337.445 L 300,337.411 L 300.153,337.369 L 300.285,337.327 L 300.423,337.286 L 300.555,337.237 L 300.68,337.188 L 300.791,337.14 L 300.909,337.084 L 301.02,337.022 L 301.118,336.966 L 301.215,336.897 L 301.298,336.827 L 301.375,336.758 L 301.437,336.696 L 301.506,336.619 L 301.562,336.543 L 301.604,336.48 L 301.652,336.404 L 301.673,336.314 L 301.694,336.237 L 301.715,336.168 L 301.722,336.092"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 299.306 333.308 L 299.132,333.308 L 298.966,333.315 L 298.792,333.315 L 298.639,333.329 L 298.473,333.35 L 298.306,333.363 L 298.146,333.377 L 297.98,333.412 L 297.834,333.44 L 297.688,333.461 L 297.543,333.495 L 297.397,333.537 L 297.265,333.572 L 297.14,333.613 L 297.015,333.669 L 296.876,333.711 L 296.779,333.759 L 296.668,333.801 L 296.564,333.856 L 296.48,333.919 L 296.39,333.974 L 296.314,334.023 L 296.237,334.085 L 296.182,334.148 L 296.126,334.217 L 296.071,334.28 L 296.043,334.335 L 296.008,334.405 L 295.988,334.46 L 295.981,334.537 L 295.974,334.592"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 302.083 334.592 L 302.083,334.53 L 302.076,334.46 L 302.048,334.398 L 302.02,334.321 L 301.985,334.266 L 301.93,334.19 L 301.874,334.134 L 301.819,334.065 L 301.736,334.016 L 301.673,333.947 L 301.59,333.891 L 301.479,333.842 L 301.388,333.773 L 301.284,333.738 L 301.173,333.683 L 301.048,333.627 L 300.916,333.586 L 300.784,333.544 L 300.653,333.509 L 300.514,333.481 L 300.368,333.447 L 300.215,333.412 L 300.069,333.391 L 299.917,333.363 L 299.764,333.35 L 299.604,333.329 L 299.438,333.315 L 299.264,333.315 L 299.098,333.308 L 298.938,333.308"/>
<path style="fill: #a5a585; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 280 340 L 313.995,340 L 313.995,338.514 L 280,338.514 L 280,340z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 280 340 L 313.995,340 L 313.995,338.514 L 280,338.514 L 280,340"/>
<path style="fill: #a5a585; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 294.294 324.172 L 328.289,324.172 L 328.289,300.916 L 294.294,300.916 L 294.294,324.172z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 294.294 324.172 L 328.289,324.172 L 328.289,300.916 L 294.294,300.916 L 294.294,324.172"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 329.219 323.256 L 329.219,300 L 328.289,300.916 L 328.289,324.172 L 329.219,323.256z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 329.219 323.256 L 329.219,300 L 328.289,300.916 L 328.289,324.172 L 329.219,323.256"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.974 322.694 L 326.623,322.694 L 326.623,302.784 L 295.974,302.784 L 295.974,322.694z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.974 322.694 L 326.623,322.694 L 326.623,302.784 L 295.974,302.784 L 295.974,322.694"/>
<path style="fill: #93936c; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.974 325.297 L 324.568,325.297 L 317.14,332.746 L 288.546,332.746 L 295.974,325.297z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.974 325.297 L 324.568,325.297 L 317.14,332.746 L 288.546,332.746 L 295.974,325.297"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 300.423 335.62 L 300.423,335.578 L 300.417,335.536 L 300.41,335.495 L 300.389,335.446 L 300.382,335.404 L 300.354,335.37 L 300.34,335.328 L 300.305,335.3 L 300.271,335.259 L 300.25,335.217 L 300.215,335.182 L 300.174,335.148 L 300.132,335.106 L 300.083,335.071 L 300.042,335.05 L 299.993,335.016 L 299.938,334.988 L 299.875,334.967 L 299.826,334.932 L 299.764,334.918 L 299.701,334.891 L 299.646,334.877 L 299.577,334.856 L 299.514,334.842 L 299.438,334.828 L 299.375,334.807 L 299.306,334.8 L 299.243,334.8 L 299.174,334.793 L 299.091,334.793 L 299.035,334.793 L 299.035,334.793 L 298.959,334.793 L 298.882,334.793 L 298.82,334.8 L 298.75,334.8 L 298.688,334.807 L 298.612,334.828 L 298.549,334.842 L 298.48,334.856 L 298.417,334.877 L 298.355,334.891 L 298.299,334.918 L 298.23,334.932 L 298.181,334.967 L 298.126,334.988 L 298.07,335.016 L 298.022,335.05 L 297.98,335.071 L 297.931,335.106 L 297.89,335.148 L 297.855,335.182 L 297.806,335.217 L 297.785,335.259 L 297.744,335.3 L 297.723,335.328 L 297.702,335.37 L 297.681,335.404 L 297.667,335.446 L 297.661,335.495 L 297.647,335.536 L 297.633,335.578 L 297.633,335.62 L 297.633,335.62 L 297.633,335.668 L 297.647,335.71 L 297.661,335.751 L 297.667,335.793 L 297.681,335.835 L 297.702,335.869 L 297.723,335.918 L 297.744,335.953 L 297.785,335.994 L 297.806,336.022 L 297.855,336.064 L 297.89,336.099 L 297.931,336.14 L 297.98,336.168 L 298.022,336.196 L 298.07,336.23 L 298.126,336.258 L 298.181,336.279 L 298.23,336.314 L 298.299,336.328 L 298.355,336.355 L 298.417,336.369 L 298.48,336.39 L 298.549,336.404 L 298.612,336.418 L 298.688,336.432 L 298.75,336.446 L 298.82,336.446 L 298.882,336.446 L 298.959,336.453 L 299.035,336.453 L 299.035,336.453 L 299.091,336.453 L 299.174,336.446 L 299.243,336.446 L 299.306,336.446 L 299.375,336.432 L 299.438,336.418 L 299.514,336.404 L 299.577,336.39 L 299.646,336.369 L 299.701,336.355 L 299.764,336.328 L 299.826,336.314 L 299.875,336.279 L 299.938,336.258 L 299.993,336.23 L 300.042,336.196 L 300.083,336.168 L 300.132,336.14 L 300.174,336.099 L 300.215,336.064 L 300.25,336.022 L 300.271,335.994 L 300.305,335.953 L 300.34,335.918 L 300.354,335.869 L 300.382,335.835 L 300.389,335.793 L 300.41,335.751 L 300.417,335.71 L 300.423,335.668 L 300.423,335.62z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 300.243 335.536 L 300.243,335.495 L 300.236,335.453 L 300.236,335.418 L 300.215,335.39 L 300.201,335.335 L 300.194,335.314 L 300.16,335.272 L 300.132,335.231 L 300.111,335.203 L 300.083,335.175 L 300.042,335.148 L 300.007,335.099 L 299.965,335.071 L 299.924,335.05 L 299.889,335.016 L 299.833,334.988 L 299.792,334.974 L 299.743,334.939 L 299.695,334.925 L 299.632,334.898 L 299.577,334.884 L 299.514,334.87 L 299.459,334.849 L 299.396,334.835 L 299.334,334.828 L 299.264,334.807 L 299.209,334.8 L 299.132,334.793 L 299.077,334.793 L 299.007,334.793 L 298.945,334.793 L 298.945,334.793 L 298.875,334.793 L 298.813,334.793 L 298.743,334.793 L 298.688,334.8 L 298.619,334.807 L 298.563,334.828 L 298.487,334.835 L 298.431,334.849 L 298.383,334.87 L 298.313,334.884 L 298.258,334.898 L 298.188,334.925 L 298.153,334.939 L 298.091,334.974 L 298.049,334.988 L 298.001,335.016 L 297.959,335.05 L 297.917,335.071 L 297.876,335.099 L 297.841,335.148 L 297.806,335.175 L 297.779,335.203 L 297.744,335.231 L 297.73,335.272 L 297.702,335.314 L 297.688,335.335 L 297.674,335.39 L 297.661,335.418 L 297.654,335.453 L 297.647,335.495 L 297.647,335.536 L 297.647,335.536 L 297.647,335.571 L 297.654,335.613 L 297.661,335.654 L 297.674,335.675 L 297.688,335.717 L 297.702,335.758 L 297.73,335.793 L 297.744,335.828 L 297.779,335.869 L 297.806,335.89 L 297.841,335.925 L 297.876,335.96 L 297.917,335.994 L 297.959,336.015 L 298.001,336.05 L 298.049,336.071 L 298.091,336.099 L 298.153,336.126 L 298.188,336.14 L 298.258,336.168 L 298.313,336.189 L 298.383,336.196 L 298.431,336.217 L 298.487,336.23 L 298.563,336.237 L 298.619,336.258 L 298.688,336.272 L 298.743,336.272 L 298.813,336.272 L 298.875,336.272 L 298.945,336.272 L 298.945,336.272 L 299.007,336.272 L 299.077,336.272 L 299.132,336.272 L 299.209,336.272 L 299.264,336.258 L 299.334,336.237 L 299.396,336.23 L 299.459,336.217 L 299.514,336.196 L 299.577,336.189 L 299.632,336.168 L 299.695,336.14 L 299.743,336.126 L 299.792,336.099 L 299.833,336.071 L 299.889,336.05 L 299.924,336.015 L 299.965,335.994 L 300.007,335.96 L 300.042,335.925 L 300.083,335.89 L 300.111,335.869 L 300.132,335.828 L 300.16,335.793 L 300.194,335.758 L 300.201,335.717 L 300.215,335.675 L 300.236,335.654 L 300.236,335.613 L 300.243,335.571 L 300.243,335.536"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 295.793 336.272 L 295.793,336.355 L 295.807,336.418 L 295.835,336.494 L 295.856,336.578 L 295.897,336.647 L 295.939,336.709 L 296.001,336.786 L 296.064,336.862 L 296.133,336.925 L 296.203,336.994 L 296.293,337.057 L 296.376,337.126 L 296.487,337.182 L 296.591,337.237 L 296.703,337.286 L 296.821,337.348 L 296.952,337.397 L 297.07,337.445 L 297.223,337.487 L 297.362,337.529 L 297.508,337.577 L 297.654,337.612 L 297.806,337.633 L 297.959,337.661 L 298.126,337.688 L 298.285,337.702 L 298.445,337.73 L 298.612,337.744 L 298.785,337.751 L 298.952,337.751 L 299.118,337.751"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 298.743 337.751 L 298.917,337.751 L 299.077,337.751 L 299.25,337.737 L 299.403,337.716 L 299.563,337.702 L 299.729,337.688 L 299.875,337.661 L 300.035,337.626 L 300.174,337.591 L 300.326,337.563 L 300.472,337.522 L 300.604,337.48 L 300.736,337.431 L 300.861,337.369 L 300.986,337.32 L 301.09,337.265 L 301.201,337.209 L 301.298,337.14 L 301.388,337.084 L 301.479,337.008 L 301.555,336.952 L 301.631,336.883 L 301.694,336.8 L 301.736,336.723 L 301.798,336.661 L 301.826,336.578 L 301.86,336.501 L 301.888,336.418 L 301.888,336.355 L 301.902,336.272"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 299.486 333.488 L 299.327,333.488 L 299.16,333.495 L 298.993,333.495 L 298.827,333.509 L 298.653,333.53 L 298.487,333.537 L 298.341,333.565 L 298.174,333.586 L 298.022,333.627 L 297.876,333.641 L 297.73,333.683 L 297.591,333.711 L 297.452,333.759 L 297.327,333.801 L 297.202,333.842 L 297.07,333.884 L 296.966,333.933 L 296.855,333.981 L 296.758,334.044 L 296.668,334.099 L 296.585,334.148 L 296.501,334.217 L 296.418,334.266 L 296.369,334.321 L 296.314,334.398 L 296.265,334.453 L 296.224,334.523 L 296.196,334.578 L 296.175,334.641 L 296.168,334.717 L 296.161,334.787"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 302.277 334.787 L 302.263,334.71 L 302.256,334.641 L 302.242,334.578 L 302.208,334.509 L 302.166,334.446 L 302.117,334.377 L 302.062,334.321 L 301.999,334.259 L 301.93,334.19 L 301.847,334.134 L 301.763,334.072 L 301.673,334.016 L 301.562,333.967 L 301.465,333.919 L 301.347,333.87 L 301.236,333.815 L 301.111,333.773 L 300.979,333.738 L 300.833,333.697 L 300.694,333.669 L 300.555,333.627 L 300.41,333.599 L 300.257,333.572 L 300.09,333.544 L 299.944,333.53 L 299.785,333.509 L 299.618,333.495 L 299.445,333.495 L 299.292,333.488 L 299.118,333.488"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 328.289 325.477 L 313.995,339.82 L 313.995,338.514 L 328.289,324.172 L 328.289,325.477z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 328.289 325.477 L 313.995,339.82 L 313.995,338.514 L 328.289,324.172 L 328.289,325.477"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 323.464 323.075 L 323.464,323.429 L 326.248,323.429 L 326.248,323.075 L 323.464,323.075z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 323.464 323.075 L 323.464,323.429 L 326.248,323.429 L 326.248,323.075 L 323.464,323.075"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 322.7 327.157 L 294.294,327.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 320.854 329.025 L 292.447,329.025"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 319 330.885 L 290.587,330.885"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.224 300 L 329.219,300 L 328.289,300.916 L 294.294,300.916 L 295.224,300z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.224 300 L 329.219,300 L 328.289,300.916 L 294.294,300.916 L 295.224,300"/>
</g>
<g>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 260.594 397.19 C 260.943,395.941 262.38,389.684 262.447,388.811 C 262.514,387.938 262.192,386.851 261.722,386.623 C 261.749,386.314 261.749,386.139 261.749,386.139 C 261.641,386.099 261.521,386.059 261.413,386.005 L 261.453,386.018 C 261.453,386.018 261.776,384.622 261.977,383.655 C 262.34,381.802 262.38,380.862 262.38,380.862 C 262.367,380.607 262.299,380.379 262.071,380.312 L 260.984,380.016 C 260.755,379.949 260.594,380.097 260.446,380.325 C 260.446,380.325 260.017,381.184 259.426,382.957 C 259.104,383.883 258.808,385.065 258.808,385.065 L 258.822,385.065 C 258.177,384.85 257.519,384.662 256.861,384.474 C 255.169,384.004 253.491,383.655 251.799,383.4 C 251.799,383.4 251.719,383.548 251.571,383.83 C 251.061,383.776 250.228,384.555 249.839,385.334 C 249.449,386.112 247.476,392.222 247.126,393.471 C 246.777,394.719 246.119,397.915 245.824,399.499 C 245.529,401.084 245.26,403.85 244.24,407.529 C 243.635,409.704 242.669,412.954 242.158,414.296 C 242.024,414.659 240.963,416.445 242.507,417.062 C 244.025,417.667 246.294,418.311 247.435,418.633 C 248.577,418.942 250.846,419.546 252.457,419.815 C 254.095,420.084 254.109,417.989 254.176,417.613 C 254.431,416.203 255.263,412.913 255.854,410.738 C 256.875,407.046 258.07,404.548 258.634,403.031 C 259.184,401.514 260.245,398.439 260.594,397.19z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 260.594 397.19 C 260.943,395.941 262.38,389.684 262.447,388.811 C 262.514,387.938 262.192,386.851 261.722,386.623 C 261.749,386.314 261.749,386.139 261.749,386.139 C 261.641,386.099 261.521,386.059 261.413,386.005 L 261.453,386.018 C 261.453,386.018 261.776,384.622 261.977,383.655 C 262.34,381.802 262.38,380.862 262.38,380.862 C 262.367,380.607 262.299,380.379 262.071,380.312 L 260.984,380.016 C 260.755,379.949 260.594,380.097 260.446,380.325 C 260.446,380.325 260.017,381.184 259.426,382.957 C 259.104,383.883 258.808,385.065 258.808,385.065 L 258.822,385.065 C 258.177,384.85 257.519,384.662 256.861,384.474 C 255.169,384.004 253.491,383.655 251.799,383.4 C 251.799,383.4 251.719,383.548 251.571,383.83 L 251.571,383.83 C 251.061,383.776 250.228,384.555 249.839,385.334 C 249.449,386.112 247.476,392.222 247.126,393.471 C 246.777,394.719 246.119,397.915 245.824,399.499 C 245.529,401.084 245.26,403.85 244.24,407.529 C 243.635,409.704 242.669,412.954 242.158,414.296 C 242.024,414.659 240.963,416.445 242.507,417.062 C 244.025,417.667 246.294,418.311 247.435,418.633 C 248.577,418.942 250.846,419.546 252.457,419.815 C 254.095,420.084 254.109,417.989 254.176,417.613 C 254.431,416.203 255.263,412.913 255.854,410.738 C 256.875,407.046 258.07,404.548 258.634,403.031 C 259.184,401.514 260.245,398.439 260.594,397.19"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 L 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ecece7" fill-rule="evenodd" d="M 250.336 383.601 C 250.336,383.601 248.12,388.126 246.845,392.719 C 245.341,398.184 245.126,399.996 245.354,402.534 C 245.394,403.058 245.918,403.702 246.495,403.863 C 246.724,403.917 246.992,403.998 247.1,404.024 C 247.22,404.065 247.65,404.159 247.999,404.441 C 248.362,404.723 248.442,404.79 248.657,404.897 C 248.859,405.018 248.899,405.099 249.49,405.26 C 250.08,405.421 250.148,405.381 250.389,405.381 C 250.631,405.394 250.738,405.381 251.195,405.327 C 251.638,405.26 252.054,405.394 252.175,405.421 C 252.283,405.461 252.551,405.528 252.779,405.595 C 253.357,405.757 254.136,405.475 254.444,405.045 C 255.935,402.991 256.687,401.312 258.191,395.847 C 259.453,391.255 259.869,386.233 259.869,386.233 L 250.336,383.601z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 253.021 402.561 C 252.632,403.998 251.141,404.83 249.718,404.441 C 248.281,404.051 247.449,402.561 247.838,401.138 C 248.241,399.701 249.718,398.868 251.141,399.258 C 252.578,399.661 253.41,401.138 253.021,402.561z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 248.066 398.157 C 248.429,398.264 248.711,398.412 248.845,398.492 C 248.979,398.586 249.02,398.707 248.899,398.788 C 248.778,398.868 248.563,399.029 248.442,399.137 C 248.295,399.258 248.201,399.285 247.999,399.164 C 247.637,398.962 246.871,398.412 246.683,398.157 C 246.576,398.022 246.67,397.969 246.871,397.955 C 247.14,397.942 247.677,398.049 248.066,398.157z"/>
<path style="fill: #ff0000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 246.16 400.99 C 246.361,401.057 246.845,401.299 246.979,401.406 C 247.126,401.5 247.341,401.728 247.328,401.997 C 247.301,402.306 247.328,402.964 247.462,403.179 C 247.637,403.46 247.61,403.581 247.355,403.541 C 247.153,403.501 246.63,403.313 246.482,403.232 C 246.334,403.165 246.119,403.031 246.052,402.829 C 245.918,402.413 245.878,401.554 245.958,401.124 C 245.985,400.95 246.066,400.95 246.16,400.99z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 253.021 402.561 C 252.632,403.998 251.141,404.83 249.718,404.441 C 248.281,404.051 247.449,402.561 247.838,401.138 C 248.241,399.701 249.718,398.868 251.141,399.258 C 252.578,399.661 253.41,401.138 253.021,402.561"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.066 398.157 C 248.429,398.264 248.711,398.412 248.845,398.492 C 248.979,398.586 249.02,398.707 248.899,398.788 C 248.778,398.868 248.563,399.029 248.442,399.137 C 248.295,399.258 248.201,399.285 247.999,399.164 C 247.637,398.962 246.871,398.412 246.683,398.157 C 246.576,398.022 246.67,397.969 246.871,397.955 C 247.14,397.942 247.677,398.049 248.066,398.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.16 400.99 C 246.361,401.057 246.845,401.299 246.979,401.406 C 247.126,401.5 247.341,401.728 247.328,401.997 C 247.301,402.306 247.328,402.964 247.462,403.179 C 247.637,403.46 247.61,403.581 247.355,403.541 C 247.153,403.501 246.63,403.313 246.482,403.232 C 246.334,403.165 246.119,403.031 246.052,402.829 C 245.918,402.413 245.878,401.554 245.958,401.124 C 245.985,400.95 246.066,400.95 246.16,400.99"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 254.35 399.889 C 253.988,399.795 253.679,399.781 253.518,399.781 C 253.357,399.795 253.263,399.875 253.316,399.996 C 253.384,400.13 253.491,400.386 253.531,400.533 C 253.598,400.708 253.666,400.788 253.894,400.802 C 254.31,400.802 255.25,400.721 255.545,400.6 C 255.693,400.533 255.639,400.439 255.478,400.332 C 255.25,400.184 254.74,399.996 254.35,399.889z"/>
<path style="fill: #00ff00; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 254.538 403.299 C 254.337,403.246 253.786,403.219 253.612,403.232 C 253.451,403.246 253.142,403.326 253.021,403.568 C 252.887,403.85 252.524,404.4 252.296,404.521 C 252.001,404.669 251.96,404.79 252.202,404.87 C 252.39,404.951 252.941,405.058 253.102,405.072 C 253.276,405.085 253.518,405.085 253.679,404.938 C 254.028,404.656 254.485,403.93 254.646,403.528 C 254.713,403.366 254.646,403.326 254.538,403.299z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.35 399.889 C 253.988,399.795 253.679,399.781 253.518,399.781 C 253.357,399.795 253.263,399.875 253.316,399.996 C 253.384,400.13 253.491,400.386 253.531,400.533 C 253.598,400.708 253.666,400.788 253.894,400.802 C 254.31,400.802 255.25,400.721 255.545,400.6 C 255.693,400.533 255.639,400.439 255.478,400.332 C 255.25,400.184 254.74,399.996 254.35,399.889"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.538 403.299 C 254.337,403.246 253.786,403.219 253.612,403.232 C 253.451,403.246 253.142,403.326 253.021,403.568 C 252.887,403.85 252.524,404.4 252.296,404.521 C 252.001,404.669 251.96,404.79 252.202,404.87 C 252.39,404.951 252.941,405.058 253.102,405.072 C 253.276,405.085 253.518,405.085 253.679,404.938 C 254.028,404.656 254.485,403.93 254.646,403.528 C 254.713,403.366 254.646,403.326 254.538,403.299"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.095 387.791 L 254.981,384.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.391 387.871 L 255.277,384.662"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 260.688 380.889 C 260.688,380.889 260.178,380.741 259.748,380.634 C 259.372,380.527 258.835,380.379 258.835,380.379"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 L 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 247.1 406.133 C 246.925,406.764 246.267,407.14 245.623,406.965 C 244.978,406.79 244.602,406.133 244.777,405.488 C 244.965,404.844 245.623,404.468 246.267,404.642 C 246.912,404.817 247.288,405.488 247.1,406.133z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 250.148 407.408 C 249.973,408.053 249.302,408.429 248.657,408.254 C 248.026,408.08 247.65,407.408 247.825,406.777 C 247.999,406.133 248.657,405.757 249.302,405.931 C 249.946,406.106 250.322,406.777 250.148,407.408z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 253.424 407.878 C 253.249,408.509 252.578,408.885 251.933,408.711 C 251.302,408.536 250.926,407.878 251.101,407.234 C 251.276,406.589 251.933,406.213 252.578,406.388 C 253.223,406.562 253.598,407.234 253.424,407.878z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 246.375 408.778 C 246.2,409.422 245.529,409.798 244.898,409.61 C 244.253,409.436 243.877,408.778 244.052,408.133 C 244.226,407.489 244.898,407.113 245.529,407.287 C 246.173,407.475 246.549,408.133 246.375,408.778z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 249.409 410.067 C 249.235,410.711 248.577,411.087 247.932,410.899 C 247.288,410.725 246.912,410.067 247.086,409.422 C 247.274,408.778 247.932,408.402 248.577,408.576 C 249.208,408.764 249.597,409.422 249.409,410.067z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 252.699 410.523 C 252.511,411.154 251.853,411.544 251.208,411.356 C 250.564,411.181 250.188,410.523 250.362,409.879 C 250.55,409.234 251.208,408.858 251.853,409.033 C 252.497,409.221 252.873,409.879 252.699,410.523z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 245.649 411.423 C 245.475,412.067 244.804,412.443 244.159,412.269 C 243.528,412.094 243.139,411.423 243.327,410.778 C 243.501,410.147 244.159,409.758 244.804,409.946 C 245.448,410.12 245.824,410.778 245.649,411.423z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 248.684 412.712 C 248.509,413.356 247.838,413.732 247.207,413.558 C 246.563,413.383 246.187,412.712 246.361,412.067 C 246.536,411.423 247.207,411.06 247.838,411.235 C 248.483,411.409 248.859,412.067 248.684,412.712z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 251.96 413.168 C 251.786,413.813 251.114,414.189 250.483,414.001 C 249.839,413.826 249.463,413.168 249.637,412.524 C 249.812,411.879 250.483,411.503 251.114,411.691 C 251.759,411.866 252.135,412.524 251.96,413.168z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 244.911 414.068 C 244.736,414.713 244.065,415.089 243.434,414.914 C 242.789,414.739 242.413,414.082 242.588,413.437 C 242.763,412.793 243.434,412.417 244.065,412.591 C 244.71,412.766 245.086,413.437 244.911,414.082 L 244.911,414.068z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 247.959 415.357 C 247.771,416.002 247.113,416.378 246.469,416.203 C 245.824,416.029 245.448,415.357 245.636,414.726 C 245.811,414.082 246.469,413.706 247.113,413.88 C 247.758,414.055 248.134,414.726 247.959,415.357z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 251.235 415.814 C 251.047,416.458 250.389,416.834 249.745,416.66 C 249.1,416.485 248.724,415.814 248.912,415.169 C 249.087,414.538 249.745,414.162 250.389,414.337 C 251.034,414.511 251.41,415.169 251.235,415.814z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.428 417.156 C 246.415,417.21 246.307,417.237 246.187,417.21 C 246.079,417.17 245.999,417.103 246.025,417.036 C 246.039,416.982 246.146,416.955 246.254,416.982 C 246.361,417.009 246.442,417.089 246.428,417.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.025 417.036 L 245.636,418.419"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.079 417.156 L 245.73,418.445"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.428 417.156 L 246.039,418.526"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.307 417.21 L 245.958,418.499"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.751 397.19 L 248.483,398.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.859 397.217 L 248.59,398.184"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.27 398.707 L 254.001,399.674"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.162 398.68 L 253.894,399.647"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 259.762 386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 259.896 385.683 C 259.023,385.347 258.15,385.038 257.251,384.756"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 249.033 385.871 C 250.819,386.126 252.739,386.529 254.525,387.025 C 256.311,387.522 258.164,388.153 259.829,388.852"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" fill-rule="evenodd" d="M 256.7 398.922 C 256.633,399.164 256.391,399.298 256.15,399.231 L 246.858,396.666 C 246.616,396.599 246.482,396.357 246.549,396.129 L 248.174,390.248 C 248.241,390.006 248.483,389.872 248.711,389.939 L 258.016,392.504 C 258.258,392.571 258.392,392.813 258.325,393.054 L 256.7,398.935 L 256.7,398.922z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.095 387.791 L 254.981,384.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.391 387.871 L 255.277,384.662"/>
</g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="327.424" y1="326.359" x2="444.266" y2="375.437"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="259.522" y1="401.737" x2="439.089" y2="384.112"/>
<g>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 290.594 477.19 C 290.943,475.941 292.38,469.684 292.447,468.811 C 292.514,467.938 292.192,466.851 291.722,466.623 C 291.749,466.314 291.749,466.139 291.749,466.139 C 291.641,466.099 291.521,466.059 291.413,466.005 L 291.453,466.018 C 291.453,466.018 291.776,464.622 291.977,463.655 C 292.34,461.802 292.38,460.862 292.38,460.862 C 292.367,460.607 292.299,460.379 292.071,460.312 L 290.984,460.016 C 290.755,459.949 290.594,460.097 290.446,460.325 C 290.446,460.325 290.017,461.184 289.426,462.957 C 289.104,463.883 288.808,465.065 288.808,465.065 L 288.822,465.065 C 288.177,464.85 287.519,464.662 286.861,464.474 C 285.169,464.004 283.491,463.655 281.799,463.4 C 281.799,463.4 281.719,463.548 281.571,463.83 C 281.061,463.776 280.228,464.555 279.839,465.334 C 279.449,466.112 277.476,472.222 277.126,473.471 C 276.777,474.719 276.119,477.915 275.824,479.499 C 275.529,481.084 275.26,483.85 274.24,487.529 C 273.635,489.704 272.669,492.954 272.158,494.296 C 272.024,494.659 270.963,496.445 272.507,497.062 C 274.025,497.667 276.294,498.311 277.435,498.633 C 278.577,498.942 280.846,499.546 282.457,499.815 C 284.095,500.084 284.109,497.989 284.176,497.613 C 284.431,496.203 285.263,492.913 285.854,490.738 C 286.875,487.046 288.07,484.548 288.634,483.031 C 289.184,481.514 290.245,478.439 290.594,477.19z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 290.594 477.19 C 290.943,475.941 292.38,469.684 292.447,468.811 C 292.514,467.938 292.192,466.851 291.722,466.623 C 291.749,466.314 291.749,466.139 291.749,466.139 C 291.641,466.099 291.521,466.059 291.413,466.005 L 291.453,466.018 C 291.453,466.018 291.776,464.622 291.977,463.655 C 292.34,461.802 292.38,460.862 292.38,460.862 C 292.367,460.607 292.299,460.379 292.071,460.312 L 290.984,460.016 C 290.755,459.949 290.594,460.097 290.446,460.325 C 290.446,460.325 290.017,461.184 289.426,462.957 C 289.104,463.883 288.808,465.065 288.808,465.065 L 288.822,465.065 C 288.177,464.85 287.519,464.662 286.861,464.474 C 285.169,464.004 283.491,463.655 281.799,463.4 C 281.799,463.4 281.719,463.548 281.571,463.83 L 281.571,463.83 C 281.061,463.776 280.228,464.555 279.839,465.334 C 279.449,466.112 277.476,472.222 277.126,473.471 C 276.777,474.719 276.119,477.915 275.824,479.499 C 275.529,481.084 275.26,483.85 274.24,487.529 C 273.635,489.704 272.669,492.954 272.158,494.296 C 272.024,494.659 270.963,496.445 272.507,497.062 C 274.025,497.667 276.294,498.311 277.435,498.633 C 278.577,498.942 280.846,499.546 282.457,499.815 C 284.095,500.084 284.109,497.989 284.176,497.613 C 284.431,496.203 285.263,492.913 285.854,490.738 C 286.875,487.046 288.07,484.548 288.634,483.031 C 289.184,481.514 290.245,478.439 290.594,477.19"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 L 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ecece7" fill-rule="evenodd" d="M 280.336 463.601 C 280.336,463.601 278.12,468.126 276.845,472.719 C 275.341,478.184 275.126,479.996 275.354,482.534 C 275.394,483.058 275.918,483.702 276.495,483.863 C 276.724,483.917 276.992,483.998 277.1,484.024 C 277.22,484.065 277.65,484.159 277.999,484.441 C 278.362,484.723 278.442,484.79 278.657,484.897 C 278.859,485.018 278.899,485.099 279.49,485.26 C 280.08,485.421 280.148,485.381 280.389,485.381 C 280.631,485.394 280.738,485.381 281.195,485.327 C 281.638,485.26 282.054,485.394 282.175,485.421 C 282.283,485.461 282.551,485.528 282.779,485.595 C 283.357,485.757 284.136,485.475 284.444,485.045 C 285.935,482.991 286.687,481.312 288.191,475.847 C 289.453,471.255 289.869,466.233 289.869,466.233 L 280.336,463.601z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 283.021 482.561 C 282.632,483.998 281.141,484.83 279.718,484.441 C 278.281,484.051 277.449,482.561 277.838,481.138 C 278.241,479.701 279.718,478.868 281.141,479.258 C 282.578,479.661 283.41,481.138 283.021,482.561z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 278.066 478.157 C 278.429,478.264 278.711,478.412 278.845,478.492 C 278.979,478.586 279.02,478.707 278.899,478.788 C 278.778,478.868 278.563,479.029 278.442,479.137 C 278.295,479.258 278.201,479.285 277.999,479.164 C 277.637,478.962 276.871,478.412 276.683,478.157 C 276.576,478.022 276.67,477.969 276.871,477.955 C 277.14,477.942 277.677,478.049 278.066,478.157z"/>
<path style="fill: #ff0000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 276.16 480.99 C 276.361,481.057 276.845,481.299 276.979,481.406 C 277.126,481.5 277.341,481.728 277.328,481.997 C 277.301,482.306 277.328,482.964 277.462,483.179 C 277.637,483.46 277.61,483.581 277.355,483.541 C 277.153,483.501 276.63,483.313 276.482,483.232 C 276.334,483.165 276.119,483.031 276.052,482.829 C 275.918,482.413 275.878,481.554 275.958,481.124 C 275.985,480.95 276.066,480.95 276.16,480.99z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 283.021 482.561 C 282.632,483.998 281.141,484.83 279.718,484.441 C 278.281,484.051 277.449,482.561 277.838,481.138 C 278.241,479.701 279.718,478.868 281.141,479.258 C 282.578,479.661 283.41,481.138 283.021,482.561"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.066 478.157 C 278.429,478.264 278.711,478.412 278.845,478.492 C 278.979,478.586 279.02,478.707 278.899,478.788 C 278.778,478.868 278.563,479.029 278.442,479.137 C 278.295,479.258 278.201,479.285 277.999,479.164 C 277.637,478.962 276.871,478.412 276.683,478.157 C 276.576,478.022 276.67,477.969 276.871,477.955 C 277.14,477.942 277.677,478.049 278.066,478.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.16 480.99 C 276.361,481.057 276.845,481.299 276.979,481.406 C 277.126,481.5 277.341,481.728 277.328,481.997 C 277.301,482.306 277.328,482.964 277.462,483.179 C 277.637,483.46 277.61,483.581 277.355,483.541 C 277.153,483.501 276.63,483.313 276.482,483.232 C 276.334,483.165 276.119,483.031 276.052,482.829 C 275.918,482.413 275.878,481.554 275.958,481.124 C 275.985,480.95 276.066,480.95 276.16,480.99"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 284.35 479.889 C 283.988,479.795 283.679,479.781 283.518,479.781 C 283.357,479.795 283.263,479.875 283.316,479.996 C 283.384,480.13 283.491,480.386 283.531,480.533 C 283.598,480.708 283.666,480.788 283.894,480.802 C 284.31,480.802 285.25,480.721 285.545,480.6 C 285.693,480.533 285.639,480.439 285.478,480.332 C 285.25,480.184 284.74,479.996 284.35,479.889z"/>
<path style="fill: #00ff00; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 284.538 483.299 C 284.337,483.246 283.786,483.219 283.612,483.232 C 283.451,483.246 283.142,483.326 283.021,483.568 C 282.887,483.85 282.524,484.4 282.296,484.521 C 282.001,484.669 281.96,484.79 282.202,484.87 C 282.39,484.951 282.941,485.058 283.102,485.072 C 283.276,485.085 283.518,485.085 283.679,484.938 C 284.028,484.656 284.485,483.93 284.646,483.528 C 284.713,483.366 284.646,483.326 284.538,483.299z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.35 479.889 C 283.988,479.795 283.679,479.781 283.518,479.781 C 283.357,479.795 283.263,479.875 283.316,479.996 C 283.384,480.13 283.491,480.386 283.531,480.533 C 283.598,480.708 283.666,480.788 283.894,480.802 C 284.31,480.802 285.25,480.721 285.545,480.6 C 285.693,480.533 285.639,480.439 285.478,480.332 C 285.25,480.184 284.74,479.996 284.35,479.889"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.538 483.299 C 284.337,483.246 283.786,483.219 283.612,483.232 C 283.451,483.246 283.142,483.326 283.021,483.568 C 282.887,483.85 282.524,484.4 282.296,484.521 C 282.001,484.669 281.96,484.79 282.202,484.87 C 282.39,484.951 282.941,485.058 283.102,485.072 C 283.276,485.085 283.518,485.085 283.679,484.938 C 284.028,484.656 284.485,483.93 284.646,483.528 C 284.713,483.366 284.646,483.326 284.538,483.299"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.095 467.791 L 284.981,464.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.391 467.871 L 285.277,464.662"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 290.688 460.889 C 290.688,460.889 290.178,460.741 289.748,460.634 C 289.372,460.527 288.835,460.379 288.835,460.379"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 L 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 277.1 486.133 C 276.925,486.764 276.267,487.14 275.623,486.965 C 274.978,486.79 274.602,486.133 274.777,485.488 C 274.965,484.844 275.623,484.468 276.267,484.642 C 276.912,484.817 277.288,485.488 277.1,486.133z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 280.148 487.408 C 279.973,488.053 279.302,488.429 278.657,488.254 C 278.026,488.08 277.65,487.408 277.825,486.777 C 277.999,486.133 278.657,485.757 279.302,485.931 C 279.946,486.106 280.322,486.777 280.148,487.408z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 283.424 487.878 C 283.249,488.509 282.578,488.885 281.933,488.711 C 281.302,488.536 280.926,487.878 281.101,487.234 C 281.276,486.589 281.933,486.213 282.578,486.388 C 283.223,486.562 283.598,487.234 283.424,487.878z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 276.375 488.778 C 276.2,489.422 275.529,489.798 274.898,489.61 C 274.253,489.436 273.877,488.778 274.052,488.133 C 274.226,487.489 274.898,487.113 275.529,487.287 C 276.173,487.475 276.549,488.133 276.375,488.778z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 279.409 490.067 C 279.235,490.711 278.577,491.087 277.932,490.899 C 277.288,490.725 276.912,490.067 277.086,489.422 C 277.274,488.778 277.932,488.402 278.577,488.576 C 279.208,488.764 279.597,489.422 279.409,490.067z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 282.699 490.523 C 282.511,491.154 281.853,491.544 281.208,491.356 C 280.564,491.181 280.188,490.523 280.362,489.879 C 280.55,489.234 281.208,488.858 281.853,489.033 C 282.497,489.221 282.873,489.879 282.699,490.523z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 275.649 491.423 C 275.475,492.067 274.804,492.443 274.159,492.269 C 273.528,492.094 273.139,491.423 273.327,490.778 C 273.501,490.147 274.159,489.758 274.804,489.946 C 275.448,490.12 275.824,490.778 275.649,491.423z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 278.684 492.712 C 278.509,493.356 277.838,493.732 277.207,493.558 C 276.563,493.383 276.187,492.712 276.361,492.067 C 276.536,491.423 277.207,491.06 277.838,491.235 C 278.483,491.409 278.859,492.067 278.684,492.712z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 281.96 493.168 C 281.786,493.813 281.114,494.189 280.483,494.001 C 279.839,493.826 279.463,493.168 279.637,492.524 C 279.812,491.879 280.483,491.503 281.114,491.691 C 281.759,491.866 282.135,492.524 281.96,493.168z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 274.911 494.068 C 274.736,494.713 274.065,495.089 273.434,494.914 C 272.789,494.739 272.413,494.082 272.588,493.437 C 272.763,492.793 273.434,492.417 274.065,492.591 C 274.71,492.766 275.086,493.437 274.911,494.082 L 274.911,494.068z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 277.959 495.357 C 277.771,496.002 277.113,496.378 276.469,496.203 C 275.824,496.029 275.448,495.357 275.636,494.726 C 275.811,494.082 276.469,493.706 277.113,493.88 C 277.758,494.055 278.134,494.726 277.959,495.357z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 281.235 495.814 C 281.047,496.458 280.389,496.834 279.745,496.66 C 279.1,496.485 278.724,495.814 278.912,495.169 C 279.087,494.538 279.745,494.162 280.389,494.337 C 281.034,494.511 281.41,495.169 281.235,495.814z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.428 497.156 C 276.415,497.21 276.307,497.237 276.187,497.21 C 276.079,497.17 275.999,497.103 276.025,497.036 C 276.039,496.982 276.146,496.955 276.254,496.982 C 276.361,497.009 276.442,497.089 276.428,497.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.025 497.036 L 275.636,498.419"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.079 497.156 L 275.73,498.445"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.428 497.156 L 276.039,498.526"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.307 497.21 L 275.958,498.499"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.751 477.19 L 278.483,478.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.859 477.217 L 278.59,478.184"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.27 478.707 L 284.001,479.674"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.162 478.68 L 283.894,479.647"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 289.762 466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 289.896 465.683 C 289.023,465.347 288.15,465.038 287.251,464.756"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 279.033 465.871 C 280.819,466.126 282.739,466.529 284.525,467.025 C 286.311,467.522 288.164,468.153 289.829,468.852"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" fill-rule="evenodd" d="M 286.7 478.922 C 286.633,479.164 286.391,479.298 286.15,479.231 L 276.858,476.666 C 276.616,476.599 276.482,476.357 276.549,476.129 L 278.174,470.248 C 278.241,470.006 278.483,469.872 278.711,469.939 L 288.016,472.504 C 288.258,472.571 288.392,472.813 288.325,473.054 L 286.7,478.935 L 286.7,478.922z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.095 467.791 L 284.981,464.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.391 467.871 L 285.277,464.662"/>
</g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="290.438" y1="479.005" x2="440.053" y2="393.475"/>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 714.565 323.746 L 714.565,310.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 714.565 323.53 L 714.565,314.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 714.954 311.638 L 714.135,311.638 L 714.135,310 L 714.954,310 L 714.954,311.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 714.954 311.638 L 714.135,311.638 L 714.135,310 L 714.954,310 L 714.954,311.638"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 694.709 323.746 L 694.709,310.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 694.709 323.53 L 694.709,314.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 695.098 311.638 L 694.279,311.638 L 694.279,310 L 695.098,310 L 695.098,311.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 695.098 311.638 L 694.279,311.638 L 694.279,310 L 695.098,310 L 695.098,311.638"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 720.119 325.447 C 720.119,328.681 713.377,331.303 705.06,331.303 C 696.742,331.303 690,328.681 690,325.447 L 690,334.025 C 690,337.26 696.742,339.882 705.06,339.882 C 713.377,339.882 720.119,337.26 720.119,334.025 L 720.119,325.447z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 720.119 325.447 C 720.119,328.681 713.377,331.303 705.06,331.303 C 696.742,331.303 690,328.681 690,325.447 L 690,334.025 C 690,337.26 696.742,339.882 705.06,339.882 C 713.377,339.882 720.119,337.26 720.119,334.025 L 720.119,325.447"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 705.06 331.303 C 713.377,331.303 720.119,328.681 720.119,325.447 C 720.119,322.212 713.377,319.59 705.06,319.59 C 696.742,319.59 690,322.212 690,325.447 C 690,328.681 696.742,331.303 705.06,331.303z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 705.06 331.303 C 713.377,331.303 720.119,328.681 720.119,325.447 C 720.119,322.212 713.377,319.59 705.06,319.59 C 696.742,319.59 690,322.212 690,325.447 C 690,328.681 696.742,331.303 705.06,331.303"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 701.621 323.157 L 702.864,325.022 L 698.163,326.108 L 699.19,325.254 L 691.923,324.012 L 693.746,322.645 L 700.758,323.832 L 701.621,323.157z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 708.237 327.68 L 707.388,325.757 L 711.629,324.91 L 710.894,325.568 L 717.962,326.776 L 716.268,328.133 L 709.24,326.813 L 708.237,327.68z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 705.918 322.138 L 710.668,320.838 L 710.724,322.874 L 709.538,322.647 L 707.218,324.57 L 705.006,324.247 L 707.399,322.367 L 705.918,322.138z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 703.882 329.434 L 699.359,330.281 L 699.19,328.19 L 700.489,328.472 L 702.979,326.345 L 705.183,326.719 L 702.525,329.037 L 703.882,329.434z"/>
</g>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 774.565 453.746 L 774.565,440.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 774.565 453.53 L 774.565,444.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 774.954 441.638 L 774.135,441.638 L 774.135,440 L 774.954,440 L 774.954,441.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 774.954 441.638 L 774.135,441.638 L 774.135,440 L 774.954,440 L 774.954,441.638"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 754.709 453.746 L 754.709,440.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 754.709 453.53 L 754.709,444.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 755.098 441.638 L 754.279,441.638 L 754.279,440 L 755.098,440 L 755.098,441.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 755.098 441.638 L 754.279,441.638 L 754.279,440 L 755.098,440 L 755.098,441.638"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 780.119 455.447 C 780.119,458.681 773.377,461.303 765.06,461.303 C 756.742,461.303 750,458.681 750,455.447 L 750,464.025 C 750,467.26 756.742,469.882 765.06,469.882 C 773.377,469.882 780.119,467.26 780.119,464.025 L 780.119,455.447z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 780.119 455.447 C 780.119,458.681 773.377,461.303 765.06,461.303 C 756.742,461.303 750,458.681 750,455.447 L 750,464.025 C 750,467.26 756.742,469.882 765.06,469.882 C 773.377,469.882 780.119,467.26 780.119,464.025 L 780.119,455.447"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 765.06 461.303 C 773.377,461.303 780.119,458.681 780.119,455.447 C 780.119,452.212 773.377,449.59 765.06,449.59 C 756.742,449.59 750,452.212 750,455.447 C 750,458.681 756.742,461.303 765.06,461.303z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 765.06 461.303 C 773.377,461.303 780.119,458.681 780.119,455.447 C 780.119,452.212 773.377,449.59 765.06,449.59 C 756.742,449.59 750,452.212 750,455.447 C 750,458.681 756.742,461.303 765.06,461.303"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 761.621 453.157 L 762.864,455.022 L 758.163,456.108 L 759.19,455.254 L 751.923,454.012 L 753.746,452.645 L 760.758,453.832 L 761.621,453.157z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 768.237 457.68 L 767.388,455.757 L 771.629,454.91 L 770.894,455.568 L 777.962,456.776 L 776.268,458.133 L 769.24,456.813 L 768.237,457.68z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 765.918 452.138 L 770.668,450.838 L 770.724,452.874 L 769.538,452.647 L 767.218,454.57 L 765.006,454.247 L 767.399,452.367 L 765.918,452.138z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 763.882 459.434 L 759.359,460.281 L 759.19,458.19 L 760.489,458.472 L 762.979,456.345 L 765.183,456.719 L 762.525,459.037 L 763.882,459.434z"/>
</g>
<text font-size="21.4489" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="270" y="430">
<tspan x="270" y="430">Clients</tspan>
</text>
</g>
<g id="to-clients">
<g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #800080" x1="440" y1="380" x2="352" y2="380"/>
<polygon style="fill: #800080; fill-opacity: 1; stroke-opacity: 1; stroke-width: 4; stroke: #800080" fill-rule="evenodd" points="352,375 342,380 352,385 "/>
</g>
<rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 20; stroke: #000000" x="220" y="290" width="270" height="220" rx="0" ry="0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 99 KiB

View File

@ -0,0 +1,232 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
<svg width="29cm" height="12cm" viewBox="239 289 572 223" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Background">
<g>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 713.614 347.58 L 713.54,345.719 L 713.283,343.858 L 712.804,342.03 L 712.142,340.201 L 711.258,338.34 L 710.264,336.545 L 709.013,334.781 L 707.614,333.051 L 706.104,331.321 L 704.337,329.688 L 702.46,328.056 L 700.398,326.521 L 698.153,324.986 L 695.797,323.55 L 693.294,322.146 L 690.606,320.84 L 687.845,319.566 L 684.974,318.391 L 681.955,317.281 L 678.826,316.269 L 675.587,315.289 L 672.237,314.473 L 668.887,313.657 L 665.39,312.971 L 661.819,312.351 L 658.248,311.828 L 654.604,311.404 L 650.922,311.11 L 647.204,310.849 L 643.45,310.718 L 639.695,310.653 L 639.695,310.653 L 635.977,310.718 L 632.185,310.849 L 628.504,311.11 L 624.822,311.404 L 621.141,311.828 L 617.57,312.351 L 614,312.971 L 610.539,313.657 L 607.116,314.473 L 603.839,315.289 L 600.6,316.269 L 597.508,317.281 L 594.452,318.391 L 591.581,319.566 L 588.783,320.84 L 586.096,322.146 L 583.592,323.55 L 581.236,324.986 L 578.991,326.521 L 576.929,328.056 L 575.052,329.688 L 573.322,331.321 L 571.739,333.051 L 570.414,334.781 L 569.162,336.545 L 568.131,338.34 L 567.248,340.201 L 566.659,342.03 L 566.18,343.858 L 565.849,345.719 L 565.812,347.58 L 565.812,347.58 L 565.849,349.474 L 566.18,351.335 L 566.659,353.196 L 567.248,355.024 L 568.131,356.853 L 569.162,358.649 L 570.414,360.412 L 571.739,362.175 L 573.322,363.873 L 575.052,365.505 L 576.929,367.138 L 578.991,368.705 L 581.236,370.207 L 583.592,371.643 L 586.096,373.047 L 588.783,374.386 L 591.581,375.594 L 594.452,376.835 L 597.508,377.945 L 600.6,378.957 L 603.839,379.871 L 607.116,380.753 L 610.539,381.536 L 614,382.222 L 617.57,382.842 L 621.141,383.365 L 624.822,383.757 L 628.504,384.083 L 632.185,384.377 L 635.977,384.475 L 639.695,384.508 L 639.695,384.508 L 643.45,384.475 L 647.204,384.377 L 650.922,384.083 L 654.604,383.757 L 658.248,383.365 L 661.819,382.842 L 665.39,382.222 L 668.887,381.536 L 672.237,380.753 L 675.587,379.871 L 678.826,378.957 L 681.955,377.945 L 684.974,376.835 L 687.845,375.594 L 690.606,374.386 L 693.294,373.047 L 695.797,371.643 L 698.153,370.207 L 700.398,368.705 L 702.46,367.138 L 704.337,365.505 L 706.104,363.873 L 707.614,362.175 L 709.013,360.412 L 710.264,358.649 L 711.258,356.853 L 712.142,355.024 L 712.804,353.196 L 713.283,351.335 L 713.54,349.474 L 713.614,347.58z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 597.765 366.974 L 597.692,365.113 L 597.434,363.252 L 597.139,361.424 L 596.624,359.563 L 595.961,357.734 L 595.152,355.939 L 594.194,354.176 L 593.164,352.445 L 591.986,350.715 L 590.66,349.082 L 589.225,347.45 L 587.642,345.915 L 585.875,344.381 L 584.071,342.944 L 582.157,341.54 L 580.095,340.234 L 578.034,338.961 L 575.751,337.785 L 573.469,336.675 L 571.039,335.696 L 568.61,334.683 L 566.07,333.802 L 563.419,333.051 L 560.769,332.365 L 558.045,331.745 L 555.284,331.223 L 552.486,330.798 L 549.651,330.504 L 546.854,330.243 L 543.982,330.08 L 541.111,330.047 L 541.111,330.047 L 538.239,330.08 L 535.368,330.243 L 532.497,330.504 L 529.699,330.798 L 526.864,331.223 L 524.104,331.745 L 521.416,332.365 L 518.766,333.051 L 516.152,333.802 L 513.612,334.683 L 511.109,335.696 L 508.753,336.675 L 506.397,337.785 L 504.188,338.961 L 502.09,340.234 L 500.028,341.54 L 498.114,342.944 L 496.273,344.381 L 494.543,345.915 L 492.997,347.45 L 491.524,349.082 L 490.236,350.715 L 489.021,352.445 L 487.954,354.176 L 487.033,355.939 L 486.223,357.734 L 485.561,359.563 L 485.082,361.424 L 484.714,363.252 L 484.493,365.113 L 484.42,366.974 L 484.42,366.974 L 484.493,368.868 L 484.714,370.729 L 485.082,372.59 L 485.561,374.419 L 486.223,376.247 L 487.033,378.043 L 487.954,379.806 L 489.021,381.536 L 490.236,383.267 L 491.524,384.899 L 492.997,386.532 L 494.543,388.066 L 496.273,389.601 L 498.114,391.038 L 500.028,392.442 L 502.09,393.748 L 504.188,394.988 L 506.397,396.164 L 508.753,397.339 L 511.109,398.351 L 513.612,399.265 L 516.152,400.18 L 518.766,400.931 L 521.416,401.616 L 524.104,402.237 L 526.864,402.726 L 529.699,403.151 L 532.497,403.477 L 535.368,403.771 L 538.239,403.869 L 541.111,403.902 L 541.111,403.902 L 543.982,403.869 L 546.854,403.771 L 549.651,403.477 L 552.486,403.151 L 555.284,402.726 L 558.045,402.237 L 560.769,401.616 L 563.419,400.931 L 566.07,400.18 L 568.61,399.265 L 571.039,398.351 L 573.469,397.339 L 575.751,396.164 L 578.034,394.988 L 580.095,393.748 L 582.157,392.442 L 584.071,391.038 L 585.875,389.601 L 587.642,388.066 L 589.225,386.532 L 590.66,384.899 L 591.986,383.267 L 593.164,381.536 L 594.194,379.806 L 595.152,378.043 L 595.961,376.247 L 596.624,374.419 L 597.139,372.59 L 597.434,370.729 L 597.692,368.868 L 597.765,366.974z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 526.312 404.685 L 526.275,403.151 L 526.165,401.616 L 525.907,400.082 L 525.576,398.58 L 525.097,397.143 L 524.545,395.641 L 523.956,394.172 L 523.257,392.768 L 522.447,391.364 L 521.527,390.025 L 520.533,388.752 L 519.465,387.446 L 518.324,386.205 L 517.109,384.997 L 515.784,383.887 L 514.422,382.842 L 513.023,381.765 L 511.55,380.818 L 509.968,379.904 L 508.348,379.055 L 506.691,378.304 L 504.961,377.586 L 503.231,376.965 L 501.427,376.41 L 499.586,375.888 L 497.746,375.496 L 495.868,375.104 L 493.917,374.876 L 492.003,374.68 L 490.126,374.582 L 488.175,374.517 L 488.175,374.517 L 486.223,374.582 L 484.272,374.68 L 482.358,374.876 L 480.481,375.104 L 478.566,375.496 L 476.689,375.888 L 474.885,376.41 L 473.118,376.965 L 471.314,377.586 L 469.584,378.304 L 467.928,379.055 L 466.308,379.904 L 464.762,380.818 L 463.252,381.765 L 461.854,382.842 L 460.492,383.887 L 459.203,384.997 L 457.951,386.205 L 456.81,387.446 L 455.743,388.752 L 454.749,390.025 L 453.902,391.364 L 453.092,392.768 L 452.393,394.172 L 451.73,395.641 L 451.178,397.143 L 450.773,398.58 L 450.442,400.082 L 450.147,401.616 L 450,403.151 L 450,404.685 L 450,404.685 L 450,406.155 L 450.147,407.689 L 450.442,409.191 L 450.773,410.693 L 451.178,412.227 L 451.73,413.664 L 452.393,415.101 L 453.092,416.537 L 453.902,417.941 L 454.749,419.28 L 455.743,420.586 L 456.81,421.859 L 457.951,423.1 L 459.203,424.275 L 460.492,425.385 L 461.854,426.463 L 463.252,427.54 L 464.762,428.455 L 466.308,429.369 L 467.928,430.218 L 469.584,431.001 L 471.314,431.72 L 473.118,432.34 L 474.885,432.895 L 476.689,433.385 L 478.566,433.809 L 480.481,434.168 L 482.358,434.462 L 484.272,434.625 L 486.223,434.723 L 488.175,434.789 L 488.175,434.789 L 490.126,434.723 L 492.003,434.625 L 493.917,434.462 L 495.868,434.168 L 497.746,433.809 L 499.586,433.385 L 501.427,432.895 L 503.231,432.34 L 504.961,431.72 L 506.691,431.001 L 508.348,430.218 L 509.968,429.369 L 511.55,428.455 L 513.023,427.54 L 514.422,426.463 L 515.784,425.385 L 517.109,424.275 L 518.324,423.1 L 519.465,421.859 L 520.533,420.586 L 521.527,419.28 L 522.447,417.941 L 523.257,416.537 L 523.956,415.101 L 524.545,413.664 L 525.097,412.227 L 525.576,410.693 L 525.907,409.191 L 526.165,407.689 L 526.275,406.155 L 526.312,404.685z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 587.936 433.711 L 587.9,432.046 L 587.642,430.414 L 587.237,428.748 L 586.758,427.116 L 586.096,425.516 L 585.323,423.916 L 584.329,422.349 L 583.298,420.814 L 582.046,419.378 L 580.721,417.876 L 579.212,416.439 L 577.629,415.101 L 575.935,413.762 L 574.095,412.423 L 572.144,411.215 L 570.082,410.04 L 567.91,408.962 L 565.628,407.885 L 563.309,406.938 L 560.879,405.991 L 558.339,405.175 L 555.762,404.391 L 553.112,403.706 L 550.424,403.085 L 547.663,402.563 L 544.829,402.139 L 542.031,401.747 L 539.16,401.42 L 536.288,401.224 L 533.38,401.094 L 530.435,401.061 L 530.435,401.061 L 527.527,401.094 L 524.656,401.224 L 521.711,401.42 L 518.876,401.747 L 516.005,402.139 L 513.244,402.563 L 510.483,403.085 L 507.759,403.706 L 505.108,404.391 L 502.568,405.175 L 500.028,405.991 L 497.599,406.938 L 495.243,407.885 L 492.997,408.962 L 490.825,410.04 L 488.764,411.215 L 486.812,412.423 L 484.972,413.762 L 483.242,415.101 L 481.659,416.439 L 480.149,417.876 L 478.787,419.378 L 477.609,420.814 L 476.542,422.349 L 475.548,423.916 L 474.738,425.516 L 474.149,427.116 L 473.597,428.748 L 473.229,430.414 L 473.008,432.046 L 472.934,433.711 L 472.934,433.711 L 473.008,435.344 L 473.229,437.009 L 473.597,438.641 L 474.149,440.274 L 474.738,441.874 L 475.548,443.474 L 476.542,445.073 L 477.609,446.608 L 478.787,448.077 L 480.149,449.514 L 481.659,450.95 L 483.242,452.322 L 484.972,453.693 L 486.812,454.999 L 488.764,456.207 L 490.825,457.35 L 492.997,458.46 L 495.243,459.505 L 497.599,460.484 L 500.028,461.431 L 502.568,462.247 L 505.108,463.031 L 507.759,463.684 L 510.483,464.304 L 513.244,464.827 L 516.005,465.284 L 518.876,465.708 L 521.711,466.002 L 524.656,466.198 L 527.527,466.329 L 530.435,466.329 L 530.435,466.329 L 533.38,466.329 L 536.288,466.198 L 539.16,466.002 L 542.031,465.708 L 544.829,465.284 L 547.663,464.827 L 550.424,464.304 L 553.112,463.684 L 555.762,463.031 L 558.339,462.247 L 560.879,461.431 L 563.309,460.484 L 565.628,459.505 L 567.91,458.46 L 570.082,457.35 L 572.144,456.207 L 574.095,454.999 L 575.935,453.693 L 577.629,452.322 L 579.212,450.95 L 580.721,449.514 L 582.046,448.077 L 583.298,446.608 L 584.329,445.073 L 585.323,443.474 L 586.096,441.874 L 586.758,440.274 L 587.237,438.641 L 587.642,437.009 L 587.9,435.344 L 587.936,433.711z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 725.946 450.591 L 725.799,448.6 L 725.505,446.608 L 724.916,444.682 L 724.142,442.755 L 723.185,440.829 L 722.007,438.968 L 720.608,437.139 L 718.989,435.278 L 717.148,433.483 L 715.16,431.752 L 712.915,430.087 L 710.559,428.455 L 707.982,426.855 L 705.258,425.32 L 702.276,423.851 L 699.257,422.48 L 696.018,421.141 L 692.631,419.9 L 689.171,418.757 L 685.489,417.68 L 681.771,416.668 L 677.906,415.786 L 673.967,414.937 L 669.881,414.219 L 665.795,413.566 L 661.598,413.044 L 657.401,412.587 L 653.058,412.26 L 648.824,412.032 L 644.443,411.836 L 640.1,411.836 L 640.1,411.836 L 635.756,411.836 L 631.412,412.032 L 627.105,412.26 L 622.835,412.587 L 618.564,413.044 L 614.405,413.566 L 610.282,414.219 L 606.269,414.937 L 602.256,415.786 L 598.465,416.668 L 594.673,417.68 L 591.065,418.757 L 587.568,419.9 L 584.218,421.141 L 580.979,422.48 L 577.887,423.851 L 574.978,425.32 L 572.254,426.855 L 569.641,428.455 L 567.248,430.087 L 565.039,431.752 L 563.088,433.483 L 561.247,435.278 L 559.628,437.139 L 558.229,438.968 L 557.014,440.829 L 556.057,442.755 L 555.247,444.682 L 554.695,446.608 L 554.363,448.6 L 554.253,450.591 L 554.253,450.591 L 554.363,452.485 L 554.695,454.477 L 555.247,456.403 L 556.057,458.362 L 557.014,460.288 L 558.229,462.149 L 559.628,463.978 L 561.247,465.839 L 563.088,467.635 L 565.039,469.365 L 567.248,471.03 L 569.641,472.728 L 572.254,474.263 L 574.978,475.797 L 577.887,477.234 L 580.979,478.67 L 584.218,479.976 L 587.568,481.217 L 591.065,482.36 L 594.673,483.47 L 598.465,484.417 L 602.256,485.331 L 606.269,486.147 L 610.282,486.866 L 614.405,487.551 L 618.564,488.041 L 622.835,488.498 L 627.105,488.857 L 631.412,489.086 L 635.756,489.282 L 640.1,489.282 L 640.1,489.282 L 644.443,489.282 L 648.824,489.086 L 653.058,488.857 L 657.401,488.498 L 661.598,488.041 L 665.795,487.551 L 669.881,486.866 L 673.967,486.147 L 677.906,485.331 L 681.771,484.417 L 685.489,483.47 L 689.171,482.36 L 692.631,481.217 L 696.018,479.976 L 699.257,478.67 L 702.276,477.234 L 705.258,475.797 L 707.982,474.263 L 710.559,472.728 L 712.915,471.03 L 715.16,469.365 L 717.148,467.635 L 718.989,465.839 L 720.608,463.978 L 722.007,462.149 L 723.185,460.288 L 724.142,458.362 L 724.916,456.403 L 725.505,454.477 L 725.799,452.485 L 725.946,450.591z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 773.582 361.228 L 773.545,359.791 L 773.324,358.289 L 772.919,356.82 L 772.477,355.384 L 771.815,353.98 L 771.078,352.543 L 770.158,351.139 L 769.091,349.768 L 767.949,348.462 L 766.698,347.123 L 765.262,345.85 L 763.716,344.609 L 762.096,343.466 L 760.292,342.291 L 758.452,341.213 L 756.427,340.201 L 754.366,339.157 L 752.23,338.242 L 749.948,337.393 L 747.629,336.577 L 745.273,335.826 L 742.77,335.141 L 740.23,334.52 L 737.653,333.965 L 735.002,333.475 L 732.352,333.149 L 729.628,332.757 L 726.903,332.496 L 724.106,332.333 L 721.345,332.235 L 718.547,332.169 L 718.547,332.169 L 715.712,332.235 L 712.951,332.333 L 710.154,332.496 L 707.43,332.757 L 704.742,333.149 L 702.055,333.475 L 699.441,333.965 L 696.828,334.52 L 694.288,335.141 L 691.784,335.826 L 689.392,336.577 L 687.109,337.393 L 684.827,338.242 L 682.692,339.157 L 680.63,340.201 L 678.642,341.213 L 676.765,342.291 L 674.961,343.466 L 673.341,344.609 L 671.832,345.85 L 670.359,347.123 L 669.108,348.462 L 667.967,349.768 L 666.899,351.139 L 665.979,352.543 L 665.243,353.98 L 664.617,355.384 L 664.101,356.82 L 663.77,358.289 L 663.586,359.791 L 663.476,361.228 L 663.476,361.228 L 663.586,362.697 L 663.77,364.167 L 664.101,365.603 L 664.617,367.072 L 665.243,368.509 L 665.979,369.913 L 666.899,371.317 L 667.967,372.688 L 669.108,374.059 L 670.359,375.333 L 671.832,376.574 L 673.341,377.847 L 674.961,379.022 L 676.765,380.132 L 678.642,381.243 L 680.63,382.287 L 682.692,383.267 L 684.827,384.181 L 687.109,385.095 L 689.392,385.911 L 691.784,386.63 L 694.288,387.348 L 696.828,387.936 L 699.441,388.458 L 702.055,388.981 L 704.742,389.372 L 707.43,389.699 L 710.154,389.993 L 712.951,390.123 L 715.712,390.287 L 718.547,390.287 L 718.547,390.287 L 721.345,390.287 L 724.106,390.123 L 726.903,389.993 L 729.628,389.699 L 732.352,389.372 L 735.002,388.981 L 737.653,388.458 L 740.23,387.936 L 742.77,387.348 L 745.273,386.63 L 747.629,385.911 L 749.948,385.095 L 752.23,384.181 L 754.366,383.267 L 756.427,382.287 L 758.452,381.243 L 760.292,380.132 L 762.096,379.022 L 763.716,377.847 L 765.262,376.574 L 766.698,375.333 L 767.949,374.059 L 769.091,372.688 L 770.158,371.317 L 771.078,369.913 L 771.815,368.509 L 772.477,367.072 L 772.919,365.603 L 773.324,364.167 L 773.545,362.697 L 773.582,361.228z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 789.19 398.547 L 789.08,397.078 L 788.932,395.609 L 788.564,394.172 L 788.086,392.735 L 787.423,391.266 L 786.687,389.895 L 785.803,388.458 L 784.736,387.12 L 783.595,385.748 L 782.343,384.475 L 780.907,383.169 L 779.361,381.961 L 777.778,380.818 L 775.974,379.61 L 774.134,378.565 L 772.22,377.488 L 770.158,376.508 L 767.949,375.594 L 765.777,374.712 L 763.458,373.896 L 761.102,373.145 L 758.636,372.46 L 756.133,371.872 L 753.556,371.317 L 750.905,370.827 L 748.255,370.435 L 745.567,370.109 L 742.806,369.815 L 740.082,369.684 L 737.321,369.586 L 734.56,369.521 L 734.56,369.521 L 731.763,369.586 L 729.039,369.684 L 726.278,369.815 L 723.59,370.109 L 720.903,370.435 L 718.216,370.827 L 715.602,371.317 L 713.062,371.872 L 710.522,372.46 L 708.055,373.145 L 705.699,373.896 L 703.38,374.712 L 701.135,375.594 L 699.036,376.508 L 696.975,377.488 L 694.95,378.565 L 693.11,379.61 L 691.379,380.818 L 689.796,381.961 L 688.25,383.169 L 686.851,384.475 L 685.526,385.748 L 684.385,387.12 L 683.391,388.458 L 682.471,389.895 L 681.661,391.266 L 681.072,392.735 L 680.593,394.172 L 680.225,395.609 L 680.004,397.078 L 679.968,398.547 L 679.968,398.547 L 680.004,400.016 L 680.225,401.518 L 680.593,402.955 L 681.072,404.391 L 681.661,405.828 L 682.471,407.232 L 683.391,408.669 L 684.385,410.007 L 685.526,411.313 L 686.851,412.652 L 688.25,413.893 L 689.796,415.133 L 691.379,416.309 L 693.11,417.451 L 694.95,418.562 L 696.975,419.574 L 699.036,420.586 L 701.135,421.5 L 703.38,422.349 L 705.699,423.165 L 708.055,423.916 L 710.522,424.602 L 713.062,425.222 L 715.602,425.81 L 718.216,426.3 L 720.903,426.626 L 723.59,427.018 L 726.278,427.247 L 729.039,427.442 L 731.763,427.54 L 734.56,427.573 L 734.56,427.573 L 737.321,427.54 L 740.082,427.442 L 742.806,427.247 L 745.567,427.018 L 748.255,426.626 L 750.905,426.3 L 753.556,425.81 L 756.133,425.222 L 758.636,424.602 L 761.102,423.916 L 763.458,423.165 L 765.777,422.349 L 767.949,421.5 L 770.158,420.586 L 772.22,419.574 L 774.134,418.562 L 775.974,417.451 L 777.778,416.309 L 779.361,415.133 L 780.907,413.893 L 782.343,412.652 L 783.595,411.313 L 784.736,410.007 L 785.803,408.669 L 786.687,407.232 L 787.423,405.828 L 788.086,404.391 L 788.564,402.955 L 788.932,401.518 L 789.08,400.016 L 789.19,398.547z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 778.515 429.401 L 778.441,427.018 L 778.22,424.569 L 777.926,422.218 L 777.447,419.802 L 776.821,417.451 L 776.048,415.133 L 775.165,412.848 L 774.097,410.595 L 772.956,408.407 L 771.741,406.252 L 770.342,404.163 L 768.796,402.171 L 767.176,400.212 L 765.409,398.351 L 763.569,396.555 L 761.654,394.825 L 759.593,393.192 L 757.495,391.723 L 755.249,390.287 L 752.967,388.981 L 750.611,387.74 L 748.218,386.63 L 745.715,385.585 L 743.175,384.671 L 740.524,383.887 L 737.91,383.267 L 735.186,382.679 L 732.499,382.255 L 729.812,381.961 L 727.087,381.765 L 724.327,381.732 L 724.327,381.732 L 721.566,381.765 L 718.841,381.961 L 716.081,382.255 L 713.393,382.679 L 710.743,383.267 L 708.055,383.887 L 705.479,384.671 L 702.939,385.585 L 700.435,386.63 L 697.969,387.74 L 695.613,388.981 L 693.33,390.287 L 691.159,391.723 L 688.987,393.192 L 686.962,394.825 L 685.011,396.555 L 683.17,398.351 L 681.44,400.212 L 679.783,402.171 L 678.311,404.163 L 676.912,406.252 L 675.624,408.407 L 674.482,410.595 L 673.489,412.848 L 672.605,415.133 L 671.832,417.451 L 671.206,419.802 L 670.728,422.218 L 670.359,424.569 L 670.139,427.018 L 670.065,429.401 L 670.065,429.401 L 670.139,431.818 L 670.359,434.266 L 670.728,436.617 L 671.206,439.001 L 671.832,441.417 L 672.605,443.702 L 673.489,445.955 L 674.482,448.241 L 675.624,450.395 L 676.912,452.55 L 678.311,454.673 L 679.783,456.664 L 681.44,458.591 L 683.17,460.484 L 685.011,462.28 L 686.962,463.978 L 688.987,465.61 L 691.159,467.145 L 693.33,468.549 L 695.613,469.888 L 697.969,471.096 L 700.435,472.238 L 702.939,473.25 L 705.479,474.165 L 708.055,474.916 L 710.743,475.601 L 713.393,476.124 L 716.081,476.548 L 718.841,476.842 L 721.566,477.038 L 724.327,477.136 L 724.327,477.136 L 727.087,477.038 L 729.812,476.842 L 732.499,476.548 L 735.186,476.124 L 737.91,475.601 L 740.524,474.916 L 743.175,474.165 L 745.715,473.25 L 748.218,472.238 L 750.611,471.096 L 752.967,469.888 L 755.249,468.549 L 757.495,467.145 L 759.593,465.61 L 761.654,463.978 L 763.569,462.28 L 765.409,460.484 L 767.176,458.591 L 768.796,456.664 L 770.342,454.673 L 771.741,452.55 L 772.956,450.395 L 774.097,448.241 L 775.165,445.955 L 776.048,443.702 L 776.821,441.417 L 777.447,439.001 L 777.926,436.617 L 778.22,434.266 L 778.441,431.818 L 778.515,429.401z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 731.689 400.702 L 731.542,398.253 L 731.1,395.902 L 730.401,393.454 L 729.443,391.103 L 728.192,388.752 L 726.646,386.401 L 724.842,384.116 L 722.744,381.863 L 720.461,379.675 L 717.884,377.553 L 715.013,375.431 L 711.958,373.406 L 708.644,371.513 L 705.11,369.619 L 701.356,367.791 L 697.453,366.093 L 693.294,364.493 L 688.95,362.958 L 684.495,361.522 L 679.82,360.183 L 674.998,358.975 L 670.065,357.832 L 665.022,356.82 L 659.868,355.939 L 654.567,355.188 L 649.192,354.502 L 643.781,353.98 L 638.296,353.555 L 632.774,353.196 L 627.215,353.033 L 621.583,352.968 L 621.583,352.968 L 616.024,353.033 L 610.466,353.196 L 604.944,353.555 L 599.422,353.98 L 594.01,354.502 L 588.636,355.188 L 583.372,355.939 L 578.218,356.82 L 573.101,357.832 L 568.242,358.975 L 563.419,360.183 L 558.707,361.522 L 554.216,362.958 L 549.946,364.493 L 545.749,366.093 L 541.81,367.791 L 538.129,369.619 L 534.558,371.513 L 531.245,373.406 L 528.227,375.431 L 525.355,377.553 L 522.815,379.675 L 520.496,381.863 L 518.361,384.116 L 516.594,386.401 L 515.084,388.752 L 513.759,391.103 L 512.802,393.454 L 512.103,395.902 L 511.661,398.253 L 511.55,400.702 L 511.55,400.702 L 511.661,403.085 L 512.103,405.502 L 512.802,407.885 L 513.759,410.301 L 515.084,412.652 L 516.594,414.97 L 518.361,417.223 L 520.496,419.508 L 522.815,421.729 L 525.355,423.851 L 528.227,425.908 L 531.245,427.932 L 534.558,429.891 L 538.129,431.752 L 541.81,433.548 L 545.749,435.278 L 549.946,436.911 L 554.216,438.445 L 558.707,439.882 L 563.419,441.155 L 568.242,442.429 L 573.101,443.506 L 578.218,444.518 L 583.372,445.433 L 588.636,446.216 L 594.01,446.869 L 599.422,447.424 L 604.944,447.849 L 610.466,448.143 L 616.024,448.371 L 621.583,448.404 L 621.583,448.404 L 627.215,448.371 L 632.774,448.143 L 638.296,447.849 L 643.781,447.424 L 649.192,446.869 L 654.567,446.216 L 659.868,445.433 L 665.022,444.518 L 670.065,443.506 L 674.998,442.429 L 679.82,441.155 L 684.495,439.882 L 688.95,438.445 L 693.294,436.911 L 697.453,435.278 L 701.356,433.548 L 705.11,431.752 L 708.644,429.891 L 711.958,427.932 L 715.013,425.908 L 717.884,423.851 L 720.461,421.729 L 722.744,419.508 L 724.842,417.223 L 726.646,414.97 L 728.192,412.652 L 729.443,410.301 L 730.401,407.885 L 731.1,405.502 L 731.542,403.085 L 731.689,400.702z"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 640.541 347.254 L 713.393,339.026 L 712.473,337.23 L 711.332,335.402 L 710.08,333.606 L 708.571,331.876 L 706.951,330.21 L 705.11,328.513 L 703.196,326.913 L 700.987,325.378 L 698.742,323.876 L 696.312,322.44 L 693.699,321.068 L 690.974,319.795 L 688.103,318.554 L 685.121,317.346 L 682.029,316.269 L 678.826,315.289 L 675.587,314.31 L 672.163,313.494 L 668.703,312.743 L 665.206,312.057 L 661.561,311.469 L 657.917,311.012 L 654.236,310.588 L 650.518,310.294 L 646.763,310.098 L 642.971,310 L 639.216,310 L 635.424,310.098 L 631.633,310.229 L 627.951,310.49 L 624.233,310.914 L 620.552,311.339 L 616.908,311.926 L 613.337,312.547 L 609.877,313.265 L 606.49,314.081 L 603.14,314.995 L 599.9,315.942 L 596.845,317.02 L 593.826,318.163 L 590.918,319.371 L 588.157,320.644 L 585.544,322.015 L 583.077,323.452 L 580.721,324.921 L 578.512,326.456 L 576.451,328.056 L 574.573,329.688 L 572.954,331.418 L 571.371,333.084 L 570.009,334.879 L 568.867,336.642 L 567.91,338.471 L 567.1,340.299 L 640.541,347.254z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 713.393 338.961 L 712.436,337.132 L 711.332,335.336 L 710.043,333.541 L 708.571,331.843 L 706.877,330.145 L 705.074,328.48 L 703.123,326.88 L 700.914,325.346 L 698.631,323.876 L 696.275,322.44 L 693.625,321.003 L 690.974,319.73 L 688.066,318.489 L 685.084,317.346 L 682.029,316.204 L 678.826,315.224 L 675.55,314.31 L 672.126,313.461 L 668.666,312.743 L 665.206,312.057 L 661.561,311.469 L 657.88,311.012 L 654.199,310.588 L 650.481,310.294 L 646.763,310.098 L 642.934,310 L 639.179,310 L 635.424,310.098 L 631.67,310.229 L 627.915,310.49 L 624.233,310.914 L 620.552,311.306 L 616.945,311.861 L 613.411,312.547 L 609.877,313.265 L 606.527,314.081 L 603.177,314.995 L 599.974,315.942 L 596.845,316.987 L 593.863,318.163 L 590.955,319.371 L 588.194,320.611 L 585.58,321.983 L 583.077,323.387 L 580.721,324.888 L 578.512,326.423 L 576.524,327.99 L 574.61,329.688 L 572.954,331.321 L 571.408,333.051 L 570.082,334.781 L 568.867,336.577 L 567.91,338.406 L 567.137,340.234"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 541.479 366.615 L 578.218,338.046 L 575.935,336.871 L 573.543,335.761 L 571.113,334.781 L 568.61,333.802 L 566.07,332.953 L 563.419,332.169 L 560.695,331.516 L 558.008,330.896 L 555.173,330.406 L 552.375,329.982 L 549.504,329.688 L 546.633,329.459 L 543.761,329.329 L 540.89,329.329 L 537.982,329.394 L 535.11,329.59 L 532.239,329.819 L 529.405,330.178 L 526.607,330.635 L 523.846,331.157 L 521.085,331.778 L 518.434,332.496 L 515.784,333.312 L 513.244,334.194 L 510.777,335.173 L 508.421,336.251 L 506.065,337.393 L 503.857,338.569 L 501.758,339.875 L 499.697,341.213 L 497.783,342.65 L 496.016,344.087 L 494.322,345.654 L 492.776,347.221 L 491.304,348.854 L 490.015,350.551 L 488.8,352.282 L 487.77,354.012 L 486.849,355.808 L 486.113,357.636 L 485.524,359.465 L 485.009,361.359 L 484.641,363.252 L 484.493,365.113 L 484.42,366.974 L 484.53,368.868 L 484.751,370.794 L 485.193,372.623 L 541.479,366.615z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 578.034 337.948 L 575.751,336.773 L 573.432,335.696 L 571.003,334.683 L 568.463,333.769 L 565.849,332.888 L 563.235,332.137 L 560.548,331.451 L 557.787,330.863 L 555.026,330.406 L 552.155,329.982 L 549.32,329.688 L 546.485,329.459 L 543.614,329.329 L 540.669,329.329 L 537.871,329.394 L 535,329.59 L 532.055,329.819 L 529.257,330.21 L 526.496,330.635 L 523.662,331.223 L 520.974,331.81 L 518.324,332.561 L 515.71,333.377 L 513.133,334.259 L 510.667,335.239 L 508.311,336.316 L 506.029,337.426 L 503.82,338.667 L 501.648,339.907 L 499.697,341.311 L 497.746,342.683 L 495.942,344.185 L 494.285,345.687 L 492.702,347.254 L 491.304,348.919 L 490.015,350.617 L 488.8,352.347 L 487.733,354.078 L 486.849,355.906 L 486.113,357.669 L 485.45,359.53 L 485.009,361.424 L 484.641,363.285 L 484.493,365.146 L 484.42,367.04 L 484.604,368.901 L 484.825,370.794 L 485.193,372.688"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 531.245 433.352 L 472.124,432.34 L 472.124,434.07 L 472.235,435.703 L 472.529,437.433 L 473.008,439.066 L 473.56,440.731 L 474.259,442.429 L 475.18,443.996 L 476.137,445.596 L 477.352,447.163 L 478.64,448.665 L 480.002,450.2 L 481.622,451.636 L 483.242,453.04 L 485.082,454.379 L 486.96,455.685 L 488.984,456.925 L 491.156,458.068 L 493.365,459.178 L 495.684,460.288 L 498.114,461.235 L 500.617,462.149 L 503.231,463.031 L 505.881,463.749 L 508.532,464.468 L 511.33,465.088 L 514.164,465.61 L 517.036,466.035 L 519.944,466.427 L 522.852,466.72 L 525.797,466.916 L 528.779,467.014 L 531.797,467.014 L 534.706,466.949 L 537.687,466.818 L 540.632,466.623 L 543.54,466.329 L 546.485,465.904 L 549.283,465.414 L 552.155,464.892 L 554.842,464.206 L 557.566,463.553 L 560.217,462.737 L 562.72,461.856 L 565.26,460.909 L 567.579,459.897 L 569.898,458.852 L 531.245,433.352z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 472.198 432.34 L 472.087,434.005 L 472.308,435.703 L 472.529,437.368 L 473.008,439.066 L 473.56,440.698 L 474.296,442.364 L 475.18,443.996 L 476.21,445.596 L 477.352,447.13 L 478.566,448.665 L 480.002,450.134 L 481.511,451.603 L 483.242,452.975 L 485.009,454.379 L 486.923,455.619 L 488.911,456.86 L 491.046,458.068 L 493.255,459.178 L 495.574,460.223 L 498.003,461.203 L 500.507,462.117 L 503.047,462.966 L 505.697,463.749 L 508.458,464.468 L 511.182,465.023 L 513.98,465.545 L 516.851,466.035 L 519.796,466.361 L 522.705,466.72 L 525.613,466.851 L 528.595,467.014 L 531.576,467.014 L 534.521,467.014 L 537.466,466.851 L 540.411,466.623 L 543.32,466.329 L 546.265,465.937 L 549.062,465.48 L 551.934,464.925 L 554.658,464.272 L 557.308,463.553 L 559.959,462.77 L 562.499,461.921 L 565.039,461.007 L 567.432,459.995 L 569.677,458.95"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 719.357 360.542 L 771.373,369.978 L 772.256,368.574 L 772.919,367.17 L 773.545,365.734 L 773.913,364.264 L 774.281,362.795 L 774.355,361.326 L 774.355,359.824 L 774.281,358.387 L 773.987,356.918 L 773.582,355.449 L 772.993,354.012 L 772.293,352.576 L 771.483,351.204 L 770.526,349.8 L 769.422,348.462 L 768.17,347.123 L 766.771,345.817 L 765.336,344.576 L 763.753,343.368 L 762.059,342.226 L 760.256,341.05 L 758.268,340.005 L 756.28,338.993 L 754.108,338.046 L 751.936,337.132 L 749.654,336.316 L 747.298,335.5 L 744.831,334.781 L 742.328,334.128 L 739.751,333.541 L 737.1,333.051 L 734.487,332.627 L 731.726,332.235 L 729.002,331.941 L 726.241,331.712 L 723.443,331.614 L 720.682,331.516 L 717.921,331.516 L 715.123,331.614 L 712.326,331.745 L 709.602,331.974 L 706.841,332.267 L 704.117,332.627 L 701.429,333.084 L 719.357,360.542z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 766.587 375.3 L 771.336,370.044 L 772.22,368.672 L 772.919,367.236 L 773.471,365.799 L 773.913,364.33 L 774.207,362.861 L 774.318,361.424 L 774.355,359.889 L 774.244,358.453 L 773.987,356.983 L 773.582,355.514 L 772.993,354.078 L 772.293,352.641 L 771.52,351.237 L 770.563,349.898 L 769.422,348.494 L 768.17,347.156 L 766.882,345.85 L 765.372,344.609 L 763.79,343.401 L 762.096,342.226 L 760.292,341.116 L 758.378,340.071 L 756.353,339.026 L 754.255,338.046 L 752.01,337.165 L 749.727,336.316 L 747.371,335.532 L 744.905,334.879 L 742.401,334.194 L 739.861,333.573 L 737.248,333.051 L 734.56,332.627 L 731.91,332.235 L 729.186,331.941 L 726.425,331.745 L 723.627,331.614 L 720.829,331.516 L 717.995,331.516 L 715.234,331.614 L 712.436,331.745 L 709.675,331.941 L 706.951,332.235 L 704.264,332.594 L 701.576,333.051"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 726.756 398.906 L 785.325,410.856 L 786.503,409.289 L 787.46,407.754 L 788.343,406.122 L 789.043,404.489 L 789.521,402.857 L 789.853,401.224 L 789.963,399.527 L 789.963,397.861 L 789.742,396.196 L 789.411,394.564 L 788.822,392.899 L 788.123,391.299 L 787.202,389.699 L 786.208,388.099 L 784.957,386.564 L 783.558,385.095 L 782.049,383.593 L 780.318,382.124 L 778.478,380.753 L 726.756,398.906z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 777.889 416.276 L 785.251,410.921 L 786.356,409.387 L 787.46,407.754 L 788.307,406.155 L 789.006,404.489 L 789.485,402.857 L 789.853,401.224 L 790,399.527 L 789.963,397.861 L 789.742,396.164 L 789.337,394.531 L 788.822,392.899 L 788.123,391.266 L 787.202,389.634 L 786.172,388.034 L 784.883,386.467 L 783.521,384.997 L 781.901,383.495 L 780.245,382.059 L 778.367,380.687 L 766.587,375.3"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 724.29 430.446 L 705.81,475.797 L 708.534,476.516 L 711.295,477.169 L 714.056,477.658 L 716.927,478.05 L 719.725,478.344 L 722.523,478.475 L 725.431,478.475 L 728.265,478.344 L 731.063,478.148 L 733.898,477.756 L 736.659,477.266 L 739.42,476.711 L 742.144,475.993 L 744.831,475.112 L 747.408,474.165 L 749.985,473.087 L 752.488,471.912 L 754.918,470.606 L 757.274,469.267 L 759.519,467.733 L 761.654,466.133 L 763.716,464.468 L 765.704,462.672 L 767.581,460.811 L 769.275,458.884 L 770.894,456.86 L 772.44,454.803 L 773.803,452.648 L 775.017,450.493 L 776.159,448.241 L 777.116,445.922 L 777.999,443.572 L 778.699,441.221 L 779.288,438.805 L 779.656,436.421 L 779.987,433.972 L 780.061,431.524 L 780.061,429.075 L 779.913,426.626 L 779.619,424.177 L 779.177,421.761 L 778.625,419.378 L 777.889,417.027 L 724.29,430.446z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 705.957 475.83 L 708.718,476.613 L 711.442,477.234 L 714.24,477.756 L 717.038,478.083 L 719.909,478.344 L 722.707,478.475 L 725.541,478.54 L 728.376,478.344 L 731.247,478.148 L 734.045,477.756 L 736.806,477.266 L 739.567,476.646 L 742.291,475.928 L 744.942,475.079 L 747.592,474.099 L 750.132,473.055 L 752.599,471.912 L 754.991,470.606 L 757.347,469.169 L 759.593,467.667 L 761.728,466.035 L 763.79,464.37 L 765.777,462.639 L 767.618,460.746 L 769.385,458.787 L 770.931,456.827 L 772.477,454.705 L 773.839,452.55 L 775.054,450.395 L 776.159,448.143 L 777.152,445.792 L 778.036,443.474 L 778.699,441.09 L 779.288,438.707 L 779.729,436.323 L 779.987,433.874 L 780.061,431.426 L 780.061,428.977 L 779.877,426.528 L 779.619,424.079 L 779.14,421.663 L 778.515,419.28 L 777.889,416.929"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 490.162 404.685 L 487.365,373.896 L 485.303,374.059 L 483.352,374.255 L 481.291,374.582 L 479.303,374.974 L 477.352,375.431 L 475.437,376.019 L 473.56,376.574 L 471.719,377.325 L 469.879,378.043 L 468.149,378.859 L 466.455,379.773 L 464.835,380.72 L 463.252,381.732 L 461.817,382.842 L 460.381,383.952 L 459.056,385.128 L 457.804,386.369 L 456.663,387.675 L 455.522,388.981 L 454.528,390.385 L 453.681,391.821 L 452.871,393.258 L 452.098,394.694 L 451.509,396.196 L 451.031,397.731 L 450.589,399.265 L 450.258,400.833 L 450.11,402.432 L 450,403.967 L 450,405.534 L 450.11,407.069 L 450.331,408.669 L 450.663,410.203 L 451.031,411.738 L 451.583,413.272 L 452.172,414.774 L 452.908,416.243 L 453.718,417.68 L 454.638,419.084 L 455.632,420.488 L 456.773,421.761 L 457.915,423.067 L 459.203,424.308 L 460.565,425.483 L 461.964,426.626 L 463.473,427.671 L 465.056,428.683 L 466.676,429.663 L 468.406,430.544 L 470.1,431.36 L 471.94,432.111 L 490.162,404.685z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 487.365 373.896 L 485.414,374.059 L 483.389,374.255 L 481.401,374.582 L 479.487,374.941 L 477.536,375.398 L 475.621,375.888 L 473.781,376.508 L 471.977,377.161 L 470.173,377.88 L 468.517,378.696 L 466.786,379.577 L 465.204,380.492 L 463.657,381.471 L 462.185,382.549 L 460.712,383.659 L 459.424,384.769 L 458.136,386.009 L 456.994,387.25 L 455.89,388.556 L 454.933,389.895 L 454.013,391.266 L 453.129,392.637 L 452.393,394.074 L 451.73,395.543 L 451.178,397.045 L 450.773,398.547 L 450.368,400.082 L 450.147,401.616 L 450,403.151 L 450,404.685 L 450,406.22 L 450.221,407.754 L 450.442,409.289 L 450.773,410.824 L 451.252,412.325 L 451.73,413.795 L 452.393,415.231 L 453.203,416.733 L 454.013,418.137 L 454.933,419.476 L 455.964,420.814 L 457.031,422.12 L 458.172,423.361 L 459.424,424.569 L 460.786,425.712 L 462.222,426.822 L 463.694,427.867 L 465.277,428.846 L 466.823,429.793 L 468.517,430.642 L 470.247,431.426 L 472.014,432.177"/>
<path style="fill: #b6c7c9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 639.29 454.118 L 555.505,457.676 L 556.057,459.472 L 556.756,461.301 L 557.713,463.064 L 558.928,464.794 L 560.217,466.459 L 561.799,468.157 L 563.53,469.79 L 565.481,471.422 L 567.653,472.957 L 569.972,474.491 L 572.401,475.928 L 575.089,477.332 L 577.887,478.67 L 580.868,479.976 L 583.997,481.152 L 587.237,482.327 L 590.697,483.372 L 594.158,484.417 L 597.802,485.331 L 601.52,486.213 L 605.422,486.931 L 609.324,487.649 L 613.263,488.237 L 617.386,488.759 L 621.509,489.184 L 625.669,489.51 L 629.792,489.771 L 634.026,489.902 L 638.296,490 L 642.492,490 L 646.763,489.869 L 650.959,489.673 L 655.119,489.38 L 659.242,488.955 L 663.365,488.498 L 667.341,487.943 L 671.317,487.257 L 675.182,486.604 L 679.01,485.788 L 682.692,484.874 L 686.226,483.894 L 689.686,482.85 L 693.036,481.707 L 696.239,480.531 L 699.294,479.291 L 702.129,477.985 L 704.89,476.613 L 707.43,475.177 L 709.859,473.675 L 712.105,472.14 L 714.093,470.606 L 715.933,468.973 L 717.627,467.276 L 719.062,465.61 L 639.29,454.118z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #6c8f93" d="M 555.578 457.742 L 556.057,459.505 L 556.793,461.301 L 557.713,463.064 L 558.928,464.794 L 560.29,466.525 L 561.799,468.157 L 563.566,469.79 L 565.481,471.422 L 567.653,472.957 L 569.972,474.491 L 572.401,475.928 L 575.089,477.332 L 577.96,478.67 L 580.868,479.976 L 583.997,481.152 L 587.237,482.327 L 590.697,483.372 L 594.158,484.384 L 597.802,485.331 L 601.52,486.213 L 605.349,486.931 L 609.251,487.649 L 613.227,488.237 L 617.35,488.759 L 621.436,489.184 L 625.595,489.478 L 629.755,489.771 L 633.952,489.902 L 638.185,490 L 642.419,489.967 L 646.615,489.869 L 650.812,489.608 L 655.045,489.38 L 659.168,488.955 L 663.218,488.465 L 667.267,487.943 L 671.206,487.323 L 675.071,486.604 L 678.863,485.788 L 682.508,484.874 L 686.115,483.894 L 689.576,482.882 L 692.889,481.805 L 696.091,480.597 L 699.11,479.356 L 702.055,478.05 L 704.779,476.613 L 707.356,475.21 L 709.786,473.708 L 711.958,472.238 L 714.019,470.606 L 715.86,469.006 L 717.479,467.341 L 718.989,465.643"/>
</g>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 472.883 378.401 L 472.883,360.469"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 472.883 378.111 L 472.883,365.811"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 473.404 362.192 L 472.308,362.192 L 472.308,360 L 473.404,360 L 473.404,362.192z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 473.404 362.192 L 472.308,362.192 L 472.308,360 L 473.404,360 L 473.404,362.192"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 446.304 378.401 L 446.304,360.469"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 446.304 378.111 L 446.304,365.811"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 446.824 362.192 L 445.728,362.192 L 445.728,360 L 446.824,360 L 446.824,362.192z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 446.824 362.192 L 445.728,362.192 L 445.728,360 L 446.824,360 L 446.824,362.192"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 480.318 380.677 C 480.318,385.007 471.293,388.516 460.159,388.516 C 449.025,388.516 440,385.007 440,380.677 L 440,392.16 C 440,396.49 449.025,400 460.159,400 C 471.293,400 480.318,396.49 480.318,392.16 L 480.318,380.677z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 480.318 380.677 C 480.318,385.007 471.293,388.516 460.159,388.516 C 449.025,388.516 440,385.007 440,380.677 L 440,392.16 C 440,396.49 449.025,400 460.159,400 C 471.293,400 480.318,396.49 480.318,392.16 L 480.318,380.677"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 460.159 388.516 C 471.293,388.516 480.318,385.007 480.318,380.677 C 480.318,376.347 471.293,372.837 460.159,372.837 C 449.025,372.837 440,376.347 440,380.677 C 440,385.007 449.025,388.516 460.159,388.516z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 460.159 388.516 C 471.293,388.516 480.318,385.007 480.318,380.677 C 480.318,376.347 471.293,372.837 460.159,372.837 C 449.025,372.837 440,376.347 440,380.677 C 440,385.007 449.025,388.516 460.159,388.516"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 455.555 377.612 L 457.22,380.109 L 450.927,381.563 L 452.301,380.419 L 442.574,378.756 L 445.015,376.927 L 454.4,378.516 L 455.555,377.612z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 464.413 383.666 L 463.276,381.093 L 468.953,379.958 L 467.968,380.84 L 477.431,382.456 L 475.162,384.272 L 465.754,382.507 L 464.413,383.666z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 461.308 376.248 L 467.667,374.508 L 467.742,377.234 L 466.153,376.93 L 463.048,379.503 L 460.088,379.072 L 463.29,376.554 L 461.308,376.248z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 458.583 386.014 L 452.528,387.149 L 452.301,384.349 L 454.041,384.726 L 457.374,381.88 L 460.324,382.38 L 456.767,385.484 L 458.583,386.014z"/>
</g>
<text font-size="21.4489" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="620" y="390">
<tspan x="620" y="390">Mesh</tspan>
</text>
<g>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 294.294 324.172 L 328.289,324.172 L 313.995,338.514 L 280,338.514 L 294.294,324.172z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 294.294 324.172 L 328.289,324.172 L 313.995,338.514 L 280,338.514 L 294.294,324.172"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 295.599 336.092 L 295.599,336.168 L 295.613,336.23 L 295.633,336.314 L 295.661,336.397 L 295.703,336.46 L 295.751,336.536 L 295.814,336.605 L 295.876,336.668 L 295.939,336.744 L 296.022,336.821 L 296.106,336.883 L 296.196,336.939 L 296.3,336.994 L 296.397,337.057 L 296.522,337.105 L 296.633,337.168 L 296.758,337.216 L 296.897,337.265 L 297.036,337.306 L 297.168,337.348 L 297.313,337.39 L 297.459,337.431 L 297.612,337.452 L 297.779,337.48 L 297.938,337.494 L 298.105,337.522 L 298.258,337.543 L 298.431,337.563 L 298.605,337.57 L 298.771,337.577 L 298.938,337.577"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 298.57 337.577 L 298.737,337.577 L 298.896,337.57 L 299.056,337.556 L 299.222,337.536 L 299.389,337.522 L 299.542,337.494 L 299.695,337.48 L 299.854,337.445 L 300,337.411 L 300.153,337.369 L 300.285,337.327 L 300.423,337.286 L 300.555,337.237 L 300.68,337.188 L 300.791,337.14 L 300.909,337.084 L 301.02,337.022 L 301.118,336.966 L 301.215,336.897 L 301.298,336.827 L 301.375,336.758 L 301.437,336.696 L 301.506,336.619 L 301.562,336.543 L 301.604,336.48 L 301.652,336.404 L 301.673,336.314 L 301.694,336.237 L 301.715,336.168 L 301.722,336.092"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 299.306 333.308 L 299.132,333.308 L 298.966,333.315 L 298.792,333.315 L 298.639,333.329 L 298.473,333.35 L 298.306,333.363 L 298.146,333.377 L 297.98,333.412 L 297.834,333.44 L 297.688,333.461 L 297.543,333.495 L 297.397,333.537 L 297.265,333.572 L 297.14,333.613 L 297.015,333.669 L 296.876,333.711 L 296.779,333.759 L 296.668,333.801 L 296.564,333.856 L 296.48,333.919 L 296.39,333.974 L 296.314,334.023 L 296.237,334.085 L 296.182,334.148 L 296.126,334.217 L 296.071,334.28 L 296.043,334.335 L 296.008,334.405 L 295.988,334.46 L 295.981,334.537 L 295.974,334.592"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 302.083 334.592 L 302.083,334.53 L 302.076,334.46 L 302.048,334.398 L 302.02,334.321 L 301.985,334.266 L 301.93,334.19 L 301.874,334.134 L 301.819,334.065 L 301.736,334.016 L 301.673,333.947 L 301.59,333.891 L 301.479,333.842 L 301.388,333.773 L 301.284,333.738 L 301.173,333.683 L 301.048,333.627 L 300.916,333.586 L 300.784,333.544 L 300.653,333.509 L 300.514,333.481 L 300.368,333.447 L 300.215,333.412 L 300.069,333.391 L 299.917,333.363 L 299.764,333.35 L 299.604,333.329 L 299.438,333.315 L 299.264,333.315 L 299.098,333.308 L 298.938,333.308"/>
<path style="fill: #a5a585; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 280 340 L 313.995,340 L 313.995,338.514 L 280,338.514 L 280,340z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 280 340 L 313.995,340 L 313.995,338.514 L 280,338.514 L 280,340"/>
<path style="fill: #a5a585; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 294.294 324.172 L 328.289,324.172 L 328.289,300.916 L 294.294,300.916 L 294.294,324.172z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 294.294 324.172 L 328.289,324.172 L 328.289,300.916 L 294.294,300.916 L 294.294,324.172"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 329.219 323.256 L 329.219,300 L 328.289,300.916 L 328.289,324.172 L 329.219,323.256z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 329.219 323.256 L 329.219,300 L 328.289,300.916 L 328.289,324.172 L 329.219,323.256"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.974 322.694 L 326.623,322.694 L 326.623,302.784 L 295.974,302.784 L 295.974,322.694z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.974 322.694 L 326.623,322.694 L 326.623,302.784 L 295.974,302.784 L 295.974,322.694"/>
<path style="fill: #93936c; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.974 325.297 L 324.568,325.297 L 317.14,332.746 L 288.546,332.746 L 295.974,325.297z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.974 325.297 L 324.568,325.297 L 317.14,332.746 L 288.546,332.746 L 295.974,325.297"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 300.423 335.62 L 300.423,335.578 L 300.417,335.536 L 300.41,335.495 L 300.389,335.446 L 300.382,335.404 L 300.354,335.37 L 300.34,335.328 L 300.305,335.3 L 300.271,335.259 L 300.25,335.217 L 300.215,335.182 L 300.174,335.148 L 300.132,335.106 L 300.083,335.071 L 300.042,335.05 L 299.993,335.016 L 299.938,334.988 L 299.875,334.967 L 299.826,334.932 L 299.764,334.918 L 299.701,334.891 L 299.646,334.877 L 299.577,334.856 L 299.514,334.842 L 299.438,334.828 L 299.375,334.807 L 299.306,334.8 L 299.243,334.8 L 299.174,334.793 L 299.091,334.793 L 299.035,334.793 L 299.035,334.793 L 298.959,334.793 L 298.882,334.793 L 298.82,334.8 L 298.75,334.8 L 298.688,334.807 L 298.612,334.828 L 298.549,334.842 L 298.48,334.856 L 298.417,334.877 L 298.355,334.891 L 298.299,334.918 L 298.23,334.932 L 298.181,334.967 L 298.126,334.988 L 298.07,335.016 L 298.022,335.05 L 297.98,335.071 L 297.931,335.106 L 297.89,335.148 L 297.855,335.182 L 297.806,335.217 L 297.785,335.259 L 297.744,335.3 L 297.723,335.328 L 297.702,335.37 L 297.681,335.404 L 297.667,335.446 L 297.661,335.495 L 297.647,335.536 L 297.633,335.578 L 297.633,335.62 L 297.633,335.62 L 297.633,335.668 L 297.647,335.71 L 297.661,335.751 L 297.667,335.793 L 297.681,335.835 L 297.702,335.869 L 297.723,335.918 L 297.744,335.953 L 297.785,335.994 L 297.806,336.022 L 297.855,336.064 L 297.89,336.099 L 297.931,336.14 L 297.98,336.168 L 298.022,336.196 L 298.07,336.23 L 298.126,336.258 L 298.181,336.279 L 298.23,336.314 L 298.299,336.328 L 298.355,336.355 L 298.417,336.369 L 298.48,336.39 L 298.549,336.404 L 298.612,336.418 L 298.688,336.432 L 298.75,336.446 L 298.82,336.446 L 298.882,336.446 L 298.959,336.453 L 299.035,336.453 L 299.035,336.453 L 299.091,336.453 L 299.174,336.446 L 299.243,336.446 L 299.306,336.446 L 299.375,336.432 L 299.438,336.418 L 299.514,336.404 L 299.577,336.39 L 299.646,336.369 L 299.701,336.355 L 299.764,336.328 L 299.826,336.314 L 299.875,336.279 L 299.938,336.258 L 299.993,336.23 L 300.042,336.196 L 300.083,336.168 L 300.132,336.14 L 300.174,336.099 L 300.215,336.064 L 300.25,336.022 L 300.271,335.994 L 300.305,335.953 L 300.34,335.918 L 300.354,335.869 L 300.382,335.835 L 300.389,335.793 L 300.41,335.751 L 300.417,335.71 L 300.423,335.668 L 300.423,335.62z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #dbdbce" d="M 300.243 335.536 L 300.243,335.495 L 300.236,335.453 L 300.236,335.418 L 300.215,335.39 L 300.201,335.335 L 300.194,335.314 L 300.16,335.272 L 300.132,335.231 L 300.111,335.203 L 300.083,335.175 L 300.042,335.148 L 300.007,335.099 L 299.965,335.071 L 299.924,335.05 L 299.889,335.016 L 299.833,334.988 L 299.792,334.974 L 299.743,334.939 L 299.695,334.925 L 299.632,334.898 L 299.577,334.884 L 299.514,334.87 L 299.459,334.849 L 299.396,334.835 L 299.334,334.828 L 299.264,334.807 L 299.209,334.8 L 299.132,334.793 L 299.077,334.793 L 299.007,334.793 L 298.945,334.793 L 298.945,334.793 L 298.875,334.793 L 298.813,334.793 L 298.743,334.793 L 298.688,334.8 L 298.619,334.807 L 298.563,334.828 L 298.487,334.835 L 298.431,334.849 L 298.383,334.87 L 298.313,334.884 L 298.258,334.898 L 298.188,334.925 L 298.153,334.939 L 298.091,334.974 L 298.049,334.988 L 298.001,335.016 L 297.959,335.05 L 297.917,335.071 L 297.876,335.099 L 297.841,335.148 L 297.806,335.175 L 297.779,335.203 L 297.744,335.231 L 297.73,335.272 L 297.702,335.314 L 297.688,335.335 L 297.674,335.39 L 297.661,335.418 L 297.654,335.453 L 297.647,335.495 L 297.647,335.536 L 297.647,335.536 L 297.647,335.571 L 297.654,335.613 L 297.661,335.654 L 297.674,335.675 L 297.688,335.717 L 297.702,335.758 L 297.73,335.793 L 297.744,335.828 L 297.779,335.869 L 297.806,335.89 L 297.841,335.925 L 297.876,335.96 L 297.917,335.994 L 297.959,336.015 L 298.001,336.05 L 298.049,336.071 L 298.091,336.099 L 298.153,336.126 L 298.188,336.14 L 298.258,336.168 L 298.313,336.189 L 298.383,336.196 L 298.431,336.217 L 298.487,336.23 L 298.563,336.237 L 298.619,336.258 L 298.688,336.272 L 298.743,336.272 L 298.813,336.272 L 298.875,336.272 L 298.945,336.272 L 298.945,336.272 L 299.007,336.272 L 299.077,336.272 L 299.132,336.272 L 299.209,336.272 L 299.264,336.258 L 299.334,336.237 L 299.396,336.23 L 299.459,336.217 L 299.514,336.196 L 299.577,336.189 L 299.632,336.168 L 299.695,336.14 L 299.743,336.126 L 299.792,336.099 L 299.833,336.071 L 299.889,336.05 L 299.924,336.015 L 299.965,335.994 L 300.007,335.96 L 300.042,335.925 L 300.083,335.89 L 300.111,335.869 L 300.132,335.828 L 300.16,335.793 L 300.194,335.758 L 300.201,335.717 L 300.215,335.675 L 300.236,335.654 L 300.236,335.613 L 300.243,335.571 L 300.243,335.536"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 295.793 336.272 L 295.793,336.355 L 295.807,336.418 L 295.835,336.494 L 295.856,336.578 L 295.897,336.647 L 295.939,336.709 L 296.001,336.786 L 296.064,336.862 L 296.133,336.925 L 296.203,336.994 L 296.293,337.057 L 296.376,337.126 L 296.487,337.182 L 296.591,337.237 L 296.703,337.286 L 296.821,337.348 L 296.952,337.397 L 297.07,337.445 L 297.223,337.487 L 297.362,337.529 L 297.508,337.577 L 297.654,337.612 L 297.806,337.633 L 297.959,337.661 L 298.126,337.688 L 298.285,337.702 L 298.445,337.73 L 298.612,337.744 L 298.785,337.751 L 298.952,337.751 L 299.118,337.751"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 298.743 337.751 L 298.917,337.751 L 299.077,337.751 L 299.25,337.737 L 299.403,337.716 L 299.563,337.702 L 299.729,337.688 L 299.875,337.661 L 300.035,337.626 L 300.174,337.591 L 300.326,337.563 L 300.472,337.522 L 300.604,337.48 L 300.736,337.431 L 300.861,337.369 L 300.986,337.32 L 301.09,337.265 L 301.201,337.209 L 301.298,337.14 L 301.388,337.084 L 301.479,337.008 L 301.555,336.952 L 301.631,336.883 L 301.694,336.8 L 301.736,336.723 L 301.798,336.661 L 301.826,336.578 L 301.86,336.501 L 301.888,336.418 L 301.888,336.355 L 301.902,336.272"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 299.486 333.488 L 299.327,333.488 L 299.16,333.495 L 298.993,333.495 L 298.827,333.509 L 298.653,333.53 L 298.487,333.537 L 298.341,333.565 L 298.174,333.586 L 298.022,333.627 L 297.876,333.641 L 297.73,333.683 L 297.591,333.711 L 297.452,333.759 L 297.327,333.801 L 297.202,333.842 L 297.07,333.884 L 296.966,333.933 L 296.855,333.981 L 296.758,334.044 L 296.668,334.099 L 296.585,334.148 L 296.501,334.217 L 296.418,334.266 L 296.369,334.321 L 296.314,334.398 L 296.265,334.453 L 296.224,334.523 L 296.196,334.578 L 296.175,334.641 L 296.168,334.717 L 296.161,334.787"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #626248" d="M 302.277 334.787 L 302.263,334.71 L 302.256,334.641 L 302.242,334.578 L 302.208,334.509 L 302.166,334.446 L 302.117,334.377 L 302.062,334.321 L 301.999,334.259 L 301.93,334.19 L 301.847,334.134 L 301.763,334.072 L 301.673,334.016 L 301.562,333.967 L 301.465,333.919 L 301.347,333.87 L 301.236,333.815 L 301.111,333.773 L 300.979,333.738 L 300.833,333.697 L 300.694,333.669 L 300.555,333.627 L 300.41,333.599 L 300.257,333.572 L 300.09,333.544 L 299.944,333.53 L 299.785,333.509 L 299.618,333.495 L 299.445,333.495 L 299.292,333.488 L 299.118,333.488"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 328.289 325.477 L 313.995,339.82 L 313.995,338.514 L 328.289,324.172 L 328.289,325.477z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 328.289 325.477 L 313.995,339.82 L 313.995,338.514 L 328.289,324.172 L 328.289,325.477"/>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 323.464 323.075 L 323.464,323.429 L 326.248,323.429 L 326.248,323.075 L 323.464,323.075z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 323.464 323.075 L 323.464,323.429 L 326.248,323.429 L 326.248,323.075 L 323.464,323.075"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 322.7 327.157 L 294.294,327.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 320.854 329.025 L 292.447,329.025"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #000000" d="M 319 330.885 L 290.587,330.885"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 295.224 300 L 329.219,300 L 328.289,300.916 L 294.294,300.916 L 295.224,300z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.02; stroke: #494936" d="M 295.224 300 L 329.219,300 L 328.289,300.916 L 294.294,300.916 L 295.224,300"/>
</g>
<g>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 260.594 397.19 C 260.943,395.941 262.38,389.684 262.447,388.811 C 262.514,387.938 262.192,386.851 261.722,386.623 C 261.749,386.314 261.749,386.139 261.749,386.139 C 261.641,386.099 261.521,386.059 261.413,386.005 L 261.453,386.018 C 261.453,386.018 261.776,384.622 261.977,383.655 C 262.34,381.802 262.38,380.862 262.38,380.862 C 262.367,380.607 262.299,380.379 262.071,380.312 L 260.984,380.016 C 260.755,379.949 260.594,380.097 260.446,380.325 C 260.446,380.325 260.017,381.184 259.426,382.957 C 259.104,383.883 258.808,385.065 258.808,385.065 L 258.822,385.065 C 258.177,384.85 257.519,384.662 256.861,384.474 C 255.169,384.004 253.491,383.655 251.799,383.4 C 251.799,383.4 251.719,383.548 251.571,383.83 C 251.061,383.776 250.228,384.555 249.839,385.334 C 249.449,386.112 247.476,392.222 247.126,393.471 C 246.777,394.719 246.119,397.915 245.824,399.499 C 245.529,401.084 245.26,403.85 244.24,407.529 C 243.635,409.704 242.669,412.954 242.158,414.296 C 242.024,414.659 240.963,416.445 242.507,417.062 C 244.025,417.667 246.294,418.311 247.435,418.633 C 248.577,418.942 250.846,419.546 252.457,419.815 C 254.095,420.084 254.109,417.989 254.176,417.613 C 254.431,416.203 255.263,412.913 255.854,410.738 C 256.875,407.046 258.07,404.548 258.634,403.031 C 259.184,401.514 260.245,398.439 260.594,397.19z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 260.594 397.19 C 260.943,395.941 262.38,389.684 262.447,388.811 C 262.514,387.938 262.192,386.851 261.722,386.623 C 261.749,386.314 261.749,386.139 261.749,386.139 C 261.641,386.099 261.521,386.059 261.413,386.005 L 261.453,386.018 C 261.453,386.018 261.776,384.622 261.977,383.655 C 262.34,381.802 262.38,380.862 262.38,380.862 C 262.367,380.607 262.299,380.379 262.071,380.312 L 260.984,380.016 C 260.755,379.949 260.594,380.097 260.446,380.325 C 260.446,380.325 260.017,381.184 259.426,382.957 C 259.104,383.883 258.808,385.065 258.808,385.065 L 258.822,385.065 C 258.177,384.85 257.519,384.662 256.861,384.474 C 255.169,384.004 253.491,383.655 251.799,383.4 C 251.799,383.4 251.719,383.548 251.571,383.83 L 251.571,383.83 C 251.061,383.776 250.228,384.555 249.839,385.334 C 249.449,386.112 247.476,392.222 247.126,393.471 C 246.777,394.719 246.119,397.915 245.824,399.499 C 245.529,401.084 245.26,403.85 244.24,407.529 C 243.635,409.704 242.669,412.954 242.158,414.296 C 242.024,414.659 240.963,416.445 242.507,417.062 C 244.025,417.667 246.294,418.311 247.435,418.633 C 248.577,418.942 250.846,419.546 252.457,419.815 C 254.095,420.084 254.109,417.989 254.176,417.613 C 254.431,416.203 255.263,412.913 255.854,410.738 C 256.875,407.046 258.07,404.548 258.634,403.031 C 259.184,401.514 260.245,398.439 260.594,397.19"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 L 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ecece7" fill-rule="evenodd" d="M 250.336 383.601 C 250.336,383.601 248.12,388.126 246.845,392.719 C 245.341,398.184 245.126,399.996 245.354,402.534 C 245.394,403.058 245.918,403.702 246.495,403.863 C 246.724,403.917 246.992,403.998 247.1,404.024 C 247.22,404.065 247.65,404.159 247.999,404.441 C 248.362,404.723 248.442,404.79 248.657,404.897 C 248.859,405.018 248.899,405.099 249.49,405.26 C 250.08,405.421 250.148,405.381 250.389,405.381 C 250.631,405.394 250.738,405.381 251.195,405.327 C 251.638,405.26 252.054,405.394 252.175,405.421 C 252.283,405.461 252.551,405.528 252.779,405.595 C 253.357,405.757 254.136,405.475 254.444,405.045 C 255.935,402.991 256.687,401.312 258.191,395.847 C 259.453,391.255 259.869,386.233 259.869,386.233 L 250.336,383.601z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 253.021 402.561 C 252.632,403.998 251.141,404.83 249.718,404.441 C 248.281,404.051 247.449,402.561 247.838,401.138 C 248.241,399.701 249.718,398.868 251.141,399.258 C 252.578,399.661 253.41,401.138 253.021,402.561z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 248.066 398.157 C 248.429,398.264 248.711,398.412 248.845,398.492 C 248.979,398.586 249.02,398.707 248.899,398.788 C 248.778,398.868 248.563,399.029 248.442,399.137 C 248.295,399.258 248.201,399.285 247.999,399.164 C 247.637,398.962 246.871,398.412 246.683,398.157 C 246.576,398.022 246.67,397.969 246.871,397.955 C 247.14,397.942 247.677,398.049 248.066,398.157z"/>
<path style="fill: #ff0000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 246.16 400.99 C 246.361,401.057 246.845,401.299 246.979,401.406 C 247.126,401.5 247.341,401.728 247.328,401.997 C 247.301,402.306 247.328,402.964 247.462,403.179 C 247.637,403.46 247.61,403.581 247.355,403.541 C 247.153,403.501 246.63,403.313 246.482,403.232 C 246.334,403.165 246.119,403.031 246.052,402.829 C 245.918,402.413 245.878,401.554 245.958,401.124 C 245.985,400.95 246.066,400.95 246.16,400.99z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 253.021 402.561 C 252.632,403.998 251.141,404.83 249.718,404.441 C 248.281,404.051 247.449,402.561 247.838,401.138 C 248.241,399.701 249.718,398.868 251.141,399.258 C 252.578,399.661 253.41,401.138 253.021,402.561"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.066 398.157 C 248.429,398.264 248.711,398.412 248.845,398.492 C 248.979,398.586 249.02,398.707 248.899,398.788 C 248.778,398.868 248.563,399.029 248.442,399.137 C 248.295,399.258 248.201,399.285 247.999,399.164 C 247.637,398.962 246.871,398.412 246.683,398.157 C 246.576,398.022 246.67,397.969 246.871,397.955 C 247.14,397.942 247.677,398.049 248.066,398.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.16 400.99 C 246.361,401.057 246.845,401.299 246.979,401.406 C 247.126,401.5 247.341,401.728 247.328,401.997 C 247.301,402.306 247.328,402.964 247.462,403.179 C 247.637,403.46 247.61,403.581 247.355,403.541 C 247.153,403.501 246.63,403.313 246.482,403.232 C 246.334,403.165 246.119,403.031 246.052,402.829 C 245.918,402.413 245.878,401.554 245.958,401.124 C 245.985,400.95 246.066,400.95 246.16,400.99"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 254.35 399.889 C 253.988,399.795 253.679,399.781 253.518,399.781 C 253.357,399.795 253.263,399.875 253.316,399.996 C 253.384,400.13 253.491,400.386 253.531,400.533 C 253.598,400.708 253.666,400.788 253.894,400.802 C 254.31,400.802 255.25,400.721 255.545,400.6 C 255.693,400.533 255.639,400.439 255.478,400.332 C 255.25,400.184 254.74,399.996 254.35,399.889z"/>
<path style="fill: #00ff00; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 254.538 403.299 C 254.337,403.246 253.786,403.219 253.612,403.232 C 253.451,403.246 253.142,403.326 253.021,403.568 C 252.887,403.85 252.524,404.4 252.296,404.521 C 252.001,404.669 251.96,404.79 252.202,404.87 C 252.39,404.951 252.941,405.058 253.102,405.072 C 253.276,405.085 253.518,405.085 253.679,404.938 C 254.028,404.656 254.485,403.93 254.646,403.528 C 254.713,403.366 254.646,403.326 254.538,403.299z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.35 399.889 C 253.988,399.795 253.679,399.781 253.518,399.781 C 253.357,399.795 253.263,399.875 253.316,399.996 C 253.384,400.13 253.491,400.386 253.531,400.533 C 253.598,400.708 253.666,400.788 253.894,400.802 C 254.31,400.802 255.25,400.721 255.545,400.6 C 255.693,400.533 255.639,400.439 255.478,400.332 C 255.25,400.184 254.74,399.996 254.35,399.889"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.538 403.299 C 254.337,403.246 253.786,403.219 253.612,403.232 C 253.451,403.246 253.142,403.326 253.021,403.568 C 252.887,403.85 252.524,404.4 252.296,404.521 C 252.001,404.669 251.96,404.79 252.202,404.87 C 252.39,404.951 252.941,405.058 253.102,405.072 C 253.276,405.085 253.518,405.085 253.679,404.938 C 254.028,404.656 254.485,403.93 254.646,403.528 C 254.713,403.366 254.646,403.326 254.538,403.299"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.095 387.791 L 254.981,384.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.391 387.871 L 255.277,384.662"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 260.688 380.889 C 260.688,380.889 260.178,380.741 259.748,380.634 C 259.372,380.527 258.835,380.379 258.835,380.379"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 258.916 397.351 C 259.265,396.102 260.702,389.845 260.769,388.986 C 260.836,388.113 260.514,387.012 260.044,386.797 C 260.07,386.488 260.07,386.314 260.07,386.314 C 259.963,386.26 259.842,386.22 259.735,386.179 L 259.762,386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226 L 257.143,385.24 C 256.499,385.025 255.841,384.823 255.183,384.649 C 253.491,384.179 251.799,383.816 250.121,383.561 C 250.121,383.561 250.04,383.722 249.893,383.991 L 249.893,383.991 C 249.382,383.951 248.55,384.716 248.16,385.495 C 247.771,386.273 245.797,392.383 245.448,393.645 C 245.099,394.894 244.441,398.076 244.146,399.661 C 243.85,401.245 243.582,404.011 242.561,407.704 C 241.957,409.879 240.99,413.115 240.48,414.471 C 240.346,414.82 239.285,416.619 240.829,417.237 C 242.346,417.828 244.616,418.486 245.757,418.795 C 246.898,419.117 249.167,419.708 250.779,419.976 C 252.417,420.245 252.43,418.163 252.497,417.788 C 252.753,416.364 253.585,413.088 254.176,410.913 C 255.196,407.22 256.391,404.709 256.955,403.192 C 257.506,401.688 258.567,398.613 258.916,397.351"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 247.1 406.133 C 246.925,406.764 246.267,407.14 245.623,406.965 C 244.978,406.79 244.602,406.133 244.777,405.488 C 244.965,404.844 245.623,404.468 246.267,404.642 C 246.912,404.817 247.288,405.488 247.1,406.133z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 250.148 407.408 C 249.973,408.053 249.302,408.429 248.657,408.254 C 248.026,408.08 247.65,407.408 247.825,406.777 C 247.999,406.133 248.657,405.757 249.302,405.931 C 249.946,406.106 250.322,406.777 250.148,407.408z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 253.424 407.878 C 253.249,408.509 252.578,408.885 251.933,408.711 C 251.302,408.536 250.926,407.878 251.101,407.234 C 251.276,406.589 251.933,406.213 252.578,406.388 C 253.223,406.562 253.598,407.234 253.424,407.878z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 246.375 408.778 C 246.2,409.422 245.529,409.798 244.898,409.61 C 244.253,409.436 243.877,408.778 244.052,408.133 C 244.226,407.489 244.898,407.113 245.529,407.287 C 246.173,407.475 246.549,408.133 246.375,408.778z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 249.409 410.067 C 249.235,410.711 248.577,411.087 247.932,410.899 C 247.288,410.725 246.912,410.067 247.086,409.422 C 247.274,408.778 247.932,408.402 248.577,408.576 C 249.208,408.764 249.597,409.422 249.409,410.067z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 252.699 410.523 C 252.511,411.154 251.853,411.544 251.208,411.356 C 250.564,411.181 250.188,410.523 250.362,409.879 C 250.55,409.234 251.208,408.858 251.853,409.033 C 252.497,409.221 252.873,409.879 252.699,410.523z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 245.649 411.423 C 245.475,412.067 244.804,412.443 244.159,412.269 C 243.528,412.094 243.139,411.423 243.327,410.778 C 243.501,410.147 244.159,409.758 244.804,409.946 C 245.448,410.12 245.824,410.778 245.649,411.423z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 248.684 412.712 C 248.509,413.356 247.838,413.732 247.207,413.558 C 246.563,413.383 246.187,412.712 246.361,412.067 C 246.536,411.423 247.207,411.06 247.838,411.235 C 248.483,411.409 248.859,412.067 248.684,412.712z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 251.96 413.168 C 251.786,413.813 251.114,414.189 250.483,414.001 C 249.839,413.826 249.463,413.168 249.637,412.524 C 249.812,411.879 250.483,411.503 251.114,411.691 C 251.759,411.866 252.135,412.524 251.96,413.168z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 244.911 414.068 C 244.736,414.713 244.065,415.089 243.434,414.914 C 242.789,414.739 242.413,414.082 242.588,413.437 C 242.763,412.793 243.434,412.417 244.065,412.591 C 244.71,412.766 245.086,413.437 244.911,414.082 L 244.911,414.068z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 247.959 415.357 C 247.771,416.002 247.113,416.378 246.469,416.203 C 245.824,416.029 245.448,415.357 245.636,414.726 C 245.811,414.082 246.469,413.706 247.113,413.88 C 247.758,414.055 248.134,414.726 247.959,415.357z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 251.235 415.814 C 251.047,416.458 250.389,416.834 249.745,416.66 C 249.1,416.485 248.724,415.814 248.912,415.169 C 249.087,414.538 249.745,414.162 250.389,414.337 C 251.034,414.511 251.41,415.169 251.235,415.814z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.428 417.156 C 246.415,417.21 246.307,417.237 246.187,417.21 C 246.079,417.17 245.999,417.103 246.025,417.036 C 246.039,416.982 246.146,416.955 246.254,416.982 C 246.361,417.009 246.442,417.089 246.428,417.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.025 417.036 L 245.636,418.419"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.079 417.156 L 245.73,418.445"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.428 417.156 L 246.039,418.526"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 246.307 417.21 L 245.958,418.499"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.751 397.19 L 248.483,398.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 248.859 397.217 L 248.59,398.184"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.27 398.707 L 254.001,399.674"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.162 398.68 L 253.894,399.647"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 259.762 386.193 C 259.762,386.193 260.097,384.796 260.299,383.83 C 260.661,381.963 260.688,381.023 260.688,381.023 C 260.688,380.768 260.621,380.553 260.393,380.486 L 259.305,380.191 C 259.077,380.124 258.916,380.271 258.768,380.5 C 258.768,380.5 258.338,381.359 257.748,383.118 C 257.425,384.058 257.13,385.226 257.13,385.226"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 259.896 385.683 C 259.023,385.347 258.15,385.038 257.251,384.756"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 249.033 385.871 C 250.819,386.126 252.739,386.529 254.525,387.025 C 256.311,387.522 258.164,388.153 259.829,388.852"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" fill-rule="evenodd" d="M 256.7 398.922 C 256.633,399.164 256.391,399.298 256.15,399.231 L 246.858,396.666 C 246.616,396.599 246.482,396.357 246.549,396.129 L 248.174,390.248 C 248.241,390.006 248.483,389.872 248.711,389.939 L 258.016,392.504 C 258.258,392.571 258.392,392.813 258.325,393.054 L 256.7,398.935 L 256.7,398.922z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.095 387.791 L 254.981,384.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 254.391 387.871 L 255.277,384.662"/>
</g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="327.424" y1="326.359" x2="444.266" y2="375.437"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="259.522" y1="401.737" x2="439.089" y2="384.112"/>
<g>
<path style="fill: #7a7a5a; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 290.594 477.19 C 290.943,475.941 292.38,469.684 292.447,468.811 C 292.514,467.938 292.192,466.851 291.722,466.623 C 291.749,466.314 291.749,466.139 291.749,466.139 C 291.641,466.099 291.521,466.059 291.413,466.005 L 291.453,466.018 C 291.453,466.018 291.776,464.622 291.977,463.655 C 292.34,461.802 292.38,460.862 292.38,460.862 C 292.367,460.607 292.299,460.379 292.071,460.312 L 290.984,460.016 C 290.755,459.949 290.594,460.097 290.446,460.325 C 290.446,460.325 290.017,461.184 289.426,462.957 C 289.104,463.883 288.808,465.065 288.808,465.065 L 288.822,465.065 C 288.177,464.85 287.519,464.662 286.861,464.474 C 285.169,464.004 283.491,463.655 281.799,463.4 C 281.799,463.4 281.719,463.548 281.571,463.83 C 281.061,463.776 280.228,464.555 279.839,465.334 C 279.449,466.112 277.476,472.222 277.126,473.471 C 276.777,474.719 276.119,477.915 275.824,479.499 C 275.529,481.084 275.26,483.85 274.24,487.529 C 273.635,489.704 272.669,492.954 272.158,494.296 C 272.024,494.659 270.963,496.445 272.507,497.062 C 274.025,497.667 276.294,498.311 277.435,498.633 C 278.577,498.942 280.846,499.546 282.457,499.815 C 284.095,500.084 284.109,497.989 284.176,497.613 C 284.431,496.203 285.263,492.913 285.854,490.738 C 286.875,487.046 288.07,484.548 288.634,483.031 C 289.184,481.514 290.245,478.439 290.594,477.19z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 290.594 477.19 C 290.943,475.941 292.38,469.684 292.447,468.811 C 292.514,467.938 292.192,466.851 291.722,466.623 C 291.749,466.314 291.749,466.139 291.749,466.139 C 291.641,466.099 291.521,466.059 291.413,466.005 L 291.453,466.018 C 291.453,466.018 291.776,464.622 291.977,463.655 C 292.34,461.802 292.38,460.862 292.38,460.862 C 292.367,460.607 292.299,460.379 292.071,460.312 L 290.984,460.016 C 290.755,459.949 290.594,460.097 290.446,460.325 C 290.446,460.325 290.017,461.184 289.426,462.957 C 289.104,463.883 288.808,465.065 288.808,465.065 L 288.822,465.065 C 288.177,464.85 287.519,464.662 286.861,464.474 C 285.169,464.004 283.491,463.655 281.799,463.4 C 281.799,463.4 281.719,463.548 281.571,463.83 L 281.571,463.83 C 281.061,463.776 280.228,464.555 279.839,465.334 C 279.449,466.112 277.476,472.222 277.126,473.471 C 276.777,474.719 276.119,477.915 275.824,479.499 C 275.529,481.084 275.26,483.85 274.24,487.529 C 273.635,489.704 272.669,492.954 272.158,494.296 C 272.024,494.659 270.963,496.445 272.507,497.062 C 274.025,497.667 276.294,498.311 277.435,498.633 C 278.577,498.942 280.846,499.546 282.457,499.815 C 284.095,500.084 284.109,497.989 284.176,497.613 C 284.431,496.203 285.263,492.913 285.854,490.738 C 286.875,487.046 288.07,484.548 288.634,483.031 C 289.184,481.514 290.245,478.439 290.594,477.19"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 L 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351"/>
<path style="fill: #c9c9b6; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ecece7" fill-rule="evenodd" d="M 280.336 463.601 C 280.336,463.601 278.12,468.126 276.845,472.719 C 275.341,478.184 275.126,479.996 275.354,482.534 C 275.394,483.058 275.918,483.702 276.495,483.863 C 276.724,483.917 276.992,483.998 277.1,484.024 C 277.22,484.065 277.65,484.159 277.999,484.441 C 278.362,484.723 278.442,484.79 278.657,484.897 C 278.859,485.018 278.899,485.099 279.49,485.26 C 280.08,485.421 280.148,485.381 280.389,485.381 C 280.631,485.394 280.738,485.381 281.195,485.327 C 281.638,485.26 282.054,485.394 282.175,485.421 C 282.283,485.461 282.551,485.528 282.779,485.595 C 283.357,485.757 284.136,485.475 284.444,485.045 C 285.935,482.991 286.687,481.312 288.191,475.847 C 289.453,471.255 289.869,466.233 289.869,466.233 L 280.336,463.601z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 283.021 482.561 C 282.632,483.998 281.141,484.83 279.718,484.441 C 278.281,484.051 277.449,482.561 277.838,481.138 C 278.241,479.701 279.718,478.868 281.141,479.258 C 282.578,479.661 283.41,481.138 283.021,482.561z"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 278.066 478.157 C 278.429,478.264 278.711,478.412 278.845,478.492 C 278.979,478.586 279.02,478.707 278.899,478.788 C 278.778,478.868 278.563,479.029 278.442,479.137 C 278.295,479.258 278.201,479.285 277.999,479.164 C 277.637,478.962 276.871,478.412 276.683,478.157 C 276.576,478.022 276.67,477.969 276.871,477.955 C 277.14,477.942 277.677,478.049 278.066,478.157z"/>
<path style="fill: #ff0000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 276.16 480.99 C 276.361,481.057 276.845,481.299 276.979,481.406 C 277.126,481.5 277.341,481.728 277.328,481.997 C 277.301,482.306 277.328,482.964 277.462,483.179 C 277.637,483.46 277.61,483.581 277.355,483.541 C 277.153,483.501 276.63,483.313 276.482,483.232 C 276.334,483.165 276.119,483.031 276.052,482.829 C 275.918,482.413 275.878,481.554 275.958,481.124 C 275.985,480.95 276.066,480.95 276.16,480.99z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 283.021 482.561 C 282.632,483.998 281.141,484.83 279.718,484.441 C 278.281,484.051 277.449,482.561 277.838,481.138 C 278.241,479.701 279.718,478.868 281.141,479.258 C 282.578,479.661 283.41,481.138 283.021,482.561"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.066 478.157 C 278.429,478.264 278.711,478.412 278.845,478.492 C 278.979,478.586 279.02,478.707 278.899,478.788 C 278.778,478.868 278.563,479.029 278.442,479.137 C 278.295,479.258 278.201,479.285 277.999,479.164 C 277.637,478.962 276.871,478.412 276.683,478.157 C 276.576,478.022 276.67,477.969 276.871,477.955 C 277.14,477.942 277.677,478.049 278.066,478.157"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.16 480.99 C 276.361,481.057 276.845,481.299 276.979,481.406 C 277.126,481.5 277.341,481.728 277.328,481.997 C 277.301,482.306 277.328,482.964 277.462,483.179 C 277.637,483.46 277.61,483.581 277.355,483.541 C 277.153,483.501 276.63,483.313 276.482,483.232 C 276.334,483.165 276.119,483.031 276.052,482.829 C 275.918,482.413 275.878,481.554 275.958,481.124 C 275.985,480.95 276.066,480.95 276.16,480.99"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 284.35 479.889 C 283.988,479.795 283.679,479.781 283.518,479.781 C 283.357,479.795 283.263,479.875 283.316,479.996 C 283.384,480.13 283.491,480.386 283.531,480.533 C 283.598,480.708 283.666,480.788 283.894,480.802 C 284.31,480.802 285.25,480.721 285.545,480.6 C 285.693,480.533 285.639,480.439 285.478,480.332 C 285.25,480.184 284.74,479.996 284.35,479.889z"/>
<path style="fill: #00ff00; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 284.538 483.299 C 284.337,483.246 283.786,483.219 283.612,483.232 C 283.451,483.246 283.142,483.326 283.021,483.568 C 282.887,483.85 282.524,484.4 282.296,484.521 C 282.001,484.669 281.96,484.79 282.202,484.87 C 282.39,484.951 282.941,485.058 283.102,485.072 C 283.276,485.085 283.518,485.085 283.679,484.938 C 284.028,484.656 284.485,483.93 284.646,483.528 C 284.713,483.366 284.646,483.326 284.538,483.299z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.35 479.889 C 283.988,479.795 283.679,479.781 283.518,479.781 C 283.357,479.795 283.263,479.875 283.316,479.996 C 283.384,480.13 283.491,480.386 283.531,480.533 C 283.598,480.708 283.666,480.788 283.894,480.802 C 284.31,480.802 285.25,480.721 285.545,480.6 C 285.693,480.533 285.639,480.439 285.478,480.332 C 285.25,480.184 284.74,479.996 284.35,479.889"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.538 483.299 C 284.337,483.246 283.786,483.219 283.612,483.232 C 283.451,483.246 283.142,483.326 283.021,483.568 C 282.887,483.85 282.524,484.4 282.296,484.521 C 282.001,484.669 281.96,484.79 282.202,484.87 C 282.39,484.951 282.941,485.058 283.102,485.072 C 283.276,485.085 283.518,485.085 283.679,484.938 C 284.028,484.656 284.485,483.93 284.646,483.528 C 284.713,483.366 284.646,483.326 284.538,483.299"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.095 467.791 L 284.981,464.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.391 467.871 L 285.277,464.662"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 290.688 460.889 C 290.688,460.889 290.178,460.741 289.748,460.634 C 289.372,460.527 288.835,460.379 288.835,460.379"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 288.916 477.351 C 289.265,476.102 290.702,469.845 290.769,468.986 C 290.836,468.113 290.514,467.012 290.044,466.797 C 290.07,466.488 290.07,466.314 290.07,466.314 C 289.963,466.26 289.842,466.22 289.735,466.179 L 289.762,466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226 L 287.143,465.24 C 286.499,465.025 285.841,464.823 285.183,464.649 C 283.491,464.179 281.799,463.816 280.121,463.561 C 280.121,463.561 280.04,463.722 279.893,463.991 L 279.893,463.991 C 279.382,463.951 278.55,464.716 278.16,465.495 C 277.771,466.273 275.797,472.383 275.448,473.645 C 275.099,474.894 274.441,478.076 274.146,479.661 C 273.85,481.245 273.582,484.011 272.561,487.704 C 271.957,489.879 270.99,493.115 270.48,494.471 C 270.346,494.82 269.285,496.619 270.829,497.237 C 272.346,497.828 274.616,498.486 275.757,498.795 C 276.898,499.117 279.167,499.708 280.779,499.976 C 282.417,500.245 282.43,498.163 282.497,497.788 C 282.753,496.364 283.585,493.088 284.176,490.913 C 285.196,487.22 286.391,484.709 286.955,483.192 C 287.506,481.688 288.567,478.613 288.916,477.351"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 277.1 486.133 C 276.925,486.764 276.267,487.14 275.623,486.965 C 274.978,486.79 274.602,486.133 274.777,485.488 C 274.965,484.844 275.623,484.468 276.267,484.642 C 276.912,484.817 277.288,485.488 277.1,486.133z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 280.148 487.408 C 279.973,488.053 279.302,488.429 278.657,488.254 C 278.026,488.08 277.65,487.408 277.825,486.777 C 277.999,486.133 278.657,485.757 279.302,485.931 C 279.946,486.106 280.322,486.777 280.148,487.408z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 283.424 487.878 C 283.249,488.509 282.578,488.885 281.933,488.711 C 281.302,488.536 280.926,487.878 281.101,487.234 C 281.276,486.589 281.933,486.213 282.578,486.388 C 283.223,486.562 283.598,487.234 283.424,487.878z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 276.375 488.778 C 276.2,489.422 275.529,489.798 274.898,489.61 C 274.253,489.436 273.877,488.778 274.052,488.133 C 274.226,487.489 274.898,487.113 275.529,487.287 C 276.173,487.475 276.549,488.133 276.375,488.778z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 279.409 490.067 C 279.235,490.711 278.577,491.087 277.932,490.899 C 277.288,490.725 276.912,490.067 277.086,489.422 C 277.274,488.778 277.932,488.402 278.577,488.576 C 279.208,488.764 279.597,489.422 279.409,490.067z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 282.699 490.523 C 282.511,491.154 281.853,491.544 281.208,491.356 C 280.564,491.181 280.188,490.523 280.362,489.879 C 280.55,489.234 281.208,488.858 281.853,489.033 C 282.497,489.221 282.873,489.879 282.699,490.523z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 275.649 491.423 C 275.475,492.067 274.804,492.443 274.159,492.269 C 273.528,492.094 273.139,491.423 273.327,490.778 C 273.501,490.147 274.159,489.758 274.804,489.946 C 275.448,490.12 275.824,490.778 275.649,491.423z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 278.684 492.712 C 278.509,493.356 277.838,493.732 277.207,493.558 C 276.563,493.383 276.187,492.712 276.361,492.067 C 276.536,491.423 277.207,491.06 277.838,491.235 C 278.483,491.409 278.859,492.067 278.684,492.712z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 281.96 493.168 C 281.786,493.813 281.114,494.189 280.483,494.001 C 279.839,493.826 279.463,493.168 279.637,492.524 C 279.812,491.879 280.483,491.503 281.114,491.691 C 281.759,491.866 282.135,492.524 281.96,493.168z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 274.911 494.068 C 274.736,494.713 274.065,495.089 273.434,494.914 C 272.789,494.739 272.413,494.082 272.588,493.437 C 272.763,492.793 273.434,492.417 274.065,492.591 C 274.71,492.766 275.086,493.437 274.911,494.082 L 274.911,494.068z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 277.959 495.357 C 277.771,496.002 277.113,496.378 276.469,496.203 C 275.824,496.029 275.448,495.357 275.636,494.726 C 275.811,494.082 276.469,493.706 277.113,493.88 C 277.758,494.055 278.134,494.726 277.959,495.357z"/>
<path style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.02; stroke: #ffffff" fill-rule="evenodd" d="M 281.235 495.814 C 281.047,496.458 280.389,496.834 279.745,496.66 C 279.1,496.485 278.724,495.814 278.912,495.169 C 279.087,494.538 279.745,494.162 280.389,494.337 C 281.034,494.511 281.41,495.169 281.235,495.814z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.428 497.156 C 276.415,497.21 276.307,497.237 276.187,497.21 C 276.079,497.17 275.999,497.103 276.025,497.036 C 276.039,496.982 276.146,496.955 276.254,496.982 C 276.361,497.009 276.442,497.089 276.428,497.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.025 497.036 L 275.636,498.419"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.079 497.156 L 275.73,498.445"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.428 497.156 L 276.039,498.526"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 276.307 497.21 L 275.958,498.499"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.751 477.19 L 278.483,478.143"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 278.859 477.217 L 278.59,478.184"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.27 478.707 L 284.001,479.674"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.162 478.68 L 283.894,479.647"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 289.762 466.193 C 289.762,466.193 290.097,464.796 290.299,463.83 C 290.661,461.963 290.688,461.023 290.688,461.023 C 290.688,460.768 290.621,460.553 290.393,460.486 L 289.305,460.191 C 289.077,460.124 288.916,460.271 288.768,460.5 C 288.768,460.5 288.338,461.359 287.748,463.118 C 287.425,464.058 287.13,465.226 287.13,465.226"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #000000" d="M 289.896 465.683 C 289.023,465.347 288.15,465.038 287.251,464.756"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 279.033 465.871 C 280.819,466.126 282.739,466.529 284.525,467.025 C 286.311,467.522 288.164,468.153 289.829,468.852"/>
<path style="fill: #b7b79d; fill-opacity: 1; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" fill-rule="evenodd" d="M 286.7 478.922 C 286.633,479.164 286.391,479.298 286.15,479.231 L 276.858,476.666 C 276.616,476.599 276.482,476.357 276.549,476.129 L 278.174,470.248 C 278.241,470.006 278.483,469.872 278.711,469.939 L 288.016,472.504 C 288.258,472.571 288.392,472.813 288.325,473.054 L 286.7,478.935 L 286.7,478.922z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.095 467.791 L 284.981,464.582"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 284.391 467.871 L 285.277,464.662"/>
</g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="290.438" y1="479.005" x2="440.053" y2="393.475"/>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 714.565 323.746 L 714.565,310.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 714.565 323.53 L 714.565,314.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 714.954 311.638 L 714.135,311.638 L 714.135,310 L 714.954,310 L 714.954,311.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 714.954 311.638 L 714.135,311.638 L 714.135,310 L 714.954,310 L 714.954,311.638"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 694.709 323.746 L 694.709,310.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 694.709 323.53 L 694.709,314.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 695.098 311.638 L 694.279,311.638 L 694.279,310 L 695.098,310 L 695.098,311.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 695.098 311.638 L 694.279,311.638 L 694.279,310 L 695.098,310 L 695.098,311.638"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 720.119 325.447 C 720.119,328.681 713.377,331.303 705.06,331.303 C 696.742,331.303 690,328.681 690,325.447 L 690,334.025 C 690,337.26 696.742,339.882 705.06,339.882 C 713.377,339.882 720.119,337.26 720.119,334.025 L 720.119,325.447z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 720.119 325.447 C 720.119,328.681 713.377,331.303 705.06,331.303 C 696.742,331.303 690,328.681 690,325.447 L 690,334.025 C 690,337.26 696.742,339.882 705.06,339.882 C 713.377,339.882 720.119,337.26 720.119,334.025 L 720.119,325.447"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 705.06 331.303 C 713.377,331.303 720.119,328.681 720.119,325.447 C 720.119,322.212 713.377,319.59 705.06,319.59 C 696.742,319.59 690,322.212 690,325.447 C 690,328.681 696.742,331.303 705.06,331.303z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 705.06 331.303 C 713.377,331.303 720.119,328.681 720.119,325.447 C 720.119,322.212 713.377,319.59 705.06,319.59 C 696.742,319.59 690,322.212 690,325.447 C 690,328.681 696.742,331.303 705.06,331.303"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 701.621 323.157 L 702.864,325.022 L 698.163,326.108 L 699.19,325.254 L 691.923,324.012 L 693.746,322.645 L 700.758,323.832 L 701.621,323.157z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 708.237 327.68 L 707.388,325.757 L 711.629,324.91 L 710.894,325.568 L 717.962,326.776 L 716.268,328.133 L 709.24,326.813 L 708.237,327.68z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 705.918 322.138 L 710.668,320.838 L 710.724,322.874 L 709.538,322.647 L 707.218,324.57 L 705.006,324.247 L 707.399,322.367 L 705.918,322.138z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 703.882 329.434 L 699.359,330.281 L 699.19,328.19 L 700.489,328.472 L 702.979,326.345 L 705.183,326.719 L 702.525,329.037 L 703.882,329.434z"/>
</g>
<g>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 774.565 453.746 L 774.565,440.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 774.565 453.53 L 774.565,444.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 774.954 441.638 L 774.135,441.638 L 774.135,440 L 774.954,440 L 774.954,441.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 774.954 441.638 L 774.135,441.638 L 774.135,440 L 774.954,440 L 774.954,441.638"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #00aed9" d="M 754.709 453.746 L 754.709,440.35"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #00aed9" d="M 754.709 453.53 L 754.709,444.341"/>
<path style="fill: #000000; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 755.098 441.638 L 754.279,441.638 L 754.279,440 L 755.098,440 L 755.098,441.638z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #00aed9" d="M 755.098 441.638 L 754.279,441.638 L 754.279,440 L 755.098,440 L 755.098,441.638"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 780.119 455.447 C 780.119,458.681 773.377,461.303 765.06,461.303 C 756.742,461.303 750,458.681 750,455.447 L 750,464.025 C 750,467.26 756.742,469.882 765.06,469.882 C 773.377,469.882 780.119,467.26 780.119,464.025 L 780.119,455.447z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 780.119 455.447 C 780.119,458.681 773.377,461.303 765.06,461.303 C 756.742,461.303 750,458.681 750,455.447 L 750,464.025 C 750,467.26 756.742,469.882 765.06,469.882 C 773.377,469.882 780.119,467.26 780.119,464.025 L 780.119,455.447"/>
<path style="fill: #00aed9; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 765.06 461.303 C 773.377,461.303 780.119,458.681 780.119,455.447 C 780.119,452.212 773.377,449.59 765.06,449.59 C 756.742,449.59 750,452.212 750,455.447 C 750,458.681 756.742,461.303 765.06,461.303z"/>
<path style="fill: none; stroke-opacity: 1; stroke-width: 0.8; stroke: #ffffff" d="M 765.06 461.303 C 773.377,461.303 780.119,458.681 780.119,455.447 C 780.119,452.212 773.377,449.59 765.06,449.59 C 756.742,449.59 750,452.212 750,455.447 C 750,458.681 756.742,461.303 765.06,461.303"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 761.621 453.157 L 762.864,455.022 L 758.163,456.108 L 759.19,455.254 L 751.923,454.012 L 753.746,452.645 L 760.758,453.832 L 761.621,453.157z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 768.237 457.68 L 767.388,455.757 L 771.629,454.91 L 770.894,455.568 L 777.962,456.776 L 776.268,458.133 L 769.24,456.813 L 768.237,457.68z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 765.918 452.138 L 770.668,450.838 L 770.724,452.874 L 769.538,452.647 L 767.218,454.57 L 765.006,454.247 L 767.399,452.367 L 765.918,452.138z"/>
<path style="fill: #ffffff; fill-opacity: 1; stroke: none" fill-rule="evenodd" d="M 763.882 459.434 L 759.359,460.281 L 759.19,458.19 L 760.489,458.472 L 762.979,456.345 L 765.183,456.719 L 762.525,459.037 L 763.882,459.434z"/>
</g>
<text font-size="21.4489" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:italic;font-weight:normal" x="270" y="430">
<tspan x="270" y="430">Clients</tspan>
</text>
</g>
<g id="to-mesh">
<g>
<line style="fill: none; stroke-opacity: 1; stroke-width: 4; stroke: #800080" x1="480" y1="380" x2="568" y2="380"/>
<polygon style="fill: #800080; fill-opacity: 1; stroke-opacity: 1; stroke-width: 4; stroke: #800080" fill-rule="evenodd" points="568,385 578,380 568,375 "/>
</g>
<rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 20; stroke: #000000" x="430" y="290" width="380" height="220" rx="0" ry="0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 99 KiB

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="900pt" height="600pt" id="svg2" sodipodi:version="0.32" inkscape:version="0.43" sodipodi:docname="multicast.svg" sodipodi:docbase="/home/cyberix/Desktop">
<metadata id="metadata5027">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview inkscape:window-height="555" inkscape:window-width="822" inkscape:pageshadow="2" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" id="base" inkscape:zoom="1" inkscape:cx="381.10844" inkscape:cy="421.95237" inkscape:window-x="83" inkscape:window-y="46" inkscape:current-layer="svg2"/>
<defs id="defs4">
<marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow2Lend">
<path d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(-1.1,0,0,-1.1,5.5,0)" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" id="path3334"/>
</marker>
<marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow1Mstart">
<path d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" id="path3349"/>
</marker>
<marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow1Lstart">
<path d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " transform="scale(0.8,0.8)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" id="path3355"/>
</marker>
<marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow2Mend">
<path d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="matrix(-0.6,0,0,-0.6,3,0)" style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" id="path3328"/>
</marker>
<marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow1Mend">
<path d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " transform="scale(-0.4,-0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" id="path3346"/>
</marker>
<marker refX="0" refY="0" orient="auto" style="overflow:visible" id="Arrow1Lend">
<path d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " transform="scale(-0.8,-0.8)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" id="path3352"/>
</marker>
</defs>
<path id="path4261" style="fill:#ff5555;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 223.53106,327.10441 C 223.53106,352.62811 202.95773,373.31911 177.57924,373.31911 C 152.20074,373.31911 131.62741,352.62811 131.62741,327.10441 C 131.62741,301.58081 152.20074,280.88981 177.57924,280.88981 C 202.95773,280.88981 223.53106,301.58081 223.53106,327.10441 z "/>
<path id="path4263" style="fill:#ffff33;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 1037.931,293.05631 C 1037.931,318.58001 1017.3577,339.27101 991.97924,339.27101 C 966.60074,339.27101 946.02741,318.58001 946.02741,293.05631 C 946.02741,267.53271 966.60074,246.84171 991.97924,246.84171 C 1017.3577,246.84171 1037.931,267.53271 1037.931,293.05631 z "/>
<path id="path4265" style="fill:#ffff33;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 632.21606,104.97986 C 632.21606,130.50353 611.64273,151.19455 586.26424,151.19455 C 560.88574,151.19455 540.31241,130.50353 540.31241,104.97986 C 540.31241,79.456184 560.88574,58.765174 586.26424,58.765174 C 611.64273,58.765174 632.21606,79.456184 632.21606,104.97986 z "/>
<path id="path4267" style="fill:#55ff55;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 603.64506,607.83681 C 603.64506,633.36051 583.07173,654.05151 557.69324,654.05151 C 532.31474,654.05151 511.74141,633.36051 511.74141,607.83681 C 511.74141,582.31321 532.31474,561.62221 557.69324,561.62221 C 583.07173,561.62221 603.64506,582.31321 603.64506,607.83681 z "/>
<path id="path4269" style="fill:#55ff55;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 903.64506,147.83696 C 903.64506,173.36063 883.07173,194.05161 857.69324,194.05161 C 832.31474,194.05161 811.74141,173.36063 811.74141,147.83696 C 811.74141,122.31328 832.31474,101.62227 857.69324,101.62227 C 883.07173,101.62227 903.64506,122.31328 903.64506,147.83696 z "/>
<path id="path4271" style="fill:#ffff33;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 817.93106,413.55121 C 817.93106,439.07491 797.35773,459.76591 771.97924,459.76591 C 746.60074,459.76591 726.02741,439.07491 726.02741,413.55121 C 726.02741,388.02761 746.60074,367.33661 771.97924,367.33661 C 797.35773,367.33661 817.93106,388.02761 817.93106,413.55121 z "/>
<path id="path4273" style="fill:#55ff55;fill-opacity:1;stroke:#000000;stroke-width:7.57058573;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 915.07406,584.97981 C 915.07406,610.50351 894.50073,631.19451 869.12224,631.19451 C 843.74374,631.19451 823.17041,610.50351 823.17041,584.97981 C 823.17041,559.45621 843.74374,538.76521 869.12224,538.76521 C 894.50073,538.76521 915.07406,559.45621 915.07406,584.97981 z "/>
<path id="path4277" style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 369.68244,325.81177 L 812.01072,165.86573" sodipodi:nodetypes="cc"/>
<path id="path4281" style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 366.80669,324.95185 L 520.83602,583.62361" sodipodi:nodetypes="cc"/>
<path id="path4287" style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4.69999981;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 368.22207,325.49587 L 828.71412,568.06311" sodipodi:nodetypes="cc"/>
<path style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:4.69999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="M 226.9654,327.86162 L 369.65596,325.86694" id="path1410" sodipodi:nodetypes="cc"/>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -0,0 +1,170 @@
gluon-mesh-batman-adv
=====================
.. image:: gluon-mesh-batman-adv-logo.svg
:width: 300 px
B.A.T.M.A.N. Advanced (often referenced as batman-adv) is an implementation of
the B.A.T.M.A.N. routing protocol in form of a linux kernel module operating on layer 2.
Layer 2 means that all client devices will operate in the same, virtual broadcast
domain and will see each other "as if they were connected to one giant switch".
This comes with a set of advantages (like quick and economical client device roaming,
layer 3 protocol agnosticism, broadcast/multicast). But also impediments, especially
layer 2 multicast overhead - which Gluon tries to mitigate to achieve a certain degree
of scalability. See :doc:`gluon-ebtables-filter-multicast` and
:ref:`batman-adv-multicast-architecture` for details.
B.A.T.M.A.N. Advanced project homepage:
* https://www.open-mesh.org/projects/batman-adv/wiki/Wiki
B.A.T.M.A.N. Routing Algorithms
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Two routing algorithms are selectable via
:ref:`site.conf mesh section <user-site-mesh>`: BATMAN_IV and BATMAN_V.
BATMAN_IV - stable
""""""""""""""""""
This is the recommended algorithm to use with `gluon-mesh-batman-adv-15`.
BATMAN_V - experimental
"""""""""""""""""""""""
This is the experimental B.A.T.M.A.N. routing algorithm. It is packet format /
compatibility stable but is still in development.
For more details, see:
* https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_V
.. _batman-adv-multicast-architecture:
Multicast Architecture
----------------------
.. image:: gluon-mesh-batman-adv-multicast.svg
:width: 300 px
While generally broadcast capability is a nice feature of a layer 2
mesh protocol, it quickly reaches its limit.
For meshes with about **50 nodes / 100 clients, or more** it is therefore highly
recommended to add the :doc:`gluon-ebtables-filter-multicast`
package. Also, with the *mesh-batman-adv-15* feature,
:doc:`gluon-ebtables-limit-arp` is selected by default.
Furthermore, by default IGMP and MLD messages are filtered. See
:ref:`site.conf mesh section <user-site-mesh>` and
:ref:`igmp-mld-domain-segmentation` for details.
To achieve some level of scalability for multicast, multicast group
awareness is implemented and utilized in the following ways:
Node-Local Multicast Handling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: gluon-mesh-batman-adv-multicast-architecture-to-clients.svg
A Gluon node sends IGMP/MLD Queries with the following parameters on its
local segment:
* Interval: 20 seconds
* Robustness: 9
* Query Response Interval: 5 seconds
This way, through the returning IGMP/MLD reports, the node learns which
multicast groups its clients are interested in.
This is then used to deliver multicast packets to its own Wifi clients
via individual Wifi unicast transmissions instead of a broadcast transmission.
The advantages of this are:
* Usually higher bitrates: Mostly lower airtime usage
* Acknowledged, retried transmissions (ARQ): Higher reliability
* If no local client is interested: Avoiding the transmission, no airtime usage
Notably multicast for IPv6 Neighbor Discovery usually has only a single
multicast listener in the case of address resolution and usually no
multicast listener for duplicate address detection. Which are the ideal
cases for multicast snooping / multicast to unicast.
The unicast delivery is achieved through utilizing the multicast-to-unicast
feature in OpenWrt/netifd. Which in turn utilizes the multicast-to-unicast
conversion and hairpin features of the Linux bridge, plus the hostapd client
isolation feature, to hand over full delivery control to the bridge.
Mesh-wide Multicast Handling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: gluon-mesh-batman-adv-multicast-architecture-to-mesh.svg
To be able to avoid transmissions not only on the "last mile", the AP interface
to the local clients, but also from the "last mile" into the mesh in the future
multicast listener state is propagated through the mesh:
batman-adv (compat 15) taps into the Linux bridge and inherits the multicast
groups into its translation table. Which then takes care of efficiently
distributing this knowledge to other nodes.
While by that the receiver side is ready to go, the sender part in batman-adv
is disabled for now in Gluon. It will be enabled in a future release.
.. _igmp-mld-domain-segmentation:
IGMP/MLD Domain Segmentation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. image:: gluon-mesh-batman-adv-multicast-architecture-segmentation.svg
Internet Group Membership Protocol and Multicast Listener Discovery Protocol
are the standardized network protocols to query, report and learn multicast
group memberships on the local link for IPv4 (IGMP) and IPv6 (MLD).
By default Gluon filters IGMP and MLD queries and reports towards the mesh
and runs an IGMP/MLD querier on each node for its own local clients.
Furthermore Gluon tags the mesh side bridge port (bat0) as a multicast
router port.
That way, even though the Linux client bridge in Gluon is unable to learn
about multicast memberships behind other nodes, the multicast router port
flag will force it to unconditionally hand over all multicast packets to
batman-adv. Which even with IGMP/MLD filtered, will have full multicast
membership knowledge through its own propagation through the batman-adv
translation table.
Advantages are:
* Reduced overhead through reactive batman-adv multicast TT vs.
periodic IGMP/MLD messages in the mesh
* Increased IGMP/MLD snooping robustness via local, per node
IGMP/MLD queriers
* DDoS vector mitigation
**Note:** For nodes running an operating system other than Gluon, but a bridge
interface on top of the batman-adv interface, you will need to set the
multicast router flag there manually:
``debian$ echo 2 > /sys/class/net/bat0/brport/multicast_router``
"2" for this parameter means to always assume a multicast router behind
this bridge port and to therefore forward all multicast packets to this
port. Versus the default of "1" which means to learn about multicast
routers via IGMP/MLD Queries, PIM and MRD messages; or "0" to always
assume that there is no multicast router behind this port, meaning
to only forward multicast to this port if an according multicast
listener on this link was detected.
Further limitations: IGMP/MLD snooping switches (e.g. "enterprise switches")
behind the client network of a node (LAN ports) are unsupported. It is
advised to disable IGMP/MLD snooping on those enterprise switches for now
or to at least manually mark the port to the Gluon router as a
"multicast router port".
Alternatively, the filtering of IGMP/MLD reports can be disabled via
the site.conf (which is not recommended in large meshes though).
See :ref:`site.conf mesh section <user-site-mesh>` for details.

View File

@ -0,0 +1,49 @@
gluon-mesh-wireless-sae
=======================
This package adds support for SAE on 802.11s mesh connections.
Enabling this package will require all 802.11s mesh connections
to be encrypted using the SAE key agreement scheme. The security
of SAE relies upon the authentication through a shared secret.
In the context of public mesh networks a shared secret is an
obvious oxymoron. Still, this functionality may provide an improvement
over unencrypted mesh connections in that it protects against a
passive attacker who did not observe the key agreement. In addition
Management Frame Protection (802.11w) gets automatically enabled on
wireless mesh interfaces to prevent protocol-level deauthentication attacks.
If `wifi.mesh.sae` is enabled, a shared secret will automatically be
derived from the `prefix6` variable. This is as secure as it gets
for a public mesh network.
For *private* mesh networks `wifi.mesh.sae_passphrase` should be
set to your shared secret.
site.conf
---------
These settings apply to all 802.11s mesh interfaces on all radios.
wifi.mesh.sae \: optional
- ``true`` enables SAE on 802.11s mesh connections
- ``false`` disables SAE on 802.11s mesh connections
- defaults to ``false``
wifi.mesh.sae_passphrase \: optional
- sets a shared secret used to authenticate any two mesh nodes,
crucial for private mesh networks
- should not be set, if the shared secret is shared with untrusted
third parties, like in a publish mesh network
- defaults to an autogenerated value derived from ``prefix6``
Example::
wifi = {
mesh = {
sae = true,
-- sae_passphrase = "<shared secret>",
},
},

View File

@ -0,0 +1,64 @@
gluon-radv-filterd
==================
This package drops all incoming router advertisements except for the
default router with the best metric according to B.A.T.M.A.N. advanced.
Note that advertisements originating from the node itself (for example
via gluon-radvd) are not affected and considered at all.
Selected router
---------------
The router selection mechanism is independent from the batman-adv gateway mode.
In contrast, the device originating the router advertisement could be any router
or client connected to the mesh, as radv-filterd captures all router
advertisements originating from it. All nodes announcing router advertisement
**with** a default lifetime greater than 0 are being considered as candidates.
In case a router is not a batman-adv originator itself, its TQ is defined by
the originator it is connected to. This lookup uses the batman-adv global
translation table.
Initially the router is selected by choosing the candidate with the strongest
TQ. When another candidate can provide a better TQ metric, that outperforms the
currently selected router by X metric units, it will be picked as the new
selected router. The hysteresis threshold is configurable and prevents excessive
flapping of the gateway.
Local routers
-------------
Local routers (i.e. local internet gateways connected to some nodes) that are
connected to the client interface via cable or WLAN instead of via the mesh
(technically: appearing in the transtable_local) are taken into account with a
fake TQ of 512, so that they are always preferred.
Be aware of problems if you plan to use local routers together with the
:doc:`gluon-ebtables-filter-ra-dhcp` package. These router advertisements are
filtered anyway and reach neither the node nor any other client. Therefore the
use of local routers is not possible as long as the package
``gluon-radv-filterd`` is used.
respondd module
---------------
This package also contains a module for respondd that announces the currently
selected router via the ``statistics.gateway6`` property using its interface MAC
address. Note that this is different from the ``statistics.gateway`` property,
which contains the MAC address of the main B.A.T.M.A.N. adv slave interface of
the selected IPv4 gateway.
site.conf
---------
radv_filterd.threshold : optional
- minimal difference in TQ value that another gateway has to be better than
the currently chosen gateway to become the new chosen gateway
- defaults to ``20``
Example::
radv_filterd = {
threshold = 20,
}

View File

@ -0,0 +1,38 @@
gluon-scheduled-domain-switch
=============================
This package allows to switch a routers domain at a given point
in time. This is needed for switching between incompatible transport
protocols (e.g. wired meshing with and without VXLAN).
Nodes will switch when the defined *switch-time* has passed. In case the node was
powered off while this was supposed to happen, it might not be able to acquire the
correct time. In this case, the node will switch after it has not seen any gateway
for a given period of time.
site.conf
---------
All those settings have to be defined exclusively in the domain, not the site.
domain_switch : optional (needed for domains to switch)
target_domain :
- target domain to switch to
switch_after_offline_mins :
- amount of time without reachable gateway to switch unconditionally
switch_time :
- UNIX epoch after which domain will be switched
connection_check_targets :
- array of IPv6 addresses which are probed to determine if the node is
connected to the mesh
Example::
domain_switch = {
target_domain = 'new_domain',
switch_after_offline_mins = 120,
switch_time = 1546344000, -- 01.01.2019 - 12:00 UTC
connection_check_targets = {
'2001:4860:4860::8888',
'2001:4860:4860::8844',
},
},

View File

@ -0,0 +1,29 @@
gluon-web-admin
===============
This package allows the user to set options like the password for ssh access
within config mode. You can define in your ``site.conf`` whether it should be
possible to access the nodes via ssh with a password or not and what the minimum
password length must be.
site.conf
---------
config_mode.remote_login.show_password_form \: optional
- ``true`` the password section in config mode is shown
- ``false`` the password section in config mode is hidden
- defaults to ``false``
config_mode.remote_login.min_password_length \: optional
- sets the minimum allowed password length. Set this to ``1`` to disable the
length check.
- defaults to ``12``
Example::
config_mode = {
remote_login = {
show_password_form = true, -- default false
min_password_length = 12
}
}

View File

@ -0,0 +1,5 @@
gluon-web-logging
=================
The *gluon-web-logging* package adds a new section to advanced settings
to allow GUI-based configuration of a remote syslog server.

Some files were not shown because too many files have changed in this diff Show More