mirror of
https://github.com/armbian/build.git
synced 2025-08-11 21:56:58 +02:00
- 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`
46 lines
2.2 KiB
Bash
46 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
function apt_purge_unneeded_packages() {
|
|
# remove packages that are no longer needed. rootfs cache + uninstall might have leftovers.
|
|
display_alert "No longer needed packages" "purge" "info"
|
|
chroot_sdcard_apt_get autoremove
|
|
}
|
|
|
|
# this is called:
|
|
# 1) install_deb_chroot "${DEB_STORAGE}/somethingsomething.deb" (yes, it's always ${DEB_STORAGE})
|
|
function install_deb_chroot() {
|
|
local package="$1"
|
|
local variant="$2"
|
|
local transfer="$3"
|
|
local install_target="${package}"
|
|
local log_extra=" from repository"
|
|
local package_filename
|
|
package_filename="$(basename "${package}")"
|
|
|
|
# For the local case.
|
|
if [[ "${variant}" != "remote" ]]; then
|
|
log_extra=""
|
|
# @TODO: this can be sped up significantly by mounting debs readonly directly in chroot /root/debs and installing from there
|
|
# also won't require cleanup later
|
|
|
|
install_target="/root/${package_filename}"
|
|
[[ ! -f "${SDCARD}${install_target}" ]] && run_host_command_logged cp -pv "${package}" "${SDCARD}${install_target}"
|
|
fi
|
|
|
|
display_alert "Installing${log_extra}" "${package_filename}" "debinstall" # This needs its own level
|
|
|
|
# install in chroot via apt-get, not dpkg, so dependencies are also installed from repo if needed.
|
|
export if_error_detail_message="Installation of $install_target failed ${BOARD} ${RELEASE} ${BUILD_DESKTOP} ${LINUXFAMILY}"
|
|
DONT_MAINTAIN_APT_CACHE="yes" chroot_sdcard_apt_get --no-install-recommends install "${install_target}" # don't auto-maintain apt cache when installing from packages.
|
|
|
|
# @TODO: mysterious. store installed/downloaded packages in deb storage. only used for u-boot deb. why?
|
|
# this is some contrived way to get the uboot.deb when installing from repo; image builder needs the deb to be able to deploy uboot later, even though it is already installed inside the chroot, it needs deb to be in host to reuse code later
|
|
if [[ ${variant} == remote && ${transfer} == yes ]]; then
|
|
display_alert "install_deb_chroot called with" "transfer=yes, copy WHOLE CACHE back to DEB_STORAGE, this is probably a bug" "warn"
|
|
run_host_command_logged rsync -r "${SDCARD}"/var/cache/apt/archives/*.deb "${DEB_STORAGE}"/
|
|
fi
|
|
|
|
# IMPORTANT! Do not use short-circuit above as last statement in a function, since it determines the result of the function.
|
|
return 0
|
|
}
|