Skip to content
Snippets Groups Projects
  1. Jan 03, 2022
  2. Jan 01, 2022
  3. Dec 31, 2021
  4. Dec 21, 2021
    • Martin Weinelt's avatar
      Add helper to run a containerized build environment (#2292) · 6728c4a1
      Martin Weinelt authored
      Using `make container` or, if you don't have automake/gmake on your host
      system, `./scripts/container.sh` will build an image for the current
      branch your are on and drop you into a shell running inside a container
      using that image.
      
      From there all tooling required to work on Gluon is available.
      
      Supports both podman (preferred) and docker.
      Unverified
      6728c4a1
  5. Oct 07, 2021
  6. Oct 05, 2021
  7. Aug 14, 2021
  8. Aug 10, 2021
  9. Jul 13, 2021
  10. Jul 12, 2021
  11. Jun 12, 2021
  12. Oct 10, 2020
  13. Aug 28, 2020
    • Matthias Schiffer's avatar
      features: handle all feature files in a single pass of feature_lib.get_packages() · a9c2db93
      Matthias Schiffer authored
      All defined features need to be known at the same time, otherwise handling
      a feed-provided feature definition file would add gluon-web-advanced etc.
      to the package list when the corresponding feature flags appear in
      GLUON_FEATURES.
      
      Fixes: ee5ec5af ("build: rewrite features.sh in Lua")
      a9c2db93
    • Matthias Schiffer's avatar
      features: fix handling of logical expressions · 13b743d5
      Matthias Schiffer authored
      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")
      13b743d5
    • Matthias Schiffer's avatar
      scripts: feature_lib.lua: improve error handling for invalid feature files · 097efa9d
      Matthias Schiffer authored
      Print a proper error message, rather than just
      
          openwrt/staging_dir/hostpkg/bin/lua: scripts/feature_lib.lua:48: bad
          argument #1 to 'setfenv' (integer expected, got nil)
      Unverified
      097efa9d
  14. Aug 15, 2020
  15. Jul 04, 2020
  16. 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
  17. Jun 12, 2020
  18. Jun 11, 2020
  19. Jun 07, 2020
  20. Jun 05, 2020
  21. Jun 04, 2020
    • Chrissi^ (Chris Fiege)'s avatar
      openwrt: Store Kernel Debug-Info (#1971) · 1956696d
      Chrissi^ (Chris Fiege) authored
      
      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: default avatarChrissi^ <chris@tinyhost.de>
      Unverified
      1956696d
  22. May 31, 2020
    • Matthias Schiffer's avatar
      build: target_lib: allow to specify multiple factory_ext values · 7279c401
      Matthias Schiffer authored
      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).
      Unverified
      7279c401
    • Matthias Schiffer's avatar
      build: target_lib: do not pass manifest_aliases when defining factory and extra images · 8c386719
      Matthias Schiffer authored
      manifest_aliases only make sense for sysupgrade images.
      Unverified
      8c386719
    • 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
  23. May 24, 2020
  24. May 12, 2020
    • Sven Roederer's avatar
      build: ignore deactivated feeds · 184dab8f
      Sven Roederer authored
      
      The OpenWrt feeds.conf.defaults contains some feeds that are commented out
      and not active. Such feeds will be returned by the default_feeds.sh script
      anyway and causing pseudo feeds. Limit the script to only return active
      feeds, by filtering out lines starting with '#'.
      This usually only applies to the OpenWrt master branch.
      
      Signed-off-by: default avatarSven Roederer <freifunk@it-solutions.geroedel.de>
      
      change as per NeoRider
      184dab8f
  25. May 10, 2020
  26. 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
      build: remove exec prefix from commands with a raw suffix · f9062bda
      Matthias Schiffer authored
      Allows to append additional commands, for example using `||`.
      Unverified
      f9062bda
    • Matthias Schiffer's avatar
  27. Apr 29, 2020
  28. Apr 25, 2020
  29. Apr 09, 2020
  30. 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
Loading