Commit Graph

91 Commits

Author SHA1 Message Date
coderabbitai[bot]
afe362f484 📝 Add docstrings to main
Docstrings generation was requested by @leggewie.

* https://github.com/armbian/build/pull/8027#issuecomment-2763300084

The following files were modified:

* `lib/functions/host/prepare-host.sh`
2025-03-29 12:21:20 +00:00
Mecid
a322285cfb Replace bsdmainutils with bsdextrautils 2025-03-28 12:38:01 +01:00
Mecid
322f86ff69 Add bsdmainutils to host dependencies in prepare-host.sh
for mac80211 in 6.14 which failed requiring hexdump
2025-03-28 12:38:01 +01:00
Ricardo Pardini
370f85b067 python3: do not rely on hostdeps python3-pip nor python3-dev; deploy pip via get-pip.py
- python3-pip implies a very old setuptools (which is system-wide and takes precedence)
- python3-dev implies python3-distutils (which is long deprecated)
- get-pip.py allows us to version pip in requirements.txt just like everything else
- in the end this fixes the conundrum with pylibfdt / dtschema on Jammy
- and, finally, the setuptools we specify in requirements.txt will be actually used
2025-02-24 09:21:53 +01:00
Ricardo Pardini
6755e9190a don't ship qemu binary in rootfs cache + armhf image/rootfs building on non-armhf-capable-arm64 hosts (Apple M1+)
- refactor `prepare_host_binfmt_qemu()` out of `prepare_host_noninteractive()` and into `rootfs/qemu-static.sh`
  - further split into more functions and return early to avoid deep nesting
  - implement force import and load of qemu-arm for non-armhf capable arm64 hosts (incl magic numbers)
- enhance `deploy_qemu_binary_to_chroot()` & `undeploy_qemu_binary_from_chroot()`;
  - add 2nd param "caller" for better logging/tracking
  - does sanity-check and preserve existing binary if it exists
- explicitly deploy/undeploy for the 3 cases:
  - image: moved undeploy from `post_debootstrap_tweaks()` into image build proper for consistency
  - rootfs: was leaving trash behind (since post_debootstrap_tweaks never ran for rootfs), now properly undeploys
  - initrd: was already fine, just added caller info
- added `arch-test` host dependency
  - ensure `arch-test ${ARCH}` works during prepare-host
- > tl,dr: "can build 32-bit armv7 armhf using Apple silicon; can use rootfs cache cross-arch reliably"
2024-12-31 11:52:12 +01:00
Ricardo Pardini
ea028fbcba prepare-host: trixie and sid don't carry python3-distutils anymore 2024-09-03 22:04:33 +02:00
Evgenii Zheltonozhskii
0aa2371db5 Support kernel compilation with Clang/LLVM 2024-08-15 13:20:01 +02:00
Kevin Schmidt
08ef1a960f Fix armbian-firmware-full package build.
Include symlinks from linux-firmware.
2024-08-12 10:45:27 +02:00
schwar3kat
58b0a55351 Add Linux Mint Virginia and Wilma to supported hosts
Add virginia and wilma in host-release.sh

Add wilma in prepare-host.sh
2024-08-05 09:39:01 +02:00
ColorfulRhino
d75b1816ff cli: Improve formatting on dts-check scripts with shellfmt.sh 2024-06-25 18:11:43 +02:00
ColorfulRhino
24816c1831 cli: prepare-host: Invert host-release checking for python2
Instead of having to add every new release to the list that does not support python2, inverse this if statement and only check if the build host is Debian bullseye or ubuntu jammy. Every release newer than those do not have python2. Older build hosts are unsupported.
2024-06-25 18:11:43 +02:00
ColorfulRhino
04f619dc06 python: Move python3-setuptools and python3-pyelftools to requirements.txt
Different build hosts have vastly different versions of setuptools and pyelftools depending on the host OS, e.g. Ubuntu 22.04 has setuptools v59 while the latest version at the time of this commit is setuptools v71.

