Compare commits

...

1052 Commits

Author SHA1 Message Date
Alexander Böhm bd02ffebde Added site config 2021-08-03 21:30:36 +02:00
Matthias Schiffer a7d28bc965
docs, README: Gluon v2017.1.5 2018-01-31 21:39:04 +01:00
Matthias Schiffer e7a4eb5337
docs: releases/v2017.1.5: add UBNT ERX, mention BLA fix 2018-01-30 18:38:56 +01:00
Matthias Schiffer c2c439013c
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
2018-01-30 18:36:41 +01:00
Matthias Schiffer 0cffad5376
docs: add release notes for v2017.1.5 2018-01-30 18:19:27 +01:00
Andreas Ziegler 9295abcea7 ar71xx: correct model name for TL-WR1043N v5, fixes #1307 2018-01-17 11:54:07 +01:00
Matthias Schiffer d2d8bfa7bd Backport patches for rx buffer stalls on QCA953x and QCA956x
Fixes #1101
2018-01-17 11:46:47 +01:00
David Bauer a72820939f ar71xx: add support for TP-Link TL-WR1043N v5 (#1279) 2018-01-17 11:46:44 +01:00
Matthias Schiffer a4ce8474ff
Merge pull request #1290 from kb-light/er-x-sfp-v2017.1.x
Backport er-x-sfp (master -> v2017.1.x)
2018-01-04 22:02:30 +01:00
Matthias Schiffer 9ed6ff752e
modules: update Gluon packages
906f5ef tunneldigger: clean up version variables in Makefile
b969e70 tunneldigger: Update to newest upstream commit: (#178)
2018-01-04 21:58:18 +01:00
Christof Schulze cc247bc050
modules: update url to lede-project git repository after upstream move (#1292) 2018-01-03 12:58:31 +01:00
Karsten 3ad5937b37 gluon-web-network: make 'PoE Power Port[0-9]' translatable (#1173)
(cherry picked from commit 35237c2ca1)
2017-12-30 22:24:46 +01:00
kb-light 7e9627c5dd 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]

(cherry picked from commit 17d1c65610)
2017-12-30 22:24:46 +01:00
kb-light 21ded59c33 ramips-mt7621: add support for UBNT EdgeRouter X-SFP
(backported from commit 64cfd648cb)
2017-12-30 22:24:31 +01:00
kb-light 2ae74fe737 docs: update ffho site repo (#1145)
(cherry picked from commit 56d74e41c1)
2017-11-26 14:21:54 +01:00
Andreas Ziegler 83bb7ef820 ramips-mt7621: ZBT-WG3526 has no factory image 2017-11-24 00:50:56 +01:00
Andreas Ziegler afbdc4ede1 ramips-mt7621: add ZBT-WG3526 2017-11-24 00:50:51 +01:00
Matthias Schiffer 36bbe88f21
scripts: run feeds.sh with bash like the other scripts handling modules
Fixes #1262
2017-11-23 17:45:48 +01:00
Matthias Schiffer 55706d391d
docs, README: Gluon v2017.1.4 2017-11-15 23:00:19 +01:00
Matthias Schiffer 94f6f2766e
docs: v2017.1.4 release notes 2017-11-15 22:57:18 +01:00
kb-light 7c2636d282
gluon-web-network: make poe_passthrough more generic 2017-11-15 22:51:12 +01:00
kb-light 7268e49a30
gluon-core: update lib/gluon/upgrade/150-poe-passthrough for naming within lede 2017-11-15 22:51:08 +01:00
kb-light 20f693bc4a
gluon-core: lib/gluon/upgrade/150-poe-passthrough: fix indentation 2017-11-15 22:50:59 +01:00
Matthias Schiffer 017fbe88bb
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-07 13:47:38 +01:00
Matthias Schiffer 5a3f7b33b4
modules: update Gluon packages
2e5a247 libpacketmark: fix call of initialization function (again)

Fixes #1245
2017-11-04 21:04:44 +01:00
Florian Beier f4703a3aa6 ar71xx-generic: add support for GL.INet GL-AR300M (#1163) 2017-10-31 16:43:12 +01:00
Matthias Schiffer ad0824136e
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:49:20 +01:00
Matthias Schiffer 0684272823
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 20:49:18 +01:00
Matthias Schiffer 43c92f25fa
build: delete lede/tmp on module updates
LEDE doesn't always notice that the metadata needs to be refreshed.
2017-10-29 20:49:16 +01:00
Matthias Schiffer 8d0dba79e5
modules: update Gluon packages
c2fedc5 libpacketmark: fix call of initialization function
1a8fd4b respondd-module-airtime: Give more helpful error messages

Fixes #1245
2017-10-25 15:03:01 +02:00
Andreas Ziegler dfa11d663d
ar71xx: add TP-Link Archer C25 (#1238)
BROKEN because of stability issues with 5GHz enabled.
2017-10-24 00:34:11 +02:00
Matthias Schiffer ba56b41dda
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:59:10 +02:00
Matthias Schiffer b62af904bb
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-23 19:38:51 +02:00
lrnzo 72e585ceed
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:32:23 +02:00
hexa- e859de8c39 docs: fix typo in v2017.1.3 release notes (#1234) 2017-10-11 02:01:20 +02:00
Matthias Schiffer 3e2e72729f
docs, README: Gluon v2017.1.3 2017-10-04 22:35:45 +02:00
Matthias Schiffer 41f5cdf526
docs: v2017.1.3 release notes 2017-10-04 21:12:03 +02:00
Matthias Schiffer a94d6d3cf8
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 01:22:07 +02:00
Matthias Schiffer 9cecb1e836
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:18:27 +02:00
Matthias Schiffer ff4932e477
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-03 17:17:21 +02:00
Matthias Schiffer 3576c8e6a7
modules: update LEDE
Fixes #1223
2017-09-11 20:28:41 +02:00
Matthias Schiffer 8239d87e8c
modules: update LEDE 2017-09-11 20:28:36 +02:00
Matthias Schiffer 491e8e0332
modules: update LEDE 2017-09-11 20:28:25 +02:00
Matthias Schiffer 5463f925ea
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:06:30 +02:00
Matthias Schiffer 77b39908bd
README: fix typo 2017-08-14 02:07:35 +02:00
Matthias Schiffer f4d642d516
docs, README: Gluon v2017.1.2 2017-08-14 02:01:24 +02:00
Matthias Schiffer 41d28c9332
docs: import v2016.2.7 release notes 2017-08-14 01:57:31 +02:00
Matthias Schiffer 973c6dd479
gluon-mesh-batman-adv: fix radvd start with dns.servers, but without next_node.ip config 2017-08-11 20:58:41 +02:00
Matthias Schiffer d513b22e37
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:59:41 +02:00
Matthias Schiffer b0a6cb7226
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:05:59 +02:00
Matthias Schiffer e740c592ab
docs: add v2017.1.2 release notes 2017-08-07 21:37:58 +02:00
Matthias Schiffer 6114630e3b
modules: update LEDE 2017-08-07 18:01:27 +02:00
Matthias Schiffer 1d16f0d433
modules: update LEDE 2017-07-30 22:20:32 +02:00
Matthias Schiffer c197d028ec
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:56:03 +02:00
Steffen Förster 826ac88493
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 18:12:29 +02:00
Matthias Schiffer bba83bffcc
modules: update LEDE 2017-07-19 17:41:44 +02:00
Matthias Schiffer 4a75648658
Backport a few more sysupgrade packages
Improve error handling a bit, and fix upgrade for some (unsupported or
broken) targets.
2017-07-13 17:59:09 +02:00
Matthias Schiffer 145984eed9
modules: update LEDE 2017-07-13 10:58:09 +02:00
Matthias Schiffer 808723b9fb
Backport sysupgrade patches preventing hangs on certain sysupgrade failures 2017-07-13 01:08:18 +02:00
Matthias Schiffer 1c1b5bdbc3
modules: update LEDE 2017-07-13 01:07:06 +02:00
Matthias Schiffer b854555a3d
modules: update LEDE 2017-07-13 01:06:55 +02:00
Matthias Schiffer d7ace5b8b1
modules: update LEDE 2017-07-08 15:20:58 +02:00
Sunz3r 568997f10f
gluon-config-mode-mesh-vpn: add tunneldigger to reboot page (#1172) 2017-07-06 13:24:45 +02:00
kb-light 113688d83d
build: add show-release make target (#1159)
`make show-release` can be used to discover the current release in scripts.
2017-07-05 16:19:26 +02:00
Matthias Schiffer 7db9bfc273
docs, README: Gluon v2017.1.1 2017-07-03 16:48:38 +02:00
Matthias Schiffer dce540bee5
docs: releases/v2017.1.1: update regarding busybox segfault issue 2017-07-03 01:48:07 +02:00
Matthias Schiffer be55bd4d52
Revert "generic: busybox: enable sha512sum to workaround segfault issue"
This reverts commit dcff68029e.
2017-07-03 01:47:18 +02:00
Matthias Schiffer ad1c3a2f6c
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:47:03 +02:00
Ruben Barkow 7559df3050
gluon-web-admin: typo "your node" (#1169) 2017-07-03 01:45:46 +02:00
Matthias Schiffer 45c62c32cb
docs: add v2017.1.1 release notes 2017-06-26 15:26:32 +02:00
Matthias Schiffer c6a3afa130
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:31 +02:00
David Lutz 5ec5304f80
ramips-rt305x: Add support for A5-V11 (#1151) 2017-06-23 13:24:16 +02:00
Matthias Schiffer 224321c230
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:14:26 +02:00
Matthias Schiffer 76998cb5ed
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-21 14:26:54 +02:00
Matthias Fritzsche fbf6807fb8
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:14:24 +02:00
Matthias Schiffer e9caeaf30d
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:56 +02:00
Matthias Schiffer 75f2c45ec2
scripts: add support for manifest-only model aliases 2017-06-13 12:21:55 +02:00
Matthias Schiffer bcca4a2f11
docs: releases/v2017.1: add some more information on updating v2016.2.x build setups 2017-06-13 12:21:55 +02:00
Matthias Schiffer 45f05c9a84
docs: site-example: remove redundant "iptables" package
iptables will be pulled in anyways.
2017-06-13 12:21:55 +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
689 changed files with 25203 additions and 48684 deletions

7
.gitignore vendored
View File

@ -1,7 +1,6 @@
*~
/build
/images
/lede
/output
/site
/openwrt
/tmp
/packages
/modules.local

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

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]: http://gluon.readthedocs.org/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%3Arejected

12
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-2017, Project Gluon
All rights reserved.
Redistribution and use in source and binary forms, with or without
@ -25,10 +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
LEDE and OpenWrt are licensed under the terms of the GNU General Public License
Version 2, which can be found at lede/LICENSE after the lede repository has been
obtained. This applies to the following repositories:
* lede
* packages/openwrt
* packages/routing
* packages/luci

489
Makefile
View File

@ -4,411 +4,158 @@ LC_ALL:=C
LANG:=C
export LC_ALL LANG
empty:=
space:= $(empty) $(empty)
GLUONMAKE_EARLY = $(SUBMAKE) -C $(GLUON_ORIGOPENWRTDIR) -f $(GLUONDIR)/Makefile GLUON_TOOLS=0
GLUONMAKE = $(SUBMAKE) -C $(GLUON_OPENWRTDIR) -f $(GLUONDIR)/Makefile
GLUON_SITEDIR ?= $(CURDIR)/site
GLUON_TMPDIR ?= $(CURDIR)/tmp
ifneq ($(OPENWRT_BUILD),1)
GLUON_OUTPUTDIR ?= $(CURDIR)/output
GLUON_IMAGEDIR ?= $(GLUON_OUTPUTDIR)/images
GLUON_PACKAGEDIR ?= $(GLUON_OUTPUTDIR)/packages
GLUONDIR:=${CURDIR}
export GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR DEVICES
include $(GLUONDIR)/include/gluon.mk
TOPDIR:=$(GLUON_ORIGOPENWRTDIR)
export TOPDIR
$(GLUON_SITEDIR)/site.mk:
$(error No site configuration was found. Please check out a site configuration to $(GLUON_SITEDIR))
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)
export GLUON_RELEASE GLUON_ATH10K_MESH GLUON_REGION GLUON_DEBUG
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
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/update.sh
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/patch.sh
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/feeds.sh
update-patches: FORCE
$(GLUONDIR)/scripts/update.sh
$(GLUONDIR)/scripts/update-patches.sh
$(GLUONDIR)/scripts/patch.sh
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/update.sh
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/update-patches.sh
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/patch.sh
-include $(TOPDIR)/include/host.mk
_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_SITEDIR='$(GLUON_SITEDIR)' scripts/feeds.sh
include $(GLUONDIR)/targets/targets.mk
GLUON_TARGETS :=
define GluonTarget
gluon_target := $(1)$$(if $(2),-$(2))
GLUON_TARGETS += $$(gluon_target)
GLUON_TARGET_$$(gluon_target)_BOARD := $(1)
GLUON_TARGET_$$(gluon_target)_SUBTARGET := $(if $(3),$(3),$(2))
endef
include targets/targets.mk
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)
LEDEMAKE = $(MAKE) -C lede
BOARD := $(GLUON_TARGET_$(GLUON_TARGET)_BOARD)
SUBTARGET := $(GLUON_TARGET_$(GLUON_TARGET)_SUBTARGET)
LEDE_TARGET := $(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))
export LEDE_TARGET
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)
CheckTarget := [ '$(LEDE_TARGET)' ] \
|| (echo 'Please set GLUON_TARGET to a valid target. Gluon supports the following targets:'; $(foreach target,$(GLUON_TARGETS),echo ' * $(target)';) false)
CheckExternal := test -d lede || (echo 'You don'"'"'t seem to have obtained the external repositories needed by Gluon; please call `make update` first!'; false)
prepare-target: FORCE
list-targets: FORCE
@$(foreach target,$(GLUON_TARGETS),echo '$(target)';)
GLUON_DEFAULT_PACKAGES := -odhcpd -ppp -ppp-mod-pppoe -wpad-mini gluon-core ip6tables hostapd-mini
GLUON_PACKAGES :=
define merge_packages
$(foreach pkg,$(1),
GLUON_PACKAGES := $$(strip $$(filter-out -$$(patsubst -%,%,$(pkg)) $$(patsubst -%,%,$(pkg)),$$(GLUON_PACKAGES)) $(pkg))
)
endef
$(eval $(call merge_packages,$(GLUON_DEFAULT_PACKAGES) $(GLUON_SITE_PACKAGES)))
GLUON_PACKAGES_YES := $(filter-out -%,$(GLUON_PACKAGES))
GLUON_PACKAGES_NO := $(patsubst -%,%,$(filter -%,$(GLUON_PACKAGES)))
config: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) prepare-target
@( \
echo 'CONFIG_TARGET_$(BOARD)=y' \
$(if $(SUBTARGET),&& echo 'CONFIG_TARGET_$(BOARD)_$(SUBTARGET)=y') \
$(foreach pkg,$(GLUON_PACKAGES_NO),&& echo '# CONFIG_PACKAGE_$(pkg) is not set') \
&& scripts/target_config.sh generic \
&& GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/target_config.sh '$(GLUON_TARGET)' \
$(foreach pkg,$(GLUON_PACKAGES_YES),&& echo 'CONFIG_PACKAGE_$(pkg)=y') \
$(foreach lang,$(GLUON_LANGS),&& echo 'CONFIG_GLUON_WEB_LANG_$(lang)=y') \
&& echo 'CONFIG_GLUON_RELEASE="$(GLUON_RELEASE)"' \
&& echo 'CONFIG_GLUON_SITEDIR="$(GLUON_SITEDIR)"' \
&& echo 'CONFIG_GLUON_BRANCH="$(GLUON_BRANCH)"' \
) > lede/.config
+@$(LEDEMAKE) defconfig
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/target_config_check.sh '$(GLUON_TARGET)' '$(GLUON_PACKAGES_YES)'
LUA := lede/staging_dir/hostpkg/bin/lua
$(LUA):
@$(CheckExternal)
+@[ -e lede/.config ] || $(LEDEMAKE) defconfig
+@$(LEDEMAKE) tools/install
+@$(LEDEMAKE) package/lua/host/install
prepare-target: config $(LUA) ;
all: prepare-target
+@$(GLUONMAKE) prepare
+@$(GLUONMAKE) images
@GLUON_SITEDIR='$(GLUON_SITEDIR)' $(LUA) scripts/site_config.lua \
|| (echo 'Your site configuration did not pass validation.'; false)
prepare: prepare-target
+@$(GLUONMAKE) $@
@scripts/clean_output.sh
+@$(LEDEMAKE)
@GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/copy_output.sh '$(GLUON_TARGET)'
clean download images: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
clean download: config
+@$(LEDEMAKE) $@
toolchain/% package/% target/% image/%: FORCE
@$(CheckExternal)
@$(CheckTarget)
+@$(GLUONMAKE_EARLY) maybe-prepare-target
+@$(GLUONMAKE) $@
dirclean: FORCE
+@[ -e lede/.config ] || $(LEDEMAKE) defconfig
+@$(LEDEMAKE) dirclean
@rm -rf $(GLUON_TMPDIR) $(GLUON_OUTPUTDIR)
manifest: FORCE
@[ -n '$(GLUON_BRANCH)' ] || (echo 'Please set GLUON_BRANCH to create a manifest.'; false)
manifest: $(LUA) FORCE
@[ '$(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 "DATE=$$($(LUA) 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)))
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 $(GLUONDIR)/targets/targets.mk
include $(GLUONDIR)/targets/$(GLUON_TARGET)/profiles.mk
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
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; }; \
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
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
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); \
done
+$(GLUONMAKE_EARLY) feeds
+$(GLUONMAKE_EARLY) gluon-tools
+$(GLUONMAKE) config
touch $(target_prepared_stamp)
$(target_prepared_stamp):
+$(GLUONMAKE_EARLY) prepare-target
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)
clean: FORCE
+$(SUBMAKE) clean
rm -f $(gluon_prepared_stamp)
export SHA512SUM := $(GLUONDIR)/scripts/sha512sum.sh
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)); \
echo && \
$(foreach GLUON_TARGET,$(GLUON_TARGETS), \
GLUON_SITEDIR='$(GLUON_SITEDIR)' scripts/generate_manifest.sh '$(GLUON_TARGET)' && \
) : \
)
) > 'tmp/$(GLUON_BRANCH).manifest.tmp'
@mkdir -p '$(GLUON_IMAGEDIR)/sysupgrade'
@mv 'tmp/$(GLUON_BRANCH).manifest.tmp' '$(GLUON_IMAGEDIR)/sysupgrade/$(GLUON_BRANCH).manifest'
# 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))
FORCE: ;
package_install: FORCE
$(OPKG) update
$(OPKG) install $(PACKAGE_DIR)/libc_*.ipk
$(OPKG) install $(PACKAGE_DIR)/kernel_*.ipk
$(OPKG) install $(INSTALL_PACKAGES)
+$(GLUONMAKE) enable_initscripts
rm -f $(TARGET_DIR)/usr/lib/opkg/lists/* $(TARGET_DIR)/tmp/opkg.lock
ifeq ($(GLUON_OPKG_CONFIG),1)
include $(INCLUDE_DIR)/version.mk
endif
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; \
done
$(VERSION_SED) $(TARGET_DIR)/etc/opkg.conf
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)
+$(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:

View File

@ -1,5 +1,5 @@
Documentation (incomplete at this time, contribute if you can!) may be found at
http://gluon.readthedocs.org/
http://gluon.readthedocs.org/.
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).
@ -8,15 +8,18 @@ If you're new to Gluon and ready to get your feet wet, have a look at the
## 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 v2017.1.5 && 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.
@ -25,11 +28,11 @@ If you upgrade using random master commits the nodes *will break* eventually.
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

45
contrib/depdot.sh Executable file
View File

@ -0,0 +1,45 @@
#!/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
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|i18n|_) [\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

@ -2,10 +2,11 @@
# 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
@ -35,8 +36,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

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 -o "-h" = "$1" -o "--help" = "$1" -o ! -r "$1" -o ! -r "$2" ]; then
cat <<EOHELP
Usage: $0 <secret> <manifest>
@ -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 -o "-h" = "$1" -o "-help" = "$1" -o "--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/tcatm/ecdsautils
* http://gluon.readthedocs.org/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 line
do
if ecdsaverify -s "$line" -p "$public" "$upper"; then
ret=0
break
fi
done < "$lower"
rm -f "$upper" "$lower"
exit $ret

View File

@ -47,16 +47,16 @@ master_doc = 'index'
# General information about the project.
project = 'Gluon'
copyright = '2015, Project Gluon'
copyright = '2015-2017, 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'
version = '2017.1.5'
# The full version, including alpha/beta/rc tags.
release = '2015.1'
release = '2017.1.5'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -34,21 +34,7 @@ rerun
`patches`; the resulting branch will be called `patched`, while the commit specified in `modules`
can be refered 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 commited 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 +47,19 @@ 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!
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 rules
apply:
- use tabs instead of spaces
- trailing whitespaces must be eliminated

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

View File

@ -11,85 +11,132 @@ 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).
.. _hardware-adding-profiles:
Adding profiles
---------------
The vast majority of devices with ath9k WLAN uses the ar71xx target of OpenWrt.
The vast majority of devices with ath9k WLAN uses the ar71xx target of LEDE.
If the hardware you want to add support for is also ar71xx, adding a new profile
is enough.
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
commands 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())'
The second parameter defines the name of the image files generated by LEDE. Usually,
it is also the LEDE profile name; for devices that still use the old image build
code, a third parameter with the LEDE profile name can be passed. The profile names
can be found in the image Makefiles in ``lede/target/linux/<target>/image/Makefile``.
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.
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 LEDE 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 LEDE 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 LEDE, 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 LEDE 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 LEDE. 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 arbitary target-specific LEDE 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 LEDE 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 three arguments:
the target name, the Gluon subtarget name (if the target has subtargets), and the
LEDE subtarget name (if it differs from the Gluon subtarget). The third argument
can be used to define multiple Gluon targets with different configuration for the
same LEDE target, like it is done for the ``ar71xx-tiny`` target.
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: ibss0
* 3: wan_radio0 (private WLAN); batman-adv primary address
* 4: client1; LAN
* 5: mesh1
* 6: ibss1
* 7: wan_radio1 (private WLAN); mesh VPN

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 install Gluon
version otherwise.
Script ordering
---------------

View File

@ -46,4 +46,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
condiguration 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!")

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

@ -0,0 +1,117 @@
Controllers
===========
Controllers live in ``/lib/gluon/web/controller``. They define which pages ("routes")
exist under the ``/cgi-bin/gluon`` path, and what code is run when these pages are requested.
Controller scripts mostly consist of calls of the `entry` function, which each define
one route:
.. code-block:: lua
entry({"admin"}, alias("admin", "info"), _("Advanced settings"), 10)
entry({"admin", "info"}, template("admin/info"), _("Information"), 1)
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
- `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 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*): Renders the given view, optionally passing a table
with additional variables to make available in the template.
- *render_string* (*str*, *scope*): 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.

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

@ -0,0 +1,96 @@
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"))
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, some additions to the Makefile must be made. Instead of LEDE'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*, after a human-readable
language name has been defined in the same file.

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

@ -0,0 +1,148 @@
Models
======
Models are defined in ``/lib/gluon/web/model``. 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 beed 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 to anything, but it can be
overridden.
- *Section* (usually instanciated 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*)

55
docs/dev/web/view.rst Normal file
View File

@ -0,0 +1,55 @@
Views
=====
The template parser reads views from ``/lib/gluon/web/view``. Writing own view
should 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.
- ``<%+`` ... ``%>`` 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* and *translatef*: see :doc:`i18n`

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

@ -11,14 +11,19 @@ during development), but it can be enabled by setting the variable GLUON_BRANCH
to override the default branch set in the set in the site configuration.
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 by 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.
Automated nightly builds
------------------------
A fully automated nightly build could use the following commands:
@ -28,12 +33,13 @@ A fully automated nightly build could use the following commands:
(cd site && git pull)
make update
make clean
make -j5 GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental
NUM_CORES_PLUS_ONE=$(expr $(nproc) + 1)
make -j$NUM_CORES_PLUS_ONE GLUON_TARGET=ar71xx-generic GLUON_BRANCH=experimental
make manifest GLUON_BRANCH=experimental
contrib/sign.sh $SECRETKEY images/sysupgrade/experimental.manifest
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 +65,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 +77,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

@ -0,0 +1,41 @@
DNS caching
===========
User experience may be greatly improved when dns is accelerated. Also, it
seems like a good idea to keep the number of packages being exchanged
between node and gateway as small as possible. In order to do this, a
DNS cache may be used on a node. The dnsmasq instance listening on port
53 on the node will be reconfigured to answer requests, use a list of
upstream servers and a specific cache size if the options listed below are
added to site.conf. Upstream servers are the DNS servers which are normally
used by the nodes to resolve hostnames (e.g. gateways/supernodes).
There are the following settings:
servers
cacheentries
If both options are set the node will cache as much DNS records as set with
'cacheentries' in RAM. The 'servers' list will be used to resolve the received
DNS queries if the request cannot be answered from cache.
If these settings do not exist, the cache is not intialized and RAM usage will not increase.
When next_node.name is set, an A record and an AAAA record for the
next-node IP address are placed in the dnsmasq configuration. This means that the content
of next_node.name may be resolved even without upstream connectivity.
::
dns = {
cacheentries = 5000,
servers = { '2001:db8::1', },
},
next_node = {
name = 'nextnode',
ip6 = '2001:db8:8::1',
ip4 = '198.51.100.1',
}
The cache will be initialized during startup.
Each cache entry will occupy about 90 bytes of RAM.

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

@ -1,5 +1,5 @@
Announcing Node Information
===========================
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,
@ -8,7 +8,7 @@ IP addresses, location, software versions and various other information.
Format of collected data
------------------------
Information to be announced is currently split into two categories:
Information to be announced is currently split into three categories:
nodeinfo
In this category (mostly) static information is collected. If
@ -19,15 +19,19 @@ Information to be announced is currently split into two categories:
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*.
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 catagories.
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`.
between neighbouring nodes is exchanged using `gluon-respondd`.
.. _alfred: http://www.open-mesh.org/projects/alfred
@ -41,10 +45,15 @@ 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
.. _alfred-json: https://github.com/ffnord/alfred-json
`nodeinfo` is distributed as alfred datatype `158`, while `statistics` uses
`159`. Both are compressed using GZip (alfred-json can handle the decompression).
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:
@ -88,20 +97,28 @@ In order to retrieve statistics data you could run:
You can find more information about alfred in its README_.
.. _README: http://www.open-mesh.org/projects/alfred/repository/revisions/master/entry/README
.. _README: https://git.open-mesh.org/alfred.git/blob_plain/refs/heads/master:/README
gluon-announced
~~~~~~~~~~~~~~~
gluon-respondd
~~~~~~~~~~~~~~
`gluon-announced` allows querying neighbouring nodes for their `nodeinfo`.
`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 bare mesh interfaces.
UDP port 1001 on both the bare mesh interfaces and `br-client`. 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
~~~~~~~~~~~~~~~~~~~~
A programm called `gluon-neighbour-info` has been developed to retrieve
information from neighbours.
The programm `gluon-neighbour-info` can be used to retrieve
information from other nodes.
::
@ -109,55 +126,13 @@ information from neighbours.
-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).
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 fact
-------------
Adding a data provider
----------------------
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"
}
}
}
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

@ -4,7 +4,7 @@ Private WLAN
It is possible to set up a private WLAN that bridges the WAN port and is seperated 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 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

View File

@ -2,7 +2,7 @@ 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
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
or servers (nodemap). A lot of things are possible.
@ -11,18 +11,20 @@ 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::

View File

@ -0,0 +1,65 @@
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 will replace 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).
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 configuration
-------------------------
Mesh-on-WAN
...........
It's possible to enable Mesh-on-WAN like this::
uci set network.mesh_wan.auto=1
uci commit network
It may be disabled by running::
uci set network.mesh_wan.auto=0
uci commit network
Mesh-on-LAN
...........
Configuring Mesh-on-LAN is a bit more complicated::
uci set network.mesh_lan.auto=1
for ifname in $(cat /lib/gluon/core/sysconfig/lan_ifname); do
uci del_list network.client.ifname=$ifname
done
uci commit network
It may be disabled by running::
uci set network.mesh_lan.auto=0
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 v2016.1. Using
the old commands on v2016.1 and later will break the corresponding options
in the *Advanced settings*.

View File

@ -0,0 +1,34 @@
WLAN configuration
==================
Gluon allows to configure 2.4GHz and 5GHz radios independently. The configuration
may include any or all of the three networks "client" (AP mode), "mesh" (802.11s
mode) and "ibss" (adhoc mode), which can be used simultaneously (using "mesh" and
"ibss" at same time should be avoided though as weaker hardware usually can't handle the additional
load). 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.
For the "mesh" and "ibss" networks, the default setting only has an effect if none
of the two has existed before. If a new configuration has been added for "mesh" or "ibss",
while the other of the two has already existed before, the enabled/disabled state of the
existing configuration will also be set for the new configuration.
This allows upgrades to change from IBSS to 11s and vice-versa while retaining the
"wireless meshing is enabled/disabled" property configured by the user regardless
of the used mode.
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'
Keep in mind that nodes running wifi interfaces on custom channels can't mesh with default nodes anymore!

View File

@ -5,10 +5,8 @@ Gluon is a modular framework for creating OpenWrt-based firmwares for wireless m
Several Freifunk communities in Germany use Gluon as the foundation of their Freifunk firmwares.
User Documentation
------------------
.. toctree::
:caption: User Documentation
:maxdepth: 2
user/getting_started
@ -16,39 +14,79 @@ User Documentation
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-cache
features/monitoring
features/authorized-keys
features/roles
Developer Documentation
-----------------------
.. toctree::
:caption: Developer Documentation
:maxdepth: 2
dev/basics
dev/hardware
dev/upgrade
dev/configmode
dev/wan
dev/i18n
Releases
--------
dev/mac_addresses
.. 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-contact-info
package/gluon-config-mode-geo-location
package/gluon-ebtables-filter-multicast
package/gluon-ebtables-filter-ra-dhcp
package/gluon-ebtables-segment-mld
package/gluon-ebtables-source-filter
.. toctree::
:caption: Releases
:maxdepth: 1
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
@ -61,6 +99,19 @@ Supported Devices & Architectures
ar71xx-generic
^^^^^^^^^^^^^^
* 8devices
- Carambola 2
* ALFA Network
- AP121
- AP121U
- Hornet-UB
- Tube2H
- N2
- N5
* Allnet
- ALL0315N
@ -68,17 +119,21 @@ ar71xx-generic
* Buffalo
- WZR-HP-AG300H / WZR-600DHP
- WZR-HP-G300NH
- WZR-HP-G300NH2
- WZR-HP-G450H
* D-Link
- DIR-825 (B1)
- DIR-505 (A1, A2)
- DIR-615 (C1)
- DIR-825 (B1)
* GL-Inet
* GL Innovations
- 6408A (v1)
- 6416A (v1)
- GL-AR150
- GL-iNet 6408A (v1)
- GL-iNet 6416A (v1)
* Linksys
@ -90,47 +145,72 @@ ar71xx-generic
- WNDR3800
- WNDRMAC (v2)
* Onion
- Omega
* OpenMesh
- MR600 (v1, v2)
- MR900 (v1, v2)
- MR1750 (v1, v2) [#ath10k]_
- OM2P (v1, v2)
- OM2P-HS (v1, v2, v3)
- OM2P-LC
- OM5P
- OM5P-AN
- OM5P-AC (v1, v2) [#ath10k]_
* 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)
- Archer C5 (v1) [#ath10k]_
- Archer C7 (v2) [#ath10k]_
- CPE210 (v1.0, v1.1)
- CPE220 (v1.1)
- CPE510 (v1.0, v1.1)
- CPE520 (v1.1)
- RE450
- 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-WR710N (v1, v2.1)
- TL-WR842N/ND (v1, v2, v3)
- TL-WR1043N/ND (v1, v2, v3, v4)
- TL-WR2543N/ND (v1)
- WBS210 (v1.20)
- WBS510 (v1.20)
* Ubiquiti
- Bullet M2
- Nanostation M2
- Nanostation M XW
- Loco M XW
- Picostation M2
- Rocket M2
- Air Gateway
- Air Gateway LR
- Air Gateway PRO
- Air Router
- Bullet M2/M5
- Loco M2/M5
- Loco M2/M5 XW
- Nanostation M2/M5
- Nanostation M2/M5 XW
- Picostation M2/M5
- Rocket M2/M5
- Rocket M2/M5 Ti
- Rocket M2/M5 XW
- UniFi AP
- UniFi AP AC Lite [#ath10k]_
- UniFi AP AC Pro [#ath10k]_
- UniFi AP LR
- UniFi AP Pro
- UniFi AP Outdoor
- UniFi AP Outdoor+
* Western Digital
- My Net N600
- My Net N750
.. [#ath10k]
Device uses the ath10k WLAN driver; no image is built unless GLUON_ATH10K_MESH
is set as described in :ref:`getting-started-make-variables`
ar71xx-nand
^^^^^^^^^^^
@ -140,6 +220,50 @@ ar71xx-nand
- WNDR3700 (v4)
- WNDR4300 (v1)
ar71xx-tiny
^^^^^^^^^^^
* D-Link
- DIR-615 (C1)
* TP-Link
- TL-MR13U (v1)
- TL-MR3020 (v1)
- TL-MR3040 (v1, v2)
- TL-MR3220 (v1, v2)
- TL-MR3420 (v1, v2)
- TL-WA701N/ND (v1, v2)
- TL-WA730RE (v1)
- TL-WA750RE (v1)
- TL-WA801N/ND (v1, v2, v3)
- TL-WA830RE (v1, v2)
- TL-WA850RE (v1)
- TL-WA860RE (v1)
- TL-WA901N/ND (v1, v2, v3, v4)
- TL-WA7210N (v2)
- TL-WA7510N (v1)
- TL-WR703N (v1)
- TL-WR710N (v1, v2, v2.1)
- TL-WR740N (v1, v3, v4, v5)
- TL-WR741N/ND (v1, v2, v4, v5)
- TL-WR743N/ND (v1, v2)
- TL-WR841N/ND (v3, v5, v7, v8, v9, v10, v11, v12)
- TL-WR843N/ND (v1)
- TL-WR940N (v1, v2, v3, v4)
- TL-WR941ND (v2, v3, v4, v5, v6)
brcm2708-bcm2708
^^^^^^^^^^^^^^^^
* RaspberryPi 1
brcm2708-bcm2709
^^^^^^^^^^^^^^^^
* RaspberryPi 2
mpc85xx-generic
^^^^^^^^^^^^^^^
@ -149,15 +273,26 @@ mpc85xx-generic
x86-generic
^^^^^^^^^^^
* x86-generic
* x86-virtualbox
* x86-vmware
See also: :doc:`user/x86`
x86-kvm_guest
^^^^^^^^^^^^^
* x86-kvm
x86-geode
^^^^^^^^^
* x86-geode
See also: :doc:`user/x86`
x86-64
^^^^^^
* x86-64-generic
* x86-64-virtualbox
* x86-64-vmware
See also: :doc:`user/x86`

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,21 @@
gluon-config-mode-contact-info
==============================
This package allows the user to provide contact information within config mode to be
distributed in the mesh. You can define whether the owner contact field is
obligatory or not in your site.conf.
site.conf
---------
config_mode.owner.obligatory \: optional (defaults to false)
If ``obligatory`` is set to ``true``, the contact info field must be supplied
and may not be left empty.
Example::
config_mode = {
owner = {
obligatory = true
}
}

View File

@ -0,0 +1,14 @@
gluon-config-mode-geo-location
==============================
This package enables the user to set latitude, longitude and altitude of their
node within config mode. As the usage of the altitude is not well defined the
corresponding field can be disabled.
site.conf
---------
config_mode.geo_location.show_altitude : optional
- ``true`` enables the altitude field
- ``false`` disables the altitude field if altitude has not yet been set
- defaults to ``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,16 @@
gluon-ebtables-segment-mld
==========================
These filters drop IGMP/MLD packets before they enter the mesh and
filter any IGMP/MLD packets coming from the mesh.
IGMP/MLD have the concept of a local, elected Querier. For more
decentralization and increased robustness, the idea of this package is
to split the IGMP/MLD domain a querier is responsible for, allowing to
have a querier per node. The split IGMP/MLD domain will also reduce
overhead for this packet type, increasing scalability.
Beware of the consequences of using this package though: You might need
to explicitly, manually mark ports on snooping switches leading towards
your mesh node as multicast router ports for now (Multicast Router
Discovery, MRD, not implemented yet).

View File

@ -0,0 +1,30 @@
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.
One may first check if there is a certain proportion of unreasonable traffic,
before adding this package to the firmware image. Additional one 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' },

View File

@ -0,0 +1,27 @@
Gluon 2015.1.1
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA830RE (v1)
New features
~~~~~~~~~~~~
The `x86-generic` and `x86-kvm_guest` images now support two ethernet interfaces by default. If two interfaces exist during
the first boot, `eth0` will be used as LAN and `eth1` as WAN.
Bugfixes
~~~~~~~~
* Fix German "Expert Mode" label (was "Export Mode")
* Fix download of OpenSSL during build (because of broken OpenSSL download servers...)
* Fix ABI break causing kernel panics when trying to use network-related modules from the official OpenWrt repository (like `kmod-pppoe`)
* Fix race conditions breaking parallel build occasionally
* A broken network configuration would be generated when an older Gluon version was updated to 2015.1 with
``mesh_on_lan`` enabled in `site.conf`
* Minor announced/alfred JSON format fixes (don't output empty lists where empty objects would be expected)

View File

@ -0,0 +1,41 @@
Gluon 2015.1.2
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA701N/ND (v2)
- TL-WA801N/ND (v1)
- TL-WA830RE (v2)
- TL-WR740N / TL-WR741ND (v5)
New features
~~~~~~~~~~~~
* Ubiquiti Loco M, Picostation M and Rocket M now get their own images (which are just copies of the Bullet M image)
so it's more obvious for users which image to use
* The x86-generic images now contain the e1000e ethernet driver by default
Bugfixes
~~~~~~~~
* Fix download of OpenSSL during build because of broken OpenSSL download servers (again...)
* Fix another ABI incompatiblity with the upstream kernel modules which prevented loading some filesystem-related modules
* Fix potential MAC address conflicts on x86 target when using mesh-on-wan/lan
* Fix signal strength indicators on TP-LINK CPE210/510
* Fix the model name string on some NETGEAR WNDR3700v2
* Fix 5GHz WLAN switching channels and losing connectivity when other WLANs using the same channel are detected (including other Gluon nodes...); see https://github.com/freifunk-gluon/gluon/issues/386
* Fix DNS resolution for mesh VPN on IPv6-only WAN; see https://github.com/freifunk-gluon/gluon/issues/397
* gluon-mesh-batman-adv-15: update batman-adv to 2015.0 with additional bugfixes (fixes various minor bugs)
* gluon-mesh-batman-adv-15: fix forwarding of fragmented frames over multiple links with different MTUs
batman-adv compat 15 doesn't re-fragment frames that are fragmented already. In particular,
this breaks transmission of large packets which are first fragmented for mesh-on-lan/wan and are then sent
over the mesh VPN, which has an even smaller MTU. Work around this limitation by decreasing the maximum fragment
size to 1280, so they can always be forwarded as long there's no link with a MTU smaller than 1280.
See https://github.com/freifunk-gluon/gluon/issues/435

View File

@ -0,0 +1,64 @@
Gluon 2016.1.1
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* Onion Omega
* TP-Link TL-MR13U v1
Bugfixes
~~~~~~~~
Build
^^^^^
Don't overwrite the opkg repository key on each build.
AirOS 5.6.x compatiblity
^^^^^^^^^^^^^^^^^^^^^^^^
Downgrading to AirOS 5.5.x before flashing Gluon on Airmax M XM/XW devices
(NanoStation, Bullet, ...) is not necessary anymore.
Status page
^^^^^^^^^^^
* Fix purging of disappered neighbours from the list
* Don't clear the signal graphs when scrolling in mobile browsers
* Improve browser compability (don't assume the Internationalization API is available,
fixes the display of numbers in Firefox for Android)
Config mode
^^^^^^^^^^^
* Strip trailing whitespace from number input fields (LuCI's validator doesn't catch this)
* Don't allow negative bandwidth limits
Failsafe mode
^^^^^^^^^^^^^
* Fix entering the failsafe mode on the TL-WDR4900.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd/announced API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Nondeterministic production of broken images for some (very old) hardware (`#669 <https://github.com/freifunk-gluon/gluon/issues/669>`_)
At the moment it seems like only the TL-WR841N v5 is affected.

View File

@ -0,0 +1,29 @@
Gluon 2016.1.2
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
The *x86-generic* images now contain the ATIIXP PATA driver, adding support for
FUTRO Thin Clients.
Bugfixes
~~~~~~~~
A nondeterministic boot hang (`#669 <https://github.com/freifunk-gluon/gluon/issues/669>`_) has been fixed.
The TL-WR841N v5 seems to be affected in particular, but the kernel bug is not hardware-specific per se.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,43 @@
Gluon 2016.1.3
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* ALFA Hornet UB / AP121 / AP121U
* TP-Link TL-WA7510N
Bugfixes
~~~~~~~~
* The nondeterministic boot hang (`#669 <https://github.com/freifunk-gluon/gluon/issues/669>`_) that was thought to
be fixed in Gluon v2016.1.2 has resurfaced on other hardware. We believe it is now fixed properly.
* Sysupgrades on the Xen DomU have been fixed.
* Gluon can now be built on systems that use LibreSSL instead of OpenSSL.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Unwritable flash on some Ubiquiti PicoStations (`#687 <https://github.com/freifunk-gluon/gluon/issues/687>`_)
Gluon v2016.1.1 added support for Ubiquiti AirMAX devices with AirOS 5.6.x without downgrading AirOS first before
flashing Gluon. It was discovered that on Ubiquiti PicoStations, this downgrade is still necessary, as the
flash is not correctly unlocked, leaving the device unable to leave Config Mode and making regular sysupgrades
impossible.
TFTP recovery can be used in this state to flash a new firmware.

View File

@ -0,0 +1,46 @@
Gluon 2016.1.4
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* 8devices Carambola 2
* Meraki MR12/MR62/MR16/MR66
Bugfixes
~~~~~~~~
* Major update of all WLAN drivers
We've taken the unusual step of updating the WLAN drivers ("wireless-backports") to a much newer version, as
it was reported that the new version fixes unstable WLAN seen in many setups
* Build fix: a race condition causing parallel builds to fail has been fixed
* Build fix: the Gluon tree could get into a state in which all commands fail with "Too many levels of symbolic links"
* Build fix: allow building Gluon on systems with certain versions of *dash* as */bin/sh*
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Unwritable flash on some Ubiquiti PicoStations (`#687 <https://github.com/freifunk-gluon/gluon/issues/687>`_)
Gluon v2016.1.1 added support for Ubiquiti AirMAX devices with AirOS 5.6.x without downgrading AirOS first before
flashing Gluon. It was discovered that on Ubiquiti PicoStations, this downgrade is still necessary, as the
flash is not correctly unlocked, leaving the device unable to leave Config Mode and making regular sysupgrades
impossible.
TFTP recovery can be used in this state to flash a new firmware.

