Commit Graph

65 Commits

Author SHA1 Message Date
Igor Pecovnik
4d60ce08f2 chore: update copyright years to 2026
Update all copyright notices in shell scripts from 2025 to 2026.

## Changes

- **Igor Pecovnik**: 2013-2025 → 2013-2026 (129 files)
- **Ricardo Pardini**: 2023-2025 → 2023-2026, 2020-2025 → 2020-2026 (5 files)

## Additional Improvements

Also updated the backtitle in `lib/functions/configuration/interactive.sh`:
- Changed title from "Armbian building script" to "Armbian Linux build framework"
- Removed docs link for cleaner display
- Uses dynamic year calculation with separate declaration (fixes shellcheck SC2155)
2025-12-25 12:03:34 +01:00
The-going
699816ddf2 config-prepare: Initialize an empty KERNEL_DRIVERS_SKIP array unless it exists
If the array exists in this location, initializing an empty array
will destroy all the data that was stored in it.
Do not initialize an empty KERNEL_DRIVERS_SKIP array if it exists.

This allows us to create an array anywhere in the script,
including the user configuration, in a secure way.
2025-06-08 18:04:25 +02:00
Ricardo Pardini
37d9200e6a hack: trixie has lost its software-properties-common package so get rid of it for all Debian releases
- https://tracker.debian.org/news/1579223/software-properties-removed-from-testing/
- that provides add-apt-repository, but we don't use that on Debian, hopefully
- move also cpufrequtils hack (which requires release) to specific function after userspace checks and when DISTRIBUTION is set
- `software-properties-gtk` if of course also gone, so remove that for desktop's sake
2024-11-12 11:42:13 +01:00
Ricardo Pardini
c3fc3f432c config-prepare: do change tracking for each sourced board file (core vs userpatches) 2024-03-02 20:48:13 +01:00
Ricardo Pardini
04bde7ac47 config: calculate BOOTSOURCEDIR & friends only _after_ late_family_config hook; fixes #6144
- snafu on my part, sorry
- also: add more change-tracking variables; add more calls to change tracking in some key places, for future clarity
2024-01-13 14:44:49 +01:00
Ricardo Pardini
bebf4c7ae0 lib: implement and sprinkle some very basic config var change-tracking across board/family sourcing and several hook calls 2024-01-07 18:58:36 +01:00
Ricardo Pardini
dccf44630f main-config: arch common: kernel/u-boot config defaulting+overriding via hook instead of pre-setting
- common.conf delegating to new `mainline_kernel_decide_version` hooks
- special case handling for v6.7-rc7
- some examples
- late-stage "use rolling branch version"
2024-01-07 18:58:36 +01:00
Ricardo Pardini
c434c3613c core: semantic change, KERNELSOURCE must be explicitly 'none' to avoid kernel compilation (not unset) 2024-01-07 18:58:36 +01:00
Ricardo Pardini
a9d5969f21 config_post_main: sanity checks for RELEASE (vs ARCH) and RELEASE+DESKTOP_ENVIRONMENT (vs ARCH)
- the interactive menus didn't allow interactive users to select invalid combinations...
- ... but if specified directly on cmdline, no checks were done at all.
- introduce `exit_with_target_not_supported_error()`, which is just `exit_with_error` (code 43) but with code 44
  - this way the targets pipeline can just warn instead of break;
  - sometimes it's easier multiplying matrixes and skipping the few that can't be built
