Commit Graph

2090 Commits

Author SHA1 Message Date
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
Ricardo Pardini
ed02ac2447 initrd: fix undeclared variable update_initramfs_cmd 2023-08-09 11:20:28 +02:00
Paolo
c27739943d
rockchip64: bump rockchip64-edge kernel to 6.4 (#5552)
undefined
2023-08-04 10:39:13 +02:00
Gunjan Gupta
154fdb83f9 Fix cryptroot setup with flash-kernel and ssh unlock on newer dropbear versions 2023-08-02 08:30:27 +02:00
Julian Sikorski
3d7e67431f Fix compiling rtl8189es, rtl8189fs and rtl8192eu 2023-07-29 15:47:24 +02:00
Ricardo Pardini
5db0066650 kernel / drivers-harness: use the kernel git SHA1 ($KERNEL_GIT_SHA1) instead of $KERNEL_MAJOR_MINOR for drivers cache key
- this should avoid (late) patching errors that might happen during a point release bump like `6.4.5` -> `6.4.6` cos we'd be using the wrong cached drivers patch
- using the SHA1 will instead (possibly) trigger the "real patching failure", during drivers-harness when building a new driver patch cache
- also try to cleanup old caches in the old format so we've not many leftovers -- each patch is ~150mb
2023-07-27 21:32:42 +02:00
Ricardo Pardini
953b9eb823 display-alert: strip newlines as well as ANSI colors if ANSI_COLOR=none
- `ANSI_COLOR=none` is used when we're driving compile.sh from Python
- some debugging messages had newlines in them, thus making Python mark those as `[LEAKED]`
2023-07-27 21:32:30 +02:00
Ricardo Pardini
ee3059eb2f pipeline: debs-to-repo-download is now done in parallel; default cores*2 limited to 16 or PARALLEL_DOWNLOADS_WORKERS
- also avoid log archiving during individual download jobs via SKIP_LOG_ARCHIVE=yes
- I've tested with PARALLEL_DOWNLOADS_WORKERS=16 and it saturates my gigabit link, ghcr.io is great at reads
- more than ~16-ish might be too much though
2023-07-27 21:32:19 +02:00
Ricardo Pardini
b92575381a pipeline: inventory all board vars; add not-eos-with-video; introduce TARGETS_FILTER_INCLUDE
> How to use:
>
> `./compile.sh inventory` - does just the board inventory; look for output in `output/info`
>
> `./compile.sh targets-dashboard` - does inventory, targets compositing, and images info; look for output in `output/info`, read the instructions output by the command if you want to load the OpenSearch dashboards.
>
> `./compile.sh targets` - does the full targets compositing and artifacts, look for output in `output/info`
>
> If you don't have a `userpatches/targets.yaml`, _one will be provided for you_ defaulting to Jammy minimal CLI
> and Jammy xfce desktop, for all boards in all branches. You can pass filters via `TARGETS_FILTER_INCLUDE=...` to narrow.
>

- board JSON inventory:
  - more generic regex parsing of variables from board files:
    - all top-level (non-indented) variables are parsed and included in the JSON board inventory
    - this allows us to add new variables to the board files without having to update the parser
    - variables can be bare, `export` or `declare -g`, but **_must_ be quoted** (single or double) and UPPER_CASE
  - some special treatment for certain variables:
    - `KERNEL_TARGET` is parsed as a _comma-separated_ list of valid BRANCH'es
    - `BOARD_MAINTAINER` is parsed as _space-separated_ list of valid maintainer GH usernames as `BOARD_MAINTAINERS: [...]` in the JSON
      - script complains if `BOARD_MAINTAINER` is not set in core boards. Empty is still allowed.
    - `HAS_VIDEO_OUTPUT="no"` causes `BOARD_HAS_VIDEO: false` in the JSON (for desktop-only inventorying, see below)
- introduce `not-eos-with-video` in `items-from-inventory` at the targets compositor
  - the same as `not-eos`, but with added `BOARD_HAS_VIDEO: true` filter, see above
- introduce `TARGETS_FILTER_INCLUDE` for targets compositor
  - this filters the targets _after_ compositing (but before getting image info), based on the board inventory data
  - it's a comma-separated list of `key:value` pairs, which are OR-ed together
  - new virtual info `BOARD_SLASH_BRANCH` post-compositing inventory for filtering of a specific BOARD/BRANCH combo (e.g. `odroidhc4/edge`)
  - some interesting possible filters:
    - `TARGETS_FILTER_INCLUDE="BOARD:odroidhc4"`: _only_ build a single board, all branches. JIRA [AR-1806]
    - `TARGETS_FILTER_INCLUDE="BOARD_SLASH_BRANCH:odroidhc4/current"`: _only_ build a single board/branch combo
    - `TARGETS_FILTER_INCLUDE="BOARD:odroidhc4,BOARD:odroidn2"`: _only_ build _two_ boards, all branches.
    - `TARGETS_FILTER_INCLUDE="BOARD_MAINTAINERS:rpardini"`: build all boards and branches where rpardini is a maintainer
    - `TARGETS_FILTER_INCLUDE="BOARDFAMILY:rockchip64"`: build all boards and branches in the rockchip64 family
  - image-info-only variables like `LINUXFAMILY` is **not** available for filtering at this stage
- rename `config/templates` `targets-all-cli.yaml` to `targets-default.yaml`
    - this is used when no `userpatches/targets.yaml` is found
    - new default includes all boards vs branches for non-EOS boards
        - also desktop for all boards that _don't_ have `HAS_VIDEO_OUTPUT='no``
- introduce simplified `targets-dashboard` CLI:
  - does only inventory, compositing, and image info, but not artifact reducing, etc.
  - ignore desktop builds in the OpenSearch indexer
  - update the OpenSearch Dashboards, including new information now available
- invert the logic used for `CLEAN_INFO` and `CLEAN_MATRIX`
    - defaults to `yes` now, so new users/CI don't get hit by stale caches by default
    - repo pipeline CLI stuff is usually run on saved/restored artifacts for `output/info`, so don't clean by default via the CLI
2023-07-26 15:15:02 +02:00
Ricardo Pardini
eab306b279 tmpfs: introduce USE_TMPFS=no to disable tmpfs usage for WORKDIR and package-specific working dirs; actually use $temp_dir_id for mktemp; see #5502
- `USE_TMPFS=no` disables usage of generic tmpfs mechanism (still possibly used for rootfs/image building, which is unrelated), for last-resort cases
- use better/more descriptive `temp_dir_id`'s for kernel build than `k` (now `kernel_dest_install_dir`) and `kd` (now `kernel_debs_temp_dir`)
  - specific image/dtb/headers packaging already had decent names, same for other .deb's
- replace `mktemp -d` with `mktemp -d --tmpdir "${temp_dir_id}-XXXXX"` in `prepare_temp_dir_in_workdir_and_schedule_cleanup()`, so we know what's using what in tmpfs
2023-07-24 23:19:15 +02:00
Patrick Yavitz
88a19f5d82 drivers: net: wireless: realtek: rtw88: upstream-wireless
This commit is cosmetic; git format-patch

Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
2023-07-23 17:00:03 +02:00
Gunjan Gupta
bc0e131747 Enforce use of bind mount for /dev within chroot
The /dev/mapper directory created by devtmpfs lacked entry for
armbian-root thereby breaking the cryptsetup configuration generated
within initrd file. Use bind mount as that doesn't seem to suffer from
that issue.
2023-07-22 02:18:49 +05:30
Gunjan Gupta
37d79f1ee2 Fix cache miss detection for initrd
We were not monitoring /usr/share/initramfs-tools before where most
of extra hooks gets installed. While testing builds with CRYPTROOT
I created build with dropbear ssh key unlock support first and then
went for password only, but it still used initrd image with dropbear
files and older keys. Including /usr/share/initramfs-tools fixes the
same. Also as dropbear keys were autogenerated, they needed to be
monitored as well.
2023-07-22 02:18:49 +05:30
Gunjan Gupta
2bf0ddc034 Fix intermitent loop device not available error when CRYPTROOT_ENABLE is enabled 2023-07-22 02:18:49 +05:30
Gunjan Gupta
909fa47b7e Fix caching of cryptroot packages. Also moved the crypt code to extension 2023-07-22 02:18:49 +05:30
Ricardo Pardini
9b70101d07 artifact: kernel: force D0000 drivers hash for artifact_version if EXTRAWIFI=no 2023-07-20 01:03:43 +02:00
Jacob Hrbek
6556a3a77e Add compatibility for non-FHS 3.0 systems
* Added `shell.nix` definition for temporary development environment for Nix(OS)
* Set uuidgen and other binaries check to not rely on hard-codded paths
2023-07-19 23:16:22 +02:00
Gunjan Gupta
2660eaeff0 lib: functions: compilation: Make it possible to toggle EXTRAWIFI
With this change, setting EXTRAWIFI=no will disable all wireless
patches applied within drivers_network.sh script. Also since #5265
the rtl88x2cs patches were suppose to be not applied to 6.1+ kernel
onwards, instead they were disabled entirely. As this was done by
adding EXTRAWIFI=no, its now replaced with kernel version limit.
Keeping EXTRAWIFI=no there would have made those patches to apply
which would have changed the meaning of the flag.
2023-07-20 02:35:17 +05:30
Igor Pecovnik
d56b56edbb Revert "armbian-desktop/aggregation: introduce DESKTOP_COMMON aggregation variant, where arch/config/appgroups are ignored; see #5439"
This reverts commit f952ae89fb.
2023-07-19 01:02:23 +02:00
Ricardo Pardini
a4c703dfb0 partitioning: declare global readonly ROOT_PART_UUID for later hooks
- re-use local `root_part_uuid` instead of running blkid multiple times
2023-07-18 14:21:01 +02:00
Ricardo Pardini
f952ae89fb armbian-desktop/aggregation: introduce DESKTOP_COMMON aggregation variant, where arch/config/appgroups are ignored; see #5439 2023-07-18 14:20:44 +02:00
Alban Browaeys
99ca2142a6 Fixup for stale kickoff removal in wireless regulator API
Cope with the fix in stable 6.3.13 bf353116d1bf and 6.5-rc1 e8c2af660ba0
"wifi: cfg80211: fix regulatory disconnect with OCB/NAN".
That is the removal of REGULATORY_IGNORE_STALE_KICKOFF
from the wireless regulator internal API to fix any driver
that allowed OCB/NAN.

Note this code will need to be expanded once and if 6.4 include the
above fixup.

Signed-off-by: Alban Browaeys <alban.browaeys@gmail.com>
2023-07-18 14:16:50 +02:00
Ricardo Pardini
3970058720 uboot: allow adding/changing uboot CFLAGS with post_config_uboot_target() hook 2023-07-12 00:51:21 +02:00
Ricardo Pardini
3262f6fcab drivers-harness: add branch to drivers base cache key declare cache_key_base="${KERNEL_MAJOR_MINOR}_${LINUXFAMILY}_${BRANCH}"
- this allows for 2 branches with the same version to not interfere with each other
2023-07-12 00:51:01 +02:00
Ricardo Pardini
718047cfd7 interactive: show all possible KERNEL_TARGET's in branch selection UI; handle current/edge/legacy, others are "experimental"
- remove `midstream` special handling
2023-07-12 02:41:02 +05:30
Patrick Yavitz
2b5e341220 rtw88: sdio: honor the host max_req_size in the rx path
Use multiple consecutive reads in rtw_sdio_read_port() to limit the number of bytes which are copied by the host from the card in one MMC/SDIO transfer. This allows receiving a buffer that's larger than the hosts max_req_size (number of bytes which can be transferred in one MMC/SDIO transfer). As a result of this the skb_over_panic error is gone as the rtw88 driver is now able to receive more than 1536 bytes from the card (either because the incoming packet is larger than that or because multiple packets have been aggregated).

Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
2023-07-11 11:15:15 +02:00
Ricardo Pardini
6cd3cbbf6b kernel-debs: headers: hack/fix for 6.5-rc1's "tools/counter: Makefile: Remove lingering 'include' directories on make clean"
- introduced at 228354ed69
  - simply creating the dir solves it
  - reported to author, let's hope for an -rc2 fix.
- better logging when DEBUG=yes (don't pass "-s"(ilent) to make clean)
2023-07-11 11:14:41 +02:00
Gunjan Gupta
95687ba057 Remove plymouth package if its not needed 2023-07-10 08:57:48 +02:00
Gunjan Gupta
60fd20a720 kernel: sunxi: make use of patches from driver harness 2023-07-10 08:56:18 +02:00
Gunjan Gupta
1d89a9f65a Make sure we upgrade armbian-bsp-cli package 2023-07-08 00:05:58 +05:30
Ricardo Pardini
38149f278f debs: remove Installed-Size: 1 from control files; Installed-Size is properly calculated at fakeroot_dpkg_deb_build() for all packages 2023-07-05 21:22:47 +02:00
Ricardo Pardini
c5fe25aa17 partitioning: move hook call image_specific_armbian_env_ready() after the end of related manipulations
- depending on rootpart/extlinux/boot.ini it might not have run or had any effect
2023-07-04 03:09:07 +05:30
Patrick Yavitz
6e6ed0e88e patch: misc: rtw88: decrease the log level of tx report
Reduce 'failed to get tx report from firmware' dmesg spam.
https://lore.kernel.org/linux-wireless/20210713104524.47101-1-pkshih@realtek.com/

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-07-01 23:44:02 +02:00
Gunjan Gupta
2cae0b9422 artifacts: fix hashing for u-boot and kernel 2023-07-02 02:44:41 +05:30
Ricardo Pardini
bd56746146 python2/python3: symlink python3 as python/python2 if python2 is not found in host
- this _might_ allow some u-boots to build on bookworm/sid/etc (python2-less build hosts)
2023-07-01 21:49:08 +02:00
Ricardo Pardini
e6f70a3573 docker: default COLUMNS env var to 160 if unset / not-interactive 2023-07-01 14:55:49 +02:00
Lane Jennison
ad97c1b7ee rockchip-rk3588 collabora: new branch (by @lanefu)
- `bsdextrautils` for kernel 6.4 (only if collabora branch)
- kernel 6.4 major, but skip rtw88 driver patching
2023-07-01 14:50:35 +02:00
Ricardo Pardini
079549b7fb u-boot: log what the BOOTCONFIG is when building 2023-07-01 14:50:05 +02:00
Ricardo Pardini
ba71419b58 artifact-uboot: hack: add rkbin blob paths to variables hashed (otherwise changes aren't picked up)
- this definitely needs re-thinking later, each family might have completely different requirements (eg: meson64's FIPs vs rk's rkbins vs ...)
2023-06-28 21:27:09 +02:00
Ricardo Pardini
3324449fbe kernel drivers: introduce KERNEL_DRIVERS_SKIP array to allow families to skip certain kernel drivers
- move rtw88's skip's from drivers_network.sh to their own family definitions
2023-06-28 21:26:54 +02:00
Ricardo Pardini
8b0fb1537b meson-{sm1|g12a|g12b}: default, but don't override, ASOUND_STATE; this way board-specific asound.state's are honored
- add logging during actual deployment so we know what is happening
2023-06-27 11:39:36 +02:00
Ricardo Pardini
8e4ca7d36a armbian-kernel: was too hungry in disabling kernel debug, let DEBUG_MISC & SLUB_DEBUG alone 2023-06-26 21:34:43 +02:00
Ricardo Pardini
97dbec7717 armbian-kernel: further insist on disabling kernel debug, since DEBUG_INFO is auto-enabled by DEBUG_INFO_DWARF5 and others 2023-06-26 13:51:46 +02:00
Patrick Yavitz
da0f7467a4 patch/misc/rtw88: wireless-next 2023-06-22
This brings the patch set up to 2023-06-22 wireless-next

Drivers tested;
8822CS. 8821CU and 8723DS

Notables;
Not seeing random dmesg spam `rtw_8822cs failed to get tx report from firmware` which I would see on both the CS and CU from time to time.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-06-26 13:46:40 +02:00
Jens J
42de8b678c handle kernel.org forks 2023-06-26 13:45:04 +02:00
Igor
e4115ad23b Disale wireless driver for private kernel 2023-06-20 23:07:22 +02:00
Gunjan Gupta
8278dc5e42 allwinner: Enable crust compilation 2023-06-20 21:36:31 +02:00
Patrick Yavitz
dc9fd25644 drivers_network.sh: driver_rtw88: reflect patching update
commit: 5810f041a6
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-06-19 22:06:47 +02:00
Patrick Yavitz
bea8a7cde9 patch: misc: rtw88: temporary workarounds
Review patches for information on the subject.
Tested on: BPI-CM4, X96-AIR and Tinkerboard R2

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-06-19 22:06:47 +02:00
Patrick Yavitz
61aee9857c patch: misc: rtw88: 6.1 / 6.2 / 6.3 / 6.4: backport updates
Patch set includes a complete backport of RTW88 as it currently stands, along with extras

Extra:
Patch: RTL8723DS (SDIO)
Patch: _rtw_download_firmware()  warn: missing unwind goto?

Hack: SDIO RX Aggregation Limiting
I only have two units available to me with an 8822CS module and in my testing this is only required on the BPI-CM4IO. With out LIMITING the unit will either kernel panic or not be able to send or receive.

This is currently being looked into:
https://lore.kernel.org/linux-wireless/CAFBinCBaXtebixKbjkWKW_WXc5k=NdGNaGUjVE8NCPNxOhsb2g@mail.gmail.com/T/#u

It may be possible to just set LIMITING across all builds, but that to me seems like a poor choice. This requires testing.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-06-19 22:06:47 +02:00
Michael Beck
fae99241a9
Added "midstream" to the interactive config kernel branch selection. (#5349)
Co-authored-by: Michael Beck <beck.xt3@gmail.com>
2023-06-19 22:03:07 +02:00
Igor
50a7936cad Disable RTW88 on midstream kernel as it breaks building 2023-06-16 10:30:21 +02:00
Ricardo Pardini
5ebbe5c4f6 kernel: drop dead code & patches from long-disabled kernel-drivers.sh/drivers_network.sh stuff
- this has been dead code (never called) for some 6 months now
- having it there makes it hard to find the actual/real callpoints of non-dead code
2023-06-14 15:55:27 +02:00
Andrew Davis
92aa7b3de2 Use HTTPS for kernel.org sources checkout
HTTPS is more secure and less likely to be blocked by firewalls. The
other sources here use HTTPS now, update the kernel to the same.
2023-06-14 15:55:09 +02:00
Ricardo Pardini
b9056190b8 drivers_network rtl8812au: skip removal for odroidxu4/current so it patches OK again
```
# Brief detour. Turns out that HardKernel's vendor odroidxu4 kernel already has this driver
# "slipstreamed" into it, complete with a bunch of PDF files and other junk.
# See https://github.com/hardkernel/linux/tree/odroid-5.4.y/drivers/net/wireless/rtl8812au
# If we remove them here, the resulting patch will contain binary diffs which are unsupported by patch(1).
# So if building for the odroidxu4/current, we'll leave the original files in place, and just overwrite
# the possibly-updated source files (not PDFs and such). Thanks, HardKernel.
```
2023-06-14 15:32:14 +02:00
Ricardo Pardini
bfa8947c0d kernel: wifi driver_uwe5622_allwinner: only ever apply for kernels >= 6.0
- case in point, rockchip64-legacy, which is 4.4-something and can't handle this
2023-06-14 05:36:15 +02:00
Igor
1848366170 Revert "docker: use ${SRC} as DOCKER_ARMBIAN_TARGET_PATH instead of hardcoded /armbian"
This reverts commit 6dd7067c79.
2023-06-13 21:59:44 +02:00
Ricardo Pardini
de54b3707f kernel: wifi driver_rtw88: skip for d1 family, which is lagging in 6.1.0-rcX 2023-06-13 20:20:02 +02:00
Ricardo Pardini
6dd7067c79 docker: use ${SRC} as DOCKER_ARMBIAN_TARGET_PATH instead of hardcoded /armbian
- this way host-side and Docker-side `SRC` are now the same path
  - messages containing the path to a file will now match across Docker and actual host
2023-06-13 19:32:49 +02:00
Ricardo Pardini
fe36951c9f patching: auto patchers: bare dts, bare overlays, DT Makefile 2023-06-13 12:29:52 +02:00
Ricardo Pardini
70a64a0415 patching: Patching Summary and Patching Failures tables using Python's Rich
- even Rich'er patch output by colorizing certain strings green/yellow/red
- BASE_GIT_TAG now very sneakily also accepts a branch name
- IMPORTANT: this includes: BREAKING CHANGE: patches failing to apply now break the build. fixes #4958
  - also break on legacy `process_patch_file()` failure, remove `EXIT_PATCHING_ERROR`
2023-06-13 12:29:52 +02:00
Ricardo Pardini
f724ed130e export-logs: introduce PASTE_URL to make easy to change paste service used 2023-06-13 12:07:40 +02:00
Ricardo Pardini
c44fbbf07c pipeline: download-debs: de-hardcode path to compile.sh for downloader 2023-06-12 10:47:01 +02:00
Ricardo Pardini
fd404b46b6 artifact-kernel: log what is the actual ${USERPATCHES_PATH}/kernel/${KERNELPATCHDIR} so people can find it
- case in point: some families point `KERNELPATCHDIR` to something like `archive/sunxi-5.15` which makes it harder to find than `sunxi-legacy`
2023-06-12 09:58:27 +02:00
Patrick Yavitz
cddc99ce89 drivers_network.sh: driver_rtw88: simplified function
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-06-02 19:38:14 +02:00
Patrick Yavitz
032db0522d AGAIN: RTW88: SDIO driver via patches for Linux 6.1/6.2/6.3
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-06-02 19:38:14 +02:00
Ricardo Pardini
bffcfc4f66 uboot: introduce hook post_config_uboot_target
- runs after other configuration changes, but before actually compiling a target
- useful to hack into `.config` for a specific target
2023-06-02 19:33:12 +02:00
Ricardo Pardini
040158b004 distro-agnostic: don't assume armbian.list exists when seding for beta 2023-06-02 19:32:57 +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
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
e9d114f0d0 pipeline: repo-reprepro: run clearvanished and check before adding to repo 2023-06-02 19:14:07 +02:00
Ricardo Pardini
6b782d3c26 driver_rtl8723cs: completely (not partially) disable for bcm2711 and d1 families 2023-06-01 18:24:05 +02:00
Vyacheslav Bocharov
0758dfa6bd This add support for RTW88 SDIO driver via patches for 6.1/6.3 kernel
Additional driver support:
    Realtek 8822BS SDIO wireless network adapter
    Realtek 8822BU USB wireless network adapter
    Realtek 8822CS SDIO wireless network adapter
    Realtek 8822CU USB wireless network adapter
    Realtek 8821CS SDIO wireless network adapter
    Realtek 8821CU USB wireless network adapter

Revert "Revert "BPI-CM4 IO: RTW88: `Realtek 8822CS SDIO` `Wireless Support`"":

This reverts commit 672bd5393a.
This restore commit 3f169bcae2.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
Signed-off-by: Vyacheslav Bocharov <adeep@lexina.in>
2023-06-01 08:10:45 +02:00
Vyacheslav Bocharov
672bd5393a Revert "BPI-CM4 IO: RTW88: Realtek 8822CS SDIO Wireless Support"
This reverts commit 3f169bcae2.
2023-05-26 14:07:04 +02:00
Igor
0449601213 Disable wireless driver for d1 legacy kernel as it breaks compilation
Target is not supported
2023-05-26 09:26:24 +02:00
Patrick Yavitz
3f169bcae2 BPI-CM4 IO: RTW88: Realtek 8822CS SDIO Wireless Support
Additional driver support:
Realtek 8822BS SDIO wireless network adapter
Realtek 8822BU USB wireless network adapter
Realtek 8822CS SDIO wireless network adapter
Realtek 8822CU USB wireless network adapter
Realtek 8821CS SDIO wireless network adapter
Realtek 8821CU USB wireless network adapter

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2023-05-26 07:37:28 +02:00
Ricardo Pardini
9d90dcd3d4 drivers_network: uwe5622: park-link-v6.2-only.patch only for 6.2.y 2023-05-26 07:35:05 +02:00
Ricardo Pardini
c825966857 pipeline: targets-compositor: force variable BETA the same for all targets, reading from param/env passed to prepare/gha-matrix step
- this way it's consistent across all artifacts and images
- debs-to-repo-download: fix: use DEB_STORAGE instead of hardcoding output/debs (so BETA=yes works)

also:
- fix `Duplicate oci_target` message in mapper-oci-uptodate
2023-05-25 19:30:40 +02:00
Ricardo Pardini
31131fe14e bsp-cli/BETA: fixes for bsp-cli bootscript hashing; don't normalize bootscript vars; debugging for BETA=yes/no stuff
also:
- get rid of comments and `SUBREVISION` and `RC` variables
- better debugging in calculate_hash_for_variables() do_normalize_src_path=yes/no
- tag a few places where output/debs might wrong in face of BETA=yes/no
2023-05-25 19:30:40 +02:00
Igor
cb8b309a91 Disable rtl8723cs for bcm2711 family as its currently broken and as its not needed there anyway 2023-05-25 06:21:11 +02:00
Igor
84a458b861 Reenable wifi 2023-05-25 06:19:21 +02:00
Igor
a710553138 Temporally disable broken wireless / bluetooth driver from patch/misc/wireless-rtl8723cs/
@paolosabatino

Also bump Allwinner
2023-05-25 06:19:21 +02:00
Ricardo Pardini
e1e3e3c02c drivers_network: rtl8723cs bt: disable landed patches in 6.1.30/6.3.4; keep for 6.2, which is EOL 2023-05-25 05:09:49 +02:00
Ricardo Pardini
97362fd408 artifacts (all): implement DONT_BUILD_ARTIFACTS=any (so we don't need to list them all for CI image builds) 2023-05-24 19:24:01 +02:00
Ricardo Pardini
0a5740040e rootfs-to-image: find, warn, and remove dangling symlinks in FAT32 /boot 2023-05-24 19:23:37 +02:00
Ricardo Pardini
15fcc0bb00 artifacts: introduce calculate_hash_for_variables() which normalizes the input; use in kernel/uboot/etc
- some hashed variables might contain "${SRC}", so hashes never match, unless built in Docker
  - this strips away SRC from all vars and adds debugging so we can detect more later.
- `artifact-uboot`: include more variables into hash, for ATF & rk stuff
- `artifact-armbian-desktop`:
  - hashed vars actually contain /armbian in different context, skip normalization in this case
  - include results of relevant aggregation into artifact_input_variables
    - otherwise: desktops with different appgroups/configs lead to build failures in pipeline
    - will cause warnings in JSON preparation step, if more than one appgroups/config combo is targeted, since repo can only have one
2023-05-24 19:23:08 +02:00
Ricardo Pardini
940d0e740c image: sanity check: warn if any deb artifacts' actually-installed version does not match artifact-built version
- this catches problems with outdated/crazy repos, customize doing stupid things, wrong pinning, etc
2023-05-24 19:22:51 +02:00
Ricardo Pardini
52710b3363 git/docker: bsp-cli: fix BUILD_REPOSITORY_URL and BUILD_REPOSITORY_COMMIT under Docker; fixes AR-1750 2023-05-24 19:20:57 +02:00
Igor
8ebe1b9112 Forgot to change execution bit to postinst script 2023-05-23 17:14:42 +02:00
Ricardo Pardini
7d72d18bb0 git-ref2info: source.denx.de is a GitLab instance, add it to the selector; fixes #5168 2023-05-23 16:34:40 +02:00
Igor
bf30e06358 Remove motd spam after installing fake ubuntu advantage tools 2023-05-23 16:33:25 +02:00
Igor
526070d866 Remove /etc/legal from conf_files to prevent prompt at upgrade
Signed-off-by: Igor <igor@armbian.com>
2023-05-21 17:06:54 +02:00
Ricardo Pardini
6acf58bcb8 armbian-zsh: use fixed commit for ohmyzsh; was using very high traffic 'master' branch
- upstream has no branches, no tags, only way to quiesce this is via `commit:<sha1>`
2023-05-21 16:18:57 +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
7fa05a9b69 utils-dpkgdeb: fix wrong DEBIAN/md5sums generation
- remove the prefix, otherwise a temporary path is included
- don't include DEBIAN/* files themselves
2023-05-21 14:00:15 +02:00
Ricardo Pardini
2e570b9473 initrd: when cache hit, don't preserve perms during deploy, otherwise FAT32 /boot gags 2023-05-21 13:59:26 +02:00
Igor
a3e79a8d7b Disable debugging on packages install 2023-05-21 11:11:18 +02:00
Igor
e67215bd6a URL for riscv64 is different then expected
https://deb.debian.org/debian-ports/pool -> pool-riscv64
2023-05-21 11:11:07 +02:00
Alan
8eeb9379d1 Move rtl8189-disable-debug patch from kernel to misc(drivers_network.sh) 2023-05-19 23:35:49 +02:00
Igor
46c20606e3 In case we are removing files we need to remove the from conffiles too 2023-05-18 21:44:05 +02:00
Igor
fae54d84ca Change remaining variables of base-files 2023-05-18 20:49:06 +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
e2f32c53f8 export-logs: add GHA output for logs_url (when SHARE_LOG=yes) 2023-05-17 18:06:21 +02:00
Ricardo Pardini
e3a4060595 github-actions: more logging for GHA actions outputs 2023-05-16 20:09:47 +02:00
Ricardo Pardini
27a021d193 oci-oras: retry harder, and sleep for more time, if push failed 2023-05-16 20:09:47 +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
9943e9ee66 artifacts(debs): include DEBIAN/md5sums and a correct Installed-Size: field in DEBIAN/control (for _all_ debs) 2023-05-16 20:09:47 +02:00
Ricardo Pardini
b456554610 artifacts(debs): rationalize "bash hash" creation with new calculate_hash_for_bash_deb_artifact() helper 2023-05-16 20:09:47 +02:00
Ricardo Pardini
eff56a7909 pipeline: debs-to-repo (v7, working with reprepro)
- pipeline: artifacts: use better description for artifacts (artifact_name+artifact_version instead of artifact_final_file_basename)
2023-05-16 20:09:47 +02:00
Ricardo Pardini
52fffdda75 kernel-debs: include "Priority: optional" in all kernel debs (all other packages have it...)
- also for `fake_ubuntu_advantage_tools`
  - also include "Section: " missing for advantage
2023-05-16 20:09:47 +02:00
Ricardo Pardini
807be60c6b artifacts-obtain: deb-tar: don't download .tar again if .debs are in-disk; delete .tar after extracting 2023-05-16 20:09:47 +02:00
Ricardo Pardini
ca46f86dec artifacts: download-artifact CLI. makes sure to only used local .deb, or download from OCI, never build 2023-05-16 20:09:47 +02:00
Ricardo Pardini
1fa54e030d artifacts: include the artifact maps info (debs/packages) both as keys and values in the artifact JSON info
- this is valuable for the debs-to-repo process; we can now know which exact .debs are produced, and all the ways we can refer to them
2023-05-16 20:09:47 +02:00
Ricardo Pardini
234232085d docker: remove dead code 2023-05-16 20:09:47 +02:00
Igor Velkov
9b68c4e42a Add support for nilfs2 fs based image
Signed-off-by: Igor Velkov <iav@iav.lv>
2023-05-16 08:51:05 +02:00
Ricardo Pardini
78700cf139 logging/retries: curb CI/GHA warning emitted _for each retry_ 2023-05-15 17:43:25 +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
ceea84ff28 logging: curb warning that always came up when SRC_EXTLINUX=yes
- SRC_EXTLINUX is quite prevalent, no use warning, it was more a debugging marker
2023-05-15 17:43:25 +02:00
Ricardo Pardini
f0f9159faa logging: curb CI/GHA special errors for cascading errors during build failure
- otherwise we get 4 errors for each "error" in CI
  - one for the real error
  - one for "wait for cleanups"
  - one for "Docker build failed"
  - one from GHA itself since command failed (we can't get rid of this)
2023-05-15 17:43:25 +02:00
Ricardo Pardini
25929ea6ac apt_purge_unneeded_packages_and_clean_apt_caches(): count files, don't use du: avoid WARNs when not needed; tolerate 1 file
- 'lock' might or not be there, tolerate 1 file (not 0)
2023-05-15 17:43:25 +02:00
Ricardo Pardini
99e065381a squash more warnings:
- `odroidxu4`'s firmware hook for vendor kernel. such is life, no use warning.
- `sun50iw9`: vendor kernel with extension, proven working, stop warning
- old kernels don't have working headers, it's a fact of life, remove warning
2023-05-15 17:43:25 +02:00
Ricardo Pardini
d164f6850b rootfs/aggregation/helios64: fix: include PACKAGE_LIST_BOARD_REMOVE (and FAMILY version) into rootfs' artifact_input_variables
- `PACKAGE_LIST_BOARD_REMOVE` is used only in `helios64` board
- the fact is `PACKAGE_LIST_BOARD_REMOVE` removes the packages _from the rootfs_ and not _from the image_
  - this only accounts for that fact, but in the future we should actually change how this works
2023-05-15 17:43:25 +02:00
Ricardo Pardini
e49d91ec40 popular demand: bring back KERNEL_CONFIGURE=yes *during image build*
- partially revert 6ef394d95d (thus bring back the TUI/dialog for selecting KERNEL_CONFIGURE=yes/no)
- partially revert d890b418c7 (thus bring back the capacity to config & build image in one go)
- stop after configuring kernel, but only if command is `kernel-config`, not regular image-build KERNEL_CONFIGURE=yes
2023-05-09 10:05:09 +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
Ricardo Pardini
8f14f33f78 logging: squash undue warnings rootfs/aptcache
- rootfs is built with BOARD= so just live with it (idea about this warn was that families might hook rootfs build process)
- count, instead of du, apt caches. seems some empty dirs are reported as "1Mb" by du?
2023-05-09 10:04:57 +02:00
Ricardo Pardini
5316c6685b host-utils: more logging for when junk is found in image apt caches 2023-05-09 10:04:57 +02:00
Ricardo Pardini
b18cd8aaf4 logging: curb some warnings into info's 2023-05-09 10:04:57 +02:00
Ricardo Pardini
ab696d0776 rootfs: bump non-desktop tmpfs_estimated_size from 2000mb to 2300mb (determined empirically, after building all images) 2023-05-09 10:04:57 +02:00
Ricardo Pardini
b7c659c0a9 pipeline: gha: fix IMAGES_ONLY_OUTDATED_ARTIFACTS and SKIP_IMAGES by exporting them so Python can see; tune logging 2023-05-09 10:04:57 +02:00
Ricardo Pardini
637c4fec01 include (clean/real) apt lists in built images; update xapian index during image build, not rootfs; don't leave junk in the rootfs cache
- revert #5139 Revert "Apt lists is needed for synpatic index generation"
  This reverts commit 63e9bd3baa
  - this actually only left junk in rootfs cache for the future to find
2023-05-09 10:04:50 +02:00
Ricardo Pardini
a872fe8773 config-prepare: config_pre_main(): try to be more helpful when BRANCH is unset or wrong instead of just "bad KERNEL_MAJOR_MINOR" 2023-05-08 11:21:47 +02:00
amazingfate
0b5dc0c921 fix uwe5622 for kernel v6.3 2023-05-06 12:55:10 +02:00
Igor
63e9bd3baa Apt lists is needed for synpatic index generation 2023-05-05 19:37:19 +02:00
Ricardo Pardini
de8bbcec11 pipeline: correctly quote params passed over pure strings (eg in the GHA JSON matrixes) so values with spaces are not mangled 2023-05-04 16:08:11 +02:00
Ricardo Pardini
1b36bb63d7 bash_declare_parser: parse space-separated single-quoted array values correctly ('THIS=has space' is a single token, not two) 2023-05-04 16:08:11 +02:00
Ricardo Pardini
875960ddb7 aggregation: armbian_utils.parse_env_for_tokens() now actually does what it said on the box "split by whitespace, line breaks, commas, and semicolons"; add appgroups summary 2023-05-04 16:08:11 +02:00
Ricardo Pardini
1ad9f7cbd2 artifact-rootfs: add desktop info (environment, config_name, appgrous) to artifact_version_reason (so we can debug when I mess up later) 2023-05-04 16:08:11 +02:00
Ricardo Pardini
7c0fb70a2b configdump: alias config-dump, config-dump-json and new config-dump-no-json (bash declare format) 2023-05-04 16:08:11 +02:00