Using Pip instead of APT to download these packages assures that all build hosts use the same version, removing some points of failures and inconsistencies.
2024-06-25 18:11:43 +02:00
Igor Pecovnik
f0fcb29465 Create output/info early in host prepare for storing JSON files and remove JSON 2024-05-10 13:24:18 +01:00
Ricardo Pardini
1d819c7b86 prepare-host.sh: deps: add libgnutls28-dev, needed for some u-boot builds 2024-04-29 02:26:38 +08:00
Ricardo Pardini
6a242ab149 prepare-host.sh: deps: Noble dropped python3-distutils; fixes #6527
- keep it for older releases
2024-04-29 02:26:38 +08:00
Ricardo Pardini
981b1939db prepare-host.sh: deps: replace liblz4-tool with lz4
- should fix sid and trixie, which dropped the metapackage
2024-04-29 02:26:38 +08:00
Igor Pecovnik
60250d17af After bumping rk3319-box u-boot to most recent versions, we need pure-python3 library for parsing ELF and DWARF
https://github.com/armbian/build/pull/6509
2024-04-23 01:50:49 +08:00
Ricardo Pardini
cd0820a0d5 prepare-host: add libffi-dev host dependency, needed for Python3 setuptools (when prebuilt wheel not found)
- fixes errors that show up only when building on non-arm64/amd64, when there's no prebuilt wheel (eg on riscv64)
2024-04-07 13:23:34 +02:00
Ricardo Pardini
5b978dc96d lib: drop old boot_logo code; keep png/gif as they're used for plymouth
- origins of what's being dropped: https://github.com/armbian/build/pull/2065
2024-03-06 08:28:31 +01:00
Ricardo Pardini
ceed97c57b prepare-host/host-release: enable noble for building; noble also doesn't have python2 anymore 2024-03-03 16:07:19 +01:00
Ricardo Pardini
6e0520f3da debootstrap: remove debootstrap from host dependencies 2024-03-02 20:46:58 +01:00
Ricardo Pardini
f3c3fe8e82 ubuntu: add mantic (23.10), symlinks to lunar 2023-10-14 09:40:45 +00:00
Ricardo Pardini
5ed338fb60 dpkg-deb: don't use fakeroot, we're already root; don't add fakeroot dep either 2023-10-13 18:04:56 +02: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
1e3d5c3567 prepare-host: check_host_has_enough_disk_space(): don't check if dir does not exist; fixes #5246 2023-06-02 19:32:40 +02:00
Ricardo Pardini
30eb5323f2 prepare-host: refactor disk space check; test "${DEST}" and "${SRC}/cache", no longer "${SRC}" 2023-05-21 16:18:35 +02:00
Ricardo Pardini
c351936cb0 binfmts: hide output when loading qemu-arm under aarch64 (some are native, some are emulated, all are good, errors can be ignored) 2023-05-15 17:43:25 +02:00
Ricardo Pardini
83e35b1473 binfmts: don't raise warning if qemu-arm failed to load under aarch64 (some are native, some are emulated, all are good)
- reported by @igorpecovnik on Discord, during massive CI build, when armhf builds landed on arm64 builders
2023-05-09 10:04:57 +02:00
Werner
0b90ebc54a Use native xz 2023-04-18 09:29:17 +02:00
Ricardo Pardini
eb1fe6d7ba artifacts: introduce PRE_PREPARED_HOST=yes: allow running pre-prepared host CLI's for artifacts that require aggregation 2023-04-15 22:43:06 +02:00
Ricardo Pardini
c30a907e47 python2: lunar also doesn't have python2 anymore (joins sid and bookworm) 2023-04-15 22:43:06 +02:00
Ricardo Pardini
ed0b406265 lib: fix: replace undue export statements with declare -g 2023-03-31 09:12:44 +02:00
Ricardo Pardini
6b965c605c completely remove any traces of KERNEL_ONLY and exit with error if set 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
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
c73d60368a armbian-next: remove references to stuff that doesn't exist or isn't hit by default anymore 2023-02-18 07:46:09 -03:00
Ricardo Pardini
843449597a armbian-next: binfmts: suppress error message when trying to emulate armhf on arm64 2023-02-18 07:45:53 -03:00
Ricardo Pardini
19aa7e95cf armbian-next: introduce assert_prepared_host() and assert before using any Python, to un-mask any further fallacies 2023-02-18 07:45:19 -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
b91d752aa6 armbian-next: prepare-host: don't manage ACNG in prepare if not asked to 2023-02-18 07:45:07 -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
041297c563 armbian-next: binfmt: make sure we have all binfmt's setup & enabled for rootfs build (v2) 2023-02-18 07:44:39 -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
3cac8f44a4 armbian-next: we don't really need target RELEASE defined to install host deps (for now), don't freak out about it 2023-02-18 07:44:31 -03:00
Ricardo Pardini
44ae761927 armbian-next: apt: expand local caching to include package lists, as well as .deb's
- `/var/cache/apt` in chroot was already cached;
- add `/var/lib/apt/lists`
- remove usage of namerefs, replace with global dict
2023-02-18 07:44:19 -03:00
Ricardo Pardini
2c9582f9ba armbian-next: add Debian Ports keyring hostdep to strap Debian riscv64 from ports
- rpardini: actually use ports keyring for Debian Risc-V
- `risc-v`: correctly include `debian-ports-archive-keyring` in Risc-V CLI packages
  - include in debootstrap list, via `config/optional/architectures/riscv64/_config/cli/_all_distributions/main/packages`
  - can't have two `--include` in debootstrap call
- riscv64: move `debian-ports-archive-keyring` from main to debootstrap; also only for `sid`
2023-02-18 07:43:49 -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
c1100fa461 armbian-next: still fighting tee leaking under duress, turns out I _hadn't_ really won
- last resort, use lazy umount.
- include `lsof` in hostdeps, useful to debug these situations
2023-02-18 07:43:39 -03:00