Commit Graph

60 Commits

Author SHA1 Message Date
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
Igor b2be0e5a45 Enable non-free-firmware repository for Debian Sid
Addressing:

  [🐳|💥] Error context msg [ Installation of Armbian main packages for sid 3dsupport xfce no failed ]
  Error:  Error context msg Installation of Armbian main packages for sid 3dsupport xfce no failed
  [🐳|🔨]   Reading package lists...
  [🐳|🔨]   Building dependency tree...
  [🐳|🔨]   E: Unable to locate package firmware-sof-signed
2023-03-31 13:21:35 +02:00
Ricardo Pardini 77921725fb lib: run shellfmt; remove commented-out; no actual changes 2023-03-31 09:12:44 +02:00
Ricardo Pardini d868d76182 artifacts: bsp-cli, bsp-desktop, desktop: rework, with @igorpec
- bsp-cli: does not require aggregation
- bsp-desktop / desktop: requires aggregation
- 'desktop' packaged moved out of 'bsp' folder, it is NOT a bsp
- make consistent naming/folders
- extract .sh generation workflow into 'declare -f' magic functions
- `SHOW_DEBIAN=yes` to bump most of `DEBIAN/xxx` stuff to screen
- artifact armbian-bsp-desktop: use aggregation, require certain vars, CLI forces `BUILD_DESKTOP=yes`; requires BOARD
- artifact armbian-desktop: use aggregation, require certain vars, CLI forces `BUILD_DESKTOP=yes`, not require `BOARD` anymore
- cli: commands: fix artifact aliases, reorder
- desktop/bsp-desktop: add `config_dump` method; fix `artifact_map_debs` ref subdir and name
- artifact bsps: require aggregation to build, not to list what needs to be built
- distro-agnostic: fix install of `armbian-bsp-cli` (not `armbian-bsp`)
- armbian-bsp-cli: add `_config_dump` method, use configuration with aggregation, add required vars check
- distro-specific: fix installation of `fake-ubuntu-advantage-tools`
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
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 2f7423d0e4
shellfmt/.editorconfig: enable trim whitespaces, run shellfmt, no actual code changes (#4849)
- shellfmt: bump to 3.6.0 (run with `bash lib/tools/shellfmt.sh`)
- .editorconfig: rationalize, remove duplicated logic
2023-02-23 09:24:41 +01:00
Rich 7f11a59c3a
sid: add unstable repo 2023-02-18 07:46:42 -03:00
Kreyren ec88aaf149
`bookworm`: has new/separate repos for non-free-firmware (#4801) [cherry-pick]
- "Debian moved the non-free firmware into it's own sub-repository"
2023-02-18 07:46:35 -03:00
Ricardo Pardini 4d17aa2a98
armbian-next: `rootfs`: bunch'o'fixes, introduce `disable_systemd_service_sdcard()` to stop repeating incantantion
- fix a bunch of quoting issues
- use runners for chroot stuff
- don't error out of failed disable
- makes building `sid` again possible
- add a bunch of TODO's
2023-02-18 07:42:48 -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