2023-08-23 21:35:02 +02:00
Ricardo Pardini
7129f7ac28 uboot: drop CHOSEN_UBOOT, change deployment directory, remove uboot_name as temp_dir prefix
- change deployment dir to not include REVISION or ARCH
- get rid uboot's CHOSEN_UBOOT, REVISION and ARCH in the directory name.
- no two u-boot debs can be installed in the same machine anyway
2023-08-12 09:58:32 +02:00
Ricardo Pardini
3324449fbe kernel drivers: introduce KERNEL_DRIVERS_SKIP array to allow families to skip certain kernel drivers
- move rtw88's skip's from drivers_network.sh to their own family definitions
2023-06-28 21:26:54 +02:00
Gunjan Gupta
8278dc5e42 allwinner: Enable crust compilation 2023-06-20 21:36:31 +02:00
Ricardo Pardini
31131fe14e bsp-cli/BETA: fixes for bsp-cli bootscript hashing; don't normalize bootscript vars; debugging for BETA=yes/no stuff
also:
- get rid of comments and `SUBREVISION` and `RC` variables
- better debugging in calculate_hash_for_variables() do_normalize_src_path=yes/no
- tag a few places where output/debs might wrong in face of BETA=yes/no
2023-05-25 19:30:40 +02:00
Ricardo Pardini
e49d91ec40 popular demand: bring back KERNEL_CONFIGURE=yes *during image build*
- partially revert 6ef394d95d (thus bring back the TUI/dialog for selecting KERNEL_CONFIGURE=yes/no)
- partially revert d890b418c7 (thus bring back the capacity to config & build image in one go)
- stop after configuring kernel, but only if command is `kernel-config`, not regular image-build KERNEL_CONFIGURE=yes
2023-05-09 10:05:09 +02:00
Ricardo Pardini
a872fe8773 config-prepare: config_pre_main(): try to be more helpful when BRANCH is unset or wrong instead of just "bad KERNEL_MAJOR_MINOR" 2023-05-08 11:21:47 +02:00
Ricardo Pardini
6ef394d95d kernel: get better rid of KERNEL_CONFIGURE, remove UI asking for it, it's now a separate command kernel-config and wouldn't work anyway 2023-05-03 15:09:56 +02:00
Ricardo Pardini
538b8c2b79 artifacts/cli: introduce CLI command artifact-config-dump-json (alias to artifact, but sets CONFIG_DEFS_ONLY=yes)
- if CONFIG_DEFS_ONLY during `obtain_complete_artifact()`, just dump JSON to stdout after calculating version/coordinates
- don't prepare ORAS tooling if CONFIG_DEFS_ONLY
- don't run in standard build (and thus don't prepare_host()) if under CONFIG_DEFS_ONLY
- if CONFIG_DEFS_ONLY, don't run `check_basic_host()`
2023-04-15 22:43:06 +02:00
Ricardo Pardini
f969a5e30f lib: completely remove CHOSEN_xxx, BSP_xxx_NAME, BSPFREEZE=yes 2023-03-31 09:12:44 +02:00
Ricardo Pardini
77921725fb lib: run shellfmt; remove commented-out; no actual changes 2023-03-31 09:12:44 +02:00
Ricardo Pardini
42fc56697b configdump/json-info-boards: revamp, all-JSON now; use_board=yes skip_kernel=no for config; refactor & use new Python bash-declare-to-JSON utility
- use new capture'd vars scheme
- so `./compile.sh BOARD=xxx BRANCH=yyyy config-dump-json | jq .` now works and is consistent/newline tolerant
- introduce internal `skip_host_config=yes` for `prep_conf_main_minimal_ni()` to skip calling `check_basic_host()`
2023-03-31 09:12:44 +02:00
Igor
00f849ac71 [AR-1620 + AR-1639 squashed]:: @igorpec's armbian-config/zsh/bsp/desktop/ubuntu-advantage artifacts 2023-03-31 09:12:44 +02:00
Ricardo Pardini
6d1c5fb8b7 artifact: kernel: use C999999 for .config hash is KERNEL_CONFIGURE=yes; force ignore cache if so 2023-03-17 08:32:11 +01:00
Igor Pečovnik
b7b8eb7b72
Add / modify (c) in bash scripts (#4922)
* Add / modify (c) in bash scripts

Signed-off-by: Igor <igor@armbian.com>

* Add (c) to the source config files

---------

Signed-off-by: Igor <igor@armbian.com>
2023-03-09 18:30:40 +01:00
Igor Pečovnik
e71d8dba10
Clenup minimal and server lists (#4893) 2023-03-02 22:44:47 +01:00
Ricardo Pardini
a2304f28b0
armbian-next: post_build_image: run hook first, then write to CARD_DEVICE, then compress, in that order
- compress *all* present output images, not only .img
- remove 7zip compression & hostdep
- squash a few shortcircuits (yeah, this late in the game...)
2023-02-18 07:46:12 -03:00
Ricardo Pardini
9bffa5e749
armbian-next: artifacts: firmware/rootfs and actual usage of artifacts during image build
- artifacts: introduce `ARTIFACT_IGNORE_CACHE=yes`
- artifacts: introduce `DONT_BUILD_ARTIFACTS`, list of artifacts that if not found cached, fail the build
- kernel_package_source() is no more
- a long dissertation about kernels, families, and the universe
- artifacts: actually use rootfs artifact for image build
- artifacts: detangle via artifact_base_dir
- artifacts: rootfs: use folders in artifact_name; include cache_type
- artifacts: some cleanups / validations
- rootfs artifact; drop old rootfs cli
- artifacts: new CLI shortcuts; remove old firmware CLI
- artifacts: full firmware & usage
- use firmware artifacts in image build and install its debs
- kernel artifact sans legacy; use tmpdir for .deb target for all packages
- legacy artifact versions is no more; pack/unpack now in common obtain;
- artifacts: uboot: cleanup legacy renaming, use artifact version directly
- artifacts: add firmware (small) artifact
- deploy uboot to loop from artifact; allow tty to artifact; todos for cleaning
- fixes, kernel dtb/headers conditional; remove `.git` from Makefile url; use mapfile for finding files to hash
  - completely remove KERNEL_HAS_WORKING_HEADERS_FULL_SOURCE and `kernel_package_callback_linux_headers_full_source()`
  - don't use realpath for artifact_file_relative
  - curb some warnings
  - fix: only install headers & dtbs if such exist
- kernel .config hook modification hash versioning
- OCI_TARGET_BASE vs per-artifact defaults; only deploy to remote from CLI with OTB
- artifact revolver & installing into image
  - add artifact_map_packages and artifact_map_debs dicts
  - revolver accumulates all info
  - REPOSITORY_INSTALL is no more (for uboot/kernel, later others)
  - rename `VER` to `IMAGE_INSTALLED_KERNEL_VERSION`
2023-02-18 07:46:03 -03:00
Ricardo Pardini
388c76c91b
armbian-next: shellcheck: squash more shellcheck warnings; some long-lost variables being used; some unset's that are better reset's, etc 2023-02-18 07:45:33 -03:00
Ricardo Pardini
bb6975707a
armbian-next: take a breath: config might mark aggregation required; aggregation requires prepare_host, and thus runs in default-build 2023-02-18 07:45:21 -03:00
Ricardo Pardini
150a90df17
armbian-next: config: twist prep_conf_main_minimal_ni() to receive use_board= 2023-02-18 07:45:13 -03:00
Ricardo Pardini
fa666aa3d4
armbian-next: interactive: review -t 0 instead of -t 1; move non-interactive check_basic_host() from prepare-host to config-prepare, for consistency 2023-02-18 07:45:09 -03:00
Ricardo Pardini
3b126c0730
armbian-next: unify 2 methods for config: prep_conf_main_minimal_ni() (rootfs/firmware/kernel) and prep_conf_main_build_single() (full-build, possibly interactive) 2023-02-18 07:45:05 -03:00
Ricardo Pardini
16eb5eb50b
armbian-next: aggregate_packages out of main_default_start_build(); introduce assert_requires_aggregation() 2023-02-18 07:45:03 -03:00
Ricardo Pardini
39208d1007
armbian-next: compress-checksum: move config to config-prepare; drop weight; kill warnings 2023-02-18 07:44:57 -03:00
Ricardo Pardini
6177b94268
armbian-next: logging: pure ASCII .log; included in Markdown for GHA 2023-02-18 07:44:45 -03:00
Ricardo Pardini
78dcf01c92
armbian-next: cleanup, kill and add to-do's, remove dead code, turn down logging, squash future shortcircuit bugs
- killed `[[ $ROOTFS_TYPE != ext4 ]] && display_alert "Assuming ${BOARD} ${BRANCH} kernel supports ${ROOTFS_TYPE}" "" "wrn"`
  - which definitely didn't belong in rootfs
- disable usage of run_host_command_logged_long_running for kernel-make
- stop lying about long_running stuff being any different from non-long_running versions
- stop lying about 'set -e' when there's still a bunch of pipes for "pv" and stuff all around
2023-02-18 07:44:33 -03:00
Ricardo Pardini
6077d40f9b
armbian-next: rootfs: build rootfs from CLI, sans-BOARD, sans-FAMILY, etc -- rootfs are meant to be shared
- require ARCH/RELEASE for rootfs cli
- disallow BOARD/LINUXFAMILY/BOARDFAMILY being set for rootfs cli
- split `prep_conf_main_only_rootfs()` instead of `prep_conf_main_build_single()` for rootfs-only stuff
- run both conf and build without stdin for rootfs CLI (no interactive allowed)
- don't blindly set `ARCH=armhf` for no reason in main-config
- allow skipping family stuff in main-config, via `allow_no_family=yes` (used only in `prep_conf_main_only_rootfs()`)
- kill double loading of userpatches family, not needed/old code
- allow skipping kernel stuff via `skip_kernel=yes` in `config_pre_main()`  (used only in `prep_conf_main_only_rootfs()`)
2023-02-18 07:44:26 -03:00
Ricardo Pardini
47bac3af92
armbian-next: fix missing BOARD_TYPE 2023-02-18 07:43:45 -03:00
Ricardo Pardini
da1cf2b475
armbian-next: rename too-long main function to prep_conf_main_build_single()
- this commit is proof of OCD (old name didn't fit stacktrace space)
2023-02-18 07:43:42 -03:00
Ricardo Pardini
ff94b79e60
armbian-next: do basic host checks before config if interactive, or during prepare-host if not
- group basic checks at `check_basic_host()`
2023-02-18 07:43:12 -03:00
Ricardo Pardini
b7fa6fa8b0
armbian-next: optimize config_source_board_file(), now 600x faster by not reusing (slow) code from interactive 2023-02-18 07:42:58 -03:00
Ricardo Pardini
b380ba4d86
armbian-next: further split of config-prepare() and do_main_configuration() into do_extra_configuration() - fixes interactive desktop 2023-02-18 07:42:03 -03:00
Ricardo Pardini
f167864f2c
armbian-next: split of config-prepare into multiple functions, allowing for logging of all non-interactive sections
- introduce `do_with_conditional_logging()` which only starts logging sections if `do_logging=no`
- with this we should get complete logs (ofc except for the interactive sections)
2023-02-18 07:41:46 -03:00
Ricardo Pardini
c33b59d61b
armbian-next: config: reduce bash scope & remove some vars un-needed outside of config 2023-02-18 07:41:40 -03:00
Ricardo Pardini
166a34da86
armbian-next: avoid linux-version during configuration; declare -g instead of export
- config might run on a non-Linux, bash-capable, GNU coreutils enabled machine, so avoid `linux-version`
- use `declare -g` instead of `export` for most of `prepare_and_config_main_build_single()`
2023-02-18 07:41:40 -03:00
Ricardo Pardini
6797016cfb
armbian-next: move compilation vars (chtreads, ccache stuff) from config to compile 2023-02-18 07:41:35 -03:00
Ricardo Pardini
60fb19b48d
Obsolete: kernel-headers via full source + make modules_prepare for 4.19 kernels. [later removed] 2023-02-18 07:41:34 -03:00
Ricardo Pardini
7842113c1d
armbian-next: make sure at least one board config file is sourced, otherwise misspell BOARD= is hard to find 2023-02-18 07:40:56 -03:00
Ricardo Pardini
b4da0c869c
armbian-next: a few fixes (shortcircuits...) and enhancements for the GUI building; thanks NicoD 2023-02-18 07:40:49 -03:00
Ricardo Pardini
fd043d707a
armbian-next: squash some warn loggings that were undue; remove $SUDO_USER handling in prepare-host.sh
- squash warning about `NO_APT_CACHER` when in Docker
2023-02-18 07:40:43 -03:00
Ricardo Pardini
074857ede3
armbian-next: u-boot: use git worktree for u-boot; full mainline clone for bare
- share a single `.git` for all u-boots
- all fetches are done against it, maximizing cache hit ratio drastically
- also reduces the size of each working copy by more than 70%
- split uboot's git stuff into uboot-git.sh
- split `uboot_prepare_git()` from `compile_uboot()`
2023-02-18 07:40:39 -03:00