gluon/package
Matthias Schiffer 13b743d51e features: fix handling of logical expressions
The rewrite of the feature handling introduced multiple major bugs. One
of them was caused by the way Lua's logical operators work:

An expression of the form

    _'autoupdater' and _'web-advanced'

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

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

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

Fixes: ee5ec5afe5 ("build: rewrite features.sh in Lua")
2020-08-28 22:27:38 +02:00
..
gluon-alfred gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-authorized-keys gluon-authorized-keys: Force installation of gluon-lock-password 2019-07-02 12:34:55 +02:00
gluon-autoupdater gluon-autoupdater: make site.conf branch setting optional 2020-08-15 16:36:27 +02:00
gluon-client-bridge gluon-core: move wireless-related utils to wireless module 2020-05-28 21:46:23 +02:00
gluon-config-mode-autoupdater treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
gluon-config-mode-contact-info treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
gluon-config-mode-core treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
gluon-config-mode-domain-select treewide: fix luacheck warnings 2019-06-16 22:51:53 +02:00
gluon-config-mode-geo-location treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
gluon-config-mode-geo-location-osm gluon-config-mode-geo-location-osm, gluon-web-osm: add support for custom tile layers (#2072) 2020-07-05 17:06:59 +02:00
gluon-config-mode-hostname treewide: fix luacheck warnings 2019-06-16 22:51:53 +02:00
gluon-config-mode-mesh-vpn treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
gluon-config-mode-outdoor gluon-web: don't display outdoor mode on preserve_channels (#2074) 2020-07-05 19:05:27 +02:00
gluon-config-mode-theme gluon-config-mode-theme: add cross-browser styling for <select> elements 2020-07-03 21:53:51 +02:00
gluon-core Merge pull request #2065 from freifunk-gluon/early-reconfigure 2020-08-22 19:50:55 +02:00
gluon-ebtables gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-ebtables-filter-multicast treewide: move ebtables filter definitions from files to luasrc 2019-06-18 19:52:33 +02:00
gluon-ebtables-filter-ra-dhcp treewide: move ebtables filter definitions from files to luasrc 2019-06-18 19:52:33 +02:00
gluon-ebtables-limit-arp gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-ebtables-source-filter treewide: move ebtables filter definitions from files to luasrc 2019-06-18 19:52:33 +02:00
gluon-hoodselector gluon-hoodselector: use gluon-switch-domain 2020-07-02 22:35:05 +02:00
gluon-iptables-clamp-mss-to-pmtu gluon-iptables-clamp-mss-to-pmtu: clamp mss on all mesh interfaces for all destinations to pmtu 2018-11-21 20:47:39 +01:00
gluon-l3roamd gluon-core: run firewall upgrade script after basic network setup (#2091) 2020-08-14 21:02:55 +02:00
gluon-lock-password treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-logging add gluon-logging package 2020-04-30 01:54:35 +02:00
gluon-mesh-babel gluon-core: run firewall upgrade script after basic network setup (#2091) 2020-08-14 21:02:55 +02:00
gluon-mesh-batman-adv Merge pull request #2043 from freifunk-gluon/iface-type 2020-08-09 00:36:14 +02:00
gluon-mesh-vpn-core gluon-mesh-vpn-core: Add dependency for KERNEL_NET_ACT_POLICE 2019-08-21 18:37:53 +02:00
gluon-mesh-vpn-fastd gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-mesh-vpn-tunneldigger gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-mesh-wireless-sae gluon-mesh-wireless-sae: switch to wpa-supplicant-mesh-wolfssl 2020-08-16 01:14:22 +02:00
gluon-mmfd gluon-mmfd: add package (#1802) 2019-09-23 21:34:53 +02:00
gluon-neighbour-info gluon-neighbour-info: use default port 1001 and default dest ::1 2020-01-10 00:13:37 +01:00
gluon-node-info treewide: automatically set SECTION and CATEGORY for Gluon packages 2018-04-14 00:01:04 +02:00
gluon-radv-filterd gluon-radv-filterd: add string.h and guard to mac.h 2020-07-02 00:17:50 +02:00
gluon-radvd gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-respondd gluon-reload: add missing service restarts on domain switching 2020-05-28 23:30:25 +02:00
gluon-scheduled-domain-switch gluon-scheduled-domain-switch: use gluon-switch-domain 2020-07-02 22:35:05 +02:00
gluon-setup-mode gluon-core: add gluon-switch-domain utility 2020-07-02 22:35:05 +02:00
gluon-site gluon-site: print better error message for domain code conflicts (#2098) 2020-08-15 16:11:49 +02:00
gluon-status-page gluon-status-page: add wireless client count (#2085) 2020-08-09 00:34:23 +02:00
gluon-status-page-mesh-batman-adv gluon-status-page-mesh-batman-adv: Save if metrics chose neighbor as own best nexthop 2019-04-09 01:31:51 +02:00
gluon-wan-dnsmasq gluon-wan-dnsmasq: read interfaces to update from flag-files (#2060) 2020-06-30 16:37:09 +02:00
gluon-web gluon-web: import po2lmo tool from luci-base 2019-11-23 17:28:17 +01:00
gluon-web-admin gluon-web-*: remove non-existing CSS classes 2020-07-02 23:43:23 +02:00
gluon-web-autoupdater gluon-web-autoupdater: use human-readable names as branch labels, sort by label 2020-04-26 15:31:59 +02:00
gluon-web-logging treewide: update i18n files via i18n-scan.pl and msgmerge (#1784) 2019-11-09 01:25:33 +01:00
gluon-web-mesh-vpn-fastd gluon-web-*: remove non-existing CSS classes 2020-07-02 23:43:23 +02:00
gluon-web-model gluon-config-mode-theme: add cross-browser styling for <select> elements 2020-07-03 21:53:51 +02:00
gluon-web-network gluon-web-network: fix variable shadowing 2019-08-13 17:49:02 +02:00
gluon-web-node-role gluon-web-node-role: fix node role list 2019-11-05 20:05:16 +01:00
gluon-web-osm gluon-config-mode-geo-location-osm, gluon-web-osm: add support for custom tile layers (#2072) 2020-07-05 17:06:59 +02:00
gluon-web-private-wifi gluon-core: move wireless-related utils to wireless module 2020-05-28 21:46:23 +02:00
gluon-web-wifi-config gluon-web: don't display outdoor mode on preserve_channels (#2074) 2020-07-05 19:05:27 +02:00
gluon-wireless-encryption gluon-wireless-encryption-wpa3: switch to hostapd-wolfssl 2020-06-01 11:24:24 +02:00
libbatadv treewide: remove redundant definitions from package Makefiles 2018-03-07 21:23:41 +01:00
libgluonutil libgluonutil: introduce gluonutil_get_interface_lower() and gluonutil_get_interface_type() 2020-06-01 21:15:47 +02:00
features features: fix handling of logical expressions 2020-08-28 22:27:38 +02:00
gluon.mk build: make GluonSrcDiet simpler and more robust (#2033) 2020-06-04 22:53:14 +02:00