Commit Graph

4141 Commits

Author SHA1 Message Date
Matthias Schiffer
d2052431dd
gluon-web-wifi-config: default to enabled 5GHz mesh interfaces when disabling outdoor mode
When disabling outdoor mode, 5GHz mesh interfaces should be enabled by
default again (unless disabled in site.conf).
2020-06-12 19:13:20 +02:00
Matthias Schiffer
3c2593b684
gluon-core: fix handling of 'disabled' site.conf attributes for mesh interfaces
Because is_disabled() was always returning true or false, the
first_non_nil() would never actually check the default setting from
site.conf. This was broken since v2017.1.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

All existing target configs generate the same .config with the old and the
new code. The new code is also a bit faster on targets with many devices.
2020-05-31 02:20:58 +02:00
Martin Weinelt
97e5434b32
docs: clarify beacon_interval documentation
A microsecond is commonly abbreviated as µs. This prevents confusions
between micro- (µs) and milliseconds (ms).
2020-05-30 22:20:41 +02:00