View File

@ -0,0 +1,66 @@
Gluon 2016.1.5
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* OpenMesh
- MR600 (v1, v2)
- MR900 (v1, v2)
- OM2P (v1, v2)
- OM2P-HS (v1, v2)
- OM2P-LC
- OM5P
- OM5P-AN
* Ubiquiti
- Rocket M XW
* TP-LINK
- TL-WR841N/ND v11
Bugfixes
~~~~~~~~
* build: fix race condition caused by using certain make targets (like *clean*, *images* or *package/\**)
with parallel build options without doing a full build before
* build: fix package dependency issue causing "recursive dependency" warning
This dependency issue could lead to broken configurations and reportedly caused failed builds in some cases
when additional (site-specific) packages were used.
* build: Gluon will now build correctly with GCC 6 as host compiler
* Fix configuration of batman-adv when VLANs are used on top of IBSS interfaces (regression due to netifd update in :doc:`v2016.1.4`)
* Add back missing ath10k firmware (regression due to mac80211 update in :doc:`v2016.1.4`)
* Gluon can now be used on all supported Ubiquiti AirMAX devices without downgrading to AirOS 5.5.x before
:doc:`v2016.1.1` added support for most Ubiquiti AirMAX devices with AirOS 5.6.x without downgrading AirOS,
but left some devices (at least some PicoStations and Bullets) with unwritable flash. This issue has been
resolved (`#687 <https://github.com/freifunk-gluon/gluon/issues/687>`_).
* Add upgrade script to automatically remove whitespace from configured geolocation
The new respondd implementation included in :doc:`v2016.1` is stricter about the number format than the
old one and doesn't accept trailing whitespace (so one or both coordinates are missing from the output).
The Config Mode has been fixed to strip whitespace from numeric fields in new configurations since :doc:`v2016.1.1`.
This still left old configurations, which are now fixed by this script.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,55 @@
Gluon 2016.1.6
==============
Bugfixes
~~~~~~~~
* build: fix nodejs host build on Debian Wheezy (`#776 <https://github.com/freifunk-gluon/gluon/issues/776>`_)
* build: fix parallel builds with Make 4.2+
Trying to use ``-j N`` with Make 4.2 would spawn an unlimited number of processes,
eventually leading to memory exhaustion.
* build: fix occasional build failure in libpcap package
* build: don't require hexdump for x86 builds (`#811 <https://github.com/freifunk-gluon/gluon/issues/811>`_)
Trying to build Gluon for x86 on systems without hexdump would silently generate
broken images.
* Add support for DNS servers given by their link-local IPv6 address in Router Advertisements
(`#854 <https://github.com/freifunk-gluon/gluon/issues/854>`_)
* ar71xx-generic: correctly setup LNA GPIOs on CPE210/510 (`#796 <https://github.com/freifunk-gluon/gluon/issues/796>`_)
Improves the reception by about 20dB.
* ar71xx-generic: switch default WAN/LAN assignment on Ubiquiti UAP Pro
(`#764 <https://github.com/freifunk-gluon/gluon/issues/764>`_)
Switch to the usual "PoE is WAN/setup mode, secondary is LAN" scheme. This only affects
new installations; the assignment won't be changed on updates unless the configuration is
reset.
* ar71xx-generic: fix ath10k memory leak (`#690 <https://github.com/freifunk-gluon/gluon/issues/690>`_)
* ar71xx-generic: add support for new TP-Link region codes
(`#860 <https://github.com/freifunk-gluon/gluon/issues/860>`_)
TP-Link has started providing US- and EU-specific firmwares for the Archer C7 v2. To generate
Gluon images installable from these new firmwares, the ``GLUON_REGION`` variable must be set
to ``eu`` or ``us`` in ``site.mk`` or on the ``make`` command line (the images will still be
installable from all old firmwares without region codes).
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

