Skip to content
Snippets Groups Projects
  • Matthias Schiffer's avatar
    53690d83
    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)
    53690d83
    History
    build: move package list generation to target_config_lib.lua, fix precedence
    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)