Skip to content
Snippets Groups Projects
  1. Mar 08, 2024
  2. Feb 25, 2024
  3. Dec 20, 2023
  4. Dec 19, 2023
  5. Oct 20, 2023
    • David Bauer's avatar
      build: fix duplicate building of host-tools · 6b22b742
      David Bauer authored
      Upstream introduced two different methods for determining the state of a
      package within the OpenWrt buildsystem. While both are based around the
      md5 hash-function, one taks filename & mtime into account while the
      other one uses the actual md5 hash of the file-content.
      
      Ever wondered why Gluon suddenly took considerably longer to build?
      The messy part is how the build-system chooses which method to use. This
      is based around the AUTOREMOVE configuration. Gluon sets this variable
      conditionally when built with GLUON_AUTOREMOVE set to 1.
      
      Enter the Gluon build-system. It first compiles Lua, without the
      AUTOREMOVE configuration passed to OpenWrt. This compiles the packages
      with the old hash-method based around filename & mtime. Afterwards, it
      builds with AUTOREMOVE enabled, changing the hash-function and
      rebuilding all host-packages.
      
      Fix this by setting AUTOREMOVE for both build-processes according to the
      setting of GLUON_AUTOREMOVE.
      
      Link: https://github.com/openwrt/openwrt/commit/53a08e37437972ba0a8fbf953a93a70a6b784ef4
      
      
      
      Signed-off-by: default avatarDavid Bauer <mail@david-bauer.net>
      6b22b742
  6. Oct 14, 2023
  7. Sep 10, 2023
  8. Jan 15, 2023
  9. Dec 18, 2022
  10. Aug 23, 2022
  11. Mar 24, 2022
  12. Jan 03, 2022
  13. Jan 01, 2022
  14. Dec 31, 2021
  15. 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.
      6728c4a1
  16. Oct 07, 2021
  17. Oct 05, 2021
  18. Aug 14, 2021
  19. Aug 10, 2021
  20. Jul 13, 2021
  21. Jul 12, 2021
  22. Jun 12, 2021
  23. Oct 10, 2020
  24. 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)
      097efa9d
  25. Aug 15, 2020
    • Matthias Schiffer's avatar
      build: check for unsynced feeds before build (#2092) · ea2b811a
      Matthias Schiffer authored
      Forgetting to `make update` or leaving uncommitted changes in the
      repositories managed by Gluon is a recurring cause of confusion, even
      for experienced developers. Let's print an obvious warning message in
      this case.
      ea2b811a
    • Matthias Schiffer's avatar
      scripts/target_lib.lua: print a meaningful error message for missing site_code (#2094) · bd0133ad
      Matthias Schiffer authored
      site_code is evaluated early during config generation, so a site.conf
      without site_code would hit this assertion that just printed 'Assertion
      failed'. Add a proper error message to tell users what went wrong.
      
      The inner assert() is removed, as it should never be hit (as site.conf
      syntax will have already been validated when this script runs), and it
      doesn't add anything (even without the assert, the attempt to index a
      nil value would throw an error).
      bd0133ad
  26. Jul 04, 2020
  27. 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
Loading