Skip to content
Snippets Groups Projects
  1. Dec 20, 2023
  2. Dec 19, 2023
  3. Aug 23, 2022
  4. Mar 24, 2022
  5. Jul 13, 2021
  6. Aug 28, 2020
  7. Jul 01, 2020
    • Matthias Schiffer's avatar
      build: rewrite features.sh in Lua · ee5ec5af
      Matthias Schiffer authored
      The `features` file is converted to a Lua-based DSL.
      
      A helper function `_` is used in the DSL; this will return the original
      string for enabled features, and nil for disabled features. This allows
      to use boolean operations on features without making the code too
      verbose.
      
      Besides having more readable and robust code, this also fixes the bug
      that all files `packages/*/features` were evaluated instead of only
      using the feature definitions of currently active feeds.
      ee5ec5af
    • Matthias Schiffer's avatar
  8. Jun 12, 2020
  9. Jun 11, 2020
  10. May 31, 2020
    • Matthias Schiffer's avatar
      build: remove now-unneeded function from target_config_lib.lua · 3ce43329
      Matthias Schiffer authored
      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.
      Unverified
      3ce43329
    • Matthias Schiffer's avatar
      build: rework config generation · 9e23534e
      Matthias Schiffer authored
      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.
      Unverified
      9e23534e
  11. May 03, 2020
    • Matthias Schiffer's avatar
      build: move package list generation to target_config_lib.lua, fix precedence · 53690d83
      Matthias Schiffer authored
      The precedence of different package lists was broken since #1876,
      disallowing removal of GLUON_FEATURES packages via GLUON_SITE_PACKAGES.
      
      Including all package selections, both implicit defaults and explicit
      handling in Gluon, the order of precedence is now the following:
      
      1.  OpenWrt defaults (including target-specific defaults)
      2.  Device-specific packages from OpenWrt
      3.  Generic default packages (from target/generic)
      4.  Target default packages (target/$(GLUON_TARGET))
      5.  Removal of opkg for tiny targets
      6.  Packages derived from GLUON_FEATURES + GLUON_FEATURES_$(class)
      7.  GLUON_SITE_PACKAGES
      8.  GLUON_SITE_PACKAGES_$(class)
      9.  Device-specific packages from target/$(GLUON_TARGET)
      10. Device-specific packages from GLUON_$(device)_SITE_PACKAGES
      
      This also contains various pieces of cleanup:
      
      - No hardcoded order of device classes for target_config.lua arguments
        anymore (in fact, the Makefile doesn't know anything about device
        classes now)
      - target_conifg_lib.lua only hardcodes the fallback class for x86, no
        other occurences of specific class names
      - Feature -> package list mapping is moved from Makefile to the Lua code
        as well (still implemented in Shell though)
      Unverified
      53690d83
    • Matthias Schiffer's avatar
  12. Mar 27, 2020
    • David Bauer's avatar
      build: add class-packages for targets without devices · c9f90c3e
      David Bauer authored
      When adding device classes, targets without devices such as x86 were not
      handled. As site and feature packages are included on such a per-device
      decision, x86 images ended up without most packages.
      
      Include a class setting for a target and include the class-packages
      target-wide when this setting is configured.
      
      Fixes 9c523650 ("build: introduce device classes")
      c9f90c3e
  13. Mar 25, 2020
    • David Bauer's avatar
      build: introduce device classes · 9c523650
      David Bauer authored
      This commit allows to define a device-class flag in the target
      definitions. This way, it is possible to distinguish between groups
      of devices in the build-process in terms of package or feature
      selection.
      9c523650
  14. Sep 14, 2019
  15. Jun 17, 2019
Loading