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: ee5ec5af ("build: rewrite features.sh in Lua")
Please register or sign in to comment