- Mar 08, 2024
-
-
Matthias Schiffer authored
image-customization.lua has replaced GLUON_FEATURES and GLUON_SITE_PACKAGES, so the file is always required to build a useful Gluon image. In addition, not only 'file not found' errors were ignored, but also all other Lua load errors, resulting in a build with empty image customization when the file was not valid. Closes #3218
-
- Feb 25, 2024
-
-
Matthias Schiffer authored
We need to pass the `z` option with the volume mount so it gets labeled correctly and access is possible on SELinux-enabled systems. On systems without SELinux, the flag is a no-op. Fixes #3199
-
- Dec 20, 2023
-
-
David Bauer authored
Load the site image-customization.lua file only on init. Previously, the file was loaded on every device invocation. Signed-off-by:
David Bauer <mail@david-bauer.net>
-
David Bauer authored
Create an init routine which loads the environment only once instead every evaluation. Signed-off-by:
David Bauer <mail@david-bauer.net>
-
- Dec 19, 2023
-
-
David Bauer authored
Include the file-extension with the image-customization.lua file. This will ease work with editors providing syntax highlighting, as they now properly detect the file-type. Signed-off-by:
David Bauer <mail@david-bauer.net>
-
David Bauer authored
If we align the table keys of the selection table to match the return object of get_selections, we can omit creating a new return object. Signed-off-by:
David Bauer <mail@david-bauer.net>
-
David Bauer authored
This allows the negation of already activated features oder packages by Gluon using the image-customization. Signed-off-by:
David Bauer <mail@david-bauer.net>
-
David Bauer authored
Signed-off-by:
David Bauer <mail@david-bauer.net>
-
David Bauer authored
Signed-off-by:
David Bauer <mail@david-bauer.net>
-
David Bauer authored
-
David Bauer authored
Implement a flexible system for handling site-defined features as well as packages. This system is inspired by the existing feature-system and allows for a more flexible approach for selecting specific packages for devices. Features are now defined in a `features` file in the site-root. The same goes for packages. These files are sequentially evaluated and the device-package list is evaluated for each device independently. Signed-off-by:
David Bauer <mail@david-bauer.net>
-
- Oct 20, 2023
-
-
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:
David Bauer <mail@david-bauer.net>
-
- Oct 14, 2023
-
-
Matthias Schiffer authored
We don't want OpenWrt packages to replace Gluon packages by accident; the same logic applies to packages from site feeds. This gives site feeds a higher precedence than gluon/packages, but that is unlikely to cause any issues. Gluon base packages still have an even higher precedence.
-
- Sep 10, 2023
-
-
Matthias Schiffer authored
The command was more complicated than necessary, and somehow contained two redirects of stdout.
-
Matthias Schiffer authored
Fixes access to the build directory mounted into the container when UIDs don't match. For Docker, HOME is set in addition to get a more useful value than / and for consistency with Podman.
-
- Jan 15, 2023
-
-
Martin Weinelt authored
Adds `lint-editorconfig` make target. Co-authored-by:
Jan-Niklas Burfeind <git@aiyionpri.me> version bump to 2.6.0
-
- Dec 18, 2022
-
-
Martin Weinelt authored
-
- Aug 23, 2022
-
-
Matthias Schiffer authored
Device-specific package additions could generate `CONFIG_PACKAGE_...=m` lines, which would override `CONFIG_PACKAGE_...=y` lines inserted by OpenWrt for default packages (as Gluon did not know about these default packages). This resulted in the unintended removal of such packages from other devices that did not contain the same package in their device package lists. Avoid this issue by explicitly adding OpenWrt's target default package list to the front of Gluon's target package list.
-
Matthias Schiffer authored
OpenWrt's default package list contains the package "nftables", which is a virtual package provided by "nftables-json" and "nftables-nojson". Explicitly handle this case, otherwise our config check will fail when we extend our default package list with the one from OpenWrt.
-
Matthias Schiffer authored
Another leftover from legacy OpenWrt targets, which we don't support anymore.
-
- Mar 24, 2022
-
-
Matthias Schiffer authored
No legacy OpenWrt targets exist anymore which require the .config profile name to differ from the image name.
-
- Jan 03, 2022
-
-
Matthias Schiffer authored
The following features are available in Busybox ash, so we don't need to warn about them for runtime scripts: - local keyword - echo -n / -e - String indexing These warnings are new in shellcheck 0.7.2, which would otherwise fail for various scripts.
-
- Jan 01, 2022
-
-
Tom Herbers authored
Resolves #2362
-
- Dec 31, 2021
-
-
Matthias Schiffer authored
All our targets use the OpenWrt device abstraction. Since commit 6ba58c9b17c90e41b521d796ab76e5723ee017170 ("generic: force per-device RootFS") building non-device targets is not possible anymore, so we can remove these obsolete handlers.
-
- Dec 21, 2021
-
-
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.
-
- Oct 07, 2021
-
-
Matthias Schiffer authored
Sometimes it is useful to override the default version detection, for example when local patches are applied to a repo. Allow providing a version number using a file called .scmversion, which is the same that the Linux kernel and U-Boot use.
-
- Oct 05, 2021
-
-
Matthias Schiffer authored
A helper script is introduced to get the version from `git describe`.
-
- Aug 14, 2021
-
-
Martin Weinelt authored
Iterates over all configured modules and checks them for updates.
-
- Aug 10, 2021
-
-
Martin Weinelt authored
-
- Jul 13, 2021
-
-
Matthias Schiffer authored
With the removal of ramips-rt305x, all targets come with opkg again.
-
- Jul 12, 2021
-
-
Matthias Schiffer authored
Installing the script into the image allows site checks to run for manual package installations via opkg.
-
- Jun 12, 2021
-
-
Matthias Schiffer authored
-
- Oct 10, 2020
-
-
David Bauer authored
-
- Aug 28, 2020
-
-
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")
-
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")
-
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)
-
- Aug 15, 2020
-
-
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.
-
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).
-
- Jul 04, 2020
-
-
Matthias Schiffer authored
The current manifest format was introduced with the new autoupdater in Gluon v2018.1. Reduce the manifest size by 70% by removing the additional manifest lines added for backwards compatiblity.
-
- Jul 01, 2020
-
-
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.
-