Commit Graph

71 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
Igor Pecovnik
39d6bc8148 Powere management - make it conditional, enable on UEFI targets, else disabled 2025-11-18 12:01:25 +01:00
Igor Pecovnik
06dbd0074c Add Ubuntu 25.10 / 26.04 questing and resolute as csc build target, demote Bookworm to csc 2025-11-15 23:09:24 +01:00
Igor Pecovnik
8b8b0263b2 Disable sleep functionality on systemd level
This should prevent boards going to sleep as resume mainly don't work
2025-11-10 11:47:00 +01:00
tabrisnet
e4c5ae4f1a
framework mmdebstrap, fetch_distro_keyring - use cached keyring pkgs from armbian.github.io (#8881)
followup to #8785, armbian/armbian.github.io#82 & armbian/armbian.github.io#85
Pull the latest keyring pkgs from armbian's github mirror
2025-11-06 12:18:10 -05:00
tabris
cfed1b4357 framework mmdebstrap fetch_distro_keyring - ignore dpkg-deb/tar non-essential errors 2025-11-05 21:57:19 +01:00
tabris
69caf3ba22 build framework mmdebstrap - use MANAGE_ACNG for downloading the keyring pkgs 2025-11-03 18:12:03 +01:00
tabris
373ec28e79 build framework mmdebstrap - fetch the newest keyring pkgs 2025-11-03 18:12:03 +01:00
tabris
fef862f774 build framework mmdebstrap - LEGACY_DEBOOTSTRAP
allow old debootstrap to be used instead.
2025-11-03 18:12:03 +01:00
tabris
94866e81a3 build framework - mmdebstrap minimal conversion 2025-11-03 18:12:03 +01:00
Tim Surber
bf79329821 add Debian Forky as target 2025-10-27 11:33:08 +01:00
Jianfeng Liu
fb363e8829 add initial loong64 support 2025-08-04 17:34:24 +08:00
Igor Pecovnik
4ae394cc4d Debian oldstable: drop security and backport repository from packages lists
It does not exists for Bullseye nor Buster, which are both anyway deprecated, but we have a user reqests.
2025-07-30 15:49:42 +02:00
Igor Pecovnik
cbeb0992b4 Bullseye: drop backport repository as it doesn't exists anymore 2025-07-28 17:17:58 +02:00
Jianfeng Liu
3a9babee14 deploy missing qemu binary when adding repo key 2025-07-11 16:59:45 +02:00
Rolf Leggewie
9144aaf91b lib / distro-specific.sh: add --batch and --yes switches to gpg call
suggestion from coderabbit and indeed it sounds like a good, robust idea
2025-07-10 20:40:37 +08:00
Rolf Leggewie
9fe445b44d Revert "rootfs: allow APA to handle GPG keys when it is active during the build"
This reverts commit 034e9253cd.
2025-07-10 20:40:37 +08:00
Rolf Leggewie
034e9253cd rootfs: allow APA to handle GPG keys when it is active during the build
this is a small first step to mainlining APA into core and let it handle
some packaging and distribution logic
2025-06-23 20:36:23 +02:00
Werner
15407330c6
Preparation for http proxy caching (#8281)
* always use http for apt repos

* pass possible proxy arguments to docker

* populate lower-case env variables with upper-case ones if not set otherwise
2025-06-13 10:31:24 +02:00
Igor Pecovnik
aa5526a918 Signing key: keep a link to previous location
armbian-config still uses old location and as we don't control keys via package, we need to apply this workaround for newly created images
2025-06-09 09:33:46 +02:00
Rolf Leggewie
81d65b09b9 lib distro-specific.sh: move armbian GPG to more common location 2025-05-30 04:06:39 +08:00
Igor Pecovnik
3199178c70 Multiple sources fix: after changing to deb822 we forgot on leftovers
- deboostrap still uses old ways and we need to remove this file
- when displaying the content of sources, we need to look correct file
2025-03-05 10:40:48 +01:00
Blieque Mariguan
8e75c8ebd1 feat: Use deb822 APT sources
- Replace `armbian.list` with `armbian.sources`. This holds the same
  information in a newer format, deb822.
- Replace HTTP with HTTPS for Armbian repositories.
2025-02-24 09:23:11 +01:00
Blieque Mariguan
3743daffa2 feat: Use deb822 APT source for armbian-config
- Replace creation of `armbian-config.list` with
  `armbian-config.sources`. This holds the same information in a newer
  format, deb822. This does not affect `armbian.list`.

See also: https://github.com/armbian/configng/pull/407
2025-02-04 18:49:52 +01:00
Igor Pecovnik
1477b478c5 Add upstream release as csc target: Ubuntu plucky 25.04 2025-01-23 18:30:49 +01:00
Igor Pecovnik
4187ab3c51 Adjust deprecated key management support
Workaround for older builds were tied to version of apt, but this doesn't work anymore.
2024-12-13 09:40:56 +01:00
Ricardo Pardini
a1b1d61834 distro-specific: systemd-resolved: don't impose 1.0.0.1 DNS server on users
- See https://github.com/armbian/build/pull/6756/files#r1731373505

Fixes: b6f018a2b1
2024-09-10 21:59:14 +02:00
Igor Pecovnik
c0c7431af4 Enable allow-downgrades to base-files install to allow building images with older version than current
Framework stores our base-files in rootfs cache with version that comes from trunk and when we make stable images for current or previous release, build fails with error  E: Packages were downgraded and -y was used without --allow-downgrades.
2024-08-23 06:59:40 +02:00
ColorfulRhino
1a3ca2735b cli: Remove hostapd reference
The extra package `hostapd` is not used/installed anymore.
2024-06-30 12:27:41 +00:00
ColorfulRhino
3cca9dcaed Fix formatting in scripts by running lib/tools/shellfmt.sh version 3.8.0 2024-06-25 07:06:34 +02:00
ColorfulRhino
b6f018a2b1 net: Use resolved for DNS resolution
- Use resolved no matter what manages the network (networkd or NetworkManager)
- Use resolved.conf.d/ directory to set DNS as recommended by resolved itself
- In armbian-firstrun, remove config specific to mvebu64|mt7623 since this is now done by default
2024-06-20 19:59:52 +02:00
Igor Pecovnik
f4b160abde Move Network Manager bits into extensions
- use Chrony with Network Manager
- use timesync with systemd-networkd
- use NetPlan with Network manager only
- move command-not-found to CLI image only
- improve firstlogin ip detection
2024-06-20 19:59:52 +02:00
Igor Pecovnik
b2aea3ba42 Debian buster: disable non-existing backports repository 2024-06-18 21:47:21 +02:00
Alex
9063417d90
Treat sid and unstable as synonyms in distro-specific.sh (#6582)
Credits: @going --> https://forum.armbian.com/topic/37503-kali-linux-as-supported-distro/
2024-05-11 21:59:17 +02:00
Igor Pecovnik
514c6a48e8 Return Noble armhf arch as it works
- remove kinetic, lunar, mantic
- fix armhf sid, noble, oracular
2024-05-11 12:15:22 +01:00
Igor Pecovnik
017acb063c Add Ubuntu Oracular 2024-05-10 13:25:00 +01:00
hzy
1d31aac7a9 repo-list: fix build issue with eos distribution
armbian repo doesn't existed in eos distribution, which makes `apt update` fail.
2024-03-03 17:59:31 +01:00
Igor Pecovnik
9c75c86a54 Set DNS server if systemd-resolved is in use, change switch to if and check for DISTRIBUTION 2024-01-12 19:34:17 +01:00
Gunjan Gupta
fbad168eda
Fix rpi image creation broken since to #6087 (#6123)
* Revert "Don't generate armbian.list if when==image-early"
This reverts commit 0b79ff3a63.
* Remove armbian.list.disabled file if it exists
2024-01-01 23:19:35 +01:00
Viacheslav Bocharov
0b79ff3a63 Don't generate armbian.list if when==image-early 2023-12-29 09:39:56 +03:00
Igor
1f1d77cff3
Move netplan renderer selection to distro common selection (#5971) 2023-11-26 23:18:40 +01:00
Ricardo Pardini
f3c3fe8e82 ubuntu: add mantic (23.10), symlinks to lunar 2023-10-14 09:40:45 +00:00
Ricardo Pardini
11df81403d config/lib/exts: run shellfmt
- `bash lib/tools/shellfmt.sh`
- mostly spacing changes that accumulated over time
2023-08-22 14:28:14 +02:00
Ricardo Pardini
64b5220853
debian: add Trixie (Debian 13, testing) csc target & build host (#5621)
- Trixie, like Bookworm and Sid, does not have python2 anymore
2023-08-22 08:14:55 +02:00
Igor
2a8cb5793f Removing exceptions needed to support riscv64 withing Debian
Signed-off-by: Igor <igor@armbian.com>
2023-08-17 22:09:05 +02:00
Ricardo Pardini
2142f73b97 hashed-OCI-revisioned-debs: introduce "reversioning" of .deb packages
> tl-dr:
> - maximize OCI cache hit ratio across nightlies/releases/PRs/etc;
> - publish simple `Version:`'s that don't include a crazy hash in repo and images
> - introduce `output/packages-hashed` directory
> - radically change the `output/debs` directory structure

- simplify artifact's `prepare_version()` method for `deb` and `deb-tar` artifacts:
  - `artifact_base_dir` and `artifact_final_file` will now be auto-calculated; thus removed from each artifact (except `rootfs`)
  - `artifact_deb_repo` ("global", "jammy", "bookworm") is now required; "global" means common across all RELEASES
  - `artifact_deb_arch` is now required, "all" is arch-independent, otherwise use `${ARCH}`
  - `artifact_map_debs` is now auto-calculated based on the above, and shouldn't be specified manually
  - `artifact_final_version_reversioned` is optional, and can force the final version of the artifact (specific for the `base-files` case)
  - artifacts that need special handling for reversioning can add function names to `artifact_debs_reversion_functions` array (`base-files` and `bsp-cli` cases)
  - artifacts `prepare_version()` should set `artifact_version`, but _never_ include it in other variables; `artifact_version` is now changed by framework after `prepare_version()` returns
- no longer use/refer/mention `${REVISION}` when building packages. All packages should be `${REVISION}`-agnostic.
- `${REVISION}` (actually, `artifact_final_version_reversioned`) will be automatically swapped in the `control` file during reversioning
- `fakeroot_dpkg_deb_build()` now takes exactly two arguments: the directory to pack, and the deb ID (key of `artifact_map_packages` dict); add this change in all the artifact's code for this
- `obtain_complete_artifact()`:
  - automatically adds `-Rxxxx` "revisioning-hash" to `artifact_version`, by hashing the revisioning functions and any `artifact_debs_reversion_functions` set
  - calculates more complex subdirectory paths for both the `output/packages-hashed` and `output/debs`/`output/debs-beta` directories
    - with the new subdirectories we can be sure a re-version is already done correctly and can skip it (eg, for partial `download-debs` re-runs)
    - in the future we can automatically clean/remove old versions that are no longer relevant based on the dir structure
    - exports a lot more information to JSON, including the new subdirectory paths
  - comment-out code that implemented `skip_unpack_if_found_in_caches`, I'm very unsure why we had this in the first place
- `obtain_artifact_from_remote_cache()`
  - for `deb` type artifacts, OCI won't preserve the subdirectory structure, so move downloaded files to the correct subdirectory manually
  - this is not needed for `deb-tar`, since that can preserve the dir structure itself
- introduce `artifacts-reversion.sh` and its main function `artifact_reversion_for_deployment()`
  - this has the logic for reversioning .deb's, by `ar`-unpacking them, changing `control.tar` (and possibly `data.tar`), handling `.xz` compression, etc.
  - also handles hashing those functions, for consistency. Any changes in reversioning code actually change the artifact itself so we're not caught by surprise
  - by default, it changes `control` file only:
    - replace `Version:` (which is the hash-version originally) with `artifact_final_version_reversioned` (which is mostly just `${REVISION}`)
    - add a custom field `Armbian-Original-Hash:` with the original hash-version
  - `artifact_reversion_for_deployment()` is called by
    - new CLI wrapper `cli_obtain_complete_artifact()`, used for CLI building of specific artifact, but also for `download-artifact`
    - `build_artifact_for_image()` used during image build
- `armbian-bsp-cli-deb.sh`: move `${REVISION}` related stuff from the main package build to new reversioning functions.
- `artifact-armbian-base-files.sh`: move `${REVISION}` related stuff from the main package build to new reversioning functions.
- `kernel`:
  - add some custom fields to `DEBIAN/control`:
    - `Armbian-Kernel-Version:` / `Armbian-Kernel-Version-Family:` (for future use: cleanup of usage of `Source: ` field which should be removed)
  - declutter the `Description:` field, moving long description out of the first line
  - obtain `IMAGE_INSTALLED_KERNEL_VERSION` from the reversioned deb (this is still a hack and has not been fixed)
- `uboot`:
  - declutter the `Description:` field, moving long description out of the first line
  - use the reversioned .deb when deploying u-boot to the image
- `main_default_build_packages()` now stores reversioned values and complete paths to reversioned .deb's
- `list_installed_packages()` now compares custom field `Armbian-Original-Hash: `, and not the `Version:` to make sure debs in the image are the ones we want
- `install_artifact_deb_chroot()` is a new wrapper around `install_deb_chroot()` for easy handling of reversioned debs
  - use it everywhere `install_deb_chroot()` was used in `distro-agnostic.sh` and `distro-specific.sh`
2023-08-12 09:58:32 +02:00
Ricardo Pardini
aca22a53c3 repo: split image apt .list deployment into image-early and image-late
- split `image` apt .list deployment into `image-early` (after rootfs extract, before building) and `image-late` (after building)
- rationale: having the repo enabled during the image build can cause 'apt upgrade' and others to do inconsistent stuff depending on the (possibly random) state of the repo
2023-06-02 19:32:28 +02:00
Ricardo Pardini
1fd5d519d4 introduce armbian-base-files artifact, which downloads & repacks base-files from upstream distro
- bsp-cli: now depends on `base-files (>= ${REVISION})`, this way upgrading the bsp-cli causes our base-files to be installed
  - bsp-cli no longer does gymnastics with /etc/os-release et al, all done in armbian-base-files now
- general/apt-utils.sh: introduce `apt_find_upstream_package_version_and_download_url()`
- base-files: add release to version, in order to comply with repo restrictions (valid repos can't have two different debs with same name and version, md5 must match)
2023-05-18 20:49:06 +02:00
Ricardo Pardini
f26a41ff6c rootfs/image: introduce new hook custom_apt_repo() (hashed into rootfs version); deploy different repo components/custom repos depending on rootfs or image
- rationale: we don't want an eternal chicken-egg problem with rootfs vs repo.
  - but, desktop rootfs require some parts of repo. case in point: `system-monitoring-center`
    - so only add certain components of repo (-desktop, -utils) to rootfs so that is honored
- introduce `custom_apt_repo()` hook for extensions to add their repos as well
  - same chicken-egg-avoiding is possible via param `CUSTOM_REPO_WHEN`
2023-05-16 20:09:47 +02:00
Ricardo Pardini
b18cd8aaf4 logging: curb some warnings into info's 2023-05-09 10:04:57 +02:00