Commit Graph

12242 Commits

Author SHA1 Message Date
Kreyren
d9c10acb07 Better output
Address https://github.com/armbian/build/pull/5597#issuecomment-1679030905

@viraniac plz review
2023-08-17 22:09:33 +02:00
Kreyren
40bfcfe0f1 utils-dpkgdeb: Add alert for compressing
The command takes long time to continue and it makes it seem like the build halted, so this adds an alert to mitigate this
2023-08-17 22:09:33 +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
igorpecovnik
d57e365e67 Update report 2023-08-17 22:08:36 +02:00
Tony
5a19f70f9d
RK OC overlays for 6.4 update (#5602) 2023-08-17 14:43:32 -04:00
Tony
214fecf045
rockchip64: bump atf to lts v2.8 (#5604) 2023-08-17 10:25:15 -04:00
Gunjan Gupta
02051676b0 meson-s4t7: Enable dtbo support
The support is implemented by using dtbo files supplied by Khadas directly
in the linux-dtb package. The files are not compiled just copied.
2023-08-15 16:03:24 +02:00
Ricardo Pardini
72883cb07c khadas boards: VIM1S/3/3L/4/Edge2: add KHADAS_OOWOW_BOARD_ID definition for use with oowow (EXT=image-output-oowow) 2023-08-15 18:53:55 +05:30
Ricardo Pardini
24db9fb2ec extensions: image-output-oowow: creates Khadas oowow compatible images
- requires `KHADAS_OOWOW_BOARD_ID` set in board file (see next commit)
- always produces xz-compressed images, so this automatically disables `COMPRESS_OUTPUTIMAGE`
- uses `xze` script from Khadas, forcing `IN` and `OUT` env vars so it's not confused by fd 1
- to use, add `EXT=image-output-oowow` parameter to build
- to get into oowow:
    - VIM3/VIM3L:
        - download oowow SD card image from Khadas:
            - VIM3: https://dl.khadas.com/products/oowow/system/vim3-oowow-latest-sd.img.gz
            - VIM3L: https://dl.khadas.com/products/oowow/system/vim3l-oowow-latest-sd.img.gz
        - write image to SD card, use BalenaEtcher or similar
        - insert SD card into board (and remove NVMe if present and bootable)
        - boot board into Upgrade mode, see https://docs.khadas.com/products/sbc/vim3/install-os/boot-into-upgrade-mode
        - oowow should be running now
        - recommended: go into Advanced and reset to factory defaults, so MCU, PCIe/USB3 etc is reset to defaults
    - VIM4/VIM4N/VIM1S/Edge2: those have oowow in SPI from factory, check out the manual
- there's a few ways to use these images with oowow:
    - Using External media
        - prepare media (USB), format it with ext4 or fat, copy produced oowow.img.xz to it
            - for ease of use, rename the image file, so it begins with the board-id (`vim1s-/vim4-/edge2-` etc)
        - boot board into oowow  (see oowow's manual)
        - insert media into board
        - exit wizard, use "Write image to eMMC", browse to "../"
            - change from "XXXX only" to "All" if you didn't rename the image
        - choose image file and write
        - (remove SD card if using one) and reboot
    - Via network (Ethernet or Wi-Fi)
        - boot board into oowow
        - plug in Ethernet cable or connect to Wi-Fi (see oowow's manual)
        - set the firewall mode to "allow" in oowow's Network Settings (see oowow's manual)
        - obtain the IP address of the board in oowow (usually shown on top of the screen, or see manual)
        - from a remote machine, use curl to upload and write the image to oowow's eMMC, example:
            - `curl -L <ip_address>/shell/write | sh -s - <image_filename>.oowow.img.xz`
        - reboot board
    - From the Internet (one day)
        - when Khadas publishes Armbian oowow images to their HTTP server
2023-08-15 18:53:55 +05:30
igorpecovnik
6cf5f41b55 Update report 2023-08-15 14:29:15 +02:00
chainsx
90c05bac23 licheepi-4a: add a .wip for Sipeed LicheePi 4A board 2023-08-14 09:21:42 +02:00
amazingfate
e474a71b5d toggle rk35xx legacy kernel to sdk rkr5.1 2023-08-14 09:20:49 +02:00
Igor Pecovnik
b26efad047 Remove deprecated patches 2023-08-14 09:03:23 +02:00
lanefu
48a788c762
move to csc and standard rockchip64 kernel (#5587) 2023-08-13 15:35:01 -04:00
Ricardo Pardini
24ee25e0c9 trap-logging: don't export markdown logs and GHA summary unless GHA_EXPORT_MD_SUMMARY=yes (try to make unicorns go away) 2023-08-12 12:04:22 +02:00
Joshua-Riek
8dbe1d7ab6 add nvme boot support for the nanopc t6 2023-08-12 10:05:20 +02:00
Ricardo Pardini
c9b5b7462d u-boot-menu: curb logging, no need to emit warn's here 2023-08-12 10:05:02 +02:00
Julian Sikorski
f0b8102718 Update odroidxu4-current to 5.4.253 2023-08-12 10:04:46 +02:00
Muhammed Efe Cetin
c6ba2283a7 rk3588: edge: update kernel to 6.5-rc5 and fix its timeout issue 2023-08-12 10:04:30 +02:00
Muhammed Efe Cetin
c268d2f916 opi5-plus: add initial support for edge kernel 2023-08-12 10:04:30 +02:00
Muhammed Efe Cetin
607ae37caa rk3588: edge: update patches according to kernel mailing and collabora 2023-08-12 10:04:30 +02:00
Muhammed Efe Cetin
bc073ff3a5 opi5: edge: update some nodes on devicetree 2023-08-12 10:04:30 +02:00
Gunjan Gupta
c9997723b4 Allwiner: bump legacy, current and edge kernel
legacy - 5.15.124 -> 5.15.126
current - 6.1.43 -> 6.1.45
edge - 6.4.8 -> 6.4.10
2023-08-12 10:00:10 +02:00
Igor Pecovnik
c2f213a6f6 Internal: repository management will run on same host
Move executing check from the script
2023-08-12 09:59:53 +02:00
Igor Pecovnik
41a88f6f5c Disable external wireless drivers on mt7623 legacy 2023-08-12 09:59:26 +02:00
Ricardo Pardini
69b212a7d7 artifact-{bsp-cli,kernel,uboot}: fix missing vars_config_hash "variables hash" in artifact_version_reason 2023-08-12 09:58:32 +02:00
Ricardo Pardini
83eff4aa3c kernel: fix: when KERNEL_SKIP_MAKEFILE_VERSION=yes, use 1- prefix for artifact_version (eg odroidxu4) 2023-08-12 09:58:32 +02:00
Ricardo Pardini
9de2ccdbdf start-end: undo unintentional damage done to python/python2 compatibility symlinks inside the BIN_WORK_DIR 2023-08-12 09:58:32 +02:00
Ricardo Pardini
df34679533 store dict of artifacts actually installed in image; use it to freeze (BSPFREEZE=yes) and check hashes without spurious errors
- eg: `linux-headers` might, or might not, be installed; same with bsp-cli transitional
- accidentally fixes [AR-1802]
2023-08-12 09:58:32 +02:00
Ricardo Pardini
622ef30f3c adapt obtain_complete_artifact() and friends to new reversioned scheme; introduce UPLOAD_TO_OCI_ONLY=yes for deploying to remote cache
> tl-dr: only deploys to remote OCI if `UPLOAD_TO_OCI_ONLY=yes`; stop leaving junk behind in local cache in many situations

- simplify CLI artifact building parameters and behaviour
    - `ARTIFACT_USE_CACHE` is now deprecated, and its behaviour is the default
    - for _any_ uploading to OCI to occur, `UPLOAD_TO_OCI_ONLY=yes` **must** be present; in this case, reversioning is not done
    - `FORCE_ARTIFACTS_DOWNLOAD` is completely removed (use `download-artifact` instead)
    - `cli_obtain_complete_artifact()`'s and `build_artifact_for_image()`'s reversioning is now moved to common `obtain_complete_artifact()`
- `standard_artifact_reversion_for_deployment()`:
    - check for hashed deb existence only if reversioned does not exist
    - touch the reversioned file if it already exists; helps to clean up junk later
    - delete hashed version after reversioning, so we don't leave trash behind
        - unless in `download-artifact` mode, which `touch`es the hashed version
        - we can later delete old files from packages-hashed to keep junk under control
- refactor `obtain_complete_artifact()`
    - extract function `artifact_dump_json_info()` since obtain is large enough already
    - when deploying to remote, always ignore all local and remote caches
    - introduce `artifact_is_available_in_revisioned_local_cache()`
        - if not deploying to remote, and revisioned cache exists, use it directly
        - if deploying to remote, reversioned is not checked and not created
    - if deploying to remote, force `DEB_COMPRESS=xz`
    - if deploying to remote, completely remove the local cache base dir after upload is done (no more junk leftover)
2023-08-12 09:58:32 +02:00
Ricardo Pardini
413212ab24 artifacts: obtain: back to using flat output/debs structure, include revisioned and hashed in filename, but no subdirectories
- handle the `global` artifact_deb_repo case specially (they go in the root, not subdir)
2023-08-12 09:58:32 +02:00
Ricardo Pardini
bd5a577e40 pipeline: streamline output-debs-to-repo-json to pass down info and avoid parsing paths completely 2023-08-12 09:58:32 +02:00
Ricardo Pardini
4624b581da pipeline: force compositor to include REVISION= just like it already did for BETA=
- this way the prepare step's REVISION (possibly passed via CLI parameter) is always sovereign
2023-08-12 09:58:32 +02:00
Ricardo Pardini
be11e171a8 main-config: allow using REVISION from env or command-line param; ensure it begins with digit 2023-08-12 09:58:32 +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
a876d0f882 pipeline: output-debs-to-repo-json.py: adapt to new reversioned JSON info 2023-08-12 09:58:32 +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
1241e2c4cb kernel/tmpfs: remove usage of the kernel-specific tmpfs for temporary kernel .deb's, now build directly to packages-hashed dir 2023-08-12 09:58:32 +02:00
Ricardo Pardini
a592ab763c hashed-OCI-revisioned-debs: build debs in PACKAGES_HASHED_STORAGE, not DEB_STORAGE (temp commit, will be rewritten by a later commit)
- fakeroot_dpkg_deb_build() now only takes a single argument, the unpacked package dir
2023-08-12 09:58:32 +02:00
Ricardo Pardini
ec0a87efb5 hashed-OCI-revisioned-debs: get completely rid of artifact_prefix_version 2023-08-12 09:58:32 +02:00
Ricardo Pardini
6e5b8ffba0 artifacts: don't keep deb-tar's .tar after uploading to OCI
- they won't ever be used after this, and just accumulate trash for no reason
2023-08-12 09:58:32 +02:00
Ricardo Pardini
c347e83fce debs: all produced debs now get a placeholder DEBIAN/changelog and a usr/share/doc .gz changelog with hash 2023-08-12 09:58:32 +02:00
Ricardo Pardini
9d2f8f1b26 kernel-debs: avoid showing tree of kernel modules if they've not been built
- for example `EXT=nomod` causes no modules to be built
2023-08-12 09:58:32 +02:00
Ricardo Pardini
c17a041637 prepare_host: handle PRE_PREPARED_HOST inside prepare_host_init() so WORKDIR etc is always available 2023-08-12 09:58:32 +02:00
Ricardo Pardini
0251d65b7a repo-reprepro.py: set -e & pipefail 2023-08-12 09:58:32 +02:00
Ricardo Pardini
624ac450e3 trap-logging: just discard logs dir when ANSI_COLOR=none 2023-08-12 09:58:32 +02:00
amazingfate
ecac08cc8e kernel image files use standard flavor 2023-08-11 17:06:38 +08:00
Igor
13ed5c0d62 Update repo 2023-08-10 22:43:22 +02:00
Igor
e492d3eeed Improve repository management
Signed-off-by: Igor <igor@armbian.com>
2023-08-10 22:43:22 +02:00
Gunjan Gupta
35feddc350 meson-s4t7: Use partitiontype=generic instead of initrd hack
Also added viraniac as maintainer for vim1s
2023-08-09 11:20:28 +02:00