276
docs/releases/v2016.1.rst Normal file
View File

@ -0,0 +1,276 @@
Gluon 2016.1
============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* Buffalo
- WZR-HP-G300NH
* D-Link
- DIR-505 (A1)
* TP-Link
- CPE210/220/510/520 v1.1
- TL-WA901N/ND v1
- TL-WR710N v2
- TL-WR801N/ND v1, v2
- TL-WR841N/ND v10
- TL-WR843N/ND v1
- TL-WR940N v1, v2, v3
- TL-WR941ND v6
- TL-WR1043N/ND v3
* Ubiquiti
- airGateway
- airRouter
- UniFi AP Outdoor+
* Western Digital
- My Net N600
- My Net N750
x86-xen_domu
^^^^^^^^^^^^
New target containing the necessary drivers for use in Xen.
x86-64
^^^^^^
64bit version of `x86-generic`. The generic image can also be used in KVM with VirtIO.
New features
~~~~~~~~~~~~
Kernel module opkg repository
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We've not been able to keep ABI compatiblity with the kernel of the official OpenWrt images.
Therefore, Gluon now generates an opkg repository with modules itself.
The repository can be found at `output/modules/` by default, the image output directory has
been moved from `images/` to `output/images/`. See the updated :doc:`../user/getting_started` guide
for information on the handling of the signing keys for this repository.
The `opkg_repo` site.conf option has been replaced to allow specifying this and other additional repositories.
New status page
^^^^^^^^^^^^^^^
The new status page provides a visually pleasing experience, and displays all important information
on a node in a clear manner. It also contains a real-time signal strength graph for all neighbouring
nodes to aid with the alignment of antennas.
802.11s mesh support
^^^^^^^^^^^^^^^^^^^^
Gluon now supports using 802.11s for its mesh links instead of IBSS (Adhoc). This will allow supporting
more WLAN hardware in the future (like Ralink/Mediatek, which don't support AP and IBSS mode simultaneously).
Note that batman-adv is still used on top of 802.11s (and 802.11s forwarding is disabled), the mesh routing protocol
provided by 802.11s is not used.
Multicast filter extension
^^^^^^^^^^^^^^^^^^^^^^^^^^
The `gluon-ebtables-filter-multicast` package has been extended to filter out multicast
ICMP and ICMPv6 Echo Requests (ping) and Node Information Queries (RFC4620). This prevents
pings to multicast addresses like ff02::1 to cause traffic peaks
(as all nodes and clients would answer such a ping).
French translation
^^^^^^^^^^^^^^^^^^
A French translation for the Config Mode/Expert Mode has been added.
Bugfixes
~~~~~~~~
* Update kernel code for the QCA953x
Might improve stability of the TP-Link TL-WR841N/ND v9.
* Fix model detection on some Netgear WNDR3700v2
The broken devices will identify as "NETGEAR ".
This also breaks the autoupdater, making a manual upgrade necessary.
* Ensure that `odhcp6c` doesn't spawn multiple instances of ``dhcpv6.script``
* Fix support for Buffalo WZR-600DHP
A flashable factory image is generated now. The sysupgrade image is still shared
with the WZR-HP-AG300H.
Site changes
~~~~~~~~~~~~
* ``site.conf``
- New WLAN configuration
``wifi24`` and ``wifi5`` need to be updated to a new more flexible format.
A configuration using the old format
::
{
channel = 1,
htmode = 'HT20'
ssid = 'entenhausen.freifunk.net',
mesh_ssid = 'xe:xx:xx:xx:xx:xx',
mesh_bssid = 'xe:xx:xx:xx:xx:xx',
mesh_mcast_rate = 12000,
}
would look like this in the new format::
{
channel = 1,
ap = {
ssid = 'entenhausen.freifunk.net',
},
ibss = {
ssid = 'xe:xx:xx:xx:xx:xx',
bssid = 'xe:xx:xx:xx:xx:xx',
mcast_rate = 12000,
},
}
The ``htmode`` option has been dropped, the channel width is now always set to 20MHz
(see https://github.com/freifunk-gluon/gluon/issues/487 for a discussion of this change).
In addition to the old IBSS (Adhoc) based meshing, 802.11s-based meshing can be configured
using the ``mesh`` section. Example::
{
channel = 1,
ap = {
ssid = 'entenhausen.freifunk.net',
},
mesh = {
id = 'mesh.entenhausen.freifunk.net', -- can by any string, human-readable or random
mcast_rate = 12000,
},
}
While using ``ibss`` and ``mesh`` at the same time is possible, is causes high load in
very active meshes, so it is advisable to avoid such configurations.
- Bandwidth limitation defaults
The old section ``simple_tc.mesh_vpn`` has been moved to ``fastd_mesh_vpn.bandwidth_limit`` and the ``ifname``
field isn't used anymore. What looked like this
before
::
simple_tc = {
mesh_vpn = {
ifname = 'mesh-vpn',
enabled = false,
limit_egress = 200,
limit_ingress = 3000,
},
}
needs to be changed to
::
fastd_mesh_vpn = {
-- ...
bandwidth_limit = {
enabled = false,
egress = 200,
ingress = 3000,
},
}
- opkg repository configuration
The opkg configuration has been changed to be more flexible and allow specifying custom repositories.
Example::
opkg = {
openwrt = 'http://opkg.services.ffeh/openwrt/%n/%v/%S/packages',
extra = {
modules = 'http://opkg.services.ffeh/modules/gluon-%GS-%GR/%S',
},
}
The keys of the ``extra`` table (like ``modules`` in this example) can be chosen arbitrarily.
Instead of explicitly specifying the whole URL, using patterns is recommended. The following
patterns are understood:
- ``%n`` is replaced by the OpenWrt version codename (e.g. "chaos_calmer")
- ``%v`` is replaced by the OpenWrt version number (e.g. "15.05")
- ``%S`` is replaced by the target architecture (e.g. "ar71xx/generic")
- ``%GS`` is replaced by the Gluon site code (as specified in ``site.conf``)
- ``%GV`` is replaced by the Gluon version
- ``%GR`` is replaced by the Gluon release (as specified in ``site.mk``)
* ``site.mk``
- The packages `gluon-announce` and `gluon-announced` were merged into
the package `gluon-respondd`. If you had any of them (probably
`gluon-announced`) in your package list, you have to replace them.
* ``i18n/``
- The translations of ``gluon-config-mode:pubkey`` now have to show the fastd
public key themselves if desired, making the formatting of the key and whether it is shown at
all configurable. To retain the old format, add ``<p>`` to the beginning of
your translations and append::
"</p>"
"<div class=\"the-key\">"
" # <%= hostname %>"
" <br/>"
"<%= pubkey %>"
"</div>"
Internals
~~~~~~~~~
* OpenWrt has been updated to Chaos Calmer
* mac80211 has been backported from OpenWrt trunk r47249 (wireless-testing 2015-07-21)
This allows us to support the TL-WR940N v3/TL-WR941ND v6, which uses a TP9343 (QCA956x) SoC.
* Several packages have been moved from the Gluon repo to the packages repo, removing references to Gluon:
- gluon-cron -> micrond (the crontabs are now read from ``/usr/lib/micron.d`` instead of ``/lib/gluon/cron``)
- gluon-radvd -> uradvd
- gluon-simple-tc -> simple-tc (the config file has been renamed as well)
* Some of the Gluon-specific i18n support code in the build system has been removed, as LuCI now provides
similar facilities
* The C-based `luci-lib-jsonc` library is now used for JSON encoding/decoding instead of the pure Lua `luci-lib-json`
* The site config is now stored as JSON on the node. The Lua interface ``gluon.site_config`` is still available, and a C interface was added as part of the new package `libgluonutil`.
* The `respondd` daemon now uses C modules instead of Lua snippets, which greatly enhances response speed and reduces memory usage. The Gluon integration package has
been renamed from `gluon-announced` to `gluon-respondd`.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Expert Mode is recommended.
* batman-adv causes stability issues for both alfred and respondd/announced (`#177 <https://github.com/freifunk-gluon/gluon/issues/177>`_)
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd/announced API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced in the next release. The old API will still be supported for a while.

View File

@ -0,0 +1,59 @@
Gluon 2016.2.1
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA901ND v4
Bugfixes
~~~~~~~~
* Make status page work with disabled cookies/local storage
(`#912 <https://github.com/freifunk-gluon/gluon/pull/912>`_)
* Update kernel to 3.18.44
Fixes CVE-2016-5195 and CVE-2016-7117. It is unlikely that these issues pose
a threat to usual Gluon setups, but installing additional packages may make a
system vulnerable. In any case, updating is highly recommended.
* Downgrade mac80211 to an earlier state
Unfortunately, a mac80211 update that was done shortly before the release of
Gluon v2016.2 (that seemed necessary to properly support ath10k devices) had
again caused severe ath9k stability issues that remained unreported until v2016.2
was out.
We have now reverted mac80211 to an earlier state that was reported to be very
stable (while keeping the ath10k-specific changes); in addition, some patches
that were reported to cause connection or performance issues with certain clients
have been reverted. While is it still not perfectly stable, is should be at least
as good as (and probably better than) the v2016.1.x release series.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Git HTTPS downloads from git.kernel.org fail on Debian Wheezy (`#919 <https://github.com/freifunk-gluon/gluon/issues/919>`_)
The GnuTLS version on Debian Wheezy is too old and can't establish a connection with
git.kernel.org anymore. A newer GnuTLS version is available in wheezy-backports, but
as there is no libcurl3-gnutls package linked against the new version, installing the
new version has no effect.

View File

@ -0,0 +1,78 @@
Gluon 2016.2.2
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- CPE210/510 EU/US versions
- TL-WA801N/ND v3
- TL-WR841ND v11 EU/US versions
Bugfixes
~~~~~~~~
* Fix boot on certain QCA955x-based devices (e.g. OpenMesh OM5P AC v2) (`#965 <https://github.com/freifunk-gluon/gluon/pull/965>`_)
This issue was a regression in Gluon v2016.2.1.
* Build: Fix git downloads from git.kernel.org on Debian Wheezy (`#919 <https://github.com/freifunk-gluon/gluon/issues/919>`_)
We've switched back from HTTPS to the git protocol for now to avoid using
the old GnuTLS version of Debian Wheezy which can't establish a HTTPS connection
with git.kernel.org anymore.
This issue was a regression in Gluon v2016.2.
* Fix RX filter of Ubiquiti UAP Outdoor+ (`d43147a8e03d <https://github.com/freifunk-gluon/gluon/commit/d43147a8e03dd17bc27e4ab203736f2151f9db3d>`_)
This issue was a regression in Gluon v2016.2.
* Fix switched WAN/LAN interface assignment on CPE210 (`59deb2064d54 <https://github.com/freifunk-gluon/gluon/commit/59deb2064d54a37e27139b76a3b6064f5f10f364>`_)
This issue was a regression in Gluon v2016.2.
* Significantly reduce CPU load used by signal strength LEDs (`#897 <https://github.com/freifunk-gluon/gluon/issues/897>`_)
* Fix ethernet port of the Ubiquiti UAP AC Lite (`#911 <https://github.com/freifunk-gluon/gluon/issues/911>`_)
* Build: Don't use host ``/tmp`` directory (`f9072a36411b <https://github.com/freifunk-gluon/gluon/commit/f9072a36411b92089c697b2c0a564155bfe10bd1>`_)
Fixes build when ``/tmp`` is mounted with *noexec*.
* Fix mesh interface type respondd/alfred announcements when using VLANs over IBSS (`#941 <https://github.com/freifunk-gluon/gluon/issues/941>`_)
* Fix next-node ebtables rules without *next_node.ip4* (`9dbe9f785d2b <https://github.com/freifunk-gluon/gluon/commit/9dbe9f785d2b439c3ebdae365b808ebf42b3cf03>`_)
Gluon v2016.2 added support for using the next-node feature without specifying an IPv4
address. Some scripts had not been adjusted, making the next-node unreliable when
no IPv4 address was specified.
Other changes
~~~~~~~~~~~~~
* x86-generic and x86-64 images now have PATA and MMC support to allow using them
on various devices that were previously unsupported.
* Clean up opkg postinst scripts up on image generation
OpenWrt does this by default to save a little space.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,62 @@
Gluon 2016.2.3
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link TL-WR940N v4
* TP-Link TL-WR1043ND v4
Removed hardware support
~~~~~~~~~~~~~~~~~~~~~~~~
Support for Meraki devices (MR12/16/62/66) has been removed for now because of
severe problems (all devices were using the same MAC addresses). Support will return
when the issues have been fixed.
Bugfixes
~~~~~~~~
* Automatically restart respondd on failure (`#863 <https://github.com/freifunk-gluon/gluon/issues/863>`_)
There have been many reports of respondd processes disappearing; the exact cause is unclear,
but might be related to the batman-adv debugfs interface and/or out-of-memory conditions.
A new respondd initscript uses procd to automatically restart respondd when it dies.
* Make autoupdater timeouts more robust (`#987 <https://github.com/freifunk-gluon/gluon/issues/987>`_)
It was reported that wget processes sometimes hang indefinitely during the autoupdater manifest
download. The autoupdater has been improved to ensure that wget can always be interrupted after
a timeout.
This issue, together with the recent addition of lock files to ensure that only one instance
of the autoupdater can run at a time, had caused the autoupdater to blocked completely
by hanging processes in some cases (till a node was rebooted).
* Fix regulation domain switching in ath10k (`#1001 <https://github.com/freifunk-gluon/gluon/pull/1001>`_)
Prevents use of too high transmission power in some cases.
* Ensure that *prefix6* in site.conf is always a /64 prefix (`6b62e2f <https://github.com/freifunk-gluon/gluon/commit/6b62e2fc788cd1f83f6634288a15724dfc42b0fd>`_)
Other prefix lengths were never supported and don't make sense in many places the prefix is used. Ensure
that such configurations will not pass validation.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,55 @@
Gluon 2016.2.4
==============
Bugfixes
~~~~~~~~
* Fix batman-adv (compat 15) not being able to transmit packages of specific sizes (`b7eeef9 <https://github.com/freifunk-gluon/gluon/commit/b7eeef9b04b44a70b2a953c4efe35a3fdceba2db>`_)
We suspect that this issue was also the reason for the autoupdater/wget hangs observed by many communities.
Non-Gluon nodes like gateways should be updated to batman-adv 2017.0.1 to get the fix.
* Fix build after ftp.all.kernel.org discontinuation (`#1059 <https://github.com/freifunk-gluon/gluon/issues/1059>`_)
* Fix high load because of frequent calls of the respondd initscript (`9a0aeb9 <https://github.com/freifunk-gluon/gluon/commit/9a0aeb9b7482df4e4515e61356b9d393e3a7eacb>`_)
The respondd restart triggers added in v2016.2.3 ran a significant portion of the respondd initscript for each router advertisement
received. This was fixed by a backport of a netifd patch.
* x86 sysupgrade fixes (`41fd50d <https://github.com/freifunk-gluon/gluon/commit/41fd50d20ba31d73c4796c5b2d4eb44ad2258b90>`_,
`ad37e2b <https://github.com/freifunk-gluon/gluon/commit/ad37e2b6b43b2c3389356d892b04f3873d8f6b93>`_)
This fixes sysupgrade on mmcblk and similar devices.
Other changes
~~~~~~~~~~~~~
* The manifest generator has been extended to generate SHA256 checksums in addition to SHA512 ones
(`f9d59be <https://github.com/freifunk-gluon/gluon/commit/f9d59be731efd31a26c59e049ccbdc4b1762f6b1>`_)
We have recently switched the autoupdater to SHA256 in the Gluon master to avoid mixing two different
lengths of hashes for no good reason. This makes the manifests of Gluon v2016.2.x compatible with the
new autoupdater so it doesn't prevent backports or downgrades.
**Note:** Downgrades of major Gluon versions are generally unsupported and will often lead to
broken configurations.
Known Issues
~~~~~~~~~~~~
* x86 sysupgrade (sometimes) loses config when kernel partition grows (`#1010 <https://github.com/freifunk-gluon/gluon/issues/1010>`_)
This issue affects upgrades from v2016.2.x and older to the Gluon master only, we hope to fix it before the next
major release.
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,36 @@
Gluon 2016.2.5
==============
This version contains only a single bugfix for a regression introduced in Gluon v2016.2.4.
As the regression affects batman-adv compat 15 only, firmwares using the compat 14 legacy
version don't need to be updated.
Bugfixes
~~~~~~~~
* Fix kernel crash with batman-adv compat 15 (`d452a7c <https://github.com/freifunk-gluon/gluon/commit/d452a7c2cf1c0da4e034666a50dc0e7aa9ddc592>`_)
An incorrect backport of a fix for a very improbable kernel crash caused a much more
frequent kernel crash. The backport has been fixed.
This bug a regression in Gluon v2016.2.4.
Known Issues
~~~~~~~~~~~~
* x86 sysupgrade (sometimes) loses config when kernel partition grows (`#1010 <https://github.com/freifunk-gluon/gluon/issues/1010>`_)
This issue affects upgrades from v2016.2.x and older to the Gluon master only, we hope to fix it before the next
major release.
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,57 @@
Gluon 2016.2.6
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link TL-WR841N/ND v12
Bugfixes
~~~~~~~~
* Fix `CVE-2016-10229 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10229>`_
(`#1097 <https://github.com/freifunk-gluon/gluon/issues/1097>`_)
Fortunately, the standard Gluon setup is not vulnerable, as the issue only affects
applications that use MSG_PEEK on UDP sockets. dnsmasq does use MSG_PEEK, but
only in the DHCP component, which is not enabled during normal node operation.
* Fix roaming issue affecting communication between clients
(`#1121 <https://github.com/freifunk-gluon/gluon/issues/1121>`_)
This issue affects all previous releases of Gluon v2016.2.x.
* Fix build against OpenSSL 1.1 (`b6a22ce <https://github.com/freifunk-gluon/gluon/commit/b6a22ce79307853b175192178bb0333d976a3a6f>`_)
* Fix build with long path names (`#1120 <https://github.com/freifunk-gluon/gluon/issues/1120>`_)
* Use new staged sysupgrade procedure (`d4a69c0 <https://github.com/freifunk-gluon/gluon/commit/d4a69c00047f72696a2400cd7129be032de458e3>`_)
The new sysupgrade fixes an issue affecting x86, causing nodes to lose their
configuration on upgrade when the size of the kernel partition grows. This is
the case when upgrading from Gluon v2016.2.x to newer (LEDE-based) Gluon
versions. **This means that a Gluon node running an older version must be
upgraded to Gluon v2016.2.6 first before switching to a LEDE-based version!**
One downside of the staged sysupgrade is that all processes, including the SSH
server, will be terminated at the start of the sysupgrade to allow unmounting
the root filesystem. This makes it impossible to get any feedback from the
upgrade process without a serial console.
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,31 @@
Gluon 2016.2.7
==============
This release only fixes a single regression introduced in Gluon v2016.2.6, and
add support for building using Perl 5.26.
Bugfixes
~~~~~~~~
* Improve sysupgrade error handling (`#1160 <https://github.com/freifunk-gluon/gluon/issues/1160>`_)
If for some reason processes don't react to SIGKILL (usually because of a kernel bug),
a node could hang forever in sysupgrade, requiring a power cycle. This has been
fixed, triggering a reboot instead.
* Backport fixes to support building with Perl 5.26 or newer (`76753ed <https://github.com/freifunk-gluon/gluon/commit/76753ede0da78e24208f10675fa288247deec961>`_)
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

179
docs/releases/v2016.2.rst Normal file
View File

@ -0,0 +1,179 @@
Gluon 2016.2
============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* ALFA Network
- Tube2H
- N2
- N5
* Buffalo
- WZR-HP-G300NH2
* GL Innovations
- GL-AR150
* OpenMesh
- MR1750 v1, v2 [#ath10k]_
- OM2P-HS v3
- OM5P-AC v1, v2 [#ath10k]_
* TP-Link
- Archer C5 v1 [#ath10k]_
- Archer C7 v2 [#ath10k]_
- TL-WR710N v2.1
- TL-WR842N/ND v3
* Ubiquiti
- UniFi AP AC Lite [#ath10k]_
- UniFi AP AC Pro [#ath10k]_
.. [#ath10k]
Device uses the ath10k WLAN driver; no image is built unless GLUON_ATH10K_MESH
is set as described in :ref:`getting-started-make-variables`
brcm2708-bcm2708
^^^^^^^^^^^^^^^^
* RaspberryPi 1
brcm2708-bcm2709
^^^^^^^^^^^^^^^^
* RaspberryPi 2
New features
~~~~~~~~~~~~
* Many UBNT Airmax XM model names are detected correctly now (e.g., the Loco
is no longer displayed as Bullet) (`#632 <https://github.com/freifunk-gluon/gluon/pull/632>`_)
Also, various new image aliases have been added for these devices.
* batman-adv: mesh_no_rebroadcast is now enabled for Mesh-on-WAN/LAN (`#652 <https://github.com/freifunk-gluon/gluon/issues/652>`_)
* The new UCI option ``gluon-core.@wireless[0].preserve_channels`` can be used to
prevent a changed WLAN channel from being reset on firmware upgrades (`#640 <https://github.com/freifunk-gluon/gluon/issues/640>`_)
* PoE passthrough can now be configured from site.conf and the Advanced Settings
on TP-Link CPE 210/510 and Ubiquiti NanoStations (`#328 <https://github.com/freifunk-gluon/gluon/issues/328>`_)
* The config mode *altitude* field can now be hidden using the ``config_mode.geo_location.show_altitude``
site.conf setting (`#693 <https://github.com/freifunk-gluon/gluon/issues/693>`_)
* The contact information field in the config mode can be made obligatory using
the ``config_mode.owner.obligatory`` site.conf option
* The *node name* setting in the config mode is no longer restricted to valid DNS
hostnames, but allows any UTF-8 string (`#414 <https://github.com/freifunk-gluon/gluon/issues/414>`_)
* Besides the hostname, public key, site config and primary MAC address, the contact
information can now be accessed from config mode site texts
* The functions ``escape`` and ``urlescape`` for HTML and URL escaping are now available from config mode
site texts. They should always be used when including user-provided information like
hostnames and contact information in HTML code or URLs.
* Dropbear has been updated to a newer version, enabling new SSH crypto methods and removing
some old ones like DSA. This reduces the time needed for the first boot and makes
SSH logins faster (`#223 <https://github.com/freifunk-gluon/gluon/issues/223>`_)
* WLAN basic and supported rate sets have been made configurable, to allow disabling
802.11b rates (`#810 <https://github.com/freifunk-gluon/gluon/pull/810>`_)
* ath10k-based devices are now supported officially; it's possible to choose between
IBSS- and 11s-capable firmwares in site.mk (`#864 <https://github.com/freifunk-gluon/gluon/pull/864>`_)
* The ``prefix4`` and ``next_node.ip4`` site.conf options are optional now.
Bugfixes
~~~~~~~~
* The stability of the ath9k WLAN driver has been improved significantly
(`#605 <https://github.com/freifunk-gluon/gluon/issues/605>`_)
mac80211, hostapd and other related drivers and services have been backported from LEDE ``42f559e``.
* Extremely slow downloads could lead to multiple instances of the autoupdater
running concurrently (`#582 <https://github.com/freifunk-gluon/gluon/pull/582>`_)
A lockfile is used to prevent this and timeouts have been added to download processes.
* Usage of static DNS servers on the WAN port has been fixed
(`#886 <https://github.com/freifunk-gluon/gluon/issues/886>`_)
This is a regression introduced in Gluon v2016.1.6.
Other changes
~~~~~~~~~~~~~
* The "Expert Mode" has been renamed to "Advanced Settings"
Site changes
~~~~~~~~~~~~
site.mk
^^^^^^^
If you want to support ath10k-based devices, you should set GLUON_ATH10K_MESH
and GLUON_REGION as described in :ref:`getting-started-make-variables`.
i18n
^^^^
As the hostname field may now contain an arbitrary UTF-8 string, escaping must
be added.
Change
::
<%=hostname%>
to
::
<%=escape(hostname)%>
Inside of URLs, ``urlescape`` must be used instead of ``escape``.
Internals
~~~~~~~~~
* Mesh interfaces are now configured in a protocol-independent way in UCI (`#870 <https://github.com/freifunk-gluon/gluon/pull/870>`_)
The MAC address assignment of all mesh and WLAN interfaces has been modified to prepare for support of
Ralink/Mediatek-based WLAN chips.
* Preparations for supporting the new batman-adv multicast optimizations have been made
(`#674 <https://github.com/freifunk-gluon/gluon/pull/674>`_, `#675 <https://github.com/freifunk-gluon/gluon/pull/675>`_,
`#679 <https://github.com/freifunk-gluon/gluon/pull/679>`_)
* All Lua code is minified now to save some space
Known Issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,41 @@
Gluon 2017.1.1
==============
Bugfixes
~~~~~~~~
* The autoupdater manifest has been extended to allow automatic upgrades from
old *x86-kvm* and *x86-xen_domu* systems to the new *x86-generic* image
(`869ceb4 <https://github.com/freifunk-gluon/gluon/commit/869ceb425cd5f9db3eafddcc52377fd94c6ba0dd>`_)
* Make flash writable again on Ubiquiti PicoStations with certain bootloader
versions (and possibly other devices)
(`9a787c9 <https://github.com/freifunk-gluon/gluon/commit/9a787c9878069158151c843b8fd9aa338815d61e>`_)
Units affected by this issue running Gluon v2017.1 can't leave config mode and
no regular sysupgrades are possible. TFTP recovery is necessary to make them
work again.
* Add workaround to prevent sporadic segfaults of busybox (ash) when running shell scripts on ar71xx
(`#1157 <https://github.com/freifunk-gluon/gluon/issues/1157>`_)
* Disable batman-adv multicast optimizations to work around issue causing large
amounts of management traffic
(`819758f <https://github.com/freifunk-gluon/gluon/commit/819758f4250af8820851945ba1a6c17748b0ab4b>`_)
Multicast optimizations will be enabled again when a proper fix is available.
Known issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -0,0 +1,84 @@
Gluon 2017.1.2
==============
New features
~~~~~~~~~~~~
* Preserve *gw_mode* on sysupgrades (`#1196 <https://github.com/freifunk-gluon/gluon/issues/1196>`_)
When a Gluon node is used as uplink (for example by connecting it to a router with
a DHCP server directly, instead of using non-Gluon servers for the internet uplink),
the *gw_mode* must be set to *server* on that node. The changed *gw_mode* is now
preserved on upgrades.
* Allow configuring the batman-adv routing algorithm (*BATMAN IV* or *BATMAN V*)
in *site.conf* (`#1185 <https://github.com/freifunk-gluon/gluon/issues/1185>`_)
*BATMAN V* still hasn't received extensive testing (and is incompatible with *BATMAN IV*).
This new option allows to set up *BATMAN V*-based test meshes. If unset, the routing
algorithm will default to *BATMAN IV*.
Configuration:
.. code-block:: lua
mesh = {
batman_adv = {
routing_algo = 'BATMAN_V'
}
}
* New *show-release* Make target
The command ``make show-release`` can be used to print the release number
defined by *GLUON_RELEASE* to the standard output. This can be useful for build scripts
when a ``$(shell ...)`` expression is used in *site.mk* to generate the release
number.
Bugfixes
~~~~~~~~
* The image build code used for some devices has been fixed, solving multiple
issues (`#1193 <https://github.com/freifunk-gluon/gluon/issues/1193>`_)
Problems caused by this issue include:
- sysupgrade rejecting Allnet images
- OpenMesh devices losing their configuration on upgrades
This is a regression introduced in Gluon v2017.1.
* Improve sysupgrade error handling (`#1160 <https://github.com/freifunk-gluon/gluon/issues/1160>`_)
If for some reason processes don't react to SIGKILL (usually because of a kernel bug),
a node could hang forever in sysupgrade, requiring a power cycle. This has been
fixed, triggering a reboot instead.
* Also display *gluon-config-mode:novpn* message when Tunneldigger is installed, but disabled
(`#1172 <https://github.com/freifunk-gluon/gluon/issues/1172>`_)
It was only displayed on nodes with fastd before.
* Fix migration of enabled/disabled state between fastd and Tunneldigger
(`#1187 <https://github.com/freifunk-gluon/gluon/issues/1187>`_)
Known issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Sporadic segfaults of busybox (ash) when running shell scripts on ar71xx
(`#1157 <https://github.com/freifunk-gluon/gluon/issues/1157>`_)
The workaround added in Gluon v2017.1.1 has greatly reduced the frequency of
segfaults, but did not make them disappear completely.

View File

@ -0,0 +1,65 @@
Gluon 2017.1.3
==============
The LEDE base of Gluon has been updated to v17.01.3, including various updates,
stability improvements and security fixes. This includes some critical fixes
to core packages like dnsmasq (see below for details); upgrading all Gluon
nodes to v2017.1.3 is highly recommended.
Bugfixes
~~~~~~~~
* dnsmasq has been upgraded to v2.78, fixing CVE-2017-13704, CVE-2017-14491,
CVE-2017-14492, CVE-2017-14493, CVE-2017-14494, 2017-CVE-14495 and
2017-CVE-14496
While many of the most severe (remote code execution) vulnarabilities are in
the DHCP component of dnsmasq, which is not active on a Gluon node unless in
Config Mode, CVE-2017-14491 does affect us. An attacker can cause memory
corruption and possibly remote code execution by deploying a malicious DNS
server and tricking a node into querying this server.
* The Linux kernel has been upgraded to v4.4.89
* Multiple security issues have been fixed in packages that are not usually part
of the Gluon build, including tcpdump, curl and mbedtls
Please refer to the
`LEDE commit log <https://git.lede-project.org/?p=source.git;a=shortlog;h=refs/heads/lede-17.01>`_
for details.
* Filtering of multicast packets between the mesh and the *local-node* interface
has been fixed (`#1230 <https://github.com/freifunk-gluon/gluon/issues/1230>`_)
This issue was causing gluon-radvd to send a router advertisement to the local
clients whenever a router solicitation from the mesh was received. In busy
meshes, it would continuously send router advertisements every 3 seconds.
* Reject autoupdater mirror URLs not starting with ``http://`` during build
(`9ab93992d1fc <https://github.com/freifunk-gluon/gluon/commit/9ab93992d1fca1b9cfa09c54d39cc92d3699055a>`_)
* Fix MAC addresses on TP-Link TL-WR1043ND v4 when installing Gluon over newer
stock firmwares (`#1223 <https://github.com/freifunk-gluon/gluon/issues/1223>`_)
Known issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Sporadic segfaults of busybox (ash) when running shell scripts on ar71xx
(`#1157 <https://github.com/freifunk-gluon/gluon/issues/1157>`_)
The workaround added in Gluon v2017.1.1 has greatly reduced the frequency of
segfaults, but did not make them disappear completely.

View File

@ -0,0 +1,56 @@
Gluon 2017.1.4
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* GL Innovations GL-AR300M
Bugfixes
~~~~~~~~
* LEDE has been updated to the latest stable commit, including various fixes for
the kernel (including security updates), and making opkg work again. This also
includes fixes for the KRACK issue (which is irrelevant for most Gluon
deployments, as Gluon nodes are rarely used as WLAN clients)
(`b62af904bbfd <https://github.com/freifunk-gluon/gluon/commit/b62af904bbfd6360ed728fc9ae69af3d8e8db1d7>`_,
`ba56b41ddaf6 <https://github.com/freifunk-gluon/gluon/commit/ba56b41ddaf6033e3cdef18d30da6b34cd438e8c>`_,
`ad0824136e5b <https://github.com/freifunk-gluon/gluon/commit/ad0824136e5b47482e11483c50e7bc88ba2c506e>`_,
`017fbe88bb8a <https://github.com/freifunk-gluon/gluon/commit/017fbe88bb8a89623464b02e09178696c1d077a6>`_)
* Fix DNS resolution for mesh VPN (fastd / tunneldigger) on ARM-based targets
(`#1245 <https://github.com/freifunk-gluon/gluon/issues/1245>`_)
* Fix a build issue in *kmod-jool*
(`06842728233a <https://github.com/freifunk-gluon/gluon/commit/06842728233a39784c437767eb9df4167ab07a87>`_)
* Fix enabling/disabling PoE Passthrough in *site.conf* or in the
advanced settings
(`7268e49a301f <https://github.com/freifunk-gluon/gluon/commit/7268e49a301fcd643a49b329bd6097a0f85bdaBb>`_,
`7c2636d28264 <https://github.com/freifunk-gluon/gluon/commit/7c2636d28264df20b448b0160b69f5059c40b84a>`_)
Known issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Sporadic segfaults of busybox (ash) when running shell scripts on ar71xx
(`#1157 <https://github.com/freifunk-gluon/gluon/issues/1157>`_)
The workaround added in Gluon v2017.1.1 has greatly reduced the frequency of
segfaults, but it did not make them disappear completely.

View File

@ -0,0 +1,57 @@
Gluon 2017.1.5
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link TL-WR1043N v5
ramips-mt7621
^^^^^^^^^^^^^
* Ubiquiti EdgeRouter-X
* Ubiquiti EdgeRouter-X SFP
Bugfixes
~~~~~~~~
* Fix build with empty ``site/modules``
(`#1262 <https://github.com/freifunk-gluon/gluon/issues/1262>`_)
* Fix Ethernet stalls at high throughput on certain devices
(`#1101 <https://github.com/freifunk-gluon/gluon/issues/1101>`_)
* Update Tunneldigger to support connections with servers running newer kernel
versions (`9ed6ff752eb7 <https://github.com/freifunk-gluon/gluon/commit/9ed6ff752eb7972d90b138197641f12eeb4572fb>`_)
* Fix batman-adv Bridge Loop Avoidance (BLA) with *gluon-ebtables-filter-multicast*
(`#1198 <https://github.com/freifunk-gluon/gluon/issues/1198>`_)
Known issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.
* Sporadic segfaults of busybox (ash) when running shell scripts on ar71xx
(`#1157 <https://github.com/freifunk-gluon/gluon/issues/1157>`_)
The workaround added in Gluon v2017.1.1 has greatly reduced the frequency of
segfaults, but it did not make them disappear completely.
* Frequent reboots due to out-of-memory on weak hardware in larger meshes
(`#1243 <https://github.com/freifunk-gluon/gluon/issues/1243>`_)

234
docs/releases/v2017.1.rst Normal file
View File

@ -0,0 +1,234 @@
Gluon 2017.1
============
General changes
~~~~~~~~~~~~~~~
Gluon 2017.1 is the first release of Gluon based on the LEDE 17.01 branch. The
kernel has been updated from 3.18.x to 4.4.x.
We've used the opportunity to greatly simplify the Gluon build system, removing
many hacks that were required to make the build work with older OpenWrt releases.
The *output/modules* directory is now called *output/packages* and provides a
replacement for the whole repository with target-specific packages of LEDE (in
contrast to packages that are common for all targets of the same architecture).
Another change to the build system makes it necessary that the same *GLUON_RELEASE*
value that is used to build the images is also set for ``make manifest``.
GCC 4.8 or newer is now required to build Gluon.
**Note: There is an issue in all Gluon versions before 2016.2.6 that will
lead to x86 systems losing their configuration when upgrading to Gluon 2017.1!**
Older Gluon versions should be upgraded to 2016.2.6 first before switching to
2017.1.
Another potential issue mostly affects virtual machines: Gluon 2017.1 images are
bigger than 2016.2.x images on x86. If your virtual harddisk is based on a
2016.2.x image, it must be resized to 273MB or bigger before upgrading to Gluon
2017.1. Using qemu, the command
::
qemu-img resize $IMAGE 273MB
can be used to do this.
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- RE450
- WBS210 v1.20
- WBS510 v1.20
* Ubiquiti
- AirGateway LR
- AirGateway PRO
- Rocket M2/M5 Ti
- UniFi AP LR
ar71xx-tiny
^^^^^^^^^^^
The new *ar71xx-tiny* target has split out of *ar71xx-generic*; all
*ar71xx-generic* devices with only 4MB of flash have been moved to this target.
In contrast to *ar71xx-generic*, *ar71xx-tiny* **does not support opkg anymore**
to save some space.
* TP-Link
- TL-WA730RE v1
- TL-WA7210N v2
x86-generic
^^^^^^^^^^^
The *x86-kvm* and *x86-xen_domu* targets have been removed; the *x86-generic*
images now support these usecases as well, so no separate targets are needed
anymore.
x86-geode
^^^^^^^^^
The new *x86-geode* target for hardware based on Geode CPUs has been added.
New features
~~~~~~~~~~~~
* Localization support has been added to the status page. In addition to German,
there are English and Russian translations now (`#1044 <https://github.com/freifunk-gluon/gluon/issues/1044>`_)
* Add support for making nodes a DNS cache for clients
(`#1000 <https://github.com/freifunk-gluon/gluon/issues/1000>`_)
See also: :doc:`../features/dns-cache`
* Add L2TP via tunneldigger as an alternative VPN system
(`#978 <https://github.com/freifunk-gluon/gluon/issues/978>`_)
L2TP will usually give better performance than fastd as it runs in kernel
space, but it does not provide encryption. Also, tunneling over IPv6 is
currently unsupported by tunneldigger.
It is not possible to include both fastd and tunneldigger in the same
firmware.
* Add source filter package (`#1015 <https://github.com/freifunk-gluon/gluon/issues/1015>`_)
The new package *gluon-ebtables-source-filter* can be used to prevent traffic
using unexpected IP addresses or packet types from entering the mesh.
See also: :doc:`../package/gluon-ebtables-source-filter`
Bugfixes
~~~~~~~~
* Disabling batman-adv on an interface (for example when an Ethernet link is lost
or before sysupgrades) could lead to a kernel crash in certain configurations
(`#680 <https://github.com/freifunk-gluon/gluon/issues/680>`_)
* A race condition in the network setup scripts could lead to incomplete setup
during boot or when interfaces were added or removed from batman-adv after
Ethernet link changes (`#905 <https://github.com/freifunk-gluon/gluon/issues/905>`_)
The fix also solved the long-standing issue of Ethernet-only nodes (i.e. no
WLAN or VPN mesh) not booting up correctly without an Ethernet mesh link.
* Some fixes in the WLAN stack of LEDE have improved the stability of the ath9k
driver (`#605 <https://github.com/freifunk-gluon/gluon/issues/605>`_)
Site changes
~~~~~~~~~~~~
site.mk
^^^^^^^
* The *gluon-legacy* package does not exist anymore
* All *gluon-luci-* packages have been renamed to *gluon-web-*;
*gluon-luci-portconfig* is now called *gluon-web-network*
* The *gluon-next-node* package has been merged into the Gluon core and must not
be specified in *site.mk* anymore
site.conf
^^^^^^^^^
* The *fastd_mesh_vpn* configuration section has been restructured to allow
sharing more options with tunneldigger. Instead of
.. code-block:: lua
fastd_mesh_vpn = {
mtu = 1280,
configurable = true,
methods = {'salsa2012+umac'},
groups = { ... },
bandwidth_limit = { ... },
}
the configuration must look like this now:
.. code-block:: lua
mesh_vpn = {
mtu = 1280,
fastd = {
configurable = true,
methods = {'salsa2012+umac'},
groups = { ... },
}
bandwidth_limit = { ... },
}
* The *opkg.openwrt* option has been renamed to *opkg.lede*
i18n
^^^^
* The *escape* function has been removed as it was duplicating the existing
*pcdata* function. All uses of *escape* in i18n templates must be changed to
use *pcdata* instead.
* The *gluon-config-mode:altitude-label* and *gluon-config-mode:altitude-help*
translation IDs have been added to allow adjusting the texts for different
kinds of altitudes that might be expected.
* The optional *gluon-config-mode:novpn* label has been added, which will be
shown in place of *gluon-config-mode:pubkey* when mesh VPN is disabled.
Internals
~~~~~~~~~
* The LuCI base libraries have been replaced by a stripped-down
version called "gluon-web" (`#1007 <https://github.com/freifunk-gluon/gluon/issues/1007>`_)
Custom packages will need to be adjusted; in particular, all uses of *luci.model.uci*
need to be replaced with *simple-uci*. The Gluon documentation explains the most important
changes required to migrate from LuCI to gluon-web.
* respondd now listens on ``ff05::2:1001`` in addition to ``ff02::2:1001`` for mesh-wide
operation (`#984 <https://github.com/freifunk-gluon/gluon/issues/984>`_)
Eventually, ``ff02::2:1001`` will be available for exchanging information
between neighbouring nodes only; map servers should be moved to ``ff05::2:1001``.
* batman-adv has been updated to version 2017.1
* Directly running make commands in the *lede* directory is supported now. Consequently,
build targets like ``target/linux/clean`` and ``package/NAME/compile`` can't be used
in the Gluon repository root anymore.
The command ``make config`` will set up the LEDE *.config* in the way a normal
Gluon build would, so it's possible to build individual packages for testing
and development afterwards.
* Target definitions have been migrated from a Make-based format to a simpler
shell-based DSL
* Gluon does not pass any custom variables into the LEDE build anymore, so things
like *GLUONDIR*, *GLUON_VERSION*, or *GLUON_SITEDIR* aren't available
to package Makefiles in Gluon 2017.1.
Instead of ``$(GLUONDIR)/package.mk``, ``$(TOPDIR)/../package/gluon.mk`` must
be included in custom packages now.
Known issues
~~~~~~~~~~~~
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown (`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* The MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled (`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promicious mode is disallowed).
* Inconsistent respondd API (`#522 <https://github.com/freifunk-gluon/gluon/issues/522>`_)
The current API is inconsistent and will be replaced eventually. The old API will still be supported for a while.

View File

@ -12,27 +12,49 @@ msgstr ""
msgid "gluon-config-mode:welcome"
msgstr ""
"Willkommen zum Einrichtungsassistenten für deinen neuen Entenhausener "
"Willkommen zum Einrichtungsassistenten für deinen neuen Alpha Centauri "
"Freifunk-Knoten. Fülle das folgende Formular deinen Vorstellungen "
"entsprechend aus und sende es ab."
msgid "gluon-config-mode:pubkey"
msgstr ""
"Dies ist der öffentliche Schlüssel deines Freifunk-Knotens. Erst nachdem "
"er auf den Servern des Entenhausener Freifunk-Projektes eingetragen wurde, "
"kann sich dein Knoten mit dem Entenhausener Mesh-VPN zu verbinden. Bitte "
"<p>Dies ist der öffentliche Schlüssel deines Freifunk-Knotens. Erst nachdem "
"er auf den Servern des Freifunk-Projektes auf Alpha Centauri eingetragen wurde, "
"kann sich dein Knoten mit dem Mesh-VPN dort verbinden. Bitte "
"schicke dazu diesen Schlüssel und den Namen deines Knotens "
"(<em><%=hostname%></em>) an "
"<a href=\"mailto:keys@entenhausen.freifunk.net\">keys@entenhausen.freifunk.net</a>."
"(<em><%=pcdata(hostname)%></em>) an "
"<a href=\"mailto:keys@alpha-centauri.freifunk.net?subject=<%= urlencode('Anmeldung: ' .. hostname) %>&amp;"
"body=<%= urlencode('# ' .. hostname .. '\n' .. pubkey) %>\">keys@alpha-centauri.freifunk.net</a>."
"</p>"
"<div class=\"the-key\">"
" # <%= pcdata(hostname) %>"
" <br />"
"<%= pubkey %>"
"</div>"
msgid "gluon-config-mode:novpn"
msgstr ""
"<p>Du hast ausgewählt, <strong>kein Mesh-VPN</strong> "
"zu nutzen. Dein Knoten kann also nur dann eine Verbindung zum Freifunk-Netz "
"aufbauen, wenn andere Freifunk-Router in WLAN-Reichweite sind."
"</p>"
msgid "gluon-config-mode:reboot"
msgstr ""
"<p>Dein Knoten startet gerade neu und wird anschließend versuchen, "
"sich mit anderen Freifunkknoten in seiner Nähe zu "
"<p>Dein Knoten <em><%= pcdata(hostname) %></em> startet gerade neu und wird "
"anschließend versuchen, sich mit anderen Freifunkknoten in seiner Nähe zu "
"verbinden. Weitere Informationen zur "
"Entenhausener Freifunk-Community findest du auf "
"<a href=\"https://entenhausen.freifunk.net/\">unserer Webseite</a>.</p>"
"Alpha Centauri Freifunk-Community findest du auf "
"<a href=\"https://alpha-centauri.freifunk.net/\">unserer Webseite</a>.</p>"
"<p>Um zu dieser Konfigurationsseite zurückzugelangen, drücke im normalen "
"Betrieb für drei Sekunden den Reset-Button. Das Gerät wird dann im Config "
"Mode neustarten.</p>"
"<p>Viel Spaß mit deinem Knoten und der Erkundung von Freifunk!</p>"
msgid "gluon-config-mode:altitude-label"
msgstr "Höhe"
msgid "gluon-config-mode:altitude-help"
msgstr ""
"Die Höhenangabe ist optional und sollte nur gesetzt werden, wenn ein "
"exakter Wert bekannt ist."

View File

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2015-03-19 20:28+0100\n"
"Last-Translator: Matthias Schiffer <mschiffer@universe-factory.net>\n"
"PO-Revision-Date: 2016-02-04 14:28+0100\n"
"Last-Translator: David Lutz <kpanic@hirnduenger.de>\n"
"Language-Team: English\n"
"Language: en\n"
"MIME-Version: 1.0\n"
@ -12,25 +12,44 @@ msgstr ""
msgid "gluon-config-mode:welcome"
msgstr ""
"Welcome the the setup wizard of your new Freifunk Duckburg node. "
"Please fill out the following form and transmit it."
"Welcome to the setup wizard of your new Freifunk Alpha Centauri node. "
"Please fill out the following form and submit it."
msgid "gluon-config-mode:pubkey"
msgstr ""
"This is your Freifunk node's public key. The node won't be able to "
"connect to the mesh VPN until the key has been registered on the Freifunk "
"Duckburg servers. "
"To register the key send it together with your node's name (<em><%=hostname%></em>) to "
"<a href=\"mailto:keys@entenhausen.freifunk.net\">keys@entenhausen.freifunk.net</a>."
"<p>This is your Freifunk node's public key. The node won't be able to "
"connect to the mesh VPN until the key has been registered on the Freifunk servers. "
"To register, send the key together with your node's name (<em><%=pcdata(hostname)%></em>) to "
"<a href=\"mailto:keys@alpha-centauri.freifunk.net?subject=<%= urlencode('Registration: ' .. hostname) %>&amp;"
"body=<%= urlencode('# ' .. hostname .. '\n' .. pubkey) %>\">keys@alpha-centauri.freifunk.net</a>."
"</p>"
"<div class=\"the-key\">"
" # <%= pcdata(hostname) %>"
" <br />"
"<%= pubkey %>"
"</div>"
msgid "gluon-config-mode:novpn"
msgstr ""
"<p>You have selected <strong>not</strong> to use the mesh VPN. "
"Your node will only be able to connect to the Freifunk network if other nodes in reach "
"already have a connection.</p>"
msgid "gluon-config-mode:reboot"
msgstr ""
"<p>The node is currently rebooting and will try to connect to other "
"nearby Freifunk nodes after that. "
"Your can find lots of information on the Freifunk Duckburg community on "
"<a href=\"https://entenhausen.freifunk.net/\">our homepage</a>.</p>"
"<p>Your node <em><%= pcdata(hostname) %></em> is currently rebooting and will "
"try to connect to other nearby Freifunk nodes after that. For more "
"information about the Freifunk community on Alpha Centauri, have a look at "
"<a href=\"https://alpha-centauri.freifunk.net/\">our homepage</a>.</p>"
"<p>To get back to this configuration interface, press the reset button for "
"3 seconds during normal operation. The device will then reboot into config "
"mode.</p>"
"<p>Have fun with your node and exploring the Freifunk network!</p>"
"<p>Have fun with your node and exploring of the Freifunk network!</p>"
msgid "gluon-config-mode:altitude-label"
msgstr "Altitude"
msgid "gluon-config-mode:altitude-help"
msgstr ""
"Specifying the altitude is optional and should only be done if a proper "
"value is known."

View File

@ -0,0 +1,58 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2015-08-06 20:28+0100\n"
"Last-Translator: Tobias Bernot <tqbs@airmail.cc>\n"
"Language-Team: French\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "gluon-config-mode:welcome"
msgstr ""
"Bienvenue dans l'assistant de configuration pour votre nouveau nœud "
"Freifunk. Remplissez le formulaire suivant en fonction de vos besoins "
"et enregistrez le"
msgid "gluon-config-mode:pubkey"
msgstr ""
"<p>Ceci est la clé publique de votre nœud Freifunk. Seulment après que la clé soit "
"entrée sur les serveurs de votre groupe de Freifunk votre nœud pourra se connecter "
"sur les serveur Mesh-VPN de votre groupe Freifunk. Veuillez envoyer la clé avec le "
"nom de votre nœud "
"(<em><%=pcdata(hostname)%></em>) à "
"<a href=\"mailto:keys@alpha-centauri.freifunk.net?subject=<%= urlencode('Enregistrement: ' .. hostname) %>&amp;"
"body=<%= urlencode('# ' .. hostname .. '\n' .. pubkey) %>\">keys@alpha-centauri.freifunk.net</a>."
"</p>"
"<div class=\"the-key\">"
" # <%= pcdata(hostname) %>"
" <br />"
"<%= pubkey %>"
"</div>"
msgid "gluon-config-mode:novpn"
msgstr ""
"<p>Vous avez choisi de <strong>ne pas utiliser</strong> "
"le réseau VPN. Votre nœud ne pourra se connecter au réseau Freifunk que si "
"d'autres nœuds à portée ont déjà une connexion.</p>"
msgid "gluon-config-mode:reboot"
msgstr ""
"<p>Votre nœud <em><%= pcdata(hostname) %></em> es en train de redémarrer et "
"va ensuite éssayer de se connecter avec les autres nœuds du réseau Freifunk "
"Vous pourrez trouver plus d'informations sur votre groupe Freifunk sur la page "
"<a href=\"https://alpha-centauri.freifunk.net/\"> de ton groupe </a>.</p> "
"<p> Pour retrouver cette page de configuration veuillier appuyez pendant le "
"fonctionement normal pendant 3 Secondes sur le bouton reset. L'appareil va ensuite "
"redémarer en mode configuration.</p> "
"<p>Profitez votre de nœud et amusez vous à découvrir le réseau Freifunk!</p>"
msgid "gluon-config-mode:altitude-label"
msgstr "Hauteur"
msgid "gluon-config-mode:altitude-help"
msgstr ""
"La altitude est optionelle et ne devrait que être ajoutée si la valeur "
"exacte est connue."

View File

@ -7,5 +7,14 @@ msgstr ""
msgid "gluon-config-mode:pubkey"
msgstr ""
msgid "gluon-config-mode:novpn"
msgstr ""
msgid "gluon-config-mode:reboot"
msgstr ""
msgid "gluon-config-mode:altitude-label"
msgstr ""
msgid "gluon-config-mode:altitude-help"
msgstr ""

View File

@ -1,4 +1,4 @@
-- This is an example site configuration for Gluon v2015.1
-- This is an example site configuration for Gluon v2017.1.5
--
-- Take a look at the documentation located at
-- http://gluon.readthedocs.org/ for details.
@ -10,12 +10,14 @@
-- hostname_prefix = 'freifunk-',
-- Name of the community.
site_name = 'Freifunk Entenhausen',
site_name = 'Freifunk Alpha Centauri',
-- Shorthand of the community.
site_code = 'ffxx',
-- Prefixes used within the mesh. Both are required.
-- Prefixes used within the mesh.
-- prefix6 is required, prefix4 can be omitted if next_node.ip4
-- is not set.
prefix4 = '10.xxx.0.0/20',
prefix6 = 'fdxx:xxxx:xxxx::/64',
@ -35,42 +37,40 @@
-- Wireless channel.
channel = 1,
-- List of supported wifi rates (optional)
-- Example removes 802.11b compatibility for better performance
supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
-- List of basic wifi rates (optional, required if supported_rates is set)
-- Example removes 802.11b compatibility for better performance
basic_rate = {6000, 9000, 18000, 36000, 54000},
-- ESSID used for client network.
ssid = 'entenhausen.freifunk.net',
ap = {
ssid = 'alpha-centauri.freifunk.net',
-- disabled = true, (optional)
},
-- Specifies the channel width in 802.11n and 802.11ac mode.
-- Possible values are:
-- HT20 (single 20MHz channel),
-- HT40- (2x 20MHz channels, secondary below)
-- HT40+ (2x 20MHz channels, secondary above)
htmode = 'HT20',
-- Adjust these values!
mesh_ssid = 'xe:xx:xx:xx:xx:xx', -- ESSID used for mesh
mesh_bssid = 'xe:xx:xx:xx:xx:xx', -- BSSID used for mesh
-- Bitrate used for multicast/broadcast packets.
mesh_mcast_rate = 12000,
-- (optional) mesh VLAN on 802.11 ad-hoc interface (1-4095)
-- mesh_vlan = 14,
-- client_disabled = true,
-- mesh_disabled = false,
mesh = {
-- Adjust these values!
id = 'ffxx-mesh',
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 and htmode.
-- for channel.
wifi5 = {
ssid = 'entenhausen.freifunk.net',
channel = 44,
htmode = 'HT20',
mesh_ssid = 'xx:xx:xx:xx:xx:xx',
mesh_bssid = 'xx:xx:xx:xx:xx:xx',
mesh_mcast_rate = 12000,
-- mesh_vlan = 14,
-- client_disabled = true,
-- mesh_disabled = false,
ap = {
ssid = 'alpha-centauri.freifunk.net',
},
mesh = {
id = 'ffxx-mesh',
mcast_rate = 12000,
},
},
-- The next node feature allows clients to always reach the node it is
@ -84,47 +84,74 @@
mac = 'xe:xx:xx:xx:xx:xx',
},
-- Refer to http://fastd.readthedocs.org/en/latest/ to better understand
-- what these options do.
fastd_mesh_vpn = {
-- List of crypto-methods to use.
methods = {'salsa2012+umac'},
-- Options specific to routing protocols (optional)
-- mesh = {
-- Options specific to the batman-adv routing protocol (optional)
-- batman_adv = {
-- Gateway selection class (optional)
-- The default class 20 is based on the link quality (TQ) only,
-- class 1 is calculated from both the TQ and the announced bandwidth
-- gw_sel_class = 1,
-- },
-- },
mesh_vpn = {
-- enabled = true,
-- configurable = true,
mtu = 1280,
mtu = 1426,
groups = {
backbone = {
-- Limit number of connected peers to reduce bandwidth.
limit = 2,
fastd = {
-- Refer to http://fastd.readthedocs.org/en/latest/ to better understand
-- what these options do.
-- List of peers.
peers = {
peer1 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
-- List of crypto-methods to use.
methods = {'salsa2012+umac'},
-- configurable = true,
-- syslog_level = 'warn',
-- This is a list, so you might add multiple entries.
remotes = {'ipv4 "xxx.somehost.invalid" port xxxxxx'},
},
peer2 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
-- You can also omit the ipv4 to allow both connection via ipv4 and ipv6
remotes = {'"xxx.somehost2.invalid" port xxxxx'},
groups = {
backbone = {
-- Limit number of connected peers to reduce bandwidth.
limit = 1,
-- List of peers.
peers = {
peer1 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
-- This is a list, so you might add multiple entries.
remotes = {'ipv4 "xxx.somehost.invalid" port xxxxxx'},
},
peer2 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
-- You can also omit the ipv4 to allow both connection via ipv4 and ipv6
remotes = {'"xxx.somehost2.invalid" port xxxxx'},
},
},
-- Optional: nested peer groups
-- groups = {
-- backbone_sub = {
-- ...
-- },
-- ...
-- },
},
-- Optional: nested peer groups
-- groups = {
-- backbone_sub = {
-- ...
-- },
-- Optional: additional peer groups, possibly with other limits
-- backbone2 = {
-- ...
-- },
},
-- Optional: additional peer groups, possibly with other limits
-- backbone2 = {
-- ...
-- },
},
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,
},
},
@ -167,24 +194,20 @@
-- },
-- },
-- Bandwidth limiting
simple_tc = {
mesh_vpn = {
ifname = 'mesh-vpn',
-- You may enable it by default here.
enabled = false,
-- Default upload limit (kbit/s).
limit_egress = 200,
-- Default download limit (kbit/s).
limit_ingress = 3000,
},
},
-- Skip setup mode (config mode) on first boot
-- setup_mode = {
-- skip = true,
-- },
-- config_mode = {
-- Show/hide the altitude field
-- geo_location = {
-- show_altitude = false,
-- },
-- define if the contact field is obligatory (optional)
-- owner = {
-- obligatory = true
-- },
-- },
}

View File

@ -1,13 +1,11 @@
## gluon site.mk makefile example
## GLUON_SITE_PACKAGES
# specify gluon/openwrt packages to include here
# The gluon-mesh-batman-adv-* package must come first because of the dependency resolution
# specify Gluon/LEDE packages to include here
GLUON_SITE_PACKAGES := \
gluon-mesh-batman-adv-15 \
gluon-alfred \
gluon-announced \
gluon-respondd \
gluon-autoupdater \
gluon-config-mode-autoupdater \
gluon-config-mode-contact-info \
@ -17,17 +15,16 @@ GLUON_SITE_PACKAGES := \
gluon-config-mode-mesh-vpn \
gluon-ebtables-filter-multicast \
gluon-ebtables-filter-ra-dhcp \
gluon-luci-admin \
gluon-luci-autoupdater \
gluon-luci-portconfig \
gluon-luci-wifi-config \
gluon-next-node \
gluon-web-admin \
gluon-web-autoupdater \
gluon-web-network \
gluon-web-wifi-config \
gluon-mesh-batman-adv-15 \
gluon-mesh-vpn-fastd \
gluon-radvd \
gluon-setup-mode \
gluon-status-page \
haveged \
iptables \
iwinfo
## DEFAULT_GLUON_RELEASE
@ -38,6 +35,7 @@ GLUON_SITE_PACKAGES := \
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.
@ -46,11 +44,13 @@ DEFAULT_GLUON_RELEASE := 0.6+exp$(shell date '+%Y%m%d')
# would generate images named like this:
# gluon-ff%site_code%-23.42+5-%router_model%.bin
# Allow overriding the release number from the command line
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

View File

@ -1,3 +1,17 @@
Frequently Asked Questions
==========================
.. _faq-dns:
DNS does not work on the nodes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gluon nodes will ignore the DNS server on the WAN port for everything except
the mesh VPN, which can lead to confusion.
All normal services on the nodes exclusively use the DNS server on the mesh
interface. This DNS server must be announced in router advertisements (using
*radvd* or a similar software) from one or more central servers in meshes based
on *batman-adv*. If your mesh does not have global IPv6 connectivity, you can setup
your *radvd* not to announce a default route by setting the *default lifetime* to 0;
in this case, the *radvd* is only used to announce the DNS server.

View File

@ -4,18 +4,20 @@ Getting Started
Selecting the right version
---------------------------
Gluon's releases are managed using `Git tags`_. If you're a community getting
Gluon's releases are managed using `Git tags`_. If you are just getting
started with Gluon we recommend to use the latest stable release of Gluon.
Take a look at the `list of gluon releases`_ and notice the latest release,
e.g. *v2014.3*.
e.g. *v2017.1.5*. Always get Gluon using git and don't try to download it
as a Zip archive as the archive will be missing version information.
Please keep in mind that a matching site configuration for your community
is required. Due to new features being added (or sometimes being removed)
the format of the site configuration changes slightly between releases.
Please keep in mind that there is no "default Gluon" build; a site configuration
is required to adjust Gluon to your needs. Due to new features being added (or
sometimes being removed) the format of the site configuration changes slightly
between releases. Please refer to our release notes for instructions to update
an old site configuration to a newer release of Gluon.
Recent releases (starting with *v2014.3.1*) will come with an example
configuration located in *docs/site-example/*.
An example configuration can be found in the Gluon repository at *docs/site-example/*.
.. _Git tags: http://git-scm.com/book/en/Git-Basics-Tagging
.. _list of gluon releases: https://github.com/freifunk-gluon/gluon/releases
@ -27,18 +29,21 @@ freshly installed Debian Wheezy system the following packages are required:
* `git` (to get Gluon and other dependencies)
* `subversion`
* `python` (Python 3 doesn't work)
* `build-essential`
* `gawk`
* `unzip`
* `libncurses-dev` (actually `libncurses5-dev`)
* `libz-dev` (actually `zlib1g-dev`)
* `libssl-dev`
* `wget`
Building the images
-------------------
To build Gluon, first check out the repository. Replace *RELEASE* with the
version you'd like to checkout, e.g. *v2015.1*.
version you'd like to checkout, e.g. *v2017.1.5*.
::
@ -47,88 +52,157 @@ version you'd like to checkout, e.g. *v2015.1*.
This command will create a directory named *gluon/*.
It might also tell a scary message about being in a *detached state*.
**Don't panic!** Everything's fine.
Now, enter the freshly created directory:
::
Now, enter the freshly created directory::
cd gluon
It's time to add (or create) your site configuration.
So let's create the directory *site/*:
It's time to add (or create) your site configuration. If you already
have a site repository, just clone it::
::
git clone https://github.com/freifunk-alpha-centauri/site-ffac.git site
If you want to build a new site, create a new git repository *site/*::
mkdir site
cd site
git init
Copy *site.conf*, *site.mk* and *i18n* from *docs/site-example*:
::
Copy *site.conf*, *site.mk* and *i18n* from *docs/site-example*::
cp ../docs/site-example/site.conf .
cp ../docs/site-example/site.mk .
cp -r ../docs/site-example/i18n .
Edit these files to match your community, then go back to the top-level Gluon
directory and build Gluon:
Edit these files as you see fit and commit them into the site repository.
Extensive documentation about the site configuration can be found at:
:doc:`site`. The
site directory should always be a git repository by itself; committing site-specific files
to the Gluon main repository should be avoided, as it will make updates more complicated.
::
Next go back to the top-level Gluon directory and build Gluon::
cd ..
make update # Get other repositories used by Gluon
make GLUON_TARGET=ar71xx-generic # Build Gluon
When calling make, the OpenWrt build environment is prepared/updated.
In case of errors read the messages carefully and try to fix the stated issues (e.g. install tools not available yet).
``ar71xx-generic`` is the most common target and will generated images for most of the supported hardware.
``ar71xx-generic`` is the most common target and will generate images for most of the supported hardware.
To see a complete list of supported targets, call ``make`` without setting ``GLUON_TARGET``.
The built images can be found in the directory `images`. Of these, the factory
images are to be used when flashing from the original firmware a device came with,
and sysupgrade is to upgrade from other versions of Gluon or any other OpenWRT-based
system.
You should reserve about 10GB of disk space for each `GLUON_TARGET`.
There are two levels of `make clean`:
The built images can be found in the directory `output/images`. Of these, the `factory`
images are to be used when flashing from the original firmware a device came with,
and `sysupgrade` is to upgrade from other versions of Gluon or any other OpenWrt/LEDE-based
system.
::
**Note:** The images for some models are identical; to save disk space, symlinks are generated instead
of multiple copies of the same image. If your webserver's configuration prohibits following
symlinks, you can use the following command to resolve these links while copying the images::
cp -rL output/images /var/www
Cleaning the build tree
.......................
There are two levels of `make clean`::
make clean GLUON_TARGET=ar71xx-generic
will ensure all packages are rebuilt for a single target; this is what you normally want to do after an update.
will ensure all packages are rebuilt for a single target. This normally not
necessary, but may fix certain kinds of build failures.
::
make dirclean
will clean the entire tree, so the toolchain will be rebuilt as well, which is
not necessary in most cases, and will take a while.
will clean the entire tree, so the toolchain will be rebuilt as well, which will take a while.
opkg repositories
-----------------
Environment variables
---------------------
Gluon is mostly compatible with LEDE, so the normal LEDE package repositories
can be used for Gluon as well.
Gluon's build process can be controlled by various environment variables.
This is not true for kernel modules; the Gluon kernel is incompatible with the
kernel of the default LEDE images. Therefore, Gluon will not only generate images,
but also an opkg repository containing all core packages provided by LEDE,
including modules for the kernel of the generated images.
GLUON_SITEDIR
Path to the site configuration. Defaults to ``site/``.
Signing keys
............
GLUON_IMAGEDIR
Path where images will be stored. Defaults to ``images/``.
Gluon does not support HTTPS for downloading packages; fortunately, opkg deploys
public-key cryptography to ensure package integrity.
The Gluon images will contain public keys from two sources: the official LEDE keyring
(to allow installing userspace packages) and a Gluon-specific key (which is used
to sign the generated package repository).
LEDE will handle the generation and handling of the keys itself.
When making firmware releases based on Gluon, it might make sense to store
the keypair, so updating the module repository later is possible.
.. _getting-started-make-variables:
Make variables
--------------
Gluon's build process can be controlled by various variables. They can
usually be set on the command line or in ``site.mk``.
Common variables
................
GLUON_ATH10K_MESH
While Gluon does support some hardware with ath10k-based 5GHz WLAN, these WLAN adapters don't work
well for meshing at the moment, so building images for these models is disabled by default. In addition,
ath10k can't support IBSS and 11s meshing in the same image due to WLAN firmware restrictions.
Setting GLUON_ATH10K_MESH to ``11s`` or ``ibss`` will enable generation of images for ath10k devices
and install the firmware for the corresponding WLAN mode.
GLUON_BRANCH
Sets the default branch of the autoupdater. If unset, the autoupdater is disabled
by default. For the ``make manifest`` command, GLUON_BRANCH defines the branch to
generate a manifest for.
GLUON_LANGS
Space-separated list of languages to include for the config mode/advanced settings. Defaults to ``en``.
``en`` should always be included, other supported languages are ``de`` and ``fr``.
GLUON_PRIORITY
Defines the priority of an automatic update in ``make manifest``. See :doc:`../features/autoupdater` for
a detailed description of this value.
GLUON_REGION
Some devices (at the moment the TP-Link Archer C7) contain a region code that restricts
firmware installations. Set GLUON_REGION to ``eu`` or ``us`` to make the resulting
images installable from the respective stock firmwares.
GLUON_RELEASE
Firmware release number: This string is displayed in the config mode, announced
via respondd/alfred and used by the autoupdater to decide if a newer version
is available.
GLUON_TARGET
Target architecture to build.
Special variables
.................
GLUON_BUILDDIR
Working directory during build. Defaults to ``build/``.
Working directory during build. Defaults to ``build``.
GLUON_IMAGEDIR
Path where images will be stored. Defaults to ``$(GLUON_OUTPUTDIR)/images``.
So all in all, to update and rebuild a Gluon build tree, the following commands should be used (repeat the
``make clean`` and ``make`` for all targets you want to build):
GLUON_PACKAGEDIR
Path where the opkg package repository will be stored. Defaults to ``$(GLUON_OUTPUTDIR)/packages``.
::
GLUON_OUTPUTDIR
Path where output files will be stored. Defaults to ``output``.
git pull
(cd site && git pull)
make update
make clean GLUON_TARGET=ar71xx-generic
make GLUON_TARGET=ar71xx-generic
GLUON_SITEDIR
Path to the site configuration. Defaults to ``site``.

View File

@ -1,5 +1,5 @@
Site
====
Site configuration
==================
The ``site`` consists of the files ``site.conf`` and ``site.mk``.
In the first community based values are defined, which both are processed
@ -21,12 +21,14 @@ site_code
The code of your community. It is good practice to use the TLD of
your community here.
prefix4
prefix4 \: optional
The IPv4 Subnet of your community mesh network in CIDR notation, e.g.
::
prefix4 = '10.111.111.0/18'
Required if ``next_node.ip4`` is set.
prefix6
The IPv6 subnet of your community mesh network, e.g.
::
@ -44,48 +46,105 @@ ntp_server
List of NTP servers available in your community or used by your community, e.g.:
::
ntp_servers = {'1.ntp.services.ffeh','2.tnp.services.ffeh'}
ntp_servers = {'1.ntp.services.ffac','2.ntp.services.ffac'}
This NTP servers must be reachable via IPv6 from the nodes. If you don't want to set an IPv6 address
explicitly, but use a hostname (which is recommended), see also the :ref:`FAQ <faq-dns>`.
opkg \: optional
``opkg`` package manager configuration.
There are two optional fields in the ``opkg`` section:
- ``lede`` overrides the default LEDE repository URL. The default URL would
correspond to ``http://downloads.lede-project.org/snapshots/packages/%A``
and usually doesn't need to be changed when nodes are expected to have IPv6
internet connectivity.
- ``extra`` specifies a table of additional repositories (with arbitrary keys)
opkg_repo : optional
Overwrite the default ``opkg`` repository server, e.g.:
::
opkg_repo = 'http://opkg.services.ffeh/attitude_adjustment/12.09/%S/packages'
opkg = {
lede = 'http://opkg.services.ffac/lede/snapshots/packages/%A',
extra = {
gluon = 'http://opkg.services.ffac/modules/gluon-%GS-%GR/%S',
},
}
The `%S` is a variable, which is replaced with the platform of an device
during the build process.
There are various patterns which can be used in the URLs:
regdom
- ``%n`` is replaced by the LEDE version codename
- ``%v`` is replaced by the LEDE version number (e.g. "17.01")
- ``%S`` is replaced by the target board (e.g. "ar71xx/generic")
- ``%A`` is replaced by the target architecture (e.g. "mips_24kc")
- ``%GS`` is replaced by the Gluon site code (as specified in ``site.conf``)
- ``%GV`` is replaced by the Gluon version
- ``%GR`` is replaced by the Gluon release (as specified in ``site.mk``)
regdom \: optional
The wireless regulatory domain responsible for your area, e.g.:
::
regdom = 'DE'
wifi24
WLAN Configuration of your community in the 2.4Ghz radio. Consisting
of ``ssid`` of your client network, the ``channel`` your community is using,
``htmode``, the adhoc ssid ``mesh_ssid`` used between devices, the adhoc
bssid ``mesh_bssid`` and the adhoc multicast rate ``mesh_mcast_rate``.
Optionally ``mesh_vlan`` can be used to setup VLAN on top of the 802.11
ad-hoc interface. The options ``mesh_disabled`` and ``client_disabled``
are optional, too. They allow to disable the SSID by default, e.g. for
preconfigured node. This only affects first configuraton.
Combined in an dictionary, e.g.:
Setting ``regdom`` is mandatory if ``wifi24`` or ``wifi5`` is defined.
wifi24 \: optional
WLAN configuration for 2.4 GHz devices.
``channel`` must be set to a valid wireless channel for your radio.
There are currently three interface types available. You many choose to
configure any subset of them:
- ``ap`` creates a master interface where clients may connect
- ``mesh`` creates an 802.11s mesh interface with forwarding disabled
- ``ibss`` creates an ad-hoc interface
Each interface may be disabled by setting ``disabled`` to ``true``.
This will only affect new installations.
Upgrades will not change the disabled state.
Additionally it is possible to configure the ``supported_rates`` and ``basic_rate``
of each radio. Both are optional, by default hostapd/driver dictate the rates.
If ``supported_rates`` is set, ``basic_rate`` is required, because ``basic_rate``
has to be a subset of ``supported_rates``.
The example below disables 802.11b rates.
``ap`` requires a single parameter, a string, named ``ssid`` which sets the
interface's ESSID.
``mesh`` requires a single parameter, a string, named ``id`` which sets the mesh id.
``ibss`` requires two parametersr: ``ssid`` (a string) and ``bssid`` (a MAC).
An optional parameter ``vlan`` (integer) is supported.
Both ``mesh`` and ``ibss`` accept an optional ``mcast_rate`` (kbit/s) parameter for
setting the multicast bitrate. Increasing the default value of 1000 to something
like 12000 is recommended.
::
wifi24 = {
ssid = 'entenhausen.freifunk.net',
channel = 11,
htmode = 'HT40-',
mesh_ssid = 'ff:ff:ff:ee:ba:be',
mesh_bssid = 'ff:ff:ff:ee:ba:be',
mesh_mcast_rate = 12000,
supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
basic_rate = {6000, 9000, 18000, 36000, 54000},
ap = {
ssid = 'alpha-centauri.freifunk.net',
},
mesh = {
id = 'alpha-centauri-mesh',
mcast_rate = 12000,
},
ibss = {
ssid = 'ff:ff:ff:ee:ba:be',
bssid = 'ff:ff:ff:ee:ba:be',
mcast_rate = 12000,
},
},
wifi5
wifi5 \: optional
Same as `wifi24` but for the 5Ghz radio.
next_node : package
next_node \: package
Configuration of the local node feature of Gluon
::
@ -95,61 +154,156 @@ next_node : package
mac = 'ca:ff:ee:ba:be:00'
}
The IPv4 next-node address is optional.
fastd_mesh_vpn
Remote server setup for the fastd-based mesh VPN.
mesh \: optional
Options specific to routing protocols.
The `enabled` option can be set to true to enable the VPN by default.
At the moment, only the ``batman_adv`` routing protocol has such options:
If `configurable` is `false` or unset, the method list will be replaced on updates
with the list in the site configuration. Setting `configurable` to `true` will allow the user to
add the method ``null`` to the front of the method list or remove ``null`` from it,
and make this change survive updates. Settings configurable is necessary for the
package `gluon-luci-mesh-vpn-fastd`, which adds a UI for this configuration.
The optional value ``gw_sel_class`` sets the gateway selection class. The default
class 20 is based on the link quality (TQ) only, class 1 is calculated from
both the TQ and the announced bandwidth.
::
mesh = {
batman_adv = {
gw_sel_class = 1,
},
}
mesh_vpn
Remote server setup for the mesh VPN.
The `enabled` option can be set to true to enable the VPN by default. `mtu`
defines the MTU of the VPN interface.
The `fastd` section configures settings specific to the *fastd* VPN
implementation.
If `configurable` is set to `false` or unset, the method list will be replaced on updates
with the list from the site configuration. Setting `configurable` to `true` will allow the user to
add the method ``null`` to the beginning of the method list or remove ``null`` from it,
and make this change survive updates. Setting `configurable` is necessary for the
package `gluon-web-mesh-vpn-fastd`, which adds a UI for this configuration.
In any case, the ``null`` method should always be the first method in the list
if it is supported at all. You should only set `configurable` to `true` if the
configured peers support both the ``null`` method and methods with encryption.
You can set syslog_level from verbose (default) to warn to reduce syslog output.
The `tunneldigger` section is used to define the *tunneldigger* broker list.
**Note:** It doesn't make sense to include both `fastd` and `tunneldigger`
sections in the same configuration file, as only one of the packages *gluon-mesh-vpn-fastd*
and *gluon-mesh-vpn-tunneldigger* should be installed with the current
implementation.
::
fastd_mesh_vpn = {
methods = {'salsa2012+umac'},
-- enabled = true,
-- configurable = true,
mtu = 1426,
groups = {
backbone = {
limit = 2,
peers = {
peer1 = {
key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
remotes = {'ipv4 "vpn1.entenhausen.freifunk.net" port 10000'},
mesh_vpn = {
-- enabled = true,
mtu = 1280,
fastd = {
methods = {'salsa2012+umac'},
-- configurable = true,
-- syslog_level = 'warn',
groups = {
backbone = {
-- Limit number of connected peers from this group
limit = 1,
peers = {
peer1 = {
key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
-- Having multiple domains prevents SPOF in freifunk.net
remotes = {
'ipv4 "vpn1.alpha-centauri.freifunk.net" port 10000',
'ipv4 "vpn1.alpha-centauri-freifunk.de" port 10000',
},
},
peer2 = {
key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
-- You can also omit the ipv4 to allow both connection via ipv4 and ipv6
remotes = {'"vpn2.alpha-centauri.freifunk.net" port 10000'},
},
peer3 = {
key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
-- In addition to domains you can also add ip addresses, which provides
-- resilience in case of dns outages
remotes = {
'"vpn3.alpha-centauri.freifunk.net" port 10000',
'[2001:db8::3:1]:10000',
'192.0.2.3:10000',
},
},
},
}
}
}
-- Optional: nested peer groups
-- groups = {
-- lowend_backbone = {
-- limit = 1,
-- peers = ...
-- },
-- },
},
-- Optional: additional peer groups, possibly with other limits
-- peertopeer = {
-- limit = 10,
-- peers = { ... },
-- },
},
},
tunneldigger = {
brokers = {'vpn1.alpha-centauri.freifunk.net'}
},
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,
},
}
mesh_on_wan : optional
mesh_on_wan \: optional
Enables the mesh on the WAN port (``true`` or ``false``).
::
mesh_on_lan : optional
mesh_on_wan = true,
mesh_on_lan \: optional
Enables the mesh on the LAN port (``true`` or ``false``).
::
mesh_on_lan = true,
autoupdater : package
poe_passthrough \: optional
Enable PoE passthrough by default on hardware with such a feature.
autoupdater \: package
Configuration for the autoupdater feature of Gluon.
The mirrors are checked in random order until the manifest could be downloaded
successfully or all mirrors have been tried.
::
autoupdater = {
branch = 'experimental',
branch = 'stable',
branches = {
stable = {
name = 'stable',
mirrors = {
'http://[fdca:ffee:babe:1::fec1]/firmware/stable/sysupgrade/',
'http://[fdca:ffee:babe:1::fec2]/firmware/stable/sysupgrade/',
'http://autoupdate.alpha-centauri.freifunk.net/firmware/stable/sysupgrade/',
},
probability = 0.08,
-- Number of good signatures required
good_signatures = 2,
pubkeys = {
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', -- someguy
@ -159,18 +313,21 @@ autoupdater : package
}
}
roles : optional
Optional role definitions. With this nodes will announce their role inside the mesh.
In the backend this adds the facility to distinguish between normal, backbone and
service nodes or even gateways (if they advertise the role, also). It is up to
All configured mirrors must be reachable from the nodes via IPv6. If you don't want to set an IPv6 address
explicitly, but use a hostname (which is recommended), see also the :ref:`FAQ <faq-dns>`.
roles \: optional
Optional role definitions. Nodes will announce their role inside the mesh.
This will allow in the backend to distinguish between normal, backbone and
service nodes or even gateways (if they advertise that role). It is up to
the community which roles to define. See the section below as an example.
``default`` takes the default role which is set initially. This value should be
part of ``list``. If you want node owners to change the role via config mode add
the package ``gluon-luci-node-role`` to ``site.mk``.
the package ``gluon-web-node-role`` to ``site.mk``.
The strings to display in the LuCI interface can be configured per language in the
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-luci-node-role:role:node`` and ``gluon-luci-node-role:role:backbone``.
``gluon-web-node-role:role:node`` and ``gluon-web-node-role:role:backbone``.
::
roles = {
@ -183,20 +340,7 @@ roles : optional
},
},
simple_tc : package
Uplink traffic control, ingress and egress values are specified in kbit/s.
::
simple_tc = {
mesh_vpn = {
ifname = 'mesh-vpn',
enabled = false,
limit_egress = 200,
limit_ingress = 3000,
},
},
setup_mode : package
setup_mode \: package
Allows skipping setup mode (config mode) at first boot when attribute
``skip`` is set to ``true``. This is optional and may be left out.
::
@ -205,16 +349,16 @@ setup_mode : package
skip = true,
},
legacy : package
legacy \: package
Configuration for the legacy upgrade path.
This is only required in communities upgrading from Lübeck's LFF-0.3.x.
::
legacy = {
version_files = {'/etc/.freifunk_version_keep', '/etc/.eff_version_keep'},
old_files = {'/etc/config/config_mode', '/etc/config/ffeh', '/etc/config/freifunk'},
config_mode_configs = {'config_mode', 'ffeh', 'freifunk'},
fastd_configs = {'ffeh_mesh_vpn', 'mesh_vpn'},
old_files = {'/etc/config/config_mode', '/etc/config/ffac', '/etc/config/freifunk'},
config_mode_configs = {'config_mode', 'ffac', 'freifunk'},
fastd_configs = {'ffac_mesh_vpn', 'mesh_vpn'},
mesh_ifname = 'freifunk',
tc_configs = {'ffki', 'freifunk'},
wifi_names = {'wifi_freifunk', 'wifi_freifunk5', 'wifi_mesh', 'wifi_mesh5'},
@ -227,8 +371,8 @@ The ``site.mk`` is a Makefile which should define constants
involved in the build process of Gluon.
GLUON_SITE_PACKAGES
Defines a list of packages which should installed additional
to the ``gluon_core`` package.
Defines a list of packages which should be installed additionally
to the ``gluon-core`` package.
GLUON_RELEASE
The current release version Gluon should use.
@ -237,8 +381,12 @@ GLUON_PRIORITY
The default priority for the generated manifests (see the autoupdater documentation
for more information).
GLUON_REGION
Region code to build into images where necessary. Valid values are the empty string,
``us`` and ``eu``.
GLUON_LANGS
List of languages (as two-letter-codes) to include for the web interface. Should always contain
List of languages (as two-letter-codes) to be included in the web interface. Should always contain
``en``.
.. _site-config-mode-texts:
@ -255,14 +403,67 @@ gluon-config-mode:welcome
gluon-config-mode:pubkey
Information about the public VPN key on the reboot page.
gluon-config-mode:novpn
Information shown on the reboot page, if the mesh VPN was not selected.
gluon-config-mode:altitude-label
Label for the ``altitude`` field
gluon-config-mode:altitude-help
Description for the usage of the ``altitude`` field
gluon-config-mode:reboot
General information about the reboot page.
General information shown on the reboot page.
There is a POT file in the site example directory which can be used to create templates
for the language files. The command ``msginit -l en -i ../../docs/site-example/i18n/gluon-site.pot``
can be used from the ``i18n`` directory to create an initial PO file called ``en.po`` if the ``gettext``
utilities are installed.
.. note::
An empty ``msgstr``, as is the default after running ``msginit``, leads to
the ``msgid`` being printed as-is. It does *not* hide the whole text, as
might be expected.
Depending on the context, you might be able to use comments like
``<!-- empty -->`` as translations to effectively hide the text.
Site modules
------------
The file ``modules`` in the site repository is completely optional and can be used
to supply additional package feeds from which packages are built. The git repositories
specified here are retrieved in addition to the default feeds when ``make update``
it called.
This file's format is very similar to the toplevel ``modules`` file of the Gluon
tree, with the important different that the list of feeds must be assigned to
the variable ``GLUON_SITE_FEEDS``. Multiple feed names must be separated by spaces,
for example::
GLUON_SITE_FEEDS='foo bar'
The feed names may only contain alphanumerical characters, underscores and slashes.
For each of the feeds, the following variables are used to specify how to update
the feed:
PACKAGES_${feed}_REPO
The URL of the git repository to clone (usually ``git://`` or ``http(s)://``)
PACKAGES_${feed}_COMMIT
The commit ID of the repository to use
PACKAGES_${feed}_BRANCH
Optional: The branch of the repository the given commit ID can be found in.
Defaults to the default branch of the repository (usually ``master``)
These variables are always all uppercase, so for an entry ``foo`` in GLUON_SITE_FEEDS,
the corresponding configuration variables would be ``PACKAGES_FOO_REPO``,
``PACKAGES_FOO_COMMIT`` and ``PACKAGES_FOO_BRANCH``. Slashes in feed names are
replaced by underscores to get valid shell variable identifiers.
Examples
--------
@ -301,22 +502,37 @@ site-repos in the wild
This is a non-exhaustive list of site-repos from various communities:
* `site-ffa <https://github.com/tecff/site-ffa>`_ (Altdorf, Landshut & Umgebung)
* `site-ffac <https://github.com/ffac/site>`_ (Regio Aachen)
* `site-ffbs <https://github.com/ffbs/site-ffbs>`_ (Braunschweig)
* `site-ffhb <https://github.com/FreifunkBremen/gluon-site-ffhb>`_ (Bremen)
* `site-ffda <https://github.com/freifunk-darmstadt/site-ffda>`_ (Darmstadt)
* `site-ffeh <https://github.com/freifunk-ehingen/site-ffeh>`_ (Ehingen)
* `site-fffl <https://github.com/freifunk-flensburg/site-fffl>`_ (Flensburg)
* `site-ffgoe <https://github.com/freifunk-goettingen/site-ffgoe>`_ (Göttingen)
* `site-ffgt-rhw <https://github.com/ffgtso/site-ffgt-rhw>`_ (Guetersloh)
* `site-ffhh <https://github.com/freifunkhamburg/site-ffhh>`_ (Hamburg)
* `site-ffho <https://git.ffho.net/freifunkhochstift/ffho-site>`_ (Hochstift)
* `site-ffhgw <https://github.com/lorenzo-greifswald/site-ffhgw>`_ (Greifswald)
* `site-ffhl <https://github.com/freifunk-luebeck/site-ffhl>`_ (Lübeck)
* `site-ffmd <https://github.com/FreifunkMD/site-ffmd>`_ (Magdeburg)
* `site-ffmwu <https://github.com/freifunk-mwu/site-ffmwu>`_ (Mainz, Wiesbaden & Umgebung)
* `site-ffmyk <https://github.com/FreifunkMYK/site-ffmyk>`_ (Mayen-Koblenz)
* `site-ffm <https://github.com/freifunkMUC/site-ffm>`_ (München)
* `site-ffms <https://github.com/FreiFunkMuenster/site-ffms>`_ (Münster)
* `site-ffnw <https://git.freifunk-ol.de/root/siteconf.git>`_ (Nordwest)
* `site-ffpb <https://git.c3pb.de/freifunk-pb/site-ffpb>`_ (Paderborn)
* `site-ffka <https://github.com/ffka/site-ffka>`_ (Karlsruhe)
* `site-ffrl <https://github.com/ffrl/sites-ffrl>`_ (Rheinland)
* `site-ffrg <https://github.com/ffruhr/site-ffruhr>`_ (Ruhrgebiet)
* `site-ffki <http://git.freifunk.in-kiel.de/ffki-site/>`_ (Kiel)
* `site-fflz <https://github.com/freifunk-lausitz/site-fflz>`_ (Lausitz)
* `site-ffl <https://github.com/freifunk-leipzig/freifunk-gluon-leipzig>`_ (Leipzig)
* `site-ffhl <https://github.com/freifunk-luebeck/site-ffhl>`_ (Lübeck)
* `site-fflg <https://github.com/kartenkarsten/site-fflg>`_ (Lüneburg)
* `site-ffmd <https://github.com/FreifunkMD/site-ffmd>`_ (Magdeburg)
* `site-ffmwu <https://github.com/freifunk-mwu/sites-ffmwu>`_ (Mainz, Wiesbaden & Umgebung)
* `site-ffmyk <https://github.com/FreifunkMYK/site-ffmyk>`_ (Mayen-Koblenz)
* `site-ffmo <https://github.com/ffruhr/site-ffmo>`_ (Moers)
* `site-ffmg <https://github.com/ffruhr/site-ffmg>`_ (Mönchengladbach)
* `site-ffm <https://github.com/freifunkMUC/site-ffm>`_ (München)
* `site-ffhmue <https://github.com/Freifunk-Muenden/site-conf>`_ (Münden)
* `site-ffms <https://github.com/FreiFunkMuenster/site-ffms>`_ (Münsterland)
* `site-neuss <https://github.com/ffne/site-neuss>`_ (Neuss)
* `site-ffniers <https://github.com/ffruhr/site-ffniers>`_ (Niersufer)
* `site-ffnw <https://git.nordwest.freifunk.net/ffnw-firmware/siteconf/tree/master>`_ (Nordwest)
* `site-ffrgb <https://github.com/ffrgb/site-ffrgb>`_ (Regensburg)
* `site-ffrn <https://github.com/Freifunk-Rhein-Neckar/site-ffrn>`_ (Rhein-Neckar)
* `site-ffruhr <https://github.com/ffruhr?utf8=✓&query=site>`_ (Ruhrgebiet, Multi-Communities)
* `site-ffs <https://github.com/freifunk-stuttgart/site-ffs>`_ (Stuttgart)
* `site-fftr <https://github.com/freifunktrier/site-fftr>`_ (Trier)

View File

@ -2,12 +2,12 @@ x86 support
===========
Gluon can run on normal x86 systems, for example virtual machines
and VPN boxes. There is no WLAN support on x86 though.
and VPN boxes. By default, there is no WLAN support on x86 though.
Targets
^^^^^^^
There are two targets for x86 images:
The following targets for x86 images exist:
`x86-generic`
Generic x86 support with many different ethernet drivers; should run on
@ -22,8 +22,8 @@ There are two targets for x86 images:
These images only differ in the image file format, the content is the same. Therefore there is
only a single `x86-generic` sysupgrade image instead of three.
Please note that the `x86-generic` image doesn't include VirtIO support, so another virtual NIC
like `pcnet32` must be chosen when using VirtualBox.
`x86-geode`
x86 image for Geode CPUs.
`x86-kvm`
The `x86-kvm` image uses VirtIO as its harddisk and network driver.
`x86-64`
64bit version of `x86-generic`.

View File

@ -1,7 +0,0 @@
override define BuildImage
prepare: FORCE
$(call Image/Prepare)
endef
# The Makefile included here is $(TOPDIR)/target/linux/$(BOARD)/image/Makefile
include Makefile

View File

@ -1,20 +0,0 @@
# code adjusted from openwrt/include/kernel-defaults.mk
override define Kernel/Configure
$(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target
# copy CONFIG_KERNEL_* settings over to .config.target
awk '/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' $(BOARD_BUILDDIR)/config-allmods >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KALLSYMS_UNCOMPRESSED is not set" >> $(LINUX_DIR)/.config.target
echo "# CONFIG_KPROBES is not set" >> $(LINUX_DIR)/.config.target
$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(BOARD_BUILDDIR)/config-allmods > $(LINUX_DIR)/.config.override
$(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config
$(call Kernel/SetNoInitramfs)
rm -rf $(KERNEL_BUILD_DIR)/modules
$(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install
cp $(GLUONDIR)/targets/$(GLUON_TARGET)/vermagic $(LINUX_DIR)/.vermagic
endef
# The Makefile included here is $(TOPDIR)/target/linux/$(BOARD)/Makefile
include Makefile

View File

@ -1,22 +0,0 @@
CONFIG_IMAGEOPT=y
# CONFIG_PER_FEED_REPO is not set
CONFIG_DEVEL=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_BUSYBOX_CONFIG_SHA512SUM=y
# CONFIG_BUSYBOX_CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
CONFIG_BUSYBOX_CONFIG_IP=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_ADDRESS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_LINK=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_ROUTE=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_TUNNEL=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_RULE=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT=y
CONFIG_ATH_USER_REGD=y
CONFIG_PACKAGE_ATH_DEBUG=y
CONFIG_ATH10K_CT_COMMUNITY_FW=y
CONFIG_PACKAGE_luci-base_srcdiet=y

View File

@ -1,72 +0,0 @@
ifneq ($(__gluon_inc),1)
__gluon_inc=1
GLUON_SITEDIR ?= $(GLUONDIR)/site
GLUON_IMAGEDIR ?= $(GLUONDIR)/images
GLUON_BUILDDIR ?= $(GLUONDIR)/build
GLUON_ORIGOPENWRTDIR := $(GLUONDIR)/openwrt
GLUON_SITE_CONFIG := $(GLUON_SITEDIR)/site.conf
export GLUONDIR GLUON_SITEDIR GLUON_SITE_CONFIG GLUON_IMAGEDIR GLUON_BUILDDIR
BOARD_BUILDDIR = $(GLUON_BUILDDIR)/$(GLUON_TARGET)
BOARD_KDIR = $(BOARD_BUILDDIR)/kernel
export BOARD_BUILDDIR
GLUON_OPENWRTDIR = $(BOARD_BUILDDIR)/openwrt
$(GLUON_SITEDIR)/site.mk:
$(error There was no site configuration found. Please check out a site configuration to $(GLUON_SITEDIR))
-include $(GLUON_SITEDIR)/site.mk
GLUON_VERSION := $(shell cd $(GLUONDIR) && git describe --always 2>/dev/null || echo unknown)
export GLUON_VERSION
GLUON_LANGS ?= en
export GLUON_LANGS
ifeq ($(OPENWRT_BUILD),1)
ifeq ($(GLUON_TOOLS),1)
CONFIG_VERSION_REPO := $(shell $(GLUONDIR)/scripts/site.sh opkg_repo || echo http://downloads.openwrt.org/barrier_breaker/14.07/%S/packages)
export CONFIG_VERSION_REPO
GLUON_SITE_CODE := $(shell $(GLUONDIR)/scripts/site.sh site_code)
export GLUON_SITE_CODE
ifeq ($(GLUON_RELEASE),)
$(error GLUON_RELEASE not set. GLUON_RELEASE can be set in site.mk or on the command line.)
endif
export GLUON_RELEASE
endif
endif
define merge-lists
$(1) :=
$(foreach var,$(2),$(1) := $$(filter-out -% $$(patsubst -%,%,$$(filter -%,$$($(var)))),$$($(1)) $$($(var)))
)
endef
GLUON_TARGETS :=
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
GLUON_DEFAULT_PACKAGES := gluon-core kmod-ipv6 firewall ip6tables -uboot-envtools
override DEFAULT_PACKAGES.router :=
endif #__gluon_inc

View File

@ -1,60 +0,0 @@
include $(INCLUDE_DIR)/package.mk
# Annoyingly, make's shell function replaces all newlines with spaces, so we have to do some escaping work. Yuck.
define GluonCheckSite
[ -z "$$GLUONDIR" ] || sed -e 's/-@/\n/g' -e 's/+@/@/g' <<'END__GLUON__CHECK__SITE' | "$$GLUONDIR"/scripts/check_site.sh
$(shell cat $(1) | sed -ne '1h; 1!H; $$ {g; s/@/+@/g; s/\n/-@/g; p}')
END__GLUON__CHECK__SITE
endef
# Languages supported by LuCi
GLUON_SUPPORTED_LANGS := ca zh_cn en fr de el he hu it ja ms no pl pt_br pt ro ru es sv uk vi
GLUON_LANG_ca := catalan
GLUON_LANG_zh_cn := chinese
GLUON_LANG_en := english
GLUON_LANG_fr := french
GLUON_LANG_de := german
GLUON_LANG_el := greek
GLUON_LANG_he := hebrew
GLUON_LANG_hu := hungarian
GLUON_LANG_it := italian
GLUON_LANG_ja := japanese
GLUON_LANG_ms := malay
GLUON_LANG_no := norwegian
GLUON_LANG_pl := polish
GLUON_LANG_pt_br := portuguese-brazilian
GLUON_LANG_pt := portuguese
GLUON_LANG_ro := romanian
GLUON_LANG_ru := russian
GLUON_LANG_es := spanish
GLUON_LANG_sv := swedish
GLUON_LANG_uk := ukrainian
GLUON_LANG_vi := vietnamese
GLUON_I18N_PACKAGES := $(foreach lang,$(GLUON_SUPPORTED_LANGS),+GLUON_LANG_$(lang):luci-i18n-$(GLUON_LANG_$(lang)))
GLUON_I18N_CONFIG := $(foreach lang,$(GLUON_SUPPORTED_LANGS),CONFIG_GLUON_LANG_$(lang))
GLUON_ENABLED_LANGS := $(foreach lang,$(GLUON_SUPPORTED_LANGS),$(if $(CONFIG_GLUON_LANG_$(lang)),$(lang)))
GLUON_PO2LMO := $(BUILD_DIR)/luci/build/po2lmo
define GluonBuildI18N
mkdir -p $$(PKG_BUILD_DIR)/i18n
for lang in $$(GLUON_ENABLED_LANGS); do \
if [ -e $(2)/$$$$lang.po ]; then \
rm -f $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
$(GLUON_PO2LMO) $(2)/$$$$lang.po $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
fi; \
done
endef
define GluonInstallI18N
$$(INSTALL_DIR) $(2)/usr/lib/lua/luci/i18n
for lang in $$(GLUON_ENABLED_LANGS); do \
if [ -e $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo ]; then \
$$(INSTALL_DATA) $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo $(2)/usr/lib/lua/luci/i18n/$(1).$$$$lang.lmo; \
fi; \
done
endef

View File

@ -1,66 +0,0 @@
# Makefile for OpenWrt
#
# Copyright (C) 2007-2012 OpenWrt.org
# Copyright (C) 2013-2014 Project Gluon
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
RELEASE:=Barrier Breaker
PREP_MK= OPENWRT_BUILD= QUIET=0
export IS_TTY=$(shell tty -s && echo 1 || echo 0)
include $(GLUONDIR)/include/verbose.mk
REVISION:=$(shell [ -d $(TOPDIR) ] && cd $(TOPDIR) && ./scripts/getver.sh 2>/dev/null)
HOSTCC ?= gcc
OPENWRTVERSION:=$(RELEASE)$(if $(REVISION), ($(REVISION)))
export RELEASE
export REVISION
export OPENWRTVERSION
export IS_TTY=$(shell tty -s && echo 1 || echo 0)
export LD_LIBRARY_PATH:=$(subst ::,:,$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(STAGING_DIR_HOST)/lib)
export DYLD_LIBRARY_PATH:=$(subst ::,:,$(if $(DYLD_LIBRARY_PATH),$(DYLD_LIBRARY_PATH):)$(STAGING_DIR_HOST)/lib)
export GIT_CONFIG_PARAMETERS='core.autocrlf=false'
export MAKE_JOBSERVER=$(filter --jobserver%,$(MAKEFLAGS))
# prevent perforce from messing with the patch utility
unexport P4PORT P4USER P4CONFIG P4CLIENT
# prevent user defaults for quilt from interfering
unexport QUILT_PATCHES QUILT_PATCH_OPTS
unexport C_INCLUDE_PATH CROSS_COMPILE ARCH
# prevent distro default LPATH from interfering
unexport LPATH
# make sure that a predefined CFLAGS variable does not disturb packages
export CFLAGS=
ifneq ($(shell $(HOSTCC) 2>&1 | grep clang),)
export HOSTCC_REAL?=$(HOSTCC)
export HOSTCC_WRAPPER:=$(TOPDIR)/scripts/clang-gcc-wrapper
else
export HOSTCC_WRAPPER:=$(HOSTCC)
endif
ifeq ($(FORCE),)
.config scripts/config/conf scripts/config/mconf: tmp/.prereq-build
endif
SCAN_COOKIE?=$(shell echo $$$$)
export SCAN_COOKIE
SUBMAKE:=umask 022; $(SUBMAKE)
ULIMIT_FIX=_limit=`ulimit -n`; [ "$$_limit" = "unlimited" -o "$$_limit" -ge 1024 ] || ulimit -n 1024;
FORCE: ;
.PHONY: FORCE
.NOTPARALLEL:

View File

@ -1,67 +0,0 @@
#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
ifndef OPENWRT_VERBOSE
OPENWRT_VERBOSE:=
endif
ifeq ("$(origin V)", "command line")
OPENWRT_VERBOSE:=$(V)
endif
ifeq ($(OPENWRT_VERBOSE),1)
OPENWRT_VERBOSE:=w
endif
ifeq ($(OPENWRT_VERBOSE),99)
OPENWRT_VERBOSE:=s
endif
ifeq ($(NO_TRACE_MAKE),)
NO_TRACE_MAKE := $(MAKE) V=s$(OPENWRT_VERBOSE)
export NO_TRACE_MAKE
endif
ifeq ($(IS_TTY),1)
ifneq ($(strip $(NO_COLOR)),1)
_Y:=\\033[33m
_R:=\\033[31m
_N:=\\033[m
endif
endif
ifeq ($(findstring s,$(OPENWRT_VERBOSE)),)
define MESSAGE
printf "$(_Y)%s$(_N)\n" "$(1)" >&8
endef
define ERROR_MESSAGE
printf "$(_R)%s$(_N)\n" "$(1)" >&8
endef
ifeq ($(QUIET),1)
ifneq ($(CURDIR),$(TOPDIR))
_DIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR})
else
_DIR:=
endif
_NULL:=$(if $(MAKECMDGOALS),$(shell \
$(call MESSAGE, make[$(MAKELEVEL)]$(if $(_DIR), -C $(_DIR)) $(MAKECMDGOALS)); \
))
SUBMAKE=$(MAKE)
else
SILENT:=>/dev/null $(if $(findstring w,$(OPENWRT_VERBOSE)),,2>&1)
export QUIET:=1
SUBMAKE=cmd() { $(SILENT) $(MAKE) -s $$* < /dev/null || { echo "make $$*: build failed. Please re-run make with V=s to see what's going on"; false; } } 8>&1 9>&2; cmd
endif
.SILENT: $(MAKECMDGOALS)
else
SUBMAKE=$(MAKE) -w
define MESSAGE
printf "%s\n" "$(1)"
endef
ERROR_MESSAGE=$(MESSAGE)
endif

26
modules
View File

@ -1,18 +1,20 @@
GLUON_FEEDS='openwrt gluon routing luci'
OPENWRT_REPO=git://git.openwrt.org/14.07/openwrt.git
OPENWRT_COMMIT=179bab8b1700d74b28cc6cd25322f9a1ad670107
LEDE_REPO=https://git.lede-project.org/openwrt/openwrt.git
LEDE_BRANCH=lede-17.01
LEDE_COMMIT=6b6578feec74dfe1f5767c573d75ba08cc57c885
PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
PACKAGES_OPENWRT_COMMIT=01fcd1f29174a56d6ddb59901ed8c67ea42c3a8f
PACKAGES_OPENWRT_BRANCH=for-14.07
PACKAGES_OPENWRT_REPO=https://github.com/openwrt/packages.git
PACKAGES_OPENWRT_BRANCH=lede-17.01
PACKAGES_OPENWRT_COMMIT=82ef2fd773987a72678a32b862f50085c3f57d56
PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
PACKAGES_GLUON_COMMIT=e8ee21d116a0abc2e328b0ee181d79845654582e
PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git
PACKAGES_GLUON_BRANCH=v2017.1.x
PACKAGES_GLUON_COMMIT=906f5ef13ec91dd7433bd1a6bd4ffbd15614bbb3
PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git
PACKAGES_ROUTING_COMMIT=5d4ad63897b435d5df0f39a49bd58962c22c33b8
PACKAGES_ROUTING_BRANCH=for-14.07
PACKAGES_ROUTING_REPO=https://github.com/openwrt-routing/packages.git
PACKAGES_ROUTING_COMMIT=e656a6e0e69dd45b7caa24775bc86b6eb5dcfe7f
PACKAGES_LUCI_REPO=git://github.com/openwrt/luci.git
PACKAGES_LUCI_COMMIT=f81be49ae756dab82e1758a6c9de145f0d36960e
PACKAGES_LUCI_REPO=https://github.com/openwrt/luci.git
PACKAGES_LUCI_BRANCH=lede-17.01
PACKAGES_LUCI_COMMIT=1f014bd2180b364bec4c3f6457f72a0621884f9a

10
overlay/opkg.mk Normal file
View File

@ -0,0 +1,10 @@
# LEDE doesn't have a nice way to set the list of feeds in
# /etc/opkg/distfeeds.conf, so we use this overlay file (which is included by
# the opkg package Makefile though LEDE's IncludeOverlay mechanism).
# The following definitions make /etc/opkg/distfeeds.conf match the one included
# in official LEDE builds (by default, FEEDS_DISABLED contains the original list
# of feeds (which are unused by Gluon), and FEEDS_ENABLED our own feed list).
FEEDS_ENABLED := $(FEEDS_DISABLED)
FEEDS_DISABLED :=

View File

@ -6,12 +6,13 @@ PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
include ../gluon.mk
define Package/gluon-alfred
SECTION:=gluon
CATEGORY:=Gluon
DEPENDS:=+gluon-core +gluon-announce +gluon-cron +alfred
DEPENDS:=+gluon-core +gluon-respondd +gluon-neighbour-info gluon-mesh-batman-adv +micrond +alfred
TITLE:=Configure alfred
endef
@ -23,10 +24,12 @@ define Build/Configure
endef
define Build/Compile
$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)
endef
define Package/gluon-alfred/install
$(CP) ./files/* $(1)/
$(CP) $(PKG_BUILD_DIR)/luadest/* $(1)/
endef
$(eval $(call BuildPackage,gluon-alfred))

View File

@ -1 +0,0 @@
* * * * * /lib/gluon/announce/collect.lua nodeinfo | gzip | alfred -s 158; /lib/gluon/announce/collect.lua statistics | gzip | alfred -s 159; /lib/gluon/announce/collect.lua neighbours | gzip | alfred -s 160

View File

@ -1,19 +0,0 @@
#!/usr/bin/lua
local uci = require 'luci.model.uci'
local c = uci.cursor()
c:delete('alfred', 'alfred')
c:section('alfred', 'alfred', 'alfred',
{
interface = 'br-client',
mode = 'slave',
batmanif = 'bat0',
start_vis = '1',
run_facters = '0',
}
)
c:save('alfred')
c:commit('alfred')

View File

@ -0,0 +1,6 @@
#!/bin/sh
. /lib/gluon/autoupdater/lib.sh
start_enabled alfred

View File

@ -0,0 +1,6 @@
#!/bin/sh
. /lib/gluon/autoupdater/lib.sh
stop alfred

View File

@ -0,0 +1 @@
* * * * * gluon-neighbour-info -d ::1 -p 1001 -t 1 -c 1 -r nodeinfo | gzip | alfred -s 158; gluon-neighbour-info -d ::1 -p 1001 -t 1 -c 1 -r statistics | gzip | alfred -s 159; gluon-neighbour-info -d ::1 -p 1001 -t 1 -c 1 -r neighbours | gzip | alfred -s 160

View File

@ -0,0 +1,14 @@
#!/usr/bin/lua
local uci = require('simple-uci').cursor()
uci:delete('alfred', 'alfred')
uci:section('alfred', 'alfred', 'alfred', {
interface = 'br-client',
mode = 'slave',
batmanif = 'bat0',
start_vis = true,
run_facters = false,
})
uci:save('alfred')

View File

@ -1,32 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gluon-announce
PKG_VERSION:=1
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/gluon-announce
SECTION:=gluon
CATEGORY:=Gluon
DEPENDS:=+gluon-core +luci-lib-json +lua-ethtool-stats
TITLE:=Lua scripts announcing various information
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/gluon-announce/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,gluon-announce))

View File

@ -1,10 +0,0 @@
#!/usr/bin/lua
local announce = require 'gluon.announce'
local json = require 'luci.json'
local ltn12 = require 'luci.ltn12'
local announce_dir = '/lib/gluon/announce/' .. arg[1] .. '.d'
encoder = json.Encoder(announce.collect_dir(announce_dir))
ltn12.pump.all(encoder:source(), ltn12.sink.file(io.stdout))

View File

@ -1 +0,0 @@
return require('gluon.util').node_id()

View File

@ -1 +0,0 @@
return require('platform_info').get_model()

View File

@ -1,14 +0,0 @@
local n = 0
local cpus = util.trim(fs.readfile('/sys/devices/system/cpu/online'))
for _, entry in ipairs(cpus:split(',')) do
local x, y = entry:match('(%d+)-(%d+)')
if x then
n = n + tonumber(y) - tonumber(x) + 1
else
n = n + 1
end
end
return n

View File

@ -1 +0,0 @@
return uci:get_first('system', 'system', 'hostname')

View File

@ -1 +0,0 @@
return require('gluon.sysconfig').primary_mac

View File

@ -1 +0,0 @@
return require('gluon.util').node_id()

View File

@ -1,4 +0,0 @@
return {
base = 'gluon-' .. util.trim(fs.readfile('/lib/gluon/gluon-version')),
release = util.trim(fs.readfile('/lib/gluon/release')),
}

View File

@ -1,3 +0,0 @@
local site = require 'gluon.site_config'
return site.site_code

Some files were not shown because too many files have changed in this diff Show More